PROBLEM SET 1
(1) The rank of matrix A
\[\begin{gather*}
I\ am\ going\ to\ use\ RREF\ to\ find\ the\ rank\ of\ A\\
\\
A\ =\begin{bmatrix}
1 & 2 & 3 & 4\\
-1 & 0 & 1 & 3\\
0 & 1 & -2 & 1\\
5 & 4 & -2 & -3
\end{bmatrix} R_{2}\rightarrow R_{3} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
=\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
-1 & 0 & 1 & 3\\
5 & 4 & -2 & -3
\end{bmatrix} R_{3} =R_{1} \ +\ R_{3} ;\ R_{4} \ =-5R_{1} \ +\ R_{4} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
\ \ \ =\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
0 & 2 & 4 & 7\\
0 & 6 & -17 & -23
\end{bmatrix} R_{3} =-2R_{2} +R_{3} ;\ R_{4} =-6R_{2} +R_{4} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
\\
=\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
0 & 0 & 8 & 5\\
0 & 0 & -5 & -29
\end{bmatrix} R_{3} =\frac{1}{8} R_{3} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
=\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
0 & 0 & 1 & \frac{5}{8}\\
0 & 0 & -5 & -29
\end{bmatrix} R_{4} =5R_{3} +R_{4} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
=\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
0 & 0 & 1 & \frac{5}{8}\\
0 & 0 & 0 & -\frac{207}{8}
\end{bmatrix} R_{4} =-\frac{8}{207} R_{4} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\begin{bmatrix}
1 & 2 & 3 & 4\\
0 & 1 & -2 & 1\\
0 & 0 & 1 & \frac{5}{8}\\
0 & 0 & 0 & 1
\end{bmatrix} \ R_{3} =-\frac{5}{8} R_{4} \ +R_{3} ;\ R_{2} =-R_{4} +R_{2} ;\ R_{1} =-4R_{4} \ +R_{1} \ \ \ \ \ \ \ \ \ \ \\
\\
\\
=\begin{bmatrix}
1 & 2 & 3 & 0\\
0 & 1 & -2 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{bmatrix} \ R_{2} =2R_{3} +R_{2} ;\ R_{1} =-3R_{3} +R_{1} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
=\begin{bmatrix}
1 & 2 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{bmatrix} \ R_{1} =- 2R_{1} +R_{1} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
=\begin{bmatrix}
1 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{bmatrix} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
As\ we\ can\ see\ the\ RREF\ of\ A\ with\ leading\ 1s,\ rank( A) \ =\ 4\\
\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\end{gather*}\]
Let verify the above solution using rankmatrix
library(Matrix)
A <- matrix(c(1,-1,0,5, 2,0,1,4, 3,1,-2,-2, 4,3,1,-3), nrow = 4)
R <- rankMatrix(A)
message("The rank of A is ", R)
## The rank of A is 4
(2) Maximum and minimum of an mXn matrix
Given an mXn matrix where m > n, the maximum rank can be n since the rank has to be no greater than the smaller of the row or column dimension.
Assuming that the matrix is non-zero, the minimum rank can be 1 since the rank of a matrix would be zero only if the matrix had no elements.
(3) Rank of matrix B
\[\begin{gather*}
B=\begin{bmatrix}
1 & 2 & 1\\
3 & 6 & 3\\
2 & 4 & 2
\end{bmatrix}\\
\\
Looking\ at\ matrix\ B,\ R_{2} \ =\ 3R_{1} \ and\ R_{3} \ =\ 2R_{1} ,\\
all\ rows\ vectors\ are\ multiple\ of\ the\ same\ nonzero\ vector\ and\ det( B) \ =\ 0.\\
That's\ it,\ there\ is\ one\ and\ only\ one\ linearly\ independent\ row.\\
\\
Therefore,\ rank( B) \ =\ 1.\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\end{gather*}\]
Let verify the above solution using rankmatrix
library(Matrix)
B <- matrix(c(1,3,2, 2,6,4, 1,3,2), nrow = 3)
R <- rankMatrix(B)
message("The rank of B is ", R)
## The rank of B is 1
PROBLEM SET 2
Eigenvalues and Eigenvectors
\[\begin{gather*}
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\\
\\
\\
\\
A\ =\begin{bmatrix}
1 & 2 & 3\\
0 & 4 & 5\\
0 & 0 & 6
\end{bmatrix}\\
\\
1.\ Eigenvalues\\
\\
The\ polynomial\ characteristic\ is\ given\ by:\\
\\
P( \lambda ) \ =det( A-\lambda I) \ =\ det\left(\begin{bmatrix}
1-\lambda & 2 & 3\\
0 & 4-\lambda & 5\\
0 & 0 & 6-\lambda
\end{bmatrix}\right)\\
\\
using\ column\ 1\ to\ calculate\ the\ determinant:\\
\\
det\left(\begin{bmatrix}
1-\lambda & 2 & 3\\
0 & 4-\lambda & 5\\
0 & 0 & 6-\lambda
\end{bmatrix}\right) \ =( 1-\lambda )\begin{vmatrix}
4-\lambda & 5\\
0 & 6-\lambda
\end{vmatrix}\\
\\
=\ ( 1-\lambda )( 4-\lambda )( 6-\lambda )\\
\\
P( \lambda ) \ =\ 0\ \Longrightarrow \ \lambda =1,\ \lambda =4,\ \lambda =6\\
\\
The\ eigenvalues\ are\ \lambda =1,\ 4,\ 6\ with\ algebraic\ multiplicities\ \\
\alpha ( 1) \ =\ 1,\ \alpha ( 4) \ =\ 1,\ and\ \alpha ( 6) \ =\ 1.\\
\\
2.\ Eigenvectors\\
\\
For\ \lambda =1:\\
\\
A-I\ =\ \begin{bmatrix}
0 & 2 & 3\\
0 & 3 & 5\\
0 & 0 & 5
\end{bmatrix}\rightarrow \ v_{3} =v_{2} =0\ and\ v_{1} \ =\ v_{1}\\
\\
\Longrightarrow \epsilon ( 1) \ =\left\{\begin{bmatrix}
1\\
0\\
0
\end{bmatrix}\right)\\
\\
For\ \lambda =4:\\
\\
A-4I\ =\ \begin{bmatrix}
-3 & 2 & 3\\
0 & 0 & 5\\
0 & 0 & 2
\end{bmatrix}\rightarrow \ v_{3} =0\ and\ -3v_{1} \ +\ 2v_{2} \ =0\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \rightarrow \ v_{1} \ =\ \frac{2}{3} v_{2} \ \ \ \ \ \ \ \\
\\
\ \ \ \ \Longrightarrow \epsilon ( 4) \ =\left\{\begin{bmatrix}
2\\
3\\
0
\end{bmatrix}\right\}\\
\\
For\ \lambda =6:\\
\\
A-6I\ =\begin{bmatrix}
-5 & 2 & 3\\
0 & -2 & 5\\
0 & 0 & 0
\end{bmatrix}\rightarrow v_{2} =\frac{5}{2} v_{3} \ and\ 5v_{1} \ =\ 8v_{3}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \rightarrow \ v_{1} =\frac{8}{5} v_{3} \ and\ v_{2} =\frac{5}{2} v_{3}\\
\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \Longrightarrow \ \epsilon ( 6) \ =\left\{\begin{bmatrix}
16\\
25\\
10
\end{bmatrix}\right\}\\
\\
The\ eigenvectors\ yield\ the\ geometric\ multiplicities\ \gamma ( 1) \ =1,\ \gamma ( 4) \ =1,\ \gamma ( 6) \ =1\\
\\
\ \ \ \ \ \\
\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\end{gather*}\]
LS0tDQp0aXRsZTogIkZ1bmRhbWVudGFscyBvZiBDb21wdXRhdGlvbmFsIE1hdGhlbWF0aWNzIC0gSG9tZXdvcmsgMyINCmF1dGhvcjogIkplcmVkIEF0YWt5Ig0KZGF0ZTogIjIvMTMvMjAyMSINCm91dHB1dDogDQogIG9wZW5pbnRybzo6bGFiX3JlcG9ydDogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50Og0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyMgUFJPQkxFTSBTRVQgMQ0KDQojIyMgKDEpIFRoZSByYW5rIG9mIG1hdHJpeCBBDQoNCg0KXGJlZ2lue2dhdGhlcip9DQpJXCBhbVwgZ29pbmdcIHRvXCB1c2VcIFJSRUZcIHRvXCBmaW5kXCB0aGVcIHJhbmtcIG9mXCBBXFwNClxcDQpBXCA9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDMgJiA0XFwNCi0xICYgMCAmIDEgJiAzXFwNCjAgJiAxICYgLTIgJiAxXFwNCjUgJiA0ICYgLTIgJiAtMw0KXGVuZHtibWF0cml4fSBSX3syfVxyaWdodGFycm93IFJfezN9IFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcXA0KXFwNCj1cYmVnaW57Ym1hdHJpeH0NCjEgJiAyICYgMyAmIDRcXA0KMCAmIDEgJiAtMiAmIDFcXA0KLTEgJiAwICYgMSAmIDNcXA0KNSAmIDQgJiAtMiAmIC0zDQpcZW5ke2JtYXRyaXh9IFJfezN9ID1SX3sxfSBcICtcIFJfezN9IDtcIFJfezR9IFwgPS01Ul97MX0gXCArXCBSX3s0fSBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFxcDQpcXA0KXCBcIFwgPVxiZWdpbntibWF0cml4fQ0KMSAmIDIgJiAzICYgNFxcDQowICYgMSAmIC0yICYgMVxcDQowICYgMiAmIDQgJiA3XFwNCjAgJiA2ICYgLTE3ICYgLTIzDQpcZW5ke2JtYXRyaXh9IFJfezN9ID0tMlJfezJ9ICtSX3szfSA7XCBSX3s0fSA9LTZSX3syfSArUl97NH0gXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcXA0KXFwNClxcDQo9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDMgJiA0XFwNCjAgJiAxICYgLTIgJiAxXFwNCjAgJiAwICYgOCAmIDVcXA0KMCAmIDAgJiAtNSAmIC0yOQ0KXGVuZHtibWF0cml4fSBSX3szfSA9XGZyYWN7MX17OH0gUl97M30gXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcXA0KXFwNCj1cYmVnaW57Ym1hdHJpeH0NCjEgJiAyICYgMyAmIDRcXA0KMCAmIDEgJiAtMiAmIDFcXA0KMCAmIDAgJiAxICYgXGZyYWN7NX17OH1cXA0KMCAmIDAgJiAtNSAmIC0yOQ0KXGVuZHtibWF0cml4fSBSX3s0fSA9NVJfezN9ICtSX3s0fSBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXFwNClxcDQo9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDMgJiA0XFwNCjAgJiAxICYgLTIgJiAxXFwNCjAgJiAwICYgMSAmIFxmcmFjezV9ezh9XFwNCjAgJiAwICYgMCAmIC1cZnJhY3syMDd9ezh9DQpcZW5ke2JtYXRyaXh9IFJfezR9ID0tXGZyYWN7OH17MjA3fSBSX3s0fSBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFxcDQpcXA0KXFwNClwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgPVxiZWdpbntibWF0cml4fQ0KMSAmIDIgJiAzICYgNFxcDQowICYgMSAmIC0yICYgMVxcDQowICYgMCAmIDEgJiBcZnJhY3s1fXs4fVxcDQowICYgMCAmIDAgJiAxDQpcZW5ke2JtYXRyaXh9IFwgUl97M30gPS1cZnJhY3s1fXs4fSBSX3s0fSBcICtSX3szfSA7XCBSX3syfSA9LVJfezR9ICtSX3syfSA7XCBSX3sxfSA9LTRSX3s0fSBcICtSX3sxfSBcIFwgXCBcIFwgXCBcIFwgXCBcIFxcDQpcXA0KXFwNCj1cYmVnaW57Ym1hdHJpeH0NCjEgJiAyICYgMyAmIDBcXA0KMCAmIDEgJiAtMiAmIDBcXA0KMCAmIDAgJiAxICYgMFxcDQowICYgMCAmIDAgJiAxDQpcZW5ke2JtYXRyaXh9IFwgUl97Mn0gPTJSX3szfSArUl97Mn0gO1wgUl97MX0gPS0zUl97M30gK1JfezF9IFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXFwNClxcDQo9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDAgJiAwXFwNCjAgJiAxICYgMCAmIDBcXA0KMCAmIDAgJiAxICYgMFxcDQowICYgMCAmIDAgJiAxDQpcZW5ke2JtYXRyaXh9IFwgUl97MX0gPS0gMlJfezF9ICtSX3sxfSBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFxcDQpcXA0KPVxiZWdpbntibWF0cml4fQ0KMSAmIDAgJiAwICYgMFxcDQowICYgMSAmIDAgJiAwXFwNCjAgJiAwICYgMSAmIDBcXA0KMCAmIDAgJiAwICYgMQ0KXGVuZHtibWF0cml4fSBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcXA0KXFwNCkFzXCB3ZVwgY2FuXCBzZWVcIHRoZVwgUlJFRlwgb2ZcIEFcIHdpdGhcIGxlYWRpbmdcIDFzLFwgcmFuayggQSkgXCA9XCA0XFwNClxcDQpcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCANClxlbmR7Z2F0aGVyKn0NCg0KDQoNCg0KTGV0IHZlcmlmeSB0aGUgYWJvdmUgc29sdXRpb24gdXNpbmcgcmFua21hdHJpeA0KDQpgYGB7cn0NCmxpYnJhcnkoTWF0cml4KQ0KDQpBIDwtIG1hdHJpeChjKDEsLTEsMCw1LCAyLDAsMSw0LCAzLDEsLTIsLTIsIDQsMywxLC0zKSwgbnJvdyA9IDQpDQpSIDwtIHJhbmtNYXRyaXgoQSkNCg0KbWVzc2FnZSgiVGhlIHJhbmsgb2YgQSBpcyAiLCBSKQ0KDQoNCmBgYA0KDQoNCg0KIyMjICgyKSBNYXhpbXVtIGFuZCBtaW5pbXVtIG9mIGFuIG1YbiBtYXRyaXgNCg0KR2l2ZW4gYW4gbVhuIG1hdHJpeCB3aGVyZSBtID4gbiwgdGhlIG1heGltdW0gcmFuayBjYW4gYmUgKipuKiogDQpzaW5jZSB0aGUgcmFuayBoYXMgdG8gYmUgbm8gZ3JlYXRlciB0aGFuIHRoZSBzbWFsbGVyIG9mIHRoZSByb3cgb3IgY29sdW1uDQpkaW1lbnNpb24uDQoNCkFzc3VtaW5nIHRoYXQgdGhlIG1hdHJpeCBpcyBub24temVybywgdGhlIG1pbmltdW0gcmFuayBjYW4gYmUgKioxKioNCnNpbmNlIHRoZSByYW5rIG9mIGEgbWF0cml4IHdvdWxkIGJlIHplcm8gb25seSBpZiB0aGUgbWF0cml4IGhhZCBubyBlbGVtZW50cy4NCg0KDQojIyMgKDMpIFJhbmsgb2YgbWF0cml4IEINCg0KDQpcYmVnaW57Z2F0aGVyKn0NCkI9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDFcXA0KMyAmIDYgJiAzXFwNCjIgJiA0ICYgMg0KXGVuZHtibWF0cml4fVxcDQpcXA0KTG9va2luZ1wgYXRcIG1hdHJpeFwgQixcIFJfezJ9IFwgPVwgM1JfezF9IFwgYW5kXCBSX3szfSBcID1cIDJSX3sxfSAsXFwNCmFsbFwgcm93c1wgdmVjdG9yc1wgYXJlXCBtdWx0aXBsZVwgb2ZcIHRoZVwgc2FtZVwgbm9uemVyb1wgdmVjdG9yXCBhbmRcIGRldCggQikgXCA9XCAwLlxcDQpUaGF0J3NcIGl0LFwgdGhlcmVcIGlzXCBvbmVcIGFuZFwgb25seVwgb25lXCBsaW5lYXJseVwgaW5kZXBlbmRlbnRcIHJvdy5cXA0KXFwNClRoZXJlZm9yZSxcIHJhbmsoIEIpIFwgPVwgMS5cXA0KXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgDQpcZW5ke2dhdGhlcip9DQoNCg0KTGV0IHZlcmlmeSB0aGUgYWJvdmUgc29sdXRpb24gdXNpbmcgcmFua21hdHJpeA0KDQpgYGB7cn0NCmxpYnJhcnkoTWF0cml4KQ0KDQpCIDwtIG1hdHJpeChjKDEsMywyLCAyLDYsNCwgMSwzLDIpLCBucm93ID0gMykNClIgPC0gcmFua01hdHJpeChCKQ0KDQptZXNzYWdlKCJUaGUgcmFuayBvZiBCIGlzICIsIFIpDQoNCg0KYGBgDQoNCg0KIyMgUFJPQkxFTSBTRVQgMg0KDQoqKkVpZ2VudmFsdWVzIGFuZCBFaWdlbnZlY3RvcnMqKg0KDQpcYmVnaW57Z2F0aGVyKn0NClwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXFwNClxcDQpcXA0KXFwNClxcDQpBXCA9XGJlZ2lue2JtYXRyaXh9DQoxICYgMiAmIDNcXA0KMCAmIDQgJiA1XFwNCjAgJiAwICYgNg0KXGVuZHtibWF0cml4fVxcDQpcXA0KMS5cIEVpZ2VudmFsdWVzXFwNClxcDQpUaGVcIHBvbHlub21pYWxcIGNoYXJhY3RlcmlzdGljXCBpc1wgZ2l2ZW5cIGJ5OlxcDQpcXA0KUCggXGxhbWJkYSApIFwgPWRldCggQS1cbGFtYmRhIEkpIFwgPVwgZGV0XGxlZnQoXGJlZ2lue2JtYXRyaXh9DQoxLVxsYW1iZGEgICYgMiAmIDNcXA0KMCAmIDQtXGxhbWJkYSAgJiA1XFwNCjAgJiAwICYgNi1cbGFtYmRhIA0KXGVuZHtibWF0cml4fVxyaWdodClcXA0KXFwNCnVzaW5nXCBjb2x1bW5cIDFcIHRvXCBjYWxjdWxhdGVcIHRoZVwgZGV0ZXJtaW5hbnQ6XFwNClxcDQpkZXRcbGVmdChcYmVnaW57Ym1hdHJpeH0NCjEtXGxhbWJkYSAgJiAyICYgM1xcDQowICYgNC1cbGFtYmRhICAmIDVcXA0KMCAmIDAgJiA2LVxsYW1iZGEgDQpcZW5ke2JtYXRyaXh9XHJpZ2h0KSBcID0oIDEtXGxhbWJkYSApXGJlZ2lue3ZtYXRyaXh9DQo0LVxsYW1iZGEgICYgNVxcDQowICYgNi1cbGFtYmRhIA0KXGVuZHt2bWF0cml4fVxcDQpcXA0KPVwgKCAxLVxsYW1iZGEgKSggNC1cbGFtYmRhICkoIDYtXGxhbWJkYSApXFwNClxcDQpQKCBcbGFtYmRhICkgXCA9XCAwXCBcTG9uZ3JpZ2h0YXJyb3cgXCBcbGFtYmRhID0xLFwgXGxhbWJkYSA9NCxcIFxsYW1iZGEgPTZcXA0KXFwNClRoZVwgZWlnZW52YWx1ZXNcIGFyZVwgXGxhbWJkYSA9MSxcIDQsXCA2XCB3aXRoXCBhbGdlYnJhaWNcIG11bHRpcGxpY2l0aWVzXCBcXA0KXGFscGhhICggMSkgXCA9XCAxLFwgXGFscGhhICggNCkgXCA9XCAxLFwgYW5kXCBcYWxwaGEgKCA2KSBcID1cIDEuXFwNClxcDQoyLlwgRWlnZW52ZWN0b3JzXFwNClxcDQpGb3JcIFxsYW1iZGEgPTE6XFwNClxcDQpBLUlcID1cIFxiZWdpbntibWF0cml4fQ0KMCAmIDIgJiAzXFwNCjAgJiAzICYgNVxcDQowICYgMCAmIDUNClxlbmR7Ym1hdHJpeH1ccmlnaHRhcnJvdyBcIHZfezN9ID12X3syfSA9MFwgYW5kXCB2X3sxfSBcID1cIHZfezF9XFwNClxcDQpcTG9uZ3JpZ2h0YXJyb3cgXGVwc2lsb24gKCAxKSBcID1cbGVmdFx7XGJlZ2lue2JtYXRyaXh9DQoxXFwNCjBcXA0KMA0KXGVuZHtibWF0cml4fVxyaWdodClcXA0KXFwNCkZvclwgXGxhbWJkYSA9NDpcXA0KXFwNCkEtNElcID1cIFxiZWdpbntibWF0cml4fQ0KLTMgJiAyICYgM1xcDQowICYgMCAmIDVcXA0KMCAmIDAgJiAyDQpcZW5ke2JtYXRyaXh9XHJpZ2h0YXJyb3cgXCB2X3szfSA9MFwgYW5kXCAtM3ZfezF9IFwgK1wgMnZfezJ9IFwgPTBcXA0KXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFxyaWdodGFycm93IFwgdl97MX0gXCA9XCBcZnJhY3syfXszfSB2X3syfSBcIFwgXCBcIFwgXCBcIFxcDQpcXA0KXCBcIFwgXCBcTG9uZ3JpZ2h0YXJyb3cgXGVwc2lsb24gKCA0KSBcID1cbGVmdFx7XGJlZ2lue2JtYXRyaXh9DQoyXFwNCjNcXA0KMA0KXGVuZHtibWF0cml4fVxyaWdodFx9XFwNClxcDQpGb3JcIFxsYW1iZGEgPTY6XFwNClxcDQpBLTZJXCA9XGJlZ2lue2JtYXRyaXh9DQotNSAmIDIgJiAzXFwNCjAgJiAtMiAmIDVcXA0KMCAmIDAgJiAwDQpcZW5ke2JtYXRyaXh9XHJpZ2h0YXJyb3cgdl97Mn0gPVxmcmFjezV9ezJ9IHZfezN9IFwgYW5kXCA1dl97MX0gXCA9XCA4dl97M31cXA0KXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBccmlnaHRhcnJvdyBcIHZfezF9ID1cZnJhY3s4fXs1fSB2X3szfSBcIGFuZFwgdl97Mn0gPVxmcmFjezV9ezJ9IHZfezN9XFwNClxcDQpcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFxMb25ncmlnaHRhcnJvdyBcIFxlcHNpbG9uICggNikgXCA9XGxlZnRce1xiZWdpbntibWF0cml4fQ0KMTZcXA0KMjVcXA0KMTANClxlbmR7Ym1hdHJpeH1ccmlnaHRcfVxcDQpcXA0KVGhlXCBlaWdlbnZlY3RvcnNcIHlpZWxkXCB0aGVcIGdlb21ldHJpY1wgbXVsdGlwbGljaXRpZXNcIFxnYW1tYSAoIDEpIFwgPTEsXCBcZ2FtbWEgKCA0KSBcID0xLFwgXGdhbW1hICggNikgXCA9MVxcDQpcXA0KXCBcIFwgXCBcIFxcDQpcXA0KXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgXCBcIFwgDQpcZW5ke2dhdGhlcip9