diff --git a/EduNetworkBuilder/EduNetworkBuilder.csproj b/EduNetworkBuilder/EduNetworkBuilder.csproj
index 930d21e..46a1b44 100644
--- a/EduNetworkBuilder/EduNetworkBuilder.csproj
+++ b/EduNetworkBuilder/EduNetworkBuilder.csproj
@@ -25,7 +25,7 @@
http://tyounglightsys.ddns.info/EduNetworkBuilder/v1/
true
publish.htm
- 25
+ 26
1.0.0.%2a
false
true
@@ -54,10 +54,10 @@
Resources\NBIco.ico
- A4F0B3ABDDD27B9830477C7B93C90C41A5706505
+ FC016CC0B0D70B0A6ABDABD9CDB267055A8FCCA3
- EduNetworkBuilder_TemporaryKey.pfx
+ EduNetworkBuilder_1_TemporaryKey.pfx
true
@@ -193,6 +193,7 @@
RTFWindow.cs
+
SettingsSingleFileGenerator
diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs
index 8a2736b..3b0a19a 100644
--- a/EduNetworkBuilder/NB.cs
+++ b/EduNetworkBuilder/NB.cs
@@ -304,6 +304,13 @@ namespace EduNetworkBuilder
if (myWin.GameRandomGen == null) return null;
return myWin.myNetwork;
}
+ public static void MarkToUpdate()
+ {
+ BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"];
+ if (myWin == null) return;
+ myWin.NeedsUpdate = true;
+ }
+
public static int nextPacketID()
{
BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"];
@@ -500,6 +507,13 @@ namespace EduNetworkBuilder
myWin.SetProgress(HowFar, total);
}
+ public static void UpdateMessages()
+ {
+ BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"];
+ if (myWin == null) return;
+ myWin.UpdateMessages();
+ }
+
public static int GetUniqueIdentifier()
{
Network myNet = GetNetwork();
diff --git a/EduNetworkBuilder/NetTest.cs b/EduNetworkBuilder/NetTest.cs
index 01006e7..2bcf992 100644
--- a/EduNetworkBuilder/NetTest.cs
+++ b/EduNetworkBuilder/NetTest.cs
@@ -299,7 +299,19 @@ namespace EduNetworkBuilder
if (ctl == null) return false;
ctl.BackColor = WrongColor;
}
- return false;
+ return true;
+ }
+ if (TheTest == NetTestType.HelpRequest && dHost == "?Button" && ChangeColor)
+ {
+ BuilderWindow myWin = NB.GetBuilderWin();
+ if (myWin != null)
+ {
+ Control ctl = myWin.GetControlNamed("btnHelp");
+ if (ctl == null) return false;
+ if(ctl.BackColor != WrongColor)
+ ctl.BackColor = WrongColor;
+ }
+ return true;
}
Network theNet = NB.GetNetwork();
NetworkDevice Source = theNet.GetDeviceFromName(sHost);
@@ -319,6 +331,7 @@ namespace EduNetworkBuilder
//We just solved it for the first time
TaskWasDone = true;
NB.PlaySound(NBSoundType.success);
+ NB.MarkToUpdate();
}
return false; //No need to color anything
}
@@ -332,6 +345,7 @@ namespace EduNetworkBuilder
|| TheTest == NetTestType.SuccessfullyPingsAgain)
PacketNumber = PacketID; //Track the packetID of the first packet to complete the task
NB.PlaySound(NBSoundType.success);
+ NB.MarkToUpdate();
}
TaskWasDone = true;
}
diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs
index d9e1542..91bafac 100644
--- a/EduNetworkBuilder/Network.cs
+++ b/EduNetworkBuilder/Network.cs
@@ -28,6 +28,7 @@ namespace EduNetworkBuilder
List NetComponents = new List();
//should have background image
Image TheNetImage = new Bitmap(1024, 1024);
+ Image TheNetImageBackground = new Bitmap(1024,1024);
public int itemsize = 100; //The size of network components
PictureBox myPBox=null;
private int UniqueIdentifier = 100; //This gets used for all sorts of things. is auto-incremented every time someone asks for one
@@ -46,6 +47,9 @@ namespace EduNetworkBuilder
private bool AlreadyChosenTimeout = false;
private int DefaultTimeout = 10;
private int NumberOfSecondsForTimeout = 10;
+ private List PacketRectangles = new List();
+
+ private bool previously_had_packets = false; //used on "tick" to determine if we are starting from scratch
public Network(string Name)
{
@@ -291,6 +295,10 @@ namespace EduNetworkBuilder
public void RegisterDisplayArea(PictureBox What)
{
myPBox = What;
+ myPBox.BackgroundImage = TheNetImageBackground;
+ myPBox.BackgroundImageLayout = ImageLayout.Stretch;
+ Print();
+ myPBox.Invalidate();
}
public Point clickedPos(Point pixelClickedOn)
@@ -502,7 +510,9 @@ namespace EduNetworkBuilder
foreach (NetTest nt in NetTests)
{
if (nt.ColorItemsIfNeeded(HintsToDisplay != NetTestVerbosity.none)) //only change the color if we are not "none"
+ {
PuzzleCount++;
+ }
}
if (report_as_done && PuzzleCount == 0 && PreviouslyUnsolved)
{
@@ -511,16 +521,19 @@ namespace EduNetworkBuilder
}
}
- public void Print(PaintEventArgs e)
+ public void UpdateImage()
{
- //we have the whole thing to print, and the display image already done
TestForCompletion(false);
- if(isDirty() || _isDirty)
+ //we have the whole thing to print, and the display image already done
+ if (isDirty() || _isDirty)
{
- TheNetImage= new Bitmap(TheNetImage.Width, TheNetImage.Height);
+ if(TheNetImage == null)
+ TheNetImage = new Bitmap(TheNetImage.Width, TheNetImage.Height);
+ SolidBrush theBrush = new SolidBrush(SystemColors.Control);
+ Graphics.FromImage(TheNetImage).FillRectangle(theBrush, new Rectangle(0,0, TheNetImage.Width, TheNetImage.Height));
//re-generate the image
//Do all the links first
- foreach(NetworkComponent NC in NetComponents)
+ foreach (NetworkComponent NC in NetComponents)
{
if (NC.GetType().ToString() == "EduNetworkBuilder.NetworkLink")
NC.Print(TheNetImage, false);
@@ -531,21 +544,43 @@ namespace EduNetworkBuilder
if (NC.GetType().ToString() == "EduNetworkBuilder.NetworkDevice")
NC.Print(TheNetImage, ShowLabels);
}
+ //Write the whole thing to the background image.
+ Graphics.FromImage(TheNetImageBackground).DrawImage(TheNetImage, 0, 0);
}
- if (myPackets.Count > 0)
+ myPBox.Invalidate();//redraw it
+ _isDirty = false;
+
+ }
+
+ public void EraseOldPackets()
+ {
+ //Make sure we draw a fresh image.
+ Graphics.FromImage(TheNetImageBackground).DrawImage(TheNetImage, 0, 0);
+ foreach(Rectangle rec in PacketRectangles)
{
- Image tempNetImage = new Bitmap(TheNetImage);
- foreach(Packet pkt in myPackets)
- {
- pkt.Print(tempNetImage); //Print all the packets over the network image
- }
- e.Graphics.DrawImage(tempNetImage, 0, 0, myPBox.Width, myPBox.Height);
- tempNetImage.Dispose();
+ Invalidate(rec);
}
- else
+ PacketRectangles.Clear();
+ }
+
+ public void DrawPackets()
+ {
+ foreach (Packet pkt in myPackets)
{
- e.Graphics.DrawImage(TheNetImage, 0, 0, myPBox.Width, myPBox.Height);
+ pkt.Print(TheNetImageBackground); //Print all the packets over the network image
+ Invalidate(pkt.PacketRectangle());
+ PacketRectangles.Add(pkt.PacketRectangle());
}
+ //myPBox.Refresh();
+ }
+
+ public void Print()
+ {
+ //we have the whole thing to print, and the display image already done
+ InvalidateEverything();
+ UpdateImage();
+ EraseOldPackets();
+ DrawPackets();
_isDirty = false;
}
@@ -555,6 +590,28 @@ namespace EduNetworkBuilder
{
nc.IsDirty = true;
}
+ _isDirty = true;
+ UpdateImage();
+ }
+
+ public void Invalidate(Rectangle area)
+ {
+ //Figure out the area we are looking at
+ if (myPBox.BackgroundImageLayout == ImageLayout.Stretch)
+ {
+ double width_ratio = myPBox.ClientRectangle.Width / TheNetImage.Width;
+ double height_ratio = myPBox.ClientRectangle.Height / TheNetImage.Height;
+ int x, y, width, height;
+ x = (int)(area.X * width_ratio);
+ y = (int)(area.Y * height_ratio);
+ width = (int)(area.Width * width_ratio);
+ height = (int)(area.Height * height_ratio);
+
+ Rectangle newRec = new Rectangle(x, y, width, height);
+
+ //Now we invalidate the adjusted rectangle
+ myPBox.Invalidate(newRec);
+ }
}
public List arp(UInt32 IP)
@@ -757,7 +814,15 @@ namespace EduNetworkBuilder
OldVal = nt.TaskWasDone;
nt.SetDone();
if (nt.TaskWasDone != OldVal)
+ {
+ BuilderWindow myWin = NB.GetBuilderWin();
+ if (myWin == null) return true;
+ Control ctl = myWin.GetControlNamed("btnHelp");
+ if (ctl == null) return false;
+ ctl.BackColor = Control.DefaultBackColor;
+
return true;
+ }
}
}
@@ -885,43 +950,58 @@ namespace EduNetworkBuilder
public void ProcessPackets()
{
- AlreadyChosenTimeout = false; //we do this at the beginning of processing
- NumberOfSecondsForTimeout = DefaultTimeout;
- NetworkStartTime = DateTime.Now;
- while(myPackets.Count > 0)
+ //This functionality is now done in 'Tick'
+ return; //exit early. Rest is done in tick
+ }
+
+ public void Tick()
+ {
+ EraseOldPackets();
+ //if (myPackets.Count > 50)
+ //Console.WriteLine("Packets: " + myPackets.Count.ToString());
+ if (myPackets.Count > 0)
{
+ if (!previously_had_packets)
+ {
+ AlreadyChosenTimeout = false; //we do this at the beginning of processing
+ NumberOfSecondsForTimeout = DefaultTimeout;
+ NetworkStartTime = DateTime.Now;
+ }
ProcessPacketsOnce();
- if (!ProcessingShouldContinue())
+ if(!ProcessingShouldContinue())
{
-
- //we need to break out for some reason
- myPBox.Refresh();
- break;
- }
- else
- {
- myPBox.Refresh();
- NB.Delay(5);
+ //We it has all been taken care of
}
+ DrawPackets();
+ //myPBox.Refresh();
+ previously_had_packets = true;
}
- //remove any IP connection tracking info
- NetworkDevice ND;
- foreach(NetworkComponent nc in NetComponents)
+ else
{
- if(NB.GetComponentType(nc) == GeneralComponentType.device)
+ if(previously_had_packets)
{
- ND = (NetworkDevice)nc;
- ND.ClearIPConnectionInfo();
+ //remove any IP connection tracking info
+ NetworkDevice ND;
+ foreach (NetworkComponent nc in NetComponents)
+ {
+ if (NB.GetComponentType(nc) == GeneralComponentType.device)
+ {
+ ND = (NetworkDevice)nc;
+ ND.ClearIPConnectionInfo();
+ }
+ }
+ DebugPausePoint WhatIsSet = NB.GetDebugPauseSetting();
+ if (WhatIsSet != 0)
+ {
+ Console.WriteLine(NB.Translate("N_ProssPackDone"));
+ }
+ TestForCompletion(true); //Now, report on the progress if we solved something in the middle of the packets going out
+ AlreadyChosenTimeout = false;
+ NB.SetProgress(0, NumberOfSecondsForTimeout);
+ NB.UpdateMessages();
}
+ previously_had_packets = false;
}
- DebugPausePoint WhatIsSet = NB.GetDebugPauseSetting();
- if(WhatIsSet != 0)
- {
- Console.WriteLine(NB.Translate("N_ProssPackDone"));
- }
- TestForCompletion(true); //Now, report on the progress if we solved something in the middle of the packets going out
- AlreadyChosenTimeout = false;
- NB.SetProgress(0, NumberOfSecondsForTimeout);
}
public void AddMessage(PacketMessage toAdd)
diff --git a/EduNetworkBuilder/NetworkBuilder.Designer.cs b/EduNetworkBuilder/NetworkBuilder.Designer.cs
index 2b63825..7c9fa83 100644
--- a/EduNetworkBuilder/NetworkBuilder.Designer.cs
+++ b/EduNetworkBuilder/NetworkBuilder.Designer.cs
@@ -432,7 +432,6 @@
this.pbNetworkView.Size = new System.Drawing.Size(366, 300);
this.pbNetworkView.TabIndex = 1;
this.pbNetworkView.TabStop = false;
- this.pbNetworkView.Paint += new System.Windows.Forms.PaintEventHandler(this.pbNetworkView_Paint);
this.pbNetworkView.DoubleClick += new System.EventHandler(this.pbNetworkView_DoubleClick);
this.pbNetworkView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pbNetworkView_MouseDown);
this.pbNetworkView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pbNetworkView_MouseMove);
diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs
index 807d77f..080926a 100644
--- a/EduNetworkBuilder/NetworkBuilder.cs
+++ b/EduNetworkBuilder/NetworkBuilder.cs
@@ -37,6 +37,8 @@ namespace EduNetworkBuilder
private CultureInfo LanguageCulture = null;
public string ChosenLanguage = "en"; //The language to try to load
private List HelpTopicButtons = new List();
+ private System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
+ public bool NeedsUpdate = false; //Do we do an update next tick
public BuilderWindow()
{
@@ -72,9 +74,23 @@ namespace EduNetworkBuilder
this.KeyPreview = true;
this.KeyUp += GenericKeyDown;
+ myTimer.Interval = 10;
+ myTimer.Tick += Tick;
+ myTimer.Start();
+
LoadPuzzleInfo();
}
+ private void Tick(object sender, EventArgs e)
+ {
+ if (NeedsUpdate)
+ {
+ UpdateVisuals();
+ NeedsUpdate = false;
+ }
+ myNetwork.Tick();
+ }
+
private void LanguagifyComponents()
{
msMainMenuStrip.Text = NB.Translate("NB_msMainMenuStrip");
@@ -249,7 +265,7 @@ namespace EduNetworkBuilder
bool didsomething = myNetwork.NoteActionDone(NetTestType.HelpRequest, MouseHoverOver.hostname, myNetwork.HintsToDisplay.ToString());
if (didsomething)
{
- pbNetworkView.Invalidate();
+ UpdateVisuals();
myNetwork.TestForCompletion(true);
}
}
@@ -319,7 +335,7 @@ namespace EduNetworkBuilder
}
}
- private void UpdateMessages()
+ public void UpdateMessages()
{
//redo this later
lbMessages.Items.Clear();
@@ -364,6 +380,7 @@ namespace EduNetworkBuilder
{
UpdateMenu();
UpdateMessages();
+ UpdateVisuals();
processing = true;
Text = NB.Translate("NB_UpdteFrmName");
if (myNetwork.NetTitle.GetText() != "")
@@ -648,7 +665,7 @@ namespace EduNetworkBuilder
}
myNetwork.TestForCompletion(true);
pbNetworkView.Update();
- pbNetworkView.Invalidate();
+ UpdateVisuals();
}
@@ -658,7 +675,7 @@ namespace EduNetworkBuilder
myNetwork.ProcessPackets();
UpdateMessages();
pbNetworkView.Update();
- pbNetworkView.Invalidate();
+ UpdateVisuals();
myNetwork.TestForCompletion(true);
}
@@ -675,8 +692,7 @@ namespace EduNetworkBuilder
}
UpdateLinks();
myNetwork.TestForCompletion(true);
- pbNetworkView.Update();
- pbNetworkView.Invalidate();
+ UpdateVisuals();
}
private void pbNetworkView_Delete_Click(object sender, EventArgs e)
@@ -696,8 +712,7 @@ namespace EduNetworkBuilder
}
UpdateLinks();
myNetwork.TestForCompletion(true);
- pbNetworkView.Update();
- pbNetworkView.Invalidate();
+ UpdateVisuals();
}
private void pbNetworkView_Ping_Click(object sender, EventArgs e)
@@ -793,7 +808,7 @@ namespace EduNetworkBuilder
LinkEditor myEditor = new LinkEditor(ItemClickedOn, ReleasedOn);
myEditor.ShowDialog();
UpdateLinks();
- pbNetworkView.Invalidate(); //In case any changes have been made
+ UpdateVisuals(); //In case any changes have been made
}
else if (ItemClickedOn == null)
{
@@ -860,6 +875,7 @@ namespace EduNetworkBuilder
{
ItemClickedOn = (NetworkDevice)NC;
}
+ UpdateVisuals();
}
else //Drag the item
{
@@ -867,17 +883,17 @@ namespace EduNetworkBuilder
{
ItemClickedOn.ChangeLocation(CenteredLocation);
UpdateLinks();
- pbNetworkView.Invalidate();
+ UpdateVisuals();
}
}
}
LastClick = DateTime.Now;
}
- private void pbNetworkView_Paint(object sender, PaintEventArgs e)
+ private void UpdateVisuals()
{
-
- myNetwork.Print(e);
+ myNetwork.Print();
+ pbNetworkView.Invalidate();
}
private void pbNetworkView_MouseDown(object sender, MouseEventArgs e)
@@ -916,8 +932,8 @@ namespace EduNetworkBuilder
{
myWin.Close();
}
-
- pbNetworkView.Invalidate();
+
+ myNetwork.Print();
UpdateMessages();
btnReset();
myNetwork.HintsToDisplay = NetTestVerbosity.none;
@@ -1015,7 +1031,7 @@ namespace EduNetworkBuilder
private void BuilderWindow_ResizeEnd(object sender, EventArgs e)
{
- pbNetworkView.Invalidate();
+ UpdateVisuals();
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
@@ -1179,7 +1195,7 @@ namespace EduNetworkBuilder
OptionsWindow tWindow = new OptionsWindow(myNetwork);
tWindow.ShowDialog();
myNetwork.UpdateDeviceSizes();
- pbNetworkView.Invalidate();
+
UpdateForm();
}
@@ -1227,7 +1243,7 @@ namespace EduNetworkBuilder
bool didsomething = myNetwork.NoteActionDone(NetTestType.HelpRequest, "", "?Button");
if (didsomething)
{
- pbNetworkView.Invalidate();
+ UpdateForm();
myNetwork.TestForCompletion(true);
}
}
@@ -1247,28 +1263,28 @@ namespace EduNetworkBuilder
{
if (processing) return;
myNetwork.HintsToDisplay = NetTestVerbosity.none;
- pbNetworkView.Invalidate();
+ UpdateForm();
}
private void rbHelp2_CheckedChanged(object sender, EventArgs e)
{
if (processing) return;
- myNetwork.HintsToDisplay = NetTestVerbosity.basic;
- pbNetworkView.Invalidate();
+ myNetwork.HintsToDisplay = NetTestVerbosity.hints;
+ UpdateForm();
}
private void rbHelp3_CheckedChanged(object sender, EventArgs e)
{
if (processing) return;
- myNetwork.HintsToDisplay = NetTestVerbosity.hints;
- pbNetworkView.Invalidate();
+ myNetwork.HintsToDisplay = NetTestVerbosity.basic;
+ UpdateForm();
}
private void rbHelp4_CheckedChanged(object sender, EventArgs e)
{
if (processing) return;
myNetwork.HintsToDisplay = NetTestVerbosity.full;
- pbNetworkView.Invalidate();
+ UpdateForm();
}
diff --git a/EduNetworkBuilder/NetworkDevice.cs b/EduNetworkBuilder/NetworkDevice.cs
index 9cebb8c..feb6671 100644
--- a/EduNetworkBuilder/NetworkDevice.cs
+++ b/EduNetworkBuilder/NetworkDevice.cs
@@ -899,6 +899,8 @@ namespace EduNetworkBuilder
{
Brush brush = new SolidBrush(Color.FromArgb(128, BackgroundColor.R, BackgroundColor.G, BackgroundColor.B));
Graphics.FromImage(BaseImage).FillRectangle(brush, Location);
+ Network myNet = NB.GetNetwork();
+ myNet.Invalidate(Location);
}
Graphics.FromImage(BaseImage).DrawImage(MyImage, MyLocation.X, MyLocation.Y, Size, Size);
diff --git a/EduNetworkBuilder/Packet.cs b/EduNetworkBuilder/Packet.cs
index 5f7529f..768f09c 100644
--- a/EduNetworkBuilder/Packet.cs
+++ b/EduNetworkBuilder/Packet.cs
@@ -358,7 +358,7 @@ namespace EduNetworkBuilder
myDirection = nb_direction.to_dst;
else
myDirection = nb_direction.to_src;
- Console.WriteLine(NB.Translate("P_StartingOnLink") + string.Format(" SMAC: {0} DMAC: {1}",sourceMAC,destMAC));
+ //Console.WriteLine(NB.Translate("P_StartingOnLink") + string.Format(" SMAC: {0} DMAC: {1}",sourceMAC,destMAC));
AddMessage(DebugLevel.debug, " " + NB.Translate("P_StartingOnLink"));
}
diff --git a/EduNetworkBuilder/Resources/ReleaseNotes.rtf b/EduNetworkBuilder/Resources/ReleaseNotes.rtf
index 3e51bc3..f9ea794 100644
--- a/EduNetworkBuilder/Resources/ReleaseNotes.rtf
+++ b/EduNetworkBuilder/Resources/ReleaseNotes.rtf
@@ -1,381 +1,187 @@
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}
-{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
-{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
-{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
-{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
-{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f40\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f41\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\f43\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\f47\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f430\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f431\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
-{\f433\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f434\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f437\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f438\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
-{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
-{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
-{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
-{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
-{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
-{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}
-{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
-{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
-{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
-{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
-{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
-{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
-{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
-{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
-{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
-\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
-\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025
-\ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
-\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
-\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused
-Normal Table;}}{\*\rsidtbl \rsid553838\rsid16400754}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator tim.young@lightsys.org}
-{\creatim\yr2015\mo11\dy25\hr9\min57}{\revtim\yr2015\mo11\dy25\hr9\min58}{\version2}{\edmins1}{\nofpages8}{\nofwords1472}{\nofchars8394}{\nofcharsws9847}{\vern86}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
-\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
-\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
-\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot553838 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1
-\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
-\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
-{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
-\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.25
-\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Minor changes to help file
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed size of labels on IP-Address editor box
-\par \hich\af39\dbch\af31505\loch\f39 * Hide gateway label when we do not need it. (ip-address editor)
-\par \hich\af39\dbch\af31505\loch\f39 * rename "mixed network" puzzle to be "adding devices" (the puzzle was about adding devices)
-\par \hich\af39\dbch\af31505\loch\f39 * Changed layout of many messages
-\par \hich\af39\dbch\af31505\loch\f39 * Save the level we are working on. Allows us to finish level 5 before level 3 if we want to.
-\par \hich\af39\dbch\af31505\loch\f39 * Make network-loop puzzles sit next to each-other
-\par \hich\af39\dbch\af31505\loch\f39 * Make it so network-loop2 puzzle asks for second ping after first one finis\hich\af39\dbch\af31505\loch\f39 hes
-\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid553838 \hich\af39\dbch\af31505\loch\f39 * Lots of work towards the French translation}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid553838
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.24
-\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Add sound when ctrl-s is pressed so we know we saved.
-\par \hich\af39\dbch\af31505\loch\f39 * Add sound fail when save is canceled (will use it later if ctrl-s fails)
-\par \hich\af39\dbch\af31505\loch\f39 * Added some wireless puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Fix issue with WAP not forwarding packets correctly
-\par \hich\af39\dbch\af31505\loch\f39 * Clear out old st\hich\af39\dbch\af31505\loch\f39 atus message if we do something. So we do not say "saved" forever...
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed bad gateway on wireless router issue
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed wbridge misbehaving. (issue with gateway)
-\par \hich\af39\dbch\af31505\loch\f39 * Added wireless items to help and context help topics
-\par \hich\af39\dbch\af31505\loch\f39 * Thanks to Peter Wilson for so much\hich\af39\dbch\af31505\loch\f39 of the translation backbone.
-\par \hich\af39\dbch\af31505\loch\f39 * Lots of translation string changes. The French translation should be soon in coming.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.23 09/20/2015
-\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Fixed issues with broadcast packets
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed a network loop issue
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed issue with multiple interfaces and \hich\af39\dbch\af31505\loch\f39 being able to go out a different interface than we came in on
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed many small bugs that crept in when fixing other bugs. Now all puzzles seem to play correctly}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 Version 1.0.22 09/01/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added ssid and keys for wireless links
-\par \hich\af39\dbch\af31505\loch\f39 * Wireless will auto-dis\hich\af39\dbch\af31505\loch\f39 connect if link is too long
-\par \hich\af39\dbch\af31505\loch\f39 * Wireless will auto-connect if ssid and key match, if link is short enough
-\par \hich\af39\dbch\af31505\loch\f39 * Packets will drop on wireless links if distance is too great
-\par \hich\af39\dbch\af31505\loch\f39 * wport has no interface (cannot edit IP address)
-\par \hich\af39\dbch\af31505\loch\f39 * wireless router works properly - forwards broadcast packets
-\par \hich\af39\dbch\af31505\loch\f39 * wireless router handles dhcp requests properly (both responds to it but also passes it on)
-\par \hich\af39\dbch\af31505\loch\f39 * right-clicking light and microwave no longer has ping, arp, edit, and other context menus
-\par \hich\af39\dbch\af31505\loch\f39 * added n\hich\af39\dbch\af31505\loch\f39 et-test for DHCP server status (on/off)
-\par \hich\af39\dbch\af31505\loch\f39 * If multiple DHCP servers, client randomly chooses which to keep.
-\par \hich\af39\dbch\af31505\loch\f39 *Add Wireless Puzzle
-\par \hich\af39\dbch\af31505\loch\f39 *Fix many wireless device bugs\line }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.21 08/15/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0
-\f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added a microwave and fluorescent light. They corrupt data when pa\hich\af39\dbch\af31505\loch\f39 ckets run close to them.
-\par \hich\af39\dbch\af31505\loch\f39 * Added some packet corruption puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.20 08/12/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * wports do not display on \hich\af39\dbch\af31505\loch\f39 tooltips or when printing the device info
-\par \hich\af39\dbch\af31505\loch\f39 * Added ctrl-s to quick-save a network we are working on
-\par \hich\af39\dbch\af31505\loch\f39 * commented out wireless devices for now - doing a big demo and wireless is not yet complete
-\par \hich\af39\dbch\af31505\loch\f39 * added search box to help
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.19 08/08/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 *Updated c\hich\af39\dbch\af31505\loch\f39 ontext help for most puzzles that introduce new ideas.
-\par \hich\af39\dbch\af31505\loch\f39 * Sorted Help topics when adding them in net-tests.
-\par \hich\af39\dbch\af31505\loch\f39 * Added some images to the help to help clarify things.
-\par \hich\af39\dbch\af31505\loch\f39 * Start with the help windows being the same "height" as the network window.
-\par \hich\af39\dbch\af31505\loch\f39 * Open Help so i\hich\af39\dbch\af31505\loch\f39 t can be kept open while the puzzles progress.
-\par \hich\af39\dbch\af31505\loch\f39 * Deal with minimized state better (used to shrink window to smallest possible state)
-\par \hich\af39\dbch\af31505\loch\f39 * Remember size and location of main window between uses.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.18 08/08/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added Context Help for puzzles.
-\par \hich\af39\dbch\af31505\loch\f39 - E\hich\af39\dbch\af31505\loch\f39 ach puzzle can have context help
-\par \hich\af39\dbch\af31505\loch\f39 - There is a net-test to have us read help
-\par \hich\af39\dbch\af31505\loch\f39 * fixed minor problem with a "ding" sound when we load a puzzle that has something locked.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.17 08/01/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added more help
-\par \hich\af39\dbch\af31505\loch\f39 * Much progress made in preparing for a French translation
-\par \hich\af39\dbch\af31505\loch\f39 * allow for Puzzle's description to be in another language
-\par \hich\af39\dbch\af31505\loch\f39 * Added more to help
-\par \hich\af39\dbch\af31505\loch\f39 * Removed edit -> cut, paste, copy, undo. They never did anything. So why have them?
-\par \hich\af39\dbch\af31505\loch\f39 * Save box starts in the direc\hich\af39\dbch\af31505\loch\f39 tory of the file we opened (if we have one)
-\par \hich\af39\dbch\af31505\loch\f39 * Choose a language at startup if one has never been chosen, and have option to change language.
-\par \hich\af39\dbch\af31505\loch\f39 * Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addr\hich\af39\dbch\af31505\loch\f39 esses, and we want to build a VPN between them.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.16 07/18/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added ability to break links (bad network wire)
-\par \hich\af39\dbch\af31505\loch\f39 * "connection lights" on network cards / ports when we edit devices
-\par \hich\af39\dbch\af31505\loch\f39 * Test for "needs link to" does not succeed if the link in ques\hich\af39\dbch\af31505\loch\f39 tion is a broken link
-\par \hich\af39\dbch\af31505\loch\f39 * Added a puzzle to show you how to find broken links
-\par \hich\af39\dbch\af31505\loch\f39 * Used broken links in other puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed bug: switches could not use DHCP for many different reasons. Now it works for them.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.15 07/11/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added ping time prog\hich\af39\dbch\af31505\loch\f39 ress bar
-\par \hich\af39\dbch\af31505\loch\f39
-* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the ti
-\hich\af39\dbch\af31505\loch\f39 me needed and gives extra time.
-\par \hich\af39\dbch\af31505\loch\f39 * Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things.
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed minor issue with this change log. Had two 1.0.11 vers\hich\af39\dbch\af31505\loch\f39 ions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh)
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed the VPNify puzzle. Had a goof in it.
-\par \hich\af39\dbch\af31505\loch\f39 * Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.14 \hich\af39\dbch\af31505\loch\f39 07/10/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-
-\par \hich\af39\dbch\af31505\loch\f39 * When we finish a puzzle, allow us to auto-open the "next puzzle" box.
-\par \hich\af39\dbch\af31505\loch\f39 * Added lots more puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Added more help & documentation
-\par \hich\af39\dbch\af31505\loch\f39 * Made it so test for local IP also checked to make sure the subnet-masks matched
-\par \hich\af39\dbch\af31505\loch\f39 * Made it so the test for a matching route compared netmasks
-\par \hich\af39\dbch\af31505\loch\f39 * Added a printer object
-\par \hich\af39\dbch\af31505\loch\f39 * Added a copier object
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.13 06/21/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed issues with arp - arp could go through routers. Now works correctly
-\par \hich\af39\dbch\af31505\loch\f39 * Made it test for puzzle completion after\hich\af39\dbch\af31505\loch\f39 adding devices
-\par \hich\af39\dbch\af31505\loch\f39 * Made it test for completion after changing / deleting devices
-\par \hich\af39\dbch\af31505\loch\f39 * Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle
-\par \hich\af39\dbch\af31505\loch\f39 * Replaced the "Network Loop" puzzle with the correct one.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.12 06/20/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * A\hich\af39\dbch\af31505\loch\f39 dded VPN and TUN nic types
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed numerous small bugs
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed bug with early solution to failed ping test
-\par \hich\af39\dbch\af31505\loch\f39 * Added "ding" when a test is solved.
-\par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" network that has a firewall and vpns
-\par \hich\af39\dbch\af31505\loch\f39 * Added numerous firewall / vpn puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed a DNS\hich\af39\dbch\af31505\loch\f39 issue. It now more intelligently finds the right IP address when you ping it
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.11 06/14/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Added the ability to lock various important features to make puzzles better
-\par \hich\af39\dbch\af31505\loch\f39 * Able to add interfaces (multiple IPs on a Network Card)
-\par \hich\af39\dbch\af31505\loch\f39 * Right-click\hich\af39\dbch\af31505\loch\f39 context menu to add net-tests.
-\par \hich\af39\dbch\af31505\loch\f39 * Del key now deletes the last item we had clicked on
-\par \hich\af39\dbch\af31505\loch\f39 * Can add NICs (on some devices)
-\par \hich\af39\dbch\af31505\loch\f39 * Can delete NICs
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed minor bug with broadcast pinging solving ping test for individual computers
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.10 06/13/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Renamed puzzles to manage them easier
-\par \hich\af39\dbch\af31505\loch\f39 * Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it.
-\par \hich\af39\dbch\af31505\loch\f39 * Change to the help window so you can keep the window open while working with the puzzle.
-\par \hich\af39\dbch\af31505\loch\f39 * Change to the donatio\hich\af39\dbch\af31505\loch\f39 n link. Not that it will ever be used, but it makes me feel better having a few places for people to donate to if they wish.
-\par \hich\af39\dbch\af31505\loch\f39 * Minor change for how broadcast packets work, specifically dealing with duplicate IP addresses.
-\par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" device & WAN\hich\af39\dbch\af31505\loch\f39 port with masquerade
-\par \hich\af39\dbch\af31505\loch\f39 * Added a FailedPing test so we can ping things that must fail (show the firewall works)
-\par \hich\af39\dbch\af31505\loch\f39 * added more to the help
-\par \hich\af39\dbch\af31505\loch\f39 * added more puzzles
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.9 05/29/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Add a grid to the network map. It makes things easier to straighten\hich\af39\dbch\af31505\loch\f39 up
-\par \hich\af39\dbch\af31505\loch\f39 * Sorted and organized the puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Made a level for each puzzle.
-\par \hich\af39\dbch\af31505\loch\f39 * Tracked the puzzles which have been completed
-\par \hich\af39\dbch\af31505\loch\f39 * When we open the puzzle list, we now show the first level of puzzles that have an uncompleted puzzle.
-\par \hich\af39\dbch\af31505\loch\f39 * Added more "tests", viewing hel\hich\af39\dbch\af31505\loch\f39 p, pinging, arp, and dhcp.
-\par \hich\af39\dbch\af31505\loch\f39 * Reset buttons when we load a new network.
-\par \hich\af39\dbch\af31505\loch\f39 * Added a bunch more puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.8 05/25/\hich\af39\dbch\af31505\loch\f39 2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-
-\par \hich\af39\dbch\af31505\loch\f39 * Always Start with level0 puzzles for now
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed the icon when program running
-\par \hich\af39\dbch\af31505\loch\f39 * Added an infrastructure for Puzzles (needs work)
-\par \hich\af39\dbch\af31505\loch\f39 * Added a number of basic puzzles
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed DHCP Leases. Now it clears leases when you change the DHCP server range.
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Ver\hich\af39\dbch\af31505\loch\f39 sion 1.0.0.7 05/16/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-
-\par \hich\af39\dbch\af31505\loch\f39 * Added file association so we can double-click an enbx file
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed the icon so it looks right (removed left edge)
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.6 05/16/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Able to delete a route (right click route and delete it)
-\par \hich\af39\dbch\af31505\loch\f39 * Add map title as something we can load/save
-\par \hich\af39\dbch\af31505\loch\f39 * Add message as something we can load and save
-\par \hich\af39\dbch\af31505\loch\f39 * Changing size of items affects all items
-\par \hich\af39\dbch\af31505\loch\f39 * Allow entering a hostname in the IP address field (ping / gateway)
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.5 04/26/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed ping from swi\hich\af39\dbch\af31505\loch\f39 tch
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed error message when pinging IP that does not exist
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.4 04/26/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed broadcast ping
-\par \hich\af39\dbch\af31505\loch\f39 *Fixed dhcp request error
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.3 04/15/2015
-\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Added "file" -> "new" to erase and start a clean new network
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed pc2 to have gate\hich\af39\dbch\af31505\loch\f39 way on "solved"->"Two Networks"
-\par \hich\af39\dbch\af31505\loch\f39 * Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all
-\par \hich\af39\dbch\af31505\loch\f39 * Changed - major overhaul to tcp-stack.
-\par \hich\af39\dbch\af31505\loch\f39 * Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version\hich\af39\dbch\af31505\loch\f39 1.0.0.2 4/19/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-
-\par \hich\af39\dbch\af31505\loch\f39 * Added IP-Phone
-\par \hich\af39\dbch\af31505\loch\f39 * Packets terminate at the far end - this makes it easier to see packets go both directions
-\par \hich\af39\dbch\af31505\loch\f39 * Packets are randomized in transit - Allows packets to arrive at slightly different times
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.1 4/11/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 * DHCP \hich\af39\dbch\af31505\loch\f39 selection on nics is not functioning correctly
-\par \hich\af39\dbch\af31505\loch\f39 * Various small bug-fixes
-\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.0 4/10/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par \hich\af39\dbch\af31505\loch\f39 This is the initial alpha build
-\par \hich\af39\dbch\af31505\loch\f39 * basic pinging
-\par \hich\af39\dbch\af31505\loch\f39 * basic arp
-\par \hich\af39\dbch\af31505\loch\f39 * Routers
-\par \hich\af39\dbch\af31505\loch\f39 * Switches/Hubs
-\par \hich\af39\dbch\af31505\loch\f39 * PCs/Laptops
-\par \hich\af39\dbch\af31505\loch\f39 * Network Links (ethernet)
-\par \hich\af39\dbch\af31505\loch\f39 * Basic DHCP}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754
-\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
-9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
-5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
-b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
-0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
-a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
-c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
-0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
-a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
-6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
-4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
-4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f
-7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6
-87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f
-d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a
-ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188
-0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf
-d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b
-5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4
-d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf
-66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04
-1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4
-e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee
-0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697
-4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2
-50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14
-f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6
-b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511
-e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949
-40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9
-55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b
-1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54
-0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138
-3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21
-a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b
-db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5
-8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f
-570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df
-ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db
-c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72
-656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08
-2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0
-8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa
-4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f
-6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72
-656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865
-6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200
-007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000
-00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000}
-{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
-617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
-6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
-656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
-{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
-\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
-\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
-\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2;
-\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text;
-\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;
-\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;
-\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;
-\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;
-\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
-\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;
-\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
-\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
-\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;
-\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
-\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
-\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;
-\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
-\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;
-\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;
-\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
-\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
-\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
-\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
-\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
-\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
-\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
-\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
-\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
-\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
-\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
-\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
-\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
-\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
-\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
-\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
-\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
-\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
-\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
-\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
-\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
-\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
-\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
-\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
-\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
-\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
-\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
-\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
-\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
-\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000
-4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
-d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b045
-b2b79127d101feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}}
+{\*\generator Riched20 10.0.10586}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1
+\pard\nowidctlpar\sa200\sl276\slmult1\b\f0\fs22\lang9 Version 1.0.26\par
+\b0 * Major graphics overhaul\par
+ - Packets move on timer\par
+ - Graphics drawn "smarter"\par
+ - Result is that things flow smoother. Loopback2 also works much nicer. \par
+* Fixed minor issue with "help" puzzle\par
+* Made help "?" button turn red when it is part of the puzzle\b\par
+Version 1.0.25\par
+\b0 * Minor changes to help file\par
+* Fixed size of labels on IP-Address editor box\par
+* Hide gateway label when we do not need it. (ip-address editor)\par
+* rename "mixed network" puzzle to be "adding devices" (the puzzle was about adding devices)\par
+* Changed layout of many messages\par
+* Save the level we are working on. Allows us to finish level 5 before level 3 if we want to.\par
+* Make network-loop puzzles sit next to each-other\par
+* Make it so network-loop2 puzzle asks for second ping after first one finishes \par
+* Lots of work towards the French translation\b\par
+Version 1.0.24 \par
+\b0 * Add sound when ctrl-s is pressed so we know we saved.\par
+* Add sound fail when save is canceled (will use it later if ctrl-s fails)\par
+* Added some wireless puzzles\par
+* Fix issue with WAP not forwarding packets correctly\par
+* Clear out old status message if we do something. So we do not say "saved" forever...\par
+* Fixed bad gateway on wireless router issue\par
+* Fixed wbridge misbehaving. (issue with gateway)\par
+* Added wireless items to help and context help topics\par
+* Thanks to Peter Wilson for so much of the translation backbone.\par
+* Lots of translation string changes. The French translation should be soon in coming.\par
+\b Version 1.0.23 09/20/2015\par
+\b0 * Fixed issues with broadcast packets\par
+* Fixed a network loop issue\par
+* Fixed issue with multiple interfaces and being able to go out a different interface than we came in on\par
+* Fixed many small bugs that crept in when fixing other bugs. Now all puzzles seem to play correctly\b\par
+Version 1.0.22 09/01/2015\b0\par
+* Added ssid and keys for wireless links\par
+* Wireless will auto-disconnect if link is too long\par
+* Wireless will auto-connect if ssid and key match, if link is short enough\par
+* Packets will drop on wireless links if distance is too great\par
+* wport has no interface (cannot edit IP address)\par
+* wireless router works properly - forwards broadcast packets\par
+* wireless router handles dhcp requests properly (both responds to it but also passes it on)\par
+* right-clicking light and microwave no longer has ping, arp, edit, and other context menus\par
+* added net-test for DHCP server status (on/off)\par
+* If multiple DHCP servers, client randomly chooses which to keep.\par
+*Add Wireless Puzzle\par
+*Fix many wireless device bugs\line\b Version 1.0.21 08/15/2015\b0\par
+* Added a microwave and fluorescent light. They corrupt data when packets run close to them.\par
+* Added some packet corruption puzzles\par
+* Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window. \par
+\b Version 1.0.20 08/12/2015\b0\par
+* wports do not display on tooltips or when printing the device info\par
+* Added ctrl-s to quick-save a network we are working on\par
+* commented out wireless devices for now - doing a big demo and wireless is not yet complete\par
+* added search box to help\par
+\b Version 1.0.19 08/08/2015\b0\par
+*Updated context help for most puzzles that introduce new ideas.\par
+* Sorted Help topics when adding them in net-tests.\par
+* Added some images to the help to help clarify things.\par
+* Start with the help windows being the same "height" as the network window.\par
+* Open Help so it can be kept open while the puzzles progress.\par
+* Deal with minimized state better (used to shrink window to smallest possible state)\par
+* Remember size and location of main window between uses.\par
+\b Version 1.0.18 08/08/2015\b0\par
+* Added Context Help for puzzles.\par
+- Each puzzle can have context help\par
+- There is a net-test to have us read help\par
+* fixed minor problem with a "ding" sound when we load a puzzle that has something locked.\par
+\b Version 1.0.17 08/01/2015\b0\par
+* Added more help\par
+* Much progress made in preparing for a French translation\par
+* allow for Puzzle's description to be in another language\par
+* Added more to help\par
+* Removed edit -> cut, paste, copy, undo. They never did anything. So why have them?\par
+* Save box starts in the directory of the file we opened (if we have one)\par
+* Choose a language at startup if one has never been chosen, and have option to change language.\par
+* Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addresses, and we want to build a VPN between them.\par
+\b Version 1.0.16 07/18/2015\b0\par
+* Added ability to break links (bad network wire)\par
+* "connection lights" on network cards / ports when we edit devices\par
+* Test for "needs link to" does not succeed if the link in question is a broken link\par
+* Added a puzzle to show you how to find broken links \par
+* Used broken links in other puzzles\par
+* Fixed bug: switches could not use DHCP for many different reasons. Now it works for them.\par
+\b Version 1.0.15 07/11/2015\b0\par
+* Added ping time progress bar\par
+* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the time needed and gives extra time.\par
+* Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things.\par
+* Fixed minor issue with this change log. Had two 1.0.11 versions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh) \par
+* Fixed the VPNify puzzle. Had a goof in it.\par
+* Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection.\par
+\b Version 1.0.14 07/10/2015\b0\par
+* When we finish a puzzle, allow us to auto-open the "next puzzle" box.\par
+* Added lots more puzzles\par
+* Added more help & documentation\par
+* Made it so test for local IP also checked to make sure the subnet-masks matched\par
+* Made it so the test for a matching route compared netmasks\par
+* Added a printer object\par
+* Added a copier object\par
+\b Version 1.0.13 06/21/2015\b0\par
+* Fixed issues with arp - arp could go through routers. Now works correctly\par
+* Made it test for puzzle completion after adding devices\par
+* Made it test for completion after changing / deleting devices\par
+* Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle\par
+* Replaced the "Network Loop" puzzle with the correct one.\par
+\b Version 1.0.12 06/20/2015\b0\par
+* Added VPN and TUN nic types\par
+* Fixed numerous small bugs\par
+* Fixed bug with early solution to failed ping test\par
+* Added "ding" when a test is solved.\par
+* Added a "firewall" network that has a firewall and vpns\par
+* Added numerous firewall / vpn puzzles\par
+* Fixed a DNS issue. It now more intelligently finds the right IP address when you ping it\par
+\b Version 1.0.11 06/14/2015\b0\par
+* Added the ability to lock various important features to make puzzles better\par
+* Able to add interfaces (multiple IPs on a Network Card)\par
+* Right-click context menu to add net-tests. \par
+* Del key now deletes the last item we had clicked on\par
+* Can add NICs (on some devices)\par
+* Can delete NICs\par
+* Fixed minor bug with broadcast pinging solving ping test for individual computers\par
+\b Version 1.0.10 06/13/2015\b0\par
+* Renamed puzzles to manage them easier\par
+* Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it.\par
+* Change to the help window so you can keep the window open while working with the puzzle.\par
+* Change to the donation link. Not that it will ever be used, but it makes me feel better having a few places for people to donate to if they wish.\par
+* Minor change for how broadcast packets work, specifically dealing with duplicate IP addresses.\par
+* Added a "firewall" device & WAN port with masquerade\par
+* Added a FailedPing test so we can ping things that must fail (show the firewall works)\par
+* added more to the help\par
+* added more puzzles\par
+\b Version 1.0.0.9 05/29/2015\b0\par
+* Add a grid to the network map. It makes things easier to straighten up\par
+* Sorted and organized the puzzles\par
+* Made a level for each puzzle.\par
+* Tracked the puzzles which have been completed\par
+* When we open the puzzle list, we now show the first level of puzzles that have an uncompleted puzzle.\par
+* Added more "tests", viewing help, pinging, arp, and dhcp.\par
+* Reset buttons when we load a new network.\par
+* Added a bunch more puzzles\par
+* Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.\par
+\b Version 1.0.0.8 05/25/2015\b0\par
+* Always Start with level0 puzzles for now\par
+* Fixed the icon when program running\par
+* Added an infrastructure for Puzzles (needs work)\par
+* Added a number of basic puzzles\par
+* Fixed DHCP Leases. Now it clears leases when you change the DHCP server range.\par
+\b Version 1.0.0.7 05/16/2015\b0\par
+* Added file association so we can double-click an enbx file\par
+* Fixed the icon so it looks right (removed left edge)\par
+\b Version 1.0.0.6 05/16/2015\b0\par
+* Able to delete a route (right click route and delete it)\par
+* Add map title as something we can load/save\par
+* Add message as something we can load and save\par
+* Changing size of items affects all items\par
+* Allow entering a hostname in the IP address field (ping / gateway)\par
+\b Version 1.0.0.5 04/26/2015\b0\par
+* Fixed ping from switch\par
+* Fixed error message when pinging IP that does not exist\par
+\b Version 1.0.0.4 04/26/2015\b0\par
+* Fixed broadcast ping\par
+*Fixed dhcp request error\par
+\b Version 1.0.0.3 04/15/2015\par
+\b0 * Added "file" -> "new" to erase and start a clean new network\par
+* Fixed pc2 to have gateway on "solved"->"Two Networks"\par
+* Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all\par
+* Changed - major overhaul to tcp-stack.\par
+* Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed\par
+\b Version 1.0.0.2 4/19/2015\b0\par
+* Added IP-Phone\par
+* Packets terminate at the far end - this makes it easier to see packets go both directions\par
+* Packets are randomized in transit - Allows packets to arrive at slightly different times\par
+\b Version 1.0.0.1 4/11/2015\b0\par
+* DHCP selection on nics is not functioning correctly\par
+* Various small bug-fixes\par
+\b Version 1.0.0.0 4/10/2015\b0\par
+This is the initial alpha build\par
+* basic pinging\par
+* basic arp\par
+* Routers\par
+* Switches/Hubs\par
+* PCs/Laptops\par
+* Network Links (ethernet)\par
+* Basic DHCP\par
+}
+
\ No newline at end of file