Jump to content

[KSP1.12.x] RealPlume - Stock v4.0.8 & RealPlume v13.3.2 [25/JUN/2021]


Zorg

Recommended Posts

On 9/3/2020 at 11:22 PM, EdwardB3020 said:

Can there be a patch for the rapier vfx please because my Frances are tanking and I can’t individually select the engine particles with the smoke screen mod. I know how to use them but it’s just messy. Is there like a patch available for this bug please? I really want to use this mod but don’t want this happening. 

  I didn't write that config although it is a fairly complex one. perhaps @Scialytic can take a look at some optimizations in the future? I'll put a copy of the old config in the folder for the next update so people who have trouble with it can revert to it (by deleting the current config and renaming the extension of the old config). But the current one will remain the default.

10 hours ago, Clamp-o-Tron said:

@Zorghow would I go about creating a realplume for a linear aerospike? Particularly @Angel-125 's Mk-33 Velociraptor? Would I just place several instances of the plume around the spike, or is there a better way?

I spose so. I believe it uses multiple fx transforms so you could make use of them. I meant to try and have a go at it but just got too busy with other things. It could be tricky to keep the performance under control so be mindful of that when making it.

On 9/4/2020 at 8:21 AM, HopelessSoap said:

Ok, here's that video I mentioned in my last reply.

https://youtu.be/2emIg8fca0c

I've been having this issue since I installed this mod, which was a while ago (I forget exactly when)

Unfortunately as I mentioned to the other user I don't know the cause of this. As far as I can tell the configs have nothing in them that would cause it. So it could either be a smokescreen issue or some kind of KSP issue.

Link to comment
Share on other sites

On 9/3/2020 at 2:01 AM, Souptime said:

Just the updated engines, SIngle bell poodle and the ESA kickback booster are the onl;y problems

I'm just working on the update and I'm not seeing a problem with the stock poodle. Did you mean stock or restock? Theres some problems with the restock one due to the big difference in bell size and theres no plume switching in the stock systme without multimode. I cant fix that entirely unfortunately but can adjust the plume size to fudge it a little. Similarly both stock and restock kickback boosters seem fine with the ESA switch using the existing configs from what I can see?

Edited by Zorg
Link to comment
Share on other sites

On 9/6/2020 at 3:51 AM, Zorg said:

 

On 9/3/2020 at 2:22 PM, EdwardB3020 said:

Can there be a patch for the rapier vfx please because my Frances are tanking and I can’t individually select the engine particles with the smoke screen mod. I know how to use them but it’s just messy. Is there like a patch available for this bug please? I really want to use this mod but don’t want this happening. 

  I didn't write that config although it is a fairly complex one. perhaps @Scialytic can take a look at some optimizations in the future? I'll put a copy of the old config in the folder for the next update so people who have trouble with it can revert to it (by deleting the current config and renaming the extension of the old config). But the current one will remain the default.

I'll take a look the next time I have a decent block of free time.  The thing with the RAPIER is there's 4 nozzles per engine, so whatever the threshold for "too many" particles is, you're going to hit it faster than you would with most other engines.  Emission can only be reduced so much before the plume visually breaks down into distinct particles.

@EdwardB3020 can you give me a sense of how many RAPIERs you're trying to run at once?

Edited by Scialytic
Link to comment
Share on other sites

Quick update: it seems like the performance problems scale with the number of emitters not particles, and it doesn't make a noticeable difference whether or not they are active.  Most likely, there's something screwy going on in SmokeScreen.  I'll try to figure it out and fix it when I get a chance, but I need be clear that I don't expect that to be anytime soon.

Link to comment
Share on other sites

A few things. I'm trying to make configs for the UnKerbaled Start engines(Cogswell and Spacely.) What folder do I put the finished configs in. Plus, How do I get the old/1.8 plumes? I don't want to discredit Jade's work and the plumeparty plumes look great, but I personally liked the old plumes better.

Link to comment
Share on other sites

There is a "small" issue with the R4D11 (R-4D-11) from SLS - that part got no ModuleEnginesFX in it ...

I stumbled upon it because of a chain of actions that leads to 4 MM patching errors:

  1. GameData\RealPlume-Stock\Space Launch System\R4D11.cfg adds a PLUME node Hypergolic-OMS-White and tries to patch the non-existing ModuleEngines*
  2. GameData\RealPlume\000_Generic_Plumes\Hypergolic-OMS-White.cfg adds the EFFECTS node Hypergolic-OMS-White
  3. GameData\RocketSoundEnhancement\Patches\Hypergolic-OMS-White.cfg fails with "Cannot parse variable search when inserting new key volume = #$/MODULE[ModuleEngines*]/maxThrust$" on 4 occasions

The patching chain assumes it's an engine, because RealPlume-Stock does @MODULE[ModuleEngines*]

But it's an RCS thruster.

Link to comment
Share on other sites

1 hour ago, RP1IsSuperior said:

A few things. I'm trying to make configs for the UnKerbaled Start engines(Cogswell and Spacely.) What folder do I put the finished configs in. Plus, How do I get the old/1.8 plumes? I don't want to discredit Jade's work and the plumeparty plumes look great, but I personally liked the old plumes better.

If you wish to make a PR to RealPlume-stock you can make a folder for unkerballed start and submit. Or you can send make the PR to Unkerballed Start. Some mods keep their own files for RP compatibility.

If you wish to use older plumes you can download an older version of realplume-stock. The prefabs for the older plumes still exist but you would need to get the engine configs from an older version. Up to you to pick and choose what configs you want from those versions. 

57 minutes ago, Gordon Dry said:

There is a "small" issue with the R4D11 (R-4D-11) from SLS - that part got no ModuleEnginesFX in it ...

I stumbled upon it because of a chain of actions that leads to 4 MM patching errors:

  1. GameData\RealPlume-Stock\Space Launch System\R4D11.cfg adds a PLUME node Hypergolic-OMS-White and tries to patch the non-existing ModuleEngines*
  2. GameData\RealPlume\000_Generic_Plumes\Hypergolic-OMS-White.cfg adds the EFFECTS node Hypergolic-OMS-White
  3. GameData\RocketSoundEnhancement\Patches\Hypergolic-OMS-White.cfg fails with "Cannot parse variable search when inserting new key volume = #$/MODULE[ModuleEngines*]/maxThrust$" on 4 occasions

The patching chain assumes it's an engine, because RealPlume-Stock does @MODULE[ModuleEngines*]

But it's an RCS thruster.

Thanks, I will remove that patch for the next update.

Link to comment
Share on other sites

I'm trying to make an engine config for the LV-T5 "Cogswell" Engine from Unkerbaled Start. I made the config but I have no idea where to put it. I tried leaving the MM patches in a folder in the mod folder, but when I launched the game all of the parts just became their file name, IE LV-T45 "Swivel" became liquidEngineSwivel, and they still had stock plumes. Also, is there a way to get the old methalox plumes?

Link to comment
Share on other sites

Hmm OK, not sure how to help you other than maybe suggest you delete RealPlume, RealPlumeStock, and SmokeScreen, and try to unzip the distrubution zip again? The other day I was copying the contents of my GameData folder elsewhere by hand, and I can tell you that if you install RealPlume/RealPlumeStock and you do not have smokescreen installed , engines have no plumes at all.

Link to comment
Share on other sites

1 minute ago, OrbitalManeuvers said:

Hmm OK, not sure how to help you other than maybe suggest you delete RealPlume, RealPlumeStock, and SmokeScreen, and try to unzip the distrubution zip again? The other day I was copying the contents of my GameData folder elsewhere by hand, and I can tell you that if you install RealPlume/RealPlumeStock and you do not have smokescreen installed , engines have no plumes at all.

I installed it with CKAN. I guess ill try installing manually.

Link to comment
Share on other sites

42 minutes ago, OrbitalManeuvers said:

Hmm OK, not sure how to help you other than maybe suggest you delete RealPlume, RealPlumeStock, and SmokeScreen, and try to unzip the distrubution zip again? The other day I was copying the contents of my GameData folder elsewhere by hand, and I can tell you that if you install RealPlume/RealPlumeStock and you do not have smokescreen installed , engines have no plumes at all.

I tried it. There is no GameData/RealismOverhaul/SmokeScreen_EffectCfgs/ Folder

Link to comment
Share on other sites

33 minutes ago, RP1IsSuperior said:

Huh. I was looking at the part file and apparently it's already set up for RealPlume...

But there are no plumes...

You can share the configs you made and I can help as much as I possibly can. However keep in mind I am only looking after "RealPlume" which only contains the presets and "RealPlume-stock" which gives those presets to stock parts and stockalike mods. Realism overhaul is a giant mountain of configs with which I am mostly unfamiliar. But without seeing your configs and or logs its impossible to say what exactly is going on with your installs.

Link to comment
Share on other sites

7 minutes ago, Zorg said:

You can share the configs you made and I can help as much as I possibly can. However keep in mind I am only looking after "RealPlume" which only contains the presets and "RealPlume-stock" which gives those presets to stock parts and stockalike mods. Realism overhaul is a giant mountain of configs with which I am mostly unfamiliar. But without seeing your configs and or logs its impossible to say what exactly is going on with your installs.

https://pastebin.com/HmHyDdJ7 here is the actual part file, it contains the MM patch.

https://www9.zippyshare.com/v/KeIP0BNb/file.html Here is a log of my most recent attempt to launch the game. Keep in mind, I tried to launch the game after creating a seperate config file for the UKSliquidEngineLVT10, however, the plume still would not show up despite my config not existing, and the MM Patch in the actual part file.  The plume also wouldn't function on the other UnKerballedStart Engine, UKSliquidEngineLVT05

https://pastebin.com/km1ikC1j

 

Link to comment
Share on other sites

On 9/26/2020 at 2:42 AM, RP1IsSuperior said:

https://pastebin.com/HmHyDdJ7 here is the actual part file, it contains the MM patch.

https://www9.zippyshare.com/v/KeIP0BNb/file.html Here is a log of my most recent attempt to launch the game. Keep in mind, I tried to launch the game after creating a seperate config file for the UKSliquidEngineLVT10, however, the plume still would not show up despite my config not existing, and the MM Patch in the actual part file.  The plume also wouldn't function on the other UnKerballedStart Engine, UKSliquidEngineLVT05

https://pastebin.com/km1ikC1j

 

I think the problem here is the MM patch order. 

https://github.com/KSP-RO/RealPlume/blob/master/GameData/RealPlume/000_Generic_Plumes/Deprecated/Kerolox-Lower.cfg

Prefab plumes are applied at AFTER[zRealPlume] and it will only apply to a PART that has the requisite PLUME node inserted prior to that point. Your realplume patches are running at AFTER[zzzUnKerballedStart] which is well after that point. 

Unless you have a specific reason to run your patch so late in the patch order, moving up the realplume patch should resolve the issue if I'm correct.

Link to comment
Share on other sites

On 9/7/2020 at 1:51 AM, Souptime said:

Oh yeah, both right now. The plume doesn't show up on it back when i disabled it (The part revamp not the plume) before restock updated

And same for the kickback, not sure if it's just my copy but thats what i found

@Souptime, My solution to RealPlume and the updated Poodle is to just split the variants into two different engines and give each their own plume.  I also converted the single bell nozzle to a vacuum engine and the quad nozzle to a lower stage as they look pretty different, it seemed strange that they had the same engine characteristics.  The patch for that is below and as it is using the ReStock models, obviously that's a dependency.  Plumes probably aren't perfect, but hit the "good enough" point for me when testing it.

Spoiler

// Part configs based from ReStock by Nertea et al.; Config files are licensed as an MIT License.
// Plumes are based off configs in RealPlume and licensed under CC-BY-NC-SA
// RE-L10 "Poodle" Liquid Fuel Engine
// Will keep the single nozzle engine as the vacuum engine
+PART[liquidEngine2-2_v2]:AFTER[000_ReStock]
{
	@name = kiwi_liquidEngine2-2_v2
	@title = RE-L12 "Poodle+" Liquid Fuel Engine
	@description = This engine is a real beauty, one of a kind and very cute, even when it fails mid-burn and leaves your kerbals on an interplanetary trajectory instead of the Mun's orbit.
	!PLUME {} // Remove the PLUME that RealPlume will add just to be safe.
	
	!MODULE[ModulePartVariants] {}
	MODULE
  {
    name = ModulePartVariants
    baseVariant = SingleBell
    //useMultipleDragCubes = false
    
    VARIANT
    {
      name = SingleBell
      displayName =  #LOC_Restock_variant-engine_singlebell_white
      primaryColor = #999999
      secondaryColor = #ffffff
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = false
        B_Poodle_Common = false
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = false
        ShroudOrange = false
        ShroudWhite = false
        ShroudOrangeLong = false
        ShroudWhiteLong = true
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = false
        Shroud2 = true
        Shroud3 = false
        B_Poodle_Single = true
        B_Poodle_SingleCommon =  true
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -2.67668, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = SingleBell-Alt
      displayName =  #LOC_Restock_variant-engine_singlebell_grey-orange
      primaryColor = #999999
      secondaryColor = #f69449
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = false
        B_Poodle_Common = false
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = false
        ShroudOrange = false
        ShroudWhite = false
        ShroudOrangeLong = true
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = false
        Shroud2 = true
        Shroud3 = false
        B_Poodle_Single = true
        B_Poodle_SingleCommon =  true
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -2.67668, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = SingleBell-Compact
      displayName =  #LOC_Restock_variant-engine_singlebell_compact_white
      primaryColor = #666666
      secondaryColor = #ffffff
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = false
        B_Poodle_Common = false
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = false
        ShroudOrange = false
        ShroudWhite = false
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = true
        ShroudOrangeCompact = false
        Shroud1 = false
        Shroud2 = false
        Shroud3 = true
        B_Poodle_Single = false
        B_Poodle_SingleCommon =  true
        B_Poodle_SingleCompact =  true
      }
      NODES
      {
        node_attach = 0.0, -0.678, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, -0.678, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -2.67668, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = SingleBell-Compact-Alt
      displayName =  #LOC_Restock_variant-engine_singlebell_compact_grey-orange
      primaryColor = #666666
      secondaryColor = #f69449
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = false
        B_Poodle_Common = false
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = false
        ShroudOrange = false
        ShroudWhite = false
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = true
        B_Poodle_Single = false
        Shroud1 = false
        Shroud2 = false
        Shroud3 = true
        B_Poodle_SingleCommon =  true
        B_Poodle_SingleCompact =  true
      }
      NODES
      {
        node_attach = 0.0, -0.678, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, -0.678, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -2.67668, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
  }
}



// Will convert the quad nozzle engine to surface lifter and give it a bit more kick.
@PART[liquidEngine2-2_v2]:NEEDS[ReStock]:FOR[KiwiAerospace] // RE-L10 "Poodle"
{
	!PLUME {} // In case RealPlume is installed as we will insert our own.
	@entryCost = 9000
	@cost += 1200
	@MODULE[ModuleEnginesFX]
	{
		@maxThrust = 475
		!atmosphereCurve {}
		atmosphereCurve
		{
			key = 0 305
			key = 1 270
			key = 3 0.001
		}
	}

  !MODULE[ModulePartVariants] {}
  MODULE
  {
    name = ModulePartVariants
    baseVariant = TwoBell
    //useMultipleDragCubes = false
    VARIANT
    {
      name = TwoBell
      displayName = #LOC_Restock_variant-engine_quadbell_white
      primaryColor = #999999
      secondaryColor = #ffffff
      GAMEOBJECTS
      {
        B_Poodle_25 = true
        B_Poodle_Compact = false
        B_Poodle_Common = true
        Poodle_LowerCyls = true
        Poodle_LowerCylsCompact = false
        ShroudOrange = false
        ShroudWhite = true
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = true
        Shroud2 = false
        Shroud3 = false
        B_Poodle_Single = false
        B_Poodle_SingleCommon =  false
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -1.5, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = Compact
      displayName = #LOC_Restock_variant-engine_quadbell_compact_white
      primaryColor = #666666
      secondaryColor = #ffffff
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = true
        B_Poodle_Common = true
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = true
        ShroudOrange = false
        ShroudWhite = true
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = true
        Shroud2 = false
        Shroud3 = false
        B_Poodle_Single = false
        B_Poodle_SingleCommon =  false
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -1.5, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = TwoBell_Alternate
      displayName = #LOC_Restock_variant-engine_quadbell_grey-orange
      primaryColor = #999999
      secondaryColor = #f69449
      GAMEOBJECTS
      {
        B_Poodle_25 = true
        B_Poodle_Compact = false
        B_Poodle_Common = true
        Poodle_LowerCyls = true
        Poodle_LowerCylsCompact = false
        ShroudOrange = true
        ShroudWhite = false
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = true
        Shroud2 = false
        Shroud3 = false
        B_Poodle_Single = false
        B_Poodle_SingleCommon =  false
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -1.5, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
    VARIANT
    {
      name = Compact_Alternate
      displayName = #LOC_Restock_variant-engine_quadbell_compact_grey-orange
      primaryColor = #666666
      secondaryColor = #f69449
      GAMEOBJECTS
      {
        B_Poodle_25 = false
        B_Poodle_Compact = true
        B_Poodle_Common = true
        Poodle_LowerCyls = false
        Poodle_LowerCylsCompact = true
        ShroudOrange = true
        ShroudWhite = false
        ShroudOrangeLong = false
        ShroudWhiteLong = false
        ShroudWhiteCompact = false
        ShroudOrangeCompact = false
        Shroud1 = true
        Shroud2 = false
        Shroud3 = false
        B_Poodle_Single = false
        B_Poodle_SingleCommon =  false
        B_Poodle_SingleCompact =  false
      }
      NODES
      {
        node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2
        node_stack_bottom = 0.0, -1.5, 0.0, 0.0, -1.0, 0.0, 2
      }
    }
  }
}



@PART[kiwi_liquidEngine2-2_v2]:NEEDS[ReStock]:FOR[zKiwiAerospacce]
{
  !EFFECTS {}
}

@PART[kiwi_liquidEngine2-2_v2]:NEEDS[zRealPlume,ReStock,SmokeScreen]:FOR[zKiwiAerospacce]
{
		@MODULE[ModuleEngines*]
		{
				@name = ModuleEnginesFX
				%powerEffectName = Kerolox_Upper2
				!runningEffectName = DELETE
		}

		PLUME
		{
				name = Kerolox_Upper2
				transformName = fxTransformPlume
				localRotation = 90,0,0
				localPosition = 0,0,0
				emissionMult = 0.8
				alphaMult = 0.8
				energy = 1
				speed = 1

				flarePosition = 0,0.4,0
				flareScale = 0.125

				plumePosition = 0,-0.9,0
				plumeScale = 1.4
		}
}
@PART[kiwi_liquidEngine2-2_v2]:AFTER[zzRealPlume]:NEEDS[ReStock]
{
  @EFFECTS
  {
    @Kerolox_Upper2
		{
			@MODEL_MULTI_SHURIKEN_PERSIST[*],*
			{
				%offsetDirection = 0,1,0
			}
		}
  }
}



@PART[liquidEngine2-2_v2]:AFTER[ReStock]
{
  !EFFECTS {}
}
@PART[liquidEngine2-2_v2]:NEEDS[zRealPlume,SmokeScreen,ReStock]:FOR[zKiwiAerospacce] //Poodle
{
		@MODULE[ModuleEngines*]
		{
			@name = ModuleEnginesFX
			%powerEffectName = Kerolox_LowerFlame
			!runningEffectName = DELETE
		}
		PLUME
		{
			name = Kerolox_LowerFlame
			transformName = fxTransformPlume
			localRotation = 90,0,0
			localPosition = 0,0,0
			emissionMult = 1
			speed = 1
			energy = 1

			plumePosition = 0,0.0,0
			plumeScale = 0.75

			flamePosition = 0,0.3,0
			flameScale = 0.5

			flarePosition = 0,0.2,0
			flareScale = 0.05
		}
}
//Custom adjustments to account for differing plume behaviour as ReStock FX transforms use Y+ axis.
@PART[liquidEngine2-2_v2]:AFTER[zzRealPlume]:NEEDS[ReStock]
{
  @EFFECTS
  {
    @Kerolox_LowerFlame
		{
			@MODEL_MULTI_SHURIKEN_PERSIST[*],*
			{
				offsetDirection = 0,1,0
			}
		}
  }
}

 

 

Edited by hemeac
Added attribution to the config example
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...