public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadEnabled(reader.Version))
            {
                Enabled  = reader.ReadBoolean();
                TestMode = reader.ReadBoolean();
                reader.AlignStream(AlignType.Align4);
            }
            if (IsReadOldEventUrl(reader.Version))
            {
                TestEventUrl = reader.ReadString();
            }
            if (IsReadEventUrl(reader.Version))
            {
                EventUrl = reader.ReadString();
            }
            if (IsReadTestConfigUrl(reader.Version))
            {
                TestConfigUrl = reader.ReadString();
            }
            if (IsReadTestInitMode(reader.Version))
            {
                TestInitMode = reader.ReadInt32();
            }
            if (IsReadEnabled(reader.Version))
            {
                reader.AlignStream(AlignType.Align4);
            }

            if (IsReadCrashReportingSettings(reader.Version, reader.Platform, reader.Flags))
            {
                CrashReportingSettings.Read(reader);
            }
            if (IsReadUnityPurchasingSettings(reader.Version, reader.Platform, reader.Flags))
            {
                UnityPurchasingSettings.Read(reader);
            }
            if (IsReadUnityAnalyticsSettings(reader.Version, reader.Platform, reader.Flags))
            {
                UnityAnalyticsSettings.Read(reader);
            }
            if (IsReadUnityAdsSettings(reader.Version, reader.Platform, reader.Flags))
            {
                UnityAdsSettings.Read(reader);
            }
            if (IsReadPerformanceReportingSettings(reader.Version, reader.Platform, reader.Flags))
            {
                PerformanceReportingSettings.Read(reader);
            }
        }
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.Add("m_Enabled", Enabled);
            node.Add("m_TestMode", TestMode);
            node.Add("m_TestEventUrl", GetTestEventUrl(container.Version));
            node.Add("m_TestConfigUrl", GetTestConfigUrl(container.Version));
            node.Add("m_TestInitMode", TestInitMode);
            node.Add("CrashReportingSettings", GetCrashReportingSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add("UnityPurchasingSettings", UnityPurchasingSettings.ExportYAML(container));
            node.Add("UnityAnalyticsSettings", GetUnityAnalyticsSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add("UnityAdsSettings", GetUnityAdsSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add("PerformanceReportingSettings", PerformanceReportingSettings.ExportYAML(container));
            return(node);
        }
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.ForceAddSerializedVersion(GetSerializedVersion(container.ExportVersion));
            node.Add(EnabledName, Enabled);
            node.Add(TestModeName, TestMode);
            node.Add(TestEventUrlName, GetTestEventUrl(container.Version));
            node.Add(TestConfigUrlName, GetTestConfigUrl(container.Version));
            node.Add(TestInitModeName, TestInitMode);
            node.Add(CrashReportingSettingsName, GetCrashReportingSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add(UnityPurchasingSettingsName, UnityPurchasingSettings.ExportYAML(container));
            node.Add(UnityAnalyticsSettingsName, GetUnityAnalyticsSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add(UnityAdsSettingsName, GetUnityAdsSettings(container.Version, container.Platform, container.Flags).ExportYAML(container));
            node.Add(PerformanceReportingSettingsName, PerformanceReportingSettings.ExportYAML(container));
            return(node);
        }