Jump to content

[1.12.X] Feline Utility Rovers v1.3.4 (28. April 2022)


Nils277

Recommended Posts

Question on the science lab.

I put a rover on Minmus and found my science per day was real low, like 0.6631 science per day low. When compared to a regular lab, which is around  17.5 per day

So I opened the config and believe this is the section that controls the science research?
        name = ModuleScienceConverter
        dataProcessingMultiplier = 0.05
        scientistBonus = 0.2
        researchTime = 7
        scienceMultiplier = 4
        scienceCap = 100    
        powerRequirement = 4
        ConverterName = #autoLOC_502055
        StartActionName = #autoLOC_502056
        StopActionName = #autoLOC_502057

The multiplier caught my eye. I wondered what a stock crewed science lab was set to.
        name = ModuleScienceConverter
        dataProcessingMultiplier = 0.5 // Multiplier to data processing rate and therefore science rate
        scientistBonus = 0.25    //Bonus per scientist star - need at least one! So 0.25x - 2.5x 
        researchTime = 7        //Larger = slower.  Exponential!
        scienceMultiplier = 5    //How much science does data turn into?
        scienceCap = 500        //How much science can we store before having to transmit?        
        powerRequirement = 5    //EC/Sec to research
        ConverterName = #autoLOC_502055 //#autoLOC_502055 = Research
        StartActionName = #autoLOC_502056 //#autoLOC_502056 = Start Research
        StopActionName = #autoLOC_502057 //#autoLOC_502057 = Stop Research
  

Is that correct?

Link to comment
Share on other sites

  • 2 weeks later...
On 5/23/2019 at 5:40 PM, Nils277 said:

Hi, that would be really cool! :)

You can make a pull request to GitHub, if you have a GitHub. Or you can upload them to Dropbox or other file uploader. Or you can send the content of the files in a pm, i would recreate the files then :wink:

Don't worry, these days, I'm hard working translation.

Edited by Trolol29
Link to comment
Share on other sites

On 6/30/2019 at 12:49 PM, Deacon Ix said:

Hi, love the mod - there seemt to be an issue, when MKS is installed is somehow removes the Rear Drill part - obviously there is some interaction between the mods to enable the drill to mine USI resources. Removing MKS brings it back.

 

 

On 7/8/2019 at 2:08 PM, Nils277 said:

Hmm, this should not happen. Will take a look at what goes wrong there

 

Debugging my current modded install and came across this:

Quote

PartLoader: Compiling Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/Drill_rear/Lynx_DrillRear'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

NullReferenceException: Object reference not set to an instance of an object
  at PartModule.Awake () [0x00000] in <filename unknown>:0 
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
Part:AddModule(String, Boolean)
Part:AddModule(ConfigNode, Boolean)
PartLoader:ParsePart(UrlConfig, ConfigNode)
<CompileParts>c__Iterator1:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
 
(Filename:  Line: -1)

PartLoader: Encountered exception during compilation. System.NullReferenceException: Object reference not set to an instance of an object
  at PartModule.ApplyUpgradeNode (System.Collections.Generic.List`1 appliedUps, .ConfigNode node, Boolean doLoad) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0 
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartLoader+<CompileParts>c__Iterator1.MoveNext () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartCompiler: Cannot compile part
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader: Compiling Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/ISRU/Lynx_ISRU'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader: Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/ISRU/Lynx_ISRU' has no database record. Creating.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

DragCubeSystem: Creating drag cubes for part 'Lynx.ISRU'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

NullReferenceException: Object reference not set to an instance of an object
  at PartLoader.GetDatabaseConfig (.Part p) [0x00000] in <filename unknown>:0 
  at PartLoader.GetDatabaseConfig (.Part p, System.String nodeName) [0x00000] in <filename unknown>:0 
  at DragCubeSystem.LoadDragCubes (.Part p) [0x00000] in <filename unknown>:0 
  at Part+<Start>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0 
  at UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

The multilight module is throwing out NREs all over the place, so I'm not sure it matters much as its happening on every part.

However, I think the Lynx_DrillRear is getting turned into Lynx.DrillRear like the ISRU is and then this:

Quote

@PART[Lynx_DrillRear]:FOR[FelineUtilityRover]:NEEDS[MKS]

is making it lose its mind. I think I remember another mod having an issue like this with underscores being turned into periods and screwing up things.

Link to comment
Share on other sites

@draqsko yes, all underscores are turned into and stored as dots. That is an internal change i.e. at runtime. It’s not a problem, generally, unless someone tries to refer to the part in code specifically by name, with a hard coded value that does not use the correct name string. 

Link to comment
Share on other sites

@Starwaster Yeah I think it was one of your posts or one of your threads that mentioned that where I seen it before.

And I found the culprit, I think.

Quote

        name = ModuleResourceHarvester_USI

I don't think this exists anymore, @RoverDude can you confirm that this would be the issue?

 

Edit: I am basing on this PR in MKS for the MKS drills:

https://github.com/UmbraSpaceIndustries/MKS/pull/1387/files#diff-b1d65f2ec3a330fa71fe4537ef43117fL64

Quote
name = ModuleResourceHarvester_USI
      HarvesterType = 0
      name = ModuleSwapOption

Turned into ModuleSwapOption perhaps?

Edited by draqsko
Add in PR from MKS
Link to comment
Share on other sites

@Nils277 Another thing I'm seeing:

Quote

PartLoader: Compiling Part 'Squad/Parts/Command/mk1pod/mk1Pod/mk1pod'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader: Part 'Squad/Parts/Command/mk1pod/mk1Pod/mk1pod' has no database record. Creating.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

DragCubeSystem: Creating drag cubes for part 'mk1pod'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 
 
(Filename:  Line: -1)

NullReferenceException: Object reference not set to an instance of an object
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) [0x00000] in <filename unknown>:0 
  at KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () [0x00000] in <filename unknown>:0 

That's just an example but it's happening on every part loaded after FUR starts loading its parts. Not a huge issue because I know it's not breaking anything in the game (the Mk-1 pod appears and works fine, that's why I picked it for an example) but it is increasing the loading time and killing my eyes trying to get through this list.

Link to comment
Share on other sites

On 8/24/2019 at 3:56 PM, draqsko said:

@Nils277 Another thing I'm seeing:

That's just an example but it's happening on every part loaded after FUR starts loading its parts. Not a huge issue because I know it's not breaking anything in the game (the Mk-1 pod appears and works fine, that's why I picked it for an example) but it is increasing the loading time and killing my eyes trying to get through this list.

Thanks for the report, i will take care of this once i'm back from vacation ;) 

Link to comment
Share on other sites

4 hours ago, Nils277 said:

Thanks for the report, i will take care of this once i'm back from vacation ;) 

No problems, I had to remove FUR for my own sanity but doesn't appear that it was breaking anything with that log spam, just my eyes. Still it is my favorite rover so I don't want to lose the mod entirely. If you aren't seeing it yourself, let me know and I can send ya a list of my mods to figure out what might be going wrong.

Link to comment
Share on other sites

Hello,

First Thank you for this great mod!

 

I don't want to bother you, but I'm working on setting up a new install (after not having played KSP for over 12 moths) and I was wondering,

if the problems that were mentioned above are still present and harmless or could they be a problem in KSP 1.7.3?

Link to comment
Share on other sites

  • 3 weeks later...
On 8/30/2019 at 7:47 AM, N3N said:

Hello,

First Thank you for this great mod!

 

I don't want to bother you, but I'm working on setting up a new install (after not having played KSP for over 12 moths) and I was wondering,

if the problems that were mentioned above are still present and harmless or could they be a problem in KSP 1.7.3?

The problems are still present int 1.7.3 but for all i know they do not cause any harm.

On 8/27/2019 at 4:14 AM, draqsko said:

No problems, I had to remove FUR for my own sanity but doesn't appear that it was breaking anything with that log spam, just my eyes. Still it is my favorite rover so I don't want to lose the mod entirely. If you aren't seeing it yourself, let me know and I can send ya a list of my mods to figure out what might be going wrong.

I'm back from my vacation now and will start to find and remove the problem ;) 

Link to comment
Share on other sites

@draqsko I just tried with a fresh install of FUR with a nearly unmodded KPS (just KAS, CRP, CCK and KPBS) and i do not see any NREs (NullReferenceException) getting spammed after loading e.g. the parts from FUR. Actually a see no NREs at all.

I found a bug for the drill that disables the lights when it is set to have the rear lights, which might be related to the logged errors you are seeing. Can you tell me which mods you have? Normally the multilights should not interact with any other mods, it is only there so you can have differend colored lights.

Edited by Nils277
Link to comment
Share on other sites

  • 4 weeks later...
On 9/14/2019 at 12:46 PM, Nils277 said:

@draqsko I just tried with a fresh install of FUR with a nearly unmodded KPS (just KAS, CRP, CCK and KPBS) and i do not see any NREs (NullReferenceException) getting spammed after loading e.g. the parts from FUR. Actually a see no NREs at all.

I found a bug for the drill that disables the lights when it is set to have the rear lights, which might be related to the logged errors you are seeing. Can you tell me which mods you have? Normally the multilights should not interact with any other mods, it is only there so you can have differend colored lights.

Sorry for the delay, been pretty busy myself around the house while the weather is good.

Mod list is pretty big. I wouldn't expect you to test them all but lighting might be the issue since I have Indicator Lights installed which also seems to coincide with the parts that are getting the error. In the above example, IL puts an indicator light for the occupant on the Mk1 pod. The only other option I can think of that might mess with the pod would be B9 Part Switch.

https://github.com/KSPSnark/IndicatorLights

Link to comment
Share on other sites

On 10/14/2019 at 10:14 PM, draqsko said:

Sorry for the delay, been pretty busy myself around the house while the weather is good.

Mod list is pretty big. I wouldn't expect you to test them all but lighting might be the issue since I have Indicator Lights installed which also seems to coincide with the parts that are getting the error. In the above example, IL puts an indicator light for the occupant on the Mk1 pod. The only other option I can think of that might mess with the pod would be B9 Part Switch.

https://github.com/KSPSnark/IndicatorLights

Okay, thanks for the hint, will take a look at if indicator lights does somthing. I think there should be also a patch file for indicator lights shipped with FUR, might be that something changed that i did not think of.

Link to comment
Share on other sites

 

 

Edit2: Found(?) the culprit at the bottom of the post.

Edit: More Debug info at bottom of post.

Replying to my earlier post regarding the log spam. I am running 1.7.3, 200+ mods, so not sure what is causing it, but the relevant section is below. Pretty sure it's due to another mod's interaction. I'm not looking at you to dig into it. With the release of 1.8 I have VS fired up and am in full debug mod. Relevant log below. The exception at the end just keeps spamming the log file. I have some possible culprits in mind but don't want to go around naming names prematurely.

---------------------------

[LOG 20:17:26.569] PartLoader: Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Payload/ServiceBay/Lynx_ServiceBay' has no database record. Creating.
[LOG 20:17:26.581] DragCubeSystem: Creating drag cubes for part 'Lynx.ServiceBay'
[LOG 20:17:26.638] PartLoader: Compiling Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/Drill_rear/Lynx_DrillRear'
[LOG 20:17:26.687] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[ERR 20:17:26.687] Material doesn't have a texture property '_Emissive'

[LOG 20:17:26.687] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.688] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.688] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.688] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.688] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.688] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.689] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[ERR 20:17:26.689] Material doesn't have a texture property '_BumpMap'

[EXC 20:17:26.704] NullReferenceException: Object reference not set to an instance of an object
    PartModule.Awake ()
    UnityEngine.GameObject:AddComponent(Type)
    Part:AddModule(String, Boolean)
    Part:AddModule(ConfigNode, Boolean)
    PartLoader:ParsePart(UrlConfig, ConfigNode)
    <CompileParts>c__Iterator1:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 20:17:26.704] PartLoader: Encountered exception during compilation. System.NullReferenceException: Object reference not set to an instance of an object
  at PartModule.ApplyUpgradeNode (System.Collections.Generic.List`1 appliedUps, .ConfigNode node, Boolean doLoad) [0x00000] in <filename unknown>:0
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0
  at PartLoader+<CompileParts>c__Iterator1.MoveNext () [0x00000] in <filename unknown>:0

[ERR 20:17:26.704] PartCompiler: Cannot compile part

[LOG 20:17:26.704] PartLoader: Compiling Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/ISRU/Lynx_ISRU'
[LOG 20:17:26.757] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[ERR 20:17:26.757] Material doesn't have a texture property '_Emissive'

[LOG 20:17:26.757] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.758] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[ERR 20:17:26.758] Material doesn't have a texture property '_Emissive'

[LOG 20:17:26.758] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.758] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.758] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.758] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.759] enabling TSMD..model (UnityEngine.Transform) updateMode: False
[LOG 20:17:26.801] PartLoader: Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Resources/ISRU/Lynx_ISRU' has no database record. Creating.
[LOG 20:17:26.815] DragCubeSystem: Creating drag cubes for part 'Lynx.ISRU'
[EXC 20:17:26.835] NullReferenceException: Object reference not set to an instance of an object
    PartLoader.GetDatabaseConfig (.Part p)
    PartLoader.GetDatabaseConfig (.Part p, System.String nodeName)
    DragCubeSystem.LoadDragCubes (.Part p)
    Part+<Start>c__Iterator0.MoveNext ()
    UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[EXC 20:17:26.880] NullReferenceException: Object reference not set to an instance of an object
    KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state)
    KerbetrotterTools.ModuleKerbetrotterMultiLight.Update ()
[EXC 20:17:26.923] NullReferenceException: Object reference not set to an instance of an object
    KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state)
    KerbetrotterTools.ModuleKerbetrotterMultiLight.Update ()
[EXC 20:17:26.944] NullReferenceException: Object reference not set to an instance of an object
    KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state)
    KerbetrotterTools.ModuleKerbetrotterMultiLight.Update ()

 

Edit: Debug build info.

[EXC 21:02:30.412] NullReferenceException: Object reference not set to an instance of an object
    KerbetrotterTools.ModuleKerbetrotterMultiLight.updateLights (Single state) (at F:/Modding/ksp/Unowned/FelineUtilityRovers-master/FelineUtilityRovers/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterMultiLight.cs:147)
    KerbetrotterTools.ModuleKerbetrotterMultiLight.Update () (at F:/Modding/ksp/Unowned/FelineUtilityRovers-master/FelineUtilityRovers/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterMultiLight.cs:60)

--------------

-- lightSettings is null for some reason

        private void updateLights(float state)
        {
            //when the active model changes
            if (oldModelNum != numModel)
            {
                for (int i = 0; i < lightSettings.Count; i++)
                {
                    if (i == numModel)
                    {
 

-------------------

Edit2: Getting closer.

[LOG 22:13:10.762] PartLoader: Compiling Part 'KerbetrotterLtd/FelineUtilityRover/Parts/Control/Cockpit/Lynx_Cockpit'
[LOG 22:13:10.833] FailureModule.OnLoad
[LOG 22:13:10.837] FailureModule.OnLoad
[EXC 22:13:10.845] UnityException: get_dataPath is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called from MonoBehaviour 'ModuleCrewIndicatorToggle' on game object 'K2Pod'.
See "Script Serialization" page in the Unity Manual for further details.
    KSP.IO.IOUtils.get_PluginRootPath ()
    KSP.IO.IOUtils.GetFilePathFor (System.Type T, System.String file, .Vessel flight)
    KSP.IO.PluginConfiguration.CreateForType[ModuleControllableEmissive] (.Vessel flight)
    IndicatorLights.Configuration..cctor ()

Edited by Grigetio
More info
Link to comment
Share on other sites

On 10/23/2019 at 4:31 AM, Grigetio said:

Edit2: Found(?) the culprit at the bottom of the post.

Edit: More Debug info at bottom of post.

....

-- lightSettings is null for some reason

        private void updateLights(float state)
        {
            //when the active model changes
            if (oldModelNum != numModel)
            {
                for (int i = 0; i < lightSettings.Count; i++)
                {
                    if (i == numModel)
                    {
 

Thanks, thats a good find! Will take a look at it why the light settings can be null. Nontheless i will be able to at least test for that case in the log and stop the lpg spam. 

 

For all: I know that FUR might not work with 1.8.0. Will try to update soon(TM)

Edited by Nils277
Link to comment
Share on other sites

I'm still looking at it in 1.7.3, but I now have both KSP installs kind of borked somehow, and am doing some rebuilds.

 

What I do know is that update() is being called directly, before start() or awake(), and  start() is where we init the lightsettings.

Link to comment
Share on other sites

2 hours ago, Rafael acevedo said:

It is working for me Nils

Thats really nice to hear :) ...i thought that at least the textures are not working because KPS does not support DXT3 textures anymore and FUR still uses them for the diffuse textures.

12 hours ago, Grigetio said:

I'm still looking at it in 1.7.3, but I now have both KSP installs kind of borked somehow, and am doing some rebuilds.

 

What I do know is that update() is being called directly, before start() or awake(), and  start() is where we init the lightsettings.

Hmm, that must have changed since i last looked at it. I really thought that update() will only be called after awake() and start(), that might really be the culprit

Link to comment
Share on other sites

  • 4 weeks later...
On 11/20/2019 at 5:59 PM, MaximumThrust said:

@Nils277 have you ever considered making half tanks (in height) and some parts for unmanned rovers?

 

Za4dvrp.jpg

To be honest, i did not :) 

There is one part that can be attached to a rover on the front, to create an unmanned rover, but never really how sized parts for an unmanned rover. Might take a look at it at some day ;) 

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...