From 51d6bbfb04be1af97c3f303bb33498a5a15f9bc3 Mon Sep 17 00:00:00 2001 From: juncong lee Date: Mon, 1 Sep 2025 12:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/Common/FileParse.meta | 8 + Assets/Script/Common/FileParse/FileParse.cs | 314 ++++++++++++++++++ .../Script/Common/FileParse/FileParse.cs.meta | 2 + Assets/Script/Common/FileParse/XXTEA.meta | 8 + Assets/Script/Common/FileParse/XXTEA/XXTEA.cs | 193 +++++++++++ .../Common/FileParse/XXTEA/XXTEA.cs.meta | 2 + Assets/Script/Common/StaticValue.cs | 46 +++ Assets/Script/Common/StaticValue.cs.meta | 2 + .../41e93a2345da8851ee045d5b2585ad17 | 1 + .../41e93a2345da8851ee045d5b2585ad17.meta | 7 + .../dd844e46ea04d6c659828caab5f723ca | 1 + .../dd844e46ea04d6c659828caab5f723ca.meta | 7 + .../google-services-desktop.json.meta | 2 +- .../google-services.json | 0 .../google-services.json.meta | 2 +- 15 files changed, 593 insertions(+), 2 deletions(-) create mode 100644 Assets/Script/Common/FileParse.meta create mode 100644 Assets/Script/Common/FileParse/FileParse.cs create mode 100644 Assets/Script/Common/FileParse/FileParse.cs.meta create mode 100644 Assets/Script/Common/FileParse/XXTEA.meta create mode 100644 Assets/Script/Common/FileParse/XXTEA/XXTEA.cs create mode 100644 Assets/Script/Common/FileParse/XXTEA/XXTEA.cs.meta create mode 100644 Assets/Script/Common/StaticValue.cs create mode 100644 Assets/Script/Common/StaticValue.cs.meta create mode 100644 Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17 create mode 100644 Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17.meta create mode 100644 Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca create mode 100644 Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca.meta rename Assets/{StreamingAssets => }/google-services.json (100%) rename Assets/{StreamingAssets => }/google-services.json.meta (75%) diff --git a/Assets/Script/Common/FileParse.meta b/Assets/Script/Common/FileParse.meta new file mode 100644 index 0000000..05f0832 --- /dev/null +++ b/Assets/Script/Common/FileParse.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d5d8d4959271412c9836c232fa3acfa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Common/FileParse/FileParse.cs b/Assets/Script/Common/FileParse/FileParse.cs new file mode 100644 index 0000000..9c77877 --- /dev/null +++ b/Assets/Script/Common/FileParse/FileParse.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography; +using System.Text; +using Google.MiniJSON; +using Script.Utils; +using UnityEngine; + +namespace Script.Common.FileParse +{ + + public static class FileParse + { + static string resourcePath = Application.streamingAssetsPath +"/"; + public static void Parse() + { + string bundleId = GetBundleId(); + LoggerUtils.Debug("[FileParse] get bundleId: " + bundleId); + ParseConfig(bundleId); + ParseSdkConfig(bundleId); + } + + // 获取key-value配置信息 + public static string GetConfigByKey(string _key) + { + PlayerPrefPair[] configs = new PlayerPrefPair[0]; + configs = ParseConfig(GetBundleId()); + for (int i = 0; i < configs.Length; i++) + { + if (configs[i].Key == _key) + { + return configs[i].Value.ToString(); + } + } + return ""; + } + + private static PlayerPrefPair[] ParseConfig(string bundleId) + { + string fileName = GetMD5Hash("Config" + bundleId); + PlayerPrefPair[] configs = GetConfig(fileName, false); + ParseConfigsInner(configs); + return configs; + + } + + private static PlayerPrefPair[] ParseSdkConfig(string bundleId) + { + string fileName = GetMD5Hash("SdkConfig" + bundleId); + PlayerPrefPair[] configs = GetConfig(fileName, true); + ParseConfigsInner(configs); + return configs; + + } + + private static string GetMD5Hash(string input) + { + using (var md5 = MD5.Create()) + { + var inputBytes = Encoding.ASCII.GetBytes(input); + var hashBytes = md5.ComputeHash(inputBytes); + + var builder = new StringBuilder(); + foreach (var t in hashBytes) + { + builder.Append(t.ToString("x2")); + } + + return builder.ToString(); + } + } + + private static PlayerPrefPair[] GetConfig(string _configFile, bool _sdkConfigFile) + { + return GetAllFromProperties(resourcePath + _configFile, _sdkConfigFile); + } + + private static PlayerPrefPair[] GetAllFromProperties(string _configPath, bool _sdkConfigFile) + { + +#if !UNITY_EDITOR && UNITY_ANDROID + WWW reader = new WWW(_configPath); + while (!reader.isDone) { } + string m_content = reader.text; +#else + string m_content = System.IO.File.ReadAllText(_configPath); +#endif + + string m_ecryptFileContent = DecryptFileBody(m_content, _sdkConfigFile); + Hashtable ht = LoadHashtable(m_ecryptFileContent); + if (ht.Count > 0) + { + PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[ht.Count]; + int i = 0; + foreach (string key in ht.Keys) + { + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = key, Value = ht[key] }; + i++; + } + + return tempPlayerPrefs; + } + else + { + return new PlayerPrefPair[0]; + } + } + + private static void ParseConfigsInner(PlayerPrefPair[] _configs) + { + if (_configs.Length <= 0) return; + + for (int i = 0; i < _configs.Length; i++) + { + string valueTemp = _configs[i].Value.ToString(); + LoggerUtils.Debug("[FileParse] ParseConfigsInner key" + _configs[i].Key + "value:" + valueTemp); + + if (_configs[i].Key.ToLower() == KEY_Admob_CollapsibleBannerId.ToLower()) + { + StaticValue.AdmobCollapsibleBannerId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Admob_NormalBannerId.ToLower()) + { + StaticValue.AdmobNormalBannerId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Admob_SplashId.ToLower()) + { + StaticValue.AdmobSplashId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Admob_NativeId.ToLower()) + { + StaticValue.AdmobNativeId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Admob_RewardId.ToLower()) + { + StaticValue.AdmobRewardId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Admob_InterId.ToLower()) + { + StaticValue.AdmobInterId = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_PRIVACY_URL.ToLower()) + { + StaticValue.PrivacyUrl = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_ADJUST_ID.ToLower()) + { + StaticValue.AdjustToken = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Max_APPKEY.ToLower()) + { + StaticValue.ApplovinKey = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_THINKDATA_ID.ToLower()) + { + StaticValue.TDAppID = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Max_Inter.ToLower()) + { + StaticValue.InterAdUnitID = valueTemp; + }else if (_configs[i].Key.ToLower() == KEY_Max_Reward.ToLower()) + { + StaticValue.RewardAdUnitID = valueTemp; + } + else if (_configs[i].Key.ToLower() == KEY_TopOn_AppId.ToLower()) + { + string[] condition = { "@" }; + string[] parts = valueTemp.Split(condition, StringSplitOptions.None); + if (parts.Length == 2) + { + StaticValue.TopOnAppID = parts[0]; + StaticValue.TopOnAppKey = parts[1]; + } + } + else if (_configs[i].Key.ToLower() == KEY_TopOn_Inter.ToLower()) + { + StaticValue.TopOnInterAdUnitID = valueTemp; + } + else if (_configs[i].Key.ToLower() == KEY_TopOn_Reward.ToLower()) + { + StaticValue.TopOnRewardAdUnitID = valueTemp; + } + } + } + + private static Hashtable LoadHashtable(string file) + { + Hashtable ht = new Hashtable(16); + string content = null; + try + { + content = file; + } + catch (Exception e) + { + return null; + } + string[] rows = content.Split('\n'); + string[] kv = null; + foreach (string c in rows) + { + if (c.Trim().Length == 0) + continue; + kv = c.Split('='); + if (kv.Length == 1) + { + ht[kv[0].Trim()] = ""; + } + else if (kv.Length == 2) + { + ht[kv[0].Trim()] = kv[1].Trim(); + } + } + return ht; + } + + private static string DecryptFileBody(string fileBody, bool sdkConfigFile) + { + string padded = fileBody.PadRight(fileBody.Length + (4 - fileBody.Length % 4) % 4, '='); + var decryptResponseBodyBytes = XXTEA.Decrypt(System.Convert.FromBase64String(padded), Encoding.UTF8.GetBytes(GetMD5Hash((sdkConfigFile ? "SdkConfigKey#$!" : "ConfigKey#$!") + GetBundleId()))); + var decryptResponseBody = Encoding.UTF8.GetString(decryptResponseBodyBytes); + return decryptResponseBody; + } + + private static string GetBundleId() + { +#if UNITY_EDITOR + string packageName = ""; + var files = Directory.GetFiles(Application.dataPath, "*.json", SearchOption.AllDirectories); + var googleFilePath = ""; + foreach (var item in files) + { + if (item.Contains("google-services.json")) + { + googleFilePath = item; + } + } + + if (!File.Exists(googleFilePath)) + { + // 显示错误提示框 + throw new Exception("google-services.json not exists."); + } + + + var googleServicesDictionary = (Dictionary)Json.Deserialize(File.ReadAllText(googleFilePath)); + + googleServicesDictionary.TryGetValue("client", out var tempClientList); + + if (!(tempClientList is List clientList) || clientList == null || clientList.Count == 0) + { + // 显示错误提示框 + throw new Exception("Illegal google-services.json"); + } + + foreach (var tempClientItem in clientList) + { + if (!(tempClientItem is Dictionary clientItem)) + { + continue; + } + + clientItem.TryGetValue("client_info", out var tempClientInfo); + + if (!(tempClientInfo is Dictionary clientInfo) || clientInfo == null || clientInfo.Count == 0) + { + // 显示错误提示框 + throw new Exception("Illegal google-services.json"); + } + + clientInfo.TryGetValue("android_client_info", out var tempAndroidClientInfo); + if (!(tempAndroidClientInfo is Dictionary androidClientInfo) || androidClientInfo == null || androidClientInfo.Count == 0) + { + // 显示错误提示框 + throw new Exception("Illegal google-services.json"); + } + + androidClientInfo.TryGetValue("package_name", out var googlePackageName); + packageName = (string)googlePackageName; + if (!string.IsNullOrEmpty(packageName)) + { + break; + } + } + + return packageName; +#else + AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + AndroidJavaObject currentActivity = unityPlayerClass.GetStatic("currentActivity"); + AndroidJavaObject packageManager = currentActivity.Call("getPackageManager"); + string packageName = currentActivity.Call("getPackageName"); + return packageName; + +#endif + + } + + public const string KEY_Admob_CollapsibleBannerId = "Admob_Banner_ID1"; + public const string KEY_Admob_NormalBannerId = "Admob_Banner_ID2"; + public const string KEY_Admob_SplashId = "Admob_APPOPEN_ID"; + public const string KEY_Admob_NativeId = "Admob_NATIVE_ID"; + public const string KEY_Admob_RewardId = "Admob_RV_ID"; + public const string KEY_Admob_InterId = "Admob_IV_ID"; + public const string KEY_PRIVACY_URL = "tka_url_privacy"; + public const string KEY_THINKDATA_ID = "ss_app_id"; + public const string KEY_ADJUST_ID = "adjust_id"; + public const string KEY_TopOn_AppId = "ad_appid"; + public const string KEY_TopOn_Reward = "AD_Reward"; + public const string KEY_TopOn_Inter = "AD_Inter"; + public const string KEY_Admob_AppID = "admob_id"; + public const string KEY_Max_APPKEY = "ad_appkey"; + public const string KEY_Max_Inter = "ad_interstital_id"; + public const string KEY_Max_Reward = "ad_reward_id"; + + public struct PlayerPrefPair + { + public string Key { get; set; } + + public object Value { get; set; } + } + } +} diff --git a/Assets/Script/Common/FileParse/FileParse.cs.meta b/Assets/Script/Common/FileParse/FileParse.cs.meta new file mode 100644 index 0000000..be428cc --- /dev/null +++ b/Assets/Script/Common/FileParse/FileParse.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bd74719ba6cd94424a20539116ebabff \ No newline at end of file diff --git a/Assets/Script/Common/FileParse/XXTEA.meta b/Assets/Script/Common/FileParse/XXTEA.meta new file mode 100644 index 0000000..02019d5 --- /dev/null +++ b/Assets/Script/Common/FileParse/XXTEA.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96f1e9850f3d444ab85bcb5ed5ec8f00 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs b/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs new file mode 100644 index 0000000..af3701d --- /dev/null +++ b/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs @@ -0,0 +1,193 @@ +/**********************************************************\ +| | +| XXTEA.cs | +| | +| XXTEA encryption algorithm library for .NET. | +| | +| Encryption Algorithm Authors: | +| David J. Wheeler | +| Roger M. Needham | +| | +| Code Author: Ma Bingyao | +| LastModified: Mar 10, 2015 | +| | +\**********************************************************/ + + +using System; +using System.Text; + +public sealed class XXTEA { + private static readonly UTF8Encoding utf8 = new UTF8Encoding(); + + private const UInt32 delta = 0x9E3779B9; + + private static UInt32 MX(UInt32 sum, UInt32 y, UInt32 z, Int32 p, UInt32 e, UInt32[] k) { + return (z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z); + } + + private XXTEA() { + } + + public static Byte[] Encrypt(Byte[] data, Byte[] key) { + if (data.Length == 0) { + return data; + } + return ToByteArray(Encrypt(ToUInt32Array(data, true), ToUInt32Array(FixKey(key), false)), false); + } + + public static Byte[] Encrypt(String data, Byte[] key) { + return Encrypt(utf8.GetBytes(data), key); + } + + public static Byte[] Encrypt(Byte[] data, String key) { + return Encrypt(data, utf8.GetBytes(key)); + } + + public static Byte[] Encrypt(String data, String key) { + return Encrypt(utf8.GetBytes(data), utf8.GetBytes(key)); + } + + public static String EncryptToBase64String(Byte[] data, Byte[] key) { + return Convert.ToBase64String(Encrypt(data, key)); + } + + public static String EncryptToBase64String(String data, Byte[] key) { + return Convert.ToBase64String(Encrypt(data, key)); + } + + public static String EncryptToBase64String(Byte[] data, String key) { + return Convert.ToBase64String(Encrypt(data, key)); + } + + public static String EncryptToBase64String(String data, String key) { + return Convert.ToBase64String(Encrypt(data, key)); + } + + public static Byte[] Decrypt(Byte[] data, Byte[] key) { + if (data.Length == 0) { + return data; + } + return ToByteArray(Decrypt(ToUInt32Array(data, false), ToUInt32Array(FixKey(key), false)), true); + } + + public static Byte[] Decrypt(Byte[] data, String key) { + return Decrypt(data, utf8.GetBytes(key)); + } + + public static Byte[] DecryptBase64String(String data, Byte[] key) { + return Decrypt(Convert.FromBase64String(data), key); + } + + public static Byte[] DecryptBase64String(String data, String key) { + return Decrypt(Convert.FromBase64String(data), key); + } + + public static String DecryptToString(Byte[] data, Byte[] key) { + return utf8.GetString(Decrypt(data, key)); + } + + public static String DecryptToString(Byte[] data, String key) { + return utf8.GetString(Decrypt(data, key)); + } + + public static String DecryptBase64StringToString(String data, Byte[] key) { + return utf8.GetString(DecryptBase64String(data, key)); + } + + public static String DecryptBase64StringToString(String data, String key) { + return utf8.GetString(DecryptBase64String(data, key)); + } + + private static UInt32[] Encrypt(UInt32[] v, UInt32[] k) { + Int32 n = v.Length - 1; + if (n < 1) { + return v; + } + UInt32 z = v[n], y, sum = 0, e; + Int32 p, q = 6 + 52 / (n + 1); + unchecked { + while (0 < q--) { + sum += delta; + e = sum >> 2 & 3; + for (p = 0; p < n; p++) { + y = v[p + 1]; + z = v[p] += MX(sum, y, z, p, e, k); + } + y = v[0]; + z = v[n] += MX(sum, y, z, p, e, k); + } + } + return v; + } + + private static UInt32[] Decrypt(UInt32[] v, UInt32[] k) { + Int32 n = v.Length - 1; + if (n < 1) { + return v; + } + UInt32 z, y = v[0], sum, e; + Int32 p, q = 6 + 52 / (n + 1); + unchecked { + sum = (UInt32)(q * delta); + while (sum != 0) { + e = sum >> 2 & 3; + for (p = n; p > 0; p--) { + z = v[p - 1]; + y = v[p] -= MX(sum, y, z, p, e, k); + } + z = v[n]; + y = v[0] -= MX(sum, y, z, p, e, k); + sum -= delta; + } + } + return v; + } + + private static Byte[] FixKey(Byte[] key) { + if (key.Length == 16) return key; + Byte[] fixedkey = new Byte[16]; + if (key.Length < 16) { + key.CopyTo(fixedkey, 0); + } + else { + Array.Copy(key, 0, fixedkey, 0, 16); + } + return fixedkey; + } + + private static UInt32[] ToUInt32Array(Byte[] data, Boolean includeLength) { + Int32 length = data.Length; + Int32 n = (((length & 3) == 0) ? (length >> 2) : ((length >> 2) + 1)); + UInt32[] result; + if (includeLength) { + result = new UInt32[n + 1]; + result[n] = (UInt32)length; + } + else { + result = new UInt32[n]; + } + for (Int32 i = 0; i < length; i++) { + result[i >> 2] |= (UInt32)data[i] << ((i & 3) << 3); + } + return result; + } + + private static Byte[] ToByteArray(UInt32[] data, Boolean includeLength) { + Int32 n = data.Length << 2; + if (includeLength) { + Int32 m = (Int32)data[data.Length - 1]; + n -= 4; + if ((m < n - 3) || (m > n)) { + return null; + } + n = m; + } + Byte[] result = new Byte[n]; + for (Int32 i = 0; i < n; i++) { + result[i] = (Byte)(data[i >> 2] >> ((i & 3) << 3)); + } + return result; + } +} + diff --git a/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs.meta b/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs.meta new file mode 100644 index 0000000..b7061a6 --- /dev/null +++ b/Assets/Script/Common/FileParse/XXTEA/XXTEA.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1db01a1175e3f451bbf15da2925e759a \ No newline at end of file diff --git a/Assets/Script/Common/StaticValue.cs b/Assets/Script/Common/StaticValue.cs new file mode 100644 index 0000000..f4c857c --- /dev/null +++ b/Assets/Script/Common/StaticValue.cs @@ -0,0 +1,46 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Script.Common +{ + + public static class StaticValue + { + public static string AdmobCollapsibleBannerId = ""; + + public static string AdmobNormalBannerId = ""; + + public static string AdmobSplashId = ""; + + public static string AdmobNativeId = ""; + + public static string AdmobRewardId = ""; + + public static string AdmobInterId = ""; + + public static string PrivacyUrl = ""; + + public static string TopOnAppID = ""; + + public static string TopOnAppKey = ""; + + public static string TopOnRewardAdUnitID = ""; + + public static string TopOnInterAdUnitID = ""; + + public static string ApplovinKey = ""; + + public static string AdjustToken = ""; + + public static string TDAppID = ""; + + public static string TDServerURL = ""; + + // max + public static string InterAdUnitID = ""; + + public static string RewardAdUnitID = ""; + } +} + diff --git a/Assets/Script/Common/StaticValue.cs.meta b/Assets/Script/Common/StaticValue.cs.meta new file mode 100644 index 0000000..234c56c --- /dev/null +++ b/Assets/Script/Common/StaticValue.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 34aa20abb977944f29d68bb385e84b01 \ No newline at end of file diff --git a/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17 b/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17 new file mode 100644 index 0000000..d50b8ac --- /dev/null +++ b/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17 @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17.meta b/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17.meta new file mode 100644 index 0000000..5c28e76 --- /dev/null +++ b/Assets/StreamingAssets/41e93a2345da8851ee045d5b2585ad17.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c6f50e7adcea1478db7f7c75a59a0186 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca b/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca new file mode 100644 index 0000000..37fc21c --- /dev/null +++ b/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca @@ -0,0 +1 @@ +k2PmX1RUyyR9D/CDr3AediQb7NEzmsWGqhMl62vWkb+3wU/Kz+x9jmL7IbyrVxgJKe87U86Si3rSM1MKlrK7wU0g5h/SyNEXg/enpBt687Upf7Fsf9cvYOxkxAHsvXyJB/OSMwkFqwLMzr9hR5P4uqvo+R8DB+bCDH4+q17j2jSPvqSCSAmXnQiUruniq7J4PssdedESXh/Un2KNdAy4R9lPCsxj+oAtyohpm6YFWDe5IazyuyiXQoPRKUS8s4AiefXGpVfsfWEUzo96SM9PEcEMH0TYiQ64Dlh1iFeM0fRYOvNZz0JbqmKx3guvJDXCTIqtWXiC1x9KMlSm87PmkMC47bRWvd28BCZKC+qkf7AGq4eNjjjRCV/7gCTyK1vyL7Ee5SYzsUikOBGWvF+NtgsIGyip7yIUiqv3Vy2EsLE6VcNJxczfy1vM2uEFrAasqrrjas0U8LECUnJBW24D/qCOyg1NJMWA6FOelBHR6mEGrdiD0rIv2ufOUgfSAGJKSyMkKd3KmI/gOAWzwIdNjEzc28DKZK/hXG2q131G3aIP3IilCieQypYqozK03fm1LVx26cy+1v2Pl7pMuoPF9FdpZWjjAXiykw4FjT5K4oHmkrq+zPVfRifcVLZVkDOtMLLZc1g69ep3P/V5eYjKG38hyektMPyMltFifOYEAJ6+zwz1Cd7yt+htqmMvRTPeo5Vvyb8nluMmifqrczrgKLG1UdqWThMa+py7JXjBRvvLh3bS+h7jcy2nyOXjr+EBpYdBWSwgeKzUvkk9s77TrS/FqS1oVw/aTRuKzLiTYWkIyPHeA52mmCUqDex0YtbIJSarhNcVQQGqDSUSWX87vG4BGKLYJy6ZwUbzCnOGkKxZuwyW596FWbOBHOQECD1r3k0NOp2u35Krpg1ORMmNWD2JiPUxGTsaivl+ke+sYgrlMbfSohR7ViVLF8QyPJSOcLluDskuZc9m+p8GC13vwyT//SpIUfwvKv5qrpm4uFsC27aOvRrQmTHLg4vkdHzC7mllUlISR1MbJ8OaKdKxZyFa9lEgHBVYpv09Ligr1/PG3sBHGMQzqJAeeXHvKw+6i+cjhw4SMTlsInfzFX6KvzyaapK7aotzVjREzymMplYZ3COps88ondlNPGAFXKZ1SGLvfGdn6vLRACzcF/318eHbnu+Wz1heHCkHYb0wcieU4cYIMgPDcMH7JUK8xK4G386Glm+VfvHs276WKP110iTRoXwMQCk37nLEiBIsdZr+EhL+9AXmKDgd10Q/K7xcl4WPjtS01gxR0f9+Ll/GeaD6TBk6jXvhL+drkF14DVk90hBBgRkWkjMSYHARCJbpEavPNtho+vBZll9BFbxfvKwYMmyHHn22r35jEb1G7Gvj4v9GM9OjpTZPVxUwX3rLAnv7BqKspIvxD2FUOMgBaKvoDlotb67Ai1EgNWyjcB2g5iN83hN+pwUKQpkC1eCIm9hmJRKHC4U250zMZ9YdGv63q1IJ8A1v0v0otnr0ikMheXfGjOgv5DaLZjRR3bzMbdquUTx9ZPgxlhwELlx6f1bgp33Wh6xqh/sHT9IW5yyEKzCt7ZThBgDfrVTiWChNx/hdyTDSiEZlAoWvKGDYu/H0VBe9ukKVV38WwyhhI9uqbhCbugFm7apDG4N3f7PlJkSpTgzUD3ztP6XvuVUAjQteCfnj9oKN6VKjn2iTUGwykn8OGeHhics7tkiiy4wh0DWAw8wbnLFof05FnPRHBb4UeMUPe4TYHaGSsylRR5ano5ArQ78P/9wi0GCuwjrMruXMzUGI9FEOWW9JgsTrOXoEbZgn6z3EK8erRWEzmIucAytsKZKerkfHof75Erz7gyMhtBKtOfeTpB7iavoS9v6zmKmE1vzf2umWlc2YYqGrTXbDBw5EoeeSSaVL2MbHfbfNXd529pO19zkU1tlcRzl6Ujcsu0AnuL432W3AC4FyY/CDMAhe7LnRgANF2eF/QVBa5pEaZGxeBxu+lxFAZIT8cX9bvoCa7t9IZ5mZNl7jp1MIATUN9U1dNlRu6OFhVPQD9ideLXkwfdPZQgaLR2oiyAAx6EuqjIl4x9P4kL3Ovw1X3dP/SmNx4uDSBhlfCVlqG/o70O+cRaVc8Gu1n3TWRebu7yWi5NQ0Epe3NHjCA2TfwgxAijzQ7vjKdxqaPxGekECr8I8dV500C99LeGPfSS3c5XsijRU51/9FlvLL6GMqJS+DxilrgRYbYR0Ov+iK9Ufn8L+fSO6wwHDJRDYsFPk+t5wy2Jq8HMPCoErYwldxB21fVD6haSUXD6NwF513LTyGjb/y/I/3sgQpuIZkihyf/DIiT3Q6Xvos33yZP2e3rxgSRpoiDCI846tyg3u+cxYq2kxO/04hpWf7xuyi3kx9HicPbJcl5Klkl0K5lPUFfJatQHRteFmaCwI2C96MdgC5DIinRL/IMSXPG98VcGvu4mM5iqjLsASoK4++CdU9khDhe9X443YAmWPkencW99XQafvYyhd0xtlePWBGwU3eBz0arofeGicdVfe4M+FcdUg3pn3ZMmw99e9yS4y5lgjfuQozDH2+591WAeucbKLrrwruASw/STbYtg+4qZhtGSMyQbWXFsXdVdwncxWJlUWQRWAsmMkzGudpRdiD2kzRLSIxw03jrGXQi0zrxgjDVD2vtojd62+hjQcyTq2uRUziXx4RXSfd3bHRKLb9MauFgFn2bKCLnNY7KZ3LPFEWl2WGvnXMGKuXubLtCQ7RI54XeElSMjRv8b633RfmTGHmFj2vG/2UoXtREWu+LOrelIImYwUfSQb6RXV2cKPMTmwAVMi9510CJNUWb3t0eRR+hFrMupt2CyGTF6LRKo20uvd6tpZqJnWiovU+kDKJSSknlCQDTKwiVqUkvonJEGDJJD3JoH8+JsQyMZN30umxgQHmImBmaQWSvCfg+l83Zz8io6y3TCq27mqBTFG7XFp0F1NLZ7UWOy1/2Icgk2e9e5If/VzzNdU9Dn8B/5v4Hod1xB+rqeWK/ju+DBn5LBh47qauWlLTOEOHybl85XdcVUyJqYbnJ8b4itkDCrtbSB+7lGtb9b8CTAVth3zFcwr54uxevMijEyxWqdmjIy/vyGwCCRvA5MVMCZuoXqDOe5Lp++SmDjC63R/UrLdVf78Mu3AlwhCzt8nMTB6FZXwRx13/hezj0R/tTYd5p9tYG1F6pKLfi2WyIdKZRE0ntz0TjfUacNjUaK96Cp3tKstbNLlp+jbizPc0yp8KfRi3jYiFng22CKocGah+dz5HDXhbksBkY2/04QYrhnLfNi4xHjtQtr2XIla3IyQaODihsLnJs73aUS5aAzmhEbGyvoAWYSJfnpZdodmvFQ04qD0MjCmd4i+C2F7h0BIEeh8E0R4Mq7nDpPi4pHq0pPHwJVykmh2HxZiI8NbQl4qvWjDeKtUr6sCd1TWSZ5rj1AN9ZKiriINHHsVQ7QPMxgPffJzyr+19aOhZ7lGnjvdNPsuUu86VLGlnAC5qqHgiaKJA7Q7kr4N8/eh0ugQFkMk0JXKoncypSCY5/3/pWMk8gIjoKIyCZlyQgK2GiKtbRUNb+fTn8k/Q6VYIsi3ED/KTO1KH9OMeWPtxXI4U5T+xdlHc/PDTMh83Kc7M28VyEy1J4MmnB/NskyxyDJGcTH0WMsIGLrAJAWmUOKdNFzjmzzLgLjtF8E1kb1ZRmExvUFdO+IT+fcQbki1CwyHUNrXRlHJsCpvZOlX2AVvsmF6EcDlPWUnsx1JrXmLL0PcATGbjvUVKrb+qewgcxsIDwgCtW7zmYZ+vw9X1rsE2Z5yep6+4LQtVr1sdwwuhQEaJkCunhBC2ciZIA4VZXMDJRbvD8Y2YKNCANV3kt1KYFo7YOgX8tl6ogkA3gmp/DrOaMLUtW9UrJnWJxBuZlafiwKVINH2kiln+b0OH1vYrO96EnbDzyyPBQYp6fsSJNbZB4C6IOrL4HrNpixmfzvxTU7FId6H9R9Ua/0a27dNl3yq0Rdd0axMqTO8QjThw4FTDhHygDIGO5j7OdzQgkhXVYkdiNEATXJ6fyAsIh2XLrXsWcQAb3vIQjWC3ms5dxxNs6TdOyUFrx8j5Ot43Asy8svYhpGoDoBJwbJQHPK5T5V8wRhs/E3if6fb34fXI/sN0kXohRNJ8TQUQSD+IdEkLF/WqUX08Ee3ssnzpK7tPcT6i+Ql4MDCYmd+zTaOo1eo70tqf05zoMikmxTB1tw3sC897JYRpzTmCFqJdE/YlSH1GoJpraX9tJiuJKTEn9zvNLub2sHyzyDzFVfYK+yhOzmBtSDM2SGAHcTQScBXMbg799XLKEil0N9aIsLP/rEfiTFXwzEeYeYgbNO2NcfSVlmFE3z9iPwIqZSpQTX7av/MSu7kx282QHTs8NVnys+Vbp0aCf+tailh9WkfUAyKs7UNmf20N5E/7aMkEg6jCHqglIMIz8YMTNcGY2o+vnqzhoYlN4MVWLMlvjohLIrCRy2CQivoROVC6D07/fqeBhCw9WWV0+79gAZbmDm/8XRemumZcmferz5YE4mbBkJS02t1zGNMHEuMrmMC6+Shqu7Hhu/S3Wv0+reGrg1i2XzT9dpqi8B9qLude9+lCYN97TLW3t3xIt2h+mC2pgCMeANlph5aOJR82C4wP+P2mmVFhrQD1oyTefhA8u9IyV9ozta2pgNdBTlQq+46Wxb346GrgaMkP84qXPe02oMnZrAPjbyr0HzFR7SfrvwT4i8lplwp4ENs1T6zgcvGZcmx8V7NS60KGGXYOn0IQRsNpNgFcFxfDj83VzpwKdPu4J+0XYb+f5jG6r71qPWAC7KTneVhY1qe9KoBoSIdv5qhBWn1G/I3Yyu5XN9JViyPfVW7fcdoGTnGUXrA9DPdVGZz/PkO3bk+ObUsXzqXkaBppU7MLMMCwhDVy01hRgXhmVU0QwiKqfWOQEPNU9zxeq6pfbndxpcKKh8KY1ERcj2w5py4Qll4yMQkz8cSGfxuP+p0UJeMdPPMh8viZcDOSUbOhX5yNZkNp7i1sfX86eoc56pR02H7ZlAc3ByhD//eq89qCN5h1gE9PutxqBPrU+AY7Ri989Kqd6r34YU1ovdzo6XGyr+xO0qXoUIg6oVqHp7jpkWOBZHLbL9kCS4rR/wZPB7SR0NoOgaTFJGToi2k7TjmPKBq7G0Qnn6puN9vSzw/nLpc1B2iSMsiSdj6DrSTSHTxzW9ywBNYGKAcpdhT224d/43ZDGt623kKJFRUlZWFlLavnjfLdcuZzwcQZ+2poQE6xxeS/JJZws90ikCxYMH8/R/SqBjh2LOyCtrg4efMK3BHx2rG9xypvXnOvc4dT0OZ9KilCx6+jPk3FP5z3/OieyCGOcsSItfGeKDUguV5Fii7jD9Rq6MQTWgnVUKCu98m5p4eeLFj1fWj/fI4hq3v0gOjAwFlHy1q7k/gm2nxiUYAVSLyAPvNGkLK2cCE1nZ+/anr9Cjm5x+AV/q3kRgiGRsORytMsWCn5nq2/7Dr2IZegkpsY4r8P/YpU1ZmlPJWbZHZ3GCmoaYUXJ3qrbQsbFZ8VuiVaz6ZBrGPwzkFSMPl08DbkQQTZRZsj3qGy/xDWjduP+knxiWB8L/OUb0d0RRqwIiSdLKRBfyPFoDSG2J36UMdtMVs7EzXsMSxSlNYEepbeNk2aFxz1cBOdwzUp6UE94wS5cghxFnJLL0VBP0nEDfDhR+1KF8lpFZ8DDgxNQm9nWonU9NrEt79VksPQmEH0iXibsLezMy2sKj1nuq9rPolR7Fd+GVezRLbG4gfvVLZfvc/sispQ/n/99YxlCIwiRlIE60m8YR6yhI0KuGLBldzKdgF6qA7wFzZVFj7et4M9 \ No newline at end of file diff --git a/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca.meta b/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca.meta new file mode 100644 index 0000000..ce88326 --- /dev/null +++ b/Assets/StreamingAssets/dd844e46ea04d6c659828caab5f723ca.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c995cf1c9b1ce43f08dc884ec8430308 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/google-services-desktop.json.meta b/Assets/StreamingAssets/google-services-desktop.json.meta index ef0889d..e036ee7 100644 --- a/Assets/StreamingAssets/google-services-desktop.json.meta +++ b/Assets/StreamingAssets/google-services-desktop.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1d355797e637f624b9148b20da4b2a10 +guid: b218769dd2f8e41f3a8821896e5a13ef TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/StreamingAssets/google-services.json b/Assets/google-services.json similarity index 100% rename from Assets/StreamingAssets/google-services.json rename to Assets/google-services.json diff --git a/Assets/StreamingAssets/google-services.json.meta b/Assets/google-services.json.meta similarity index 75% rename from Assets/StreamingAssets/google-services.json.meta rename to Assets/google-services.json.meta index 58066ac..81e1a4e 100644 --- a/Assets/StreamingAssets/google-services.json.meta +++ b/Assets/google-services.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7b27930e2fb6bc84e96b66bdceb0c41e +guid: 5e91905a8b73e41d2adb698f4793e279 TextScriptImporter: externalObjects: {} userData: