can right-click and delete, right-click and change color of selected items

This commit is contained in:
Tim Young 2017-06-07 09:10:02 -05:00
parent e13454b950
commit d4acde7b18
2 changed files with 92 additions and 39 deletions

View File

@ -600,6 +600,30 @@ namespace EduNetworkBuilder
if (ReleasedOn != null) LockedOut = ReleasedOn.DeviceIsLockedOutByVLANs();
pbNetworkView.ContextMenuStrip.Items.Clear();
if(ItemsSelected.Count > 0)
{
//We do not want to do the normal menu...
LockedOut = false;
ReleasedOn = null;
//We need to make sure the item is not critical before we delete it.
pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Delete"));
pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Delete_Click;
//We can color-code multiple items
if (myNetwork.VLANsEnabled)
{
int MenuIndex = pbNetworkView.ContextMenuStrip.Items.Count;
pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_ColorStr"));
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Blue"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Purple"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Yellow"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Green"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Orange"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Cyan"), null, pbNetworkView_Color_Click);
}
}
if (!LockedOut)
{
if (ReleasedOn != null && ReleasedOn.IsNotNetDevice())
@ -702,7 +726,7 @@ namespace EduNetworkBuilder
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Orange"), null, pbNetworkView_Color_Click);
(pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Cyan"), null, pbNetworkView_Color_Click);
}
if (ReleasedOn == null)
if (ReleasedOn == null && ItemsSelected.Count == 0)
{
pbNetworkView.ContextMenuStrip.Visible = false;
}
@ -733,25 +757,38 @@ namespace EduNetworkBuilder
}
}
private void ColorizeDevice(NetworkDevice Item, string Text)
{
if (ItemClickedOn != null)
{
if (Text == NB.Translate("NB_Blue"))
Item.ChangeColor(Color.Empty);
if (Text == NB.Translate("NB_Purple"))
Item.ChangeColor(Color.Purple);
if (Text == NB.Translate("NB_Yellow"))
Item.ChangeColor(Color.Yellow);
if (Text == NB.Translate("NB_Green"))
Item.ChangeColor(Color.Green);
if (Text == NB.Translate("NB_Orange"))
Item.ChangeColor(Color.Orange);
if (Text == NB.Translate("NB_Cyan"))
Item.ChangeColor(Color.Cyan);
}
}
private void pbNetworkView_Color_Click(object sender, EventArgs e)
{
ToolStripMenuItem TSMI = (ToolStripMenuItem)sender;
if(ItemClickedOn != null)
if(ItemsSelected.Count > 0)
{
if (TSMI.Text == NB.Translate("NB_Blue"))
ItemClickedOn.ChangeColor(Color.Empty);
if (TSMI.Text == NB.Translate("NB_Purple"))
ItemClickedOn.ChangeColor(Color.Purple);
if (TSMI.Text == NB.Translate("NB_Yellow"))
ItemClickedOn.ChangeColor(Color.Yellow);
if (TSMI.Text == NB.Translate("NB_Green"))
ItemClickedOn.ChangeColor(Color.Green);
if (TSMI.Text == NB.Translate("NB_Orange"))
ItemClickedOn.ChangeColor(Color.Orange);
if (TSMI.Text == NB.Translate("NB_Cyan"))
ItemClickedOn.ChangeColor(Color.Cyan);
UpdateVisuals();
foreach(NetworkDevice nd in ItemsSelected)
{
ColorizeDevice(nd, TSMI.Text);
}
}
else
ColorizeDevice(ItemClickedOn, TSMI.Text);
UpdateVisuals();
}
private void pbNetworkView_RemoveLink_Click(object sender, EventArgs e)
@ -803,21 +840,36 @@ namespace EduNetworkBuilder
UpdateVisuals();
}
private void pbNetworkView_Delete_Click(object sender, EventArgs e)
private void TryDeleteOneItem(NetworkDevice Item)
{
//Deleting the item is easy, but we also need to delete any links to that item
List<HostNicID> NicIDs = new List<HostNicID>();
if(ItemClickedOn != null)
if (Item != null)
{
if (myNetwork.ItemIsCritical(ItemClickedOn.hostname))
if (myNetwork.ItemIsCritical(Item.hostname))
return; //we cannot delete this
NicIDs = ItemClickedOn.GetHostNicIDs();
NicIDs = Item.GetHostNicIDs();
foreach (HostNicID nicID in NicIDs)
{
myNetwork.RemoveLinksToNic(nicID);
}
myNetwork.RemoveComponent(ItemClickedOn);
myNetwork.RemoveComponent(Item);
}
}
private void pbNetworkView_Delete_Click(object sender, EventArgs e)
{
if(ItemsSelected.Count ==0)
TryDeleteOneItem(ItemClickedOn);
else
{
for(int i=ItemsSelected.Count -1; i>=0; i--)
{
TryDeleteOneItem(ItemsSelected[i]);
}
}
pbNetworkView.Image = null;
ItemsSelected.Clear();
UpdateLinks();
myNetwork.TestForCompletion(true);
UpdateVisuals();

View File

@ -94,9 +94,9 @@ Normal Table;}}{\*\listtable{\list\listtemplateid-678110632\listhybrid{\listleve
\fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }
{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname
;}\listid1535926840}}{\*\listoverridetable{\listoverride\listid300036472\listoverridecount0\ls1}{\listoverride\listid1535926840\listoverridecount0\ls2}{\listoverride\listid569733219\listoverridecount0\ls3}{\listoverride\listid1059207521
\listoverridecount0\ls4}{\listoverride\listid159203163\listoverridecount0\ls5}{\listoverride\listid272565942\listoverridecount0\ls6}}{\*\rsidtbl \rsid12019296\rsid12727595\rsid14170698\rsid14577306\rsid15677065}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0
\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator tim.young@lightsys.org}{\creatim\yr2017\mo3\dy14\hr9\min58}{\revtim\yr2017\mo6\dy6\hr20\min51}{\version5}{\edmins5}{\nofpages9}{\nofwords1656}
{\nofchars9442}{\nofcharsws11076}{\vern91}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\listoverridecount0\ls4}{\listoverride\listid159203163\listoverridecount0\ls5}{\listoverride\listid272565942\listoverridecount0\ls6}}{\*\rsidtbl \rsid12019296\rsid12727595\rsid14170698\rsid14577306\rsid15677065\rsid16005564}{\mmathPr\mmathFont34\mbrkBin0
\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator tim.young@lightsys.org}{\creatim\yr2017\mo3\dy14\hr9\min58}{\revtim\yr2017\mo6\dy7\hr9\min8}{\version6}{\edmins6}{\nofpages9}{\nofwords1674}
{\nofchars9542}{\nofcharsws11194}{\vern91}}{\*\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\rsidroot14577306 \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
@ -108,17 +108,19 @@ Normal Table;}}{\*\listtable{\list\listtemplateid-678110632\listhybrid{\listleve
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12727595 \hich\af39\dbch\af31505\loch\f39 * Select multiple items for dragging by using a nice big drag-box.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0
\f39\lang9\langfe1033\langnp9\insrsid14170698
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12727595 \hich\af39\dbch\af31505\loch\f39 * Highlight the multiple items if selecting them
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid15677065 \hich\af39\dbch\af31505\loch\f39 * Allow the ESC key to clear the selected items.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0
\f39\lang9\langfe1033\langnp9\insrsid15677065\charrsid14170698
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid15677065 \hich\af39\dbch\af31505\loch\f39 * Allow the ESC key to clear the selected items.
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16005564 \hich\af39\dbch\af31505\loch\f39 * Can right-click and delete\hich\af39\dbch\af31505\loch\f39 of multiple \hich\af39\dbch\af31505\loch\f39 selected
\hich\af39\dbch\af31505\loch\f39 items
\par \hich\af39\dbch\af31505\loch\f39 * Can right-click and change color of multiple\hich\af39\dbch\af31505\loch\f39 selected items}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16005564\charrsid14170698
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid14577306 \hich\af39\dbch\af31505\loch\f39 Version 1.0.31
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14577306 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306 \hich\af39\dbch\af31505\loch\f39 *}{
\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306 \hich\af39\dbch\af31505\loch\f39 Added powering off switches, routers, and the like
\par \hich\af39\dbch\af31505\loch\f39 * Added traceroute
\par \hich\af39\dbch\af31505\loch\f39 * Added a few puzzles for those
\par \hich\af39\dbch\af31505\loch\f39 * Moved to a new git repository
\par \hich\af39\dbch\af31505\loch\f39 * Changed the default location of popups. They worked very strange in a multi-window environment.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Versio\hich\af39\dbch\af31505\loch\f39
n 1.0.30
\par \hich\af39\dbch\af31505\loch\f39 * Changed the default location of popups. They worked v\hich\af39\dbch\af31505\loch\f39 ery strange in a multi-window environment.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0
\f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.30
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Another downloadable (zip only, stable) version.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296
\par \hich\af39\dbch\af31505\loch\f39 Version 1.0.29
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Lots of VLAN butfixes
@ -126,10 +128,9 @@ n 1.0.30
\par \hich\af39\dbch\af31505\loch\f39 * Lots more VLAN puzzles
\par \hich\af39\dbch\af31505\loch\f39 * Update VLAN documentation
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.28
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Initial VLAN release
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Initial VLAN re\hich\af39\dbch\af31505\loch\f39 lease
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.27
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Made distribution easier b\hich\af39\dbch\af31505\loch\f39
y CD (does updates from web, but we also have a downloadable zip you can install from)
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Made distribution easier by CD (does updates from web, but we also have a downloadable zip you can install from)
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.26
\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Major graphics overhaul
\par \hich\af39\dbch\af31505\loch\f39 - Packets move on timer
@ -253,27 +254,27 @@ akes it go just a tiny bit slower and various things would fail. When the first
\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 \hich\af39\dbch\af31505\loch\f39 * \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\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.10 06/13/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296
\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 * \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 * Ch\hich\af39\dbch\af31505\loch\f39 ange 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 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 \hich\af39\dbch\af31505\loch\f39 * Minor change for\hich\af39\dbch\af31505\loch\f39 how broadcast packets work, specifically dealing with duplicate IP addresses.
\par \hich\af39\dbch\af31505\loch\f39 * Minor change for h\hich\af39\dbch\af31505\loch\f39 ow broadcast packets work, specifically dealing with duplicate IP addresses.
\par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" device & WAN 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 \hich\af39\dbch\af31505\loch\f39 more puzzles
\par \hich\af39\dbch\af31505\loch\f39 * added mo\hich\af39\dbch\af31505\loch\f39 re puzzles
\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.9 05/29/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296
\par \hich\af39\dbch\af31505\loch\f39 * Add a grid to the network map. It makes things easier to straighten 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\hich\af39\dbch\af31505\loch\f39 list, we now show the first level of puzzles that have an uncompleted puzzle.
\par \hich\af39\dbch\af31505\loch\f39 * When we open the puzzle l\hich\af39\dbch\af31505\loch\f39 ist, we now show the first level of puzzles that have an uncompleted puzzle.
\par \hich\af39\dbch\af31505\loch\f39 * Added more "tests", viewing help, 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 \hich\af39\dbch\af31505\loch\f39 when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.
\par \hich\af39\dbch\af31505\loch\f39 * Sometimes the remembered IP gets annoying wh\hich\af39\dbch\af31505\loch\f39 en 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\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.8 05/25/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296
\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
@ -457,8 +458,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000005023
b5a230dfd201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000020c2
d68797dfd201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}