diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Extensions/Office/Associations/Presentation/HyperCardDataFormat.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Extensions/Office/Associations/Presentation/HyperCardDataFormat.uexml
new file mode 100644
index 00000000..3276f8d4
--- /dev/null
+++ b/Content/UniversalEditor.Content.PlatformIndependent/Extensions/Office/Associations/Presentation/HyperCardDataFormat.uexml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ *.wild
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content/UniversalEditor.Content.PlatformIndependent/UniversalEditor.Content.PlatformIndependent.csproj b/Content/UniversalEditor.Content.PlatformIndependent/UniversalEditor.Content.PlatformIndependent.csproj
index 8315fae1..9d5d248f 100644
--- a/Content/UniversalEditor.Content.PlatformIndependent/UniversalEditor.Content.PlatformIndependent.csproj
+++ b/Content/UniversalEditor.Content.PlatformIndependent/UniversalEditor.Content.PlatformIndependent.csproj
@@ -743,6 +743,7 @@
+
@@ -808,6 +809,9 @@
+
+
+
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardDataFormat.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardDataFormat.cs
new file mode 100644
index 00000000..411c3de5
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardDataFormat.cs
@@ -0,0 +1,72 @@
+//
+// HyperCardDataFormat.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+using System.Collections.Generic;
+using UniversalEditor.Accessors;
+using UniversalEditor.ObjectModels.Chunked;
+using UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard.Internal.STAK;
+using UniversalEditor.Plugins.Office.ObjectModels.Presentation;
+
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard
+{
+ public class HyperCardDataFormat : Internal.HyperCardChunkedDataFormat
+ {
+ private static DataFormatReference _dfr = null;
+ protected override DataFormatReference MakeReferenceInternal()
+ {
+ if (_dfr == null)
+ {
+ _dfr = new DataFormatReference(GetType());
+ _dfr.Capabilities.Add(typeof(PresentationObjectModel), DataFormatCapabilities.All);
+ }
+ return _dfr;
+ }
+ protected override void BeforeLoadInternal(Stack objectModels)
+ {
+ base.BeforeLoadInternal(objectModels);
+ objectModels.Push(new ChunkedObjectModel());
+ }
+ protected override void AfterLoadInternal(Stack objectModels)
+ {
+ base.AfterLoadInternal(objectModels);
+
+ ChunkedObjectModel chunked = (objectModels.Pop() as ChunkedObjectModel);
+ PresentationObjectModel pres = (objectModels.Pop() as PresentationObjectModel);
+
+ RIFFDataChunk chunk_stak = (chunked.Chunks["STAK"] as RIFFDataChunk);
+ STAKDataFormat stak_df = new STAKDataFormat();
+ STAKObjectModel stak_om = new STAKObjectModel();
+
+ Document.Load(stak_om, stak_df, new MemoryAccessor(chunk_stak.Data));
+
+
+ }
+ protected override void BeforeSaveInternal(Stack objectModels)
+ {
+ base.BeforeSaveInternal(objectModels);
+
+ PresentationObjectModel pres = (objectModels.Pop() as PresentationObjectModel);
+ ChunkedObjectModel chunked = new ChunkedObjectModel();
+
+ objectModels.Push(chunked);
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardScript.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardScript.cs
new file mode 100644
index 00000000..d872abdb
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardScript.cs
@@ -0,0 +1,38 @@
+//
+// HyperCardScript.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard
+{
+ public class HyperCardScript
+ {
+ public static HyperCardScript Parse(string text)
+ {
+ return new HyperCardScript(text);
+ }
+
+ public string Text { get; private set; } = null;
+
+ private HyperCardScript(string text)
+ {
+ Text = text;
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardUserLevel.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardUserLevel.cs
new file mode 100644
index 00000000..a119b504
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/HyperCardUserLevel.cs
@@ -0,0 +1,35 @@
+//
+// HyperCardUserLevel.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard
+{
+ ///
+ /// Indicates the user level setting under which to run this stack.
+ ///
+ public enum HyperCardUserLevel : ushort
+ {
+ Browsing = 1,
+ Typing = 2,
+ Painting = 3,
+ Authoring = 4,
+ Scripting = 5
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/HyperCardChunkedDataFormat.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/HyperCardChunkedDataFormat.cs
new file mode 100644
index 00000000..e1149e6f
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/HyperCardChunkedDataFormat.cs
@@ -0,0 +1,64 @@
+//
+// HyperCardChunkedDataFormat.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+using UniversalEditor.IO;
+using UniversalEditor.ObjectModels.Chunked;
+
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard.Internal
+{
+ public class HyperCardChunkedDataFormat : DataFormat
+ {
+ private static DataFormatReference _dfr = null;
+ protected override DataFormatReference MakeReferenceInternal()
+ {
+ if (_dfr == null)
+ {
+ _dfr = base.MakeReferenceInternal();
+ _dfr.Capabilities.Add(typeof(ChunkedObjectModel), DataFormatCapabilities.All);
+ }
+ return _dfr;
+ }
+
+ protected override void LoadInternal(ref ObjectModel objectModel)
+ {
+ ChunkedObjectModel chunked = (objectModel as ChunkedObjectModel);
+
+ Reader reader = Accessor.Reader;
+ reader.Endianness = Endianness.BigEndian;
+
+ while (!reader.EndOfStream)
+ {
+ uint chunkSize = reader.ReadUInt32();
+ string chunkName = reader.ReadFixedLengthString(4);
+
+ RIFFDataChunk chunk = new RIFFDataChunk();
+ chunk.ID = chunkName;
+ chunk.Data = reader.ReadBytes(chunkSize - 8);
+ chunked.Chunks.Add(chunk);
+ }
+ }
+
+ protected override void SaveInternal(ObjectModel objectModel)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKDataFormat.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKDataFormat.cs
new file mode 100644
index 00000000..217e9672
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKDataFormat.cs
@@ -0,0 +1,104 @@
+//
+// STAKDataFormat.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+using UniversalEditor.IO;
+
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard.Internal.STAK
+{
+ public class STAKDataFormat : DataFormat
+ {
+ protected override void LoadInternal(ref ObjectModel objectModel)
+ {
+ STAKObjectModel stak = (objectModel as STAKObjectModel);
+
+ Reader reader = Accessor.Reader;
+ reader.Endianness = Endianness.BigEndian;
+
+ int blockId = reader.ReadInt32();
+ byte[] unknown1 = reader.ReadBytes(32);
+
+ stak.CardCount = reader.ReadUInt32();
+ uint cardIDOne = reader.ReadUInt32(); // starting card?
+ uint listBlockID = reader.ReadUInt32();
+
+ byte[] unknown2 = reader.ReadBytes(16);
+
+ stak.UserLevel = (HyperCardUserLevel)reader.ReadUInt16();
+ ushort unknown3 = reader.ReadUInt16();
+ ushort flags = reader.ReadUInt16(); // Bit 10 is cantPeek, 11 is cantAbort, 13 is privateAccess, 14 is cantDelete, 15 is cantModify
+
+ byte[] unknown4 = reader.ReadBytes(18);
+
+ // Three 4-byte NumVersion entries containing the HyperCard version numbers that created, last edited or compacted
+ // this stack. (A/N: I know the "documentation" says "three 4-byte", but it also says "16 bytes", so idk...)
+ uint[] numVersions = reader.ReadUInt32Array(4);
+
+ byte[] unknown5 = reader.ReadBytes(328); // ???
+ stak.Height = reader.ReadUInt16(); // the height, in pixels, of cards in this stack
+ stak.Width = reader.ReadUInt16(); // the width, in pixels, of cards in this stack
+
+ byte[] unknown6 = reader.ReadBytes(260);
+
+ uint patternCount = 40;
+ for (uint i = 0; i < patternCount; i++)
+ {
+ byte[] patternData = reader.ReadBytes(8); // raw data for an 8x8 bitmap, with one byte representing one row
+ }
+
+ byte[] unknown7 = reader.ReadBytes(512);
+
+ stak.Script = HyperCardScript.Parse(reader.ReadNullTerminatedString());
+ }
+
+ protected override void SaveInternal(ObjectModel objectModel)
+ {
+ STAKObjectModel stak = (objectModel as STAKObjectModel);
+
+ Writer writer = Accessor.Writer;
+ writer.Endianness = Endianness.BigEndian;
+
+ writer.WriteInt32(-1); // block id
+ writer.WriteBytes(new byte[32]); // unknown1
+
+ writer.WriteUInt32(stak.CardCount);
+ writer.WriteUInt32(0); // cardIDOne - starting card?
+ writer.WriteUInt32(0); // listBlockID
+
+ writer.WriteBytes(new byte[16]);
+
+ writer.WriteUInt16((ushort)stak.UserLevel);
+
+ writer.WriteUInt16(0); // unknown3
+ ushort flags = 0;
+ writer.WriteUInt16(flags); // Bit 10 is cantPeek, 11 is cantAbort, 13 is privateAccess, 14 is cantDelete, 15 is cantModify
+
+ writer.WriteBytes(new byte[18]); // unknown4
+ writer.WriteUInt32Array(new uint[4]); //versions
+ writer.WriteBytes(new byte[328]); // unknown5
+ writer.WriteUInt16(stak.Height);
+ writer.WriteUInt16(stak.Width);
+ writer.WriteBytes(new byte[260]); // unknown6
+ writer.WriteBytes(new byte[40 * 8]); // pattern data
+ writer.WriteBytes(new byte[512]);
+ writer.WriteNullTerminatedString(stak.Script.Text);
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKObjectModel.cs b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKObjectModel.cs
new file mode 100644
index 00000000..da31874b
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/DataFormats/Presentation/HyperCard/Internal/STAK/STAKObjectModel.cs
@@ -0,0 +1,61 @@
+//
+// STAKObjectModel.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+namespace UniversalEditor.Plugins.Office.DataFormats.Presentation.HyperCard.Internal.STAK
+{
+ public class STAKObjectModel : ObjectModel
+ {
+ ///
+ /// Gets or sets the script associated with this stack.
+ ///
+ /// The script associated with this stack.
+ public HyperCardScript Script { get; set; } = null;
+
+ ///
+ /// Gets or sets the width, in pixels, of cards in this stack.
+ ///
+ /// The width, in pixels, of cards in this stack.
+ public ushort Width { get; set; } = 320;
+ ///
+ /// Gets or sets the height, in pixels, of cards in this stack.
+ ///
+ /// The height, in pixels, of cards in this stack.
+ public ushort Height { get; set; } = 240;
+
+ ///
+ /// Gets or sets the number of cards in this stack.
+ ///
+ /// The number of cards in this stack.
+ public uint CardCount { get; set; } = 0;
+ ///
+ /// Gets or sets the user level setting under which to run this stack.
+ ///
+ /// The user level setting under which to run this stack.
+ public HyperCardUserLevel UserLevel { get; set; } = HyperCardUserLevel.Scripting;
+
+ public override void Clear()
+ {
+ }
+ public override void CopyTo(ObjectModel where)
+ {
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/PresentationObjectModel.cs b/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/PresentationObjectModel.cs
new file mode 100644
index 00000000..4ebdba2d
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/PresentationObjectModel.cs
@@ -0,0 +1,56 @@
+//
+// PresentationObjectModel.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+using System;
+
+namespace UniversalEditor.Plugins.Office.ObjectModels.Presentation
+{
+ public class PresentationObjectModel : ObjectModel
+ {
+ private static ObjectModelReference _omr = null;
+ protected override ObjectModelReference MakeReferenceInternal()
+ {
+ if (_omr == null)
+ {
+ _omr = base.MakeReferenceInternal();
+ _omr.Title = "Presentation";
+ _omr.Path = new string[] { "General", "Office", "Presentation" };
+ }
+ return _omr;
+ }
+
+ public Slide.SlideCollection Slides { get; } = new Slide.SlideCollection();
+
+ public override void Clear()
+ {
+ Slides.Clear();
+ }
+
+ public override void CopyTo(ObjectModel where)
+ {
+ PresentationObjectModel clone = (where as PresentationObjectModel);
+ for (int i = 0; i < Slides.Count; i++)
+ {
+ clone.Slides.Add(Slides[i].Clone() as Slide);
+ }
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/Slide.cs b/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/Slide.cs
new file mode 100644
index 00000000..a6efe728
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/ObjectModels/Presentation/Slide.cs
@@ -0,0 +1,38 @@
+//
+// Slide.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System;
+namespace UniversalEditor.Plugins.Office.ObjectModels.Presentation
+{
+ public class Slide : ICloneable
+ {
+ public class SlideCollection
+ : System.Collections.ObjectModel.Collection
+ {
+
+ }
+
+ public object Clone()
+ {
+ Slide clone = new Slide();
+ return clone;
+ }
+ }
+}
diff --git a/Plugins/UniversalEditor.Plugins.Office/Properties/AssemblyInfo.cs b/Plugins/UniversalEditor.Plugins.Office/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..e6bae384
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/Properties/AssemblyInfo.cs
@@ -0,0 +1,46 @@
+//
+// AssemblyInfo.cs
+//
+// Author:
+// Michael Becker
+//
+// Copyright (c) 2020 Mike Becker's Software
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("UniversalEditor.Plugins.Office")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Mike Becker's Software")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("Mike Becker's Software")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Plugins/UniversalEditor.Plugins.Office/UniversalEditor.Plugins.Office.csproj b/Plugins/UniversalEditor.Plugins.Office/UniversalEditor.Plugins.Office.csproj
new file mode 100644
index 00000000..02006e35
--- /dev/null
+++ b/Plugins/UniversalEditor.Plugins.Office/UniversalEditor.Plugins.Office.csproj
@@ -0,0 +1,64 @@
+
+
+
+ Debug
+ AnyCPU
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47}
+ Library
+ UniversalEditor.Plugins.Office
+ UniversalEditor.Plugins.Office
+ v4.7
+ 4.0.2019.12
+
+
+ true
+ full
+ false
+ ..\..\Output\Debug\Plugins
+ DEBUG;
+ prompt
+ 4
+ false
+
+
+ true
+ ..\..\Output\Release\Plugins
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {2D4737E6-6D95-408A-90DB-8DFF38147E85}
+ UniversalEditor.Core
+
+
+ {30467E5C-05BC-4856-AADC-13906EF4CADD}
+ UniversalEditor.Essential
+
+
+
+
\ No newline at end of file
diff --git a/UniversalEditor.sln b/UniversalEditor.sln
index d8f54c93..a256a290 100644
--- a/UniversalEditor.sln
+++ b/UniversalEditor.sln
@@ -173,6 +173,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Des
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.NewWorldComputing.UserInterface", "Plugins.UserInterface\UniversalEditor.Plugins.NewWorldComputing.UserInterface\UniversalEditor.Plugins.NewWorldComputing.UserInterface.csproj", "{03B0D6C8-1C3C-4972-B102-3350FB628C5D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Office", "Plugins\UniversalEditor.Plugins.Office\UniversalEditor.Plugins.Office.csproj", "{5D62192C-EB3E-4E73-A440-C53579B6EB47}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Office.UserInterface", "Plugins.UserInterface\UniversalEditor.Plugins.Office.UserInterface\UniversalEditor.Plugins.Office.UserInterface.csproj", "{317CDFBC-9B41-4157-B2C0-D37E2BCEB42B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -501,6 +505,14 @@ Global
{03B0D6C8-1C3C-4972-B102-3350FB628C5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03B0D6C8-1C3C-4972-B102-3350FB628C5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{03B0D6C8-1C3C-4972-B102-3350FB628C5D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47}.Release|Any CPU.Build.0 = Release|Any CPU
+ {317CDFBC-9B41-4157-B2C0-D37E2BCEB42B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {317CDFBC-9B41-4157-B2C0-D37E2BCEB42B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {317CDFBC-9B41-4157-B2C0-D37E2BCEB42B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {317CDFBC-9B41-4157-B2C0-D37E2BCEB42B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{6F0AB1AF-E1A1-4D19-B19C-05BBB15C94B2} = {05D15661-E684-4EC9-8FBD-C014BA433CC5}
@@ -582,6 +594,8 @@ Global
{BCEB66A6-24E3-4877-B8D4-83FCF8EC748B} = {2ED32D16-6C06-4450-909A-40D32DA67FB4}
{08168BEA-E652-4493-8D89-5AB72B225841} = {7B535D74-5496-4802-B809-89ED88274A91}
{03B0D6C8-1C3C-4972-B102-3350FB628C5D} = {7B535D74-5496-4802-B809-89ED88274A91}
+ {5D62192C-EB3E-4E73-A440-C53579B6EB47} = {2ED32D16-6C06-4450-909A-40D32DA67FB4}
+ {317CDFBC-9B41-4157-B2C0-D37E2BCEB42B} = {7B535D74-5496-4802-B809-89ED88274A91}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
@@ -589,6 +603,7 @@ Global
$1.NoTabsAfterNonTabs = True
$1.scope = text/plain
$1.FileWidth = 80
+ $1.EolMarker = Unix
$0.DotNetNamingPolicy = $2
$2.DirectoryNamespaceAssociation = PrefixedHierarchical
$0.TextStylePolicy = $3