diff --git a/BetterGiveUp/Assembly-CSharp.BetterGiveUp.mm.csproj b/BetterGiveUp/Assembly-CSharp.BetterGiveUp.mm.csproj
deleted file mode 100644
index 01fef46..0000000
--- a/BetterGiveUp/Assembly-CSharp.BetterGiveUp.mm.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- net35
- Assembly-CSharp.BetterGiveUp.mm
- 7EVENDAYS⇔HOLIDAYS
- Forfeit and restart in mu3
- 1.6.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
-
-
-
-
-
-
-
diff --git a/BetterGiveUp/BetterGiveUp.csproj b/BetterGiveUp/BetterGiveUp.csproj
new file mode 100644
index 0000000..22c60a2
--- /dev/null
+++ b/BetterGiveUp/BetterGiveUp.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.BetterGiveUp.mm
+ Forfeit (red menu) and restart (yellow menu)
+
+
+
\ No newline at end of file
diff --git a/BetterGiveUp/MU3.Game/patch_GameLED.cs b/BetterGiveUp/MU3.Game/patch_GameLED.cs
index 191030e..2374d62 100644
--- a/BetterGiveUp/MU3.Game/patch_GameLED.cs
+++ b/BetterGiveUp/MU3.Game/patch_GameLED.cs
@@ -1,13 +1,8 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using System.Collections.Generic;
+using System.Collections.Generic;
namespace MU3.Game;
-public class patch_GameLED: GameLED {
+class patch_GameLED: GameLED {
private patch_ButtonList _buttonList = new();
public extern void orig_initialize();
diff --git a/BetterGiveUp/MU3.Notes/patch_FieldObject.cs b/BetterGiveUp/MU3.Notes/patch_FieldObject.cs
index ad62644..790342d 100644
--- a/BetterGiveUp/MU3.Notes/patch_FieldObject.cs
+++ b/BetterGiveUp/MU3.Notes/patch_FieldObject.cs
@@ -1,14 +1,9 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using UnityEngine;
+using UnityEngine;
namespace MU3.Notes;
-public class patch_FieldObject: FieldObject {
- public class patch_BarNotes {
- public class patch_Bar: BarNotes.Bar {
+class patch_FieldObject: FieldObject {
+ class patch_BarNotes {
+ class patch_Bar: BarNotes.Bar {
public extern void orig_update(NotesManager mgr, float width = 1f);
public new void update(NotesManager mgr, float width = 1f) {
diff --git a/BetterGiveUp/MU3.Notes/patch_NotesManager.cs b/BetterGiveUp/MU3.Notes/patch_NotesManager.cs
index 234c4e4..413f918 100644
--- a/BetterGiveUp/MU3.Notes/patch_NotesManager.cs
+++ b/BetterGiveUp/MU3.Notes/patch_NotesManager.cs
@@ -1,13 +1,8 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using UnityEngine;
+using UnityEngine;
namespace MU3.Notes;
-public class patch_NotesManager: NotesManager {
+class patch_NotesManager: NotesManager {
public extern void orig_reset();
public extern Vector3 orig_getEnemyPos();
diff --git a/BetterGiveUp/MU3.Sequence/patch_PlayMusic.cs b/BetterGiveUp/MU3.Sequence/patch_PlayMusic.cs
index f42fd7c..11faa97 100644
--- a/BetterGiveUp/MU3.Sequence/patch_PlayMusic.cs
+++ b/BetterGiveUp/MU3.Sequence/patch_PlayMusic.cs
@@ -1,9 +1,4 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using MU3.Battle;
+using MU3.Battle;
using MU3.Game;
using MU3.Notes;
using MU3.Util;
@@ -12,7 +7,7 @@ using UnityEngine;
namespace MU3.Sequence;
-public class patch_PlayMusic: PlayMusic {
+class patch_PlayMusic: PlayMusic {
private static readonly TimeSpan HOLD_DURATION = TimeSpan.FromSeconds(1.0f);
private static readonly TimeSpan ROLL_DURATION = TimeSpan.FromSeconds(0.5f);
public static bool QuickSkip = false;
diff --git a/BetterGiveUp/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs b/BetterGiveUp/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
index 79d7e13..caec8e9 100644
--- a/BetterGiveUp/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
+++ b/BetterGiveUp/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
@@ -1,14 +1,8 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-#pragma warning disable CS0414
-
-using MU3.Sequence;
+using MU3.Sequence;
namespace MU3;
-public class patch_Scene_32_PrePlayMusic_MusicSelect: Scene_32_PrePlayMusic_MusicSelect {
+class patch_Scene_32_PrePlayMusic_MusicSelect: Scene_32_PrePlayMusic_MusicSelect {
private bool _playVoice;
private extern void orig_Enter_Select();
private void Enter_Select() {
diff --git a/BetterGiveUp/MU3/patch_Scene_37_Result.cs b/BetterGiveUp/MU3/patch_Scene_37_Result.cs
index d79dd1a..23f4b26 100644
--- a/BetterGiveUp/MU3/patch_Scene_37_Result.cs
+++ b/BetterGiveUp/MU3/patch_Scene_37_Result.cs
@@ -1,14 +1,9 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.Sequence;
using MU3.Util;
namespace MU3;
-public class patch_Scene_37_Result: Scene_37_Result {
+class patch_Scene_37_Result: Scene_37_Result {
private Mode mode_;
private extern void orig_Init_Init();
private enum State {
@@ -25,7 +20,6 @@ public class patch_Scene_37_Result: Scene_37_Result {
CardCharaEnd,
End
}
-
private void Init_Init() {
orig_Init_Init();
if(patch_PlayMusic.QuickSkip) {
diff --git a/BetterGiveUp/MU3/patch_Scene_38_End.cs b/BetterGiveUp/MU3/patch_Scene_38_End.cs
index c4cfe78..060dc85 100644
--- a/BetterGiveUp/MU3/patch_Scene_38_End.cs
+++ b/BetterGiveUp/MU3/patch_Scene_38_End.cs
@@ -1,15 +1,9 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable CS0414
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.Sequence;
using MU3.Util;
namespace MU3;
-public class patch_Scene_38_End: Scene_38_End {
+class patch_Scene_38_End: Scene_38_End {
private Mode mode_;
private extern void orig_Init_Init();
private int result_;
diff --git a/DisableEncryption/DisableEncryption.csproj b/DisableEncryption/DisableEncryption.csproj
new file mode 100644
index 0000000..2dc87c7
--- /dev/null
+++ b/DisableEncryption/DisableEncryption.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.DisableEncryption.mm
+ Disable encryption
+
+
+
\ No newline at end of file
diff --git a/DisableEncryption/MU3/patch_NetConfig.cs b/DisableEncryption/MU3/patch_NetConfig.cs
new file mode 100644
index 0000000..1717938
--- /dev/null
+++ b/DisableEncryption/MU3/patch_NetConfig.cs
@@ -0,0 +1,28 @@
+using MonoMod;
+
+namespace MU3;
+
+[MonoModPatch("global::MU3.NetConfig")]
+public static class patch_NetConfig {
+ private static int encryptVersion_;
+
+ private static bool useTLS_;
+
+ public static int EncryptVersion {
+ get {
+ return 0;
+ }
+ set {
+ encryptVersion_ = 0;
+ }
+ }
+
+ public static bool UseTLS {
+ get {
+ return false;
+ }
+ set {
+ useTLS_ = false;
+ }
+ }
+}
diff --git a/DisableMaintenance/DisableMaintenance.csproj b/DisableMaintenance/DisableMaintenance.csproj
new file mode 100644
index 0000000..a5b98d4
--- /dev/null
+++ b/DisableMaintenance/DisableMaintenance.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.DisableMaintenance.mm
+ Disable maintenance
+
+
+
\ No newline at end of file
diff --git a/DisableMaintenance/MU3.Operation/patch_ClosingManager.cs b/DisableMaintenance/MU3.Operation/patch_ClosingManager.cs
new file mode 100644
index 0000000..4366696
--- /dev/null
+++ b/DisableMaintenance/MU3.Operation/patch_ClosingManager.cs
@@ -0,0 +1,27 @@
+namespace MU3.Operation;
+
+class patch_ClosingManager: ClosingManager {
+ public new int getRemainingMinutes() {
+ return int.MaxValue;
+ }
+
+ public new int getClosedRemainingMinutes() {
+ return int.MaxValue;
+ }
+
+ public new bool isShowRemainingMinutes() {
+ return false;
+ }
+
+ public new bool isReceptionClosed() {
+ return false;
+ }
+
+ public new bool isForceLogout() {
+ return false;
+ }
+
+ public new CreditUseRestriction getCreditUseRestriction() {
+ return CreditUseRestriction.None;
+ }
+}
diff --git a/DisableMaintenance/MU3.Operation/patch_MaintenanceTimer.cs b/DisableMaintenance/MU3.Operation/patch_MaintenanceTimer.cs
new file mode 100644
index 0000000..7b61333
--- /dev/null
+++ b/DisableMaintenance/MU3.Operation/patch_MaintenanceTimer.cs
@@ -0,0 +1,47 @@
+namespace MU3.Operation;
+
+class patch_MaintenanceTimer: MaintenanceTimer {
+ public new bool isUnderServerMaintenance() {
+ return false;
+ }
+
+ public new int getServerMaintenanceSec() {
+ return int.MaxValue;
+ }
+
+ public new int getAutoRebootSec() {
+ return int.MaxValue;
+ }
+
+ public new bool isAutoRebootNeeded() {
+ return false;
+ }
+
+ public new int getRemainingMinutes() {
+ return int.MaxValue;
+ }
+
+ public new int getClosedRemainingMinutes() {
+ return int.MaxValue;
+ }
+
+ public new bool isShowRemainingMinutes() {
+ return false;
+ }
+
+ public new bool isClosed() {
+ return false;
+ }
+
+ public new bool isForceLogout() {
+ return false;
+ }
+
+ public new ClosingManager.CreditUseRestriction getCreditUseRestriction() {
+ return ClosingManager.CreditUseRestriction.None;
+ }
+
+ public new bool isCoinAcceptable() {
+ return true;
+ }
+}
diff --git a/ExportChartData/Assembly-CSharp.ExportChartData.mm.csproj b/ExportChartData/Assembly-CSharp.ExportChartData.mm.csproj
deleted file mode 100644
index 892908a..0000000
--- a/ExportChartData/Assembly-CSharp.ExportChartData.mm.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- net35
- Assembly-CSharp.ExportChartData.mm
- 7EVENDAYS⇔HOLIDAYS
- Export mu3 chart data
- 1.3.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
-
-
-
-
-
-
-
-
diff --git a/ExportChartData/MU3.Data/patch_DataManager.cs b/ExportChartData/MU3.Data/patch_DataManager.cs
deleted file mode 100644
index 0d2df3a..0000000
--- a/ExportChartData/MU3.Data/patch_DataManager.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using System.IO;
-
-namespace MU3.Data;
-
-public class patch_DataManager: DataManager {
- private extern void orig_linkFumenAnalysisData();
- private const string SEPARATOR = "$";
- private string PrintHeader() {
- return string.Join(SEPARATOR, new string[] {
- "id",
- "name",
- "difficulty",
- "name for sort",
- "artist",
- "genre",
- "internal level",
- "charter",
- "max platinum score",
- "release date",
- "release version",
- "bpm",
- "location"
- });
- }
- private string PrintLine(FumenData fumen, MusicData mus, int level) {
- return string.Join(SEPARATOR, new string[] {
- mus.id.ToString(),
- mus.name,
- level.ToString(),
- mus.nameForSort,
- mus.artistName,
- mus.genreName,
- fumen.fumenConst.ToString(),
- fumen.notesDesignerName ?? "",
- fumen.platinumScoreMax.ToString(),
- mus.ReleaseVersion.ToUniversalTime().ToString(),
- mus.versionTitle,
- fumen.bpm.ToString(),
- fumen.fumenFile.Substring(fumen.fumenFile.LastIndexOf('A'))
- });
- }
-
- private void linkFumenAnalysisData() {
- orig_linkFumenAnalysisData();
- using StreamWriter writer = new("charts.csv");
- writer.WriteLine(PrintHeader());
- foreach(var mus in allMusicData) {
- int i = 0;
- foreach(var fumen in mus.fumenData) {
- if(fumen.isExist) {
- writer.WriteLine(PrintLine(fumen, mus, i));
- }
- i += 1;
- }
- }
- UnityEngine.Debug.Log("[ExportChartData] Written to charts.csv");
- }
-}
\ No newline at end of file
diff --git a/InfiniteGP/Assembly-CSharp.InfiniteGP.mm.csproj b/InfiniteGP/Assembly-CSharp.InfiniteGP.mm.csproj
deleted file mode 100644
index 1eb3262..0000000
--- a/InfiniteGP/Assembly-CSharp.InfiniteGP.mm.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- net35
- Assembly-CSharp.InfiniteGP.mm
- 7EVENDAYS⇔HOLIDAYS
- Infinite GP in mu3
- 1.6.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
- ..\Common\UnityEngine.UI.dll
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/InfiniteGP/InfiniteGP.csproj b/InfiniteGP/InfiniteGP.csproj
new file mode 100644
index 0000000..5c702f3
--- /dev/null
+++ b/InfiniteGP/InfiniteGP.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.InfiniteGP.mm
+ Remove credits and GP
+
+
+
\ No newline at end of file
diff --git a/InfiniteGP/MU3.User/patch_UserManager.cs b/InfiniteGP/MU3.User/patch_UserManager.cs
index df5d889..fe6d02f 100644
--- a/InfiniteGP/MU3.User/patch_UserManager.cs
+++ b/InfiniteGP/MU3.User/patch_UserManager.cs
@@ -1,9 +1,6 @@
-#pragma warning disable CS0649
-#pragma warning disable IDE1006
+namespace MU3.User;
-namespace MU3.User;
-
-public class patch_UserManager: UserManager {
+class patch_UserManager: UserManager {
public new const int DefaultGP = 666;
private int _gp;
private OnUpdate _onUpdateGP;
diff --git a/InfiniteGP/MU3/patch_Scene_25_Login.cs b/InfiniteGP/MU3/patch_Scene_25_Login.cs
index 43b4ec0..05466ea 100644
--- a/InfiniteGP/MU3/patch_Scene_25_Login.cs
+++ b/InfiniteGP/MU3/patch_Scene_25_Login.cs
@@ -1,13 +1,10 @@
-#pragma warning disable CS0649
-#pragma warning disable CS0626
-
using MU3.Util;
namespace MU3;
-public class patch_Scene_25_Login: Scene_25_Login {
- private enum State {
+class patch_Scene_25_Login: Scene_25_Login {
+ public enum State {
Login = 2
}
private Mode mode_;
diff --git a/InfiniteGP/MU3/patch_UIMoneyExchange.cs b/InfiniteGP/MU3/patch_UIMoneyExchange.cs
index 43ec509..fb99561 100644
--- a/InfiniteGP/MU3/patch_UIMoneyExchange.cs
+++ b/InfiniteGP/MU3/patch_UIMoneyExchange.cs
@@ -1,12 +1,9 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-
using MU3.CustomUI;
using UnityEngine;
namespace MU3;
-public class patch_UICredit: UICredit {
+class patch_UICredit: UICredit {
private Animator gpAnimator_;
private GameObject creditRoot_;
private MU3UICounter credit_;
diff --git a/LoadBoost/LoadBoost.csproj b/LoadBoost/LoadBoost.csproj
new file mode 100644
index 0000000..44300da
--- /dev/null
+++ b/LoadBoost/LoadBoost.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.LoadBoost.mm
+ Speed up startup
+
+
+
\ No newline at end of file
diff --git a/LoadBoost/MU3.Data/patch_DataManager.cs b/LoadBoost/MU3.Data/patch_DataManager.cs
new file mode 100644
index 0000000..5064ca4
--- /dev/null
+++ b/LoadBoost/MU3.Data/patch_DataManager.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace MU3.Data;
+
+public class patch_DataManager: DataManager {
+ private Dictionary _fumenAnalysisData;
+
+ private void InitCache() {
+ if(File.Exists("data_fumen_analysis_cache.bin")) {
+ System.Console.WriteLine("Loading FumenAnalysisData cache...");
+ _fumenAnalysisData = new Dictionary();
+ using(FileStream input = File.OpenRead("data_fumen_analysis_cache.bin")) {
+ using BinaryReader binaryReader = new BinaryReader(input);
+ while(binaryReader.BaseStream.Position < binaryReader.BaseStream.Length) {
+ int key = binaryReader.ReadInt32();
+ bool isExist = binaryReader.ReadBoolean();
+ int bpm = binaryReader.ReadInt32();
+ int platinumScoreMax = binaryReader.ReadInt32();
+ string notesDesignerName = binaryReader.ReadString();
+ _fumenAnalysisData.Add(key, new FumenAnalysisData {
+ isExist = isExist,
+ bpm = bpm,
+ platinumScoreMax = platinumScoreMax,
+ notesDesignerName = notesDesignerName
+ });
+ }
+ }
+ System.Console.WriteLine("Success");
+ } else {
+ _fumenAnalysisData = new Dictionary();
+ }
+ }
+
+ private void SaveCache() {
+ System.Console.WriteLine($"Saving FumenAnalysisData cache...{Enumerable.First>((IEnumerable>)_fumenAnalysisData).Key},{Enumerable.First>((IEnumerable>)_fumenAnalysisData).Value.notesDesignerName}");
+ if(File.Exists("data_fumen_analysis_cache.bin")) {
+ File.Delete("data_fumen_analysis_cache.bin");
+ }
+ using(FileStream fileStream = File.OpenWrite("data_fumen_analysis_cache.bin")) {
+ using BinaryWriter binaryWriter = new BinaryWriter(fileStream);
+ foreach(KeyValuePair fumenAnalysisDatum in _fumenAnalysisData) {
+ binaryWriter.Write(fumenAnalysisDatum.Key);
+ binaryWriter.Write(fumenAnalysisDatum.Value.isExist);
+ binaryWriter.Write(fumenAnalysisDatum.Value.bpm);
+ binaryWriter.Write(fumenAnalysisDatum.Value.platinumScoreMax);
+ binaryWriter.Write(fumenAnalysisDatum.Value.notesDesignerName);
+ }
+ fileStream.Flush();
+ }
+ System.Console.WriteLine("Success");
+ }
+
+ private extern void orig_makeFumenAnalysisDataList();
+
+ private void makeFumenAnalysisDataList() {
+ try {
+ if(DataStudioManager.needSave || !File.Exists("data_fumen_analysis_cache.bin")) {
+ orig_makeFumenAnalysisDataList();
+ SaveCache();
+ } else {
+ InitCache();
+ }
+ } catch(Exception value) {
+ System.Console.WriteLine(value);
+ }
+ }
+}
diff --git a/LoadBoost/MU3.Data/patch_DataStudioManager.cs b/LoadBoost/MU3.Data/patch_DataStudioManager.cs
new file mode 100644
index 0000000..e0f670d
--- /dev/null
+++ b/LoadBoost/MU3.Data/patch_DataStudioManager.cs
@@ -0,0 +1,60 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.Serialization.Formatters.Binary;
+
+namespace MU3.Data;
+
+public class DataStudioManager {
+ public static bool needSave;
+
+ private static Dictionary _dataCache;
+
+ private static extern bool orig_Deserialize(string filePath, out T dsr) where T : new();
+
+ private static void InitCache() {
+ if(File.Exists("data_cache.bin")) {
+ System.Console.WriteLine("Loading cache...");
+ using FileStream serializationStream = File.OpenRead("data_cache.bin");
+ _dataCache = (Dictionary)new BinaryFormatter().Deserialize(serializationStream);
+ return;
+ }
+ _dataCache = new Dictionary();
+ }
+
+ private static void SaveCache() {
+ if(File.Exists("data_cache.bin")) {
+ File.Delete("data_cache.bin");
+ }
+ using FileStream serializationStream = File.OpenWrite("data_cache.bin");
+ new BinaryFormatter().Serialize(serializationStream, _dataCache);
+ }
+
+ private static bool Deserialize(string filePath, out T dsr) where T : new() {
+ if(_dataCache == null) {
+ InitCache();
+ }
+ if(_dataCache.ContainsKey(filePath)) {
+ dsr = (T)_dataCache[filePath];
+ return true;
+ }
+ if(orig_Deserialize(filePath, out dsr)) {
+ needSave = true;
+ _dataCache.Add(filePath, dsr);
+ return true;
+ }
+ return false;
+ }
+
+ public extern bool orig_IsLoaded();
+
+ public bool IsLoaded() {
+ if(orig_IsLoaded()) {
+ if(needSave) {
+ System.Console.WriteLine("Saving cache...");
+ SaveCache();
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/LoadBoost/MU3.Sequence/patch_Initialize.cs b/LoadBoost/MU3.Sequence/patch_Initialize.cs
new file mode 100644
index 0000000..a1154e6
--- /dev/null
+++ b/LoadBoost/MU3.Sequence/patch_Initialize.cs
@@ -0,0 +1,16 @@
+using MU3.SceneObject;
+
+namespace MU3.Sequence;
+
+public class patch_Initialize: Initialize {
+ private Scene_12_Initialize _initializeObject;
+
+ private void Execute_InitQRReader() {
+ _initializeObject.setQRCodeReaderStatus("SKIP");
+ setNextState(EState.CheckDelivery);
+ }
+
+ private void Enter_Warning() {
+ setNextState(EState.StateEnd);
+ }
+}
diff --git a/LockSelectionTime/Assembly-CSharp.LockSelectionTime.mm.csproj b/LockSelectionTime/Assembly-CSharp.LockSelectionTime.mm.csproj
deleted file mode 100644
index 6f1d601..0000000
--- a/LockSelectionTime/Assembly-CSharp.LockSelectionTime.mm.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- net35
- Assembly-CSharp.LockSelectionTime.mm
- 7EVENDAYS⇔HOLIDAYS
- Lock selection time in mu3
- 1.5.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
- ..\Common\UnityEngine.UI.dll
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/LockSelectionTime/LockSelectionTime.csproj b/LockSelectionTime/LockSelectionTime.csproj
new file mode 100644
index 0000000..5a5081e
--- /dev/null
+++ b/LockSelectionTime/LockSelectionTime.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.LockSelectionTime.mm
+ Disable all timers
+
+
+
\ No newline at end of file
diff --git a/LockSelectionTime/MU3/patch_SystemUI.cs b/LockSelectionTime/MU3/patch_SystemUI.cs
index ab03f6f..ea64caa 100644
--- a/LockSelectionTime/MU3/patch_SystemUI.cs
+++ b/LockSelectionTime/MU3/patch_SystemUI.cs
@@ -1,9 +1,7 @@
-#pragma warning disable CS0626
-
namespace MU3;
-public class patch_SystemUI: SystemUI {
- public class patch_Timer: SystemUI.Timer {
+class patch_SystemUI: SystemUI {
+ class patch_Timer: Timer {
public patch_Timer(UITimer timer) : base(timer) { /* nop */ }
public new void execute() { /* nop */ }
public extern bool orig_get_show();
diff --git a/LockSelectionTime/MU3/patch_UITimer.cs b/LockSelectionTime/MU3/patch_UITimer.cs
index 04e26c8..8f42fe8 100644
--- a/LockSelectionTime/MU3/patch_UITimer.cs
+++ b/LockSelectionTime/MU3/patch_UITimer.cs
@@ -1,10 +1,8 @@
-#pragma warning disable CS0626
-
using UnityEngine;
namespace MU3;
-public class patch_UITimer: UITimer {
+class patch_UITimer: UITimer {
public new void update() { /* nop */ }
public new void update(float externalCounter) { /* nop */ }
public extern void orig_initialize(float counter);
diff --git a/MiscMods.sln b/MiscMods.sln
deleted file mode 100644
index a1043bb..0000000
--- a/MiscMods.sln
+++ /dev/null
@@ -1,79 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.9.34728.123
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.BetterGiveUp.mm", "BetterGiveUp\Assembly-CSharp.BetterGiveUp.mm.csproj", "{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.NaiveRating.mm", "NaiveRating\Assembly-CSharp.NaiveRating.mm.csproj", "{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.ExportChartData.mm", "ExportChartData\Assembly-CSharp.ExportChartData.mm.csproj", "{8BFC37B1-C6C8-492A-B8DC-99BD1F1B9576}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.SkipNotice.mm", "SkipNotice\Assembly-CSharp.SkipNotice.mm.csproj", "{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.SkipPreMusicRitual.mm", "SkipPreMusicRitual\Assembly-CSharp.SkipPreMusicRitual.mm.csproj", "{BB9CB905-9989-466C-9A91-D2F323005237}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.InfiniteGP.mm", "InfiniteGP\Assembly-CSharp.InfiniteGP.mm.csproj", "{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.LockSelectionTime.mm", "LockSelectionTime\Assembly-CSharp.LockSelectionTime.mm.csproj", "{66DE85AD-58AD-467C-B1C0-6B98BB27265D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.SkipLoginReward.mm", "SkipLoginReward\Assembly-CSharp.SkipLoginReward.mm.csproj", "{6E078B7E-7965-4CFF-9590-5C27A009BA7A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.Pause.mm", "Pause\Assembly-CSharp.Pause.mm.csproj", "{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assembly-CSharp.UnlockAndSetJewelBoostNine.mm", "UnlockAndSetJewelBoostNine\Assembly-CSharp.UnlockAndSetJewelBoostNine.mm.csproj", "{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.ActiveCfg = Debug|x64
- {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.Build.0 = Debug|x64
- {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.ActiveCfg = Release|x64
- {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.Build.0 = Release|x64
- {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.ActiveCfg = Debug|x64
- {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.Build.0 = Debug|x64
- {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.ActiveCfg = Release|x64
- {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.Build.0 = Release|x64
- {8BFC37B1-C6C8-492A-B8DC-99BD1F1B9576}.Debug|x64.ActiveCfg = Debug|x64
- {8BFC37B1-C6C8-492A-B8DC-99BD1F1B9576}.Debug|x64.Build.0 = Debug|x64
- {8BFC37B1-C6C8-492A-B8DC-99BD1F1B9576}.Release|x64.ActiveCfg = Release|x64
- {8BFC37B1-C6C8-492A-B8DC-99BD1F1B9576}.Release|x64.Build.0 = Release|x64
- {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.ActiveCfg = Debug|x64
- {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.Build.0 = Debug|x64
- {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.ActiveCfg = Release|x64
- {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.Build.0 = Release|x64
- {BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.ActiveCfg = Debug|x64
- {BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.Build.0 = Debug|x64
- {BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.ActiveCfg = Release|x64
- {BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.Build.0 = Release|x64
- {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.ActiveCfg = Debug|x64
- {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.Build.0 = Debug|x64
- {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.ActiveCfg = Release|x64
- {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.Build.0 = Release|x64
- {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.ActiveCfg = Debug|x64
- {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.Build.0 = Debug|x64
- {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.ActiveCfg = Release|x64
- {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.Build.0 = Release|x64
- {6E078B7E-7965-4CFF-9590-5C27A009BA7A}.Debug|x64.ActiveCfg = Debug|x64
- {6E078B7E-7965-4CFF-9590-5C27A009BA7A}.Debug|x64.Build.0 = Debug|x64
- {6E078B7E-7965-4CFF-9590-5C27A009BA7A}.Release|x64.ActiveCfg = Release|x64
- {6E078B7E-7965-4CFF-9590-5C27A009BA7A}.Release|x64.Build.0 = Release|x64
- {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.ActiveCfg = Debug|x64
- {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.Build.0 = Debug|x64
- {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.ActiveCfg = Release|x64
- {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.Build.0 = Release|x64
- {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.ActiveCfg = Debug|x64
- {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.Build.0 = Debug|x64
- {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.ActiveCfg = Release|x64
- {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D9317002-F66D-4CDE-8FF5-FF2A0D8DC021}
- EndGlobalSection
-EndGlobal
diff --git a/Pause/Assembly-CSharp.Pause.mm.csproj b/Mu3Mods.csproj
similarity index 82%
rename from Pause/Assembly-CSharp.Pause.mm.csproj
rename to Mu3Mods.csproj
index 3ad10cd..7e89726 100644
--- a/Pause/Assembly-CSharp.Pause.mm.csproj
+++ b/Mu3Mods.csproj
@@ -1,13 +1,12 @@
-
+
net35
- Assembly-CSharp.Pause.mm
7EVENDAYS⇔HOLIDAYS
- Pause in mu3
- 1.6.0
+ 2.0.2
true
latest
x64
+ IDE0044,IDE0051,IDE0052,IDE1006,CS0414,CS0649,CS0626
@@ -15,10 +14,11 @@
..\Common\UnityEngine.dll
..\Common\UnityEngine.UI.dll
..\Common\Assembly-CSharp-firstpass.dll
+
-
+
\ No newline at end of file
diff --git a/Mu3Mods.sln b/Mu3Mods.sln
new file mode 100644
index 0000000..d2924d7
--- /dev/null
+++ b/Mu3Mods.sln
@@ -0,0 +1,121 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.9.34728.123
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterGiveUp", "BetterGiveUp\BetterGiveUp.csproj", "{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NaiveRating", "NaiveRating\NaiveRating.csproj", "{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkipNotice", "SkipNotice\SkipNotice.csproj", "{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkipPreMusicRitual", "SkipPreMusicRitual\SkipPreMusicRitual.csproj", "{BB9CB905-9989-466C-9A91-D2F323005237}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InfiniteGP", "InfiniteGP\InfiniteGP.csproj", "{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LockSelectionTime", "LockSelectionTime\LockSelectionTime.csproj", "{66DE85AD-58AD-467C-B1C0-6B98BB27265D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pause", "Pause\Pause.csproj", "{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockAndSetJewelBoostNine", "UnlockAndSetJewelBoostNine\UnlockAndSetJewelBoostNine.csproj", "{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SortByInternalDifficulty", "SortByInternalDifficulty\SortByInternalDifficulty.csproj", "{0BF799DF-8837-4372-9F36-705CDC22374C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadBoost", "LoadBoost\LoadBoost.csproj", "{56B75395-ED26-479B-B59F-DABB74513335}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisableEncryption", "DisableEncryption\DisableEncryption.csproj", "{3F05931E-4444-4616-A0AC-047809821B0E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockMasterDifficulty", "UnlockMasterDifficulty\UnlockMasterDifficulty.csproj", "{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockFrameRate", "UnlockFrameRate\UnlockFrameRate.csproj", "{0C3E8145-F91B-4F1F-97D1-17E12D49891B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockAllMusic", "UnlockAllMusic\UnlockAllMusic.csproj", "{C8948C3E-0434-429E-AFE6-4FB2DF246872}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisableMaintenance", "DisableMaintenance\DisableMaintenance.csproj", "{6C91EB92-3A30-43B5-8954-E84C610C1D67}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockGameEvents", "UnlockGameEvents\UnlockGameEvents.csproj", "{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockMemoryChapters", "UnlockMemoryChapters\UnlockMemoryChapters.csproj", "{3A217A12-6082-491B-89F6-C1D13AD69A19}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.ActiveCfg = Debug|x64
+ {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.Build.0 = Debug|x64
+ {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.ActiveCfg = Release|x64
+ {003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.Build.0 = Release|x64
+ {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.ActiveCfg = Debug|x64
+ {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.Build.0 = Debug|x64
+ {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.ActiveCfg = Release|x64
+ {1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.Build.0 = Release|x64
+ {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.ActiveCfg = Debug|x64
+ {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.Build.0 = Debug|x64
+ {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.ActiveCfg = Release|x64
+ {A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.Build.0 = Release|x64
+ {BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.ActiveCfg = Debug|x64
+ {BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.Build.0 = Debug|x64
+ {BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.ActiveCfg = Release|x64
+ {BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.Build.0 = Release|x64
+ {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.ActiveCfg = Debug|x64
+ {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.Build.0 = Debug|x64
+ {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.ActiveCfg = Release|x64
+ {990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.Build.0 = Release|x64
+ {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.ActiveCfg = Debug|x64
+ {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.Build.0 = Debug|x64
+ {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.ActiveCfg = Release|x64
+ {66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.Build.0 = Release|x64
+ {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.ActiveCfg = Debug|x64
+ {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.Build.0 = Debug|x64
+ {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.ActiveCfg = Release|x64
+ {627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.Build.0 = Release|x64
+ {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.ActiveCfg = Debug|x64
+ {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.Build.0 = Debug|x64
+ {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.ActiveCfg = Release|x64
+ {70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.Build.0 = Release|x64
+ {0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|x64.ActiveCfg = Debug|x64
+ {0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|x64.Build.0 = Debug|x64
+ {0BF799DF-8837-4372-9F36-705CDC22374C}.Release|x64.ActiveCfg = Release|x64
+ {0BF799DF-8837-4372-9F36-705CDC22374C}.Release|x64.Build.0 = Release|x64
+ {56B75395-ED26-479B-B59F-DABB74513335}.Debug|x64.ActiveCfg = Debug|x64
+ {56B75395-ED26-479B-B59F-DABB74513335}.Debug|x64.Build.0 = Debug|x64
+ {56B75395-ED26-479B-B59F-DABB74513335}.Release|x64.ActiveCfg = Release|x64
+ {56B75395-ED26-479B-B59F-DABB74513335}.Release|x64.Build.0 = Release|x64
+ {3F05931E-4444-4616-A0AC-047809821B0E}.Debug|x64.ActiveCfg = Debug|x64
+ {3F05931E-4444-4616-A0AC-047809821B0E}.Debug|x64.Build.0 = Debug|x64
+ {3F05931E-4444-4616-A0AC-047809821B0E}.Release|x64.ActiveCfg = Release|x64
+ {3F05931E-4444-4616-A0AC-047809821B0E}.Release|x64.Build.0 = Release|x64
+ {965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|x64.ActiveCfg = Debug|x64
+ {965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|x64.Build.0 = Debug|x64
+ {965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|x64.ActiveCfg = Release|x64
+ {965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|x64.Build.0 = Release|x64
+ {0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|x64.ActiveCfg = Debug|x64
+ {0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|x64.Build.0 = Debug|x64
+ {0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|x64.ActiveCfg = Release|x64
+ {0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|x64.Build.0 = Release|x64
+ {C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|x64.ActiveCfg = Debug|x64
+ {C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|x64.Build.0 = Debug|x64
+ {C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|x64.ActiveCfg = Release|x64
+ {C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|x64.Build.0 = Release|x64
+ {6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|x64.ActiveCfg = Debug|x64
+ {6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|x64.Build.0 = Debug|x64
+ {6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|x64.ActiveCfg = Release|x64
+ {6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|x64.Build.0 = Release|x64
+ {3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|x64.ActiveCfg = Debug|x64
+ {3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|x64.Build.0 = Debug|x64
+ {3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|x64.ActiveCfg = Release|x64
+ {3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|x64.Build.0 = Release|x64
+ {3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|x64.ActiveCfg = Debug|x64
+ {3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|x64.Build.0 = Debug|x64
+ {3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|x64.ActiveCfg = Release|x64
+ {3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D9317002-F66D-4CDE-8FF5-FF2A0D8DC021}
+ EndGlobalSection
+EndGlobal
diff --git a/NaiveRating/Assembly-CSharp.NaiveRating.mm.csproj b/NaiveRating/Assembly-CSharp.NaiveRating.mm.csproj
deleted file mode 100644
index 752d61e..0000000
--- a/NaiveRating/Assembly-CSharp.NaiveRating.mm.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
- net35
- Assembly-CSharp.NaiveRating.mm
- 7EVENDAYS⇔HOLIDAYS
- Better rating for mu3
- 1.5.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
- ..\Common\UnityEngine.UI.dll
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/NaiveRating/MU3.CustomUI/patch_MU3UICounter.cs b/NaiveRating/MU3.CustomUI/patch_MU3UICounter.cs
new file mode 100644
index 0000000..71534e0
--- /dev/null
+++ b/NaiveRating/MU3.CustomUI/patch_MU3UICounter.cs
@@ -0,0 +1,18 @@
+namespace MU3.CustomUI;
+class patch_MU3UICounter: MU3UICounter {
+ protected extern void orig_calcNumFiguresFloat(double value);
+ protected new void calcNumFiguresFloat(double value) {
+ orig_calcNumFiguresFloat(value);
+ if(isDispSuffix) {
+ pushFigureFront(10);
+ }
+ }
+ public bool isDispSuffix { get; set; }
+ protected void pushFigureFront(byte c) {
+ for(int i = numFigures_; i > 0; --i) {
+ figures_[i] = figures_[i - 1];
+ }
+ figures_[0] = c;
+ numFigures_ += 1;
+ }
+}
diff --git a/NaiveRating/MU3.Data/patch_GameData.cs b/NaiveRating/MU3.Data/patch_GameData.cs
index 7bad8b0..cb159f0 100644
--- a/NaiveRating/MU3.Data/patch_GameData.cs
+++ b/NaiveRating/MU3.Data/patch_GameData.cs
@@ -1,15 +1,14 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.DB;
namespace MU3.Data;
-public class patch_GameData: GameData {
+class patch_GameData: GameData {
public extern static RatingColorID orig_getRatingColorIDFromRating100(int rating100);
public static new RatingColorID getRatingColorIDFromRating100(int rating100) {
- return orig_getRatingColorIDFromRating100(NaiveRating.Get());
+ if(NaiveRating.IsEnabled()) {
+ return orig_getRatingColorIDFromRating100(NaiveRating.Get());
+ } else {
+ return orig_getRatingColorIDFromRating100(rating100);
+ }
}
}
\ No newline at end of file
diff --git a/NaiveRating/MU3.SceneObject/patch_ANM_CMN_User.cs b/NaiveRating/MU3.SceneObject/patch_ANM_CMN_User.cs
new file mode 100644
index 0000000..f3099c8
--- /dev/null
+++ b/NaiveRating/MU3.SceneObject/patch_ANM_CMN_User.cs
@@ -0,0 +1,11 @@
+using MU3.CustomUI;
+
+namespace MU3.SceneObject;
+class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 {
+ private MU3UICounter rating;
+ public extern void orig_setUserDetail();
+ public new void setUserDetail() {
+ ((patch_MU3UICounter)rating).isDispSuffix = NaiveRating.IsEnabled();
+ orig_setUserDetail();
+ }
+}
diff --git a/NaiveRating/MU3.User/patch_UserManager.cs b/NaiveRating/MU3.User/patch_UserManager.cs
deleted file mode 100644
index 43fa544..0000000
--- a/NaiveRating/MU3.User/patch_UserManager.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using MU3.Game;
-
-namespace MU3.User;
-
-public class patch_UserManager: UserManager {
- public extern void orig_updateUserRating(SessionInfo sessionInfo, SessionResult result);
- public new void updateUserRating(SessionInfo sessionInfo, SessionResult result) {
- NaiveRating.PrevRating = NaiveRating.Get();
- orig_updateUserRating(sessionInfo, result);
- }
-}
\ No newline at end of file
diff --git a/NaiveRating/MU3.User/patch_UserOption.cs b/NaiveRating/MU3.User/patch_UserOption.cs
new file mode 100644
index 0000000..ae2dc7f
--- /dev/null
+++ b/NaiveRating/MU3.User/patch_UserOption.cs
@@ -0,0 +1,36 @@
+using MonoMod;
+
+namespace MU3.User;
+
+class patch_UserOption: UserOption {
+ [MonoModEnumReplace]
+ public enum patch_eRating {
+ OFF = 0,
+ Default = 1,
+ ON = 1,
+ Naive = 2,
+ MAX = 2
+ }
+ class patch_DataSet: DataSet {
+ private patch_eRating rating = patch_eRating.ON;
+ public extern bool orig_isMax(OptionName id);
+ public new bool isMax(OptionName id) {
+ if(id == OptionName.Rating) {
+ return rating == patch_eRating.MAX;
+ }
+ return orig_isMax(id);
+ }
+ public new patch_eRating Rating {
+ get => rating;
+ set {
+ if(patch_eRating.MAX < value) {
+ rating = patch_eRating.MAX;
+ } else if(value < patch_eRating.OFF) {
+ rating = patch_eRating.OFF;
+ } else {
+ rating = value;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/NaiveRating/MU3.User/patch_UserUtil.cs b/NaiveRating/MU3.User/patch_UserUtil.cs
index 4b08ab5..be89be2 100644
--- a/NaiveRating/MU3.User/patch_UserUtil.cs
+++ b/NaiveRating/MU3.User/patch_UserUtil.cs
@@ -1,15 +1,15 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MonoMod;
namespace MU3.User;
[MonoModPatch("global::MU3.User.UserUtil")]
public static class patch_UserUtil {
+ public extern static float orig_toRatingFloat(int rating);
public static float toRatingFloat(int rating) {
- return NaiveRating.Get() * 0.01f + 1E-05f;
+ if(NaiveRating.IsEnabled()) {
+ return orig_toRatingFloat(NaiveRating.Get());
+ } else {
+ return orig_toRatingFloat(rating);
+ }
}
}
\ No newline at end of file
diff --git a/NaiveRating/MU3/patch_ANM_SWH_Profile.cs b/NaiveRating/MU3/patch_ANM_SWH_Profile.cs
index b42c227..caf8364 100644
--- a/NaiveRating/MU3/patch_ANM_SWH_Profile.cs
+++ b/NaiveRating/MU3/patch_ANM_SWH_Profile.cs
@@ -1,21 +1,23 @@
-#pragma warning disable CS0626
-
using MU3.User;
using MU3.Util;
namespace MU3;
-public class patch_ANM_SWH_Profile: ANM_SWH_Profile {
+class patch_ANM_SWH_Profile: ANM_SWH_Profile {
public extern void orig_setUpLogin();
// Fixes login display
public new void setUpLogin() {
UserManager instance = Singleton.instance;
- var prev = instance.userPreview;
- var temp = prev;
- temp.dispRating = 0;
- instance.userPreview = temp;
- orig_setUpLogin();
- instance.userPreview = prev;
+ var up = instance.userPreview;
+ if(NaiveRating.IsEnabled()) {
+ up.dispRating = 0;
+ instance.userPreview = up;
+ orig_setUpLogin();
+ up.dispRating = 2;
+ instance.userPreview = up;
+ } else {
+ orig_setUpLogin();
+ }
}
}
\ No newline at end of file
diff --git a/NaiveRating/MU3/patch_OptionSelecterController.cs b/NaiveRating/MU3/patch_OptionSelecterController.cs
new file mode 100644
index 0000000..ffa0615
--- /dev/null
+++ b/NaiveRating/MU3/patch_OptionSelecterController.cs
@@ -0,0 +1,23 @@
+using MU3.CustomUI;
+using MU3.User;
+using MU3.Util;
+
+namespace MU3;
+class patch_OptionSelecterController: OptionSelecterController {
+ private chengeParamFuncArray[] cpFuncArray = new chengeParamFuncArray[35];
+ public extern void orig_init(UserOption.OptionName id);
+ private extern void orig_chengeParamOther(int currentParam);
+ public new void init(UserOption.OptionName id) {
+ orig_init(id);
+ cpFuncArray[33].max = 2;
+ }
+ private void chengeParamOther(int currentParam) {
+ if(myOptionId == UserOption.OptionName.Rating) {
+ transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent().patternNumber = currentParam != 0 ? 0f : 1f;
+ Singleton.instance.userOption.customSet.Rating = (UserOption.eRating)currentParam;
+ SingletonMonoBehaviour.instance.userData.setUserDetail();
+ } else {
+ orig_chengeParamOther(currentParam);
+ }
+ }
+}
diff --git a/NaiveRating/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs b/NaiveRating/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs
new file mode 100644
index 0000000..059a84d
--- /dev/null
+++ b/NaiveRating/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs
@@ -0,0 +1,10 @@
+namespace MU3;
+
+// It doesn't have to be PrePlayMusic_Confirm, but it prev rating has to be stored at some point
+class patch_Scene_32_PrePlayMusic_Confirm: Scene_32_PrePlayMusic_Confirm {
+ private extern void orig_Enter_Select();
+ private void Enter_Select() {
+ NaiveRating.SavePrev();
+ orig_Enter_Select();
+ }
+}
\ No newline at end of file
diff --git a/NaiveRating/MU3/patch_Scene_37_Result_Score.cs b/NaiveRating/MU3/patch_Scene_37_Result_Score.cs
deleted file mode 100644
index be365d4..0000000
--- a/NaiveRating/MU3/patch_Scene_37_Result_Score.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using MU3.Sequence;
-
-namespace MU3;
-
-public class patch_Scene_37_Result_Score: Scene_37_Result_Score {
- private PlayInfo playInfo_;
- private extern void orig_TechRating_Init();
-
- // Fixes rating+/rating- display
- private void TechRating_Init() {
- var origRating = playInfo_.sessionResult.rating_;
- var origPrevRating = playInfo_.sessionResult.prevRating_;
-
- playInfo_.sessionResult.rating_ = NaiveRating.Get();
- playInfo_.sessionResult.prevRating_ = NaiveRating.PrevRating;
-
- orig_TechRating_Init();
-
- playInfo_.sessionResult.rating_ = origRating;
- playInfo_.sessionResult.prevRating_ = origPrevRating;
- }
-}
\ No newline at end of file
diff --git a/NaiveRating/MU3/patch_UIResultBattlePoint.cs b/NaiveRating/MU3/patch_UIResultBattlePoint.cs
new file mode 100644
index 0000000..db9df6b
--- /dev/null
+++ b/NaiveRating/MU3/patch_UIResultBattlePoint.cs
@@ -0,0 +1,47 @@
+using MU3.CustomUI;
+using MU3.Sequence;
+using MU3.User;
+using UnityEngine;
+
+namespace MU3;
+class patch_UIResultBattlePoint: UIResultBattlePoint {
+ private Animator animator_;
+ private MU3UICounter counterScore_;
+ private MU3UIImageChanger imageHeader_;
+ private MU3UICounter counterScorePlus_;
+ private MU3UICounter counterScoreMinus_;
+ private GameObject hideScore_;
+
+ private extern void orig_disable(MU3UICounter counter);
+ private void disable(MU3UICounter counter) => orig_disable(counter);
+ public extern void orig_initTechRating(PlayInfo playInfo);
+ public new void initTechRating(PlayInfo playInfo) {
+ ((patch_MU3UICounter)counterScore_).isDispSuffix = NaiveRating.IsEnabled();
+ if(!NaiveRating.IsEnabled()) {
+ orig_initTechRating(playInfo);
+ return;
+ }
+ int prevRating = NaiveRating.PrevRating;
+ int rating1 = NaiveRating.Get();
+ if((bool)hideScore_) {
+ hideScore_.SetActive(false);
+ }
+ counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1);
+ int ratingPatternNo = UserUtil.toRatingPatternNo(rating1);
+ counterScore_.SpriteIndex = ratingPatternNo;
+ imageHeader_.patternNumber = (float)ratingPatternNo;
+ int rating2 = rating1 - prevRating;
+ if(rating2 == 0) {
+ disable(counterScorePlus_);
+ disable(counterScoreMinus_);
+ animator_.SetInteger(MU3.Sys.Const.AnimatorID_State, 2);
+ } else if(0 < rating2) {
+ disable(counterScoreMinus_);
+ if((bool)counterScorePlus_) {
+ counterScorePlus_.Counter = rating2 * 0.01f + 1E-05f;
+ }
+ animator_.SetInteger(MU3.Sys.Const.AnimatorID_State, 0);
+ }
+ animator_.SetTrigger(MU3.Sys.Const.AnimatorID_In);
+ }
+}
diff --git a/NaiveRating/MU3/NaiveRating.cs b/NaiveRating/NaiveRating.cs
similarity index 82%
rename from NaiveRating/MU3/NaiveRating.cs
rename to NaiveRating/NaiveRating.cs
index 6cf3bbc..f09b94b 100644
--- a/NaiveRating/MU3/NaiveRating.cs
+++ b/NaiveRating/NaiveRating.cs
@@ -1,8 +1,3 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.Data;
using MU3.DataStudio;
using MU3.User;
@@ -10,10 +5,8 @@ using MU3.Util;
using System.Collections.Generic;
using System.Linq;
-namespace MU3;
-
public static class NaiveRating {
- public static int PrevRating { get; set; }
+ public static int PrevRating { get; private set; }
// Adapted from MU3.User.UserRating.calcBest()
private static RatingList calcSane() {
@@ -53,4 +46,10 @@ public static class NaiveRating {
}
return res / 45;
}
+ public static bool IsEnabled() {
+ return Singleton.instance.userOption.customSet.Rating == (UserOption.eRating)patch_UserOption.patch_eRating.Naive;
+ }
+ public static void SavePrev() {
+ PrevRating = Get();
+ }
}
\ No newline at end of file
diff --git a/NaiveRating/NaiveRating.csproj b/NaiveRating/NaiveRating.csproj
new file mode 100644
index 0000000..8bf04e3
--- /dev/null
+++ b/NaiveRating/NaiveRating.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.NaiveRating.mm
+ Best45 rating
+
+
+
\ No newline at end of file
diff --git a/Pause/MU3.Battle/patch_GameEngine.cs b/Pause/MU3.Battle/patch_GameEngine.cs
index c2cf2fe..d213448 100644
--- a/Pause/MU3.Battle/patch_GameEngine.cs
+++ b/Pause/MU3.Battle/patch_GameEngine.cs
@@ -1,10 +1,8 @@
-#pragma warning disable CS0626
-
using MU3.Sequence;
namespace MU3.Battle;
-public class patch_GameEngine: GameEngine {
+class patch_GameEngine: GameEngine {
public extern void orig_reset();
public new void reset() {
orig_reset();
diff --git a/Pause/MU3.Game/patch_GameBGM.cs b/Pause/MU3.Game/patch_GameBGM.cs
index 0c94ca9..e1701b5 100644
--- a/Pause/MU3.Game/patch_GameBGM.cs
+++ b/Pause/MU3.Game/patch_GameBGM.cs
@@ -1,11 +1,9 @@
-#pragma warning disable CS0649
-
using MU3.Sound;
using MU3.Util;
namespace MU3.Game;
-public class patch_GameBGM: GameBGM {
+class patch_GameBGM: GameBGM {
private patch_SoundManager psm => ((patch_SoundManager)Singleton.instance);
private HandleInfo _handle;
public void pause(bool val) {
diff --git a/Pause/MU3.Sequence/patch_PlayMusic.cs b/Pause/MU3.Sequence/patch_PlayMusic.cs
index ed648a7..d6a8383 100644
--- a/Pause/MU3.Sequence/patch_PlayMusic.cs
+++ b/Pause/MU3.Sequence/patch_PlayMusic.cs
@@ -1,16 +1,11 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using MU3.Battle;
+using MU3.Battle;
using MU3.Game;
using MU3.Notes;
using MU3.Util;
namespace MU3.Sequence;
-public class patch_PlayMusic: PlayMusic {
+class patch_PlayMusic: PlayMusic {
private static readonly float PAUSE_CD = 5f;
private static readonly float UNPAUSE_CD = 0.5f;
private GameEngine _gameEngine;
@@ -27,7 +22,7 @@ public class patch_PlayMusic: PlayMusic {
}
public override bool updateState(float deltaTime = -1f) {
pauseTimer += deltaTime;
- if(Singleton.instance.getStateOn(UIInput.Key.Service)) {
+ if(Singleton.instance.getStateOn(UIInput.Key.Service) && !Singleton.instance.getStateOn(UIInput.Key.Test)) {
if((!Paused && pauseTimer >= PAUSE_CD) || (Paused && pauseTimer >= UNPAUSE_CD)) {
Paused = !Paused;
pgm.pause(Paused);
diff --git a/Pause/MU3.Sound/patch_SoundManager.cs b/Pause/MU3.Sound/patch_SoundManager.cs
index 01f28b9..d28b2a1 100644
--- a/Pause/MU3.Sound/patch_SoundManager.cs
+++ b/Pause/MU3.Sound/patch_SoundManager.cs
@@ -1,9 +1,6 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-
namespace MU3.Sound;
-public class patch_SoundManager: SoundManager {
+class patch_SoundManager: SoundManager {
private extern HandleInfo orig_getHandle(Priority priority);
private HandleInfo getHandle(Priority priority) => orig_getHandle(priority);
private patch_SoundPlayer[] _soundPlayers;
diff --git a/Pause/MU3.Sound/patch_SoundPlayer.cs b/Pause/MU3.Sound/patch_SoundPlayer.cs
index 60d8569..cd6e6a1 100644
--- a/Pause/MU3.Sound/patch_SoundPlayer.cs
+++ b/Pause/MU3.Sound/patch_SoundPlayer.cs
@@ -1,6 +1,3 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-
namespace MU3.Sound;
class patch_SoundPlayer: SoundPlayer {
diff --git a/Pause/Pause.csproj b/Pause/Pause.csproj
new file mode 100644
index 0000000..4d49fd0
--- /dev/null
+++ b/Pause/Pause.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.Pause.mm
+ Enables pausing the game with the service button
+
+
+
\ No newline at end of file
diff --git a/Pause/patch_GameDeviceManager.cs b/Pause/patch_GameDeviceManager.cs
index bcc9559..289155d 100644
--- a/Pause/patch_GameDeviceManager.cs
+++ b/Pause/patch_GameDeviceManager.cs
@@ -1,8 +1,6 @@
-#pragma warning disable CS0626
-
using MU3.Sequence;
-public class patch_GameDeviceManager: GameDeviceManager {
+class patch_GameDeviceManager: GameDeviceManager {
private extern void orig_update();
private void update() {
if(!patch_PlayMusic.Paused) {
diff --git a/README.md b/README.md
index 13475dc..0470fdf 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
## µ3 mods
-Miscellaneous mods for µ3/SDDT. Suggestions/PRs are welcome.
+Miscellaneous mods for Ongeki. Suggestions/PRs are welcome.
Visit [the wiki](https://gitea.tendokyu.moe/akanyan/mu3-mods/wiki) for more information.
### Supported versions
-- 1.39
-- 1.40
-- 1.45
\ No newline at end of file
+- 1.45
+
+1.39/1.40 should work but they are generally untested.
\ No newline at end of file
diff --git a/SkipLoginReward/Assembly-CSharp.SkipLoginReward.mm.csproj b/SkipLoginReward/Assembly-CSharp.SkipLoginReward.mm.csproj
deleted file mode 100644
index c91fc4f..0000000
--- a/SkipLoginReward/Assembly-CSharp.SkipLoginReward.mm.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- net35
- Assembly-CSharp.SkipLoginReward.mm
- 7EVENDAYS⇔HOLIDAYS
- Skip bullshit in mu3 that some individuals may consider useful
- 1.5.1
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
-
-
-
-
-
-
-
diff --git a/SkipLoginReward/MU3/patch_Scene_30_NoticeReward.cs b/SkipLoginReward/MU3/patch_Scene_30_NoticeReward.cs
deleted file mode 100644
index 975aaa4..0000000
--- a/SkipLoginReward/MU3/patch_Scene_30_NoticeReward.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
-using MU3.Util;
-
-namespace MU3;
-
-public class patch_Scene_30_NoticeReward: Scene_30_NoticeReward {
- private Mode _mode;
- private enum State {
- RankingReward = 2,
- FadeOut = 8,
- }
- private void RankingReward_Init() {
- _mode.set(State.FadeOut);
- }
-}
\ No newline at end of file
diff --git a/SkipNotice/Assembly-CSharp.SkipNotice.mm.csproj b/SkipNotice/Assembly-CSharp.SkipNotice.mm.csproj
deleted file mode 100644
index 01a88bb..0000000
--- a/SkipNotice/Assembly-CSharp.SkipNotice.mm.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- net35
- Assembly-CSharp.SkipNotice.mm
- 7EVENDAYS⇔HOLIDAYS
- Skip bullshit in mu3
- 1.5.1
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SkipNotice/MU3/patch_Scene_30_NoticeReward.cs b/SkipNotice/MU3/patch_Scene_30_NoticeReward.cs
index 59e969a..27efb18 100644
--- a/SkipNotice/MU3/patch_Scene_30_NoticeReward.cs
+++ b/SkipNotice/MU3/patch_Scene_30_NoticeReward.cs
@@ -1,20 +1,26 @@
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.Util;
namespace MU3;
-public class patch_Scene_30_NoticeReward: Scene_30_NoticeReward {
+class patch_Scene_30_NoticeReward: Scene_30_NoticeReward {
private Mode _mode;
+ public static bool Skipped { get; private set; }
private enum State {
RankingReward = 2,
FadeOut = 8,
}
private void Start() {
+ Skipped = false;
_mode = new Mode(this);
_mode.set(State.RankingReward);
SingletonMonoBehaviour.instance.Panel.pushState(0, show: true);
}
+ private void Update() {
+ if(_mode.get() < (int)State.FadeOut && Singleton.instance.getStateOn(UIInput.Key.MenuLeft)) {
+ Skipped = true;
+ _mode.set(State.FadeOut);
+ } else {
+ _mode.update();
+ }
+ }
}
\ No newline at end of file
diff --git a/SkipNotice/MU3/patch_UIGetRewards.cs b/SkipNotice/MU3/patch_UIGetRewards.cs
new file mode 100644
index 0000000..30f7b61
--- /dev/null
+++ b/SkipNotice/MU3/patch_UIGetRewards.cs
@@ -0,0 +1,18 @@
+namespace MU3;
+class patch_UIGetRewards: UIGetRewards {
+ private extern void orig_invokeOnFinish();
+ private extern void orig_startNextItem();
+ private void invokeOnFinish() => orig_invokeOnFinish();
+ private void startNextItem() {
+ if(!patch_Scene_30_NoticeReward.Skipped) {
+ orig_startNextItem();
+ }
+ }
+ void Update() {
+ // The panel state will still be screwed up for some reason but it won't crash
+ // This could be improved
+ if(patch_Scene_30_NoticeReward.Skipped) {
+ invokeOnFinish();
+ }
+ }
+}
diff --git a/SkipNotice/SkipNotice.csproj b/SkipNotice/SkipNotice.csproj
new file mode 100644
index 0000000..bd36f2f
--- /dev/null
+++ b/SkipNotice/SkipNotice.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.SkipNotice.mm
+ Skip event/safety notices
+
+
+
\ No newline at end of file
diff --git a/SkipPreMusicRitual/Assembly-CSharp.SkipPreMusicRitual.mm.csproj b/SkipPreMusicRitual/Assembly-CSharp.SkipPreMusicRitual.mm.csproj
deleted file mode 100644
index 49ec052..0000000
--- a/SkipPreMusicRitual/Assembly-CSharp.SkipPreMusicRitual.mm.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- net35
- Assembly-CSharp.SkipPreMusicRitual.mm
- 7EVENDAYS⇔HOLIDAYS
- Skip more bullshit in mu3
- 1.3.0
- true
- latest
- x64
-
-
-
- ..\Common\mscorlib.dll
- ..\Common\UnityEngine.dll
-
-
-
-
-
-
-
diff --git a/SkipPreMusicRitual/MU3.Battle/patch_GameEngine.cs b/SkipPreMusicRitual/MU3.Battle/patch_GameEngine.cs
deleted file mode 100644
index b9230cc..0000000
--- a/SkipPreMusicRitual/MU3.Battle/patch_GameEngine.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace MU3.Battle;
-
-public class patch_GameEngine: GameEngine {
- public new bool isStartCutsceneFinish() {
- return true;
- }
-}
\ No newline at end of file
diff --git a/SkipPreMusicRitual/MU3.Sequence/patch_PlayMusic.cs b/SkipPreMusicRitual/MU3.Sequence/patch_PlayMusic.cs
index 1c9a514..6f8799b 100644
--- a/SkipPreMusicRitual/MU3.Sequence/patch_PlayMusic.cs
+++ b/SkipPreMusicRitual/MU3.Sequence/patch_PlayMusic.cs
@@ -1,19 +1,20 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE0051
-#pragma warning disable IDE1006
-
using MU3.Battle;
+using MU3.Util;
namespace MU3.Sequence;
-public class patch_PlayMusic: PlayMusic {
+class patch_PlayMusic: PlayMusic {
private GameEngine _gameEngine;
private extern void orig_Execute_StartCutscene();
+ public static bool ForceSkipped { get; private set; }
private void Execute_StartCutscene() {
orig_Execute_StartCutscene();
- _gameEngine.skipStartCutscene();
- setNextState(EState.Countdown);
+ ForceSkipped = false;
+ if(Singleton.instance.config.isQuickStart || Singleton.instance.getStateOn(UIInput.Key.MenuLeft)) {
+ ForceSkipped = true;
+ _gameEngine.skipStartCutscene();
+ setNextState(EState.Countdown);
+ }
}
}
\ No newline at end of file
diff --git a/SkipPreMusicRitual/MU3/patch_BattleUI.cs b/SkipPreMusicRitual/MU3/patch_BattleUI.cs
index 4fbfa69..636fa00 100644
--- a/SkipPreMusicRitual/MU3/patch_BattleUI.cs
+++ b/SkipPreMusicRitual/MU3/patch_BattleUI.cs
@@ -1,11 +1,15 @@
-using MU3.Util;
+using MonoMod;
+using MU3.Sequence;
+using MU3.Util;
using System;
using UnityEngine;
namespace MU3;
-public class patch_BattleUI: BattleUI {
- private System.Collections.IEnumerator playReadyProc(Action onFinish) {
+class patch_BattleUI: BattleUI {
+ [MonoModIgnore]
+ private extern System.Collections.IEnumerator playReadyProc(Action onFinish);
+ private System.Collections.IEnumerator playReadyProcSkipped(Action onFinish) {
if(!SystemUI.Exists) {
onFinish();
yield break;
@@ -17,6 +21,15 @@ public class patch_BattleUI: BattleUI {
time -= Time.deltaTime;
}
onFinish();
- systemUI.removeCanvas(MU3.Graphics.Const.SortOrder.UI);
+ systemUI.removeCanvas(Graphics.Const.SortOrder.UI);
+ }
+
+ public new void playReady(Action onFinish) {
+ if(patch_PlayMusic.ForceSkipped) {
+ StartCoroutine(playReadyProcSkipped(onFinish));
+ } else {
+ StartCoroutine(playReadyProc(onFinish));
+ }
+
}
}
\ No newline at end of file
diff --git a/SkipPreMusicRitual/SkipPreMusicRitual.csproj b/SkipPreMusicRitual/SkipPreMusicRitual.csproj
new file mode 100644
index 0000000..f75d9df
--- /dev/null
+++ b/SkipPreMusicRitual/SkipPreMusicRitual.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.SkipPreMusicRitual.mm
+ Skip "Are you ready? Let's shoot"
+
+
+
diff --git a/SortByInternalDifficulty/InternalSortPreview.cs b/SortByInternalDifficulty/InternalSortPreview.cs
new file mode 100644
index 0000000..75bdc75
--- /dev/null
+++ b/SortByInternalDifficulty/InternalSortPreview.cs
@@ -0,0 +1,649 @@
+public static class InternalSortPreview {
+ // This really shouldn't be a png but it's just one texture
+ public static byte[] Bytes = {
+ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
+ 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x79, 0x08, 0x02, 0x00, 0x00, 0x00, 0x96, 0x41, 0x0b,
+ 0x66, 0x00, 0x00, 0x20, 0x00, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x7d, 0x79, 0x9c, 0x5d,
+ 0x45, 0x99, 0xf6, 0xf3, 0x56, 0xd5, 0xd9, 0xee, 0x3d, 0x77, 0xe9, 0xdb, 0x7b, 0xf6, 0x74, 0x36,
+ 0x02, 0x49, 0x20, 0x40, 0x00, 0x59, 0x12, 0xf6, 0x45, 0x50, 0x50, 0xc1, 0x05, 0x18, 0x44, 0x70,
+ 0x54, 0xd4, 0xc1, 0x9f, 0x8c, 0x0b, 0xa3, 0xb8, 0x7c, 0xae, 0x88, 0x8a, 0xe8, 0x8c, 0xe3, 0x38,
+ 0xa0, 0xe8, 0xa7, 0xce, 0xb8, 0x7e, 0x20, 0xca, 0x22, 0x20, 0x10, 0x96, 0x18, 0x20, 0x92, 0x10,
+ 0x76, 0xb2, 0xef, 0xbd, 0xdf, 0xbe, 0xfb, 0x3d, 0x4b, 0x55, 0x7d, 0x7f, 0xdc, 0x5e, 0x6e, 0x87,
+ 0xee, 0x24, 0xae, 0xb1, 0xd3, 0xe7, 0xf9, 0xd5, 0x1f, 0xdd, 0xe7, 0x9e, 0x7b, 0x96, 0xb7, 0x9e,
+ 0x7a, 0xeb, 0xa9, 0xb7, 0xde, 0xaa, 0x4b, 0x9f, 0x79, 0x1b, 0x22, 0xec, 0x03, 0xc4, 0x38, 0x00,
+ 0xad, 0x64, 0x64, 0x8a, 0x43, 0x06, 0x8c, 0x00, 0x40, 0x44, 0x86, 0xd8, 0x0f, 0xf5, 0x89, 0x00,
+ 0xe8, 0xc8, 0x10, 0x87, 0x10, 0x94, 0x06, 0x00, 0x16, 0x19, 0x22, 0xc2, 0x24, 0xf5, 0xfd, 0x91,
+ 0x09, 0x22, 0x44, 0xd4, 0x8f, 0x10, 0x21, 0xa2, 0x7e, 0x84, 0x08, 0x11, 0xf5, 0x23, 0x44, 0x88,
+ 0xa8, 0x1f, 0x21, 0x42, 0x44, 0xfd, 0x08, 0x11, 0x22, 0xea, 0x47, 0x88, 0x10, 0x51, 0x3f, 0x42,
+ 0x84, 0x88, 0xfa, 0x11, 0x22, 0x44, 0xd4, 0x8f, 0x10, 0x21, 0xa2, 0x7e, 0x84, 0x08, 0x11, 0xf5,
+ 0x23, 0x44, 0x88, 0xa8, 0x1f, 0x21, 0x42, 0x44, 0xfd, 0x08, 0x11, 0x22, 0xea, 0x47, 0x88, 0x10,
+ 0x51, 0x3f, 0x42, 0x84, 0xbf, 0x3a, 0x46, 0xad, 0xd2, 0xfa, 0xef, 0xfb, 0x09, 0x80, 0x54, 0xd1,
+ 0x9a, 0x24, 0x00, 0x90, 0x8a, 0xdd, 0x79, 0xc7, 0xff, 0x1e, 0xb1, 0x78, 0x19, 0x54, 0x31, 0xa8,
+ 0x96, 0x26, 0xc4, 0x33, 0x2b, 0x12, 0x00, 0xb8, 0x30, 0x0a, 0x85, 0xc2, 0x79, 0xe7, 0x5d, 0xd8,
+ 0xd3, 0xdb, 0x5f, 0x3b, 0x6e, 0xf0, 0xa8, 0x3e, 0x01, 0xe0, 0x9a, 0x73, 0xc7, 0xa1, 0x7e, 0x57,
+ 0x0e, 0x00, 0x74, 0xc4, 0x7c, 0x00, 0xc0, 0xfb, 0xde, 0xf3, 0xae, 0xe3, 0x4e, 0x7e, 0xa3, 0x29,
+ 0x42, 0xa0, 0x51, 0x2b, 0x35, 0x31, 0x1e, 0x5a, 0x0b, 0x00, 0x50, 0x61, 0x63, 0x9b, 0xfb, 0xe9,
+ 0xcf, 0x7e, 0xfe, 0xf2, 0x2b, 0x3f, 0x50, 0x3b, 0x4c, 0x14, 0xd5, 0xe7, 0xde, 0xe0, 0xa7, 0x2e,
+ 0x1a, 0xf9, 0x67, 0xe5, 0x0b, 0x14, 0x51, 0xbf, 0x86, 0xb6, 0xd6, 0x96, 0x5f, 0xfd, 0xf2, 0xa7,
+ 0x6e, 0x22, 0x05, 0x55, 0x05, 0x34, 0x11, 0x26, 0x46, 0x91, 0x9a, 0xb4, 0x26, 0x80, 0x18, 0xe6,
+ 0xcc, 0x5f, 0xbc, 0x76, 0xcd, 0x93, 0x1b, 0x37, 0x6f, 0x89, 0x6a, 0x73, 0x18, 0xf5, 0x6c, 0x8f,
+ 0xb4, 0xfe, 0xd8, 0xf8, 0xce, 0x2d, 0x37, 0x65, 0x9a, 0xa6, 0x40, 0x0e, 0xeb, 0x1c, 0x3d, 0xa1,
+ 0x0a, 0x10, 0x06, 0x4e, 0x2c, 0xfe, 0xf5, 0x5b, 0xbe, 0x11, 0x8b, 0xc5, 0xa2, 0xda, 0xdc, 0xff,
+ 0x30, 0x57, 0x6b, 0xad, 0x23, 0x9f, 0x0f, 0xbc, 0xf9, 0x4d, 0xe7, 0x9f, 0x7b, 0xe1, 0x25, 0x5a,
+ 0x96, 0xa1, 0x42, 0x28, 0x05, 0xa5, 0xa0, 0x30, 0x31, 0x0a, 0xd3, 0x43, 0x45, 0x31, 0x5d, 0x98,
+ 0xbf, 0xe0, 0x88, 0xcf, 0xdc, 0xf0, 0x91, 0xa8, 0x42, 0xa3, 0x08, 0xcf, 0x01, 0xa1, 0xa9, 0x29,
+ 0xf3, 0xcd, 0x9b, 0xbf, 0x68, 0x3b, 0x31, 0x0a, 0xab, 0xf5, 0x6e, 0x61, 0xe2, 0x15, 0x1d, 0x70,
+ 0xf2, 0xae, 0xf9, 0xc0, 0x75, 0xcb, 0x8e, 0x5d, 0x1a, 0x55, 0x6b, 0x44, 0xfd, 0xfd, 0xe3, 0xd3,
+ 0x9f, 0xbc, 0x6e, 0xea, 0x8c, 0x23, 0x42, 0x3f, 0x0f, 0x9a, 0x98, 0x8c, 0xaf, 0x97, 0x3d, 0xaa,
+ 0x92, 0x48, 0xa6, 0xbe, 0xf1, 0xf5, 0x2f, 0x46, 0xd5, 0x1a, 0x51, 0x7f, 0x3f, 0x38, 0xe5, 0xa4,
+ 0xe3, 0xdf, 0x75, 0xf5, 0xbf, 0x28, 0xe5, 0x2b, 0x19, 0x4c, 0x70, 0xde, 0xeb, 0xc1, 0xce, 0x4a,
+ 0x66, 0x8f, 0x3b, 0xe1, 0xf4, 0x6b, 0x3f, 0x70, 0x55, 0x54, 0xb9, 0x11, 0xf5, 0xf7, 0x85, 0x6f,
+ 0x7f, 0xe3, 0x46, 0x37, 0x91, 0xe4, 0x61, 0xd1, 0xe0, 0x0a, 0x5a, 0x4f, 0xec, 0xa2, 0x34, 0x94,
+ 0x46, 0x18, 0x18, 0xa6, 0xfe, 0xec, 0xe7, 0xbe, 0x3c, 0xb7, 0x63, 0x46, 0x54, 0xbf, 0x11, 0xf5,
+ 0xc7, 0xc6, 0xf5, 0xd7, 0xbd, 0xff, 0xf0, 0xa5, 0x27, 0x22, 0xe8, 0x07, 0x81, 0xb4, 0x9e, 0xf0,
+ 0x5e, 0xbf, 0xd6, 0x00, 0x00, 0xf8, 0x85, 0x86, 0x4c, 0xe6, 0xe6, 0xaf, 0x7c, 0x3a, 0xaa, 0xe2,
+ 0x88, 0xfa, 0x63, 0x60, 0xc1, 0xbc, 0x39, 0x1f, 0xff, 0xd4, 0xe7, 0xb8, 0x08, 0x21, 0xfd, 0x09,
+ 0x3c, 0xb4, 0x1d, 0xbb, 0x0d, 0x28, 0xaf, 0x5a, 0x3e, 0xfb, 0xfc, 0x4b, 0xde, 0x72, 0xd1, 0x79,
+ 0x51, 0x45, 0x47, 0xd4, 0xdf, 0x1b, 0xdf, 0xfa, 0xe6, 0x17, 0xd2, 0xe9, 0x06, 0x78, 0x45, 0x00,
+ 0xd0, 0x0a, 0x7a, 0xe2, 0x0b, 0x9e, 0xba, 0xa2, 0xb5, 0xb6, 0x9c, 0xd8, 0x57, 0x6e, 0xba, 0xc9,
+ 0x8d, 0x47, 0x61, 0xfe, 0x88, 0xfa, 0x75, 0xb8, 0xe2, 0xd2, 0xb7, 0x9d, 0x7a, 0xfa, 0xf9, 0xda,
+ 0xeb, 0xd1, 0x50, 0x4a, 0xc9, 0x5a, 0x99, 0xe8, 0x2f, 0xa5, 0x95, 0x1c, 0x2e, 0xa6, 0x2e, 0xeb,
+ 0x4a, 0xdf, 0xcc, 0xd9, 0x0b, 0x6e, 0xfc, 0xd2, 0x0d, 0x51, 0x75, 0xd7, 0x20, 0x34, 0x08, 0x00,
+ 0x41, 0x03, 0x58, 0xbe, 0x7c, 0x39, 0x80, 0x52, 0xa9, 0x34, 0xa9, 0x4c, 0xd0, 0x90, 0x8c, 0x7f,
+ 0xfd, 0xa6, 0x4f, 0x99, 0x96, 0xa3, 0xab, 0x05, 0x10, 0x63, 0x4e, 0x1a, 0x00, 0x60, 0x01, 0x13,
+ 0x3b, 0xf1, 0x85, 0x30, 0x98, 0x77, 0xa4, 0xc3, 0x32, 0x05, 0x25, 0x68, 0xc9, 0x83, 0xfe, 0x2b,
+ 0xae, 0x7c, 0xff, 0xa3, 0x4f, 0xac, 0xdb, 0xb0, 0x61, 0xc3, 0xa0, 0xe7, 0x63, 0x93, 0xcb, 0xf7,
+ 0x69, 0x3c, 0x33, 0x62, 0x9f, 0xff, 0xf3, 0x0e, 0x01, 0x40, 0xa9, 0x10, 0xc0, 0xfb, 0x6e, 0xd9,
+ 0x03, 0x20, 0x08, 0x82, 0x49, 0x65, 0x0e, 0xc3, 0xa0, 0xd6, 0x34, 0x23, 0xbb, 0x05, 0x5a, 0xaa,
+ 0x4a, 0xaf, 0xca, 0xbf, 0xa2, 0x8a, 0x3b, 0xb4, 0x5f, 0x98, 0xe8, 0x5d, 0x22, 0x31, 0x06, 0x80,
+ 0x39, 0xcd, 0x14, 0x9f, 0xce, 0x62, 0xd3, 0xc8, 0x69, 0xd5, 0x95, 0x2e, 0x10, 0xef, 0x29, 0x50,
+ 0xa5, 0x52, 0x99, 0x6c, 0xa4, 0xaf, 0xe1, 0xf6, 0x8f, 0x77, 0x8c, 0x78, 0xfd, 0xfa, 0x0f, 0x3c,
+ 0xcf, 0x03, 0x90, 0x48, 0x24, 0x0e, 0xfd, 0xd6, 0x3f, 0x94, 0xaf, 0x61, 0x9a, 0x66, 0x22, 0xe1,
+ 0x40, 0x4b, 0xd9, 0xfd, 0x87, 0x70, 0xfb, 0xaf, 0xc3, 0xe2, 0x36, 0x66, 0x36, 0xc0, 0x6a, 0x64,
+ 0x4e, 0x3b, 0xf1, 0xd8, 0x28, 0x7f, 0x31, 0x51, 0x7c, 0xfd, 0x08, 0xf5, 0xa1, 0x2a, 0xdd, 0x41,
+ 0xee, 0x25, 0x78, 0x59, 0xc6, 0x14, 0x6b, 0x58, 0xca, 0xdb, 0x4f, 0x67, 0x0d, 0x4b, 0x5a, 0x9c,
+ 0x52, 0x2e, 0xc7, 0xc2, 0x10, 0x00, 0x88, 0x26, 0xaf, 0xe2, 0x15, 0x35, 0x7f, 0x5f, 0x83, 0x65,
+ 0x59, 0x00, 0xc2, 0x30, 0x3c, 0xe4, 0x5f, 0x5b, 0xd5, 0x92, 0x90, 0x99, 0x0c, 0xbd, 0x72, 0xcc,
+ 0x7b, 0xde, 0x7b, 0xf1, 0x56, 0x78, 0x7d, 0xbc, 0x7d, 0x85, 0x33, 0xfb, 0xed, 0x14, 0x6f, 0x45,
+ 0x75, 0x00, 0x32, 0x50, 0xb2, 0x0c, 0x48, 0x60, 0x82, 0xa6, 0xba, 0x4b, 0xc6, 0x6d, 0xf0, 0x63,
+ 0x20, 0x6c, 0x70, 0x5b, 0x66, 0x5f, 0x0d, 0xb6, 0xfd, 0xda, 0xdb, 0x7a, 0xad, 0x68, 0x3f, 0x8d,
+ 0x8e, 0xf8, 0x80, 0x4e, 0x34, 0x85, 0x7d, 0xfd, 0x5a, 0xca, 0xc9, 0xe6, 0xfb, 0xeb, 0xd9, 0x3e,
+ 0xca, 0xeb, 0x4f, 0x2e, 0x43, 0x90, 0xd6, 0x08, 0x93, 0xbb, 0xbe, 0x5f, 0xde, 0xf6, 0xa0, 0x35,
+ 0xef, 0x52, 0x63, 0xe6, 0x9b, 0x54, 0xd8, 0x1f, 0x6c, 0xbf, 0x27, 0xdc, 0x79, 0xbf, 0xcc, 0x6d,
+ 0x80, 0x56, 0x14, 0xd6, 0x82, 0x83, 0x13, 0x54, 0xf1, 0x6b, 0x2d, 0x08, 0xc4, 0x78, 0xac, 0x59,
+ 0x34, 0x1d, 0x46, 0x4d, 0x67, 0x5b, 0x8b, 0xae, 0xd3, 0xb2, 0x52, 0x5d, 0xfb, 0x05, 0x7e, 0xdf,
+ 0x59, 0xd6, 0xb1, 0x5f, 0xd1, 0x6d, 0x67, 0x07, 0xb9, 0x1c, 0x42, 0x7f, 0xd2, 0x86, 0x3a, 0x0e,
+ 0xfd, 0xdf, 0xd2, 0x62, 0x60, 0x0a, 0x6a, 0x34, 0x29, 0x24, 0x08, 0x1a, 0x61, 0x7c, 0xfd, 0xbb,
+ 0x55, 0x90, 0x8d, 0x9f, 0x71, 0x07, 0x64, 0xa1, 0xb2, 0xe6, 0x06, 0xb5, 0xf3, 0x41, 0x59, 0x29,
+ 0x68, 0xa3, 0x04, 0x15, 0xc0, 0x00, 0xab, 0xf7, 0xf7, 0x13, 0x25, 0xa1, 0xb5, 0x6e, 0x4d, 0x8a,
+ 0x92, 0x12, 0x12, 0xaa, 0xba, 0x3b, 0xec, 0x7f, 0x09, 0x5b, 0x7e, 0x4f, 0x22, 0x6e, 0x1d, 0xf6,
+ 0xde, 0xd8, 0x09, 0xdf, 0x44, 0x76, 0x8d, 0xb7, 0xfa, 0x43, 0x76, 0xc7, 0xa5, 0xea, 0xb0, 0xeb,
+ 0xc3, 0x12, 0xa3, 0x91, 0x79, 0x8c, 0xfa, 0xcb, 0xd0, 0x21, 0x9f, 0xc3, 0x7b, 0xe8, 0x53, 0x5f,
+ 0x2a, 0x29, 0x21, 0x99, 0xc9, 0x58, 0xc0, 0x40, 0xd0, 0x5a, 0x92, 0x99, 0xd6, 0xc1, 0x80, 0xfb,
+ 0xec, 0x55, 0x66, 0x6a, 0x96, 0x79, 0xc4, 0x77, 0x82, 0xad, 0x77, 0x54, 0x9f, 0xbb, 0x19, 0xe5,
+ 0x1e, 0xa5, 0xaa, 0xb0, 0x15, 0x08, 0xe0, 0x00, 0xed, 0xe5, 0xee, 0x69, 0xa2, 0x56, 0xaf, 0x96,
+ 0x1a, 0x15, 0x54, 0x7d, 0x8d, 0xde, 0xea, 0xfa, 0x9b, 0xfc, 0xcd, 0x3f, 0x4b, 0x9c, 0x7a, 0x9b,
+ 0x75, 0xf6, 0xfd, 0xde, 0xca, 0xb7, 0xc5, 0xb4, 0xce, 0x76, 0x7c, 0xc6, 0x50, 0x59, 0xad, 0x47,
+ 0x22, 0xb9, 0x5a, 0x68, 0xe9, 0x4b, 0x06, 0x76, 0xc8, 0x4b, 0x80, 0x31, 0xa8, 0x4f, 0x9c, 0x01,
+ 0x08, 0x43, 0x05, 0x80, 0x71, 0x53, 0xf3, 0x04, 0x00, 0x92, 0x05, 0x7d, 0x90, 0x54, 0x2f, 0x41,
+ 0x02, 0xa8, 0x3d, 0x06, 0x53, 0x0a, 0x61, 0x7e, 0xe8, 0x83, 0xfd, 0x87, 0xde, 0xc3, 0x20, 0xd4,
+ 0x5a, 0xc7, 0xda, 0x63, 0xe8, 0xc5, 0x00, 0x1b, 0x70, 0xa4, 0x63, 0x59, 0x2d, 0x20, 0x26, 0xd6,
+ 0xbf, 0x4b, 0xb8, 0xd3, 0xcd, 0x25, 0x5f, 0xae, 0xae, 0xfb, 0x78, 0x75, 0xfd, 0x1d, 0xcc, 0xce,
+ 0x92, 0x6d, 0x30, 0xcd, 0x46, 0xaf, 0xe4, 0x9b, 0xd8, 0xc1, 0xcd, 0xc1, 0x5e, 0xab, 0xf6, 0x12,
+ 0x16, 0x01, 0x00, 0xcb, 0xcb, 0xde, 0x67, 0x0b, 0xf7, 0xbc, 0xc1, 0x39, 0xf5, 0xbb, 0xd6, 0x8a,
+ 0x9f, 0x96, 0x1f, 0xba, 0x80, 0xfb, 0x09, 0x31, 0xff, 0xc3, 0xbe, 0xdf, 0x0f, 0xc0, 0x54, 0xc8,
+ 0xa1, 0x90, 0x52, 0x09, 0x34, 0x53, 0xae, 0xaf, 0x6c, 0x86, 0x66, 0x8d, 0xfd, 0xe3, 0xb5, 0x01,
+ 0xad, 0x39, 0x00, 0xce, 0x02, 0x00, 0x92, 0x4c, 0xcd, 0xdd, 0x21, 0x67, 0xe3, 0x1d, 0x9c, 0xf7,
+ 0xad, 0xaf, 0x3b, 0x61, 0xe9, 0xb0, 0x0a, 0x59, 0xc5, 0x50, 0xe0, 0xfe, 0x80, 0xa8, 0x1f, 0x4a,
+ 0x05, 0x80, 0xcc, 0x34, 0x00, 0xca, 0xad, 0x63, 0xc5, 0x8d, 0x00, 0x20, 0xe2, 0x06, 0x82, 0x51,
+ 0x86, 0xfd, 0xbb, 0x0d, 0x4d, 0x6a, 0x8f, 0x4e, 0x8c, 0x82, 0x42, 0x60, 0xcf, 0x40, 0x62, 0x31,
+ 0x44, 0x0a, 0x61, 0x6e, 0x7f, 0x3d, 0x3f, 0x05, 0x41, 0xe0, 0x17, 0xfd, 0xd4, 0x9c, 0x54, 0xea,
+ 0xe5, 0x54, 0xfe, 0xf1, 0x1e, 0xf5, 0x66, 0x05, 0x80, 0x88, 0xe3, 0xa5, 0x4f, 0x70, 0x06, 0xfb,
+ 0xe8, 0x9b, 0xaa, 0x6b, 0xaf, 0xaf, 0xae, 0xfb, 0x29, 0x8b, 0x97, 0x89, 0x0b, 0x60, 0x68, 0x86,
+ 0xe3, 0x10, 0x1a, 0xcd, 0xec, 0xfd, 0xa7, 0xd6, 0xcc, 0x21, 0x55, 0xda, 0x55, 0x7e, 0xe8, 0xaa,
+ 0xd8, 0xe9, 0xdf, 0x8f, 0x9d, 0x76, 0x97, 0xff, 0xd0, 0x79, 0x15, 0xf7, 0x64, 0xbb, 0xfd, 0x18,
+ 0xdf, 0xef, 0x23, 0x70, 0x0d, 0x45, 0x0f, 0x20, 0x39, 0xcd, 0xd5, 0xcb, 0x45, 0xcf, 0x8e, 0x1e,
+ 0xd7, 0x70, 0x39, 0xdf, 0x87, 0xbf, 0xa3, 0x1a, 0xef, 0x15, 0x6f, 0xd4, 0xa4, 0x79, 0xdf, 0x2a,
+ 0x54, 0xbb, 0x00, 0x18, 0xc2, 0x38, 0x48, 0x83, 0x9b, 0x11, 0x59, 0x6b, 0x89, 0x72, 0x8e, 0x1d,
+ 0xc6, 0x9b, 0x96, 0x02, 0x80, 0x97, 0x3d, 0x20, 0xea, 0x6b, 0xad, 0x39, 0xe7, 0x8a, 0x27, 0x91,
+ 0x7f, 0x91, 0xf5, 0xaf, 0x4a, 0x3a, 0x8c, 0xc5, 0x92, 0xaa, 0xda, 0xcb, 0x2c, 0x46, 0xfa, 0xe0,
+ 0xb4, 0x66, 0xd2, 0x43, 0x55, 0xc8, 0x95, 0x52, 0x2f, 0x0f, 0xec, 0x5a, 0x07, 0x67, 0x36, 0x5a,
+ 0xce, 0x27, 0x54, 0xb5, 0x2c, 0x8f, 0xf7, 0xad, 0x20, 0x08, 0x8a, 0xc5, 0x62, 0x53, 0x47, 0x53,
+ 0x7c, 0x6b, 0x9c, 0xdd, 0xcc, 0xc4, 0x14, 0xd3, 0x2f, 0xfa, 0x96, 0x6c, 0x45, 0x75, 0x0d, 0xba,
+ 0xee, 0x73, 0xce, 0xb9, 0x27, 0xd8, 0xf6, 0x8b, 0xea, 0xba, 0xff, 0x65, 0xf1, 0x32, 0xbd, 0xa6,
+ 0x76, 0x09, 0xe1, 0x6b, 0xf8, 0x43, 0x7b, 0x91, 0x89, 0xfe, 0xdc, 0xce, 0x41, 0xef, 0x9f, 0xac,
+ 0xfa, 0xcf, 0xbd, 0x92, 0x1e, 0x75, 0x50, 0xef, 0xfd, 0xa1, 0x26, 0x01, 0x02, 0xc5, 0x85, 0x2e,
+ 0x75, 0x97, 0x1f, 0xba, 0x2a, 0x79, 0xe9, 0x0e, 0x77, 0xe1, 0x0d, 0x6a, 0xcb, 0xe7, 0x0b, 0xee,
+ 0xdd, 0x8e, 0x63, 0x42, 0xca, 0x3c, 0x4a, 0x0d, 0x5b, 0x53, 0xec, 0x77, 0x2c, 0xdd, 0x92, 0xd6,
+ 0x0b, 0x74, 0xef, 0xce, 0x5e, 0x17, 0x2e, 0x63, 0x0c, 0x34, 0xc6, 0xdd, 0x38, 0x0b, 0x14, 0x8f,
+ 0x03, 0x96, 0xec, 0x7a, 0x20, 0x1d, 0xbe, 0x44, 0x86, 0xcd, 0x62, 0x49, 0x00, 0x84, 0xea, 0x41,
+ 0xe2, 0xc9, 0x88, 0x0a, 0x50, 0xc2, 0x49, 0x55, 0xd6, 0xc9, 0x6d, 0x8f, 0x17, 0xec, 0x65, 0x68,
+ 0x3c, 0x41, 0xa0, 0x08, 0x19, 0xec, 0x8b, 0xfa, 0x35, 0xde, 0x07, 0xcc, 0x65, 0x3b, 0x7f, 0x96,
+ 0x76, 0xfa, 0x83, 0x74, 0x23, 0xab, 0xf6, 0xa9, 0x9e, 0x27, 0x82, 0xdd, 0x0f, 0x6b, 0x2f, 0x4b,
+ 0x5c, 0x1e, 0xa4, 0x57, 0x02, 0x00, 0xb2, 0x9a, 0x78, 0x6a, 0x01, 0x25, 0x97, 0x36, 0x66, 0xa6,
+ 0x4b, 0x6f, 0xd7, 0xc0, 0xf6, 0xff, 0xac, 0xb6, 0xbc, 0xdd, 0x89, 0xa5, 0x55, 0x30, 0xb0, 0x77,
+ 0x05, 0x43, 0x87, 0x61, 0x58, 0x2a, 0x95, 0x52, 0xb3, 0x1b, 0xdd, 0x6d, 0x2e, 0x7d, 0x57, 0x61,
+ 0x00, 0x72, 0x81, 0xef, 0xe5, 0x3d, 0x87, 0xdb, 0xe8, 0xfc, 0x1a, 0x66, 0x5e, 0xad, 0xb5, 0xae,
+ 0x3c, 0x7d, 0x03, 0x73, 0xca, 0xc4, 0xf7, 0xc9, 0x5d, 0xc2, 0x01, 0xe8, 0x7d, 0xfd, 0x27, 0xb5,
+ 0x01, 0xda, 0x57, 0x1b, 0xd0, 0x07, 0xf6, 0x5d, 0x3d, 0xd6, 0xd7, 0xf4, 0x18, 0x67, 0xeb, 0xb1,
+ 0x6e, 0xcc, 0xa8, 0xc6, 0xfe, 0xea, 0xe3, 0x6f, 0xb6, 0x4f, 0xfc, 0x79, 0x6c, 0xe3, 0xff, 0xab,
+ 0xf6, 0xfe, 0xb2, 0xdc, 0xf8, 0x66, 0x33, 0xd7, 0xa7, 0xa0, 0x72, 0x8d, 0x85, 0x74, 0x3e, 0xc1,
+ 0xbe, 0x1d, 0x34, 0x7c, 0xa0, 0x01, 0x0b, 0xd0, 0xbb, 0xb3, 0xd7, 0x55, 0xae, 0x61, 0xbd, 0xc6,
+ 0x91, 0x6b, 0xa5, 0x84, 0xab, 0xc3, 0x40, 0xee, 0xfa, 0x49, 0x43, 0x2c, 0x34, 0xe2, 0x19, 0x99,
+ 0xdf, 0x1a, 0x76, 0xaf, 0x0e, 0xbb, 0xff, 0x48, 0xba, 0xf7, 0x20, 0xf2, 0x04, 0x80, 0x76, 0xa6,
+ 0x23, 0x7d, 0xac, 0x68, 0x98, 0x6b, 0x26, 0xda, 0x53, 0xc5, 0x3f, 0xe6, 0x76, 0x6d, 0x0a, 0xa7,
+ 0x5d, 0x2e, 0x78, 0x69, 0x2f, 0x25, 0x26, 0xf6, 0xea, 0xc1, 0xa4, 0x68, 0xd0, 0x5b, 0x6e, 0x4b,
+ 0x27, 0xaa, 0x46, 0xe3, 0xe2, 0xd2, 0xaa, 0xaf, 0x85, 0xdd, 0x4f, 0x81, 0xf9, 0xc4, 0xca, 0x80,
+ 0x44, 0xb8, 0x7f, 0x1a, 0xe8, 0x3a, 0xbd, 0x45, 0x07, 0x14, 0x22, 0xd0, 0xe3, 0x5c, 0x53, 0xef,
+ 0x1d, 0x5c, 0xf1, 0xfb, 0xd5, 0xc0, 0xd6, 0x30, 0x5c, 0xc9, 0x63, 0x53, 0x63, 0xc7, 0x7d, 0xb8,
+ 0xa1, 0xb5, 0xb9, 0x7b, 0xeb, 0x2d, 0xc1, 0x9c, 0xeb, 0xb4, 0x68, 0x40, 0xd0, 0xcf, 0x01, 0x62,
+ 0x04, 0x40, 0x49, 0x2d, 0xfd, 0xb0, 0x32, 0x50, 0x69, 0x9c, 0xde, 0x98, 0xd8, 0x94, 0xd0, 0xdf,
+ 0x09, 0x8d, 0xdd, 0x46, 0x6e, 0x5a, 0xff, 0x86, 0xd8, 0xf6, 0x86, 0xec, 0xec, 0x29, 0xc6, 0x3a,
+ 0xd9, 0xeb, 0x59, 0x47, 0xbd, 0xd3, 0x5b, 0xf3, 0x11, 0x2a, 0x66, 0x91, 0xe0, 0x7f, 0x92, 0x5e,
+ 0x18, 0x37, 0xd6, 0x49, 0x38, 0x30, 0x6f, 0x3d, 0x4a, 0x76, 0x1e, 0xb8, 0x87, 0xa7, 0xfd, 0x35,
+ 0x8f, 0xf1, 0xda, 0x9c, 0x1e, 0xcb, 0x5b, 0x43, 0x29, 0x00, 0xe4, 0x70, 0xef, 0x95, 0x07, 0x8c,
+ 0x86, 0x67, 0xcc, 0x69, 0x9f, 0x6c, 0x78, 0xe5, 0x5b, 0xd5, 0xcc, 0xc5, 0xe1, 0x6e, 0xa6, 0x35,
+ 0xdf, 0xe3, 0xf6, 0xd3, 0x74, 0x6a, 0xed, 0x6a, 0xc7, 0xcd, 0x81, 0x71, 0x8d, 0xd1, 0xd4, 0xd1,
+ 0xd4, 0xd7, 0xd9, 0x67, 0x49, 0xcb, 0x76, 0x6c, 0x00, 0x34, 0x2c, 0x74, 0x79, 0xbc, 0x1c, 0x48,
+ 0x7b, 0xfb, 0xb7, 0x9b, 0xda, 0xe7, 0x71, 0x46, 0xe5, 0xd5, 0x5f, 0x0b, 0x07, 0x36, 0x10, 0x0b,
+ 0xc1, 0x3c, 0xc6, 0x82, 0xbf, 0xc1, 0x78, 0x49, 0xef, 0x9f, 0x7b, 0xc3, 0xe7, 0x78, 0x59, 0xd9,
+ 0xfb, 0x6a, 0xa8, 0x4d, 0xa3, 0xf5, 0x68, 0xe7, 0xe8, 0xeb, 0x44, 0x75, 0x4f, 0xcf, 0xc6, 0xff,
+ 0x50, 0xf3, 0xaf, 0xd5, 0x72, 0x14, 0x83, 0x47, 0x6d, 0x46, 0x72, 0xec, 0x1b, 0xbf, 0x6c, 0x74,
+ 0xfe, 0x3a, 0x65, 0xf7, 0x0a, 0xb7, 0xb5, 0xf2, 0xc0, 0x35, 0x18, 0x78, 0x89, 0xec, 0x32, 0x63,
+ 0x01, 0x11, 0x88, 0x31, 0xd0, 0xd8, 0x45, 0xa3, 0xee, 0xdf, 0x91, 0x47, 0x64, 0xf5, 0x5f, 0xa9,
+ 0x3f, 0x67, 0xf4, 0xa5, 0x68, 0x9c, 0xcb, 0xd6, 0x1d, 0x67, 0x0c, 0xb5, 0x3e, 0x97, 0x49, 0x12,
+ 0x9e, 0x0e, 0xfa, 0xfd, 0x4d, 0x8f, 0x9b, 0x8d, 0x0b, 0xe3, 0x53, 0x17, 0x95, 0x76, 0x3e, 0x8c,
+ 0xcc, 0x49, 0x90, 0x65, 0xce, 0x08, 0x80, 0x56, 0x3a, 0xf0, 0xfc, 0x52, 0x77, 0x29, 0xd1, 0x94,
+ 0x48, 0x67, 0xd3, 0xd5, 0xff, 0xa8, 0xc6, 0x3a, 0xad, 0xfc, 0x94, 0xfc, 0x73, 0xa9, 0x97, 0xb4,
+ 0x8b, 0x8e, 0x53, 0x66, 0x8b, 0x1d, 0xf7, 0xf1, 0xf8, 0x22, 0xd6, 0xd4, 0x51, 0x79, 0xf2, 0x6a,
+ 0x58, 0x12, 0x8c, 0xc6, 0xb4, 0x23, 0x41, 0x79, 0x21, 0xb6, 0xf5, 0xb8, 0xb6, 0x11, 0x9a, 0xa2,
+ 0xa6, 0xb7, 0x06, 0x4f, 0x2b, 0x7a, 0x66, 0xb6, 0xe4, 0x94, 0x3c, 0x73, 0xb8, 0x68, 0xb0, 0x72,
+ 0xd5, 0xec, 0x2b, 0x3a, 0xae, 0x13, 0x30, 0x1a, 0x8a, 0x0c, 0x69, 0xec, 0xce, 0x26, 0x8a, 0x15,
+ 0xcb, 0x12, 0x6a, 0xa0, 0x64, 0x17, 0x2a, 0x56, 0xa9, 0x6a, 0x96, 0xaa, 0x66, 0xc9, 0x33, 0x2b,
+ 0xbe, 0x61, 0x09, 0x59, 0x0e, 0xc4, 0xce, 0x7e, 0x37, 0xe1, 0x04, 0x7c, 0x44, 0xcf, 0x8d, 0x81,
+ 0x62, 0xd5, 0xdc, 0xd6, 0x9d, 0x70, 0xcc, 0xd0, 0x10, 0xaa, 0x66, 0xdb, 0xb2, 0x6f, 0x64, 0x8b,
+ 0x76, 0xd1, 0xb3, 0x4a, 0x9e, 0x51, 0xf6, 0x0c, 0xce, 0x95, 0xe0, 0x7a, 0x34, 0xb1, 0x69, 0x57,
+ 0xbf, 0xfb, 0xc2, 0x8e, 0x54, 0x57, 0xce, 0x8e, 0x59, 0x15, 0xdb, 0xc4, 0xd8, 0x23, 0x34, 0x02,
+ 0xfc, 0x50, 0x2b, 0xdf, 0x9a, 0xfa, 0x3e, 0xdd, 0xf9, 0x6c, 0x6c, 0xe1, 0x3c, 0x65, 0xa7, 0xf4,
+ 0x63, 0x41, 0x37, 0x7a, 0x73, 0xa9, 0x62, 0xc6, 0x4c, 0x7b, 0x55, 0xcf, 0x7f, 0xca, 0x37, 0x63,
+ 0x26, 0xeb, 0x60, 0xa5, 0x7c, 0x09, 0x80, 0x30, 0x04, 0x0d, 0xeb, 0x3f, 0x33, 0xc5, 0xb6, 0x7c,
+ 0xbd, 0xb1, 0xbd, 0x43, 0x97, 0xba, 0x2b, 0x2b, 0x3f, 0xa9, 0xaa, 0x5b, 0x99, 0x55, 0x25, 0x1e,
+ 0x32, 0x36, 0xd8, 0xb4, 0xea, 0xef, 0x43, 0x00, 0x0d, 0x59, 0x66, 0xd8, 0x3e, 0xf5, 0xf1, 0xd8,
+ 0xfa, 0xe3, 0x1a, 0x63, 0xa4, 0x5d, 0x8f, 0xb7, 0x8f, 0x90, 0x56, 0x75, 0xe7, 0xd4, 0x1d, 0x25,
+ 0xee, 0x13, 0xaf, 0xa8, 0xfc, 0x6e, 0x7f, 0xcb, 0xfd, 0x76, 0xc7, 0x99, 0x8e, 0x2d, 0x4a, 0x9d,
+ 0xcf, 0xb1, 0xc6, 0x13, 0xd6, 0xdc, 0xfd, 0xb9, 0xb1, 0xbd, 0x3e, 0xcf, 0xaf, 0xe7, 0xf9, 0xe7,
+ 0xcc, 0xf9, 0xcb, 0x4b, 0x77, 0xbf, 0x43, 0x97, 0xbb, 0x28, 0xc9, 0xa1, 0x68, 0xcc, 0x36, 0xa6,
+ 0x14, 0xd5, 0x8d, 0xfb, 0xf5, 0x18, 0xd1, 0x85, 0x61, 0xba, 0xe8, 0xda, 0x83, 0xeb, 0x03, 0xf0,
+ 0x04, 0x34, 0xe2, 0x96, 0xd8, 0x38, 0xce, 0x95, 0x34, 0x19, 0x0a, 0xbc, 0xbf, 0xb4, 0xea, 0x4b,
+ 0xee, 0xeb, 0xbf, 0xd9, 0xd8, 0x98, 0xee, 0xdb, 0xf9, 0x23, 0x4c, 0xbd, 0x14, 0x32, 0xab, 0x95,
+ 0xf6, 0xab, 0x7e, 0x21, 0x5b, 0x48, 0x64, 0x12, 0x2d, 0x53, 0x5b, 0xa8, 0x9b, 0x8c, 0xcb, 0x8c,
+ 0xde, 0xdf, 0xf4, 0x3e, 0x5b, 0x78, 0x9e, 0x31, 0x3e, 0xe7, 0x84, 0x39, 0xf1, 0x16, 0x43, 0xdb,
+ 0x73, 0x98, 0xbb, 0x30, 0x78, 0xf5, 0x0e, 0x78, 0x45, 0x38, 0x62, 0x1f, 0x6e, 0xb6, 0x2b, 0x6b,
+ 0x2f, 0xbd, 0xb1, 0xfd, 0xd1, 0x0f, 0xf5, 0x2d, 0x9d, 0xdd, 0x3f, 0x7c, 0xb8, 0xe4, 0x99, 0x1f,
+ 0xfd, 0xd1, 0xd4, 0x1f, 0x3f, 0x6a, 0xa3, 0x81, 0x0d, 0x7b, 0xfa, 0x6b, 0x4f, 0x28, 0xcf, 0x6b,
+ 0x0d, 0x6f, 0x7d, 0xdc, 0xfa, 0xcd, 0x87, 0xc3, 0xc6, 0x44, 0x65, 0xf0, 0xcc, 0xaa, 0xf5, 0xf1,
+ 0xff, 0x6d, 0x9b, 0xd3, 0x2c, 0x5f, 0x37, 0xaf, 0x7c, 0xf1, 0x77, 0x93, 0x30, 0x39, 0x38, 0xd5,
+ 0x6a, 0x68, 0x7a, 0x5a, 0xdd, 0xf9, 0xde, 0xae, 0xce, 0xac, 0x79, 0xd5, 0x8f, 0x13, 0xab, 0x3e,
+ 0x1e, 0xb6, 0xa4, 0xca, 0xaf, 0xd5, 0x26, 0xb5, 0x23, 0xdb, 0x7b, 0x13, 0xdf, 0xb8, 0xa7, 0xf1,
+ 0xb6, 0xfb, 0xcc, 0xbb, 0x3f, 0x65, 0x2e, 0x5f, 0xd8, 0x05, 0xa0, 0x1a, 0x88, 0x2f, 0xdf, 0x39,
+ 0xed, 0x96, 0xbb, 0x2c, 0x24, 0x09, 0x80, 0x9d, 0x54, 0x77, 0x5c, 0xd9, 0x7f, 0xd2, 0x82, 0x1e,
+ 0x62, 0x83, 0x2e, 0x4f, 0x6b, 0xfc, 0xe1, 0xd5, 0xe6, 0x73, 0xbf, 0x90, 0x82, 0x02, 0xa0, 0xdf,
+ 0x72, 0x4a, 0xfc, 0xa6, 0x4b, 0x77, 0x34, 0xa7, 0xc6, 0xee, 0x5c, 0x28, 0xc6, 0x83, 0xde, 0x7b,
+ 0x94, 0xb7, 0x87, 0xc7, 0xce, 0x65, 0x2c, 0xb4, 0x3b, 0xec, 0xf8, 0x1c, 0x77, 0x51, 0xf3, 0xe1,
+ 0xbc, 0xc3, 0x70, 0x4a, 0x96, 0x96, 0x1a, 0x12, 0x6a, 0x8f, 0x8a, 0x3d, 0x17, 0x93, 0x87, 0xcb,
+ 0x52, 0xbe, 0x24, 0x84, 0x30, 0x4c, 0x13, 0x00, 0x59, 0x0d, 0x72, 0xcf, 0x5d, 0x0d, 0x0d, 0x4d,
+ 0x5c, 0xd8, 0xc5, 0x27, 0x3e, 0xaf, 0x29, 0x47, 0x96, 0x1e, 0x21, 0x0a, 0x8d, 0x9e, 0x60, 0x78,
+ 0xcd, 0xad, 0xb5, 0xdc, 0x57, 0x94, 0x64, 0xcc, 0x58, 0xc3, 0x98, 0x8c, 0xd1, 0x12, 0x8c, 0xa0,
+ 0xe8, 0x35, 0x27, 0x0d, 0x3f, 0x88, 0x1d, 0x68, 0xbf, 0xab, 0xf8, 0xd0, 0xc7, 0x92, 0x17, 0xfc,
+ 0x30, 0x53, 0x5a, 0x97, 0xed, 0x59, 0x39, 0xae, 0xe0, 0x11, 0x5d, 0xf7, 0xca, 0xc4, 0xa2, 0xdc,
+ 0xea, 0x9b, 0x79, 0xb9, 0x0b, 0x49, 0x0e, 0x36, 0x94, 0xfc, 0xa7, 0xc3, 0xbd, 0xee, 0xcd, 0xeb,
+ 0xea, 0x6a, 0xcc, 0xa6, 0x31, 0xea, 0x9d, 0xf5, 0xe8, 0x73, 0x0e, 0x40, 0x17, 0x0c, 0xaf, 0x2c,
+ 0xdd, 0xbb, 0x4b, 0x13, 0x7c, 0x30, 0xee, 0x6e, 0x0e, 0x14, 0x1f, 0xf9, 0x58, 0xf2, 0xdc, 0xef,
+ 0x35, 0x94, 0xd7, 0x67, 0xc3, 0x1c, 0xe3, 0xcc, 0xf3, 0xbd, 0x52, 0xa1, 0x14, 0x73, 0x92, 0xed,
+ 0xb3, 0xda, 0x82, 0xbb, 0x82, 0xd5, 0x37, 0xaf, 0x3e, 0xea, 0x8b, 0x47, 0xe5, 0x57, 0x94, 0xaa,
+ 0xbf, 0xf1, 0x16, 0x9d, 0xbf, 0xa8, 0x69, 0x71, 0x13, 0x71, 0x22, 0x77, 0x11, 0x98, 0x29, 0x3b,
+ 0x9f, 0x81, 0xd8, 0x4f, 0x47, 0x1c, 0x6a, 0x86, 0x6e, 0x94, 0x3c, 0x3e, 0xd8, 0x72, 0x49, 0x03,
+ 0xe4, 0xf9, 0xfc, 0xc7, 0xeb, 0x8c, 0xeb, 0xdf, 0x54, 0x3d, 0x73, 0xb1, 0x5f, 0x7b, 0x4c, 0x05,
+ 0xb4, 0x24, 0xca, 0xc5, 0x0a, 0x5b, 0x7f, 0x6b, 0x7c, 0xed, 0x96, 0xe4, 0x19, 0x8b, 0x2b, 0xb5,
+ 0x2a, 0xdf, 0xb0, 0xc7, 0xbd, 0x73, 0x35, 0xfb, 0x9f, 0x6b, 0x4b, 0x2f, 0xed, 0x36, 0xa1, 0x70,
+ 0xe7, 0x3f, 0xe7, 0x13, 0xf6, 0xe0, 0xcb, 0x08, 0xae, 0xa6, 0x64, 0xca, 0xdb, 0x7b, 0xac, 0xae,
+ 0xad, 0xcc, 0x0f, 0x87, 0xae, 0xff, 0x1a, 0x33, 0xfa, 0x92, 0x7d, 0xef, 0xa1, 0x86, 0xdb, 0xee,
+ 0x33, 0x00, 0x56, 0xf6, 0x06, 0x5b, 0x9a, 0x1f, 0xf2, 0x5b, 0x9e, 0xb2, 0xde, 0x7e, 0x2a, 0xfd,
+ 0xd3, 0x49, 0x39, 0x83, 0xc3, 0x10, 0x6a, 0x5e, 0x5b, 0x81, 0x31, 0xad, 0x87, 0xbe, 0x9f, 0x2f,
+ 0xd9, 0x9f, 0xbe, 0x23, 0xb9, 0x7c, 0x89, 0xbc, 0xf9, 0xb2, 0xde, 0xdd, 0x59, 0xeb, 0x8d, 0x5f,
+ 0x4a, 0x9e, 0x34, 0xaf, 0xed, 0xaa, 0x33, 0x3a, 0xc7, 0x66, 0x1a, 0x33, 0xb5, 0xac, 0x84, 0xfd,
+ 0x0f, 0x9b, 0xd6, 0xdb, 0x65, 0xd8, 0xef, 0x55, 0x3c, 0xfb, 0xa4, 0x38, 0x15, 0x69, 0xd7, 0x47,
+ 0x37, 0x6f, 0xcd, 0x55, 0xfc, 0x2e, 0xdf, 0x5d, 0xec, 0xce, 0xf8, 0xe0, 0x8c, 0x38, 0x8b, 0xab,
+ 0x67, 0x95, 0xb1, 0xcc, 0xc8, 0xf5, 0xe5, 0x52, 0x29, 0x49, 0xc2, 0xa9, 0x96, 0xcb, 0x76, 0xe9,
+ 0x79, 0xab, 0xe3, 0xb8, 0xc2, 0xca, 0x7f, 0xd6, 0x94, 0x83, 0x29, 0x86, 0x03, 0x03, 0x9a, 0x74,
+ 0xbd, 0xd7, 0x52, 0x0a, 0xf1, 0x38, 0x00, 0x94, 0xca, 0x60, 0x0c, 0x5a, 0xc1, 0x8a, 0x61, 0x30,
+ 0xac, 0xc0, 0x51, 0x8b, 0x9b, 0x84, 0x01, 0x02, 0x09, 0x00, 0xb6, 0x00, 0x04, 0x10, 0x82, 0x9c,
+ 0x21, 0x79, 0xe8, 0x03, 0x01, 0xc8, 0x46, 0xa5, 0x3c, 0x5a, 0x0d, 0x2b, 0x70, 0x03, 0x66, 0x12,
+ 0xc4, 0xe0, 0x17, 0x31, 0x94, 0x8f, 0x34, 0x5a, 0x21, 0xd7, 0xae, 0x61, 0x91, 0xcc, 0xf6, 0x94,
+ 0x9f, 0xbe, 0xc5, 0x39, 0xf6, 0x83, 0xa9, 0xad, 0xf7, 0x8e, 0x4b, 0x7d, 0x2b, 0x93, 0x02, 0x1b,
+ 0xf0, 0xb6, 0x3d, 0x48, 0x09, 0xa6, 0xd5, 0x70, 0xd2, 0xeb, 0x70, 0x64, 0x0c, 0x5a, 0x83, 0x0d,
+ 0x39, 0x74, 0x25, 0x51, 0xdb, 0x9c, 0xb3, 0xa6, 0x4d, 0x06, 0xdb, 0x03, 0x06, 0x0f, 0x6a, 0x35,
+ 0xf2, 0x29, 0x23, 0x28, 0x0d, 0xfe, 0x1a, 0xf3, 0x2b, 0x0d, 0x5d, 0x77, 0x7c, 0xaf, 0x7f, 0x01,
+ 0x04, 0x0a, 0x5a, 0xc3, 0x14, 0x43, 0x6d, 0x80, 0x46, 0xa2, 0x3d, 0x64, 0x31, 0x55, 0xde, 0x13,
+ 0x6c, 0x5d, 0x65, 0x4f, 0x99, 0xa7, 0xfb, 0x1f, 0x91, 0x53, 0xcf, 0x28, 0xf6, 0x05, 0xc9, 0xa9,
+ 0xcd, 0xf6, 0xbd, 0x4c, 0x66, 0x65, 0xbe, 0x92, 0x2f, 0x3f, 0x59, 0xf6, 0xb6, 0x7a, 0x74, 0x8c,
+ 0xd5, 0x7a, 0xca, 0x8c, 0xd4, 0xb4, 0x86, 0x18, 0x8f, 0xc1, 0xf3, 0x90, 0x1b, 0x00, 0x80, 0xd2,
+ 0x5a, 0x08, 0x31, 0x44, 0xdd, 0x7d, 0x75, 0x40, 0xf5, 0xd1, 0x9d, 0xc1, 0xbf, 0x0d, 0x1c, 0x3f,
+ 0xa7, 0x7c, 0xc2, 0xbc, 0xae, 0x61, 0xfb, 0x12, 0x51, 0xa1, 0x62, 0x2f, 0x3f, 0x5a, 0x7f, 0x7f,
+ 0xa5, 0x7b, 0xc2, 0x82, 0x7e, 0xd7, 0x0a, 0x94, 0xa2, 0x95, 0x2f, 0xc5, 0xd0, 0xaa, 0x8e, 0x9b,
+ 0x97, 0xdb, 0xdc, 0xdd, 0xb4, 0x68, 0xba, 0x3e, 0x61, 0x5e, 0xb7, 0x6b, 0x07, 0x75, 0x5f, 0x19,
+ 0xa3, 0x92, 0xf6, 0x82, 0xc1, 0xd4, 0xfb, 0xce, 0xea, 0x7b, 0xc3, 0x31, 0xf6, 0x69, 0x9f, 0xca,
+ 0x0c, 0x3f, 0x4c, 0xd5, 0xe7, 0xe8, 0xa5, 0x63, 0x3b, 0x68, 0xc1, 0x94, 0x9c, 0x29, 0x54, 0xc2,
+ 0xf1, 0x0c, 0x2e, 0xeb, 0x9b, 0xcd, 0xee, 0xac, 0xfb, 0xd4, 0x73, 0xc6, 0xaf, 0xff, 0xad, 0x7f,
+ 0xc1, 0xb4, 0xfc, 0xec, 0x56, 0xbc, 0x75, 0x79, 0xec, 0x81, 0x17, 0xac, 0x2b, 0x56, 0xc0, 0x32,
+ 0xea, 0xef, 0x55, 0x3f, 0xca, 0xf0, 0x54, 0xe1, 0x65, 0x34, 0x03, 0xeb, 0x2b, 0xc1, 0xe2, 0x46,
+ 0x30, 0x16, 0xf6, 0x15, 0x77, 0xdd, 0xd9, 0x69, 0xcf, 0xb7, 0x1b, 0x96, 0x35, 0xec, 0xf9, 0xed,
+ 0x9e, 0xde, 0x07, 0x7a, 0x97, 0xfe, 0xfe, 0xc8, 0x54, 0x31, 0x96, 0xfd, 0x43, 0x98, 0x3e, 0x35,
+ 0x99, 0xed, 0xd2, 0x89, 0x66, 0x27, 0x56, 0x7c, 0x88, 0x92, 0x33, 0xc3, 0xce, 0x35, 0x61, 0xd7,
+ 0x0e, 0xd1, 0xc0, 0xb5, 0x0a, 0x47, 0xfc, 0xe0, 0x50, 0x05, 0x69, 0x0d, 0x0d, 0x30, 0x8e, 0x4a,
+ 0x75, 0x38, 0x68, 0x0e, 0x00, 0x95, 0xf2, 0x28, 0xb6, 0xc8, 0x21, 0x1f, 0xa7, 0x34, 0x4a, 0x3e,
+ 0x28, 0x00, 0x23, 0xa8, 0xfc, 0x68, 0xb6, 0x94, 0x41, 0x35, 0x5e, 0x0d, 0xd1, 0x4f, 0x03, 0xbe,
+ 0x0f, 0xdf, 0x87, 0xe0, 0x23, 0xf6, 0xd4, 0x1a, 0x52, 0x43, 0x8c, 0x9a, 0x9b, 0x21, 0x68, 0xf0,
+ 0x14, 0x0f, 0xb6, 0xac, 0xb4, 0x17, 0x5c, 0x62, 0x26, 0xa7, 0x8e, 0x4b, 0x7d, 0x16, 0x6f, 0x91,
+ 0x9d, 0x4f, 0x41, 0x56, 0x35, 0x19, 0x7b, 0xbb, 0x5c, 0xc2, 0xae, 0x3e, 0xbc, 0xb8, 0x33, 0x71,
+ 0xe6, 0x91, 0x05, 0x46, 0xf0, 0x7c, 0xfc, 0xe4, 0xd1, 0xcc, 0xa6, 0x4e, 0x01, 0x20, 0x93, 0xd0,
+ 0xc7, 0xce, 0x29, 0xa5, 0xe3, 0xfe, 0x51, 0xb3, 0x43, 0xad, 0xb1, 0x66, 0xa3, 0x19, 0x84, 0xec,
+ 0xd9, 0x6d, 0xf1, 0x9d, 0xbd, 0x1c, 0xc0, 0xb4, 0x46, 0x79, 0xee, 0xd1, 0x7d, 0xab, 0x5f, 0x4d,
+ 0x5f, 0x7c, 0xe2, 0x40, 0xfd, 0xa6, 0xa7, 0x55, 0x1f, 0xbf, 0x5f, 0x9f, 0xe8, 0x1a, 0x30, 0xde,
+ 0x79, 0x7a, 0x3f, 0x67, 0xd0, 0x1a, 0x7f, 0x78, 0xd9, 0xfc, 0xe3, 0xe6, 0xf8, 0x35, 0xe7, 0x66,
+ 0x4d, 0x01, 0x0d, 0x6c, 0xda, 0x83, 0xaf, 0xdd, 0x99, 0x0e, 0xc2, 0xf0, 0x43, 0x6f, 0x28, 0x2e,
+ 0x9a, 0xf1, 0x9a, 0xbe, 0x45, 0x6b, 0x00, 0xc1, 0x8e, 0xdf, 0x5a, 0xd3, 0x3e, 0x1a, 0xe4, 0x37,
+ 0x05, 0xa9, 0x93, 0x9b, 0x3a, 0x9a, 0xe3, 0xaf, 0x18, 0xfd, 0x77, 0xf7, 0xc7, 0xde, 0xed, 0xa8,
+ 0x94, 0x42, 0x08, 0x1d, 0xea, 0x74, 0x63, 0x52, 0x4f, 0xd1, 0xd4, 0xc8, 0x48, 0x13, 0xee, 0x7c,
+ 0x1e, 0xd5, 0x10, 0xcb, 0xa6, 0x87, 0x5b, 0x36, 0xc2, 0xa0, 0x03, 0xe8, 0x7a, 0xc6, 0x8a, 0x70,
+ 0x06, 0xb8, 0x7b, 0x5d, 0x62, 0xf7, 0x80, 0x3b, 0x34, 0xa0, 0x91, 0x2b, 0x16, 0x66, 0xa7, 0x35,
+ 0x16, 0x2e, 0x7f, 0x5d, 0xf9, 0x3d, 0xb7, 0xbb, 0x9f, 0xee, 0x4d, 0x2c, 0x9c, 0xda, 0x3f, 0x50,
+ 0xb2, 0xbf, 0xb3, 0xca, 0xba, 0xe1, 0x64, 0xaf, 0xa6, 0x7f, 0x9e, 0xdf, 0xcc, 0x7e, 0xf2, 0xd8,
+ 0x8c, 0x9a, 0xe6, 0x96, 0x1a, 0x1d, 0xcd, 0x95, 0x53, 0x16, 0x76, 0xee, 0xff, 0xf6, 0x84, 0xf6,
+ 0x86, 0x92, 0x1e, 0x1a, 0x68, 0xd0, 0xa0, 0xf4, 0xb7, 0xe1, 0xf3, 0x8f, 0xdc, 0x63, 0x7f, 0xe4,
+ 0x9e, 0xa9, 0x6d, 0x96, 0xfe, 0x97, 0x93, 0xaa, 0xef, 0x3c, 0xb5, 0x3b, 0x1d, 0x1f, 0x09, 0x26,
+ 0xf6, 0x16, 0x05, 0xa0, 0xa7, 0x37, 0x79, 0x00, 0x0c, 0x8e, 0xa5, 0xb3, 0xc2, 0xef, 0x3e, 0x6e,
+ 0x48, 0x35, 0xfe, 0x94, 0x09, 0xb4, 0xac, 0xbc, 0x0a, 0xa6, 0xc3, 0x67, 0xd6, 0x56, 0xfa, 0x85,
+ 0xbd, 0xbc, 0xcd, 0x34, 0x2d, 0x59, 0x91, 0x99, 0x13, 0x32, 0x73, 0xbf, 0x38, 0x37, 0x73, 0x46,
+ 0xe6, 0x99, 0x77, 0x3c, 0xd3, 0xff, 0x60, 0xae, 0x61, 0x79, 0x1c, 0xd7, 0xa3, 0xb1, 0x2d, 0xc9,
+ 0x8f, 0xb1, 0xf2, 0xdd, 0x05, 0xde, 0xf7, 0xb2, 0xdd, 0x76, 0x98, 0xb7, 0xfe, 0x36, 0xb2, 0xa0,
+ 0x95, 0x1e, 0x33, 0x16, 0xb6, 0xbd, 0x07, 0x9b, 0xba, 0x70, 0xda, 0x22, 0x10, 0x43, 0xc5, 0xc7,
+ 0x4f, 0x56, 0xa6, 0x36, 0x77, 0x19, 0x04, 0x6a, 0x4c, 0xa8, 0xa3, 0x3b, 0xca, 0xcd, 0xa9, 0xea,
+ 0xa2, 0x19, 0x5a, 0x6b, 0x3c, 0xf9, 0xaa, 0x01, 0x60, 0xed, 0xa6, 0xe4, 0xae, 0x7e, 0x0e, 0x60,
+ 0x46, 0xb3, 0x3c, 0xf3, 0xc8, 0xbe, 0x3f, 0x6e, 0x4a, 0xbf, 0xf9, 0xf8, 0x01, 0x51, 0xc7, 0xcd,
+ 0x8a, 0x8f, 0x07, 0x9f, 0x4d, 0x0e, 0x94, 0xf8, 0x65, 0xcb, 0xb3, 0x65, 0x1f, 0xb7, 0x3e, 0xd0,
+ 0xd8, 0x35, 0xc0, 0x1b, 0x13, 0xfa, 0x9a, 0x73, 0x7a, 0x5c, 0x07, 0x00, 0xc2, 0x10, 0xab, 0x5e,
+ 0xb6, 0x1f, 0x7b, 0xc9, 0xfd, 0xe8, 0x9b, 0x7a, 0x4d, 0x3e, 0x5a, 0x40, 0x32, 0x80, 0xf9, 0xe1,
+ 0xae, 0xdf, 0x9b, 0x1d, 0x6f, 0xde, 0x57, 0x84, 0x27, 0xdc, 0xf9, 0x28, 0x59, 0x78, 0x2d, 0xef,
+ 0x01, 0xf4, 0x15, 0xed, 0x8d, 0x7b, 0x9c, 0x33, 0x97, 0x14, 0x88, 0x50, 0xf2, 0xf0, 0x83, 0xc7,
+ 0xe3, 0x5f, 0xbd, 0xac, 0x3f, 0x15, 0xf3, 0x4d, 0xa1, 0x0b, 0x65, 0xe3, 0xf6, 0x87, 0x5b, 0x6e,
+ 0x9c, 0xba, 0x5b, 0x03, 0x3f, 0x7c, 0xa4, 0xe9, 0xdc, 0xa3, 0x2a, 0x5b, 0x7a, 0x8c, 0x2b, 0x56,
+ 0x64, 0x05, 0x57, 0x96, 0x21, 0xfd, 0xc0, 0x58, 0xbf, 0xdd, 0x7e, 0xd3, 0xf1, 0x30, 0xf9, 0x88,
+ 0xb7, 0xc9, 0x97, 0xf1, 0xeb, 0x35, 0x09, 0x80, 0xfe, 0xe9, 0x34, 0x08, 0x60, 0x4f, 0x16, 0xdf,
+ 0xb8, 0xb7, 0x09, 0xc0, 0xbb, 0xce, 0xc8, 0x9a, 0x02, 0x81, 0xc4, 0x4f, 0x1f, 0xcf, 0x9c, 0x7d,
+ 0x54, 0x29, 0x93, 0xf4, 0x6e, 0x7f, 0xc8, 0xfd, 0xe2, 0xa5, 0x45, 0xc7, 0x1a, 0x43, 0x29, 0x85,
+ 0x03, 0x2f, 0x94, 0xcb, 0x65, 0xe1, 0xb4, 0xf0, 0xb8, 0x95, 0x78, 0xd5, 0x34, 0xfe, 0x53, 0x16,
+ 0xf2, 0x55, 0x9b, 0x7b, 0xc3, 0x52, 0x92, 0x71, 0xc6, 0x38, 0x43, 0x1e, 0x78, 0x18, 0xde, 0x4b,
+ 0x6b, 0xc5, 0x89, 0xf3, 0xb9, 0x5d, 0x08, 0xd1, 0xcf, 0xe8, 0x4f, 0x98, 0x95, 0x1b, 0x55, 0xab,
+ 0x55, 0xba, 0xed, 0x3e, 0x03, 0xed, 0x83, 0x64, 0x9c, 0x19, 0x57, 0xb3, 0x5a, 0xec, 0x19, 0xcd,
+ 0xb9, 0x15, 0x0b, 0x73, 0xb0, 0xe3, 0xab, 0x5e, 0x89, 0xcf, 0x6f, 0xcf, 0xae, 0xd9, 0x9c, 0xda,
+ 0xb5, 0x4d, 0x9c, 0x7d, 0xf5, 0x80, 0xa8, 0x49, 0x91, 0x2a, 0xfd, 0xeb, 0xbd, 0x26, 0xf8, 0xe0,
+ 0x68, 0xec, 0xea, 0xc5, 0xfa, 0xf8, 0xb9, 0xac, 0x7e, 0xf4, 0x02, 0xa2, 0x03, 0x0c, 0xe5, 0x33,
+ 0xae, 0x30, 0x2d, 0xbc, 0xfa, 0x88, 0xec, 0xe5, 0x27, 0x0f, 0xbc, 0xb2, 0xdb, 0x7e, 0xdf, 0xad,
+ 0x4e, 0x53, 0xb2, 0xe9, 0x1d, 0x27, 0xef, 0x62, 0x43, 0x81, 0x3d, 0x19, 0x02, 0xd0, 0xa6, 0x50,
+ 0xb5, 0xf7, 0x4b, 0xda, 0xaa, 0x18, 0xee, 0x2f, 0x6c, 0xa2, 0x03, 0xb4, 0xa0, 0x9a, 0xec, 0xf6,
+ 0x56, 0xf7, 0xb0, 0xb4, 0x15, 0x6b, 0x49, 0x00, 0xe0, 0x0e, 0x37, 0x1a, 0x0d, 0x91, 0x10, 0x00,
+ 0x64, 0x49, 0xc1, 0x02, 0xf2, 0xe0, 0xdf, 0x63, 0xae, 0xa5, 0xec, 0xf9, 0x56, 0xa9, 0xd3, 0x90,
+ 0xa5, 0x3e, 0x9d, 0x7b, 0x9a, 0x8c, 0x71, 0xe3, 0x5d, 0x7d, 0x45, 0x6c, 0xee, 0x8c, 0x9f, 0xba,
+ 0xa8, 0xc4, 0x80, 0x62, 0x05, 0xb7, 0xaf, 0x74, 0x6f, 0xb9, 0xb2, 0x2f, 0xe1, 0x04, 0xa6, 0xd0,
+ 0x03, 0x45, 0xe3, 0x07, 0x0f, 0xb7, 0x7d, 0xfe, 0xd2, 0x3d, 0x4a, 0xe1, 0x07, 0x0f, 0x37, 0xbf,
+ 0xf1, 0xd8, 0xd2, 0xee, 0xac, 0x71, 0xe9, 0x8a, 0x2c, 0x67, 0xca, 0x36, 0x64, 0xc5, 0x37, 0x5e,
+ 0xd8, 0xe1, 0x5c, 0x78, 0xdc, 0x40, 0xbd, 0xf7, 0xcd, 0x97, 0x70, 0xe7, 0x1a, 0xd7, 0x11, 0x74,
+ 0xe9, 0xf2, 0x6c, 0xb6, 0x48, 0xcf, 0xef, 0xb4, 0xfe, 0xf9, 0x8c, 0x5c, 0xa3, 0xeb, 0x0d, 0x0f,
+ 0xe2, 0x4b, 0x3e, 0xee, 0x78, 0x3a, 0xf3, 0xcc, 0x76, 0x7e, 0xdd, 0x85, 0x83, 0xa4, 0xae, 0x67,
+ 0x3f, 0x59, 0x14, 0xf6, 0xfe, 0xd1, 0x9c, 0x73, 0xc9, 0x3e, 0xa7, 0xb4, 0x8a, 0xbb, 0x48, 0x8c,
+ 0x9f, 0xf5, 0x50, 0xeb, 0xab, 0x08, 0x00, 0xed, 0x29, 0xd1, 0xb3, 0x5b, 0x12, 0x09, 0x47, 0x36,
+ 0x26, 0xe4, 0x31, 0x73, 0xfa, 0xab, 0x41, 0xe3, 0xee, 0xac, 0x05, 0xc0, 0x57, 0x6c, 0x56, 0xab,
+ 0xff, 0xd3, 0x55, 0xee, 0xba, 0xad, 0x29, 0x4e, 0x7a, 0x66, 0x8b, 0xdf, 0x96, 0xae, 0x12, 0xb1,
+ 0xc1, 0x31, 0xfc, 0x90, 0xee, 0x6f, 0x4e, 0xe1, 0x03, 0xe7, 0xe4, 0x7f, 0xf8, 0x68, 0x0a, 0x40,
+ 0x35, 0xc0, 0xcf, 0x56, 0xb5, 0x5e, 0xb1, 0xdc, 0x7b, 0xec, 0x25, 0xb3, 0xd6, 0x2f, 0x2b, 0x85,
+ 0x4a, 0x20, 0x5a, 0x1a, 0x54, 0xa3, 0x8b, 0x0d, 0x9d, 0x66, 0xd9, 0x87, 0x33, 0xe6, 0xaa, 0x29,
+ 0x15, 0x04, 0xbe, 0x1f, 0x9f, 0x72, 0x5a, 0xb2, 0x9a, 0x62, 0xdf, 0xf6, 0xcb, 0x7d, 0x9e, 0xd2,
+ 0xba, 0xd7, 0x18, 0x48, 0x86, 0xd6, 0xc8, 0x39, 0x5b, 0x80, 0xc7, 0x01, 0x13, 0xac, 0xcd, 0x85,
+ 0xa1, 0x41, 0x6a, 0x48, 0xe7, 0xb0, 0x7d, 0x70, 0x7d, 0x5c, 0xaf, 0xec, 0xaa, 0x1f, 0xbd, 0x27,
+ 0xbf, 0xe2, 0x88, 0x81, 0x41, 0x11, 0x42, 0x3a, 0x6e, 0x07, 0x00, 0x5a, 0xd3, 0xe5, 0x8f, 0x9c,
+ 0xea, 0xfd, 0xec, 0x29, 0xeb, 0xfc, 0x63, 0x62, 0xff, 0xf3, 0x87, 0xf8, 0xc9, 0x4b, 0xe4, 0xbc,
+ 0x29, 0xf9, 0xda, 0xa5, 0xe6, 0xcc, 0x93, 0x77, 0x5f, 0xbb, 0x27, 0x6e, 0x0f, 0xce, 0x8a, 0x98,
+ 0x22, 0x74, 0xac, 0x3f, 0x33, 0x2d, 0x7c, 0x7a, 0x63, 0xee, 0xe5, 0xeb, 0x65, 0x3a, 0x5e, 0x75,
+ 0xed, 0x60, 0xc9, 0x2c, 0xfe, 0xc2, 0xce, 0xa9, 0x0f, 0xbd, 0x60, 0x5c, 0x72, 0x22, 0x33, 0x87,
+ 0xa6, 0x5c, 0x4c, 0x43, 0x03, 0xa8, 0x04, 0xbc, 0xa6, 0x39, 0x7b, 0x0a, 0xa2, 0xc5, 0x1a, 0xef,
+ 0x5d, 0xea, 0xb8, 0xc1, 0xa1, 0xb9, 0xd2, 0x9e, 0x0c, 0xb6, 0x84, 0x68, 0x81, 0xd5, 0x6e, 0xf5,
+ 0xaf, 0xee, 0xdf, 0xf0, 0xb1, 0x0d, 0x3d, 0x0f, 0xf5, 0x24, 0x16, 0x26, 0x66, 0x5f, 0xde, 0xb6,
+ 0x76, 0xf5, 0xc6, 0x64, 0x4b, 0xac, 0x31, 0x9f, 0x30, 0xbf, 0x26, 0x70, 0xa3, 0x72, 0xe7, 0xad,
+ 0xa8, 0xec, 0x78, 0x46, 0xf9, 0x15, 0x6e, 0xef, 0x3b, 0x3a, 0x2c, 0x86, 0x6f, 0xb5, 0xb9, 0xc4,
+ 0x9e, 0xdd, 0x9a, 0x88, 0x5b, 0xba, 0x29, 0x29, 0x97, 0xce, 0xce, 0xe6, 0xaa, 0xac, 0x7b, 0xc0,
+ 0xf0, 0x42, 0x46, 0x44, 0x33, 0x9a, 0x83, 0x9f, 0xaf, 0x4e, 0xae, 0xdd, 0x92, 0xe2, 0xa4, 0x3b,
+ 0xda, 0xbc, 0x86, 0xb8, 0x37, 0x2c, 0x31, 0x87, 0x43, 0xf5, 0x2d, 0x69, 0x5c, 0x73, 0x76, 0xe1,
+ 0xe7, 0x4f, 0x24, 0xb5, 0x46, 0xa9, 0x6a, 0x6f, 0xed, 0x13, 0x77, 0xaf, 0x49, 0x2f, 0x9e, 0xe5,
+ 0x4f, 0x6b, 0xee, 0xa9, 0x69, 0x9e, 0x54, 0x0c, 0xef, 0x3f, 0xa7, 0xff, 0xb3, 0xbf, 0x68, 0x1e,
+ 0xe7, 0x41, 0x48, 0x15, 0x77, 0xef, 0x2f, 0x91, 0x41, 0xcb, 0x7d, 0x65, 0x85, 0x8c, 0xd0, 0x85,
+ 0x1b, 0x82, 0x35, 0x26, 0xb5, 0x6b, 0xe9, 0x54, 0x5c, 0xb9, 0x0e, 0xce, 0x3b, 0xda, 0x7f, 0xf8,
+ 0xf9, 0x86, 0x50, 0xd1, 0xf9, 0x4b, 0xbd, 0x64, 0x4c, 0x39, 0x16, 0x1a, 0x5d, 0xc5, 0x08, 0x49,
+ 0x47, 0x01, 0x7c, 0xe4, 0x8b, 0x34, 0x1c, 0xfb, 0x84, 0x10, 0x54, 0x3b, 0xfe, 0xec, 0xd6, 0x86,
+ 0xb5, 0xdb, 0xac, 0xe3, 0xe7, 0x57, 0x7b, 0x0b, 0xb1, 0x42, 0x45, 0xa4, 0xe2, 0xa1, 0x6d, 0xe2,
+ 0x0d, 0xcb, 0x0a, 0xb7, 0x3d, 0x98, 0x09, 0x42, 0x94, 0x83, 0x7d, 0x4f, 0x5f, 0xeb, 0x9e, 0xad,
+ 0x6b, 0xc3, 0xc3, 0x9b, 0x9a, 0xcf, 0x69, 0x2a, 0xdf, 0x55, 0xb0, 0x76, 0xc1, 0xa9, 0xb8, 0x54,
+ 0x8b, 0xaf, 0xd9, 0x28, 0x6b, 0xca, 0xf7, 0x84, 0x0d, 0xbb, 0x64, 0xb1, 0xbd, 0x68, 0x18, 0x05,
+ 0x9d, 0x2f, 0x91, 0x3d, 0x15, 0x69, 0x4b, 0x17, 0x3d, 0xe2, 0xfb, 0x72, 0x86, 0xba, 0x4e, 0xb0,
+ 0xee, 0x95, 0x29, 0x92, 0x70, 0x54, 0xc6, 0xad, 0xec, 0x6d, 0x5b, 0xae, 0x2e, 0x5a, 0x56, 0xfa,
+ 0xda, 0x7d, 0x4d, 0x77, 0x3d, 0xdd, 0xf8, 0xcb, 0x35, 0xe2, 0x3f, 0x2e, 0x2b, 0xc6, 0xad, 0xa0,
+ 0x76, 0x9d, 0xa4, 0x85, 0xb4, 0xeb, 0x25, 0xec, 0x60, 0x1f, 0x23, 0x7c, 0xad, 0xf7, 0xb9, 0x0f,
+ 0xb8, 0x1e, 0x9c, 0x50, 0xe8, 0x2f, 0xc4, 0xef, 0x5f, 0x9f, 0xba, 0xf0, 0x98, 0xd0, 0xb5, 0x03,
+ 0x83, 0x29, 0xdb, 0xa0, 0x72, 0x40, 0x5a, 0x91, 0x62, 0x14, 0x84, 0xcc, 0x32, 0x64, 0xc6, 0x0d,
+ 0x00, 0x6c, 0xee, 0xb4, 0x17, 0x4c, 0x41, 0x25, 0xc0, 0x63, 0x1b, 0xf8, 0x61, 0xad, 0x7a, 0x9f,
+ 0x79, 0x68, 0x96, 0xe4, 0x0a, 0x55, 0xcf, 0xf2, 0xf2, 0xe0, 0x49, 0x65, 0x70, 0xc8, 0x90, 0x2c,
+ 0x2a, 0x6d, 0xcc, 0x17, 0x5e, 0x18, 0x88, 0xcd, 0x8d, 0x2d, 0xfd, 0xe5, 0xd1, 0xfd, 0xdb, 0xca,
+ 0xfe, 0x2f, 0x7c, 0xb3, 0x29, 0x83, 0x3d, 0x96, 0xff, 0x31, 0x5f, 0x97, 0xf4, 0xd6, 0x1d, 0x4f,
+ 0xa7, 0x63, 0xcc, 0xd6, 0xfb, 0xed, 0x28, 0x87, 0xe3, 0x60, 0x70, 0x0d, 0xca, 0xb8, 0x3a, 0x6e,
+ 0xe9, 0x86, 0xb8, 0x4a, 0x38, 0x38, 0x7b, 0x49, 0xf0, 0xc8, 0x0b, 0x8d, 0xf9, 0x0a, 0xbd, 0xf1,
+ 0x58, 0x2f, 0x6e, 0xc3, 0x31, 0x07, 0xd9, 0x92, 0xb0, 0x35, 0x88, 0x83, 0xc6, 0x60, 0x8b, 0x29,
+ 0xa8, 0x66, 0xa3, 0xe6, 0x94, 0x7f, 0xc3, 0x45, 0xa5, 0xb9, 0x6d, 0xa5, 0x9f, 0xad, 0x6a, 0xdc,
+ 0xd6, 0xe5, 0x1e, 0x36, 0xbd, 0x58, 0x33, 0x2b, 0xaf, 0x9d, 0x40, 0xe3, 0x93, 0x77, 0xdf, 0xd4,
+ 0x27, 0x3b, 0x03, 0xaf, 0x73, 0xcc, 0xef, 0x72, 0xce, 0x72, 0x15, 0xb6, 0x27, 0x17, 0x33, 0xb8,
+ 0x0e, 0x42, 0x6a, 0x77, 0x71, 0xc4, 0x8c, 0x6a, 0x63, 0xc2, 0x63, 0xa4, 0x4d, 0x8e, 0x63, 0xe7,
+ 0x14, 0xde, 0xfb, 0xfd, 0x29, 0x55, 0x1f, 0xb7, 0xbf, 0xa7, 0x93, 0x31, 0x4c, 0x69, 0xc0, 0x92,
+ 0x59, 0x15, 0x83, 0x2b, 0x43, 0x84, 0xd9, 0xa2, 0x95, 0xaf, 0xb2, 0xce, 0xac, 0xeb, 0x58, 0x61,
+ 0xd2, 0xf1, 0x62, 0xd6, 0x48, 0xec, 0x1f, 0x44, 0x5a, 0xa3, 0xe4, 0xf1, 0x20, 0xa4, 0xff, 0x7e,
+ 0x30, 0xf5, 0xab, 0x55, 0xfc, 0x1d, 0x27, 0xa5, 0x85, 0xe8, 0xb7, 0x84, 0xf2, 0x02, 0x71, 0xd5,
+ 0xe9, 0x39, 0xa5, 0xd4, 0x5d, 0x4f, 0xc7, 0x63, 0xd6, 0xb8, 0x46, 0xe6, 0xdc, 0x28, 0xf7, 0x6e,
+ 0xdf, 0xf8, 0xe4, 0xd3, 0xcb, 0x56, 0x2c, 0xcb, 0x50, 0xa6, 0x78, 0x63, 0x91, 0x2b, 0xa6, 0x6b,
+ 0x7e, 0x9d, 0x40, 0x09, 0x1e, 0x3b, 0x36, 0x6e, 0x2d, 0xb2, 0x82, 0xa7, 0x03, 0xae, 0xa7, 0x4a,
+ 0xb5, 0x9d, 0xd1, 0x4c, 0xc6, 0x66, 0x6a, 0xf9, 0x2a, 0x8c, 0x7d, 0xe7, 0x42, 0x29, 0x80, 0xee,
+ 0x5a, 0x9b, 0xd9, 0x91, 0x6d, 0x10, 0x4c, 0x03, 0x7a, 0x6a, 0x43, 0xa9, 0xa3, 0xb5, 0x88, 0x90,
+ 0xee, 0x7d, 0x36, 0xdd, 0x5b, 0x4c, 0x71, 0xa6, 0x01, 0x70, 0x0a, 0x3a, 0x5a, 0x0a, 0x8b, 0x67,
+ 0x0e, 0x70, 0xa6, 0x66, 0x37, 0x17, 0x97, 0xcd, 0xcd, 0x7c, 0xf8, 0x7b, 0x4d, 0x68, 0x28, 0x9e,
+ 0xb9, 0x24, 0xc7, 0x48, 0x2b, 0x4d, 0x9c, 0xf4, 0xda, 0x57, 0xf8, 0x2f, 0x56, 0xcf, 0x4c, 0xd8,
+ 0x83, 0x8d, 0x2a, 0x6e, 0x55, 0x5f, 0x37, 0xbf, 0x57, 0x08, 0x0d, 0xb0, 0x5f, 0x3c, 0xd9, 0x3a,
+ 0xad, 0xa1, 0x85, 0x08, 0x20, 0x35, 0xb7, 0x25, 0x7f, 0xe4, 0xac, 0xfe, 0x61, 0xe9, 0x32, 0x66,
+ 0x83, 0xcc, 0x95, 0xc5, 0xb5, 0xbf, 0x8c, 0x6f, 0xd8, 0x6d, 0xbc, 0xf5, 0xc4, 0x7c, 0x57, 0xce,
+ 0xf8, 0xea, 0xef, 0xac, 0x2f, 0xbd, 0xb9, 0x6a, 0x70, 0xf5, 0xf2, 0xae, 0xcc, 0x7f, 0x3d, 0x98,
+ 0xfa, 0xc4, 0x45, 0x5d, 0xd3, 0x9a, 0x8a, 0x67, 0x1d, 0xd7, 0x70, 0xed, 0x2f, 0xdc, 0x1f, 0x38,
+ 0x2d, 0x9b, 0xbb, 0xf9, 0xef, 0xd7, 0x88, 0xdb, 0x3e, 0x98, 0x17, 0x62, 0x1f, 0x7a, 0x8a, 0x78,
+ 0xd3, 0x72, 0x68, 0x4d, 0x5a, 0x81, 0x06, 0x13, 0x16, 0xbc, 0x4e, 0xaf, 0xf5, 0xe2, 0x66, 0xad,
+ 0x74, 0xef, 0x03, 0xbd, 0xdc, 0x61, 0x61, 0xb7, 0xc2, 0x46, 0xb0, 0x69, 0x0c, 0x57, 0x53, 0xee,
+ 0xa8, 0xea, 0x0b, 0xab, 0x9e, 0xa1, 0x72, 0xdf, 0xcc, 0xc5, 0x33, 0xfc, 0xda, 0x1b, 0xb2, 0xb1,
+ 0xb9, 0x46, 0x8c, 0xe5, 0x2a, 0xc6, 0x9e, 0x2c, 0x19, 0x82, 0x3c, 0x9f, 0xcf, 0x48, 0xd2, 0xe2,
+ 0x99, 0x5e, 0x32, 0xe6, 0x1b, 0x5c, 0x99, 0x02, 0xc7, 0xcd, 0x2b, 0xbe, 0xff, 0x07, 0x6d, 0x7e,
+ 0x88, 0xdb, 0xdf, 0x33, 0x20, 0x15, 0x4d, 0x6d, 0xc4, 0x91, 0xb3, 0x2a, 0x82, 0x2b, 0x43, 0x84,
+ 0x3d, 0x79, 0x2b, 0x5f, 0x65, 0x5d, 0x03, 0xae, 0x65, 0xee, 0xc5, 0x96, 0xc1, 0xce, 0xb8, 0xec,
+ 0x59, 0x5e, 0xc0, 0x1d, 0x4b, 0xc5, 0x2c, 0x54, 0x42, 0xa3, 0x6b, 0xc0, 0x8a, 0x5b, 0x81, 0xeb,
+ 0xa8, 0x1a, 0x9d, 0xc6, 0x36, 0x9d, 0xd4, 0x3c, 0xde, 0xbc, 0x1f, 0xea, 0xf3, 0x29, 0x27, 0xf9,
+ 0x5d, 0x2f, 0x0a, 0x6b, 0x8c, 0x76, 0xdc, 0x92, 0xf4, 0x02, 0x95, 0xba, 0xfd, 0xa1, 0x16, 0xcb,
+ 0xd4, 0x27, 0x2d, 0x28, 0x9e, 0xbf, 0x44, 0xfd, 0x7c, 0x55, 0x83, 0xe0, 0x48, 0x39, 0xea, 0xb2,
+ 0xe5, 0x9d, 0xad, 0xe9, 0xca, 0x05, 0x4b, 0x02, 0x0d, 0xb4, 0x67, 0x4a, 0x55, 0xdf, 0x70, 0x1d,
+ 0xfa, 0xc1, 0x23, 0xcd, 0x8c, 0xd0, 0x94, 0x0c, 0xce, 0x39, 0x32, 0xdf, 0x92, 0xa0, 0x1f, 0x3f,
+ 0xd6, 0x64, 0x0a, 0x7d, 0xea, 0xe1, 0xc5, 0x65, 0xf3, 0xfa, 0x6a, 0xe6, 0x4a, 0xd8, 0xf2, 0xf0,
+ 0xa9, 0x21, 0x63, 0x58, 0xb1, 0xa8, 0xf7, 0xc4, 0x05, 0xbd, 0x65, 0x5f, 0x9c, 0x30, 0xb7, 0xe5,
+ 0xf8, 0xf9, 0xd9, 0x35, 0x9b, 0x1a, 0x66, 0xb7, 0x94, 0xd2, 0xf1, 0xf0, 0xbb, 0x0f, 0x34, 0x48,
+ 0xa5, 0xae, 0x3e, 0xad, 0x6b, 0xf4, 0xbc, 0x4c, 0xdd, 0xd3, 0x26, 0x67, 0x0b, 0x11, 0xd3, 0xaa,
+ 0x87, 0xf9, 0xf6, 0xe3, 0x2b, 0x9f, 0x3e, 0xf6, 0xf0, 0x65, 0x8d, 0x6f, 0x68, 0xac, 0x94, 0x07,
+ 0x13, 0xd0, 0xcb, 0xaf, 0x96, 0x5b, 0x7b, 0x52, 0x6e, 0x5b, 0xdc, 0x9e, 0x6e, 0xeb, 0x16, 0xcd,
+ 0x1e, 0xed, 0x90, 0x9d, 0xdb, 0x01, 0x43, 0xe0, 0xb4, 0xc0, 0x7f, 0x15, 0x76, 0x2d, 0xc2, 0x33,
+ 0xb6, 0xb1, 0x1a, 0xdc, 0xea, 0x65, 0xa7, 0x07, 0xdf, 0x59, 0x67, 0x35, 0xbc, 0xc8, 0x38, 0x41,
+ 0x2a, 0x7d, 0xfe, 0xec, 0xd8, 0x67, 0x2f, 0x2e, 0x5e, 0xbf, 0xa2, 0x7a, 0xeb, 0x33, 0xce, 0xdd,
+ 0x1b, 0xd8, 0x60, 0xf8, 0x59, 0xb1, 0x8b, 0x17, 0xd3, 0x82, 0x29, 0x79, 0xc7, 0x52, 0x89, 0x98,
+ 0x77, 0xcd, 0x8a, 0xe2, 0xd3, 0x2f, 0xe3, 0x8b, 0x17, 0x54, 0xdb, 0xd2, 0x65, 0x00, 0x8c, 0xf4,
+ 0xeb, 0xe6, 0x97, 0xe7, 0xcf, 0x75, 0xbe, 0xfe, 0x88, 0xa8, 0x79, 0x6e, 0x0d, 0xcc, 0x74, 0xed,
+ 0xd9, 0x2d, 0xce, 0xdc, 0xb6, 0xf2, 0x8a, 0x63, 0x12, 0x5f, 0x7e, 0x42, 0x38, 0x04, 0x09, 0x70,
+ 0xad, 0xdf, 0x7d, 0x74, 0xfc, 0xf0, 0xe9, 0x03, 0x96, 0x18, 0xd5, 0xeb, 0x9a, 0x86, 0x5a, 0xb6,
+ 0x58, 0xb9, 0x76, 0x58, 0x73, 0xfb, 0xb3, 0x9a, 0xf3, 0xdf, 0xbf, 0xcc, 0xb9, 0xea, 0x17, 0xee,
+ 0xbf, 0xff, 0xb6, 0x19, 0x86, 0xba, 0xf8, 0x75, 0xe1, 0x5b, 0x4f, 0xec, 0x63, 0x4c, 0xf7, 0x17,
+ 0xf9, 0x73, 0xbb, 0x45, 0xd5, 0x17, 0xad, 0xe9, 0xe2, 0xe7, 0xde, 0x32, 0xf0, 0xd6, 0xdb, 0x9a,
+ 0xcf, 0xfb, 0x7c, 0x13, 0x58, 0x78, 0xd5, 0x59, 0xd5, 0xb3, 0x8f, 0xec, 0xe6, 0x34, 0x5e, 0xd2,
+ 0x04, 0x01, 0x20, 0x77, 0x3e, 0x76, 0xec, 0xf0, 0xba, 0x2d, 0x7e, 0xb8, 0xcb, 0x0f, 0x77, 0x01,
+ 0xa5, 0x43, 0x6d, 0x4e, 0xb1, 0x66, 0xbc, 0x77, 0x56, 0xcf, 0x3d, 0x8f, 0x3d, 0x7b, 0xc5, 0xba,
+ 0x63, 0x7f, 0x7b, 0x7c, 0x78, 0x96, 0x6c, 0x9d, 0xd1, 0xdc, 0x75, 0x6a, 0xcf, 0xaa, 0xc7, 0xd7,
+ 0x34, 0xb0, 0x44, 0xd2, 0x75, 0x38, 0x63, 0x3c, 0xb1, 0x44, 0x16, 0xd7, 0x93, 0x39, 0xb6, 0x01,
+ 0xdb, 0xd3, 0xaa, 0x54, 0xe5, 0xb7, 0x3f, 0x34, 0xd5, 0x32, 0xb1, 0x7c, 0x61, 0xf1, 0xdc, 0xc5,
+ 0xf2, 0x67, 0x4f, 0x64, 0x18, 0x47, 0x3a, 0xae, 0x2e, 0x3b, 0xb9, 0xb3, 0xad, 0xa1, 0x7c, 0xce,
+ 0x11, 0x61, 0xcc, 0x52, 0x6d, 0xe9, 0x4a, 0xb1, 0x6a, 0xd8, 0x06, 0xbb, 0xfd, 0x91, 0x66, 0x22,
+ 0xb4, 0x24, 0x83, 0xb3, 0x8e, 0xcc, 0xa5, 0x62, 0xf4, 0x7f, 0x1f, 0x6d, 0x32, 0x84, 0x3e, 0x6b,
+ 0x49, 0x61, 0xe9, 0xec, 0xda, 0xc0, 0x0c, 0xae, 0xa3, 0x0e, 0x9b, 0x2a, 0x89, 0x91, 0x6b, 0x87,
+ 0xab, 0x37, 0xd8, 0xbf, 0x7a, 0xaa, 0xfd, 0xb0, 0x76, 0x35, 0xa7, 0xb5, 0xb8, 0xea, 0xe5, 0xcc,
+ 0xc2, 0x69, 0x65, 0xd7, 0x29, 0xc4, 0x4c, 0x7d, 0xf4, 0x2c, 0xc5, 0x88, 0xbd, 0x36, 0x70, 0xa7,
+ 0x7d, 0xcd, 0x1b, 0x0e, 0xdf, 0x9b, 0xd1, 0x9f, 0x79, 0xdb, 0xc8, 0x3f, 0x1f, 0xbf, 0xf1, 0x56,
+ 0x84, 0x95, 0xca, 0xfd, 0xd7, 0x8a, 0x74, 0xbd, 0xb6, 0x01, 0x21, 0xac, 0x31, 0x24, 0x08, 0x79,
+ 0x4d, 0x8b, 0x0b, 0xae, 0x34, 0x48, 0x2a, 0xaa, 0xc5, 0x22, 0x0c, 0x26, 0x89, 0xe0, 0x85, 0x1c,
+ 0x40, 0xad, 0xf2, 0x42, 0xc9, 0xa4, 0xae, 0x7d, 0xaa, 0x0d, 0xa6, 0x02, 0xc5, 0xb4, 0x26, 0x68,
+ 0x70, 0xae, 0x6a, 0xfe, 0xb2, 0x26, 0xe8, 0xfd, 0x90, 0x3b, 0xa6, 0x1c, 0xee, 0xf4, 0xfd, 0x10,
+ 0x96, 0x81, 0x20, 0x04, 0x63, 0x20, 0x42, 0xb1, 0x02, 0xad, 0xe1, 0x3a, 0x60, 0x43, 0xba, 0x54,
+ 0x0f, 0xcb, 0x47, 0x0e, 0x55, 0x0c, 0xad, 0xc5, 0xd7, 0x50, 0xf3, 0xc9, 0x1b, 0xb6, 0xf5, 0x59,
+ 0x53, 0x2e, 0xda, 0xb8, 0x71, 0x43, 0xb5, 0x5a, 0x9d, 0xd3, 0x32, 0x67, 0xc6, 0x9c, 0xb9, 0xde,
+ 0x23, 0x3d, 0xcf, 0x5c, 0xfa, 0x8c, 0xdb, 0xea, 0xd6, 0x06, 0x6a, 0x47, 0xff, 0xfe, 0x68, 0xab,
+ 0xdd, 0xa2, 0xed, 0xa1, 0x77, 0xcf, 0xf7, 0x8c, 0x53, 0x5e, 0x2f, 0xab, 0x6b, 0xcb, 0x6b, 0x2f,
+ 0xa2, 0x14, 0x1f, 0x6f, 0x5a, 0x82, 0x28, 0x04, 0x50, 0xf5, 0xc8, 0x97, 0x62, 0x68, 0xb6, 0x11,
+ 0x8c, 0xeb, 0xb8, 0x15, 0xf8, 0x81, 0xa8, 0xbd, 0xe6, 0x48, 0x14, 0x92, 0xeb, 0x98, 0x15, 0x0c,
+ 0x85, 0xad, 0xf8, 0x40, 0xd9, 0x4a, 0x39, 0x81, 0x33, 0x74, 0x44, 0x29, 0x2a, 0x79, 0xa6, 0x1a,
+ 0x3d, 0x79, 0x19, 0xb3, 0x42, 0x46, 0xb2, 0xec, 0x99, 0x52, 0x0e, 0x26, 0x28, 0x01, 0x30, 0xb9,
+ 0x74, 0xac, 0x70, 0xaf, 0x7c, 0x20, 0xa9, 0xa8, 0xbf, 0x64, 0x27, 0x6c, 0xdf, 0x36, 0x64, 0xcd,
+ 0x04, 0x52, 0x51, 0x5f, 0xc1, 0xc9, 0x55, 0x1c, 0x8b, 0x87, 0x99, 0x64, 0xd9, 0xb5, 0x03, 0x00,
+ 0x41, 0xc8, 0xca, 0x55, 0x23, 0xe1, 0x78, 0x8c, 0x29, 0xad, 0x91, 0x2d, 0xd9, 0xd9, 0x92, 0x6d,
+ 0x09, 0xbf, 0xd1, 0x2d, 0x3b, 0xd6, 0xd0, 0xfc, 0x28, 0xa0, 0x47, 0x79, 0x3a, 0xad, 0x7d, 0x05,
+ 0x6b, 0xae, 0xb5, 0xfc, 0x49, 0xdc, 0xf7, 0xb0, 0x48, 0xa7, 0xbb, 0x16, 0x9d, 0x48, 0x16, 0xb9,
+ 0xfd, 0xde, 0xea, 0xe3, 0x57, 0xb7, 0x5c, 0xd2, 0x74, 0xe4, 0x8f, 0x97, 0xee, 0xf8, 0xee, 0xf6,
+ 0x17, 0x3f, 0xf4, 0x7c, 0xdb, 0x15, 0xb3, 0x16, 0x7d, 0xf1, 0xb0, 0xbe, 0xde, 0xfe, 0x35, 0xaf,
+ 0xae, 0xd7, 0x66, 0x75, 0xf6, 0x61, 0xf3, 0xc2, 0x6d, 0xf7, 0x2c, 0x98, 0xdd, 0x42, 0xf9, 0xf5,
+ 0xa5, 0xc7, 0xbe, 0x22, 0x5a, 0x84, 0x96, 0xba, 0x7e, 0x4a, 0x9a, 0xf4, 0x10, 0x5b, 0x24, 0x86,
+ 0xd8, 0x32, 0xb8, 0x09, 0x22, 0x40, 0x44, 0x30, 0x98, 0x26, 0x82, 0x17, 0x32, 0x22, 0x6d, 0x72,
+ 0x5d, 0x9b, 0xc4, 0xd0, 0x83, 0xa1, 0x70, 0x6d, 0x30, 0x1d, 0x28, 0xa6, 0x15, 0xd5, 0x68, 0xc6,
+ 0x46, 0xd8, 0x42, 0x41, 0xc8, 0x2c, 0x53, 0x02, 0xa8, 0x78, 0xa2, 0xe2, 0x8b, 0xb8, 0x15, 0x58,
+ 0xa6, 0x0c, 0x43, 0xc6, 0xb8, 0xae, 0xf5, 0x40, 0x5e, 0xc0, 0x1d, 0x33, 0xc4, 0xe8, 0xf7, 0xd5,
+ 0xa4, 0x65, 0xaf, 0x4c, 0x9c, 0xfd, 0x75, 0x32, 0xdc, 0x2f, 0x7c, 0xe2, 0xbd, 0x63, 0x7b, 0xfd,
+ 0x42, 0xf7, 0xce, 0xd0, 0x3d, 0x2a, 0x39, 0x7d, 0x45, 0xb8, 0x73, 0x25, 0x52, 0x06, 0x00, 0x06,
+ 0x59, 0xcf, 0x0f, 0x43, 0xa8, 0xba, 0x8a, 0xd1, 0x35, 0x25, 0x50, 0x97, 0x29, 0x3a, 0xe2, 0xb1,
+ 0x04, 0x57, 0xf5, 0x97, 0x36, 0xb9, 0x7a, 0xad, 0xd2, 0x65, 0x0c, 0xb6, 0x29, 0x75, 0x1d, 0x27,
+ 0x6a, 0x59, 0x52, 0xc6, 0x50, 0x07, 0x9d, 0x70, 0xc6, 0xcd, 0xd3, 0xd0, 0x65, 0x0d, 0x58, 0x76,
+ 0xc7, 0xeb, 0xfd, 0x1d, 0x4f, 0x88, 0x19, 0x57, 0xda, 0x9c, 0xa6, 0x4d, 0x69, 0xdb, 0xb3, 0x7d,
+ 0xe7, 0x0b, 0xeb, 0x5e, 0x76, 0xec, 0xcc, 0xb4, 0x13, 0x92, 0xb3, 0xbf, 0xb5, 0xd8, 0x69, 0x34,
+ 0xc2, 0x3d, 0x82, 0xd9, 0x79, 0x64, 0xe0, 0x2b, 0xdf, 0x9a, 0x65, 0xb1, 0x85, 0x73, 0x83, 0x35,
+ 0xbf, 0x37, 0x2f, 0x7c, 0x3b, 0xdb, 0x32, 0x53, 0x95, 0xb6, 0x51, 0xcc, 0xd8, 0xc7, 0x1c, 0x9b,
+ 0x6d, 0x69, 0x67, 0x24, 0x4f, 0x7b, 0x70, 0xe0, 0x65, 0x99, 0xa1, 0x65, 0xca, 0xf1, 0xf2, 0x4b,
+ 0x2c, 0x53, 0xb6, 0x99, 0xe5, 0xd1, 0xef, 0xa8, 0x13, 0x8e, 0x37, 0xd6, 0x6c, 0x1e, 0xc5, 0xad,
+ 0x60, 0xfc, 0xac, 0xcb, 0xc1, 0xbf, 0x19, 0xd3, 0xcd, 0x89, 0x4a, 0xfd, 0x33, 0x70, 0xa6, 0x5b,
+ 0x52, 0xe5, 0xda, 0x1c, 0xf0, 0xf0, 0x79, 0x06, 0x57, 0xa9, 0xc1, 0x10, 0x27, 0x11, 0xe9, 0x8c,
+ 0x5b, 0xcd, 0xb8, 0xd5, 0x71, 0xd3, 0x3b, 0x87, 0x34, 0x95, 0x2a, 0x23, 0xd6, 0x7c, 0xae, 0x59,
+ 0x4a, 0x07, 0xfe, 0xb3, 0xe2, 0xf4, 0x7f, 0x8b, 0x69, 0x2b, 0xd8, 0x50, 0x94, 0x53, 0x62, 0x87,
+ 0x7d, 0xed, 0x30, 0xbe, 0x2c, 0xbd, 0xe3, 0xa9, 0x92, 0x79, 0x62, 0xf3, 0xc2, 0x5b, 0x4f, 0x8e,
+ 0xe5, 0x8a, 0x65, 0x0a, 0x9f, 0x7b, 0x79, 0x3d, 0x3c, 0x6f, 0xda, 0xec, 0xa9, 0x36, 0x83, 0x9a,
+ 0xf5, 0xc6, 0x6c, 0xd7, 0xff, 0xb4, 0xcd, 0x5b, 0x5e, 0x49, 0xdd, 0xa2, 0xca, 0x0a, 0x26, 0x27,
+ 0xc8, 0xe1, 0x8b, 0x0f, 0x4b, 0x36, 0x83, 0x43, 0x63, 0x24, 0xf4, 0xae, 0x01, 0xa5, 0x34, 0xab,
+ 0x8d, 0xef, 0x14, 0x1c, 0x53, 0x41, 0x43, 0x2a, 0x80, 0x60, 0x5b, 0xaa, 0x16, 0x9e, 0x52, 0x00,
+ 0x67, 0xe0, 0x7c, 0xc4, 0x6d, 0x87, 0x8a, 0x04, 0xd3, 0x0c, 0xa4, 0x19, 0x4c, 0xae, 0x42, 0x4d,
+ 0x00, 0x1c, 0x4b, 0xc6, 0x1c, 0x69, 0x12, 0x40, 0xc4, 0x58, 0xed, 0xd7, 0x9e, 0x88, 0x11, 0x1c,
+ 0x53, 0x0e, 0x76, 0x65, 0x6c, 0xe4, 0xe5, 0x55, 0x41, 0x9b, 0xd3, 0x8e, 0xe5, 0xe9, 0xd9, 0x7b,
+ 0x36, 0x3d, 0x45, 0x75, 0x8a, 0x68, 0x94, 0xf8, 0xf7, 0x13, 0xcb, 0xa9, 0xf0, 0x5c, 0xfc, 0xb8,
+ 0x4f, 0xc1, 0xb0, 0x50, 0x96, 0x75, 0x69, 0x59, 0x5c, 0xeb, 0x51, 0x45, 0x8d, 0x14, 0x71, 0xe0,
+ 0x45, 0xef, 0xb3, 0x8c, 0x71, 0x26, 0xea, 0x0a, 0x09, 0x5d, 0x17, 0x7b, 0x52, 0x39, 0xe5, 0x2e,
+ 0xbf, 0x51, 0xfb, 0xc5, 0xce, 0xa0, 0x05, 0xce, 0x34, 0x2e, 0x58, 0x32, 0xe5, 0xb6, 0xb4, 0xb7,
+ 0xc5, 0x1b, 0x8c, 0x35, 0xbf, 0x5e, 0xf3, 0xc2, 0xf3, 0x3b, 0x9b, 0x4f, 0x4c, 0x49, 0x93, 0xc7,
+ 0xe7, 0xc7, 0x9d, 0x99, 0xad, 0xdd, 0x77, 0x77, 0x7b, 0x9d, 0x1e, 0x38, 0x78, 0x47, 0x47, 0x75,
+ 0xc7, 0xe3, 0xba, 0x52, 0xb2, 0x8e, 0xb9, 0x01, 0x1a, 0xba, 0x1c, 0xee, 0x3b, 0x57, 0x6a, 0x8c,
+ 0x0c, 0x49, 0x4d, 0xd0, 0xa0, 0xd1, 0x65, 0x30, 0x87, 0x64, 0xf8, 0xef, 0xd1, 0x6c, 0x1e, 0x3c,
+ 0x46, 0xa4, 0x41, 0xd0, 0xc3, 0xa5, 0x2e, 0xbf, 0xa5, 0x3e, 0xb9, 0x05, 0xfb, 0x3a, 0x3e, 0x6a,
+ 0x8e, 0x81, 0x40, 0xa4, 0xf7, 0xfd, 0x23, 0x59, 0x7a, 0x1f, 0x39, 0xa2, 0xbe, 0x26, 0x87, 0xcc,
+ 0x13, 0x3f, 0xab, 0xb6, 0x3d, 0x08, 0x78, 0x70, 0xec, 0x54, 0x9a, 0x4a, 0xbb, 0x0b, 0xbb, 0xef,
+ 0xdd, 0x61, 0x1d, 0x1d, 0xdb, 0xb3, 0xbe, 0xf2, 0xd8, 0xc7, 0xb6, 0x6e, 0xbc, 0xa9, 0x27, 0x79,
+ 0x44, 0xd2, 0xb8, 0xa0, 0x61, 0xcd, 0x13, 0xab, 0x7c, 0xcf, 0x6b, 0x9a, 0x36, 0x3d, 0x9d, 0x4e,
+ 0x5b, 0x86, 0x43, 0xce, 0xb4, 0xc0, 0x68, 0xf7, 0x8b, 0x3b, 0xe3, 0xcb, 0xff, 0x1d, 0xd9, 0x10,
+ 0x9e, 0x1a, 0x5e, 0xc5, 0xb4, 0x57, 0x46, 0x12, 0x01, 0x52, 0x41, 0x2a, 0x84, 0x12, 0x4a, 0x02,
+ 0x1a, 0x4a, 0xd5, 0xfd, 0x5e, 0x87, 0xae, 0x75, 0xa9, 0xa4, 0x42, 0x52, 0x21, 0x11, 0x88, 0x83,
+ 0xa4, 0x1a, 0x55, 0x08, 0x90, 0x8a, 0x02, 0x85, 0x50, 0x21, 0xd4, 0xa3, 0x26, 0x74, 0x7d, 0x09,
+ 0x3f, 0xac, 0xcf, 0x18, 0x1a, 0xc3, 0x6c, 0xba, 0x2a, 0xa1, 0x10, 0x3f, 0xf5, 0xcb, 0x7b, 0x76,
+ 0x6c, 0x09, 0x92, 0x2b, 0xea, 0xf3, 0xc4, 0x04, 0xb1, 0x5a, 0x20, 0x4c, 0x02, 0x08, 0x53, 0x27,
+ 0xf1, 0xe2, 0x33, 0x7e, 0xf5, 0x95, 0xe4, 0x79, 0xbf, 0xca, 0xdf, 0xf7, 0x16, 0xe4, 0x3c, 0xa4,
+ 0xfe, 0xb1, 0xf6, 0x23, 0x20, 0x4e, 0xaa, 0xac, 0x54, 0x5e, 0xc5, 0x4f, 0xf9, 0x94, 0x68, 0x3c,
+ 0x62, 0xc7, 0x0b, 0xbf, 0xab, 0xcc, 0xfe, 0x78, 0x8a, 0x4a, 0x5c, 0x08, 0x00, 0x0d, 0x4d, 0xa9,
+ 0x30, 0x90, 0x7b, 0xb2, 0xbb, 0xd6, 0xdd, 0xbf, 0x7e, 0x73, 0x66, 0x73, 0x66, 0xcb, 0x6c, 0xf6,
+ 0xf2, 0x80, 0x99, 0x31, 0x66, 0xb4, 0x39, 0x4a, 0x6e, 0xc3, 0xcc, 0xc5, 0x2c, 0x3d, 0x83, 0x4f,
+ 0x99, 0x15, 0x3c, 0xf7, 0x25, 0xf3, 0xac, 0xcf, 0xfb, 0x2f, 0xfc, 0xbb, 0xec, 0x5d, 0x3f, 0x0e,
+ 0x63, 0xc4, 0xb8, 0xec, 0xff, 0x53, 0xb3, 0x0c, 0xff, 0xe2, 0x34, 0xc5, 0x71, 0x03, 0x28, 0x7f,
+ 0xd9, 0x5d, 0x74, 0x49, 0x3b, 0xa7, 0x7c, 0x89, 0x9c, 0x4c, 0xb8, 0xf5, 0x3f, 0xc5, 0xb4, 0x0f,
+ 0x01, 0xa8, 0x76, 0x57, 0x8b, 0x3b, 0x4a, 0xc5, 0x9d, 0x95, 0x6d, 0xbf, 0xd9, 0xd5, 0xd7, 0x9d,
+ 0x4c, 0xfb, 0x82, 0x40, 0x4f, 0x3e, 0xb9, 0x7a, 0xfb, 0xd6, 0x5c, 0xc3, 0x8c, 0x60, 0xc6, 0x91,
+ 0xb3, 0x52, 0x4d, 0xae, 0x6d, 0xdb, 0x00, 0xe2, 0x94, 0x2f, 0xb7, 0xbd, 0xa5, 0x6b, 0xd3, 0x8d,
+ 0x53, 0x0f, 0x7b, 0x5d, 0xec, 0xf5, 0x5f, 0x2d, 0xdf, 0xf3, 0x51, 0xa5, 0x89, 0xc5, 0x99, 0x56,
+ 0x7a, 0x1f, 0xc9, 0x78, 0xfa, 0x80, 0x92, 0x4d, 0xe9, 0xaf, 0x68, 0x66, 0x55, 0x0c, 0x95, 0x87,
+ 0xc4, 0x05, 0xff, 0xad, 0xf2, 0xdb, 0xc3, 0xc0, 0x57, 0x6d, 0x27, 0xd5, 0x5f, 0x9f, 0x9f, 0xb6,
+ 0x98, 0x13, 0xa8, 0xb6, 0xc2, 0xe5, 0xa8, 0xb3, 0xfe, 0x55, 0x26, 0x8e, 0x29, 0x6f, 0x7d, 0xcc,
+ 0x49, 0x7a, 0xb1, 0xf9, 0xef, 0x91, 0xa5, 0x5d, 0x61, 0xef, 0x16, 0x1d, 0x2a, 0x22, 0x45, 0x83,
+ 0xdb, 0x50, 0x1e, 0x8c, 0xa2, 0x14, 0x94, 0xd2, 0x4a, 0xa9, 0xaa, 0xd2, 0x05, 0xcd, 0xe3, 0x1d,
+ 0xee, 0x19, 0xdf, 0x10, 0x99, 0xf9, 0x3b, 0x37, 0x3c, 0x5c, 0x6e, 0x7f, 0x67, 0xd2, 0x8e, 0x33,
+ 0x28, 0xc6, 0x88, 0x31, 0x46, 0x44, 0xc2, 0x10, 0x2a, 0x08, 0x03, 0xaf, 0x54, 0xcc, 0xca, 0xe4,
+ 0x11, 0xce, 0x94, 0x29, 0x6d, 0xc9, 0x5d, 0x16, 0xf3, 0x04, 0x37, 0x7d, 0xbb, 0xa5, 0x07, 0xc4,
+ 0xb4, 0x68, 0x41, 0xef, 0x77, 0xa9, 0x79, 0x8e, 0x79, 0xf8, 0x87, 0x83, 0x0d, 0xdf, 0xd3, 0xd5,
+ 0x0a, 0x59, 0x0c, 0x93, 0xea, 0x57, 0x94, 0x08, 0xb2, 0x5f, 0x1a, 0xf3, 0xce, 0x89, 0x2d, 0xfb,
+ 0x6a, 0xf0, 0x87, 0x4f, 0x90, 0x99, 0x12, 0xb3, 0xcf, 0x43, 0xd9, 0x1b, 0x78, 0x75, 0x93, 0x15,
+ 0x2b, 0x89, 0xbe, 0x18, 0x7f, 0x7e, 0x1a, 0x77, 0xd5, 0xf4, 0x73, 0x9a, 0x0a, 0xcb, 0xbc, 0xde,
+ 0x0d, 0x2f, 0x1a, 0x4d, 0xac, 0x71, 0x4e, 0x7b, 0xcb, 0xf4, 0x74, 0x32, 0x6d, 0x33, 0xc6, 0x84,
+ 0x10, 0xd0, 0x52, 0x30, 0x14, 0xcd, 0x05, 0xde, 0xf6, 0x7b, 0x53, 0x53, 0x8f, 0xb0, 0x17, 0xbc,
+ 0x21, 0xe8, 0x7c, 0x4e, 0xf6, 0xf5, 0x68, 0x09, 0x10, 0x98, 0xd6, 0x83, 0xbf, 0x6e, 0x54, 0xeb,
+ 0xef, 0x5e, 0xfb, 0xab, 0x47, 0xfb, 0xd8, 0x1b, 0x57, 0xe9, 0xbf, 0xbc, 0xe8, 0x50, 0xab, 0xb2,
+ 0x56, 0x45, 0x2d, 0x5a, 0x8f, 0x77, 0xcf, 0xf8, 0x06, 0x64, 0xa5, 0x6b, 0xf7, 0xa6, 0x60, 0xda,
+ 0x07, 0x48, 0xfb, 0xeb, 0x1f, 0xbc, 0x79, 0xb8, 0x47, 0x18, 0xb5, 0x0f, 0x8f, 0x63, 0xf8, 0xbe,
+ 0xd4, 0xa5, 0xf6, 0xcb, 0x37, 0x6c, 0xbb, 0xab, 0x3d, 0xfd, 0x52, 0xe6, 0xb8, 0x77, 0x79, 0xd9,
+ 0x37, 0xa8, 0xae, 0x27, 0xd5, 0xc0, 0xab, 0x2a, 0xb7, 0x01, 0xfa, 0x60, 0x2d, 0xde, 0xd3, 0x00,
+ 0xb8, 0xd3, 0x64, 0xb4, 0x2f, 0xe4, 0xcd, 0x47, 0x79, 0xd6, 0x42, 0xad, 0xb2, 0x9b, 0x5e, 0xd9,
+ 0xe4, 0x37, 0xff, 0x93, 0x6b, 0xb7, 0x93, 0xf6, 0x19, 0xe7, 0x35, 0x01, 0xc0, 0x85, 0x19, 0x77,
+ 0xe4, 0xdc, 0x59, 0x7e, 0xca, 0x32, 0xb7, 0x6f, 0xce, 0x67, 0xf3, 0xcf, 0x2f, 0xb8, 0xc0, 0x68,
+ 0x5a, 0xba, 0x08, 0xb7, 0xc1, 0x97, 0x03, 0xdd, 0xc1, 0x6d, 0x08, 0x43, 0x54, 0x00, 0x00, 0x07,
+ 0xf4, 0x49, 0x44, 0x41, 0x54, 0x8b, 0x6e, 0x31, 0x47, 0x6d, 0x29, 0x9f, 0x5d, 0x69, 0x3e, 0xf5,
+ 0xa1, 0xd8, 0xeb, 0x57, 0x3a, 0xe7, 0xfc, 0xd6, 0xbf, 0xef, 0x94, 0x20, 0xaf, 0xc4, 0xd0, 0x66,
+ 0x53, 0x8a, 0xf1, 0xbf, 0xa6, 0xf7, 0xfe, 0x87, 0x81, 0x52, 0x23, 0xca, 0xd6, 0x2b, 0xf8, 0xe6,
+ 0x94, 0xe5, 0xf1, 0x53, 0x7e, 0xa8, 0xb6, 0xdd, 0x5a, 0xc9, 0x3e, 0x14, 0xcc, 0xfb, 0x76, 0x82,
+ 0x77, 0x23, 0x80, 0x3b, 0x83, 0xe7, 0xbd, 0xce, 0xc4, 0xf3, 0xc9, 0x8c, 0xdd, 0x3c, 0xe3, 0xf2,
+ 0x8c, 0x7f, 0xd4, 0xc0, 0xa6, 0xd5, 0x0f, 0x37, 0x2c, 0x08, 0x32, 0x8d, 0x89, 0xd8, 0xd4, 0x4c,
+ 0x32, 0x9d, 0x32, 0x8d, 0x8a, 0x86, 0x50, 0x4a, 0x11, 0x11, 0x93, 0x81, 0xe3, 0xa4, 0x8b, 0x4d,
+ 0x57, 0x75, 0xed, 0xbc, 0xc3, 0x31, 0xaa, 0xa9, 0x13, 0x3e, 0x56, 0x1e, 0xe8, 0x36, 0x7a, 0x57,
+ 0xaa, 0x81, 0x4d, 0x41, 0x79, 0xcf, 0x7e, 0xec, 0xf7, 0xb7, 0xb1, 0x2b, 0x1b, 0x0a, 0xb3, 0x7a,
+ 0xce, 0x2c, 0xd1, 0xd6, 0x61, 0xb4, 0x9f, 0xc0, 0x52, 0x33, 0x77, 0x6f, 0xdb, 0x50, 0x95, 0xa6,
+ 0x6c, 0x7b, 0x9f, 0xcb, 0xa5, 0xe0, 0x34, 0xee, 0x3e, 0x3c, 0x44, 0x10, 0x1c, 0xb6, 0xc5, 0xca,
+ 0xed, 0x17, 0x75, 0x66, 0x57, 0x97, 0x37, 0x3e, 0xd9, 0xd2, 0x3c, 0x55, 0x4c, 0x3f, 0x53, 0x4f,
+ 0x5d, 0x0e, 0xe9, 0x73, 0x78, 0x7f, 0x56, 0xbf, 0xf4, 0x17, 0x13, 0xbf, 0x96, 0x96, 0x4a, 0x9c,
+ 0xc5, 0xa7, 0xf8, 0xd5, 0x5c, 0xe7, 0x8e, 0x8d, 0x64, 0xb7, 0x05, 0xed, 0x57, 0x3a, 0x4e, 0x42,
+ 0x90, 0x3f, 0x6a, 0xf1, 0x28, 0x63, 0x09, 0x7b, 0x80, 0xa7, 0xc1, 0x0d, 0x53, 0xc4, 0x9c, 0xce,
+ 0x3d, 0xb9, 0x0d, 0xdb, 0x1f, 0x17, 0xf3, 0x78, 0xe3, 0xbb, 0x8f, 0xa0, 0x3f, 0x42, 0x22, 0x10,
+ 0x4e, 0x09, 0x54, 0x35, 0x5a, 0x4e, 0x2c, 0x04, 0xeb, 0xf1, 0xbb, 0x73, 0xe2, 0xe7, 0xdd, 0xcf,
+ 0x2e, 0x58, 0x25, 0xef, 0xbd, 0x38, 0x2c, 0x77, 0x8a, 0x43, 0x7a, 0x07, 0x62, 0x56, 0xb7, 0x99,
+ 0xa4, 0x3d, 0xef, 0x8a, 0xc4, 0x89, 0x5f, 0x61, 0xbd, 0xbf, 0xe9, 0x59, 0xf7, 0x4d, 0x63, 0xfe,
+ 0x97, 0x98, 0x23, 0x08, 0x1e, 0x71, 0xad, 0xb5, 0x0b, 0x29, 0x09, 0xb0, 0x2f, 0xdf, 0xd5, 0x77,
+ 0x0e, 0xb6, 0x3e, 0xf1, 0x48, 0xcb, 0x14, 0xbf, 0xa9, 0x35, 0x93, 0x89, 0x89, 0xb2, 0x59, 0x65,
+ 0x8c, 0x49, 0x19, 0xa3, 0xa1, 0x65, 0x28, 0xc4, 0xb9, 0x45, 0x12, 0xae, 0x9b, 0xa7, 0xb7, 0xf4,
+ 0xec, 0x7e, 0x30, 0x93, 0xdf, 0x92, 0x69, 0x99, 0x69, 0x2e, 0x78, 0x0b, 0xa4, 0x2f, 0xbc, 0x5c,
+ 0x1d, 0xa3, 0xe8, 0xef, 0xd8, 0x99, 0x0d, 0xde, 0xcb, 0x22, 0x11, 0xb0, 0x46, 0xed, 0x17, 0x7a,
+ 0x76, 0x6c, 0x96, 0x66, 0x47, 0xd0, 0xbc, 0xdc, 0x75, 0x98, 0xe0, 0x23, 0x6d, 0x63, 0x9c, 0xb8,
+ 0x3e, 0x91, 0x65, 0x70, 0x40, 0x96, 0x33, 0x27, 0x97, 0xf4, 0xd1, 0x9b, 0x06, 0x9e, 0x55, 0xc5,
+ 0x0d, 0x00, 0xc8, 0x48, 0x70, 0x58, 0x07, 0x85, 0xfa, 0x23, 0x03, 0x19, 0xb9, 0x83, 0xb9, 0x33,
+ 0xc2, 0x96, 0xd7, 0xc1, 0x6c, 0x4c, 0xdb, 0x92, 0x84, 0xaa, 0xdf, 0x2c, 0x40, 0x31, 0xc3, 0xd2,
+ 0x39, 0x87, 0xf7, 0x31, 0x47, 0x58, 0xb6, 0xb0, 0x1d, 0x11, 0x8b, 0x8b, 0xed, 0xbb, 0x77, 0xed,
+ 0xea, 0x7a, 0x0a, 0x1d, 0xd0, 0xed, 0x01, 0x00, 0x62, 0x9a, 0x73, 0x2d, 0x55, 0xaf, 0x3b, 0xef,
+ 0x92, 0xc2, 0x06, 0xd0, 0xbd, 0xe7, 0xd0, 0x09, 0xdf, 0x73, 0x2f, 0xfa, 0x83, 0xbf, 0xee, 0xd3,
+ 0xd5, 0x17, 0x7f, 0x04, 0x80, 0xec, 0x90, 0x04, 0x0e, 0xad, 0x3d, 0x5a, 0x34, 0x20, 0x07, 0x47,
+ 0xd5, 0x76, 0x93, 0x79, 0xe4, 0x27, 0x8d, 0x39, 0x97, 0x87, 0x9b, 0xbe, 0x95, 0x7b, 0xe5, 0x47,
+ 0xa5, 0x19, 0x9f, 0x48, 0xbb, 0x0b, 0x2c, 0x2b, 0xc7, 0xb9, 0x20, 0x40, 0xd6, 0x22, 0x49, 0x47,
+ 0x75, 0x8a, 0x39, 0x99, 0xde, 0x97, 0xd7, 0x5b, 0x4e, 0x65, 0xc6, 0xac, 0x56, 0x37, 0x61, 0xbb,
+ 0x42, 0xa4, 0xad, 0xde, 0x01, 0xd5, 0x10, 0xca, 0x18, 0x8d, 0x76, 0x94, 0x96, 0x90, 0x88, 0xc7,
+ 0xd8, 0xb4, 0xb3, 0x4b, 0xa8, 0x14, 0x7b, 0x9e, 0x56, 0x95, 0x5d, 0x00, 0xb8, 0x93, 0xac, 0x0f,
+ 0x27, 0xfd, 0xfd, 0x9a, 0xf7, 0x50, 0x67, 0x22, 0x64, 0x36, 0x1b, 0xf4, 0x38, 0x89, 0x39, 0x4e,
+ 0xeb, 0x85, 0x20, 0x33, 0x6e, 0x2a, 0xd3, 0x18, 0x63, 0x6f, 0x95, 0xb1, 0x36, 0x23, 0x21, 0xb2,
+ 0x0c, 0x6e, 0x1a, 0x94, 0xab, 0x66, 0x94, 0xbb, 0x84, 0x92, 0xcb, 0x74, 0x58, 0xd0, 0xc4, 0xaa,
+ 0xfe, 0xc1, 0xd9, 0x86, 0x96, 0x0d, 0xfb, 0x75, 0xee, 0x0a, 0x83, 0xa5, 0xad, 0xaa, 0xe2, 0x0e,
+ 0x48, 0x72, 0x5e, 0xb7, 0xdd, 0x12, 0x71, 0x48, 0x19, 0x17, 0x7b, 0x08, 0x8a, 0x48, 0x10, 0x21,
+ 0x1e, 0x37, 0x19, 0x23, 0x32, 0x9a, 0x0a, 0xf9, 0x72, 0xb1, 0xfa, 0xbc, 0x6e, 0x49, 0xb7, 0x04,
+ 0x0e, 0xe7, 0x5c, 0x08, 0x01, 0x84, 0x65, 0xa9, 0x9c, 0xd9, 0x17, 0x66, 0x77, 0xa4, 0x53, 0xab,
+ 0xae, 0x08, 0x3b, 0x2e, 0xb1, 0x96, 0x7d, 0x5d, 0xcc, 0x79, 0x67, 0xb0, 0xe1, 0xd6, 0x60, 0xc7,
+ 0xdd, 0xaa, 0x98, 0x47, 0x2d, 0xfb, 0x9c, 0xf4, 0x84, 0xe7, 0xfc, 0x50, 0x2a, 0x0d, 0xa5, 0xe7,
+ 0x9a, 0x73, 0xae, 0x30, 0xe7, 0x5c, 0xa1, 0xc3, 0x52, 0x79, 0xed, 0x75, 0x5e, 0xcf, 0x33, 0xde,
+ 0xac, 0xcf, 0xba, 0x89, 0x79, 0x08, 0xb2, 0x64, 0x83, 0x08, 0xc4, 0x95, 0x65, 0xe7, 0x1c, 0x29,
+ 0x0a, 0x53, 0x7a, 0x77, 0xe4, 0x77, 0xd9, 0xa6, 0xdf, 0xde, 0xd2, 0x92, 0x48, 0xda, 0xae, 0x6b,
+ 0x90, 0x07, 0xc6, 0x65, 0x9c, 0xf5, 0xe6, 0xe4, 0x8c, 0xc1, 0xc0, 0xe4, 0x68, 0xf6, 0x9b, 0x09,
+ 0x73, 0xa0, 0x62, 0xea, 0xe6, 0x93, 0x48, 0x87, 0x00, 0xaa, 0xe5, 0x83, 0xb3, 0x7d, 0x81, 0x31,
+ 0xd4, 0xc3, 0x94, 0x94, 0x95, 0x8a, 0x9b, 0xc4, 0x4c, 0xa9, 0x02, 0x2e, 0x1c, 0xdb, 0xf2, 0xc6,
+ 0xec, 0x7c, 0x46, 0x0b, 0x1e, 0xa5, 0x50, 0xb7, 0xef, 0x4a, 0x3a, 0x16, 0x84, 0x56, 0x42, 0x49,
+ 0x09, 0x9d, 0x54, 0x2a, 0xd0, 0xb6, 0x55, 0x37, 0x1d, 0xf2, 0x77, 0x6c, 0xcd, 0x7c, 0xf8, 0x0f,
+ 0xc3, 0x34, 0x88, 0x91, 0xcb, 0x6b, 0x73, 0x5a, 0xa3, 0xe2, 0x88, 0x3c, 0xc1, 0x76, 0x19, 0xba,
+ 0x48, 0xda, 0xac, 0xd5, 0x0d, 0x11, 0x4c, 0x93, 0x32, 0xc9, 0xa4, 0x6d, 0x5a, 0x52, 0x86, 0x5c,
+ 0x05, 0x4e, 0xcc, 0x62, 0x42, 0x11, 0x0f, 0x19, 0x94, 0x05, 0xe9, 0x2b, 0x6d, 0xb4, 0x9f, 0x99,
+ 0x8b, 0xcd, 0xd2, 0x9b, 0x7e, 0x95, 0xd8, 0xb1, 0xd2, 0x9c, 0x77, 0xa5, 0x58, 0xf2, 0x39, 0xeb,
+ 0xe8, 0xeb, 0xd5, 0xc0, 0x46, 0xd9, 0xf3, 0xb4, 0xca, 0x6f, 0x96, 0x95, 0x89, 0xbd, 0xd9, 0x3a,
+ 0x77, 0x42, 0xb2, 0x1a, 0x79, 0xf3, 0xc9, 0x2c, 0x35, 0xdf, 0x37, 0xe7, 0x68, 0xe9, 0x95, 0x5e,
+ 0xfc, 0xaf, 0xf2, 0x8e, 0xc7, 0x83, 0xd8, 0x2c, 0x3e, 0xff, 0x46, 0xd2, 0xa6, 0x6d, 0x14, 0x4c,
+ 0x83, 0x73, 0xce, 0x19, 0x27, 0x4d, 0x4c, 0x31, 0x69, 0x3a, 0x4e, 0x4c, 0x6b, 0xee, 0x33, 0x83,
+ 0x27, 0x9d, 0x98, 0x65, 0x9b, 0x82, 0x14, 0x07, 0x07, 0x24, 0x6c, 0xf4, 0xf9, 0xdc, 0x2d, 0xe9,
+ 0x46, 0x31, 0xb4, 0xe1, 0x02, 0xd1, 0xe0, 0x10, 0x0b, 0x40, 0xd2, 0x26, 0x2d, 0x6d, 0x00, 0x5a,
+ 0x05, 0x41, 0xdd, 0x66, 0x24, 0x7f, 0x57, 0x9e, 0x0c, 0xb9, 0x2a, 0x07, 0xe4, 0x38, 0x06, 0xa0,
+ 0x35, 0x4c, 0xa2, 0x60, 0x3c, 0xd1, 0x35, 0x8a, 0xfa, 0x12, 0x16, 0x00, 0x55, 0x97, 0x6a, 0x26,
+ 0x0c, 0xad, 0x85, 0xfe, 0xfb, 0xbf, 0xc6, 0x78, 0x71, 0x2f, 0x4d, 0x63, 0xec, 0x3b, 0xa5, 0xc1,
+ 0x1d, 0x1a, 0x88, 0x51, 0x0f, 0x81, 0xd7, 0xe7, 0x26, 0x08, 0x41, 0x44, 0xc2, 0x30, 0xb8, 0x52,
+ 0x0a, 0x44, 0x82, 0x73, 0x2e, 0x58, 0x6d, 0xf2, 0x43, 0x08, 0x06, 0x68, 0xad, 0x7d, 0x95, 0x9c,
+ 0xe3, 0xcd, 0xf9, 0x60, 0xbe, 0xef, 0x31, 0x7a, 0xf6, 0xbf, 0x12, 0xce, 0xf7, 0x9d, 0xa9, 0xc7,
+ 0xb3, 0xcc, 0x12, 0x31, 0xe3, 0x5c, 0x16, 0x9f, 0x36, 0x7a, 0x21, 0x09, 0x4d, 0x30, 0x57, 0x0f,
+ 0x80, 0xb4, 0x0e, 0x06, 0x10, 0x96, 0x55, 0x61, 0x93, 0xff, 0xc2, 0x4f, 0x2a, 0xbd, 0x1b, 0xa5,
+ 0xd1, 0x5c, 0x6d, 0xbf, 0xd4, 0x6e, 0x9c, 0x67, 0x32, 0xcf, 0x34, 0xa4, 0x65, 0x09, 0xc6, 0x38,
+ 0x67, 0xd0, 0x50, 0xd0, 0x60, 0x8c, 0x0c, 0xc1, 0x59, 0x3c, 0x1e, 0x73, 0x14, 0x11, 0x13, 0x82,
+ 0x38, 0xe7, 0xb5, 0x1d, 0x2e, 0x48, 0x13, 0x41, 0x26, 0x68, 0x77, 0x55, 0xbb, 0x01, 0xe2, 0xc3,
+ 0x13, 0x58, 0x23, 0xcd, 0x8c, 0x03, 0xac, 0xc6, 0x78, 0x87, 0x59, 0xff, 0x08, 0x83, 0x1b, 0x1a,
+ 0x56, 0xff, 0xa1, 0x3e, 0x80, 0x2d, 0xa8, 0x1c, 0xf4, 0x62, 0x30, 0x73, 0x6b, 0xac, 0x4a, 0x3f,
+ 0x68, 0x1b, 0x52, 0x8f, 0xbd, 0xd4, 0xa2, 0xbe, 0x29, 0xc6, 0xa8, 0x9f, 0xe0, 0xa3, 0x96, 0x92,
+ 0x56, 0xf7, 0xaa, 0x9c, 0x13, 0x63, 0x04, 0x30, 0xa5, 0x34, 0x1f, 0x5a, 0x55, 0xc9, 0x98, 0x06,
+ 0x48, 0x88, 0x9a, 0xd3, 0x0a, 0x12, 0xa6, 0xe8, 0xe5, 0x67, 0x21, 0x73, 0x62, 0xbe, 0xf8, 0xea,
+ 0xce, 0xed, 0xeb, 0x1b, 0xb7, 0xac, 0x15, 0x0c, 0x92, 0xc7, 0xc8, 0xae, 0x13, 0x54, 0x13, 0x84,
+ 0xfa, 0xf5, 0x61, 0x5a, 0x45, 0x9a, 0x91, 0xaf, 0x24, 0x2a, 0x25, 0x66, 0x58, 0x2d, 0x7e, 0xfb,
+ 0x3b, 0x94, 0xd5, 0xd6, 0x9a, 0x22, 0x89, 0xc0, 0x32, 0xb9, 0x61, 0x70, 0x22, 0xe2, 0xa4, 0x51,
+ 0x4b, 0x21, 0x04, 0x34, 0xc0, 0x19, 0x31, 0xc6, 0xa1, 0x07, 0xdd, 0xf9, 0xf0, 0xb6, 0x9b, 0x5a,
+ 0xd7, 0x3e, 0xac, 0x24, 0xb1, 0xad, 0x8a, 0x06, 0x86, 0x10, 0x7b, 0xed, 0x76, 0x36, 0xae, 0x73,
+ 0x60, 0x07, 0x9d, 0x27, 0xe3, 0x55, 0xdd, 0x28, 0xea, 0x27, 0xb0, 0x65, 0x6f, 0x89, 0xcb, 0xfe,
+ 0xb4, 0xbb, 0xfc, 0x8d, 0xea, 0x73, 0x6c, 0xea, 0x53, 0xfd, 0x29, 0x34, 0xde, 0xd8, 0xb4, 0x56,
+ 0x41, 0x9c, 0xef, 0xbd, 0xf2, 0x9b, 0x31, 0x12, 0x82, 0x33, 0x46, 0x32, 0xf0, 0x9b, 0xe2, 0x21,
+ 0x60, 0xf5, 0xea, 0xd9, 0x8e, 0xb9, 0xc0, 0xd3, 0x41, 0xd1, 0xcf, 0x29, 0xed, 0xd7, 0xef, 0x6f,
+ 0x35, 0x11, 0xf7, 0x5e, 0x65, 0x26, 0x63, 0x24, 0x38, 0x4f, 0x23, 0x1d, 0xaf, 0x0a, 0xa3, 0x35,
+ 0xa9, 0x34, 0x71, 0xce, 0x94, 0x65, 0x72, 0x56, 0xf3, 0xf6, 0xe3, 0xf1, 0x64, 0x2f, 0x4a, 0x93,
+ 0xae, 0x79, 0x19, 0xad, 0xb9, 0x89, 0x9c, 0x85, 0xec, 0x50, 0xa7, 0xf2, 0x0f, 0xed, 0x03, 0xf6,
+ 0xcb, 0x55, 0x31, 0x66, 0x64, 0xf4, 0xe0, 0x50, 0xfc, 0x2f, 0x6a, 0xcc, 0xe3, 0x2c, 0xb4, 0xd5,
+ 0xe3, 0xf5, 0x87, 0x0c, 0x50, 0xc4, 0xc0, 0x41, 0x4c, 0x08, 0xae, 0xb5, 0x54, 0xaa, 0x21, 0x69,
+ 0x2b, 0x45, 0xa1, 0x24, 0xa5, 0x32, 0x52, 0xaa, 0xda, 0xd2, 0x3b, 0xa5, 0x15, 0x11, 0x41, 0x4f,
+ 0x24, 0xc1, 0xa3, 0xa1, 0x19, 0x31, 0x02, 0x31, 0x46, 0xc4, 0x98, 0xe0, 0x8c, 0x71, 0xc6, 0x04,
+ 0x13, 0x82, 0x71, 0x32, 0x19, 0x67, 0x8c, 0x40, 0x50, 0xba, 0x96, 0x58, 0x33, 0xd4, 0xaa, 0xc7,
+ 0x5d, 0x2a, 0x56, 0xb7, 0xab, 0x00, 0x9f, 0x28, 0xda, 0xef, 0x00, 0x78, 0x7b, 0xc8, 0x44, 0xf1,
+ 0xfe, 0x44, 0x17, 0xa4, 0xd5, 0x60, 0x1d, 0x32, 0x08, 0x70, 0xa5, 0x35, 0x23, 0xe2, 0x8c, 0x69,
+ 0x48, 0xa5, 0x98, 0xd4, 0xa4, 0xf5, 0x90, 0xa3, 0xd7, 0xb5, 0x06, 0x30, 0xe1, 0x04, 0x0f, 0x81,
+ 0x88, 0x31, 0x22, 0x80, 0x33, 0x02, 0x23, 0xc1, 0x18, 0x88, 0xf8, 0x60, 0x4e, 0xbb, 0x1a, 0x72,
+ 0xdb, 0x87, 0xd2, 0x1e, 0xa3, 0x7f, 0x1a, 0xc4, 0x5f, 0x81, 0x46, 0x13, 0xbd, 0xa9, 0x30, 0x30,
+ 0x80, 0x31, 0x68, 0x4d, 0x20, 0x2e, 0xa5, 0x1e, 0x1c, 0x31, 0xd4, 0xa5, 0x1a, 0x4f, 0xbc, 0x9f,
+ 0x13, 0x1a, 0xfa, 0xb1, 0x20, 0x22, 0x30, 0x22, 0x4d, 0xf5, 0x71, 0x0e, 0x35, 0xc9, 0xea, 0xfa,
+ 0x80, 0xa8, 0x2f, 0x27, 0xa5, 0x35, 0x46, 0x72, 0x21, 0x31, 0xb8, 0x6c, 0x12, 0x00, 0x69, 0x75,
+ 0x48, 0xbc, 0xd5, 0x48, 0x1f, 0xa0, 0xc7, 0xa0, 0xfb, 0xe4, 0x65, 0xfe, 0x5e, 0xd4, 0x57, 0x93,
+ 0xd3, 0x12, 0x63, 0x53, 0xe1, 0xef, 0x39, 0x09, 0xff, 0xb7, 0x79, 0xad, 0xba, 0x9d, 0x77, 0xc6,
+ 0x58, 0x65, 0x3c, 0xd9, 0x21, 0x26, 0x9f, 0xd4, 0xf9, 0x73, 0xa8, 0x13, 0x21, 0xa2, 0x7e, 0x84,
+ 0x08, 0x87, 0x26, 0xf5, 0x55, 0x64, 0x91, 0x08, 0x93, 0x58, 0xeb, 0xb3, 0xc8, 0x2c, 0x11, 0x26,
+ 0xa7, 0xe0, 0x89, 0x54, 0x4f, 0x84, 0xc9, 0x47, 0xfd, 0x68, 0x78, 0x17, 0x61, 0x92, 0x52, 0x5f,
+ 0x46, 0x16, 0x89, 0x30, 0x29, 0xa9, 0x4f, 0x91, 0xe0, 0x89, 0x30, 0x99, 0x87, 0xb9, 0x11, 0x22,
+ 0x4c, 0x3a, 0xea, 0x0f, 0xee, 0xfe, 0x16, 0x35, 0x80, 0x08, 0x93, 0x8e, 0xfa, 0x51, 0x5c, 0x3f,
+ 0xc2, 0x64, 0xd6, 0xfa, 0x11, 0x22, 0x4c, 0x52, 0xc1, 0x13, 0x8d, 0x73, 0x23, 0x4c, 0x3a, 0xea,
+ 0x0f, 0x26, 0x32, 0x50, 0x64, 0x97, 0x08, 0x93, 0x8d, 0xfa, 0xf5, 0x0d, 0x20, 0x42, 0x84, 0x68,
+ 0x98, 0x1b, 0x21, 0xc2, 0xa1, 0xee, 0xf5, 0x23, 0xad, 0x1f, 0x61, 0x32, 0x6b, 0xfd, 0x88, 0xf9,
+ 0x11, 0x26, 0x01, 0xd8, 0x6b, 0xbc, 0x7e, 0x44, 0xfc, 0x08, 0x93, 0xd0, 0xeb, 0xab, 0x68, 0x36,
+ 0x37, 0xc2, 0x64, 0xd6, 0xfa, 0x51, 0xd2, 0x72, 0x84, 0x49, 0xaa, 0xf5, 0x23, 0x44, 0x98, 0xa4,
+ 0x5e, 0x3f, 0x42, 0x84, 0xc9, 0xaa, 0xf5, 0x23, 0xb3, 0x44, 0x88, 0xbc, 0x7e, 0x84, 0x08, 0x93,
+ 0x48, 0xeb, 0x47, 0xfc, 0x8f, 0x10, 0x79, 0xfd, 0x08, 0x11, 0x22, 0xea, 0x47, 0x88, 0x70, 0x08,
+ 0x53, 0x3f, 0x8a, 0xe8, 0x47, 0x98, 0xd4, 0x5a, 0x3f, 0x42, 0x84, 0xc8, 0xeb, 0x47, 0x88, 0x10,
+ 0x69, 0xfd, 0x08, 0x11, 0x22, 0xea, 0x47, 0x88, 0x70, 0x68, 0x6a, 0xfd, 0x88, 0xff, 0x11, 0x22,
+ 0xaf, 0x1f, 0x21, 0xc2, 0xe4, 0xa0, 0x7e, 0xb4, 0xf1, 0x60, 0x84, 0xc8, 0xeb, 0x47, 0x88, 0x10,
+ 0x51, 0x3f, 0x42, 0x84, 0x49, 0x42, 0xfd, 0x88, 0xff, 0x11, 0x26, 0x9f, 0xd6, 0x57, 0x40, 0x94,
+ 0xaf, 0x1f, 0x21, 0x12, 0x3c, 0x11, 0x22, 0x44, 0x82, 0x27, 0x42, 0x84, 0xc8, 0xeb, 0x47, 0x88,
+ 0x70, 0xe8, 0x51, 0x3f, 0x4a, 0x5f, 0x8b, 0x10, 0x79, 0xfd, 0x08, 0x11, 0x0e, 0x6d, 0xd0, 0x67,
+ 0xde, 0x36, 0xf2, 0x4f, 0x43, 0x43, 0x43, 0x64, 0x91, 0x08, 0x87, 0x30, 0xb2, 0xd9, 0xec, 0xd8,
+ 0x5e, 0xbf, 0xfe, 0x83, 0x08, 0x11, 0x0e, 0x6d, 0xb0, 0xc8, 0x04, 0x11, 0x22, 0xea, 0x47, 0x88,
+ 0x30, 0x89, 0xf0, 0xff, 0x01, 0xff, 0x06, 0x5d, 0x67, 0xc8, 0xbc, 0x24, 0x9a, 0x00, 0x00, 0x00,
+ 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
+};
+}
\ No newline at end of file
diff --git a/SortByInternalDifficulty/MU3.CustomUI/patch_MU3UIImageChanger.cs b/SortByInternalDifficulty/MU3.CustomUI/patch_MU3UIImageChanger.cs
new file mode 100644
index 0000000..7d6d93e
--- /dev/null
+++ b/SortByInternalDifficulty/MU3.CustomUI/patch_MU3UIImageChanger.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+
+namespace MU3.CustomUI;
+
+class patch_MU3UIImageChanger: MU3UIImageChanger {
+ private Sprite[] _sprites;
+
+ public Sprite[] sprites {
+ get { return _sprites; }
+ set { _sprites = value; }
+ }
+}
\ No newline at end of file
diff --git a/SortByInternalDifficulty/MU3.DB/patch_MusicSort1ID.cs b/SortByInternalDifficulty/MU3.DB/patch_MusicSort1ID.cs
new file mode 100644
index 0000000..4ad2c0d
--- /dev/null
+++ b/SortByInternalDifficulty/MU3.DB/patch_MusicSort1ID.cs
@@ -0,0 +1,18 @@
+using MonoMod;
+
+namespace MU3.DB;
+
+[MonoModEnumReplace]
+public enum patch_MusicSort1ID {
+ Genre = 0,
+ All = 1,
+ Character = 2,
+ Version = 3,
+ Level = 4,
+ Name = 5,
+ Attribute = 6,
+ InternalLevel = 7,
+ Begin = 0,
+ End = 8,
+ Invalid = -1
+}
diff --git a/SortByInternalDifficulty/MU3.DB/patch_MusicSort1IDEnum.cs b/SortByInternalDifficulty/MU3.DB/patch_MusicSort1IDEnum.cs
new file mode 100644
index 0000000..fc4d305
--- /dev/null
+++ b/SortByInternalDifficulty/MU3.DB/patch_MusicSort1IDEnum.cs
@@ -0,0 +1,40 @@
+using MonoMod;
+
+namespace MU3.DB;
+
+[MonoModPatch("global::MU3.DB.MusicSort1IDEnum")]
+public static class patch_MusicSort1IDEnum {
+ private static MusicSort1TableRecord[] records;
+ public static patch_MusicSort1ID[] List;
+ public static extern bool orig_loadFromFile(string filename);
+
+ public static bool loadFromFile(string filename) {
+ var rv = orig_loadFromFile(filename);
+ records = new[] {
+ new MusicSort1TableRecord(0, "Genre", "ジャンル", 0),
+ new MusicSort1TableRecord(1, "All", "全曲", 0),
+ new MusicSort1TableRecord(2, "Character", "キャラクター", 0),
+ new MusicSort1TableRecord(3, "Version", "バージョン", 0),
+ new MusicSort1TableRecord(4, "Level", "譜面レベル", 0),
+ new MusicSort1TableRecord(5, "Name", "曲名", 0),
+ new MusicSort1TableRecord(6, "Attribute", "属性", 0),
+ new MusicSort1TableRecord(7, "InternalLevel", "譜面定数", 0)
+ };
+ List = new[] {
+ patch_MusicSort1ID.Genre,
+ patch_MusicSort1ID.All,
+ patch_MusicSort1ID.Character,
+ patch_MusicSort1ID.Version,
+ patch_MusicSort1ID.Level,
+ patch_MusicSort1ID.Name,
+ patch_MusicSort1ID.Attribute,
+ patch_MusicSort1ID.InternalLevel
+ };
+ return rv;
+ }
+
+ // Not exactly sure why this is necessary
+ public static bool isValid(this patch_MusicSort1ID self) {
+ return self >= patch_MusicSort1ID.Genre && self < patch_MusicSort1ID.End;
+ }
+}
diff --git a/SortByInternalDifficulty/MU3.DB/patch_MusicSort2IDEnum.cs b/SortByInternalDifficulty/MU3.DB/patch_MusicSort2IDEnum.cs
new file mode 100644
index 0000000..ee40959
--- /dev/null
+++ b/SortByInternalDifficulty/MU3.DB/patch_MusicSort2IDEnum.cs
@@ -0,0 +1,15 @@
+using MonoMod;
+
+namespace MU3.DB;
+
+[MonoModPatch("global::MU3.DB.MusicSort2IDEnum")]
+public static class patch_MusicSort2IDEnum {
+ private static MusicSort2TableRecord[] records;
+ public static extern bool orig_loadFromFile(string filename);
+
+ public static bool loadFromFile(string filename) {
+ var rv = orig_loadFromFile(filename);
+ records[4].Name = "譜面定数";
+ return rv;
+ }
+}
diff --git a/SortByInternalDifficulty/MU3.ViewData/patch_MusicSelectViewDataList.cs b/SortByInternalDifficulty/MU3.ViewData/patch_MusicSelectViewDataList.cs
new file mode 100644
index 0000000..69d1fdf
--- /dev/null
+++ b/SortByInternalDifficulty/MU3.ViewData/patch_MusicSelectViewDataList.cs
@@ -0,0 +1,128 @@
+using MU3.DataStudio;
+using MU3.DB;
+using MU3.Util;
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+
+namespace MU3.ViewData;
+
+class patch_MusicSelectViewDataList: MusicSelectViewDataList {
+ private delegate int CompareProc(MusicSelectViewData d1, MusicSelectViewData d2, bool forSort1);
+ private delegate string GetCategoryNameProc(MusicSelectViewData d);
+ private MusicSort1ID __sort1;
+ private CompareProc _compareProc1;
+ private CompareProc _compareProc2;
+ private GetCategoryNameProc _getCategoryNameProc;
+
+ private extern void orig_set__sort1(MusicSort1ID value);
+ private extern void orig_set__sort2(MusicSort2ID value);
+
+ private void set__sort1(MusicSort1ID value) {
+ if(value == (MusicSort1ID)patch_MusicSort1ID.InternalLevel) {
+ __sort1 = value;
+ _compareProc1 = compareByInternalLevel;
+ _getCategoryNameProc = getCategoryNameByInternalLevel;
+ } else {
+ orig_set__sort1(value);
+ }
+ }
+
+ private void set__sort2(MusicSort2ID value) {
+ orig_set__sort2(value);
+ if(value == MusicSort2ID.Level) {
+ _compareProc2 = compareByInternalLevel;
+ }
+ }
+
+ private PropertyInfo reMasterPi = null;
+ private bool isReMaster(Data.MusicData d) {
+ // Fall back for pre-Act3
+ if(reMasterPi == null) {
+ return false;
+ }
+ return (bool)reMasterPi.GetValue(d, null);
+ }
+
+ public extern void orig_create(GameViewData gameViewData, ChapterSelection chapterSelection, FumenDifficulty difficulty, MusicSort1ID sort1, MusicSort2ID sort2);
+
+ public new void create(GameViewData gameViewData, ChapterSelection chapterSelection, FumenDifficulty difficulty, MusicSort1ID sort1, MusicSort2ID sort2) {
+ reMasterPi = typeof(Data.MusicData).GetProperty("isReMaster");
+ orig_create(gameViewData, chapterSelection, difficulty, sort1, sort2);
+ }
+
+ private string getMetaGategoryName(MusicSelectViewData d) {
+ var remas = isReMaster(d.musicViewData.data);
+ if(d.musicViewData.data.isBonusTrack) {
+ return "ボーナストラック";
+ }
+ if(d.musicViewData.data.isLunatic && remas && __sort1 != MusicSort1ID.Level && __sort1 != (MusicSort1ID)patch_MusicSort1ID.InternalLevel) {
+ return "Re:MASTER";
+ }
+ return d.musicViewData.data.isLunatic && !remas ? "LUNATIC" : null;
+ }
+
+ private string getCategoryNameByInternalLevel(MusicSelectViewData d) {
+ StringBuilder stringBuilder = Singleton.instance.getStringBuilder();
+ Data.FumenData fumenData = ((d.musicViewData.data == null) ? null : d.musicViewData.data.fumenData[(int)d.difficulty]);
+ stringBuilder.Append("LEVEL ");
+ stringBuilder.AppendFormat("{0}", (fumenData == null) ? (-1) : (fumenData.fumenConst.ToString("0.0")));
+ return stringBuilder.ToString();
+ }
+
+ private int getSortKeyByInternalLevel(MusicSelectViewData d) {
+ return (int)Math.Round(d.musicViewData.data.fumenData[(int)d.difficulty].fumenConst * 10.0);
+ }
+
+ private int compareByInternalLevel(MusicSelectViewData d1, MusicSelectViewData d2, bool forSort1) {
+ return getSortKeyByInternalLevel(d1) - getSortKeyByInternalLevel(d2);
+ }
+
+ private extern bool orig_isDifferentMyListSet(patch_MusicSort1ID oldSort1, patch_MusicSort1ID nowSort1);
+ private bool isDifferentMyListSet(patch_MusicSort1ID oldSort1, patch_MusicSort1ID nowSort1) {
+ if(oldSort1 == patch_MusicSort1ID.InternalLevel && nowSort1 != patch_MusicSort1ID.InternalLevel) {
+ return true;
+ }
+ if(oldSort1 != patch_MusicSort1ID.InternalLevel && nowSort1 == patch_MusicSort1ID.InternalLevel) {
+ return true;
+ }
+ return orig_isDifferentMyListSet(oldSort1, nowSort1);
+ }
+
+ private extern int orig_createMyListMusicDataAllDifficulty(List list, HashSet idList, MU3.Data.MusicData musicData, MusicSort1ID sort1, int initOrder);
+ private int createMyListMusicDataAllDifficulty(List list, HashSet idList, MU3.Data.MusicData musicData, MusicSort1ID sort1, int initOrder) {
+ if(sort1 == (MusicSort1ID)patch_MusicSort1ID.InternalLevel) {
+ sort1 = MusicSort1ID.Level;
+ }
+ return orig_createMyListMusicDataAllDifficulty(list, idList, musicData, sort1, initOrder);
+ }
+
+ private extern int orig_getMetaSortKey(MusicSelectViewData d, bool forCategorySort);
+ private int getMetaSortKey(MusicSelectViewData d, bool forCategorySort) {
+ if(reMasterPi == null) {
+ return orig_getMetaSortKey(d, forCategorySort);
+ }
+ var remas = isReMaster(d.musicViewData.data);
+
+ if(forCategorySort) {
+ if(d.musicViewData.data.isBonusTrack) {
+ return 3;
+ }
+ if(d.musicViewData.data.isLunatic && remas && __sort1 != MusicSort1ID.Level && __sort1 != (MusicSort1ID)patch_MusicSort1ID.InternalLevel) {
+ return 1;
+ }
+ if(d.musicViewData.data.isLunatic && !remas) {
+ return 2;
+ }
+ } else {
+ if(d.musicViewData.data.isLunatic && remas && __sort1 != MusicSort1ID.Level && __sort1 != (MusicSort1ID)patch_MusicSort1ID.InternalLevel) {
+ return 1;
+ }
+ if(d.musicViewData.data.isLunatic && !remas) {
+ return 2;
+ }
+ }
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/SortByInternalDifficulty/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs b/SortByInternalDifficulty/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
new file mode 100644
index 0000000..f980d5b
--- /dev/null
+++ b/SortByInternalDifficulty/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
@@ -0,0 +1,37 @@
+using MU3.DB;
+
+namespace MU3;
+
+public class patch_Scene_32_PrePlayMusic_MusicSelect: Scene_32_PrePlayMusic_MusicSelect {
+ private static patch_MusicSort1ID[] _sort1SettingList;
+ private static MusicSort2ID[] _sort2SettingList;
+ private extern void orig_Awake();
+
+ private new void Awake() {
+ _sort1SettingList = new[] {
+ patch_MusicSort1ID.Genre,
+ patch_MusicSort1ID.All,
+ patch_MusicSort1ID.Character,
+ patch_MusicSort1ID.Version,
+ patch_MusicSort1ID.Level,
+ patch_MusicSort1ID.Name,
+ patch_MusicSort1ID.Attribute,
+ patch_MusicSort1ID.InternalLevel
+ };
+
+ _sort2SettingList = new[] {
+ MusicSort2ID.Recommend,
+ MusicSort2ID.BattlePoint,
+ MusicSort2ID.TechnicalScore,
+ MusicSort2ID.BossLevel,
+ MusicSort2ID.Name,
+ MusicSort2ID.AddDate,
+ MusicSort2ID.Chapter,
+ MusicSort2ID.Level
+ //, MusicSort2ID.Lamp
+ };
+
+ orig_Awake();
+ }
+
+}
diff --git a/SortByInternalDifficulty/MU3/patch_UISortButton.cs b/SortByInternalDifficulty/MU3/patch_UISortButton.cs
new file mode 100644
index 0000000..c57e332
--- /dev/null
+++ b/SortByInternalDifficulty/MU3/patch_UISortButton.cs
@@ -0,0 +1,27 @@
+using MU3.CustomUI;
+using UnityEngine;
+
+namespace MU3;
+
+class patch_UISortButton: UISortButton {
+ private MU3UIImageChanger _selectPreviewImageChanger;
+
+ protected override void Awake() {
+ base.Awake();
+
+ var changer = (patch_MU3UIImageChanger)_selectPreviewImageChanger;
+ var n = changer.sprites.Length;
+ var sprites = new Sprite[n + 1];
+
+ for(int i = 0; i < n; ++i) {
+ sprites[i] = changer.sprites[i];
+ }
+
+ Texture2D tex = new Texture2D(2, 2);
+ tex.LoadImage(InternalSortPreview.Bytes);
+
+ sprites[n] = Sprite.Create(tex, new Rect(0, 0, 254, 121), sprites[0].pivot);
+
+ changer.sprites = sprites;
+ }
+}
diff --git a/SortByInternalDifficulty/SortByInternalDifficulty.csproj b/SortByInternalDifficulty/SortByInternalDifficulty.csproj
new file mode 100644
index 0000000..b6bd984
--- /dev/null
+++ b/SortByInternalDifficulty/SortByInternalDifficulty.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.SortByInternalDifficulty.mm
+ Makes internal levels not internal
+
+
+
\ No newline at end of file
diff --git a/UnlockAllMusic/MU3.DataStudio/patch_MusicData.cs b/UnlockAllMusic/MU3.DataStudio/patch_MusicData.cs
new file mode 100644
index 0000000..8f15637
--- /dev/null
+++ b/UnlockAllMusic/MU3.DataStudio/patch_MusicData.cs
@@ -0,0 +1,24 @@
+namespace MU3.DataStudio;
+
+class patch_MusicData: MusicData {
+ public new int CostToUnlock {
+ get {
+ return 0;
+ }
+ private set { /* nop */ }
+ }
+
+ public new bool PossessingFromTheBeginning {
+ get {
+ return true;
+ }
+ private set { /* nop */ }
+ }
+
+ public new bool IsLockedAtTheBeginning {
+ get {
+ return false;
+ }
+ private set { /* nop */ }
+ }
+}
diff --git a/UnlockAllMusic/MU3/patch_Scene_25_Login.cs b/UnlockAllMusic/MU3/patch_Scene_25_Login.cs
new file mode 100644
index 0000000..b180b27
--- /dev/null
+++ b/UnlockAllMusic/MU3/patch_Scene_25_Login.cs
@@ -0,0 +1,20 @@
+using MU3.User;
+using MU3.Util;
+
+namespace MU3;
+
+class patch_Scene_25_Login: Scene_25_Login {
+ private enum State {
+ GetUserRatinglog = 24
+ }
+
+ private Mode mode_;
+
+ private void GetUserActivityMusic_Init() {
+ // nop
+ }
+ private void GetUserActivityMusic_Proc() {
+ Singleton.instance.updateUserActivityInLoginEnd();
+ mode_.set(State.GetUserRatinglog);
+ }
+}
diff --git a/UnlockAllMusic/UnlockAllMusic.csproj b/UnlockAllMusic/UnlockAllMusic.csproj
new file mode 100644
index 0000000..eaab2d5
--- /dev/null
+++ b/UnlockAllMusic/UnlockAllMusic.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockAllMusic.mm
+ Unlock all music
+
+
+
\ No newline at end of file
diff --git a/UnlockAndSetJewelBoostNine/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs b/UnlockAndSetJewelBoostNine/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs
index ed2b777..ace6358 100644
--- a/UnlockAndSetJewelBoostNine/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs
+++ b/UnlockAndSetJewelBoostNine/MU3/patch_Scene_32_PrePlayMusic_Confirm.cs
@@ -1,15 +1,10 @@
-#pragma warning disable CS0626
-#pragma warning disable CS0649
-#pragma warning disable IDE1006
-#pragma warning disable CS0414
-
-using MU3.DB;
+using MU3.DB;
using MU3.User;
using MU3.Util;
namespace MU3;
-public class patch_Scene_32_PrePlayMusic_Confirm: Scene_32_PrePlayMusic_Confirm {
+class patch_Scene_32_PrePlayMusic_Confirm: Scene_32_PrePlayMusic_Confirm {
private extern void orig_createSelector();
private JewelBoostID getMaxBoost() {
return JewelBoostID.Nine;
diff --git a/UnlockAndSetJewelBoostNine/UnlockAndSetJewelBoostNine.csproj b/UnlockAndSetJewelBoostNine/UnlockAndSetJewelBoostNine.csproj
new file mode 100644
index 0000000..629f905
--- /dev/null
+++ b/UnlockAndSetJewelBoostNine/UnlockAndSetJewelBoostNine.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockAndSetJewelBoostNine.mm
+ Unlock and set the jewel boost to max
+
+
+
diff --git a/UnlockFrameRate/MU3.Notes/patch_NotesManager.cs b/UnlockFrameRate/MU3.Notes/patch_NotesManager.cs
new file mode 100644
index 0000000..be2973d
--- /dev/null
+++ b/UnlockFrameRate/MU3.Notes/patch_NotesManager.cs
@@ -0,0 +1,26 @@
+using MU3.Game;
+using MU3.Sys;
+using MU3.Util;
+
+namespace MU3.Notes;
+
+class patch_NotesManager: NotesManager {
+ private float _frame;
+ private float _frameReal;
+ private bool _altMode;
+ public extern void orig_initialize(SessionInfo sessionInfo);
+ public new void initialize(SessionInfo sessionInfo) {
+ orig_initialize(sessionInfo);
+
+ var cfg = (patch_Config)Singleton.instance.config;
+ _altMode = cfg.isVsync || (cfg.framerate != 60);
+ }
+ private extern void orig_progressFrameAndFrameReal();
+ private void progressFrameAndFrameReal() {
+ if(_altMode) {
+ _frame = _frameReal;
+ } else {
+ orig_progressFrameAndFrameReal();
+ }
+ }
+}
diff --git a/UnlockFrameRate/MU3.Sys/patch_Config.cs b/UnlockFrameRate/MU3.Sys/patch_Config.cs
new file mode 100644
index 0000000..d7ae92c
--- /dev/null
+++ b/UnlockFrameRate/MU3.Sys/patch_Config.cs
@@ -0,0 +1,38 @@
+using UnityEngine;
+
+namespace MU3.Sys;
+
+class patch_Config: Config {
+ public extern void orig_initialize();
+ public int framerate { get; private set; }
+ public bool isVsync { get; private set; }
+
+ public new void initialize() {
+ orig_initialize();
+
+ using IniFile iniFile = new("mu3.ini");
+
+ framerate = iniFile.getIntValue("Video", "Framerate", 60);
+ isVsync = iniFile.getValue("Video", "VSync", false);
+
+ if(framerate == 0) {
+ framerate = -1;
+ }
+
+ if(isVsync) {
+ QualitySettings.vSyncCount = 1;
+ framerate = -1;
+ Debug.Log("[UnlockFrameRate] VSync on");
+ } else {
+ Application.targetFrameRate = framerate;
+ QualitySettings.vSyncCount = 0;
+ if(framerate == 60) {
+ Debug.Log("[UnlockFrameRate] Framerate locked to 60 (vanilla)");
+ } else if(framerate == -1) {
+ Debug.Log("[UnlockFrameRate] Framerate unlocked");
+ } else {
+ Debug.Log("[UnlockFrameRate] Framerate locked to " + framerate);
+ }
+ }
+ }
+}
diff --git a/UnlockFrameRate/MU3.Sys/patch_Time.cs b/UnlockFrameRate/MU3.Sys/patch_Time.cs
new file mode 100644
index 0000000..fbf7992
--- /dev/null
+++ b/UnlockFrameRate/MU3.Sys/patch_Time.cs
@@ -0,0 +1,29 @@
+using MU3.Util;
+
+namespace MU3.Sys;
+
+class patch_Time: Time {
+ private static bool _init;
+ private static float _deltaTime;
+ private static float _adjustAccumlation;
+ private static float _realtimeSinceStartup;
+ private static bool _altMode;
+
+ public extern static void orig_update();
+ public static new void update() {
+ if(!_init) {
+ _deltaTime = UnityEngine.Time.deltaTime;
+ _adjustAccumlation = 0f;
+ _realtimeSinceStartup = UnityEngine.Time.realtimeSinceStartup;
+ var cfg = (patch_Config)Singleton.instance.config;
+ _altMode = cfg.isVsync || (cfg.framerate != 60);
+ _init = true;
+ }
+ if(_altMode) {
+ _deltaTime = UnityEngine.Time.deltaTime;
+ _realtimeSinceStartup = UnityEngine.Time.realtimeSinceStartup;
+ } else {
+ orig_update();
+ }
+ }
+}
diff --git a/UnlockFrameRate/UnlockFrameRate.csproj b/UnlockFrameRate/UnlockFrameRate.csproj
new file mode 100644
index 0000000..614816c
--- /dev/null
+++ b/UnlockFrameRate/UnlockFrameRate.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockFramerate.mm
+ Unlock framerate
+
+
+
\ No newline at end of file
diff --git a/UnlockGameEvents/MU3.Client/patch_PacketGetGameEvent.cs b/UnlockGameEvents/MU3.Client/patch_PacketGetGameEvent.cs
new file mode 100644
index 0000000..e348ecd
--- /dev/null
+++ b/UnlockGameEvents/MU3.Client/patch_PacketGetGameEvent.cs
@@ -0,0 +1,35 @@
+using MU3.Data;
+using MU3.Operation;
+using MU3.Util;
+using System;
+using System.Linq;
+
+namespace MU3.Client;
+
+class patch_PacketGetGameEvent: Packet {
+ public Operation.GameEvent _gameEvent;
+ public Operation.GameEvent gameEvent => _gameEvent;
+ public extern State orig_proc();
+ public override State proc() {
+ State state = orig_proc();
+ if(state == State.Done) {
+ DateTime endDate = DateTime.Parse("2099-01-01 05:00:00.0");
+ _gameEvent ??= new Operation.GameEvent();
+ foreach(EventData eventData in SingletonStateMachine.instance.allEventData) {
+ IdPeriod idPeriod = Enumerable.FirstOrDefault(_gameEvent.list, (IdPeriod e) => e.id == eventData.id);
+ if(idPeriod != null) {
+ if(idPeriod.period.endDate < CustomDateTime.Now) {
+ idPeriod.period.endDate = endDate;
+ }
+ } else {
+ idPeriod = new();
+ idPeriod.id = eventData.id;
+ idPeriod.period = new Period(DateTime.MinValue.Date, endDate);
+ _gameEvent.list.Add(idPeriod);
+ _gameEvent.lastUpdate = CustomDateTime.Now;
+ }
+ }
+ }
+ return state;
+ }
+}
diff --git a/UnlockGameEvents/UnlockGameEvents.csproj b/UnlockGameEvents/UnlockGameEvents.csproj
new file mode 100644
index 0000000..937ec81
--- /dev/null
+++ b/UnlockGameEvents/UnlockGameEvents.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockGameEvents.mm
+ Unlock game events
+
+
+
\ No newline at end of file
diff --git a/UnlockMasterDifficulty/MU3.ViewData/patch_MusicViewData.cs b/UnlockMasterDifficulty/MU3.ViewData/patch_MusicViewData.cs
new file mode 100644
index 0000000..b05c744
--- /dev/null
+++ b/UnlockMasterDifficulty/MU3.ViewData/patch_MusicViewData.cs
@@ -0,0 +1,13 @@
+using MonoMod;
+
+namespace MU3.ViewData;
+
+[MonoModPatch("global::MU3.ViewData.MusicViewData")]
+public class patch_MusicViewData {
+ public bool isMasterLock {
+ get {
+ return false;
+ }
+ set { /* nop */ }
+ }
+}
diff --git a/UnlockMasterDifficulty/UnlockMasterDifficulty.csproj b/UnlockMasterDifficulty/UnlockMasterDifficulty.csproj
new file mode 100644
index 0000000..0f8f86a
--- /dev/null
+++ b/UnlockMasterDifficulty/UnlockMasterDifficulty.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockMasterDifficulty.mm
+ Unlock master difficulty
+
+
+
\ No newline at end of file
diff --git a/UnlockMemoryChapters/MU3.Client/patch_PacketGetUserMemoryChapter.cs b/UnlockMemoryChapters/MU3.Client/patch_PacketGetUserMemoryChapter.cs
new file mode 100644
index 0000000..59f9f26
--- /dev/null
+++ b/UnlockMemoryChapters/MU3.Client/patch_PacketGetUserMemoryChapter.cs
@@ -0,0 +1,32 @@
+using MU3.Data;
+using MU3.User;
+using MU3.Util;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace MU3.Client;
+
+class patch_PacketGetUserMemoryChapter: Packet {
+ private Dictionary userMemoryChapter_;
+ public override State proc() {
+ switch(procImpl()) {
+ case State.Done: {
+ GetUserMemoryChapterResponse response_ = (query_ as GetUserMemoryChapter).response_;
+ foreach(MemoryChapterData memoryChapterData in SingletonStateMachine.instance.allMemoryChapterData) {
+ UserMemoryChapter userMemoryChapter = Enumerable.FirstOrDefault(response_.userMemoryChapterList, (UserMemoryChapter c) => c.chapterId == memoryChapterData.id);
+ if(userMemoryChapter != null) {
+ User.UserMemoryChapter userMemoryChapter2 = new User.UserMemoryChapter();
+ userMemoryChapter2.copyFrom(userMemoryChapter);
+ userMemoryChapter_[userMemoryChapter2.ChapterId] = userMemoryChapter2;
+ } else {
+ User.UserMemoryChapter userMemoryChapter3 = new User.UserMemoryChapter(memoryChapterData.id);
+ userMemoryChapter_[userMemoryChapter3.ChapterId] = userMemoryChapter3;
+ }
+ }
+ Singleton.instance.UserMemoryChapter = userMemoryChapter_;
+ break;
+ }
+ }
+ return state_;
+ }
+}
diff --git a/UnlockMemoryChapters/UnlockMemoryChapters.csproj b/UnlockMemoryChapters/UnlockMemoryChapters.csproj
new file mode 100644
index 0000000..3851115
--- /dev/null
+++ b/UnlockMemoryChapters/UnlockMemoryChapters.csproj
@@ -0,0 +1,7 @@
+
+
+ Assembly-CSharp.UnlockMemoryChapters.mm
+ Unlock memory chapters
+
+
+
\ No newline at end of file