Skip to content
Snippets Groups Projects
Commit 21b54353 authored by Jeremy Gibson Bond's avatar Jeremy Gibson Bond
Browse files

Updated to Unity 2020.3.48.

parent ace5095e
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
fileFormatVersion: 2
guid: fe07e79ed28e1427e8f9678a4b05d116
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
#define ENABLED
#if ENABLED
using UnityEngine;
using System.Collections.Generic;
using UnityEditor;
namespace Prototools.UnityPackageExportAdvanced {
public class UnityPackageExportAdvanced : EditorWindow {
static System.Text.StringBuilder sbPaths = new System.Text.StringBuilder();
static List<string> paths;
bool advancedOptions = false;
bool exportTagsAndLayers = false, exportInputManager = false, exportProjSettings = false;
//static GUIStyle gsBold = new GUIStyle(), gsNormal = new GUIStyle();
//static GUIStyle gsBox = new GUIStyle(), gsButtons = new GUIStyle();
static string fileNameDefault = "[Your Name]";
public string fileName;
[MenuItem( "Window/UnityPackage Export Advanced", false, 992414 )]
public static void OpenWindow() {
string path;
paths = new List<string>();
if ( Selection.assetGUIDs.Length == 0 ) {
ExportAssetsPopUp popUp = GetWindow( typeof( ExportAssetsPopUp ) ) as ExportAssetsPopUp;
popUp.text = $"You must select the assets that you want to export.\n\nIn the Project pane, under the Assets folder, select any folders (and assets) that you want to export.";
popUp.ShowPopup();
return;
}
foreach ( string guid in Selection.assetGUIDs ) {
path = AssetDatabase.GUIDToAssetPath( guid );
paths.Add( path );
string[] bits = path.Split( '/' );
if ( UnityEngine.Windows.Directory.Exists( path ) ) { // This is a folder
sbPaths.AppendLine( $"{bits[bits.Length - 1]}/" );
} else { // This is a file
sbPaths.AppendLine( $"{bits[bits.Length - 1]}" );
}
}
Debug.Log( $"Selected Asset Paths to Export:\n{sbPaths.ToString()}" );
// Set up GUIStyles and such
SetGUIStyles();
UnityPackageExportAdvanced window = GetWindow( typeof( UnityPackageExportAdvanced ) ) as UnityPackageExportAdvanced;
window.titleContent = new GUIContent( "Export UnityPackage" );
window.fileName = fileNameDefault;
window.ShowUtility();
}
void OnGUI() {
fileName = EditorGUILayout.TextField( "UnityPackage filename:", fileName );
GUILayout.Space( 10 );
GUILayout.Label( "Exporting the following…", STYLES["Bold"] );
GUILayout.Box( sbPaths.ToString(), STYLES["Box"] );
GUILayout.Space( 10 );
bool altHeld = ( Event.current.modifiers == EventModifiers.Alt );
if ( advancedOptions || altHeld ) {
advancedOptions = EditorGUILayout.ToggleLeft( "Advanced options…", advancedOptions );
if ( advancedOptions ) {
GUILayout.BeginVertical();
GUILayout.Label( "Include the following…", STYLES["Bold"] );
exportTagsAndLayers = EditorGUILayout.ToggleLeft( "Tags and Layers", exportTagsAndLayers );
exportInputManager = EditorGUILayout.ToggleLeft( "Input Manager", exportInputManager );
exportProjSettings = EditorGUILayout.ToggleLeft( "Project Settings", exportProjSettings );
GUILayout.EndVertical();
}
GUILayout.Space( 10 );
}
GUILayout.BeginHorizontal( STYLES["Button"] );
if ( GUILayout.Button( "Abort" ) ) {
Close();
}
GUILayout.Space( 16 );
if ( GUILayout.Button( "OK" ) ) {
if ( fileName == fileNameDefault ) {
ExportAssetsPopUp popUp = GetWindow( typeof( ExportAssetsPopUp ) ) as ExportAssetsPopUp;
popUp.text = $"You must select a filename other than\n\n\"{fileName}\"";
popUp.ShowPopup();
} else {
Debug.Log( fileName );
ExportPackage();
}
}
GUILayout.EndHorizontal();
//this.Repaint();
}
void ExportPackage() {
if ( exportTagsAndLayers ) paths.Add( "ProjectSettings/TagManager.asset" );
if ( exportInputManager ) paths.Add( "ProjectSettings/InputManager.asset" );
if ( exportProjSettings ) paths.Add( "ProjectSettings/ProjectSettings.asset" );
//string[] projectContent = new string[] { "Assets", "ProjectSettings/TagManager.asset", "ProjectSettings/InputManager.asset", "ProjectSettings/ProjectSettings.asset" };
string filePath = $"../{fileName}_{System.DateTime.Now.ToDateTimeStamp()}.unitypackage";
AssetDatabase.ExportPackage( paths.ToArray(), filePath, ExportPackageOptions.Interactive | ExportPackageOptions.Recurse );// | ExportPackageOptions.IncludeDependencies );
Debug.Log( "UnityPackage exported to: " + filePath );
ExportAssetsPopUp popUp = GetWindow( typeof( ExportAssetsPopUp ) ) as ExportAssetsPopUp;
popUp.text = $"UnityPackage exported to:\n\t{filePath}\n\n(it's right next to your Project folder)";
popUp.ShowPopup();
Close();
}
//[MenuItem( "Tools/PhraseAccept2" )]
//public static void main() {
// EditorWindow window = GetWindow( typeof( ExportAssetsWindow ) );
// window.Show();
//}
static Dictionary<string, GUIStyle> STYLES = new Dictionary<string, GUIStyle>();
static void SetGUIStyles() {
GUIStyle gs;
RectOffset roPadding = new RectOffset( 4, 4, 4, 4 );
// Normal
gs = new GUIStyle();
gs.fontStyle = FontStyle.Normal;
gs.padding = roPadding;
AddStyle( "Normal", gs );
// Bold
gs = new GUIStyle();
gs.fontStyle = FontStyle.Bold;
gs.padding = roPadding;
AddStyle( "Bold", gs );
// Box
gs = new GUIStyle();
gs.normal.background = Texture2D.whiteTexture;
gs.padding = roPadding;
gs.margin = roPadding;
AddStyle( "Box", gs );
// Button
gs = new GUIStyle();
gs.fontStyle = FontStyle.Bold;
gs.padding = new RectOffset( 16, 16, 4, 4 );
AddStyle( "Button", gs );
}
static void AddStyle( string key, GUIStyle style ) {
if ( STYLES.ContainsKey( key ) ) { // If it exists already, update the style
STYLES[key] = style;
} else { // Otherwise, add the style
STYLES.Add( key, style );
}
}
}
public class ExportAssetsPopUp : EditorWindow {
public string text;
int w = 400, h = 400;
void Awake() {
maxSize = new Vector2( w, h );
minSize = maxSize / 2;
//this.CenterOnMainWin();
position = new Rect( ( Screen.currentResolution.width - ( w / 2 ) ) / 2, ( Screen.currentResolution.height - ( h / 2 ) ) / 2, w, h );
//Rect mainWindowRect = EditorGUIUtility.GetMainWindowPosition();
//Rect pos = position;
//pos.x -= pos.width / 2;
//pos.y -= pos.height / 2;
//position = pos;
}
void OnGUI() {
GUIStyle style = new GUIStyle();
style.fontStyle = FontStyle.Bold;
style.wordWrap = true;
style.alignment = TextAnchor.UpperCenter;
style.padding = new RectOffset( 4, 4, 4, 4 );
GUIStyle gsButton = new GUIStyle( GUI.skin.button );
//gsButton.alignment = TextAnchor.LowerCenter;
gsButton.margin = new RectOffset( w / 4, w / 4, 4, 4 );
//gsButton.fixedWidth = w / 4;
GUILayout.Space( 10 );
GUILayout.Label( text, style );
GUILayout.Space( 10 );
if ( GUILayout.Button( "OK", gsButton ) ) this.Close();
}
}
//public static class EditorWindowExtensions {
// // From https://answers.unity.com/questions/960413/editor-window-how-to-center-a-window.html
// public static void CenterOnMainWin( this EditorWindow window ) {
// Rect main = EditorGUIUtility.GetMainWindowPosition();
// Rect pos = window.position;
// float centerWidth = ( main.width - pos.width ) * 0.5f;
// float centerHeight = ( main.height - pos.height ) * 0.5f;
// pos.x = main.x + centerWidth;
// pos.y = main.y + centerHeight;
// window.position = pos;
// }
// public static System.Type[] GetAllDerivedTypes( this System.AppDomain aAppDomain, System.Type aType ) {
// var result = new List<System.Type>();
// var assemblies = aAppDomain.GetAssemblies();
// foreach ( var assembly in assemblies ) {
// var types = assembly.GetTypes();
// foreach ( var type in types ) {
// if ( type.IsSubclassOf( aType ) )
// result.Add( type );
// }
// }
// return result.ToArray();
// }
// public static Rect GetEditorMainWindowPos() {
// var containerWinType = System.AppDomain.CurrentDomain.GetAllDerivedTypes( typeof( ScriptableObject ) ).Where( t => t.Name == "ContainerWindow" ).FirstOrDefault();
// if ( containerWinType == null )
// throw new System.MissingMemberException( "Can't find internal type ContainerWindow. Maybe something has changed inside Unity" );
// var showModeField = containerWinType.GetField( "m_ShowMode", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance );
// var positionProperty = containerWinType.GetProperty( "position", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance );
// if ( showModeField == null || positionProperty == null )
// throw new System.MissingFieldException( "Can't find internal fields 'm_ShowMode' or 'position'. Maybe something has changed inside Unity" );
// var windows = Resources.FindObjectsOfTypeAll( containerWinType );
// foreach ( var win in windows ) {
// var showmode = (int) showModeField.GetValue( win );
// if ( showmode == 4 ) // main window
// {
// var pos = (Rect) positionProperty.GetValue( win, null );
// return pos;
// }
// }
// throw new System.NotSupportedException( "Can't find internal main window. Maybe something has changed inside Unity" );
// }
// //public static void CenterOn$$anonymous$$ainWin( this UnityEditor.EditorWindow aWin ) {
// // var main = EditorGUIUtility.Get$$anonymous$$ainWindowPosition();
// // var pos = aWin.position;
// // float w = ( main.width - pos.width ) * 0.5f;
// // float h = ( main.height - pos.height ) * 0.5f;
// // pos.x = main.x + w;
// // pos.y = main.y + h;
// // aWin.position = pos;
// //}
//}
public static class DateTimeExtension {
static public string ToTimeStamp( this System.DateTime time ) {
string str = $"{time.Hour:00}{time.Minute:00}";
return str;
}
static public string ToDateStamp( this System.DateTime time ) {
string str = $"{time.Year:0000}-{time.Month:00}-{time.Day:00}";
return str;
}
static public string ToDateTimeStamp( this System.DateTime time ) {
return $"{time.ToDateStamp()}_{time.ToTimeStamp()}";
}
}
}
#endif
\ No newline at end of file
fileFormatVersion: 2
guid: 1bde0e6c830564f7ab137df5d520d915
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEditor;
namespace XnTools {
/// <summary>
/// Places a command in the Window menu to toggle the visibility of the UI layer in the SceneView. <para />
/// This is a followup to: https://gamedev.stackexchange.com/a/200942/171479
/// </summary>
static public class XnUILayerToggleClass {
[MenuItem("Window/UI Layer Toggle", false, 992414 )]
static void UILayerToggle()
{
Tools.visibleLayers ^= 1 << LayerMask.NameToLayer("UI");
SceneView.RepaintAll();
}
}
}
fileFormatVersion: 2
guid: 643f6bffd559a4bdebf2a15b8348bbfd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &1141641174
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1141641176}
- component: {fileID: 1141641175}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1141641175
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1141641174}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &1141641176
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1141641174}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1647429629
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1647429632}
- component: {fileID: 1647429631}
- component: {fileID: 1647429630}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1647429630
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1647429629}
m_Enabled: 1
--- !u!20 &1647429631
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1647429629}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1647429632
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1647429629}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
fileFormatVersion: 2
guid: 6d26326bf666f4704b635c1c51f5fb69
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -2,10 +2,10 @@
"dependencies": {
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0",
"com.unity.ide.rider": "3.0.18",
"com.unity.ide.visualstudio": "2.0.17",
"com.unity.ide.rider": "3.0.21",
"com.unity.ide.visualstudio": "2.0.18",
"com.unity.ide.vscode": "1.2.5",
"com.unity.inputsystem": "1.4.4",
"com.unity.inputsystem": "1.5.1",
"com.unity.textmeshpro": "3.0.6",
"com.unity.timeline": "1.4.8",
"com.unity.ugui": "1.0.0",
......
......@@ -20,7 +20,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ide.rider": {
"version": "3.0.18",
"version": "3.0.21",
"depth": 0,
"source": "registry",
"dependencies": {
......@@ -29,7 +29,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ide.visualstudio": {
"version": "2.0.17",
"version": "2.0.18",
"depth": 0,
"source": "registry",
"dependencies": {
......@@ -45,7 +45,7 @@
"url": "https://packages.unity.com"
},
"com.unity.inputsystem": {
"version": "1.4.4",
"version": "1.5.1",
"depth": 0,
"source": "registry",
"dependencies": {
......
m_EditorVersion: 2020.3.43f1
m_EditorVersionWithRevision: 2020.3.43f1 (75bff06b76bf)
m_EditorVersion: 2020.3.48f1
m_EditorVersionWithRevision: 2020.3.48f1 (b805b124c6b7)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment