Skip to content

Instantly share code, notes, and snippets.

@neila
Created November 21, 2020 14:11
Show Gist options
  • Save neila/1e90bf1169f85b33943b594584c5742f to your computer and use it in GitHub Desktop.
Save neila/1e90bf1169f85b33943b594584c5742f to your computer and use it in GitHub Desktop.
text encryption using simple matrix calculations
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 11.3' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 188939, 4701]
NotebookOptionsPosition[ 178212, 4510]
NotebookOutlinePosition[ 178658, 4528]
CellTagsIndexPosition[ 178615, 4525]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["matrix characteristics", "Section",
CellChangeTimes->{{3.757666274051058*^9, 3.757666274763125*^9}, {
3.757666308640744*^9, 3.757666345699779*^9}, {3.814955369562101*^9,
3.814955371077177*^9}, {3.814955642753479*^9,
3.814955648086821*^9}},ExpressionUUID->"fd8544d6-1909-4b25-9659-\
cd19eeb208bb"],
Cell[CellGroupData[{
Cell["M1 and M2 are row-equivalent.", "Subsection",
CellChangeTimes->{{3.757666355272155*^9, 3.757666378960547*^9}, {
3.814955377367923*^9,
3.81495538370278*^9}},ExpressionUUID->"cd0aff72-5c8a-44d3-8cb3-\
dbab95b01f94"],
Cell[BoxData[{
FormBox[
RowBox[{
RowBox[{
RowBox[{
SubscriptBox["M", "1"], "=",
RowBox[{"(", GridBox[{
{"0", "1",
RowBox[{"-", "3"}], "2"},
{"3", "0", "6", "3"},
{"4",
RowBox[{"-", "1"}], "11", "2"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], ",",
RowBox[{
SubscriptBox["M", "2"], "=",
RowBox[{"(", GridBox[{
{"3",
RowBox[{"-", "1"}], "9", "1"},
{"0", "5",
RowBox[{"-", "15"}], "10"},
{"1", "0", "2", "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}]}], "\n"}],
TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"Solution", ":", " ",
RowBox[{"We", " ", "can", " ", "conduct", " ",
StyleBox["a",
FontSlant->"Plain"], " ", "series", " ", "of", " ", "elementary", " ",
"row", " ", "operations", " ", "on", " ",
FormBox[
SubscriptBox["M", "1"],
TraditionalForm], " ", "to", " ", "obtain", " ",
FormBox[
RowBox[{
SubscriptBox["M", "2"], "."}],
TraditionalForm]}]}], "\[IndentingNewLine]"}], TraditionalForm], "\n",
FormBox[
RowBox[{"1.", " ", "Multiply", " ", "row", " ", "1", " ", "by", " ", "5."}],
TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{
SubscriptBox["M",
SubscriptBox["1", "2"]], "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"0", "5",
RowBox[{"-", "15"}], "10"},
{"3", "0", "6", "3"},
{"4",
RowBox[{"-", "1"}], "11", "2"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
"\[IndentingNewLine]"}], TraditionalForm], "\n",
FormBox[
RowBox[{
RowBox[{
RowBox[{"2.", " ", "Multiple", " ", "row", " ", "2", " ", "by", " ",
RowBox[{
FormBox[
FractionBox["1", "3"],
TraditionalForm], ".", "\n",
SubscriptBox["M",
SubscriptBox["1", "3"]]}]}], "=",
RowBox[{"(", GridBox[{
{"0", "5",
RowBox[{"-", "15"}], "10"},
{"1", "0", "2", "1"},
{"4",
RowBox[{"-", "1"}], "11", "2"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}],
"\[IndentingNewLine]"}], TraditionalForm], "\n",
FormBox[
RowBox[{
RowBox[{"3.", " ", "Add"}], " ", "-",
RowBox[{"1", "\[Times]",
RowBox[{"(",
RowBox[{"row", " ", "2"}], ")"}], " ", "to", " ", "row", " ", "3."}]}],
TraditionalForm], "\n",
FormBox[
RowBox[{
RowBox[{
SubscriptBox["M",
SubscriptBox["1", "4"]], "=",
RowBox[{"(", GridBox[{
{"0", "5",
RowBox[{"-", "15"}], "10"},
{"1", "0", "2", "1"},
{"3",
RowBox[{"-", "1"}], "9", "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}],
"\[IndentingNewLine]"}], TraditionalForm], "\n",
FormBox[
RowBox[{
RowBox[{
RowBox[{
"4.", " ", "Swap", " ", "row", " ", "orders", " ", "to", " ", "match",
" ",
RowBox[{
FormBox[
SubscriptBox["M", "2"],
TraditionalForm], ".", "\n",
SubscriptBox["M",
SubscriptBox["1", "5"]]}]}], "=",
RowBox[{"(", GridBox[{
{"3",
RowBox[{"-", "1"}], "9", "1"},
{"0", "5",
RowBox[{"-", "15"}], "10"},
{"1", "0", "2", "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}],
"\[IndentingNewLine]"}], TraditionalForm], "\n",
FormBox[
RowBox[{
RowBox[{"At", " ", "this", " ", "point"}], ",", " ",
RowBox[{
FormBox[
SubscriptBox["M",
SubscriptBox["1", "5"]],
TraditionalForm], "=", " ",
RowBox[{
RowBox[{
FormBox[
SubscriptBox["M", "2"],
TraditionalForm], ".", " ", "Since"}], " ",
FormBox[
SubscriptBox["M",
SubscriptBox["1", "5"]],
TraditionalForm], " ", "is", " ",
StyleBox["a",
FontSlant->"Plain"], " ", "result", " ", "of", " ",
StyleBox["a",
FontSlant->"Plain"], " ", "series", " ", "of", " ", "elementary", " ",
"row", " ", "operations", " ", "on", " ",
FormBox[
SubscriptBox["M", "1"],
TraditionalForm]}]}], ",", " ",
RowBox[{
RowBox[{"it", " ", "is", " ", "shown", " ", "that", " ",
FormBox[
SubscriptBox["M", "1"],
TraditionalForm], " ", "and", " ",
FormBox[
SubscriptBox["M", "2"],
TraditionalForm], " ", "are", " ", "row"}], "-",
RowBox[{"equivalent", "."}]}]}], TraditionalForm]}], "Input",
CellChangeTimes->{{3.757666594167828*^9, 3.757666658223991*^9}, {
3.758156993471949*^9, 3.7581571175133343`*^9}},
FontWeight->"Plain",ExpressionUUID->"b0c69a89-e41f-4462-b682-141ee72fb0a9"]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[{
StyleBox["Removing the third column of each matrix gives matrices ",
"Subsection"],
Cell[BoxData[
FormBox[
SubscriptBox["N", "1"], TraditionalForm]],ExpressionUUID->
"f3cf983d-1f8b-42f6-88d6-8371d7006e60"],
" and ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "2"], TraditionalForm]],ExpressionUUID->
"4fdfb9e1-6af2-4e4c-9323-69287623537d"],
"; these are also row equivalent. If we remove the fourth column instead, \
the resulting matrices are also row-equivalent."
}], "Subsection",
CellChangeTimes->{{3.757667290785943*^9, 3.7576673393248177`*^9}, {
3.757667434936275*^9, 3.757667493344942*^9}, {3.81495541774649*^9,
3.8149554352509727`*^9}},ExpressionUUID->"092998ee-98fb-457e-a1ee-\
f1bc6fc235fd"],
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{
SubscriptBox["N", "1"], "=",
RowBox[{"(", GridBox[{
{"0", "1", "2"},
{"3", "0", "3"},
{"4",
RowBox[{"-", "1"}], "2"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], ",",
RowBox[{
SubscriptBox["N", "2"], "=",
RowBox[{"(", GridBox[{
{"3",
RowBox[{"-", "1"}], "1"},
{"0", "5", "10"},
{"1", "0", "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}]}],
TraditionalForm]], "Input",
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->"98030549-e517-43ea-bbbc-a4b730310aa9"],
Cell[TextData[{
StyleBox["I have demonstrated in section (a) that row-equivalent matrices \
can ultimately be expressed as the same matrix through a series of elementary \
row operations. This suggests that the row-equivalent matrices will have the \
same reduced row echelon form (\[OpenCurlyDoubleQuote]RREF\
\[CloseCurlyDoubleQuote] onwards). \nThis is simply because the RREF of a \
matrix is obtained through a sequence of elementary row operations, which \
means that the RREF of a given matrix is a row-equivalent of that matrix. \
Therefore, if two matrices in RREF form are the same, it must be that they \
are row-equivalent.\nThe computational tool used to compute the RREF of ",
FontFamily->"Times New Roman",
FontWeight->"Regular"],
Cell[BoxData[
FormBox[
SubscriptBox["N", "1"], TraditionalForm]],
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->
"85f6a067-5a66-4c8c-bfc3-55b2171b4d3b"],
StyleBox[" and ",
FontFamily->"Times New Roman",
FontWeight->"Regular"],
Cell[BoxData[
FormBox[
SubscriptBox["N", "2"], TraditionalForm]],
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->
"c512f235-9f28-4682-ba95-5b0fd0891f72"],
StyleBox[" is Wolfram Mathematica.",
FontFamily->"Times New Roman",
FontWeight->"Regular"]
}], "Text",
CellChangeTimes->{{3.7576675041856337`*^9, 3.757667508927459*^9}, {
3.757667573721759*^9, 3.757667685904017*^9}, {3.75766783299478*^9,
3.757667839778089*^9}, {3.757668374862495*^9,
3.757668601460668*^9}},ExpressionUUID->"d94a9d92-4dca-41bc-9b3e-\
6f7447a89e11"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"Print", "[",
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(1 rref\)]\) = \>\"", ",",
RowBox[{"RowReduce", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "1", ",", "2"}], "}"}], ",",
RowBox[{"{",
RowBox[{"3", ",", "0", ",", "3"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4", ",",
RowBox[{"-", "1"}], ",", "2"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(2 rref\)]\) = \>\"", ",", " ",
RowBox[{"RowReduce", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"3", ",",
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"0", ",", "5", ",", "10"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "0", ",", "1"}], "}"}]}], "}"}], "]"}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.757668649137601*^9, 3.757668703044943*^9}, {
3.75766899024612*^9, 3.757669031535162*^9}, {3.757669558905952*^9,
3.7576695633958673`*^9}},
CellLabel->"In[1]:=",ExpressionUUID->"e9354c81-f591-48aa-928d-5ca4f694cdf3"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(1 rref\\)]\\) = \"\>",
"\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0", "1"},
{"0", "1", "2"},
{"0", "0", "0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm[
"\!\(\*SubscriptBox[\(N\), \(1 rref\)]\) = ", {{1, 0, 1}, {0, 1, 2}, {0,
0, 0}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(2 rref\\)]\\) = \"\>",
"\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0", "1"},
{"0", "1", "2"},
{"0", "0", "0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm[
"\!\(\*SubscriptBox[\(N\), \(2 rref\)]\) = ", {{1, 0, 1}, {0, 1, 2}, {0,
0, 0}}],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{
3.758173493385878*^9, {3.758195989196024*^9,
3.758195996279559*^9}},ExpressionUUID->"79a5324a-ce77-4469-a1f7-\
92ab6b031125"]
}, Open ]],
Cell[TextData[{
"\[Therefore] ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "1"], TraditionalForm]],ExpressionUUID->
"4b168efb-857b-422f-9e27-b343bb7d0ff7"],
" and ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "2"], TraditionalForm]],ExpressionUUID->
"6eff33b4-1ed3-4fbf-9dc4-35cccd7b1014"],
" are row equivalent to each other.\nNow go through the same procedure, this \
time removing the fourth columns of ",
Cell[BoxData[
FormBox[
SubscriptBox["M", "1"], TraditionalForm]],ExpressionUUID->
"386626de-2806-40df-8f3d-4024778c1690"],
" and ",
Cell[BoxData[
FormBox[
SubscriptBox["M", "2"], TraditionalForm]],ExpressionUUID->
"8c0d3d4a-3701-4759-8a58-6762abd9180b"],
". I will call the matrices ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "3"], TraditionalForm]],ExpressionUUID->
"c5ffcbad-ac78-4b1e-80ed-68d34d0b4c9f"],
" and ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "4"], TraditionalForm]],ExpressionUUID->
"ff9cdc01-b98c-47c7-9345-19dca1af7c90"],
"."
}], "Text",
CellChangeTimes->{{3.7576690673373938`*^9, 3.75766910545312*^9}, {
3.7576692381755943`*^9, 3.7576692477559633`*^9}, {3.757669282382987*^9,
3.7576692923853073`*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"1740787f-7fc5-4328-af77-f1f5d801f02c"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"Print", "[",
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(3 rref\)]\)= \>\"", ",",
RowBox[{"RowReduce", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "1", ",",
RowBox[{"-", "3"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"3", ",", "0", ",", "6"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4", ",",
RowBox[{"-", "1"}], ",", "11"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(4 rref\)]\)=\>\"", ",", " ",
RowBox[{"RowReduce", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"3", ",",
RowBox[{"-", "1"}], ",", "9"}], "}"}], ",",
RowBox[{"{",
RowBox[{"0", ",", "5", ",",
RowBox[{"-", "15"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "0", ",", "2"}], "}"}]}], "}"}], "]"}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.757669184919175*^9, 3.757669202989588*^9}, {
3.75766926013701*^9, 3.757669262918969*^9}},
CellLabel->"In[3]:=",ExpressionUUID->"ecc091c2-b451-4218-9c79-ed695362eeee"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(3 rref\\)]\\)= \"\>",
"\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0", "2"},
{"0", "1",
RowBox[{"-", "3"}]},
{"0", "0", "0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm[
"\!\(\*SubscriptBox[\(N\), \(3 rref\)]\)= ", {{1, 0, 2}, {0, 1, -3}, {0,
0, 0}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(4 rref\\)]\\)=\"\>",
"\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0", "2"},
{"0", "1",
RowBox[{"-", "3"}]},
{"0", "0", "0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm[
"\!\(\*SubscriptBox[\(N\), \(4 rref\)]\)=", {{1, 0, 2}, {0, 1, -3}, {0, 0,
0}}],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{
3.75817350098744*^9, {3.7581959991750937`*^9,
3.758196006703977*^9}},ExpressionUUID->"2a66624f-9704-47c9-877f-\
c88741f24d3b"]
}, Open ]],
Cell[TextData[{
"Again, we see that ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "3"], TraditionalForm]],ExpressionUUID->
"b5f3db0f-d5fc-469b-bd51-b5dd6e80cb2c"],
" and ",
Cell[BoxData[
FormBox[
SubscriptBox["N", "4"], TraditionalForm]],ExpressionUUID->
"29e6a9b0-a69a-4567-b0fe-d31a81eaedf6"],
" are row equivalent to each other."
}], "Text",
CellChangeTimes->{{3.757669296666376*^9, 3.757669314322442*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"6514a758-edbc-4168-8464-8f9a05022bf1"],
Cell["\<\
CONCLUSION]
Removing the same column from a pair equivalent matrices will affect row \
equivalence of the two matrices. This is because elementary row operations \
only affect within each column. Scaling is done uniformly across all columns. \
Swapping happens between rows but not between columns. And finally, adding \
multiples of rows are done within each column. An element from column 2 can \
only be added to an element in a different row but the same column. \
Therefore, removing the same column has no effect on the row equivalence of \
the two matrices, as the remaining columns will go under row operations just \
as it did before removal.\
\>", "Text",
CellChangeTimes->{{3.757669583842907*^9, 3.7576698056431837`*^9}, {
3.814955469499749*^9, 3.814955485296386*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"f4deffad-1d70-4ec4-889f-f096f10022d9"]
}, Open ]],
Cell[CellGroupData[{
Cell["What about rows? Example with matrix A", "Subsection",
CellChangeTimes->{{3.757669808726508*^9, 3.7576698650004168`*^9}, {
3.7580089710328836`*^9, 3.7580089757844563`*^9}, {3.814955498494958*^9,
3.814955501248962*^9}, {3.814955551473003*^9,
3.814955575035334*^9}},ExpressionUUID->"7f9ca359-e542-4596-988f-\
cb8f1fdd5131"],
Cell[TextData[{
"A = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"2", "9",
RowBox[{"|", " ",
RowBox[{"-", "1"}]}]},
{"4", "1",
RowBox[{"|", " ", "20"}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"e667ea81-b7e5-4834-8f43-9ed3e451f5ff"],
"\n\nSubtract row 1 from row 2:\nA = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"0", "5",
RowBox[{"|",
RowBox[{"-", "6"}]}]},
{"4", "1",
RowBox[{"|", "20"}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"296008b2-454a-491e-9cb2-ee96c1c02697"],
"\n\nSubtract 2\[Cross]row 1 from row 3:\nA = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"0", "5",
RowBox[{"|",
RowBox[{"-", "6"}]}]},
{"0",
RowBox[{"-", "7"}],
RowBox[{"|", "10"}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"9597d176-3815-4f5d-b6d4-b2ad2c6f1863"],
"\n\nAdd ",
Cell[BoxData[
FormBox[
FractionBox["7", "5"], TraditionalForm]],ExpressionUUID->
"fad777b7-6821-4dc5-a101-6ee708f9f3fa"],
"\[Cross]row 2 to row 3:\nA = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"0", "5",
RowBox[{"|", " ",
RowBox[{"-", "6"}]}]},
{"0", "0",
RowBox[{"|",
FractionBox["142", "5"]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"8a162fbd-7842-42c4-ba99-ebe2b59f35b5"],
"\n\nSince there are no solutions that satisfy 0\[Cross]x + 0\[Cross]y = ",
Cell[BoxData[
FormBox[
FractionBox["142", "5"], TraditionalForm]],ExpressionUUID->
"b8f09bd7-9bb8-4052-ab22-980454726688"],
", we can say that the matrix has no solutions. "
}], "Text",
CellChangeTimes->{{3.758008447729747*^9, 3.758008551876182*^9}, {
3.758008615185186*^9, 3.758008704465727*^9}, {3.758008754355448*^9,
3.758008818601902*^9}, {3.758008882312051*^9, 3.758008887226696*^9}, {
3.758008922911252*^9, 3.7580089249536*^9}, {3.758008987634844*^9,
3.758009025001853*^9}, 3.758009057748555*^9, {3.758009473357815*^9,
3.758009557922113*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"b9b41390-d3bd-4c8d-be75-adf215da90d4"]
}, Open ]],
Cell[CellGroupData[{
Cell["The effect of removing a row on row equivalence...", "Subsection",
CellChangeTimes->{{3.758008985220603*^9, 3.75800898625436*^9}, {
3.758009133722386*^9, 3.7580091601093187`*^9}, {3.814955565413628*^9,
3.814955590005814*^9}},ExpressionUUID->"dd11fafb-c20d-4785-88fc-\
bc0af54c783b"],
Cell[TextData[{
"We can remove the third row, for example.\nB = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"2", "9",
RowBox[{"|",
RowBox[{"-", "1"}]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"51a08c71-3304-45a3-b6f4-c9225301a810"],
"\n\nSubtract row 1 from row 2:\nB = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "4",
RowBox[{"|", " ", "5"}]},
{"0", "5",
RowBox[{"|",
RowBox[{"-", "6"}]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"ed3a6f19-34c2-4246-846e-a12a3edbfda3"],
"\n\nSubtract ",
Cell[BoxData[
FormBox[
FractionBox["4", "5"], TraditionalForm]],ExpressionUUID->
"a3657e64-37c2-40ca-9bfe-d2c3802e1866"],
"\[Cross]row 2 from row 1:\nB = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"2", "0",
RowBox[{"|",
FractionBox["49", "5"]}]},
{"0", "5",
RowBox[{"|",
RowBox[{"-", "6"}]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"fbbf5592-a5e5-430c-ab7a-db44c3eebf71"],
"\n\nReduce each pivot columns to 1:\nB = ",
Cell[BoxData[
FormBox[
RowBox[{"(", GridBox[{
{"1", "0",
RowBox[{"|", " ",
FractionBox["49", "10"]}]},
{"0", "1",
RowBox[{"|",
RowBox[{"-",
FractionBox["6", "5"]}]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->
"398f4883-5d7c-4f71-9c04-8e18fa95f19f"],
"\n\[LineSeparator]And we see that the augmented matrix now does have a \
solution, which means it has an effect on the row equivalence."
}], "Text",
CellChangeTimes->{{3.75800918429642*^9, 3.758009355239842*^9}, {
3.758009410084978*^9, 3.758009469106436*^9}, {3.7580095620759153`*^9,
3.758009632820526*^9}, 3.758187651231024*^9},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"88dca3f2-6fa1-494b-9a71-3a8bd544e4c8"],
Cell[CellGroupData[{
Cell["\<\
Row equivalent augmented matrices have the same solution set.\
\>", "Subsubsection",
CellChangeTimes->{{3.7580096974949713`*^9, 3.758009710309943*^9},
3.814955605343485*^9},ExpressionUUID->"f7afa4cc-bb1e-4a21-8e8f-\
2dc3754a20a0"],
Cell["\<\
Since they are row equivalent, the RREF form will be the same and thus can be \
understood as having the same solution set.\
\>", "Text",
CellChangeTimes->{{3.7580097158086233`*^9, 3.7580097713001013`*^9}, {
3.81495560931925*^9, 3.81495560957547*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"45533c61-90b1-4077-93e6-5399f908f90f"]
}, Open ]],
Cell[CellGroupData[{
Cell["\<\
Augmented matrices with the same solution set are row equivalent.\
\>", "Subsubsection",
CellChangeTimes->{{3.7580097739156647`*^9, 3.758009788249487*^9},
3.814955606543252*^9},ExpressionUUID->"56efd40e-170a-42f7-9958-\
c969378d750b"],
Cell[TextData[{
"Since same solution set implies that the RREF form of the augmented \
matrices are the same; thus is row equivalent and can be transformed into \
each other using only elementary row operations.\n\nThis also means that two \
matrices have the same solution set ",
StyleBox["if and only if",
FontWeight->"Bold"],
" they are row equivalent."
}], "Text",
CellChangeTimes->{{3.7580097943000183`*^9, 3.758009862283033*^9}, {
3.814955612344398*^9, 3.8149556280383472`*^9}},
FontFamily->"Times",
FontWeight->"Regular",ExpressionUUID->"611b804c-6957-4108-bc48-14a182c8fe0f"]
}, Open ]]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["traffic matrix",
FontSlant->"Italic"]], "Section",
CellChangeTimes->{{3.758009919161749*^9, 3.758009932047393*^9}, {
3.814955637080202*^9,
3.814955662265361*^9}},ExpressionUUID->"f66fbda0-3f3f-4cea-9521-\
8bbbfd3e8f05"],
Cell[TextData[{
"First, as we do not know the traffic in between each roundabout so it is \
sensible to make them into variables. The visualization below shows the \
variable names and the roads I assigned them to.\n",
Cell[BoxData[
GraphicsBox[
TagBox[RasterBox[CompressedData["
1:eJzs3Qm8lGP/x3E8PCprsvYga4Qs2VuUhCwpZYmyZEukkLIrRNm3EJHs+17Z
iuw7LchWoj0VqZmzn9+/79V/Ms2Z7cw9c9/nzHzer9f9eJxz5jid6brv63st
v2vbM/p2PmeN1VZbrV+d5f/TucelB198cY/Lu2y4/F+O79OvV88+Z591RJ9L
zu559sUHnPGf5R+csfpqq224/P+sufz/GwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcMXFxfbzzz9beXl50D8KAAAA
gBruqaeespNOOskWLlyY8GuWLl1qzz77rF122WV2ww032NVXX22DBw+2yZMn
J/3elZWV9tFHH9nAgQPt2muvteuuu84uv/xyGz16tJWWlmb7jwLUSL///rvd
dddddskll9iAAQOsT58+dsUVV9iECROsrKws4eu8tJ8ZM2bYnXfeaVdeeaVr
s2q7w4cPtz///DPbfzygRgqHw/bMM8+4Nte9e3d3qd29/vrrVlJSkvS1mbaf
TJ+VAFCb/Pjjj7b//vtbkyZNbPbs2XG/Zv78+XbRRRfZKaecYuPGjbOJEyfa
V199Zffdd5916NDBXnrpJdfPiaX+zciRI+3II4+0xx9/3L799lt3qe9z/PHH
u/6Q7rVAPvvggw/s0ksvde3ks88+sy+++MLee+89O+2002zPPfe0QYMGxW0H
XtqP/judO3d2uePzzz93bVY55OKLL3Z9KLV7IJ/NnDnTtbvrr7/e3nnnHXv3
3Xdde+rYsaPtuuuu1rt3b5cR4sm0/WT6rASA2kRjMxoHrVOnju28885x84PG
RjWGsssuu6wyZqN7oO6VF1xwge27776uXxNr/Pjx7j59zTXX2F9//bXKf1f9
oZ122slGjBjB/RR5S23quOOOc2Oe+v+Rv+taK6j20bBhQ9tss83cuGasTNvP
3Llz7ZhjjrH27du7dYnR/031Z1q0aGFnnHGG/f333zn8kwPB0ZpcjfsPHTrU
fv31V/fcUjv4559/XDZo3ry5bbDBBnbeeedVyeCZth8vz0oAqE1efPFFN5ay
3nrrJcwPGjvZcccd7aijjoo71qkxnc0339x69uxpRUVFKz++ZMkS69Kli225
5Zb2zTffVHmd5oBbtmxpzZo1s19++SW7fzCghnj77bdto402cu1L6wSjLV68
2A444ABbbbXV3BxDdPvy0n60Tkp9I629qKioWOVz6gMpj2y88cb29NNPZ/FP
CtQcn3zyibVr187NHcRSG3j44Yetbt26rh28/PLLq3w+0/aT6bMSAGoTjcn0
7dvXjWNG+jfx8oPmb9dcc00bMmRI3HmCOXPm2B577GHbbLONTZkyZeXHtWZD
99hWrVrZsmXLqrxO92WNx6y99tpxx16BfKA+g/K52pDmCqKFQiE7+OCDXX7Y
b7/9XJ6IyLT9LFq0yFq3bu3atMZZ4xkzZoytu+66Lp9oLgPIN8oA9evXd7n8
hx9+qPJ5rT/aaqutbPXVV3fPwQgv7SfTZyUA1BYa+9Ca0Oeee86N0yTKDxoD
bdu2rbvHPvroo3G/l/pA+pq11lrLHnvssZUf1z10jTXWcGtNE61PuvXWW13f
qWvXrkn3kAK1ldYdPfTQQ3b33Xe79djRtE5i9913d21Aa62j93Nm2n403rrJ
JpvY//73PzdGEM/XX3/tssl2222X8GuA2kxrl9Q2/vvf/7q9zLE0fxdpe1qn
pPVOkmn78fKsBIDaQmszI2uqdb9MlB+mT59u2267rRtTiXcPFo2DHnvsse4+
rL1lkY+pT6OPnXzyyQl/jlGjRrn77V577UVNGOQtrWXQWunYHKA9nVonoUvt
K/J5L+3nySefdO1VfRvVfIpH6520LmqdddZxPwOQb1TXTH31Tp062XfffVfl
88ru2j+kNqaMHqldnmn7yfRZCQC1hepNaL520qRJ7t+T5Qft89JYjNZIvPLK
Kwm/Z7du3VaOg4rmNw455BD3sbPOOivh6zT/oftto0aNEt6rgXyk8coePXq4
tU3aWx29P9pL+7njjjvc6xKtRxR9rfpH//nPf1xtSyDfaKxfzzitXYpXp1U1
0DSHoPx91VVXrfx4pu0n02clANQGuo9qXYTGWCK145Plh48//tg23HBDN87y
5ptvJvy+qkOpe6L2jYn6RqpvoY+pvlMi2r+tuVztKfvpp5+y8CcEai61L+2H
eOKJJ+zcc891a7O1rineusFM249quup1Wmetmi/xaB3VDjvs4PpOsXsygEKg
c1SUvdUOtB4pItP2k+mzEgBqA93XdBZO9DlxyfKD5mZ1P1x//fVdvycR1bLT
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
o8SdE1e/TfK+ybiPqfGSL8gP/spGflD9s1TnQwx5gD0QNRn5AQC8Iz/kVuR8
uFnzKmzBogorjZo++PufSnvi1RI76ZKw7XV8yDZvF7KNUuSHd8gPtdLUqVNt
8uTJy/uf/2bHePnhzz//tE8++cTCYdbRZ1s28oM0PDR5G73wRs6CqMnIDwDg
HfnBf6ol/9zYEuvaL2y7dwnZOq1C1qJ72F55pzTl+iXmH2qn4447zlq1amWD
Bg2yRYsWuY/F5ocxY8bYMcccY/vvv799+OGHQf64eSlb+WGHo5O3UbVr1Fzk
BwDwjvzgn4oKszc+KLXTL18x36DcULflin7LxB/Krai4MuX+afJD7TRq1Chr
166dbbrppnbiiSfajBkzVuaHd955x+644w7bY489rGHDhjZgwACbPXt20D9y
3slWftgtRY3lzn3IDzUZ+QEAvCM/+OOXGeV26a1Ftv9J4ZV1mXSW3OD7it1Z
1ZFlLeSH/LRs2TL7+uuvXTZYZ5113HxEkyZNXNvr27evbbXVVrbffvvZK6+8
QnbIkWzlh106JW+j51/H+qWajPwAAN6RH3JLueClt0vtiJ5ht78hup9x5R1F
Nm/hqrUeyQ/5Tdng0ksvtbp161r9+vVd29t8883d3IPWLJWVUV8rV7KVH3TO
dLLvc8P97J+uycgPAOAd+SG37hxVvOJMuBar9jGO6xu2OfOr1oknP+S/WbNm
Wa9evWyNNdZwba9Ro0ZuDVNFBecG5FK28kOj9snb6MgXqN9ak5EfAMA78kPu
vP5uady9llq39NFX8ceZyQ+FYfr06bbLLru4tjdy5EjmHXyQrfywQYJzISOX
ajaj5iI/AIB3qhepNdkDBw4M+kfJKz9OK7f9Tw7H7V806Rhye6XjIT8UDtVd
uu+++2zJkiVB/ygFIVV+uCiN/KBzH5N9D9V2jXc2JGoOzfXpmffSSy8F/aMA
QK2lcU+tyZ47d27QP0pe0XlxdVrE72Mcembi+izkh8JRXl7u9lXDH6nywwXX
p84PcxckP3+asx9qvn/++cc98/7++++gfxQAAFbSnulkNVp27hiy4pL48w97
Hpc8P3B+HJCZVPmh16DUff9vfyhP+j0++IK1SwAAoPp+n11h67ZK3MdYb/nn
hj9dYuGifzPEor8q7cbhxdbg4OT54Y33yQ9AJlLlhx5XpM4PL7xZmvD1+50U
tvJyH/4gAAAEoLKy0qZMmWLPPPOM3XjjjXbZZZfZ5ZdfbrfddpurP//7778H
/SPWalN+Sj5GGdkD0a1/2O57qtiGPlhsJ1wUtkZHJH+NrkdfXlHbRfMXs+ZS
r6e20TrB119/3e6880674oorXC3X66+/3p544gl3PgQ1mHInVX7ocF7qc98u
vaUo7mvrtgjZl5OZe6ipioqK7P3337eHHnrIrrnmGrf/4eqrr7bhw4fb+PHj
benSpUH/iEBeUP/yiy++sJtuusn69OljZ5xxhutf6gxV7bdNRut5X375ZVfj
QP3RG264wW699Vb7/vvvc/I6VM+ECRPsggsusBNOOMH69+9vQ4YMsbvvvtvu
uusu14+58MILrXPnzu7e+sMPPwT949ZKmkvQudKpsoDOn97pmJBtszw36Ew5
7Zlo3zP+nuvIpXMkNAehsyN0oXbQedO6px177LGu/ek+pwyhtqf7rHLEySef
bOecc46NGTPG3YORXanyw2aHJF5XKKWliWu30hZrpnA4bI888ohrW+rHXHnl
la5/oXZ3++23u+ec2pyeh/fffz+1DHJg2rRprv/43nvvpfX1f/zxh3sv1B/R
e6V7pd7DRYsWJX0dfcjgFRcXu3qCyucan37zzTftscces969e1vTpk2ta9eu
Cf8eLFiwwP09Oe2002z06NH22WefuTOR1FZ13qrG3eI9FzN9HdKnPWNqT506
dbKhQ4faG2+8YZMmTXJzDfr9z58/39WU1Bjoiy++6O6rRx99tGu3jIlWj35d
x12YPAdEX1seFrIHnimxWfMq7M5Hk/dx6rcJuTOs9zw+ZB8mqAGLmkV1Xjp2
7LjynqqxmV9//dW1ObW9mTNnuvlA1YXRc0/3PN0P9TlkT6r8oOvltxOvD9Tn
4r2mRfewLQvxfKppNP6lzNCjRw974IEH7IMPPnAfmzNnjmtbmgv88ccf7eOP
P7aHH37Y1XPt1q2bffnll0H/6LWa+vlfffWV6zvecsstduSRR9pGG23k5npS
0euU9dT/0HyR+oKqU3fxxRfb2Wefbb/88kvc19GHrBn0u9fZRvrdqz6Bfuea
+5s6dar7+DrrrGOHHHKI+/doquOjvyu77rqr638qh4her1oHapstWrSwyZMn
Z+V1SJ+yg/Jf9+7d3fubqtaS6sL89ttv9vjjj9sxxxzjMjwZonq+/q7Mtj0y
eV9F9Zm69w+7mkp//7Pi3qa9E+68uSSva9whZC++VUqdyFpAYzFHHHGE67/o
rJVU5zwsXLjQPS979uxpp556qssYyI54+UH7lDZs/e+/b90+ZNP+qLqJQWsF
4809dOodtiVL6ZfUNBMnTnT9VvVDP//885TrkzRP8c0337j1vIcffrh99NFH
Pv2k+UfjIP369XPjlcple+65pztv45577kn6Ot3r1Nc/9NBD3ZxBpL+v/ojG
XJo3b+76oLFzRPQha4a//vrLzS8MGzbMSkqqnqGp9rX99tvb2muv7f5+lJb+
24H59ttvrUmTJta+ffu4c4D6O7X55pu7fmzk/fXyukJWXo1Neur3X3LJJW5+
VnML1XmtcuNbb71lhx12mLsPIH3qJo7/pNQ6XVB1HmKTtiv2Pjzxaon9MqPc
oruUimnjlr+u4/J+SWz9V/VzlDfe/azMQmH6LH6rTtuRV1991Q4++GB74YUX
qrW+Ws89PT813qaxU+572RGbH9qcHrYpP5e7mkqqiRb5uGoYqJbB2x+V2nvL
29rtI4tty8OrZofe1xdZKRk+59QeqjN2rPk89Se0/kX/vzrUh9W6Qo2RFtL6
3WyOD2r9kcb/dQ+bN2+eywPp5AedhaNzbOONVyojaL/YZpttZs8///wqn6MP
WTNoPUujRo3swAMPtGeffbbK5/W71/oX/V1o1qzZKvPr1113na255po2ePDg
uG1dOXD33Xe37bbbbpX1aJm+rlCp7Zx33nlp92W0HvCAAw5w84KZULtVP0jv
93fffZfR9yhUpWUrzpEb+36pW5902/J+iDKDajwqNyRa86A12FOXv+618aX2
4LMldstDxfbQ8yWudqteV8qyJd9p/8JJJ53k5hDSoX6L2p3W/2X6zNLairZt
27q5C3gXyQ/K4Xc9VrxKbv9zcYXbG52sbpquei1DdvbVRfbN9zRCv2gPpuoL
pEP9To1Rn3nmma7vmonFixe7vYEaSy2E/qb6Xfp9qXZKtqn/oPHHVPlBv3Pd
6+rXr2+ffPJJ3K/RGqR1113XTjzxRDdfFEEfsmbQ+kDlv9VXX91OP/30uJlU
+2v1d0F5Tmt2Retj2rVr516nPdbxhEIhNxb33//+d+W9INPXFTKNqagNaf9C
Kpo/UB/m0Ucf9bT2T/fQyPpDVJ/6+1qftPCvSpcZ0h3q0fokvU59G62RKKM2
ZGA0FqlnlPoy6bSlQYMGufWCusd5oXa+2267paxbgdSef6PEug8IuwyeyIJF
Ffbup2U27IliO+/aIjuyZ9jOuabIhjxQbE++VmJ/zGEdp9+0LmWvvfZKqw1o
L4PGupS9vdC+QK15ee211zx9n9rif//7n7Vs2TLr+8fTzQ9an7Tpppu6nyPR
HgeNgW688cZuDYz2ZAt9yJpj1qxZbu+K5h80bhbvOal1ufq7oPc50ka1Vl7Z
Ts/XePMWoiwSmbvQehovrytkWoO0ySabuFyQqs6q6rjsu+++WbknqE3rvYq0
W6CQRJ5TesZpTi8ZjaXtsMMObg7fK40BaD226k4Chejmm2+2tdZay41hlaZY
MKb1fqqxlI29stp7q71LhUB7j7UufeDAgVldy5Rufnj66afde6w+RqJ+jfog
6ndq/FR7xIQ+ZM2hNTGa3/n000/dPr5Yqo+lOSa9D+q/Rr5G68/Up9Xfv2Rz
YMomeq3WAXh5XSHT/fOOO+5wvzPVWU2U1UXzBZqvyAa1Qe2lHjFiRFa+H1Db
aF59yy23dHXokmWIsWPHuvtjttY+aFxNa3uBQqR1SB06dHBjzzq7IXrtSjR9
XOsi0l1jmIrqjDRs2DBlvZF8oD0Lbdq0sS222MLVZ0yV09KVbn7QnhN9zc47
7+zWG8WjXLHtttu6rKA6dkIfsvbQ81Pts27duu68gEgtEc0Zat2TajMlW1ej
2lp6D1UX1MvrCp1ym+pKrLfeeq7GhNpQPNpTpN9xtqhetta1AYVI4ysa49pm
m21chki0LvCqq66yiy66KGv/XT03GzRokLVnOlDbqJ6S5gI0/6d5CNWGjPc1
6l9Wt85BMvvtt5+rQ1oINF960EEHucykORyNF3uVbn7QmQ36mj322CNhzTnt
KdO8rtYqRcYx6UPWDpq/P+uss9waMo17R9c10P52zSmtv/769u677yb8HqrF
rPdQcxheXpcunWegnzkfL43HqN1ozk/rFmPXN6jd1qlTx62lyBbdR7UmNJr2
wAT9u+Di8us65ZRTXI2J//znP9a4cWOXp2P3OGh/34MPPpi1dqe2rPrpqlsf
7fzzzw/898HF5de1zz77uGea9tiqH6i1vNFUW0R91WxS+47t96omc9C/i1xc
2kOt/rvG8jWmr/UGXmtQpZsftK5IX6P3ONE5cZqX0D1XX6dzciTXfUh4p7Ur
qt+p2llai6vzVaLXyL399tsu/+k9THbGoNYm6j3UPJmX16VLe3J0v8nXS1lO
vxddrVu3XmUsVGsn9PFsjsUo6+v+Ek31XYP+PXBx+X2tscYarn3pWRu7XkJ9
m8j8erZoXUHsWkVliqB/D1xcfl5auxJ55mkNRDSt89P5Admks+KHDBmyysfU
1w769+DX71hnB3uRbn7QfK2+Rvs1E+UH7c/dcccd3ddpT4zkug8J79QPV00D
/T1QHzK2T6q6TXr/tJ4mWQbUeUh6D5VBvLwuXRqv07ki+XhpjYTWkun3orXR
qhMRnR/0HulekOrM9+rQ/GDs/IPmeIL+XXBx+XXpuaW9DWp3WsekPZY6Nyea
6j5ms+aq2rLuk7HrsLVmOOjfBxeXX5fmAtS3VWZXfdXYWpw6Z0VnDWST1r3E
9nu1vyno30WuLu0P0NiI+uTqYyTbX5mOdPOD1ktF5h/i7b2VyPolfd29997r
PpbrPiS8+fXXX61Lly7u/DGtj4t3fqrqaml9ruaRlAcTiexhOfbYYz29Ll16
7urZnm+Xag5oDZl+b2oXOtcv3vuiNdpqX9mi+4vGXqLpvxv074OLy69Ltca1
h1r1xFWPPN65cKrdqjqv2aKaZxoriD3TU2vAg/59cHH5cWnsSjVctXZJ+/A0
Fh1L5xOpbWaj9lLE3nvvvbLWT4TqgQb9+8jFpbObVStaa5fuv//+jM/PiJZu
ftC4jL5G73H0uWLRIvuntf8hMi+S6z4kMqf1Zuecc447r0x7kxLV9dL8vepq
aVwgUV0S/T3Smn29h/qeXl5XyHRvVFavV6+eOycnWa0J1dpVPbZs0TyH1n4C
hUhrbbX3QWNkGuuKl9lFzzGt88vW2kHtbVKdBKAQaT+t1q1rvZ72FamvG4/q
L6k/ETmXyitlFK3ZLoSzV9Q3V91+/XnVN/d6bk1EuvlB6+O1p0z1l+JlQ9F5
Adrbrf6izrQV+pA1k9a9XHrppTZgwACbOnVqlbUxmp+P1OnV16pOgea9dG5E
PPr7qL39+hqNH3h5XSF7//333VjkIYcc4tYOJaP1gDp7Jxt1FPR3QHOHido2
kM90H2revLkbm1M+SFYjXf0bjeOprXqle63uf5x7hEKl8TLVCbnhhhvizvdF
O/fcc93apmxQnXTN82fzPISaSrUY9DvWesxE9XEzkW5+0HiM1iFp/ujnn3+O
+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
FiyqsDnzK6y0NPPvQ35AoVK7UfspLq6M+3nyAxCMpcsqbebcClv4V6WVl2f3
e5MfABSSyuVdnO9/KbcHnilxdelPuChsHc8PW4fzwnbixWHXl7lheLG9+2mZ
VVSk/33JDygkcxdU2IhnS6zvDUWu3aj9nLD8n6rV+siLJfbj9H87K+QHwB/K
CJ99W2Z3Plpsp14Wti59w3Z0r7B16h22ky4J29AHi+3jr8vcc9Ar8gOAQjF9
ZoVdcnORHXpW2Jp0DNmGrUO2wfKrwcH/35dpEbKN2oSsUfuQNe8etn43FdnX
35Wl9b3JDygES5ZW2r1PFFvH3iva0MYHr2g3aj91lv9zi3Yh2/XYkB1+Ttge
f7XEZXDyA5B7P/xa7p5ZrU8L2w5Hh6xey5Bte2TIDuwWtrotV7TPbZb/+0Gn
hu2au4ts1txqDJDFQX4AUAheHVdqR58Xts0O+bff0nNgkb33WZmN/6TUzru2
6hlXmy7/2oN7hO3tj1MvbCI/IN8t+qvSLhhcZI2PWdEXiW0v2x0Vsjanh63h
oSsyxe5dQm4cNNX5D+QHwJuX3i61w85a9fl26a1F9sXkMps0tdzGvFdq+5wY
Xvm5LQ8LuXnDn3/LfFET+QFAvnv93RX3To3BRO6fWm/x26wKNz6qOd8Zy/9/
sxPi929anBK2735Ofp8lPyCfzV9YYWdfXeQydWz70Bye5iTUV5nyU7l98k2Z
XX1XkW3cNmQ7Hh2yvRO0K/ID4N2ol0qqtDGtW5o179/5hZJSs3c+LrX1Wv37
NesdFHLziNFfVx3kBwD5TH2ZfbuGq/RZXn676pyC1nLH699orLXrxeGk/x3y
A/KZ9jVsdHD8/r+ywl9L/l1QrbXVcxZU2MgXS9x6wOjczvnTQPaMnVBqux1b
tU2NmVD1+VZcUulyRfTXrbM8T/QZXGRlGUxDkB8A5KtQuNLa96yaHXS/XfJP
1Q1kGsdJ1Mepv7wfpD5RIuQH5KtPvy2zrQ6P3y60XkJzd/For8TgFHsfyA9A
Zqb9UeH26cW2J42X/bMs/gbp+5+u+ozb4tCQvfF+9YsPkh8A5KsX3lx1vjZy
XXhj/P7KV1PKkvZz3vwg8T2W/IB8pDHLzn2q9lEi1+mXh5PWKZv3Z4W1PCXx
68kPQGY0bxBvbu/aYcUJXzPhi/jPuGOXt/Hq1mQiPwDIR0XFlW4vZ7x75b1P
xr+//rO00jZpm7ifM/pd8gMKi2o9au4tUZt48NmSlN9jwC3x1wWy/wHIzNRp
5SvqFMRpTy+8mbhNas9fvNdor1KqPX6xyA8A8tEr40pt/YMS3V/j5wCNv1x2
W/y+ju7VidZpCPkB+Uh7G5L1/T/6OnV9Y+q3Atl1TZJ2maxNLvq7MuHrdCZS
dZAfAOQjnfGQ6D75/heJ768zZlfYaZet+lqdBzHiuRJ3VnUi5AfkG9UlS1ST
LHLN/TN17RbyA5A9Wi/YtHPi9vTrjMTzCNoTmOh1Om+uOsgPAPLN4iWVrqZk
ovvk198nDgKag/j193J3XsTdjxXbQ8+X2Adflq1SXyYe8gPyjc6jird/KPrS
/ohUyA9A9kz7o9zWTdIukz2rNCaQ6HWNO4Sq9XOQHwDkm8k/lidfc/FV6jUX
6hct/rvS1ZApT6M8NvkB+ea18aVJ25H6MOnsuSQ/ANmjs+KStSeNew1/uiTh
Fe/sR12q5VpcnP4mavIDgHyTqt+jz2cb+QH5Rmv2krWjzdulN15JfgCy565H
k7ennY4J2c4dE19rJ8gPuubMT/8sOfIDgHyT6v76yIvV2yeWDvID8s2Nw5O3
ox2OJj8Afrvm7uQ1DS4cUmR3PFKc0bXoL+YfABQune+Q7P6q2hXZRn5Avrlo
SPJ2tHV78gPgtwsGJ2+Xj75cYguX54BMruqcQ01+AJBvzh2U/P56yBnVqzOR
DvID8k3/m5O3o40OJj8AfkvVLm8ekfj8uGwiPwDIN6nOq9p4eb/nz0Xpr/NM
B/kB+ea2R5L3+3X2bXka45XkByB77hiVvD2dVs06rJkiPwDIN7c8lPz+quuN
D7K7h5r8gHzz3Njk+6d1LQtRvxXwk86XTtae9jiuenVYM0V+AJBvxkxIXn9J
1ymXZneMhvyAfKNzbFO1o9+SnMkeQX4AsufTb5O3S519pDOMco38ACDfzF1Q
4dZWJLvHqvbkxKnZu8eSH5BvZizPBqnyw7iPU8/jpcoP519HfgDS9cec1O2y
/03Vb1PprEWMRn4AkG90HzzkzHDKe2zv5f2WdM6/Sgf5AfmmpKTS9u2avB3p
rKpUUuWHXoPID0C6SpZH9gO7JW+Xqo327ffpB4Ifp5W752ER58cBKHCPvZx6
7faWh4fsydfSOwtC91fty/5nWfz7K/kB+eiex5P3/U+4KPU6wLOvTl7PQJ/3
gvyAQvPAM6mfb6dfHraKNMqELF3+TDupX9h6XFFUrTkI8gOAfKRa1k07J7+/
6tq9S8je/DD5GowvJ5fZ0eeF7cSLw1ZaFv9ryA/IR3MWVFij9onbT8NDk6+1
/uSbMtv2yNzuRSI/oNDMX1hhOx6dvF1tdsiKWq7hosRzCsoOl95aZNstb6Pf
fJ/g4ZYA+QFAvnpmTEnKfRC6Djg5bLc8XGzT/ihfOf4SClfaxB/K7b6niq3N
6WE3H/zZxMT3V/ID8pHW96WqN3/5bfHXAf42s8La90y9jlDtywvyAwqN2tug
YanrDCq76zzVX2aUV5mLmDS13PoMLnJjANffV5xwbCwR8gOAfKW1RucOTN73
iVwafzlieV/n5P5hd089/qKwtT0jbDsdE7I6LUI27Ink91fyA/LVj9PLbZdO
idvONkeE7IlXS6y45N8Q8cWkMjdft16rkDXukLztbdI2ZBM+r2bnJQr5AYVI
+TzV/iRdmx4SsvbnhN16piEPFNutDxdb3xuK3Dmq+txhZ4fdPGN1kR8A5LPp
y++xXS9OfY+NXJqvaHDwisygf6/fJmS3jSx266GSIT8gX2lO7tVxpa6fn2wd
4MmXhN04pvK35hRUR1L9FF2p2l3r08JuL/br75ZWu6YB+QGFSPMJ731WZtsd
ld6zbd1WK7K+vl5nqOpjyg6Z1iEkPwDIdz//Vm5nXFm0MhOkezXSuOprJbZw
ceoODfkB+SxUVGmjXipx/Y9k2Vvr/Br8f9+k58AiV2syVf0lXfWWv7Ztj7Bb
K5XOns9o5AcUKtViem18qe1/UvpjZJFL8+1aw1SRYQ1C8gOAQjD9jwp75MUS
2y+N+6z6SP1uKnJjO0vTOF9XyA/Id0uWVtq4T0qtY++wrdMq+XoJ7SeKnC0X
mx/02j26rKjdpL0TI54tsXc+KrWvppS5OmfMPwDpCxdXur3PFw0pcvk91fNN
a57ueKTYvv+l+m0tGvkBQKHQfgjN1T7/RonLB+q/aA1o825h69I3bBcMLrLb
lvd7Pv2mzGbOrbCyakzrkh9QCLQHaOryPr7WGV1yc5Hb46C1Sq1OXdGGrh1W
7HL3n4v/nUQY8VyJ21d0zV1FLsPr8+rvaF5w9vwKW/JPZbXPropGfkChUw7Q
XN9n35a5mh/nXFNknfuE7aDl7VJrA9X+Lln+zBv+dImrC5JqPW46yA8ACo3q
2SkfqP/y3c/lbg73p+nl9vvsCrdWKZMxGfIDConWTcz6/zY05adym/zjijY0
788KK49Zf6Tz4FX/Rf9Uhq/u+qRUyA/ACnp2/bWk0u2tVt0DtUu1T7U/PfP0
uWwhPwCAd+QHIBjkB8B/5AcA8I78AASD/AD4j/wAAN6RH4BgkB8A/5EfAMA7
8gMQDPID4D/yAwB4R34AgkF+APxHfgAA78gPQDDID4D/yA8A4B35AQgG+QHw
H/kBALwjPwDBID8A/iM/AIB35AcgGOQHwH/kBwDwjvwABIP8APiP/AAA3pEf
gGCQHwD/kR8AwDvyAxAM8gPgP/IDAHhHfgCCQX4A/Ed+AADvyA9AMMgPgP/I
DwDgHfkBCAb5AfAf+QEAvCM/AMEgPwD+Iz8AgHfkByAY5AfAf+QHAPCO/AAE
g/wA+I/8AADekR+AYJAfAP+RHwDAO/IDEAzyA+A/8gMAeEd+AIJBfgD8R34A
AO/ID0AwyA+A/8gPAOAd+QEIBvkB8B/5AQC8Iz8AwSA/AP4jPwCAd+QHIBjk
B8B/5AcA8I78AASD/AD4j/wAAN6RH4BgkB8A/5EfAMA78gMQDPID4D/yAwB4
R34AgkF+APxHfgAA78gPQDDID4D/yA8A4B35AQgG+QHwH/kBALwjPwDBID8A
/iM/AIB35AcgGOQHwH/kBwDwjvwABIP8APiP/AAA3pEfgGCQHwD/kR8AwDvy
AxAM8gPgP/IDAHhHfgCCQX4A/Ed+AADvyA9AMMgPgP/IDwDgHfkBCAb5AfAf
+QEAvCM/AMEgPwD+Iz8AgHfkByAY5AfAf+QHAPCO/AAEg/wA+I/8AADekR+A
YJAfAP+RHwDAO/IDEAzyA+A/8gMAeEd+AIJBfgD8R34AAO/ID0AwyA+A/8gP
AOAd+QEIBvkB8B/5AQC8Iz8AwSA/AP4jPwCAd+QHIBjkB8B/5AcA8I78AASD
/AD4j/wAAN6RH4BgkB8A/5EfAMA78gMQDPID4D/yAwB4R34AgkF+APxHfgAA
78gPQDDID4D/yA8A4B35AQgG+QHwH/kBALwjPwDBID8A/iM/AIB35AcgGOQH
wH/kBwDwjvxQ84SLKm36zAr79Nsye+ntUnvkxRL3zwmflwX9oyGLyA+A/8gP
AOAd+aHmmPJTuV16a5Edd2HYjugZtoNOC9veJ4Rs12ND7p8tuoeD/hGRReQH
wH/kBwDwjvwQvPkLK+y2kcXW7sywbd4uZGs3X5EXhj9dYg89X2I7HL3iY7qQ
P8gPgP/IDwDgHfkhWD/8Wm5d+oZt+6P+zQi6Xnyr1P7+p9KWLK20ngOLyA95
iPwA+I/8AADekR+C88+ySuvaL2x1W66aHXT9taRy5df1upb8kI/ID4D/yA8A
4B35ITg3Di+2+m2qZod1W4Ws8t/4YJ37hMkPeYj8APiP/AAA3pEfgvHF5DLb
7siq2UHXOq1WzQk3jSgmP+Qh8gPgP/IDAHhHfgjGHaOK42YHXXVarJoTZs+v
sLsfK7YTL6b+Uj4hPwD+Iz8AgHfkh2B06x9OmB90Ra9fksV/V9rPv5UH88Mi
J8gPgP/IDwDgHfnBf8oGjTskzg66yogKeY/8APiP/AAA3pEf/Pf3kkq3xyFZ
figpDfqnRK6RH2o+Zf0/5lTY9D8qbFmoMvULUOORHwDAO/KD/xb9XZk0O5Af
CgP5oeZR3WTtNTp3YJG1Pi1sG8XUR2t4aMhOuyxsz4wusTnzK9wZLckuMkfN
Q34AAO/ID/5TH4X8APJDzVFRYfbYKyXWqH3Vtti0S8jliVanJt+zFO/Sa1Cz
kB8AwDvyQ+6Vl5u9/0XZymv0e6Up+x3jPild5TXsh8g/5IeaYeLUcjfXEK8d
ai4i2nNjS6xenPMeyQ+1B/kBALwjP+ReKFxpLU8Jr7wOODn1OGbz7uFVXqOz
qpFfyA/B+/aHctvskPht8PLbiuK+5so7isgPtRj5AQC8Iz/knvr+1V33EHtp
LTXyC/khWH8uroy7Xily/T6nIu7rVEc53tfv3DFkk6aW228zK1Zes+fF/x4I
DvkBALwjP+ReUXGl9bupaOXV+7rU45cXDila5TXhIvJDviE/BKv39Ynb4W6d
k5/13viY+K87rm+4ytktqFnIDwDgHfkh9yqW9ydmzq1YeX3/c/zxy+hL9SKj
X1PBMGbeIT8ER7WT6rZI3P5OviT5uqPOfRKvQVRtJtRc5AcA8I784D/qL0HI
D8F5+PmSpO1vwC3x9z5EXDQk8dzFiRez56EmIz8AgHfkB/+RHyDkh+BcclPy
NYQ3Di9O+vpB9xQnfO2Whydf+4RgkR8AwDvyg//IDxDyQ3C6D0heA+22kcnz
w9AHE+eHyPpD1EzkBwDwjvzgP/IDhPwQnH5Dk88/3DEqeX4Y8kDy/DD5Rw5s
qanIDwDgHfnBf+QHCPkhOPc/lXz/w8B7kueH/jcnzx9LllKEqaYiPwCAd+QH
/5EfCs/QoUPt6quvts8++2zlx2Lzw+LFi+3++++3fv362Q8//BDUj1oQPvyy
LGn7U23XZM64MnF+2LED+x9qMvIDAHhHfvAf+aHwqK/SsGFDa9eunY0aNcrK
yspWyQ9TpkyxXr162TbbbGPNmjVz/47canN64j0QXfslr6HU8fzEr709xd4J
BIv8AADekR/8R34oPBMnTrS7777b9thjD2vcuLE98MADtttuu7m298gjj1jH
jh2tQYMGdt5559no0aMtFGIMO9fe/TTxHITmEMoTbGFQ21SNpXiv03nWS5ex
dqkmIz8AgHfkB/+RHwpTUVGRywb77LOPbb/99rblllu6tte6dWtbb731bPDg
wTZjxoygf8yCcv19ifdBK1/EM2ZCadyvX/+gkL3zEQ23piM/AIB35Af/kR8K
29ixY61Jkya29tpru7anf15++eW2aNGioH+0gnTvk/EzRKfe4SrtMFxcaUf0
rLp2SdnhrQ9ptLUB+QEAvCM/+I/8UNgqKirsueeec+1O16mnnmpz584N+scq
aO99VmbtzqyaC3SW9JSfy117/GpKmR0ZJzvoY9RrrT3IDwDgndZLaB128+bN
g/5RCgb5AaWlpXbhhRfakUcead9//33QPw7+n3LEwT2qZoS6Lar++9G9wvbq
OBpqbaMaZ3rmXX/99UH/KABQay1btsxef/11e/PNN4P+UQoG+QEyZ84c+/zz
z62ykv22NYHWJg17otjtjd7nxLD1GVzkzpk7d2CRnXJp2E67LGzX3F1sj75c
YnPmc750bfXzzz+7Z97kyZOD/lEAAEgb+QGoWd78oNTVXFLb09lxiWovAQAA
BIH8ANQcI18oWbk+aa/jE9dtBQAAZgsXLrRvv/3WPvzwQ/voo4/cOux//vkn
6B8r75EfCpvOdvjxxx/t448/dm3vq6++snnz5rGOKQDPjilZpd31uCL5udOo
vcqXB8Pff//dnQH/wQcf2KeffmrTp093e5EA5FZJSYn98ccfrn4Iaiftd3j7
7bdt4MCB7rzbiy66yAYMGGD9+/e3Pn36uI/dfPPN7t6qM3KRfeSHwqNs8M03
39idd97pzohTW1O706U2qHZ3xRVXuHXZf//9d9A/bkFQO9zmiFXbXdMuISsq
Jsflk1mzZtkTTzzh2tn5559v/fr1c+3ukksucf+utqgzHKdNmxb0jwrkLdUt
Vxv866+/En5NOBy2d955x4YNG+ba5PDhw23kyJH266+/Jv3emb4O6dNcQ+Qe
etVVV7kzcF9++WWXJ9566y1XU/Kee+6xSy+91M4++2xXn0J5Edm1+O/U+aGY
PkzemD9/vt1222125plnupyuDPHMM8+4Nqe29+qrr9qIESNs0KBB1rt3b3dp
PhC5NeK5krhtr+P5YZvwWZn9MafCZYyFf1XagkUVNndBhc2eV+H2Tv+5uNL+
WVZpTBnVXJpXeOGFF+yss85ytc5uvPFGGzVqlI0ZM8a1O/VnHnvsMbvpppvs
4osvtjPOOMMef/xx1xeBN8XFxe53rP7ENddc48Yr77vvPjffmmq+R3Ulnn76
aVcnS31B9QlfeumllOMq9CFrLtX5bN++ve2yyy42e/bsuF+j849uvfVWO+ec
c1y7VPt85ZVXbOjQoe5jEyZMiDtHn+nrkD6de9utWzfXf9HvN9F7qLmlX375
xWUJjZPqnjpp0iSff9r8Nu/PipT5QRkDtZ+eXaozrzyuvskPP/zg1lHEs2DB
Avf8U7Y/+eST7cknn+S+l0PnX1eUsh2munRu3G6dQ9a5T9iGPlhsX0xizrYm
UF9S/Qc989S3+OSTT2zp0qUJv/bLL7+0u+++253FcvXVVzMH6IHGS/S7HDx4
sD366KNubOS6666zDh06WNu2bd36hkTn3Xz33XduPkjnab744ouur6KxFuU7
zc+qHxoPfciaS1lS7/+6665rO++8c9y+p56JGs/eY4897OGHH16Z4fWe6Rna
vXt3O+KII9x5Zdl4HdKncU7Vmb/jjjts5syZab9uypQpdtlll9nxxx9Pjfos
+vm38pT9kt9mskawttPcnfojmk9Q/yTd55dyxEMPPeTuexqHQ25061/1nIds
XDqH7pcZbMIOisa3b7jhBuvYsaOb29N+o3Son6Nn5Yknnuiee+m+Dv/SGve7
7rrL9fVVm1r9Od33dE/THMLuu+9um2++uTvDL/b3q/2Ymitq3bq126MSWSev
ddTjxo2z/fff3+WK2BxIH7Jm03vXtWtXW2eddRLmB42rNWvWzOXLxYsXV/m8
1vVuttlm7v3X3zGvr8uU/q5pzY7WRBaC3377zQ455BCXHbT3obo0l6g1T2qD
6b5e75PmjXXPQFWjXoq/biL6euFNNkDUZurDaBytR48eGa2rVhvSWotWrVpV
a/5P+0K1zwKpDb6/OCf5QdcmbUP25WTmIoLw/PPPW5s2bdxcXia0909rLdQn
TZfG5TReXugmTpzo+uoa74+lHKB1nGuvvbZttdVWrl8ZTXMVG2+8sZu3iJ2j
1f1U/ZAtt9zSrT+L5ncfEulTP1t7jbR2baONNkqYH2655Rb773//69a6xRtn
01ic1j7p9Tq/xevrMqVaJ3vttZfLEIVA6z7Vh/FSV0k1Kw499FC3pjAd7733
nhsLGD9+fMb/zXzz9z+VNmN2hT03tsSanZC6/9HylLA9/0aJ/TarwhYvYd61
ttF6wRYtWniat9N4qPYinXTSSWnVMtCaC40VaOwUqak9rtsqN/lBV+NjQq7d
wz8a71K70xoWL9R+DzjggLTHrLXmcO+99064NrFQKHM1bNjQrdnU2GUsndm3
xRZb2Oqrr+7ubRFLlixxayQ22GADe//99+N+b81faAz79NNPd/fGCL/7kEiP
spr2vzz44INuP1+i/KBxab33+juRqI+pr9G8VJ06ddzaei+vy5TmvbQWp27d
um6cLt+prey0005uTaFXaru6P6aag9A6RL2n66+/vtuvDbNwUaUd2ydsR54b
dvXl0+l71G25oha9XnPsBWFbFqIfUluoD6G8rXunV3r27bbbbm5MNBk9N7UP
dI011nD/RHrSmQv0cj38POOdfrr33nvtqKOOymiuPZr6PpG9EKmob/S///3P
5Y1Czw/qw6+22mqujxVvjFZrEnQ/09doP0RkPkB9BeUOXdp/GY/WgDZo0MD1
aSL7IPzuQyJ9moPSnI8yvdayJcoPGp/ecccdbc0113R7XeJRuzrmmGPc3xt9
Ty+vy4T+DmkPR7169axnz56e7y+1gfYpaR9mNvYNKXtpjjDZnILqcmnsU/OT
qo0XPUZQyPRI+eirMk8XpXRrD42xNW7c2J3pkA2a/73gggsSfl7rhLVPQmsC
mjdv7mraI30vv11apY5rtq7j+lLLxy9qBxrj0p6HbNCea7XjZPsgtLZQYwXq
17722mtZ+e/WZvrd77PPPiv3MMTSPVFzAerPKedF5lXVr9ccwrbbbptwj7Tm
gpTTNDYZWR/lZx8S6dP+ePUFI3NJyfKD2tCmm27q+o3J1gWpL6v3UDURvLyu
urQmTvOLWgOnrFooc1hay/Dss89m7ftFaiDEo5oLqqut+2iXLl1cuwYKkdZ6
ap4zW9SP0ZhbvHEAPX+111pjek2aNLE333wza//dQqGarNffl5u9EPucSH7w
i/olWj+vtTDZoPEv9WcT7T9Su9QYev369d1+bdbWrxhD1D1I/cZ4uUv7I9QP
03yBxhgjVK9JfTzd5xLtTVWfQu+HskJkHsGvPiTSp70qqr2r52BR0YrzOJPl
B7UjtSGN7b/xxhsJv+9pp522ct7Ky+uq4+uvv3Zr8fTf0c+uHKH9NPl4RddV
1liM7qXZHIvUGKfyVyydo6s6rxoX2HXXXd25EUH/Lri4/Lpis7LqBWruL1u0
d2nDDTescu6O1jZpTnWHHXZwNU20z0nP0KB/H7XlevKZt+ywHr9ZnRb/9veb
dZ5nVwz50h4cNd6eePpte/6FN+zFl8baCy+Odf//mefedK8b9cQ7Nnzku3br
vR/aRYO+tf1PmBM3P+zWcUHgf858vWLX9Om8gf322y9r7U5Uwyl2L4X6xfqY
xufUd4nsDQz695GLS/2nbFIdF80zaK5U+yQj1GdQH0/1mRLN22qPuu51yh6q
syR+9CFRPXpPtLcl+uywZPlB++hV21X9x2TrW9TH1HuodufldemKrI1ba621
3OsbNWrk5tby9Yoed9HYidpZNsdEtGdEe8+j/fnnn67uwX/+8x/3O9b4QNC/
By4uPy/tDYqmZ5TObsgmjbHF1nHS+J2enWp3ujdr7UbQv4vacjXb9xBbv/kf
q9ZMOuAz23ufVhl/z233u69KftjigHcC/7Pm66VzUKOpfs+xxx6b1XanM5Bi
9xNpnZL6QWp3Gvdu2rRp4L+LXF3ZXO+jWqoHHnig6+tfeeWVq6wh17lU+n3q
v6k6rvGo36n1ZPo65RDJdR8S1aP9LVqjovcler48WX5Q7te+eL2H0ZkylsbH
9B6qtpqX16VLdYA1X6U9hepL6++e1uXl6xWdH5Qb9GfO5h4EzUlqD0Q01XzR
PTvyO9baxqB/D1xcfl4ap4umMcsnnngia+1ONtlkkypziVozEckPmn846KCD
Av9d1JarccvHqvT192g50NP3PKj1obZOi0WrfM9dWt4T+J81X6/o9S+i8xk7
deqU1XbXq1evKnOJ7777rssManfqC+tcgqB/F7m6Bg0alJXfo+ZQtb5Z9yvN
z8bey1SbVb/Pfffd19VgiUfrmrTXQV8XeU9y3YdE+rSWVvNCOv8jdu1asvyg
fqXev/XWW8+1rURUz0Dv4WGHHebpddWh+omqoaC1PFtvvbWrD6C9N/l4Rdd4
VPZTnyKbZ6bo/qx9SLFUb157ZVR7TfMPN954Y+C/Cy4uvy7Vl4imcVH17bNF
65a0fim2BrP+u8OHD3drBnVv1hktGvcJ+vdRG66jzp5VJT/ccu9ET9/zldEf
r7IWarsj/rJ3xn0Q+J81Xy/VKYim/mPs/LhX2uP71FNPrfIxrenWHIT2+amm
j+rFap9h0L+PXFw6W8ErraXWeMp2223n5gF+/PHHKl+jMetU8w+R9Uv6ukht
Oz/6kEjPF1984dYtxavbmyw/qK6WPqd5JOXBRCJ7WCJjBJm+rro0Rq5MpNpg
LVu2rHLfyVc6A0d9/mzROboDBw6M+zm1ec3zap1Fu3btEtZgA/LdiBEj3BxE
tug5rv3R8WjMQOunNG6n5zP1CdNz28iq+6W79gubl/KbN43493vWXZ4jRr/H
GZB+Ug0P1e+Id4ZYJjR3r3X6ifrQ2gusfqnGzVRbhP3TVWkcU7lOa5zVf5g6
dWrcrxs6dKjr4yn/JTp3NrJ/WusctFZN/OpDIjmt9dF5qWeffbZbu6vMHX3p
TEC9R+qDa1+1PhY531F5Uh9XFk9UO001tPRM1Xt45plnenpdJrTWTj+35rp0
Pn22ajTUZMroai/ZqN+q35fGObU3JtnX3Hrrre791HsV2XsPFBLVd9M4mcbL
skHPXdVwTUTje9o7uP3229uee+6ZlTHDfLfo70rbpVPV/c5nX13kPlcdOt+x
58CiVbLDU6/Tl/SbnnMaH0xUx7O6tJ5e+3mTPcfUh9E8hOYHszlWly/Uv9f5
l6pbk6yWi8ZctAZaNeTinU8skfqt2n/9yiuvuI/52YdEYupfa92JcoLO84u9
lCu0D1m1tzQGrY+pHo8oL2pdvN7/SC6MpfMDtPYs+nyjTF/n5c+oP4f+rr31
1luevldtoLyuemhqw16p3oTuzcqZyWiup2vXri5rpjrzCshHel4ptw8ZMsTz
99KeQ835aqwzGfWddM6n7pOJ5gixqp+ml1ub08NVMsT6B4Xs1EvD9uzYEnv/
8zKbNLXcfp9TYQv/qrTfZlbYN9+X27ufltl9TxVbh/PCVq9lVP2mE0L29kfM
OwRl1KhRrr+gfoMXmkvo3LmzGxdPRet3NS6+xx57FPz5cdE0jqHal+q3xa7x
1FyR+o+RNdeaO1CfQfM9idYuaH2M5pe0Fl3/X/zuQyI+/b1Xf1NjZ/GuYcOG
ufygMS7V69THIuNrqhuqfrnmlRK9P6rJpSyvnB7ZJ5/p67zQWcw6Y2nMmDGe
v1dtoP1PGh9Rvz5Teq+1xvPFF19M6+u11k1ncX744YcZ/zeB2kxrjlRL0kt2
1/oJnXWpZ3BZGgcIan+Ecku29jwWAv1an3itxDr1XjUHVOfaqE3IuvQN26Mv
l1gp0SFQ6k+qnqrOE/BCazBatWqV8CyzWNrPq68nP6ygNfBaC686SfHWI+n+
qPta5Pel37PmHpQPItkglvps2q+uGk6R7xlEHxLVp3W1yg/x9j+I6o7r/dFc
VbyaPzqLUDVEtDY++u9Tpq/LlP6+6u9QNr5XbaCaBdrzrHppsfsv06Eavlrj
qTUUyc7hjKY2rbVt2VqHCtQ2agOaB1BtskzWE+leqLWAuu9VpwaC6rUnWmOM
5P5cXOHmG54dU2J3jiq2AbcUWbf+YWt9Wti2OypkTbuErN2ZYbdP4vzritx+
B50NX1TsfX0oskdrC9SXf+GFFzJ6vcbCNV5dnbNXNb5O33QFnT2s/ob2RH/1
1VcuG0QurWHSGK7qwkaPc+h+d8EFF1jdunXdWRrxaH2M1o7orIjonOZ3HxLV
o/dEa+lV419nKGguXWtuo+kcANVK1brf2Pyo16sG0hZbbOHmrKJfm+nrkD7N
F2kOQu053t74RDR2etZZZ7l6a1pHASB96lOoLqH27mm8Ld19SHr+au2TzpFI
diYSgKo0V/fAAw/YEUcc4fqi0ecMJKP+hsZJ1e6U3VOt1UVVGjNUdthyyy1d
/RatZY6+tPdUexG0rjp2v4jWLahOhPoqsTVcNWaterKae4gdj6EPWTMpq2lO
6MILL3TvnbKh5pf0PNTcVGxdM73/Gm/TWX/qs2rdmZ6hI0eOdHleZ6XGW0eT
6euQPtU501k4qp+mudnoswGjqY+jmrfaa656kHqf49VbA5Ca2plqRuv5dvvt
t7u10onWOGhNsMZMtWZJmV3z9dmofQAUGu15fuihh1yfQmeTaU4h0Z4Ifa3y
vfb4aq5da58Kob5KLqhOq/bIaq9ysks1V3UebTTtOVHeU59P9a+1D0JrHtQf
UX141XBSrbl490/6kDWPsqT2zao9af/Dvffe6y7NReifsXuQ9b7qfVTm0Lo3
/V3Qnj7NO+n/JzqXPNPXoXqU27VOU3lQfRStr9A9VmMuqlmh91TtVJ/TuKne
g9h9TwCqR7WNNdamGo9a86tzr3RPVZtT29Mz7tprr3Wf69u3r6thoZwBIHNa
Q6jzUDTvrvW3urQfWm1R7U7jaKoDo7qTOrNFY2XK7NQNzJwygcZJUl33339/
3LVEWmOt9Ui6B2oMU/0/9T2VJzQXm+i9oQ+ZP5Q7NI+kzK/av1q/W5rGxrJM
X4f0Kc+rBqvOndI6Qs3tadxF/9Sldqo6BpMmTUprzyaA1DRvrvyuOVs90zQn
Ed32ND6m56TmCRn7BLJH6wHHjh3r1iRpzX2k3enSGJrG1FT7M9GcPPyle6Xe
C9Vf0Ri15hM0jpnOXCx9SCD31Ba1xlB9Gu251Hin5gsz2WMNIH1ajz1t2jTX
5tT2ND+vNbyszQVyR+NhWkev82PV7rSPUzUkOfcNAAAAAAAAAAAAAGoGnRNN
jSXAX6+99prba0SNAsA/qsuqvbjsMwKAzGkdts7r7Ny5c8L6dgCyT3XmGzdu
7OoZAPCHMvsBBxyQ8LxiAEByqiup8yAiNZl1ZhV7yQB/NG3a1LU71ZgEkHuR
M8rU7nTG2TvvvBP0jwQAtYrqLA0YMMDq1avn7qVrrrmmO6NRNSQTnW8FIHvI
D4B/pkyZ4s5E1jm4anfrrLOOtWjRgvk/AEjTrFmzXO3rDTfc0I488kh3L113
3XXdnO4222zjzpGjjiuQW+QHwB8fffSRW6O7wQYbuPW6anetWrWyjTfe2P27
zgvgrHcAiE9rk5599ll3xrvum126dLHXX3/d3UuVJXRWS/PmzW3rrbd2508z
twvkDvkByC2d73DPPfdY27ZtbdNNN3XnxV1++eWu3Z111lnuTLmGDRu6557+
v85AAgCs6rfffrO99trLzTH079/fnZ+j8xkj+UHjL+rL9OjRw91TDzvsMM6g
BnKE/ADk1qhRo6xRo0a23377uXl1ndN47bXXunZ37rnnuhpMI0eOtNatW7v9
EMoQAIBVzZ8/3+6880578sknbcGCBe5j0fkhQmMwI0aMcPdb8gOQG+QHILc+
/vhj98zT3HqkNkh0fhDt95swYYLdddddbh0TAKCq2DWe8fJDoq8FkD3kByD3
Yp9jsfkh0dcBABJLlh8A5A75AfBfovwAAEgf+QEIBvkB8B/5AQC8Iz8AwSA/
AP4jPwCAd+QHIBjkB8B/5AcA8I78AASD/AD4j/wAAN6RH4BgkB8A/5EfAMA7
8gMQDPID4D/yAwB4R34AgkF+APxHfgAA78gPQDDID4D/yA8A4B35AQgG+QHw
H/kBALwjPwD/196dANtY/3Ecb6dNm5LqqqS9KVS3mUqitGihaSJNtCuhRQpp
kaJElBRuWZI2qbjiqrRIhDYU2kkLpdIiInz/8/nNPGfOPfc513+en/s8x7nv
18yZcu557jln5n5/z+/7W76/ZJA/APEjfwAAf+QPQDLIH4D4kT8AgD/yByAZ
5A9A/MgfAMAf+QOQDPIHIH7kDwDgj/wBSAb5AxA/8gcA8Ef+ACSD/AGIH/kD
APgjfwCSQf4AxI/8AQD8kT8AySB/AOJH/gAA/sgfgGSQPwDxI38AAH/kD0Ay
yB+A+JE/AIA/8gcgGeQPQPzIHwDAH/kDkAzyByB+5A8A4I/8AUgG+QMQP/IH
APBH/gAkg/wBiB/5AwD4I38AkkH+AMSP/AEA/JE/AMkgfwDiR/4AAP7IH4Bk
kD8A8SN/AAB/5A9AMsgfgPiRPwCAP/IHIBnkD0D8yB8AwB/5A5AM8gcgfuQP
AOCP/AFIBvkDED/yBwDwR/4AJIP8AYgf+QMA+CN/AJJB/gDEj/wBAPyRPwDJ
IH8A4kf+AAD+yB+AZJA/APEjfwAAf+QPQDLIH4D4kT8AgD/yByAZ5A9A/Mgf
AMAf+QOQDPIHIH7kDwDgj/wBSAb5AxA/8gcA8Ef+ACSD/AGIH/kDAPgjfwCS
Qf4AxI/8AQD8kT8AySB/AOJH/gAA/sgfgGSQPwDxI38AAH/kD0DF27Bhg61f
v77Uc9nyh3Xr1sX50YBKhfwBAPyRPwAVr2/fvtajRw+bMWNG6rnM/GH58uU2
ZMgQ69Kliy1YsCCpjwrkNfIHAPBH/gBUvLZt21rNmjWtSZMmNnLkSFu7dm2p
/GHOnDnWoUMHq1WrltWvX9/mzp2b9EcG8hL5AwD4I38AKt68efNswIABVq9e
PatTp44VFRXZUUcd5WJv2LBh1rx5c6tevbrr0xQXF9uqVauS/shAXiJ/AAB/
5A9APNasWWMTJkywwsJCq127thUUFLjYa9iwoVWrVs169uxpS5YsSfpjAnmN
/AEA/JE/APGaOHGim3uoUqWKi72qVatat27dbMWKFUl/NCDvkT8AgD/yByBe
qsU0ZswYF3d6tGnTxpYtW5b0xwIqBfIHAPC3ePFiq1u3rjVo0CDpjwJUGqrR
qv3S55xzDrWWgBgNHTrU3fN69eqV9EcBgM3WypUrbfz48VZSUpL0RwEqlaVL
l9rs2bOT/hhApaI5d93zVNMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAqAhr16610aNH21NPPWWzZs2y7777zpYvX26LFy+2
jz/+2MaNG2dPP/20/fPPP6HXr1692qZOnWrDhg2z5557zv2eZ5991hYtWlTu
+27YsMHmz59vo0aNcu+vx/Dhw91n+O+//yrgmwK555dffrFXXnnFioqK7Mkn
n7THH3/cRowYYXPnzrV169Zlvc4nfpYtW2Yvv/yyex/FrGJ34sSJ9ueff27q
rwfkpH///dfeeecdF3N9+vRxD8XDzJkzKyx+ot4rASAX/f3339akSROrU6eO
nXXWWdamTRu79tprrXXr1nbeeefZaaedZg899JCtWrWqzLUrVqywQYMGWbt2
7eyJJ55wberzzz9v9913n3Xs2NHee+8918/JpPZ58uTJds0111i/fv1s7Nix
9tJLL7m+k95bfaKw9wPyyaeffmqPPPKIyx2CPGDo0KF28cUX2wUXXOD6F2Fx
4BM/CxcutNtuu826du3q+i6KWb1Pp06drGfPnvb9999X9NcGEqXxMcWZ7lP6
78CBA6179+7ufnf22We7fytHCBM1fqLeKwEgV/3111928skn29Zbb21bbLFF
6rHDDju45zUu88MPP5S5TmOjGu+sW7euDR48ODU/oTbwiy++sJYtW9r5559v
X3/9dZlrNa9x6qmnuv5PenurNrZ379523HHHWXFxMe0p8tavv/5qHTp0sBtv
vNG++eab1N/6mjVrXL9kjz32sEMPPdTN/2WKGj+///67XX/99dagQQPXX1m/
fr17XnOQJSUlVlhYaHfffbetXLmyAr85kBz9rSvP7tKli02bNs3dtxQnyhc0
J3DkkUfaPvvsY/fff3+ZHDxq/PjcKwEgVyl/OOOMM6x9+/ZuDOWqq66yzp07
W//+/W3KlClufiKM2j21lw0bNnR9oUzq99SoUcO1p+oTBdR2qg3ee++93Vxu
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
OL89avz43CsBIFdpHvbMM890ayXCznlW/SXVm1c9O81DBGMx8uKLL7p9Ydpv
pnOtMmluQ3MWjRo1KtUXWbRokWsrtVcts8aFaLxUtWe0Xqq8/WbA5kr5gs64
1d4G1Sf4448/Sv1ceXunTp1cfrHrrrvaq6++mvpZ1PhRjGosQLGcbRy0T58+
LjfRnEjQbwLyje5HmnNQfq36ZIrH4KE9DMrv77zzThcHAZ/4iXqvBIBcpbER
7X/QHofMPox+pvPkVEO+adOmbvwlndq5Fi1auPHTzBqr2o+t9lnneKqtTV9n
oRykf//+rn+jNVOZ/RTVyNbYrMZ+Mj8TkA8UH6rnojmEYG90OsWaxjBVQ0lj
l+l7JHziR/tEVdepZcuWpc5zEdWJbdy4savvRM0z5CvFhM46Uu7erFkztzYw
/aHarYoP7XPQ/S9d1PiJeq8EgFym8RbVWNK5txqv1B4w7aVW/Qj1by666CJX
tzpsHdH06dPdfk7VrdAYitZxai529OjRri3t3r17mXZWfvrpJ7fuVOfsat2U
6uHpbN1p06ZZq1at3Htmq4MB5APFmc527927t40dO9atl9a6asVU+/btXQ6g
vkzY+YlR40d9Fc01qoaTxgyUp6g2rMZbtUdba7C1Poq5B+Qr1WlVXWTN7ZX3
UL3VqVOnlrrWJ36i3isBIJep36KxzEGDBrm61XpoDlZrlnQ2brY9CGon1WfR
+InO21RbOHz4cDe+M3jw4HJrJ6ntffjhh917KFfRebv9+vVzuYzGaNj3gHyn
/Zs6d1rrotUfUTxo/6TWSSie9PNscRA1fjT+qj6O+jvqCz3zzDMuVhXv48aN
S501AeSjKVOmuHPeN/bQeFrYvoio8eNzrwSAXKbxkM8++8zt39IaCJ2ho+f+
Hxr/1NzuhAkTXJ0KXav1TxuzevVql59MmjTJXTtz5kzWLKFS0XokzUVorFP7
HPRf5Q1h66QzRY0frZHQPgr1pYqLi938otZ+k7MDG+cTP1HvlQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAS/geioIHl
"], {{0, 480}, {784, 0}}, {
0, 255},
ColorFunction->RGBColor],
BoxForm`ImageTag["Byte", ColorSpace -> ColorProfileData[CompressedData["
1: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
dr/aU+z97MX26+3P2r91cHRIc/jWodnhqaOJI9exxLHB8Z4T3SnEaYZTndN1
Z6Kzn3Ou80bnKy6oi7eL2KXG5bIr6urjKnHd6NoxijDKf5R0VN2oW240N7Zb
kVuD28PRzNGxoxeNbh79fIzdmIwxq8acHfPZ3ds9z32b+10PQ4/xHos8Wj1e
erp48j1rPK970b0iveZ7tXi9GOs6Vjh209jb3gzvCd7ferd5f/Lx9ZH7NPr0
+Nr5ZvrW+t7yM/JL8Fvmd86f4B/mP9//iP/7AJ+AwoADAX8GugXmBu4OfDrO
cZxw3LZxXUE2QbygLUGdwazgzODvgztDrEN4IXUhj0JtQwWhO0KfsJ3ZOew9
7Odh7mHysENhbzkBnLmcE+FYeFR4eXh7hGFESkR1xINIm0hRZENkX5R31Oyo
E9GE6JjoVdG3uBZcPree2zfed/zc8adjaDFJMdUxj2JdYuWxrRPQCeMnrJlw
L84+ThrXHA/iufFr4u8nOCbMSPhpInFiwsSaiY8TPRLnJJ5NYiRNT9qd9CY5
LHlF8t0UpxRlSluqXuqU1PrUt2nhaavTOieNmTR30sV0s3RJeksGKSM1Y0dG
/+SIyesmd0/xnlI25eZUx6nFU89PM5uWN+3odL3pvOkHMwmZaZm7Mz/y4nl1
vP4sblZtVh+fw1/PfyYIFawV9AiDhKuFT7KDsldnPxUFidaIesQh4kpxr4Qj
qZa8yInO2ZzzNjc+d2fuYF5a3r58cn5m/mGpoTRXerrAsqC4oEPmKiuTdc4I
mLFuRp88Rr5DgSimKloKjeCG/ZLSSfmN8mFRcFFN0buZqTMPFhsUS4svzXKZ
tXTWk5LIku2z8dn82W1zrOcsnPNwLnvulnnIvKx5bfNt55fO714QtWDXQurC
3IW/LHJftHrR68Vpi1tLLUoXlHZ9E/VNQ5lumbzs1reB325egi+RLGlf6rV0
w9LP5YLyCxXuFZUVH5fxl134zuO7qu8Gl2cvb1/hs2LTSuJK6cqbq0JW7Vpt
sLpkddeaCWua1rLWlq99vW76uvOVYys3r6euV67vrIqtatlgt2Hlho/V4uob
NWE1+2rNa5fWvt0o2Hh1U+imxs0Wmys2f/he8v3tLVFbmuoc6iq3ErcWbX28
LXXb2e1+2+t3mO2o2PFpp3Rn567EXafrfevrd5vvXtGANigbevZM2XNlb/je
lka3xi37mPsq9oP9yv2//5D5w80DMQfaDvodbPzR/sfaQ4xD5U1I06ymvmZx
c2dLekvH4fGH21oDWw/9NPqnnUesj9QcNT664hj1WOmxweMlx/tPyE70nhSd
7Gqb3nb31KRT109PPN1+JubMuZ8jfz51ln32+Lmgc0fOB5w/fMHvQvNFn4tN
l7wvHfrF+5dD7T7tTZd9L7dc8b/S2jGu49jVkKsnr4Vf+/k69/rFG3E3Om6m
3Lx9a8qtztuC20/v5N158WvRrwN3F9wj3Cu/r3+/8oH5g7p/Of9rX6dP59GH
4Q8vPUp6dLeL3/XsN8VvH7tLH9MfVz6xelL/1PPpkZ7Iniu/T/69+5ns2UBv
2R8Gf9Q+d3r+45+hf17qm9TX/UL+YvDlslemr3a+Hvu6rT+h/8Gb/DcDb8vf
mb7b9d7v/dkPaR+eDMz8SPpY9cn5U+vnmM/3BvMHB2U8OU+9FcBgR7OzAXi5
EwA63DswrsD9w2TNOU/dEM3ZVI3Af8Kas6C6+QDQCC+q7TrnBAD7YXdYoD6S
ANVWPTkUoF5ew13bFNlenhouGjzxEN4NDr6yAIDUCsAn+eDgwMbBwU/bYLB3
ADgxQ3O+VDUiPBt876FCV632PwdftX8Dn5uM7w==
"], "RGB", "XYZ"],
Interleaving -> True],
Selectable->False],
DefaultBaseStyle->"ImageGraphics",
ImageSizeRaw->{784, 480},
PlotRange->{{0, 784}, {0, 480}}]], "Input",ExpressionUUID->
"1cb773c9-7314-4bb8-b82e-f1088d8753b9"],
"\n\nBelow is a system of linear equations that describe the image above:\n\n\
",
Cell[BoxData[{
FormBox[
RowBox[{
RowBox[{"200", "+", "c"}], "=",
RowBox[{"400", "+", "a"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"300", "+", "a"}], "=",
RowBox[{"b", "+", "d"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"b", "+", "e"}], "=", "300"}],
TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"500", "+", "f"}], "=",
RowBox[{"c", "+", "400"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"d", "+", "g"}], "=",
RowBox[{"300", "+", "f"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{"400", "=",
RowBox[{"e", "+", "g"}]}], TraditionalForm]}],ExpressionUUID->
"d784c79b-93aa-4e13-92eb-ca93aced317f"],
"\n\nBelow is the augmented matrix form of the equations above. The columns, \
in order, represent variables ",
Cell[BoxData[
FormBox[
RowBox[{"a", "~", "g"}], TraditionalForm]],ExpressionUUID->
"904d4c6a-c2f8-46a9-8d42-9300926bffec"],
" and the final column the output vector.\n",
Cell[BoxData[
FormBox[
RowBox[{"RoundAbout", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0",
RowBox[{"-", "1"}], "0", "0", "0", "0",
RowBox[{"-", "200"}]},
{
RowBox[{"-", "1"}], "1", "0", "1", "0", "0", "0", "300"},
{"0", "1", "0", "0", "1", "0", "0", "300"},
{"0", "0", "1", "0", "0",
RowBox[{"-", "1"}], "0", "100"},
{"0", "0", "0", "1", "0",
RowBox[{"-", "1"}], "1", "300"},
{"0", "0", "0", "0", "1", "0", "1", "400"}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"ebb3dbd8-fdd9-4f9b-8797-f7034b9e8141"],
"\n\nSeveral assumptions were made to define the linear system of equations. \
First, I assumed that what goes in the roundabout comes out of the \
roundabout. This applies to both roundabouts as well as the one-way roads. \
There should be no cars parked at any point within our system. I also assumed \
that cars would actually follow the one-way rule on the road, unlike India."
}], "Text",
CellChangeTimes->{{3.758184988766899*^9, 3.758184988887452*^9}, {
3.758186126663286*^9, 3.758186139366536*^9}, {3.758186312769766*^9,
3.758186405505722*^9}, {3.7581864651625032`*^9, 3.758186520862191*^9}, {
3.758186616834195*^9, 3.758186691203874*^9}, {3.75818676141154*^9,
3.75818676813892*^9}, {3.758186833769376*^9, 3.758187108598755*^9}, {
3.75818716588385*^9, 3.758187239313633*^9}, {3.758187271014291*^9,
3.758187393811098*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"8d41fa73-04f5-4be7-958c-8b0b77141612"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FindInstance", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"200", "+", "c"}], "\[Equal]",
RowBox[{"400", "+", "a"}]}], "&&",
RowBox[{
RowBox[{"300", "+", "a"}], "\[Equal]",
RowBox[{"b", "+", "d"}]}], "&&",
RowBox[{
RowBox[{"b", "+", "e"}], "\[Equal]", "300"}], "&&",
RowBox[{
RowBox[{"500", "+", "f"}], "\[Equal]",
RowBox[{"c", "+", "400"}]}], "&&",
RowBox[{
RowBox[{"d", "+", "g"}], "\[Equal]",
RowBox[{"300", "+", "f"}]}], "&&",
RowBox[{"400", "\[Equal]",
RowBox[{"e", "+", "g"}]}]}], ",",
RowBox[{"{",
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}],
"}"}], ",", "Integers"}], "]"}]], "Input",
CellChangeTimes->{{3.758187591352356*^9, 3.758187609110301*^9}, {
3.758187862625534*^9, 3.758188054730731*^9}, {3.758188355665909*^9,
3.758188448595134*^9}, {3.758188490323762*^9, 3.7581885473990593`*^9}, {
3.7581886565285387`*^9, 3.7581886892141027`*^9}, {3.758188724002163*^9,
3.758188780700321*^9}, {3.758188845836339*^9, 3.758188859794588*^9}, {
3.7581888991579027`*^9, 3.758188912656076*^9}, {3.7581889445371237`*^9,
3.758188950990078*^9}, {3.758188989967112*^9, 3.758189041928146*^9},
3.75818912847735*^9, {3.7581896111987267`*^9, 3.758189648038796*^9}, {
3.7581897952567377`*^9, 3.7581898373319397`*^9}, {3.758189869066915*^9,
3.758190036550124*^9}, {3.758190182625395*^9, 3.75819019621299*^9}, {
3.7581902649664288`*^9, 3.758190326000634*^9}, {3.758190430842492*^9,
3.758190590599321*^9}, {3.758191205889489*^9, 3.758191228066749*^9}, {
3.758191279290902*^9, 3.758191354316283*^9}, {3.7581913880623693`*^9,
3.758191431747005*^9}, {3.7581915122083473`*^9, 3.7581915153429527`*^9}, {
3.7581915837992973`*^9, 3.758191704075137*^9}, {3.758191734895432*^9,
3.758191751047529*^9}, 3.758191861326277*^9, {3.7581960317870293`*^9,
3.758196032228921*^9}, {3.7581960964512978`*^9, 3.758196125534109*^9}, {
3.758196201021516*^9, 3.758196228985368*^9}},
CellLabel->"In[1]:=",ExpressionUUID->"d923b046-180f-4a75-87cb-672596142f09"],
Cell[BoxData[
FormBox[
RowBox[{"{",
RowBox[{"{",
RowBox[{
RowBox[{"a", "\[Rule]", "0"}], ",",
RowBox[{"b", "\[Rule]", "0"}], ",",
RowBox[{"c", "\[Rule]", "200"}], ",",
RowBox[{"d", "\[Rule]", "300"}], ",",
RowBox[{"e", "\[Rule]", "300"}], ",",
RowBox[{"f", "\[Rule]", "100"}], ",",
RowBox[{"g", "\[Rule]", "100"}]}], "}"}], "}"}],
TraditionalForm]], "Output",
CellChangeTimes->{
3.75819004331704*^9, {3.758190185210181*^9, 3.758190222221665*^9}, {
3.7581902659718113`*^9, 3.7581902859888067`*^9}, {3.7581904326495533`*^9,
3.7581905788901863`*^9}, {3.758191285194768*^9, 3.7581912959122458`*^9},
3.758191338941084*^9, 3.758191381206204*^9, 3.758191432839548*^9,
3.7581915180577106`*^9, 3.75819160702557*^9, {3.758191675727347*^9,
3.758191704447757*^9}, {3.758191737022758*^9, 3.758191751505323*^9},
3.758191862020339*^9, {3.7581960225690928`*^9, 3.758196060191081*^9}, {
3.758196115859167*^9, 3.758196140843431*^9}, {3.758196204284141*^9,
3.7581962602557077`*^9}},
CellLabel->"Out[1]=",ExpressionUUID->"b8a2e3d4-2422-4be6-b992-7e8314e45a84"]
}, Open ]],
Cell[TextData[{
"As computed above, the number of vehicles that will use each road segment \
in the proposed system every hour is:\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"(",
RowBox[{
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], ")"}],
"=",
RowBox[{"(",
RowBox[{
"0", ",", "0", ",", "200", ",", "300", ",", "300", ",", "100", ",",
"100"}], ")"}]}], TraditionalForm]],ExpressionUUID->
"91afea2f-a655-4ec4-a155-7be13e326eba"],
"\n\n(NOTE: I tried very hard and spent a very large amount of time trying \
to solve this augmented matrix in matrix form, but could not find a way for \
Mathematica to compute a combination of variables without using negative \
values. As the number of cars cannot be negative, I had to find a different \
way to solve. With 7 variables and 6 equations, the system is underdetermined \
and here, it has infinitely many answers.)"
}], "Text",
CellChangeTimes->{{3.7581918712105713`*^9, 3.7581920287336493`*^9}, {
3.7581920904508533`*^9, 3.758192111323793*^9}, {3.7581924288321133`*^9,
3.758192469207809*^9}, {3.7581926707268457`*^9, 3.758192670726944*^9}, {
3.814955754399906*^9, 3.814955760278274*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"3bd695d1-2d4d-43e5-9ab9-639b0e34fb0d"],
Cell["\<\
The roads in total will need to accommodate about 1000 cars in total, per \
hour. However, as the solution shows, there is a polarization of the roads \
which cars travel in. Cars travel by far the most in the vertical roads \
(c,d,e) while only some in (f,g) and none in (a,b). For example, if we look \
at the upper-rightmost roundabout, all cars that go out are exclusively from \
road e. The traffic might congest, but if some of those people who wanted to \
get out from the roundabout came from b, there would be less cars needed to \
use road e. Cars should be encouraged to follow routes a and b especially, \
and avoid d and e.\
\>", "Text",
CellChangeTimes->{{3.758192655337646*^9, 3.758192696199242*^9}, {
3.7581927331440687`*^9, 3.758192735318082*^9}, {3.758192772769212*^9,
3.758192969500922*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"90055568-58de-44d4-a052-50353a9eae39"],
Cell["\<\
Looking at the list above, Segments a and b can be totally closed and still \
maintain traffic flow predicted by the electronic sensors.\
\>", "Text",
CellChangeTimes->{{3.758193168568654*^9, 3.758193209874778*^9},
3.758193323001251*^9, {3.8149556988826838`*^9, 3.814955725623838*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"fbe10508-2ddd-46d7-9f90-c22c5e5d0d08"],
Cell[CellGroupData[{
Cell["Some changes to the system...", "Subsection",
CellChangeTimes->{{3.758193329787612*^9, 3.758193401782825*^9}, {
3.814955773817222*^9,
3.814955780854649*^9}},ExpressionUUID->"384aeb62-6b40-42c8-86cf-\
cc4bc1705756"],
Cell[TextData[{
"The system of linear equations that describe the traffic after large events \
(with the same assumptions as part a) are:\n\n",
Cell[BoxData[{
FormBox[
RowBox[{
RowBox[{"200", "+", "c"}], "=",
RowBox[{"400", "+", "a"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"900", "+", "a"}], "=",
RowBox[{"b", "+", "d"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"b", "+", "e"}], "=", "600"}],
TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"500", "+", "f"}], "=",
RowBox[{"c", "+", "500"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{"d", "+", "g"}], "=",
RowBox[{"500", "+", "f"}]}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{"400", "=",
RowBox[{"e", "+", "g"}]}], TraditionalForm]}],ExpressionUUID->
"61f9f3bb-e049-4161-b76f-e6f545e9f77b"],
"\n\nBelow is the augmented matrix form of the above system. \n",
Cell[BoxData[
FormBox[
RowBox[{"LargeEvent", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "0",
RowBox[{"-", "1"}], "0", "0", "0", "0",
RowBox[{"-", "200"}]},
{
RowBox[{"-", "1"}], "1", "0", "1", "0", "0", "0", "900"},
{"0", "1", "0", "0", "1", "0", "0", "600"},
{"0", "0", "1", "0", "0",
RowBox[{"-", "1"}], "0", "0"},
{"0", "0", "0", "1", "0",
RowBox[{"-", "1"}], "1", "500"},
{"0", "0", "0", "0", "1", "0", "1", "400"}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"56aa56af-ce9d-4b49-9377-9da8bc5a3822"]
}], "Text",
CellChangeTimes->{{3.758193605832019*^9, 3.758193611250348*^9}, {
3.758193722403454*^9, 3.758193771647758*^9}, {3.75819380799056*^9,
3.758193928191008*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"60aeeb08-a4e1-4f74-bd96-8d198853ebe8"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FindInstance", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"200", "+", "c"}], "\[Equal]",
RowBox[{"400", "+", "a"}]}], "&&",
RowBox[{
RowBox[{"900", "+", "a"}], "\[Equal]",
RowBox[{"b", "+", "d"}]}], "&&",
RowBox[{
RowBox[{"b", "+", "e"}], "\[Equal]", "600"}], "&&",
RowBox[{
RowBox[{"500", "+", "f"}], "\[Equal]",
RowBox[{"c", "+", "500"}]}], "&&",
RowBox[{
RowBox[{"d", "+", "g"}], "\[Equal]",
RowBox[{"500", "+", "f"}]}], "&&",
RowBox[{"400", "\[Equal]",
RowBox[{"e", "+", "g"}]}], "&&",
RowBox[{"a", ">=", "0"}], "&&",
RowBox[{"b", ">=", "0"}], "&&",
RowBox[{"c", ">=", "0"}], "&&",
RowBox[{"d", ">=", "0"}], "&&",
RowBox[{"e", ">=", "0"}], "&&",
RowBox[{"f", ">=", "0"}], "&&",
RowBox[{"g", ">=", "0"}]}], ",",
RowBox[{"{",
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}],
"}"}], ",", "Integers"}], "]"}]], "Input",
CellChangeTimes->{{3.758194367265066*^9, 3.7581943674367247`*^9}, {
3.758194707763365*^9, 3.7581947249779387`*^9}, {3.758194790493092*^9,
3.758194801171921*^9}, 3.758194942645043*^9, 3.75819500444446*^9, {
3.758195061342751*^9, 3.7581950908523397`*^9}, {3.758196268841961*^9,
3.758196272013321*^9}},
CellLabel->"In[3]:=",ExpressionUUID->"0fc5ef7c-8844-4bfe-8abd-1d0840dbca8f"],
Cell[BoxData[
FormBox[
RowBox[{"{",
RowBox[{"{",
RowBox[{
RowBox[{"a", "\[Rule]", "0"}], ",",
RowBox[{"b", "\[Rule]", "200"}], ",",
RowBox[{"c", "\[Rule]", "200"}], ",",
RowBox[{"d", "\[Rule]", "700"}], ",",
RowBox[{"e", "\[Rule]", "400"}], ",",
RowBox[{"f", "\[Rule]", "200"}], ",",
RowBox[{"g", "\[Rule]", "0"}]}], "}"}], "}"}],
TraditionalForm]], "Output",
CellChangeTimes->{{3.758194365019143*^9, 3.758194367981614*^9}, {
3.7581947121642303`*^9, 3.7581947264027033`*^9}, {3.7581947924618473`*^9,
3.758194802468289*^9}, {3.758195063044437*^9, 3.758195105387959*^9}, {
3.758196265886557*^9, 3.758196276563274*^9}},
CellLabel->"Out[3]=",ExpressionUUID->"1e8116f6-d6e8-4d97-8712-f761675b2ca6"]
}, Open ]],
Cell["\<\
We see that due to the event, we observe an increase in traffic particularly \
in segment d. On the other hand, segments a and g are not getting any cars. \
To have a more spread out traffic, we can use signs and encourage passengers \
to use segments a and g. With the expectation that the signs will work and we \
successfully prevent from more than 450 cars to use segment d per hour, we \
can expect the following distribution, where cars are more sparse and less \
congested:\
\>", "Text",
CellChangeTimes->{{3.75819510822859*^9, 3.7581952831092567`*^9}, {
3.758195567659432*^9, 3.7581955822341747`*^9}, {3.758195625637336*^9,
3.758195627456821*^9}, {3.758195708514884*^9, 3.758195711425872*^9}, {
3.758195751574059*^9, 3.7581957794031677`*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"6ecaa955-f7ae-4481-8667-3782de86e210"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FindInstance", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"200", "+", "c"}], "\[Equal]",
RowBox[{"400", "+", "a"}]}], "&&",
RowBox[{
RowBox[{"900", "+", "a"}], "\[Equal]",
RowBox[{"b", "+", "d"}]}], "&&",
RowBox[{
RowBox[{"b", "+", "e"}], "\[Equal]", "600"}], "&&",
RowBox[{
RowBox[{"500", "+", "f"}], "\[Equal]",
RowBox[{"c", "+", "500"}]}], "&&",
RowBox[{
RowBox[{"d", "+", "g"}], "\[Equal]",
RowBox[{"500", "+", "f"}]}], "&&",
RowBox[{"400", "\[Equal]",
RowBox[{"e", "+", "g"}]}], "&&",
RowBox[{"0", "\[LessEqual]", "a"}], "&&",
RowBox[{"b", "\[LessEqual]", "450"}], "&&",
RowBox[{"d", "\[LessEqual]", "450"}]}], ",",
RowBox[{"{",
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}],
"}"}], ",", "Integers"}], "]"}]], "Input",
CellChangeTimes->{{3.758195288785862*^9, 3.7581955526329737`*^9}, {
3.758195590666443*^9, 3.758195677446146*^9}, {3.758195723879879*^9,
3.758195746737835*^9}, {3.758196281131996*^9, 3.75819628333716*^9}},
CellLabel->"In[5]:=",ExpressionUUID->"bd3f8b2d-88b8-4e53-9dfa-e32ae8593dd1"],
Cell[BoxData[
FormBox[
RowBox[{"{",
RowBox[{"{",
RowBox[{
RowBox[{"a", "\[Rule]", "0"}], ",",
RowBox[{"b", "\[Rule]", "450"}], ",",
RowBox[{"c", "\[Rule]", "200"}], ",",
RowBox[{"d", "\[Rule]", "450"}], ",",
RowBox[{"e", "\[Rule]", "150"}], ",",
RowBox[{"f", "\[Rule]", "200"}], ",",
RowBox[{"g", "\[Rule]", "250"}]}], "}"}], "}"}],
TraditionalForm]], "Output",
CellChangeTimes->{{3.75819532932672*^9, 3.758195351077338*^9}, {
3.758195395235713*^9, 3.758195446851923*^9}, {3.758195490718357*^9,
3.758195553174192*^9}, {3.758195594136346*^9, 3.7581956311151752`*^9}, {
3.758195673512293*^9, 3.758195679581107*^9}, {3.758195724332356*^9,
3.758195746982047*^9}, 3.758195780682939*^9, {3.758196278987667*^9,
3.758196288867057*^9}},
CellLabel->"Out[5]=",ExpressionUUID->"f2513d0f-cf7d-47c1-918a-421b6e884b24"]
}, Open ]],
Cell["\<\
It is interesting that we want to minimize the use of segment a in order to \
reduce traffic in segment d. This actually makes sense because segment a is \
an inflow to the top middle roundabout, where 900 cars flood in per hour. \
This type of phenomenon explains why even in real life, there are traffic \
barricades at certain roads in busy times, which used to be counterintuitive \
to me as a driver: \[OpenCurlyDoubleQuote]If traffic is so bad, isn\
\[CloseCurlyQuote]t it better for people to go whichever way they want rather \
than limiting their options in an already congested traffic?\
\[CloseCurlyDoubleQuote] But this type of analysis helped me understand that \
in some cases it is perfectly reasonable to do so.\
\>", "Text",
CellChangeTimes->{{3.758195800981069*^9, 3.758195945087596*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"fcb20ae1-04bb-4f8c-9a53-3bab48366392"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["some random shit",
FontSlant->"Italic"]], "Section",
CellChangeTimes->{{3.7581565568162394`*^9, 3.758156593662631*^9}, {
3.814955793183622*^9,
3.814955803546649*^9}},ExpressionUUID->"5a33a389-0bfc-4cdf-9d7f-\
de902dd1f317"],
Cell[CellGroupData[{
Cell[TextData[{
"2\[Cross]2 matrices ",
StyleBox["B",
FontSlant->"Italic"],
" and ",
StyleBox["C",
FontSlant->"Italic"],
" such that ",
StyleBox["BC = -CB",
FontSlant->"Italic"],
" (excluding the case ",
StyleBox["BC = 0",
FontSlant->"Italic"],
")."
}], "Subsection",
CellChangeTimes->{{3.758156599966474*^9, 3.758156642270175*^9},
3.758157353657495*^9,
3.814955797355893*^9},ExpressionUUID->"a565f71f-f745-45bf-b5e1-\
7727f5980758"],
Cell[TextData[{
"Given matrices ",
Cell[BoxData[
FormBox["B", TraditionalForm]],ExpressionUUID->
"181b0c70-c00e-44fd-926b-89f77f79f1e7"],
" and ",
Cell[BoxData[
FormBox["C", TraditionalForm]],ExpressionUUID->
"50683e1d-067a-40ff-adfd-a7d62eff8b2d"],
" where\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"B", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"a", "b"},
{"c", "d"}
}], "\[NoBreak]", ")"}]}], ",", " ",
RowBox[{"C", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"e", "f"},
{"g", "h"}
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID->
"b1f9ad16-56d8-4983-ab3b-46c4caf1d804"],
",\n\nUtilizing #computationaltools (Wolfram Mathematica);"
}], "Text",
InitializationCell->True,
CellChangeTimes->{{3.7581773418434134`*^9, 3.7581773799837627`*^9}, {
3.758177427839078*^9, 3.7581774522832336`*^9}, {3.758177604557362*^9,
3.7581777509809*^9}, {3.758177790842225*^9, 3.7581779719084167`*^9}, {
3.758178011703683*^9, 3.7581780626098967`*^9}, {3.758178110433548*^9,
3.758178392761195*^9}, {3.758178846633193*^9, 3.758178847063583*^9}, {
3.758179548366592*^9, 3.7581795886310673`*^9}, {3.7581796230210876`*^9,
3.758179645908187*^9}, {3.758183293845529*^9, 3.758183332148494*^9}, {
3.758183478991757*^9, 3.758183560438321*^9}, {3.7581836263348722`*^9,
3.758183747315702*^9}, {3.758183810323175*^9, 3.75818383753651*^9}, {
3.758184003708724*^9, 3.758184070919958*^9}, {3.758184158354374*^9,
3.758184159369684*^9}, {3.7581859427312107`*^9, 3.7581859494010963`*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"fb6b4aad-aa7e-415a-86d3-e4c195272052"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"m1", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"a", ",", "b"}], "}"}], ",",
RowBox[{"{",
RowBox[{"c", ",", "d"}], "}"}]}], "}"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"m2", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"e", ",", "f"}], "}"}], ",",
RowBox[{"{",
RowBox[{"g", ",", "h"}], "}"}]}], "}"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Solve", "[",
RowBox[{
RowBox[{"m1", ".", "m2"}], "\[Equal]",
RowBox[{"-",
RowBox[{"m2", ".", "m1"}]}]}], "]"}], "\[LeftDoubleBracket]", "1",
"\[RightDoubleBracket]"}]}], "Input",
CellChangeTimes->{{3.7581833575237913`*^9, 3.7581834004025307`*^9}, {
3.758183449821548*^9, 3.758183460794695*^9}, 3.7581837492440033`*^9, {
3.758183784727639*^9, 3.758183786589344*^9}, {3.7581838192356853`*^9,
3.75818399483636*^9}, {3.758184082152938*^9, 3.758184082984474*^9}, {
3.758184202249531*^9, 3.758184213252145*^9}},
CellLabel->"In[6]:=",ExpressionUUID->"8a5939e6-c011-4f1a-b8d6-97675e695e8c"],
Cell[BoxData[
FormBox[
RowBox[{"{",
RowBox[{
RowBox[{"a", "\[Rule]",
RowBox[{"-", "d"}]}], ",",
RowBox[{"e", "\[Rule]",
FractionBox[
RowBox[{
RowBox[{"b", " ", "g"}], "+",
RowBox[{"c", " ", "f"}]}],
RowBox[{"2", " ", "d"}]]}], ",",
RowBox[{"h", "\[Rule]",
FractionBox[
RowBox[{
RowBox[{"-",
RowBox[{"b", " ", "g"}]}], "-",
RowBox[{"c", " ", "f"}]}],
RowBox[{"2", " ", "d"}]]}]}], "}"}], TraditionalForm]], "Output",
CellChangeTimes->{{3.758183393334085*^9, 3.7581834008714*^9},
3.758183461178112*^9, 3.7581837541225243`*^9, 3.758183786984577*^9, {
3.758183822620576*^9, 3.758183930464081*^9}, {3.758183977546163*^9,
3.758183995253324*^9}, {3.758184072250546*^9, 3.758184083720839*^9}, {
3.758184185136574*^9, 3.758184225874031*^9}, 3.758184965056061*^9, {
3.758196298696418*^9, 3.758196304985538*^9}},
CellLabel->"Out[8]=",ExpressionUUID->"989a943f-be74-42b4-b7d0-4e473d55560f"]
}, Open ]],
Cell[TextData[{
"One example combination that meets this relationship would be:\n ",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"(",
RowBox[{
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",",
"h"}], ")"}], "=",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], ",", "1", ",", "1", ",", "1", ",", "1", ",", "1",
",", "1", ",",
RowBox[{"-", "1"}]}], ")"}]}], TraditionalForm]],ExpressionUUID->
"7d208c16-6f5d-4b55-b93e-8e9b430806bf"],
"\n \n Now to test it:"
}], "Text",
CellChangeTimes->{{3.758184255246305*^9, 3.758184380081686*^9}, {
3.758184504689212*^9, 3.758184546209672*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"464546e2-85f2-4053-b608-6ead8e29f722"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}]}], "}"}], ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",",
RowBox[{"-", "1"}]}], "}"}]}], "}"}]}], "\[Equal]",
RowBox[{"-",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",",
RowBox[{"-", "1"}]}], "}"}]}], "}"}], ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}]}], "}"}]}]}]}]], "Input",
CellChangeTimes->{{3.7581843836663437`*^9, 3.758184438968062*^9}, {
3.758184556653015*^9, 3.758184631563636*^9}},
CellLabel->"In[9]:=",ExpressionUUID->"4b8b1cdd-f2f5-4905-9bc0-a101e47c34d1"],
Cell[BoxData["True"], "Output",
CellChangeTimes->{{3.758184423761058*^9, 3.7581844395057373`*^9}, {
3.7581845705047092`*^9, 3.7581846320917463`*^9}, 3.758196309162313*^9},
CellLabel->"Out[9]=",ExpressionUUID->"b11b9e95-9412-4083-a7d2-9019213cbdd9"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[{
"A non-zero matrix ",
StyleBox["M",
FontSlant->"Italic"],
" so that ",
Cell[BoxData[
FormBox[
SuperscriptBox["M", "2"], TraditionalForm]],ExpressionUUID->
"83a78d57-8003-4d5b-9250-1a359c1ae9e2"],
"= 0."
}], "Subsection",
CellChangeTimes->{{3.75815724923099*^9, 3.758157349640583*^9},
3.814955809918014*^9},ExpressionUUID->"6a9f05ef-76a9-4b18-a6c9-\
d42d256d9443"],
Cell[TextData[{
Cell[BoxData[
FormBox[
RowBox[{"M", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"a", "b"},
{"c", "d"}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"eacefa74-ff69-48b7-8985-49ccba4e929f"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{
SuperscriptBox["M", "2"], "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{
SuperscriptBox["a", "2"], "+", "bc"}],
RowBox[{"ab", "+", "bd"}]},
{
RowBox[{"ca", "+", "dc"}],
RowBox[{"cb", "+",
SuperscriptBox["d", "2"]}]}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"e8a45905-31ca-4f55-bb18-9942b73b300a"],
"\n\nThis gives us the four equations to satisfy:\n",
Cell[BoxData[
FormBox[
RowBox[{
SuperscriptBox["a", "2"], "=",
RowBox[{"-", "bc"}]}], TraditionalForm]],ExpressionUUID->
"2ea01697-880f-4d1a-b6c2-6ce080d21771"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{"ab", "=",
RowBox[{"-", "bd"}]}], TraditionalForm]],ExpressionUUID->
"04a688d9-1d1a-4614-8e9f-d63863636ea7"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{"ca", "=",
RowBox[{"-", "dc"}]}], TraditionalForm]],ExpressionUUID->
"128fb850-63cc-4c4c-8516-86c057669922"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{
SuperscriptBox["d", "2"], "=",
RowBox[{"-", "cb"}]}], TraditionalForm]],ExpressionUUID->
"0c20b8b1-7bb9-4a4d-9350-300e1746e053"],
"\n\nFurthermore, by noticing the first and fourth equation, we can \
concatenate;\[LineSeparator]",
Cell[BoxData[
FormBox[
RowBox[{
SuperscriptBox["a", "2"], "=",
RowBox[{"-", "bc"}]}], TraditionalForm]],ExpressionUUID->
"92b08510-0716-4409-907d-936cc862c88f"],
" = ",
Cell[BoxData[
FormBox[
SuperscriptBox["d", "2"], TraditionalForm]],ExpressionUUID->
"73ba2f58-29cd-492c-bf36-b84d32391120"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{"ab", "=",
RowBox[{"-", "bd"}]}], TraditionalForm]],ExpressionUUID->
"28203e21-b253-484d-a31d-c6a8cc1c1df2"],
"\n",
Cell[BoxData[
FormBox[
RowBox[{"ca", "=",
RowBox[{"-", "dc"}]}], TraditionalForm]],ExpressionUUID->
"9b258ad9-1d2e-44ab-8ae5-dafd19b64aaf"],
"\n\nNow, from the second as well as the third equation, we can say that ",
Cell[BoxData[
FormBox[
RowBox[{"a", "=",
RowBox[{"-", "d"}]}], TraditionalForm]],ExpressionUUID->
"89b2ed63-229a-4ab0-be42-c7dffb09f697"],
".\nFrom the first equation, ",
Cell[BoxData[
FormBox["bc", TraditionalForm]],ExpressionUUID->
"e766a139-00e4-4342-a13b-aa08f3dd5290"],
" must be negative, meaning b and c will have opposite signs.\n\nTo make \
computations easier, we simply consider ",
Cell[BoxData[
FormBox[
RowBox[{"a", ",", "b", ",", "c", ",", "d"}], TraditionalForm]],
ExpressionUUID->"71e35532-3250-4610-b7e5-5401ca6a6cc5"],
" whose magnitude are all the same.\nOne combination that satisfies the \
given equations would be:\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"(",
RowBox[{"a", ",", "b", ",", "c", ",", "d"}], ")"}], "=",
RowBox[{"(",
RowBox[{"1", ",", "1", ",",
RowBox[{"-", "1"}], ",",
RowBox[{"-", "1"}]}], ")"}]}], TraditionalForm]],ExpressionUUID->
"c76b0516-25b9-4406-a0de-523495fb551a"],
"\n\n",
Cell[BoxData[
FormBox[
RowBox[{"M", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "1"},
{
RowBox[{"-", "1"}],
RowBox[{"-", "1"}]}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"b58763af-9f57-48c6-9791-6ff5aa820cf5"]
}], "Text",
CellChangeTimes->{{3.758179710587557*^9, 3.758180235160323*^9}, {
3.7581802904091682`*^9, 3.7581803678942537`*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"6e0be7ee-507b-4d64-9de6-23addf252f4f"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"mat", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"-", "1"}], ",",
RowBox[{"-", "1"}]}], "}"}]}], "}"}]}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<Example matrix: \>\"", ",",
RowBox[{"mat", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<Squared: \>\"", ",",
RowBox[{
RowBox[{"MatrixPower", "[",
RowBox[{"mat", ",", "2"}], "]"}], "//", "MatrixForm"}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.758179975323155*^9, 3.758179976269093*^9}, {
3.758180395749196*^9, 3.7581805029001293`*^9}, {3.7581805357376328`*^9,
3.758180590005188*^9}},
CellLabel->"In[10]:=",ExpressionUUID->"291c551e-c878-4032-89e3-e12237091a67"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"Example matrix: \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "1"},
{
RowBox[{"-", "1"}],
RowBox[{"-", "1"}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Example matrix: ",
MatrixForm[{{1, 1}, {-1, -1}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"Squared: \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"0", "0"},
{"0", "0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Squared: ",
MatrixForm[{{0, 0}, {0, 0}}]],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{
3.7581805903452997`*^9, {3.758196386812023*^9,
3.758196393224164*^9}},ExpressionUUID->"2a78dc51-7367-4592-b06a-\
7d25eac8e32b"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"Solve", "[",
RowBox[{
RowBox[{"MatrixPower", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"a", ",", "b"}], "}"}], ",",
RowBox[{"{",
RowBox[{"c", ",", "d"}], "}"}]}], "}"}], ",", "2"}], "]"}],
"\[Equal]", "0"}], "]"}], "\[LeftDoubleBracket]", "1",
"\[RightDoubleBracket]"}]], "Input",
CellChangeTimes->{{3.758184689958498*^9, 3.758184721356306*^9}, {
3.7581847541996117`*^9, 3.7581847629249563`*^9}, {3.758184856404763*^9,
3.7581848779073057`*^9}, 3.758196398946151*^9},
CellLabel->"In[14]:=",ExpressionUUID->"2d1f6fcf-3c02-494a-8674-6077df84a19f"],
Cell[BoxData[
FormBox[
RowBox[{"{",
RowBox[{
RowBox[{"c", "\[Rule]",
RowBox[{"-",
FractionBox[
SuperscriptBox["a", "2"], "b"]}]}], ",",
RowBox[{"d", "\[Rule]",
RowBox[{"-", "a"}]}]}], "}"}], TraditionalForm]], "Output",
CellChangeTimes->{{3.758196414146433*^9, 3.7581964192848587`*^9}},
CellLabel->"Out[14]=",ExpressionUUID->"946788f3-e97e-4644-a025-256fe6ef9b5f"]
}, Open ]],
Cell["We see that the above example meets the conditions.", "Text",
CellChangeTimes->{{3.758184893954987*^9, 3.758184916660231*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"b36cc10e-a6e6-43d4-86eb-eba817fc5e0e"]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[{
"Invertible matrices ",
StyleBox["A",
FontSlant->"Italic"],
" and ",
StyleBox["B",
FontSlant->"Italic"],
" so that ",
StyleBox["A + B",
FontSlant->"Italic"],
" is not invertible."
}], "Subsection",
CellChangeTimes->{{3.758157358387443*^9, 3.758157394034487*^9}, {
3.758157435015724*^9, 3.7581574352384167`*^9},
3.814955814869218*^9},ExpressionUUID->"dc393c65-d07e-421a-a8b5-\
5d5ea25a5cfa"],
Cell[TextData[{
"Matrices are not invertible when the determinant of the matrix is 0. Given \
matrices ",
Cell[BoxData[
FormBox["A", TraditionalForm]],ExpressionUUID->
"0ed2571e-1294-4584-a4a0-80544ffb560a"],
" and ",
Cell[BoxData[
FormBox["B", TraditionalForm]],ExpressionUUID->
"b6daf446-062e-495b-8c2d-0d985a0261a4"],
", \n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"A", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"a", "b"},
{"c", "d"}
}], "\[NoBreak]", ")"}]}], ",",
RowBox[{"B", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"e", "f"},
{"g", "h"}
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID->
"3ebb60d6-c517-4af4-a4a6-0fc268bd309f"],
"\n\nA+B can be computed as \n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"A", "+", "B"}], "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"a", "+", "e"}],
RowBox[{"b", "+", "f"}]},
{
RowBox[{"c", "+", "g"}],
RowBox[{"d", "+", "h"}]}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"1fa66ea4-7057-4061-9e3f-ff206bd6cb9d"],
"\n\[LineSeparator]Now, we want the determinant to be 0 so this means \n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"a", "+", "e"}], ")"}],
RowBox[{"(",
RowBox[{"d", "+", "h"}], ")"}]}], "=",
RowBox[{
RowBox[{"(",
RowBox[{"f", "+", "b"}], ")"}],
RowBox[{"(",
RowBox[{"g", "+", "c"}], ")"}]}]}], TraditionalForm]],ExpressionUUID->
"b095ee00-8b4b-4a3a-b944-3c3e05200fb9"],
"\n\nTo meet this, we can simply have\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"a", "=", "f"}], ",",
RowBox[{"b", "=", "e"}], ",",
RowBox[{"d", "=", "g"}], ",",
RowBox[{"c", "=", "h"}]}], TraditionalForm]],ExpressionUUID->
"2061fab3-e0eb-442f-a3fa-ef174850e820"],
"\n\nThus, an example of matrices ",
Cell[BoxData[
FormBox["A", TraditionalForm]],ExpressionUUID->
"ef5cfb8e-1a79-420c-9999-770b21177ec4"],
" and ",
Cell[BoxData[
FormBox["B", TraditionalForm]],ExpressionUUID->
"f283baf5-c6da-4f61-aa71-5be535136588"],
" where ",
Cell[BoxData[
FormBox[
RowBox[{"A", "+", "B"}], TraditionalForm]],ExpressionUUID->
"28a5a315-7a8f-4f5e-ae2c-be65c6581ebc"],
" is not invertible is\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"A", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "2"},
{"3", "4"}
}], "\[NoBreak]", ")"}]}], ",",
RowBox[{"B", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"2", "1"},
{"4", "3"}
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID->
"ac381b3d-f323-445f-a34d-f827db78547f"],
"."
}], "Text",
CellChangeTimes->{{3.758180690539927*^9, 3.758180703487637*^9}, {
3.758180754102562*^9, 3.7581808553128853`*^9}, {3.7581814377713423`*^9,
3.758181743198872*^9}, {3.758181787576058*^9, 3.758181816020547*^9},
3.7581818513540163`*^9},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"3902d859-2b2a-4ae7-97f2-7b3e8ef0bc2d"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"mat1", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "2"}], "}"}], ",",
RowBox[{"{",
RowBox[{"3", ",", "4"}], "}"}]}], "}"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"mat2", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"2", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4", ",", "3"}], "}"}]}], "}"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<Example matrices: A= \>\"", ",",
RowBox[{"mat1", "//", "MatrixForm"}], ",", "\"\< B= \>\"", ",",
RowBox[{"mat2", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Print", "[",
RowBox[{"\"\<Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= \>\"", ",",
RowBox[{
RowBox[{"Inverse", "[", "mat1", "]"}], "//", "MatrixForm"}], ",",
"\"\< \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= \>\"", ",",
RowBox[{
RowBox[{"Inverse", "[", "mat2", "]"}], "//", "MatrixForm"}]}], "]"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"mat3", ":=",
RowBox[{"mat1", "+", "mat2"}]}], "\[IndentingNewLine]",
RowBox[{"Inverse", "[", "mat3", "]"}]}], "Input",
CellChangeTimes->{{3.758181853902*^9, 3.758181965612356*^9}, {
3.758182000703251*^9, 3.75818206539837*^9}, {3.758182350295936*^9,
3.758182371320956*^9}},
CellLabel->"In[15]:=",ExpressionUUID->"e190552c-41e9-4337-9175-4fc36dab5f9d"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"Example matrices: A= \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "2"},
{"3", "4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]], "\[InvisibleSpace]", "\<\" B= \"\>",
"\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"2", "1"},
{"4", "3"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Example matrices: A= ",
MatrixForm[{{1, 2}, {3, 4}}], " B= ",
MatrixForm[{{2, 1}, {4, 3}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"Inverted: \\!\\(\\*SuperscriptBox[\\(A\\), \\(-1\\)]\\)= \
\"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"-", "2"}], "1"},
{
FractionBox["3", "2"],
RowBox[{"-",
FractionBox["1", "2"]}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]],
"\[InvisibleSpace]", "\<\" \\!\\(\\*SuperscriptBox[\\(B\\), \
\\(-1\\)]\\)= \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
FractionBox["3", "2"],
RowBox[{"-",
FractionBox["1", "2"]}]},
{
RowBox[{"-", "2"}], "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= ",
MatrixForm[{{-2, 1}, {
Rational[3, 2],
Rational[-1, 2]}}], " \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= ",
MatrixForm[{{
Rational[3, 2],
Rational[-1, 2]}, {-2, 1}}]],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{{3.75818191733664*^9, 3.758181922203621*^9}, {
3.758181958730146*^9, 3.7581819659113607`*^9}, 3.758182001352351*^9, {
3.758182050853853*^9, 3.7581820724788723`*^9}, {3.758182342305779*^9,
3.7581823717226763`*^9}, {3.7581964309595013`*^9,
3.758196442407248*^9}},ExpressionUUID->"1035d23d-bf63-4079-9b91-\
9d1a7bd3ef60"],
Cell[BoxData[
TemplateBox[{
"Inverse", "sing",
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \
RowBox[{\\\"3\\\", \\\",\\\", \\\"3\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\
\"{\\\", RowBox[{\\\"7\\\", \\\",\\\", \\\"7\\\"}], \\\"}\\\"}]}], \
\\\"}\\\"}]\\) is singular.\"", 2, 20, 3, 30853638982489243964, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{{3.7581823513823643`*^9, 3.758182371763029*^9},
3.7581964309946632`*^9},
CellLabel->
"During evaluation of \
In[15]:=",ExpressionUUID->"bcf241d9-6e4c-43c8-addf-2cc6fec65747"],
Cell[BoxData[
RowBox[{"Inverse", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"3", ",", "3"}], "}"}], ",",
RowBox[{"{",
RowBox[{"7", ",", "7"}], "}"}]}], "}"}], "]"}]], "Output",
CellChangeTimes->{{3.758181958740506*^9, 3.758181965927252*^9},
3.7581820013677473`*^9, {3.7581820508808193`*^9, 3.7581820725019827`*^9}, {
3.7581823423305902`*^9, 3.7581823717725554`*^9}, 3.75819643100393*^9},
CellLabel->"Out[20]=",ExpressionUUID->"61f2749c-3c0f-48cd-9818-e79c3282ef66"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[TextData[{
"Non-invertible matrices ",
StyleBox["C",
FontSlant->"Italic"],
" and ",
StyleBox["D",
FontSlant->"Italic"],
" so that ",
StyleBox["C + D",
FontSlant->"Italic"],
" is invertible."
}], "Subsection",
CellChangeTimes->{{3.758157398682423*^9, 3.758157440521224*^9},
3.8149558167613287`*^9},ExpressionUUID->"da78bad0-639f-465d-8111-\
ba3feef8a14d"],
Cell[TextData[{
"Given matrices ",
Cell[BoxData[
FormBox["C", TraditionalForm]],ExpressionUUID->
"cbe72ddc-1e8c-4950-b9b2-92d01e9fa29c"],
" and ",
Cell[BoxData[
FormBox["D", TraditionalForm]],ExpressionUUID->
"486c8e5a-d706-4c24-8d2b-ef2f1dea915a"],
", \n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"C", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"a", "b"},
{"c", "d"}
}], "\[NoBreak]", ")"}]}], ",",
RowBox[{"D", "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"e", "f"},
{"g", "h"}
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID->
"37b4cb34-4d25-4431-bae6-4cb4180ef0e2"],
"\n\n",
Cell[BoxData[
FormBox[
RowBox[{"C", "+", "D"}], TraditionalForm]],ExpressionUUID->
"e06f7c6c-b374-4573-bd31-ac5faaeb9d67"],
" can be computed as \n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"C", "+", "D"}], "=",
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"a", "+", "e"}],
RowBox[{"b", "+", "f"}]},
{
RowBox[{"c", "+", "g"}],
RowBox[{"d", "+", "h"}]}
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID->
"0f19eb7b-ed40-4e21-b203-6b19776c967d"],
"\n\nNow, we are looking for matrices ",
Cell[BoxData[
FormBox["C", TraditionalForm]],ExpressionUUID->
"be62a2ec-92de-4587-9a8d-1456e46bfe2c"],
" and ",
Cell[BoxData[
FormBox["D", TraditionalForm]],ExpressionUUID->
"c931ee51-7013-491e-b1b4-a0bccaae57c6"],
" whose determinants are each non-zero but the determinant of ",
Cell[BoxData[
FormBox[
RowBox[{"C", "+", "D"}], TraditionalForm]],ExpressionUUID->
"22d684cb-7ade-4578-bf6e-1be479e75281"],
" is 0. Expressing this in equations give us:\n\n",
Cell[BoxData[{
FormBox[
RowBox[{"ad", "=", "bc"}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{"eh", "=", "fg"}], TraditionalForm], "\[IndentingNewLine]",
FormBox[
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"a", "+", "e"}], ")"}],
RowBox[{"(",
RowBox[{"d", "+", "h"}], ")"}]}], "\[NotEqual]",
RowBox[{
RowBox[{"(",
RowBox[{"f", "+", "b"}], ")"}],
RowBox[{"(",
RowBox[{"g", "+", "c"}], ")"}]}]}], TraditionalForm]}],ExpressionUUID->
"afd160e5-d502-41d3-93d9-a61aa940a3a1"],
"\n\nOne example of a combination of ",
Cell[BoxData[
FormBox[
RowBox[{"(",
RowBox[{
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",",
"h"}], ")"}], TraditionalForm]],ExpressionUUID->
"97c4af2d-145e-4530-882e-03b0b14312ac"],
" is:\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"(",
RowBox[{
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",",
"h"}], ")"}], "=",
RowBox[{"(",
RowBox[{
"1", ",", "4", ",", "2", ",", "8", ",", "2", ",", "6", ",", "1", ",",
"3"}], ")"}]}], TraditionalForm]],ExpressionUUID->
"6410ad7e-3618-40eb-b798-5739b0ac1590"]
}], "Text",
InitializationCell->True,
CellChangeTimes->{{3.7581824128763857`*^9, 3.7581826132364597`*^9}, {
3.758182696120742*^9, 3.7581827177016973`*^9}, {3.7581827898721046`*^9,
3.7581829114063063`*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"a3b6709d-5c51-431a-9bbd-b63a05f4de8e"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"mat4", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "4"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "8"}], "}"}]}], "}"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"mat5", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"2", ",", "6"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "3"}], "}"}]}], "}"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<Example matrices: A= \>\"", ",",
RowBox[{"mat4", "//", "MatrixForm"}], ",", "\"\< B= \>\"", ",",
RowBox[{"mat5", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Print", "[",
RowBox[{"\"\<Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= \>\"", ",",
RowBox[{
RowBox[{"Inverse", "[", "mat4", "]"}], "//", "MatrixForm"}], ",",
"\"\< \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= \>\"", ",",
RowBox[{
RowBox[{"Inverse", "[", "mat5", "]"}], "//", "MatrixForm"}]}], "]"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"mat6", ":=",
RowBox[{"mat4", "+", "mat5"}]}], "\[IndentingNewLine]",
RowBox[{"Inverse", "[", "mat6", "]"}]}], "Input",
CellChangeTimes->{{3.758182930488716*^9, 3.758182973514221*^9}},
CellLabel->"In[21]:=",ExpressionUUID->"e941b480-8ca2-43b1-b02e-8c47ef709916"],
Cell[BoxData[
FormBox[
InterpretationBox[
RowBox[{"\<\"Example matrices: A= \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"1", "4"},
{"2", "8"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]], "\[InvisibleSpace]", "\<\" B= \"\>",
"\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"2", "6"},
{"1", "3"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Example matrices: A= ",
MatrixForm[{{1, 4}, {2, 8}}], " B= ",
MatrixForm[{{2, 6}, {1, 3}}]],
Editable->False], TraditionalForm]], "Print",
CellChangeTimes->{
3.7581829743476963`*^9, {3.758196456336618*^9, 3.758196464141863*^9}},
CellLabel->
"During evaluation of \
In[21]:=",ExpressionUUID->"31ff51da-1168-483e-904f-d83e8fe6405d"],
Cell[BoxData[
TemplateBox[{
"Inverse", "sing",
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \
RowBox[{\\\"1\\\", \\\",\\\", \\\"4\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\
\"{\\\", RowBox[{\\\"2\\\", \\\",\\\", \\\"8\\\"}], \\\"}\\\"}]}], \
\\\"}\\\"}]\\) is singular.\"", 2, 24, 4, 30853638982489243964, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.7581829743723583`*^9, 3.758196456360231*^9},
CellLabel->
"During evaluation of \
In[21]:=",ExpressionUUID->"f6f5b244-b8da-4a6c-8c5d-a1cae27ee403"],
Cell[BoxData[
TemplateBox[{
"Inverse", "sing",
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \
RowBox[{\\\"2\\\", \\\",\\\", \\\"6\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\
\"{\\\", RowBox[{\\\"1\\\", \\\",\\\", \\\"3\\\"}], \\\"}\\\"}]}], \
\\\"}\\\"}]\\) is singular.\"", 2, 24, 5, 30853638982489243964, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.7581829743723583`*^9, 3.758196456381186*^9},
CellLabel->
"During evaluation of \
In[21]:=",ExpressionUUID->"0c13626e-b993-4346-b7e1-6a784a8718f3"],
Cell[BoxData[
InterpretationBox[
RowBox[{"\<\"Inverted: \\!\\(\\*SuperscriptBox[\\(A\\), \\(-1\\)]\\)= \"\>",
"\[InvisibleSpace]",
TagBox[
RowBox[{"Inverse", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "4"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "8"}], "}"}]}], "}"}], "]"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]],
"\[InvisibleSpace]", "\<\" \\!\\(\\*SuperscriptBox[\\(B\\), \\(-1\\)]\\)= \
\"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"Inverse", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"2", ",", "6"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "3"}], "}"}]}], "}"}], "]"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= ",
MatrixForm[
Inverse[{{1, 4}, {2, 8}}]], " \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= ",
MatrixForm[
Inverse[{{2, 6}, {1, 3}}]]],
Editable->False]], "Print",
CellChangeTimes->{3.7581829743476963`*^9, 3.7581964563895063`*^9},
CellLabel->
"During evaluation of \
In[21]:=",ExpressionUUID->"38d9e991-a03f-483f-924e-974e1902e2c6"],
Cell[BoxData[
FormBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
FractionBox["11", "3"],
RowBox[{"-",
FractionBox["10", "3"]}]},
{
RowBox[{"-", "1"}], "1"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
TraditionalForm]], "Output",
CellChangeTimes->{
3.75818297441092*^9, {3.7581964563966713`*^9, 3.758196469847878*^9}},
CellLabel->"Out[26]=",ExpressionUUID->"82eff87a-f852-4add-b0ed-1b96d250f0e2"]
}, Open ]]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["encrypting messages and stuff", "Section",
CellChangeTimes->{{3.7581574454613657`*^9, 3.758157457933679*^9}, {
3.8149558192500753`*^9,
3.8149558329048147`*^9}},ExpressionUUID->"32c548ee-83b7-4fbf-9b37-\
8368a0343e91"],
Cell[CellGroupData[{
Cell[TextData[{
"Numeric ",
StyleBox["key-matrix",
FontSlant->"Italic"],
" corresponding to the examples using the letter-to-number assignment \
given."
}], "Subsection",
CellChangeTimes->{{3.7581574644391527`*^9, 3.75815757071943*^9}, {
3.758175812627846*^9, 3.7581758132242947`*^9}, {3.814955837800932*^9,
3.8149558418897963`*^9}},ExpressionUUID->"1b92766a-5b25-48b0-8579-\
7518f4b80630"],
Cell[TextData[{
"HILL \[RightArrow] ",
Cell[BoxData[
FormBox[
RowBox[{"[", GridBox[{
{"H", "I"},
{"L", "L"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "]"}], TraditionalForm]],
CellChangeTimes->{{3.757666594167828*^9, 3.757666658223991*^9}, {
3.758156993471949*^9, 3.7581571175133343`*^9}},
FontWeight->"Plain",ExpressionUUID->
"4e1eb783-423a-4592-9624-a733721432ca"],
" \[RightArrow] ",
Cell[BoxData[
FormBox[
RowBox[{"[", GridBox[{
{"7", "8"},
{"11", "11"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "]"}], TraditionalForm]],
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}},
FontWeight->"Plain",ExpressionUUID->"00813d87-423f-4a73-8004-d8417d95fb12"]
}], "Text",
CellChangeTimes->{{3.758158159060265*^9, 3.758158311133768*^9},
3.758158348902403*^9},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"d9ffc07e-5c4a-42f6-ac35-81f8ff9a9ba8"]
}, Open ]],
Cell[CellGroupData[{
Cell["First convert text to vector", "Subsection",
CellChangeTimes->{{3.758157575705063*^9, 3.758157577409574*^9}, {
3.758157624644823*^9, 3.758157840951379*^9}, {3.814955844939604*^9,
3.814955906381514*^9}},ExpressionUUID->"d3663094-9d68-4220-9b49-\
f6e0775d1752"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"ClearAll", ";"}], "\[IndentingNewLine]",
RowBox[{"letnum", " ", ":=", " ",
RowBox[{"Association", "[",
RowBox[{
RowBox[{"A", "\[Rule]", "0"}], ",",
RowBox[{"B", "\[Rule]", "1"}], ",",
RowBox[{"C", "\[Rule]", "2"}], ",",
RowBox[{"D", "\[Rule]", "3"}], ",",
RowBox[{"E", "\[Rule]", "4"}], ",",
RowBox[{"F", "\[Rule]", "5"}], ",",
RowBox[{"G", "\[Rule]", "6"}], ",",
RowBox[{"H", "\[Rule]", "7"}], ",",
RowBox[{"I", "\[Rule]", "8"}], ",",
RowBox[{"J", "\[Rule]", "9"}], ",",
RowBox[{"K", "\[Rule]", "10"}], ",",
RowBox[{"L", "\[Rule]", "11"}], ",",
RowBox[{"M", "\[Rule]", "12"}], ",",
RowBox[{"N", "\[Rule]", "13"}], ",",
RowBox[{"O", "\[Rule]", "14"}], ",",
RowBox[{"P", "\[Rule]", "15"}], ",",
RowBox[{"Q", "\[Rule]", "16"}], ",",
RowBox[{"R", "\[Rule]", "17"}], ",",
RowBox[{"S", "\[Rule]", "18"}], ",",
RowBox[{"T", "\[Rule]", "19"}], ",",
RowBox[{"U", "\[Rule]", "20"}], ",",
RowBox[{"V", "\[Rule]", "21"}], ",",
RowBox[{"W", "\[Rule]", "22"}], ",",
RowBox[{"X", "\[Rule]", "23"}], ",",
RowBox[{"Y", "\[Rule]", "24"}], ",",
RowBox[{"Z", "\[Rule]", "25"}]}], "]"}]}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<TE = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "T", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<ST = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<ME = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<SS = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<AG = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<EX = \>\"", ",",
RowBox[{"MatrixForm", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}], "]"}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.758158369141244*^9, 3.758158535291754*^9}, {
3.758158695001642*^9, 3.758158829895775*^9}, 3.758158878216824*^9, {
3.758159017250574*^9, 3.7581590357168617`*^9}, {3.7581735205997057`*^9,
3.758173521314938*^9}},
CellLabel->"In[27]:=",ExpressionUUID->"0779fd9a-2497-4102-86e0-87e7197a6c01"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"TE = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"19"},
{"4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["TE = ",
MatrixForm[{{19}, {4}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"ST = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"18"},
{"19"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["ST = ",
MatrixForm[{{18}, {19}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"ME = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"12"},
{"4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["ME = ",
MatrixForm[{{12}, {4}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"SS = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"18"},
{"18"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["SS = ",
MatrixForm[{{18}, {18}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"AG = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"0"},
{"6"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["AG = ",
MatrixForm[{{0}, {6}}]],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"EX = \"\>", "\[InvisibleSpace]",
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{"4"},
{"23"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]}],
SequenceForm["EX = ",
MatrixForm[{{4}, {23}}]],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{
3.758173524207973*^9, {3.758196476068967*^9,
3.758196482869028*^9}},ExpressionUUID->"9b8481d6-e90f-438b-9454-\
04ace92b377e"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Encrypting", "Subsection",
CellChangeTimes->{{3.758157846220573*^9, 3.758157887886464*^9}, {
3.81495586074477*^9,
3.814955911029015*^9}},ExpressionUUID->"734064bb-f963-437d-bbcc-\
367e0cb96e11"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"key", ":=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"7", ",", "8"}], "}"}], ",",
RowBox[{"{",
RowBox[{"11", ",", "11"}], "}"}]}], "}"}]}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<TE encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "T", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<ST encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<ME encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<SS encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<AG encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<EX encrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"key", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}]}], "Input",
CellChangeTimes->{{3.758159636748233*^9, 3.758159649968012*^9}, {
3.7581596961173973`*^9, 3.758159796678773*^9}, {3.7581598449845057`*^9,
3.7581599231582537`*^9}, {3.7581600048501463`*^9, 3.758160017247478*^9}, {
3.7581600551594954`*^9, 3.7581601118287153`*^9}, {3.758160143405232*^9,
3.758160281691649*^9}, {3.7581735377508593`*^9, 3.7581735590413513`*^9}},
CellLabel->"In[35]:=",ExpressionUUID->"9dbb62d8-4b69-4d59-9edb-87035749d888"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"TE encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"9"},
{"19"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["TE encrypted: ", {{9}, {19}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"ST encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"18"},
{"17"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["ST encrypted: ", {{18}, {17}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"ME encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"12"},
{"20"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["ME encrypted: ", {{12}, {20}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"SS encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"10"},
{"6"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["SS encrypted: ", {{10}, {6}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"AG encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"22"},
{"14"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["AG encrypted: ", {{22}, {14}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"EX encrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"4"},
{"11"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["EX encrypted: ", {{4}, {11}}],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{
3.758162128379051*^9, 3.758171396087229*^9, 3.758172004339747*^9,
3.7581735655663757`*^9, {3.75819648650832*^9,
3.7581964934296227`*^9}},ExpressionUUID->"d66fbfb5-620a-4b87-b8dc-\
82de9c58d581"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Encrypted string for \[OpenCurlyQuote]TESTMESSAGE\[CloseCurlyQuote]", \
"Subsection",
CellChangeTimes->{{3.758157889483095*^9, 3.758157905657097*^9}, {
3.814955913871792*^9,
3.8149559165490923`*^9}},ExpressionUUID->"90ecf76a-554c-430a-9632-\
5b8becf93ab6"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"numlet", ":=",
RowBox[{"PositionIndex", "[", "letnum", "]"}]}], "\[IndentingNewLine]",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "9", "]"}], ",",
RowBox[{"numlet", "[", "19", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "18", "]"}], ",",
RowBox[{"numlet", "[", "17", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "12", "]"}], ",",
RowBox[{"numlet", "[", "20", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "10", "]"}], ",",
RowBox[{"numlet", "[", "6", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "22", "]"}], ",",
RowBox[{"numlet", "[", "14", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "11", "]"}]}], "}"}]}], "}"}]}], "Input",
CellChangeTimes->{{3.758160737450714*^9, 3.758160840453273*^9}, {
3.758160879468892*^9, 3.758160978735833*^9}, {3.758161053967224*^9,
3.758161072559272*^9}},
CellLabel->"In[42]:=",ExpressionUUID->"c5085808-cff2-49d9-b7a1-4162212ac570"],
Cell[BoxData[
FormBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"{", "J", "}"}],
RowBox[{"{", "T", "}"}]},
{
RowBox[{"{", "S", "}"}],
RowBox[{"{", "R", "}"}]},
{
RowBox[{"{", "M", "}"}],
RowBox[{"{", "U", "}"}]},
{
RowBox[{"{", "K", "}"}],
RowBox[{"{", "G", "}"}]},
{
RowBox[{"{", "W", "}"}],
RowBox[{"{", "O", "}"}]},
{
RowBox[{"{", "\[ExponentialE]", "}"}],
RowBox[{"{", "L", "}"}]}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
"RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
TraditionalForm]], "Output",
CellChangeTimes->{
3.758160902303858*^9, {3.758160939514399*^9, 3.758160986354648*^9}, {
3.75816107353613*^9, 3.758161079664603*^9}, 3.7581621394254847`*^9,
3.7581713983998413`*^9, 3.758173579846677*^9, {3.758196495665839*^9,
3.758196499424715*^9}},
CellLabel->"Out[43]=",ExpressionUUID->"d3994a33-5cf6-4618-93e5-a5eeb7c59084"]
}, Open ]],
Cell["The encrypted string for \[OpenCurlyQuote]TESTMESSAGE\[CloseCurlyQuote] \
is \[OpenCurlyDoubleQuote]JTSRMUKGWOEL\[CloseCurlyDoubleQuote]", "Text",
CellChangeTimes->{{3.758160995143154*^9, 3.758161011785335*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"7341ee04-192c-4418-b4dc-51e8ff4eecea"]
}, Open ]],
Cell[CellGroupData[{
Cell["Decrypting", "Subsection",
CellChangeTimes->{{3.758157916664495*^9, 3.7581579599441977`*^9}, {
3.7581615334748373`*^9, 3.758161533925446*^9}, {3.814955921337359*^9,
3.8149559440853853`*^9}},ExpressionUUID->"587e37a0-eaaa-4808-a18b-\
cb3c05e58542"],
Cell[CellGroupData[{
Cell["TESTMESSAGE", "Subsubsection",
CellChangeTimes->{{3.75817442867734*^9, 3.758174441866015*^9}, {
3.814955953382641*^9,
3.814955958464332*^9}},ExpressionUUID->"f4795f2f-6bde-4d73-af74-\
d2bd1fa209ac"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{"SetAttributes", "[",
RowBox[{"ForceMod", ",", "Listable"}], "]"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"ForceMod", "[",
RowBox[{
RowBox[{"Rational", "[",
RowBox[{"a_", ",", "b_"}], "]"}], ",", "m_"}], "]"}], ":=",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"a", "*",
RowBox[{"ModularInverse", "[",
RowBox[{"b", ",", "m"}], "]"}]}], ",", "m"}], "]"}]}], ";"}],
RowBox[{"(*",
RowBox[{
"build", " ", "a", " ", "function", " ", "that", " ", "returns", " ",
"modular", " ", "arithmetic", " ", "even", " ", "with", " ", "rational",
" ", "input"}], "*)"}], "\n"}], "\n",
RowBox[{"invkey", ":=",
RowBox[{"Inverse", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"7", ",", "8"}], "}"}], ",",
RowBox[{"{",
RowBox[{"11", ",", "11"}], "}"}]}], "}"}],
"]"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"decryptkey", ":=",
RowBox[{"ForceMod", "[",
RowBox[{"invkey", ",", "26"}], "]"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<JT decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "J", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<SR decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "R", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<MU decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "U", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<KG decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "K", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<WO decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "W", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "O", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<EL decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "L", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}]}], "Input",
CellChangeTimes->CompressedData["
1:eJxTTMoPSmViYGCQAGIQzf1O6II8wxvHsktFV0D0orblD0D0loruryA6ZSE3
iwKQnvMxkANE69msW68Cot1tN4LoGTzLzoDoV5Fzz4Lo1RtfXwTRrcYm90D0
/wPRL0B01f8VYLrhHvdnEJ1WowGmhRSYWFSB9NKbeoIg+nWYmgSIlohRkQPR
vvrW6iB6U/kCbRCt46lqB6LnzXgJpl14bJ1BtFeyoQuI5pL/HQ+ihXszUkG0
ykflHBCtwacHpltjIktB9JNNlmUgusSvqwpE1z2Rng6iFwtOmgOil4X0LgbR
vC6tm0C0ksRmMF1UtusaiL6i6X0XRDNfKPwAohf90uJUA5njrv/CAEhXstR9
BtEBJUb/QDQHSyqYjnCJ5jcE0iaGOkIgGgBUd5cu
"],
CellLabel->
"In[181]:=",ExpressionUUID->"8dcb4107-b9de-4269-85ad-c14400aff8fb"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"JT decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"19"},
{"4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["JT decrypted: ", {{19}, {4}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"SR decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"18"},
{"19"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["SR decrypted: ", {{18}, {19}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"MU decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"12"},
{"4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["MU decrypted: ", {{12}, {4}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"KG decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"18"},
{"18"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["KG decrypted: ", {{18}, {18}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"WO decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"0"},
{"6"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["WO decrypted: ", {{0}, {6}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"EL decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"4"},
{"23"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["EL decrypted: ", {{4}, {23}}],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{{3.7581965525618753`*^9, 3.758196625604965*^9},
3.758196672123301*^9, {3.758196723741304*^9, 3.758196731530191*^9}, {
3.7581968706255836`*^9,
3.758196887833171*^9}},ExpressionUUID->"c7488d0a-3048-4bd2-acfd-\
e36ae6660ab2"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Print", "[",
RowBox[{"\"\<Translated back to letters: \>\"", ",", " ",
RowBox[{"numlet", "[", "19", "]"}], ",", " ",
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "18", "]"}], ",",
RowBox[{"numlet", "[", "19", "]"}], ",",
RowBox[{"numlet", "[", "12", "]"}], ",",
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "18", "]"}], ",",
RowBox[{"numlet", "[", "18", "]"}], ",",
RowBox[{"numlet", "[", "0", "]"}], ",",
RowBox[{"numlet", "[", "6", "]"}], ",",
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "23", "]"}]}], "]"}]], "Input",
CellChangeTimes->{{3.758174287005088*^9, 3.75817439853351*^9}},
CellLabel->"In[54]:=",ExpressionUUID->"a0cbfb75-6bb0-4ddf-a5ad-794369ed6e86"],
Cell[BoxData[
FormBox[
InterpretationBox[
RowBox[{"\<\"Translated back to letters: \"\>", "\[InvisibleSpace]",
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "M", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "G", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "X", "}"}]}],
SequenceForm[
"Translated back to letters: ", {$CellContext`T}, {
E}, {$CellContext`S}, {$CellContext`T}, {$CellContext`M}, {
E}, {$CellContext`S}, {$CellContext`S}, {$CellContext`A}, \
{$CellContext`G}, {E}, {$CellContext`X}],
Editable->False], TraditionalForm]], "Print",
CellChangeTimes->{{3.7581743543006783`*^9, 3.75817439904671*^9}, {
3.7581965214941*^9, 3.7581965250021133`*^9}},
CellLabel->
"During evaluation of \
In[54]:=",ExpressionUUID->"10ecaefd-b9e4-4d19-a24d-503d386834d4"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["SOME OTHER EXAMPLE \[OpenCurlyDoubleQuote]QWJJOPEXWGBUFADHRNNZJ\
\[CloseCurlyDoubleQuote]", "Subsubsection",
CellChangeTimes->{{3.758174416227324*^9, 3.7581744199164953`*^9}, {
3.758174550432547*^9, 3.7581745729764357`*^9}, {3.814955965199198*^9,
3.8149559705922813`*^9}},ExpressionUUID->"73bd7840-8a81-43d4-b6c0-\
0305404e2fea"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"Print", "[",
RowBox[{"\"\<QW decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "Q", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "W", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<JJ decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "J", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "J", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<OP decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "O", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "P", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<EX decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<WG decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "W", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<BU decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "B", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "U", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<PF decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "P", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "F", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<AD decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "D", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<HR decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "H", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "R", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<NN decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "N", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "N", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"Print", "[",
RowBox[{"\"\<ZJ decrypted: \>\"", ",",
RowBox[{"Mod", "[",
RowBox[{
RowBox[{"decryptkey", ".",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"letnum", "[", "Z", "]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"letnum", "[", "J", "]"}], "}"}]}], "}"}]}], ",", "26"}],
"]"}]}], "]"}]}], "Input",
CellChangeTimes->{{3.7581745783165827`*^9, 3.758174709208406*^9}},
CellLabel->
"In[191]:=",ExpressionUUID->"3446689a-f4dc-48cf-8f92-c83c68355a84"],
Cell[BoxData[{
FormBox[
InterpretationBox[
RowBox[{"\<\"QW decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"0"},
{"2"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["QW decrypted: ", {{0}, {2}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"JJ decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"7"},
{"8"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["JJ decrypted: ", {{7}, {8}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"OP decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"4"},
{"21"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["OP decrypted: ", {{4}, {21}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"EX decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"8"},
{"13"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["EX decrypted: ", {{8}, {13}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"WG decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"6"},
{"4"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["WG decrypted: ", {{6}, {4}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"BU decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"23"},
{"19"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["BU decrypted: ", {{23}, {19}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"PF decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"17"},
{"0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["PF decrypted: ", {{17}, {0}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"AD decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"14"},
{"17"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["AD decrypted: ", {{14}, {17}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"HR decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"3"},
{"8"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["HR decrypted: ", {{3}, {8}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"NN decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"13"},
{"0"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["NN decrypted: ", {{13}, {0}}],
Editable->False], TraditionalForm], "\n",
FormBox[
InterpretationBox[
RowBox[{"\<\"ZJ decrypted: \"\>", "\[InvisibleSpace]",
RowBox[{"(", "\[NoBreak]", GridBox[{
{"17"},
{"24"}
},
GridBoxAlignment->{
"Columns" -> {{Center}}, "ColumnsIndexed" -> {},
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}],
SequenceForm["ZJ decrypted: ", {{17}, {24}}],
Editable->False], TraditionalForm]}], "Print",
GeneratedCell->False,
CellAutoOverwrite->False,
CellChangeTimes->{{3.75817470971313*^9, 3.758174717984292*^9}, {
3.758196892841379*^9,
3.75819689915196*^9}},ExpressionUUID->"603146d4-f5b7-4664-92c8-\
ca16e7debe14"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Print", "[",
RowBox[{"\"\<Translated back to letters: \>\"", ",", " ",
RowBox[{"numlet", "[", "0", "]"}], ",", " ",
RowBox[{"numlet", "[", "2", "]"}], ",",
RowBox[{"numlet", "[", "7", "]"}], ",",
RowBox[{"numlet", "[", "8", "]"}], ",",
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "21", "]"}], ",",
RowBox[{"numlet", "[", "8", "]"}], ",",
RowBox[{"numlet", "[", "13", "]"}], ",",
RowBox[{"numlet", "[", "6", "]"}], ",",
RowBox[{"numlet", "[", "4", "]"}], ",",
RowBox[{"numlet", "[", "23", "]"}], ",",
RowBox[{"numlet", "[", "19", "]"}], ",",
RowBox[{"numlet", "[", "17", "]"}], ",",
RowBox[{"numlet", "[", "0", "]"}], ",",
RowBox[{"numlet", "[", "14", "]"}], ",",
RowBox[{"numlet", "[", "17", "]"}], ",",
RowBox[{"numlet", "[", "3", "]"}], ",",
RowBox[{"numlet", "[", "8", "]"}], ",",
RowBox[{"numlet", "[", "13", "]"}], ",",
RowBox[{"numlet", "[", "0", "]"}], ",",
RowBox[{"numlet", "[", "17", "]"}], ",",
RowBox[{"numlet", "[", "24", "]"}]}], "]"}]], "Input",
CellChangeTimes->{{3.758174761822315*^9, 3.758174815253574*^9}},
CellLabel->
"In[202]:=",ExpressionUUID->"6fc74282-7ce4-4155-856e-103a95947069"],
Cell[BoxData[
FormBox[
InterpretationBox[
RowBox[{"\<\"Translated back to letters: \"\>", "\[InvisibleSpace]",
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "C", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "H", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "V", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "N", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "G", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "X", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "O", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "D", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "N", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]",
RowBox[{"{", "Y", "}"}]}],
SequenceForm[
"Translated back to letters: ", {$CellContext`A}, {C}, {$CellContext`H}, {
Complex[0, 1]}, {E}, {$CellContext`V}, {
Complex[0, 1]}, {N}, {$CellContext`G}, {
E}, {$CellContext`X}, {$CellContext`T}, {$CellContext`R}, \
{$CellContext`A}, {O}, {$CellContext`R}, {D}, {
Complex[0, 1]}, {
N}, {$CellContext`A}, {$CellContext`R}, {$CellContext`Y}],
Editable->False], TraditionalForm]], "Print",
CellChangeTimes->{
3.758174815668688*^9, {3.7581969014047213`*^9, 3.758196905171316*^9}},
CellLabel->
"During evaluation of \
In[202]:=",ExpressionUUID->"79f8e0b0-eacc-4926-b6fb-f946f532e1be"]
}, Open ]],
Cell["The message reads: \[OpenCurlyDoubleQuote]ACHIEVINGEXTRAORDINARY\
\[CloseCurlyDoubleQuote].", "Text",
CellChangeTimes->{{3.7581748899215937`*^9, 3.758174907575474*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"f056d529-12bf-4a68-adbe-844278dded25"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Analysis", "Subsection",
CellChangeTimes->{{3.758157964315374*^9, 3.7581580033996353`*^9}, {
3.8149559874294167`*^9,
3.814955992625304*^9}},ExpressionUUID->"ba0ad053-bf1b-40fd-a413-\
5452fdfaabd9"],
Cell["\<\
This technique is effective because of the intermediary step to convert a \
vector into a different vector using the key matrix. For example, if we look \
at the third and fourth letter of the encrypted message in part (e), (=\
\[OpenCurlyDoubleQuote]JJ\[CloseCurlyDoubleQuote]), we see that it is the \
same. In a standard substitution cipher, this implies that the third and \
fourth letter of the message is also the same, since substitution requires a \
one-to-one match of the original message and the encrypted message. However, \
here we see that \[OpenCurlyDoubleQuote]JJ\[CloseCurlyDoubleQuote] ultimately \
translates to \[OpenCurlyDoubleQuote]HI\[CloseCurlyDoubleQuote] of the \
original message, which are not two same letters. This is achieved by using \
the key matrix and thus making the message more secure. One way to make the \
message even more secure is by going through several layers, not just one, of \
matrix multiplications as well as changing the key matrix every day.\
\>", "Text",
CellChangeTimes->{{3.758174914932179*^9, 3.758174916948182*^9}, {
3.758175036503528*^9, 3.7581752479370737`*^9}, {3.758175843584154*^9,
3.758175859098709*^9}},
FontFamily->"Times New Roman",
FontWeight->"Regular",ExpressionUUID->"8b0a7d15-846c-475e-a26b-532be7fe1637"]
}, Open ]]
}, Open ]]
},
WindowSize->{839, 930},
WindowMargins->{{Automatic, 0}, {Automatic, 0}},
PrintingCopies->1,
PrintingPageRange->{1, Automatic},
FrontEndVersion->"12.1 for Mac OS X x86 (64-bit) (March 18, 2020)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"4093fcef-4b20-48cf-a72a-c428987a3a4c"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 311, 5, 67, "Section",ExpressionUUID->"fd8544d6-1909-4b25-9659-cd19eeb208bb"],
Cell[CellGroupData[{
Cell[916, 31, 225, 4, 54, "Subsection",ExpressionUUID->"cd0aff72-5c8a-44d3-8cb3-dbab95b01f94"],
Cell[1144, 37, 6935, 207, 545, "Input",ExpressionUUID->"b0c69a89-e41f-4462-b682-141ee72fb0a9"]
}, Open ]],
Cell[CellGroupData[{
Cell[8116, 249, 743, 18, 108, "Subsection",ExpressionUUID->"092998ee-98fb-457e-a1ee-f1bc6fc235fd"],
Cell[8862, 269, 1429, 41, 62, "Input",ExpressionUUID->"98030549-e517-43ea-bbbc-a4b730310aa9"],
Cell[10294, 312, 1585, 35, 159, "Text",ExpressionUUID->"d94a9d92-4dca-41bc-9b3e-6f7447a89e11"],
Cell[CellGroupData[{
Cell[11904, 351, 1154, 30, 52, "Input",ExpressionUUID->"e9354c81-f591-48aa-928d-5ca4f694cdf3"],
Cell[13061, 383, 1918, 52, 108, "Print",ExpressionUUID->"79a5324a-ce77-4469-a1f7-92ab6b031125"]
}, Open ]],
Cell[14994, 438, 1299, 38, 75, "Text",ExpressionUUID->"1740787f-7fc5-4328-af77-f1f5d801f02c"],
Cell[CellGroupData[{
Cell[16318, 480, 1149, 31, 52, "Input",ExpressionUUID->"ecc091c2-b451-4218-9c79-ed695362eeee"],
Cell[17470, 513, 1963, 54, 108, "Print",ExpressionUUID->"2a66624f-9704-47c9-877f-c88741f24d3b"]
}, Open ]],
Cell[19448, 570, 538, 15, 33, "Text",ExpressionUUID->"6514a758-edbc-4168-8464-8f9a05022bf1"],
Cell[19989, 587, 903, 15, 159, "Text",ExpressionUUID->"f4deffad-1d70-4ec4-889f-f096f10022d9"]
}, Open ]],
Cell[CellGroupData[{
Cell[20929, 607, 336, 5, 54, "Subsection",ExpressionUUID->"7f9ca359-e542-4596-988f-cb8f1fdd5131"],
Cell[21268, 614, 4386, 122, 459, "Text",ExpressionUUID->"b9b41390-d3bd-4c8d-be75-adf215da90d4"]
}, Open ]],
Cell[CellGroupData[{
Cell[25691, 741, 294, 4, 54, "Subsection",ExpressionUUID->"dd11fafb-c20d-4785-88fc-bc0af54c783b"],
Cell[25988, 747, 3940, 108, 401, "Text",ExpressionUUID->"88dca3f2-6fa1-494b-9a71-3a8bd544e4c8"],
Cell[CellGroupData[{
Cell[29953, 859, 245, 5, 45, "Subsubsection",ExpressionUUID->"f7afa4cc-bb1e-4a21-8e8f-2dc3754a20a0"],
Cell[30201, 866, 375, 7, 54, "Text",ExpressionUUID->"45533c61-90b1-4077-93e6-5399f908f90f"]
}, Open ]],
Cell[CellGroupData[{
Cell[30613, 878, 249, 5, 45, "Subsubsection",ExpressionUUID->"56efd40e-170a-42f7-9958-c969378d750b"],
Cell[30865, 885, 593, 12, 88, "Text",ExpressionUUID->"611b804c-6957-4108-bc48-14a182c8fe0f"]
}, Open ]]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[31519, 904, 250, 5, 67, "Section",ExpressionUUID->"f66fbda0-3f3f-4cea-9521-8bbbfd3e8f05"],
Cell[31772, 911, 45587, 774, 921, "Text",ExpressionUUID->"8d41fa73-04f5-4be7-958c-8b0b77141612"],
Cell[CellGroupData[{
Cell[77384, 1689, 2134, 41, 52, "Input",ExpressionUUID->"d923b046-180f-4a75-87cb-672596142f09"],
Cell[79521, 1732, 1130, 23, 30, "Output",ExpressionUUID->"b8a2e3d4-2422-4be6-b992-7e8314e45a84"]
}, Open ]],
Cell[80666, 1758, 1328, 27, 178, "Text",ExpressionUUID->"3bd695d1-2d4d-43e5-9ab9-639b0e34fb0d"],
Cell[81997, 1787, 937, 15, 138, "Text",ExpressionUUID->"90055568-58de-44d4-a052-50353a9eae39"],
Cell[82937, 1804, 411, 7, 54, "Text",ExpressionUUID->"fbe10508-2ddd-46d7-9f90-c22c5e5d0d08"],
Cell[CellGroupData[{
Cell[83373, 1815, 226, 4, 54, "Subsection",ExpressionUUID->"384aeb62-6b40-42c8-86cf-cc4bc1705756"],
Cell[83602, 1821, 1937, 51, 359, "Text",ExpressionUUID->"60aeeb08-a4e1-4f74-bd96-8d198853ebe8"],
Cell[CellGroupData[{
Cell[85564, 1876, 1398, 35, 73, "Input",ExpressionUUID->"0fc5ef7c-8844-4bfe-8abd-1d0840dbca8f"],
Cell[86965, 1913, 758, 17, 30, "Output",ExpressionUUID->"1e8116f6-d6e8-4d97-8712-f761675b2ca6"]
}, Open ]],
Cell[87738, 1933, 879, 14, 96, "Text",ExpressionUUID->"6ecaa955-f7ae-4481-8667-3782de86e210"],
Cell[CellGroupData[{
Cell[88642, 1951, 1180, 29, 73, "Input",ExpressionUUID->"bd3f8b2d-88b8-4e53-9dfa-e32ae8593dd1"],
Cell[89825, 1982, 880, 19, 30, "Output",ExpressionUUID->"f2513d0f-cf7d-47c1-918a-421b6e884b24"]
}, Open ]],
Cell[90720, 2004, 928, 14, 138, "Text",ExpressionUUID->"fcb20ae1-04bb-4f8c-9a53-3bab48366392"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[91697, 2024, 254, 5, 67, "Section",ExpressionUUID->"5a33a389-0bfc-4cdf-9d7f-de902dd1f317"],
Cell[CellGroupData[{
Cell[91976, 2033, 459, 18, 54, "Subsection",ExpressionUUID->"a565f71f-f745-45bf-b5e1-7727f5980758"],
Cell[92438, 2053, 1693, 39, 116, "Text",ExpressionUUID->"fb6b4aad-aa7e-415a-86d3-e4c195272052",
InitializationCell->True],
Cell[CellGroupData[{
Cell[94156, 2096, 1102, 29, 94, "Input",ExpressionUUID->"8a5939e6-c011-4f1a-b8d6-97675e695e8c"],
Cell[95261, 2127, 1001, 25, 51, "Output",ExpressionUUID->"989a943f-be74-42b4-b7d0-4e473d55560f"]
}, Open ]],
Cell[96277, 2155, 766, 20, 98, "Text",ExpressionUUID->"464546e2-85f2-4053-b608-6ead8e29f722"],
Cell[CellGroupData[{
Cell[97068, 2179, 1042, 35, 30, "Input",ExpressionUUID->"4b8b1cdd-f2f5-4905-9bc0-a101e47c34d1"],
Cell[98113, 2216, 253, 3, 34, "Output",ExpressionUUID->"b11b9e95-9412-4083-a7d2-9019213cbdd9"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[98415, 2225, 398, 13, 54, "Subsection",ExpressionUUID->"6a9f05ef-76a9-4b18-a6c9-d42d256d9443"],
Cell[98816, 2240, 3792, 119, 509, "Text",ExpressionUUID->"6e0be7ee-507b-4d64-9de6-23addf252f4f"],
Cell[CellGroupData[{
Cell[102633, 2363, 838, 22, 73, "Input",ExpressionUUID->"291c551e-c878-4032-89e3-e12237091a67"],
Cell[103474, 2387, 1908, 54, 72, "Print",ExpressionUUID->"2a78dc51-7367-4592-b06a-7d25eac8e32b"]
}, Open ]],
Cell[CellGroupData[{
Cell[105419, 2446, 676, 17, 30, "Input",ExpressionUUID->"2d1f6fcf-3c02-494a-8674-6077df84a19f"],
Cell[106098, 2465, 408, 11, 54, "Output",ExpressionUUID->"946788f3-e97e-4644-a025-256fe6ef9b5f"]
}, Open ]],
Cell[106521, 2479, 244, 3, 33, "Text",ExpressionUUID->"b36cc10e-a6e6-43d4-86eb-eba817fc5e0e"]
}, Open ]],
Cell[CellGroupData[{
Cell[106802, 2487, 427, 15, 54, "Subsection",ExpressionUUID->"dc393c65-d07e-421a-a8b5-5d5ea25a5cfa"],
Cell[107232, 2504, 3116, 98, 354, "Text",ExpressionUUID->"3902d859-2b2a-4ae7-97f2-7b3e8ef0bc2d"],
Cell[CellGroupData[{
Cell[110373, 2606, 1455, 36, 203, "Input",ExpressionUUID->"e190552c-41e9-4337-9175-4fc36dab5f9d"],
Cell[111831, 2644, 3980, 106, 82, "Print",ExpressionUUID->"1035d23d-bf63-4079-9b91-9d1a7bd3ef60"],
Cell[115814, 2752, 584, 12, 24, "Message",ExpressionUUID->"bcf241d9-6e4c-43c8-addf-2cc6fec65747"],
Cell[116401, 2766, 508, 11, 34, "Output",ExpressionUUID->"61f2749c-3c0f-48cd-9818-e79c3282ef66"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[116958, 2783, 377, 14, 54, "Subsection",ExpressionUUID->"da78bad0-639f-465d-8111-ba3feef8a14d"],
Cell[117338, 2799, 3280, 102, 360, "Text",ExpressionUUID->"a3b6709d-5c51-431a-9bbd-b63a05f4de8e",
InitializationCell->True],
Cell[CellGroupData[{
Cell[120643, 2905, 1361, 34, 203, "Input",ExpressionUUID->"e941b480-8ca2-43b1-b02e-8c47ef709916"],
Cell[122007, 2941, 1769, 47, 38, "Print",ExpressionUUID->"31ff51da-1168-483e-904f-d83e8fe6405d"],
Cell[123779, 2990, 554, 11, 24, "Message",ExpressionUUID->"f6f5b244-b8da-4a6c-8c5d-a1cae27ee403"],
Cell[124336, 3003, 554, 11, 24, "Message",ExpressionUUID->"0c13626e-b993-4346-b7e1-6a784a8718f3"],
Cell[124893, 3016, 1213, 35, 25, "Print",ExpressionUUID->"38d9e991-a03f-483f-924e-974e1902e2c6"],
Cell[126109, 3053, 822, 23, 58, "Output",ExpressionUUID->"82eff87a-f852-4add-b0ed-1b96d250f0e2"]
}, Open ]]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[126992, 3083, 229, 4, 67, "Section",ExpressionUUID->"32c548ee-83b7-4fbf-9b37-8368a0343e91"],
Cell[CellGroupData[{
Cell[127246, 3091, 401, 10, 81, "Subsection",ExpressionUUID->"1b92766a-5b25-48b0-8579-7518f4b80630"],
Cell[127650, 3103, 1684, 45, 51, "Text",ExpressionUUID->"d9ffc07e-5c4a-42f6-ac35-81f8ff9a9ba8"]
}, Open ]],
Cell[CellGroupData[{
Cell[129371, 3153, 271, 4, 54, "Subsection",ExpressionUUID->"d3663094-9d68-4220-9b49-f6e0775d1752"],
Cell[CellGroupData[{
Cell[129667, 3161, 3460, 95, 220, "Input",ExpressionUUID->"0779fd9a-2497-4102-86e0-87e7197a6c01"],
Cell[133130, 3258, 4950, 144, 210, "Print",ExpressionUUID->"9b8481d6-e90f-438b-9454-04ace92b377e"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[138129, 3408, 206, 4, 54, "Subsection",ExpressionUUID->"734064bb-f963-437d-bbcc-367e0cb96e11"],
Cell[CellGroupData[{
Cell[138360, 3416, 2970, 85, 157, "Input",ExpressionUUID->"9dbb62d8-4b69-4d59-9edb-87035749d888"],
Cell[141333, 3503, 4523, 121, 210, "Print",ExpressionUUID->"d66fbfb5-620a-4b87-b8dc-82de9c58d581"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[145905, 3630, 268, 5, 54, "Subsection",ExpressionUUID->"90ecf76a-554c-430a-9632-5b8becf93ab6"],
Cell[CellGroupData[{
Cell[146198, 3639, 1193, 32, 73, "Input",ExpressionUUID->"c5085808-cff2-49d9-b7a1-4162212ac570"],
Cell[147394, 3673, 1303, 38, 116, "Output",ExpressionUUID->"d3994a33-5cf6-4618-93e5-a5eeb7c59084"]
}, Open ]],
Cell[148712, 3714, 329, 4, 33, "Text",ExpressionUUID->"7341ee04-192c-4418-b4dc-51e8ff4eecea"]
}, Open ]],
Cell[CellGroupData[{
Cell[149078, 3723, 259, 4, 54, "Subsection",ExpressionUUID->"587e37a0-eaaa-4808-a18b-cb3c05e58542"],
Cell[CellGroupData[{
Cell[149362, 3731, 210, 4, 45, "Subsubsection",ExpressionUUID->"f4795f2f-6bde-4d73-af74-d2bd1fa209ac"],
Cell[CellGroupData[{
Cell[149597, 3739, 4007, 117, 283, "Input",ExpressionUUID->"8dcb4107-b9de-4269-85ad-c14400aff8fb"],
Cell[153607, 3858, 4547, 121, 210, "Print",ExpressionUUID->"c7488d0a-3048-4bd2-acfd-e36ae6660ab2"]
}, Open ]],
Cell[CellGroupData[{
Cell[158191, 3984, 795, 16, 73, "Input",ExpressionUUID->"a0cbfb75-6bb0-4ddf-a5ad-794369ed6e86"],
Cell[158989, 4002, 1263, 26, 20, "Print",ExpressionUUID->"10ecaefd-b9e4-4d19-a24d-503d386834d4"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[160301, 4034, 341, 5, 45, "Subsubsection",ExpressionUUID->"73bd7840-8a81-43d4-b6c0-0305404e2fea"],
Cell[CellGroupData[{
Cell[160667, 4043, 4475, 135, 241, "Input",ExpressionUUID->"3446689a-f4dc-48cf-8f92-c83c68355a84"],
Cell[165145, 4180, 7983, 215, 380, "Print",ExpressionUUID->"603146d4-f5b7-4664-92c8-ca16e7debe14"]
}, Open ]],
Cell[CellGroupData[{
Cell[173165, 4400, 1243, 27, 94, "Input",ExpressionUUID->"6fc74282-7ce4-4155-856e-103a95947069"],
Cell[174411, 4429, 1916, 39, 20, "Print",ExpressionUUID->"79f8e0b0-eacc-4926-b6fb-f946f532e1be"]
}, Open ]],
Cell[176342, 4471, 286, 4, 33, "Text",ExpressionUUID->"f056d529-12bf-4a68-adbe-844278dded25"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[176677, 4481, 209, 4, 54, "Subsection",ExpressionUUID->"ba0ad053-bf1b-40fd-a413-5452fdfaabd9"],
Cell[176889, 4487, 1295, 19, 159, "Text",ExpressionUUID->"8b0a7d15-846c-475e-a26b-532be7fe1637"]
}, Open ]]
}, Open ]]
}
]
*)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment