From 474d4cb0321b16f5f4c172e06f8413bc3c777420 Mon Sep 17 00:00:00 2001
From: joalhelk <joalhelk@jyu.fi>
Date: Sun, 16 May 2021 22:24:39 +0300
Subject: [PATCH] finished pop3 client

---
 POP3Client/.vs/POP3Client/v16/.suo            | Bin 30720 -> 35328 bytes
 POP3Client/POP3Client/Program.cs              |  50 ++++++-
 .../bin/Debug/netcoreapp3.1/POP3Client.dll    | Bin 5120 -> 6144 bytes
 .../bin/Debug/netcoreapp3.1/POP3Client.pdb    | Bin 9900 -> 10180 bytes
 .../POP3Client.csproj.FileListAbsolute.txt    |   1 -
 .../POP3Client.csprojAssemblyReference.cache  | Bin 424 -> 0 bytes
 .../obj/Debug/netcoreapp3.1/POP3Client.dll    | Bin 5120 -> 6144 bytes
 .../obj/Debug/netcoreapp3.1/POP3Client.pdb    | Bin 9900 -> 10180 bytes
 .../obj/POP3Client.csproj.nuget.cache         |   5 -
 .../obj/POP3Client.csproj.nuget.dgspec.json   |  36 +++--
 .../obj/POP3Client.csproj.nuget.g.props       |   7 +-
 POP3Client/POP3Client/obj/project.assets.json |  35 +++--
 STMPServer/.vs/STMPServer/v16/.suo            | Bin 37376 -> 37888 bytes
 STMPServer/STMPServer/Program.cs              | 129 +++++++++++++++++-
 .../bin/Debug/netcoreapp3.1/STMPServer.dll    | Bin 7168 -> 9728 bytes
 .../bin/Debug/netcoreapp3.1/STMPServer.pdb    | Bin 10784 -> 12112 bytes
 .../STMPServer.csprojAssemblyReference.cache  | Bin 424 -> 424 bytes
 .../obj/Debug/netcoreapp3.1/STMPServer.dll    | Bin 7168 -> 9728 bytes
 .../obj/Debug/netcoreapp3.1/STMPServer.pdb    | Bin 10784 -> 12112 bytes
 .../obj/STMPServer.csproj.nuget.cache         |   5 -
 .../obj/STMPServer.csproj.nuget.dgspec.json   |  36 +++--
 .../obj/STMPServer.csproj.nuget.g.props       |   7 +-
 STMPServer/STMPServer/obj/project.assets.json |  35 +++--
 23 files changed, 274 insertions(+), 72 deletions(-)
 delete mode 100644 POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csprojAssemblyReference.cache
 delete mode 100644 POP3Client/POP3Client/obj/POP3Client.csproj.nuget.cache
 delete mode 100644 STMPServer/STMPServer/obj/STMPServer.csproj.nuget.cache

diff --git a/POP3Client/.vs/POP3Client/v16/.suo b/POP3Client/.vs/POP3Client/v16/.suo
index d1cfd92a763b84739d41a81c2257299d9b1e1b6c..ad991a8db5f659b74c1eceac7c656de16a5480f3 100644
GIT binary patch
delta 3258
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

delta 2763
zcmb_eUrbw781K2X?5^B)u(hLX4CvPV5h%N5n=r=4-M9m68Es+iUqLB_qLDuv+_H%f
z3o2`Z595A57&S535>1RIn@xN)joXW|=$4r1<K8u950F?*tlxL(#WItHDPQx;Ip;g)
zp6~y68h?+AKV~-?+2%XP4|3K=t@R%bdVgY0gTauhfJttW&B8L*0e3l%=>jsR;PpJ8
zkU`>bMI$(67f2IE_&v|nUxLh?i2UqkDUR0c{4YFQkezSIjy#S#vU9pjCmZs1A?TZJ
zI2Prcfw<8n)FPt_QIA*%I*gUtXcLa&*nkiacY-#iazoZsd()~>ai?a~JO47uOD3+^
zv8hzD;ODw7W}F)lqzl<oh#>uFpX?$2llCkGZ4T0(&ipU^Az(CaCJArhZEq*fn3HUw
zS5gIq#ULj51yZ0QD~KY&6j(+!$#mzk#~^0uu&^5BZO`Es4&h=1K}2Gb0rPE?(7s_3
zOqv8pZ(DJ&QX7DKoCr%czvgho9uN+oY!8B*MK+kGaPeU>T~f}TBc0lC`2xa=@FCg}
zXAm6-KO%q#g4<kNe;#M_#YG%1Awr05L=S@agkGG75q*dVq8|Y_b~;M*1H;Im`6!N;
z5m)GH_<836b+-)n1QC?Vv%H?Pq_4UIlfUx5kcWqJtHLykjCn{O@d=bOyAgQpO2H^K
z0YOB@zFg+g^8u~2_T(~^x_7^vNHOSiNUE!i*E5d<=f8#r3k@(?J;`2%<?1e;(q5Or
zUV_-(F8)vs3pL$@OCnfs?1It~EZsS&aK>=|gO4wKKa-hw{7dH3>#smCaS(bF73)H#
zT(+?NcqJ9SE*zv*BV5}T;7vJ9HV(@bZ?Z0kIsN3xg44K3QAN`Axh2i9_34vox@Tcj
zkR+3cTmnmy-@>S^P%F~8>Wiq%NuPyPA+tJX10;uW6FCh@*I)xYVm~cV2PsGBDnP0Q
zb=baWVSABF{Z-ouCJvyhc!(D_Yd!WFZt#%azbNP}RKGyWvaO5Iy!CiCAG$XvetTpR
z&7u%<b@6(q)e4bnX9CjI{<UEYLCig`in8Fs{WX5ZO1LKaEUWhE%ClBj7PXi&9%3H9
zKzY9vp&u|&UK%02$N#JuKChOc>jV!dWe)^;1{^upf>It3sCnznSSy=Ol4XEDoZhF@
za{?}4Y<d%=keO>#8}4fDYN=tRLW|ePIEE=_M-JJb8>EHnpbzf4n_yOK;fYT~3TWQY
z-c(RLKTt#=Zj-f$Q`+dq*3l#(-Spjt6af<;ZTAUo6#t*I*3)WFTIGf!n3-#Y&O{A}
zoK^Y^JK~?%8D0IJqml5D{yukKxGv&8T-O(N9}Roz+|fQUJP@rLh#d9|FvI&yZV>VJ
z#_3Znr&^j1H$&>8w}f7~74oF0e2J)P^Hv)bioyzWXbnr`c>d9EnG7{u*do_M>XOZT
zh0#Yy`S6h2t%f?F<5DfeL&vPYB9k@=N(8<QUFD)QbQO&mMh%08F?=qD4K?^!jKkUP
zb0&{r8t<LyX;OP6xY-^BsjV>imABIjkIuQEce?}RD=k{`JfW2PnS7D_;(QOcKFf_{
zt>y}mv!JzhD3z<!kQ097%9HU>C4+N`%B*XIWPG}eu_o~J1l7R?c9JG=IeG$ak2TU?
zoh;oPXYlxZL2`aJ#z0b9o}$S^&bjJ){n5Y}Kq|&-g3%4CL(*OZ*)amevNf5S{+x3i
ziVVFvFrsu{9vdAT3lG;s#;2wzX7uMp3kOC79?Xisu14XL>pO16XBd2Q_QdL|^mWYq
HkAT$QhViok

diff --git a/POP3Client/POP3Client/Program.cs b/POP3Client/POP3Client/Program.cs
index ad1bb5a..5b73f92 100644
--- a/POP3Client/POP3Client/Program.cs
+++ b/POP3Client/POP3Client/Program.cs
@@ -32,6 +32,9 @@ namespace POP3Client
 
             Boolean on = true;
             String viesti = "";
+            POPTila tila = POPTila.Aloitus;
+            AuthState authState = AuthState.UserState;
+
             while (on)
             {
                 // Luetaan 
@@ -39,14 +42,43 @@ namespace POP3Client
                 Console.WriteLine(viesti);
                 String[] status = viesti.Split(' ');
 
-                switch(status[0])
+                switch(tila)
                 {
-                    case "+OK":
+                    case POPTila.Aloitus:
+                        if(status[0] == "+OK") 
+                        {
+                            sw.WriteLine("USER joalhelk");
+                            tila = POPTila.Authorization;
+                        }
+                        break;
+                    case POPTila.Authorization:
+                        if(authState == AuthState.UserState && status[0] == "+OK")
+                        {
+                            authState = AuthState.PassState;
+                            sw.WriteLine("PASS secretpass");
 
+                        } else if (authState == AuthState.UserState && status[0] == "-ERR")
+                        {
+                            sw.WriteLine("USER joalhelk");
+                        } else if (authState == AuthState.PassState && status[0] == "+OK")
+                        {
+                            authState = AuthState.UserState;
+                            tila = POPTila.Transaction;
+                            sw.WriteLine("LIST");
+                        }
+                        break;
+                    case POPTila.Transaction:
+                        if(status[0] == ".") { sw.WriteLine("QUIT"); tila = POPTila.Quit;  }
+                        break;
+                    case POPTila.Quit:
+                        if(status[0] == "+OK") { on = false; }
                         break;
                     default:
+                        Console.WriteLine("Error happened...");
+                        sw.WriteLine("QUIT"); tila = POPTila.Quit;
                         break;
                 }
+                sw.Flush();
             }
 
 
@@ -58,4 +90,18 @@ namespace POP3Client
             socket.Close();
         }
     }
+
+    enum POPTila : UInt16
+    {
+        Aloitus,
+        Authorization,
+        Transaction,
+        Quit
+    }
+
+    enum AuthState : UInt16
+    {
+        UserState,
+        PassState
+    }
 }
diff --git a/POP3Client/POP3Client/bin/Debug/netcoreapp3.1/POP3Client.dll b/POP3Client/POP3Client/bin/Debug/netcoreapp3.1/POP3Client.dll
index be2b424004bcd2b43c1a7704df9ae7b1b7de1694..01c74664d36d5826dd457393a4bff0783e8a74ff 100644
GIT binary patch
delta 1989
zcmZuyYitx%6#nka?(EL)cDr{6wykYt`+!z<sf&n|N3DfcsDf>23u$=N4K{YMblZKH
zXpGz9BOoAc=8s@V4B#JrL24w`L}KC(HSs~vKZ*vTi7`g`Lo|{oes{J-YP{|F&f}hQ
z=G=4c%uX~;B&H744!!crADCO$Pz%3E06`kOMdN6E`rM9SWgO^IhDU&>+|xBy;7K4r
zy*UQ-*)>|+9uN(_oH9j8LHjik6CwLu(I6uB_o6o1#SCg~A!%@<uNL@`&k)o}hJC@G
zu)8&v_N}mYXf?~0T3%!p17p&gE&+UvtjX6{N<d?Xxa_+V46{#aOZ*Ybh*+NHjY@xC
zt16h%u>8_*`J}JI#q@5{{iOFu*GbLlz|xGI%rr26V;Qqq0U3x(m>K$wrOVY*$}9uT
zUnoz{iqJyun21;<vLtTN$zx_7zY~MlF6k-Exj!?XT)78jFdkZvAF+h=l&$)o)TOdC
zz6d;0xn-D{{9W1GojMBhiLH<fIaR-O$EU(F3W!xNtk;rK#@)>5LQIRnOjoD_Lb|N5
z46mE{`}XZ(OU?8>YQvkZRLqmEQp`wKE4CbhZC6sb3QHx2R;xAMTigLQ_CCh;a{yd+
zTrY1a*MYhhftSgTD!Dh8NsT_8RSqE!FhyS1-;1{>tGsoa`#amo&r^TUp46?v&T0)N
zEx09CAyT|3EC_0%>TYTz^+47DgTw>PUnXbbz%@}U$Uvt!s~LFH!84fFO7RiH4SbGS
zVc?)haCf<bKS9YZktmR*9MeU|)S|mJAGYe1x(_!*r5?mC>Oo|Q1~zJL`Ui+%j5|J~
zP@YMmfh)qTMX&}6w>qA`3l%%;#Cn-IhzZJS6-yQ<C?SNu#9n<Rjnw#Gg}r(w1vZpg
z!O;wAhOr2Tuw$Z0KSGRX3hNylpk;pdFpkr16T748QPYr`%|u)HDgv*TAK?*-UHw@z
z3pk<)NTPuXq7U~GLs;qHS_j)4>~yfl!2t(T#MMZlU2nx<)T09z@DK~1#VLM8W|7kS
zFixKVJVzYFq=T371U+Z5lRg(v=+%c5(+}{S-N{Z|$2XkSb%q$Y?BFL3rW{N%g#iz5
z#tXy%d*fluLE<93LacJ^QQDi}#|ff^)5J=ANUX!BM1IOd6ILNaTwg#X*(Nj+`GOOB
ziHqTyaC*;%&9A+jhKr3;ty3$DR);UNRnqIfe!n>(E{@>e*ei3klDmxw+iz5tKARlL
z4-F2YyQ{k|HIlR&jNMgj`P^`CE}0ube|9KSl)97ItdeFXjaK1)bR?f0wl8^B)OL*K
z4`5p|H3}7#&ZM4C=2GcV^ktHx+2lUTXKr|e(KeD!<?{Bg-lbYk-Yzxked)2mj`4hQ
zB$cyQn#&8G7$?M@RQ9tc9oUX2_9M-^K7wHk5&7j?(v3Fm_Hr*v+dgE7IgHUO%RiVa
zoXG7E=2mpluMg0hXzxKkb!uFfKHgqG`9Y}t^trA}Es4%9xS~RM*XmISHzg^R9$ezF
z!mGn;!!6-9Ehqyr6z-^2JfIbq8P$c{CVOPReafs@pH!jY)ea7MqFQxOmj~R?v|!MC
zzICu5zxJ);40!o9&QynHcyvPsNFn<x^K2RV>%P1Sv8`JTYM6AC_vUDc{kkt=+@yH3
z#6IV%4XxRHde5K7X4;RxGqwNX8*fk9SADx4m@}T8H!{`ki65pWW1n?(K0JP=b<^CB
nq&oZ_B}b=gB3f76p7bA^iH0|bnPA|STN~RjBf~eubi(rwdNn>S

delta 1337
zcmZvce`s4(6vw~!Chz6trM=60Y2#+Cdr82gYwNO&xz*Zf)vngH*wAicj9Kdh7u3FO
zu8JV0`$Oq01LK838Jh+1$HxBHsLDkD&><}SL!^I9{DEaC{^4I!@DCkxc+O1}6))V+
zIp=%NIeGWwB{RjD!fUhHkKgIKgvPpxEE1v!xFk4r@oY!+>@Kyt19*gm`+z5`Y9`h6
z7|=xVkpeKTGqOwX5qbA~oTPxZt6vqJqDg-s^1|0EA{)$62VM`+maq_Hs4xZyifP;W
zs4D7F8I|us?~<8ZHf7^*D{#=W!)9t&P>falY=tE8j+L@LCD%@L-VP^hAt7aXR)Gp!
zc-Gn=9i~}}!HcFG&*}cAUK9^+;S48S%_bJEVPl84vRNmnFFXEi$a?ftSy^b)!_ltF
ztORl|0l$(BBIJ)9Ib5E4@>x!Au>qO^ay!Rx5Bc09H@I`?L9)XXJ9N3+{ZEIFQ_PE6
zh{09~o)oT&O`zxG8MM{U`26pfzXm$17{Q_dI43xn=7ly<k~W?(oW?e}3WuoH#scPq
zjdAfE@dlV58h&ZmYxHBr|6VQ&7r)4wbn%g>Nd<>Ig@9<|nphS-yhu$}Ts#U+DiLkG
zMF(l*!Tg<k8<(h!LaQlzpPDLklh3REu)^3Rmc&iDfqa3{fKRLVN*ti5CBxAxtG813
z`u$JHIJQawk7!r0hK!32ViFq+dkp&xhYU-Gdko9OJj(cqKJFM=umxxEt?b1Ggy<*6
zBinI^a(3VaVhKkLm#~d8FJO>z&fqt>8(&io8<izvJ~b>GPEvu5JCVQ?F@@)eZ8$;9
z;SFLZt`IljM`AC2CO&{ah&zlvMr=iN=CAqC<;}WDmygl}cm}*Cu%6BEf5e(O|99fa
zh9>?|Jo7(VpudQ<>l?AXi_=b@&==!fk&(&ro3<;oO62riiHzQ#C{*z9?BM!oI~<r#
zZYh2?_x3!Zfe=n4fUwB%JPwr?i~F1X9>34;m&zY#S27+%gg4}kcqJ>4LUDnzAeB;4
zP(c*%_HhG$v*BbcknJksm7VkVPE@=r?%fupwJUw9>Ga0a<xiF&Mn?G-2WZ#mXI87f
zRy-B+PNm4^X&33=rI^rD&DrGfp_kt)40LZ__@VEqeHX{2UTEICu^~QpwIOov&(~c(
t_~Pa1{r>AKxk}^TiTlp8A5=4GIoF{F)bT}?yl%;JJ&RuYny40Ie*!DJ%oP9t

diff --git a/POP3Client/POP3Client/bin/Debug/netcoreapp3.1/POP3Client.pdb b/POP3Client/POP3Client/bin/Debug/netcoreapp3.1/POP3Client.pdb
index 30b24af464701f999187f9be29734bc5f668fba3..8808a51e37d3d850ffea0495a0c83c0345168e3d 100644
GIT binary patch
delta 734
zcmX|8Ur5tY6#nkn^|znfSYqnb+!|~)61AdW(H{sINmM9|5lnhmCS^*IE>Hs3W=aLp
zOrfBsf<U5|PzZ^zphq8i3^I`FrH3AZUV<L_&M))Fz280eob#P??)Q6f_I+P9S?ULn
z=)ZV@2iCba^gabF8Q_rG+2Yvn)l1_vu|c0zUoMMH+8(zzcPc~QegPKS8S5Fnrp3~|
zPtX6JTh82Hsa|>Y=vg(F_@H#>TvSlYIBm26O<qBl7xF!4jHfgIGHn9$-_xZ}%ro$j
zVl*A>;N1hn5!yXkhhK`@AW9Up5`E|<T11F7s3SUz1Ad->ivz@3#EHuLn9%NVW)8Hc
z$PJqmxl5wN;_zqzg&W1o*<ztMw6JLQF1$6<@s88`@(){DCft*M-i$pTo;$ui^lo$Y
z>p<UB-RrfVKl00i@;D*okq3JYmTJ)DO!|?sY@ZTBy=9Y~YV8(U9SUr2bjFBvU9<{k
zObS8>SyhOu4NXoR=dm!tw3xUdP)i@LlLn5Ef5dz5Rzh4{AL3e~WGpi%%rS(ihsMXZ
z3V2*bjw0N=9r2jEv~;7=|JN5ZSQUhPbQm<khR}dc4uDP_VC|-$X*;9aAPB3$W;Syq
zEpRM51?_eJzmkD2eHO*Y^PdD&o1iM<!49?9_^^qX@)J}3Y%2Apk};J*Q<*W96?5y0
dnZB2tUKOs}QJFa-vnOQsm)x0<yD_PJ`wM)jWvKuF

delta 439
zcmX@&zs7fhO1%dI1A}rvN)nJ_I0D2MK>RuehAE5;3>qMIa7j^SUV1T*$*>0~#sU%x
z4Q4n1WCwuQ?xCJ8Kw5x_fnkmcknfa}4>GLRvvrGxtFGIE$F|wAJ3^S|WgfT))WYU2
z%EZ74ln1gIq!}3a7=Ze~7%VVxr#U0X#E<6nE5J&a8Q6geWq@oYD4zq!j|Z~lfEWZM
zfS3_z3djs@Aj!-i4<uO_IDjN8*b+9dUUmjSpa@9q4P}sx3P9O96?LF`K1Ow*`V}C-
zvdq-tl1zsDJch}K809A4Wo%PmKD6q{8Ak2)Er;EVcxK;FQ&`Ra+R@D>)KKvv-+D3Q
z_RY;qvz3_|`X(!=89OpD=(1I^GpMrwovqFUB!pOi76^k_K<6>C0Bsj%;oxA9VgkBP
zg^7WOfsv__k%6le6sjx?LPC=Z)urU57{wVI7cw^9Wo!~+Y;s|2N@i?$#MrFN)Km*}
FBLK_SNG<>X

diff --git a/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csproj.FileListAbsolute.txt b/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csproj.FileListAbsolute.txt
index 1674f13..09b4beb 100644
--- a/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csproj.FileListAbsolute.txt
+++ b/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csproj.FileListAbsolute.txt
@@ -4,7 +4,6 @@ E:\Kurssit\ties323\POP3Client\POP3Client\bin\Debug\netcoreapp3.1\POP3Client.runt
 E:\Kurssit\ties323\POP3Client\POP3Client\bin\Debug\netcoreapp3.1\POP3Client.runtimeconfig.dev.json
 E:\Kurssit\ties323\POP3Client\POP3Client\bin\Debug\netcoreapp3.1\POP3Client.dll
 E:\Kurssit\ties323\POP3Client\POP3Client\bin\Debug\netcoreapp3.1\POP3Client.pdb
-E:\Kurssit\ties323\POP3Client\POP3Client\obj\Debug\netcoreapp3.1\POP3Client.csprojAssemblyReference.cache
 E:\Kurssit\ties323\POP3Client\POP3Client\obj\Debug\netcoreapp3.1\POP3Client.AssemblyInfoInputs.cache
 E:\Kurssit\ties323\POP3Client\POP3Client\obj\Debug\netcoreapp3.1\POP3Client.AssemblyInfo.cs
 E:\Kurssit\ties323\POP3Client\POP3Client\obj\Debug\netcoreapp3.1\POP3Client.csproj.CoreCompileInputs.cache
diff --git a/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csprojAssemblyReference.cache b/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.csprojAssemblyReference.cache
deleted file mode 100644
index 74fe67b1ca671095970d4a7fbcae2417231e8f41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 424
zcmaJ-u};G<5OqjW8p6<ti6QKfm8e9pL`XzJNPqyP>Ik|d7qIHa$aaSEQ~VhJ06wUg
zfH$1a=X>|wnR$${4+lC4`#UZ?+=x~yqk7BFM<F}D0JAc@QX11_iP{J?lzG8(p7AVA
zs!`feV>#exHOMr%8yhLwE8Hy93Wu`E=6%th^m*PD8O$Lhv7_HL>W#6ut}R%kuBaCh
zzi$5F_mguWCAQXCF#HnCvxP<?xsH4n0t)}OPF%y@wSw*fTC4Q#cAwbUt<?GjH0mkM
zt;H(_u4pDpkRuw#d=`fB^kD1bR(E0m`NMg?KRr8ko}<7CyipRmBqF(hN`LTZ%lJ_|
T4eoO*FvvV_MnuAl$b|S4+=6z0

diff --git a/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.dll b/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.dll
index be2b424004bcd2b43c1a7704df9ae7b1b7de1694..01c74664d36d5826dd457393a4bff0783e8a74ff 100644
GIT binary patch
delta 1989
zcmZuyYitx%6#nka?(EL)cDr{6wykYt`+!z<sf&n|N3DfcsDf>23u$=N4K{YMblZKH
zXpGz9BOoAc=8s@V4B#JrL24w`L}KC(HSs~vKZ*vTi7`g`Lo|{oes{J-YP{|F&f}hQ
z=G=4c%uX~;B&H744!!crADCO$Pz%3E06`kOMdN6E`rM9SWgO^IhDU&>+|xBy;7K4r
zy*UQ-*)>|+9uN(_oH9j8LHjik6CwLu(I6uB_o6o1#SCg~A!%@<uNL@`&k)o}hJC@G
zu)8&v_N}mYXf?~0T3%!p17p&gE&+UvtjX6{N<d?Xxa_+V46{#aOZ*Ybh*+NHjY@xC
zt16h%u>8_*`J}JI#q@5{{iOFu*GbLlz|xGI%rr26V;Qqq0U3x(m>K$wrOVY*$}9uT
zUnoz{iqJyun21;<vLtTN$zx_7zY~MlF6k-Exj!?XT)78jFdkZvAF+h=l&$)o)TOdC
zz6d;0xn-D{{9W1GojMBhiLH<fIaR-O$EU(F3W!xNtk;rK#@)>5LQIRnOjoD_Lb|N5
z46mE{`}XZ(OU?8>YQvkZRLqmEQp`wKE4CbhZC6sb3QHx2R;xAMTigLQ_CCh;a{yd+
zTrY1a*MYhhftSgTD!Dh8NsT_8RSqE!FhyS1-;1{>tGsoa`#amo&r^TUp46?v&T0)N
zEx09CAyT|3EC_0%>TYTz^+47DgTw>PUnXbbz%@}U$Uvt!s~LFH!84fFO7RiH4SbGS
zVc?)haCf<bKS9YZktmR*9MeU|)S|mJAGYe1x(_!*r5?mC>Oo|Q1~zJL`Ui+%j5|J~
zP@YMmfh)qTMX&}6w>qA`3l%%;#Cn-IhzZJS6-yQ<C?SNu#9n<Rjnw#Gg}r(w1vZpg
z!O;wAhOr2Tuw$Z0KSGRX3hNylpk;pdFpkr16T748QPYr`%|u)HDgv*TAK?*-UHw@z
z3pk<)NTPuXq7U~GLs;qHS_j)4>~yfl!2t(T#MMZlU2nx<)T09z@DK~1#VLM8W|7kS
zFixKVJVzYFq=T371U+Z5lRg(v=+%c5(+}{S-N{Z|$2XkSb%q$Y?BFL3rW{N%g#iz5
z#tXy%d*fluLE<93LacJ^QQDi}#|ff^)5J=ANUX!BM1IOd6ILNaTwg#X*(Nj+`GOOB
ziHqTyaC*;%&9A+jhKr3;ty3$DR);UNRnqIfe!n>(E{@>e*ei3klDmxw+iz5tKARlL
z4-F2YyQ{k|HIlR&jNMgj`P^`CE}0ube|9KSl)97ItdeFXjaK1)bR?f0wl8^B)OL*K
z4`5p|H3}7#&ZM4C=2GcV^ktHx+2lUTXKr|e(KeD!<?{Bg-lbYk-Yzxked)2mj`4hQ
zB$cyQn#&8G7$?M@RQ9tc9oUX2_9M-^K7wHk5&7j?(v3Fm_Hr*v+dgE7IgHUO%RiVa
zoXG7E=2mpluMg0hXzxKkb!uFfKHgqG`9Y}t^trA}Es4%9xS~RM*XmISHzg^R9$ezF
z!mGn;!!6-9Ehqyr6z-^2JfIbq8P$c{CVOPReafs@pH!jY)ea7MqFQxOmj~R?v|!MC
zzICu5zxJ);40!o9&QynHcyvPsNFn<x^K2RV>%P1Sv8`JTYM6AC_vUDc{kkt=+@yH3
z#6IV%4XxRHde5K7X4;RxGqwNX8*fk9SADx4m@}T8H!{`ki65pWW1n?(K0JP=b<^CB
nq&oZ_B}b=gB3f76p7bA^iH0|bnPA|STN~RjBf~eubi(rwdNn>S

delta 1337
zcmZvce`s4(6vw~!Chz6trM=60Y2#+Cdr82gYwNO&xz*Zf)vngH*wAicj9Kdh7u3FO
zu8JV0`$Oq01LK838Jh+1$HxBHsLDkD&><}SL!^I9{DEaC{^4I!@DCkxc+O1}6))V+
zIp=%NIeGWwB{RjD!fUhHkKgIKgvPpxEE1v!xFk4r@oY!+>@Kyt19*gm`+z5`Y9`h6
z7|=xVkpeKTGqOwX5qbA~oTPxZt6vqJqDg-s^1|0EA{)$62VM`+maq_Hs4xZyifP;W
zs4D7F8I|us?~<8ZHf7^*D{#=W!)9t&P>falY=tE8j+L@LCD%@L-VP^hAt7aXR)Gp!
zc-Gn=9i~}}!HcFG&*}cAUK9^+;S48S%_bJEVPl84vRNmnFFXEi$a?ftSy^b)!_ltF
ztORl|0l$(BBIJ)9Ib5E4@>x!Au>qO^ay!Rx5Bc09H@I`?L9)XXJ9N3+{ZEIFQ_PE6
zh{09~o)oT&O`zxG8MM{U`26pfzXm$17{Q_dI43xn=7ly<k~W?(oW?e}3WuoH#scPq
zjdAfE@dlV58h&ZmYxHBr|6VQ&7r)4wbn%g>Nd<>Ig@9<|nphS-yhu$}Ts#U+DiLkG
zMF(l*!Tg<k8<(h!LaQlzpPDLklh3REu)^3Rmc&iDfqa3{fKRLVN*ti5CBxAxtG813
z`u$JHIJQawk7!r0hK!32ViFq+dkp&xhYU-Gdko9OJj(cqKJFM=umxxEt?b1Ggy<*6
zBinI^a(3VaVhKkLm#~d8FJO>z&fqt>8(&io8<izvJ~b>GPEvu5JCVQ?F@@)eZ8$;9
z;SFLZt`IljM`AC2CO&{ah&zlvMr=iN=CAqC<;}WDmygl}cm}*Cu%6BEf5e(O|99fa
zh9>?|Jo7(VpudQ<>l?AXi_=b@&==!fk&(&ro3<;oO62riiHzQ#C{*z9?BM!oI~<r#
zZYh2?_x3!Zfe=n4fUwB%JPwr?i~F1X9>34;m&zY#S27+%gg4}kcqJ>4LUDnzAeB;4
zP(c*%_HhG$v*BbcknJksm7VkVPE@=r?%fupwJUw9>Ga0a<xiF&Mn?G-2WZ#mXI87f
zRy-B+PNm4^X&33=rI^rD&DrGfp_kt)40LZ__@VEqeHX{2UTEICu^~QpwIOov&(~c(
t_~Pa1{r>AKxk}^TiTlp8A5=4GIoF{F)bT}?yl%;JJ&RuYny40Ie*!DJ%oP9t

diff --git a/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.pdb b/POP3Client/POP3Client/obj/Debug/netcoreapp3.1/POP3Client.pdb
index 30b24af464701f999187f9be29734bc5f668fba3..8808a51e37d3d850ffea0495a0c83c0345168e3d 100644
GIT binary patch
delta 734
zcmX|8Ur5tY6#nkn^|znfSYqnb+!|~)61AdW(H{sINmM9|5lnhmCS^*IE>Hs3W=aLp
zOrfBsf<U5|PzZ^zphq8i3^I`FrH3AZUV<L_&M))Fz280eob#P??)Q6f_I+P9S?ULn
z=)ZV@2iCba^gabF8Q_rG+2Yvn)l1_vu|c0zUoMMH+8(zzcPc~QegPKS8S5Fnrp3~|
zPtX6JTh82Hsa|>Y=vg(F_@H#>TvSlYIBm26O<qBl7xF!4jHfgIGHn9$-_xZ}%ro$j
zVl*A>;N1hn5!yXkhhK`@AW9Up5`E|<T11F7s3SUz1Ad->ivz@3#EHuLn9%NVW)8Hc
z$PJqmxl5wN;_zqzg&W1o*<ztMw6JLQF1$6<@s88`@(){DCft*M-i$pTo;$ui^lo$Y
z>p<UB-RrfVKl00i@;D*okq3JYmTJ)DO!|?sY@ZTBy=9Y~YV8(U9SUr2bjFBvU9<{k
zObS8>SyhOu4NXoR=dm!tw3xUdP)i@LlLn5Ef5dz5Rzh4{AL3e~WGpi%%rS(ihsMXZ
z3V2*bjw0N=9r2jEv~;7=|JN5ZSQUhPbQm<khR}dc4uDP_VC|-$X*;9aAPB3$W;Syq
zEpRM51?_eJzmkD2eHO*Y^PdD&o1iM<!49?9_^^qX@)J}3Y%2Apk};J*Q<*W96?5y0
dnZB2tUKOs}QJFa-vnOQsm)x0<yD_PJ`wM)jWvKuF

delta 439
zcmX@&zs7fhO1%dI1A}rvN)nJ_I0D2MK>RuehAE5;3>qMIa7j^SUV1T*$*>0~#sU%x
z4Q4n1WCwuQ?xCJ8Kw5x_fnkmcknfa}4>GLRvvrGxtFGIE$F|wAJ3^S|WgfT))WYU2
z%EZ74ln1gIq!}3a7=Ze~7%VVxr#U0X#E<6nE5J&a8Q6geWq@oYD4zq!j|Z~lfEWZM
zfS3_z3djs@Aj!-i4<uO_IDjN8*b+9dUUmjSpa@9q4P}sx3P9O96?LF`K1Ow*`V}C-
zvdq-tl1zsDJch}K809A4Wo%PmKD6q{8Ak2)Er;EVcxK;FQ&`Ra+R@D>)KKvv-+D3Q
z_RY;qvz3_|`X(!=89OpD=(1I^GpMrwovqFUB!pOi76^k_K<6>C0Bsj%;oxA9VgkBP
zg^7WOfsv__k%6le6sjx?LPC=Z)urU57{wVI7cw^9Wo!~+Y;s|2N@i?$#MrFN)Km*}
FBLK_SNG<>X

diff --git a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.cache b/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.cache
deleted file mode 100644
index 084bb53..0000000
--- a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.cache
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "version": 1,
-  "dgSpecHash": "rI9kRBVb8tNBZjzeWr4X94O/IZZ4kzBDn3O/zulmIzHTsb5XLQFQMUFR+epU18yCTh+YlHXCcTxtH5LCoADyCQ==",
-  "success": true
-}
\ No newline at end of file
diff --git a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.dgspec.json b/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.dgspec.json
index d3ee200..50db21c 100644
--- a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.dgspec.json
+++ b/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.dgspec.json
@@ -1,32 +1,32 @@
 {
   "format": 1,
   "restore": {
-    "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj": {}
+    "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj": {}
   },
   "projects": {
-    "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj": {
+    "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj": {
       "version": "1.0.0",
       "restore": {
-        "projectUniqueName": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
+        "projectUniqueName": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
         "projectName": "POP3Client",
-        "projectPath": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
-        "packagesPath": "C:\\Users\\Joel\\.nuget\\packages\\",
-        "outputPath": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\obj\\",
+        "projectPath": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
+        "packagesPath": "C:\\Users\\Joppe\\.nuget\\packages\\",
+        "outputPath": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\obj\\",
         "projectStyle": "PackageReference",
-        "fallbackFolders": [
-          "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-        ],
         "configFilePaths": [
-          "C:\\Users\\Joel\\AppData\\Roaming\\NuGet\\NuGet.Config"
+          "C:\\Users\\Joppe\\AppData\\Roaming\\NuGet\\NuGet.Config",
+          "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
         ],
         "originalTargetFrameworks": [
           "netcoreapp3.1"
         ],
         "sources": {
+          "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
           "https://api.nuget.org/v3/index.json": {}
         },
         "frameworks": {
           "netcoreapp3.1": {
+            "targetAlias": "netcoreapp3.1",
             "projectReferences": {}
           }
         },
@@ -38,11 +38,23 @@
       },
       "frameworks": {
         "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
           "imports": [
-            "net461"
+            "net461",
+            "net462",
+            "net47",
+            "net471",
+            "net472",
+            "net48"
           ],
           "assetTargetFallback": true,
-          "warn": true
+          "warn": true,
+          "frameworkReferences": {
+            "Microsoft.NETCore.App": {
+              "privateAssets": "all"
+            }
+          },
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.202\\RuntimeIdentifierGraph.json"
         }
       }
     }
diff --git a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.g.props b/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.g.props
index b500bca..84f1eb1 100644
--- a/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.g.props
+++ b/POP3Client/POP3Client/obj/POP3Client.csproj.nuget.g.props
@@ -5,10 +5,13 @@
     <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
     <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
     <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
-    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Joel\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Joppe\.nuget\packages\</NuGetPackageFolders>
     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
-    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.2.0</NuGetToolVersion>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
   </PropertyGroup>
+  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <SourceRoot Include="C:\Users\Joppe\.nuget\packages\" />
+  </ItemGroup>
   <PropertyGroup>
     <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
   </PropertyGroup>
diff --git a/POP3Client/POP3Client/obj/project.assets.json b/POP3Client/POP3Client/obj/project.assets.json
index bcc9e5f..7d21a0a 100644
--- a/POP3Client/POP3Client/obj/project.assets.json
+++ b/POP3Client/POP3Client/obj/project.assets.json
@@ -8,32 +8,31 @@
     ".NETCoreApp,Version=v3.1": []
   },
   "packageFolders": {
-    "C:\\Users\\Joel\\.nuget\\packages\\": {},
-    "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
+    "C:\\Users\\Joppe\\.nuget\\packages\\": {}
   },
   "project": {
     "version": "1.0.0",
     "restore": {
-      "projectUniqueName": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
+      "projectUniqueName": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
       "projectName": "POP3Client",
-      "projectPath": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
-      "packagesPath": "C:\\Users\\Joel\\.nuget\\packages\\",
-      "outputPath": "C:\\Kurssit\\ties323\\POP3Client\\POP3Client\\obj\\",
+      "projectPath": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\POP3Client.csproj",
+      "packagesPath": "C:\\Users\\Joppe\\.nuget\\packages\\",
+      "outputPath": "E:\\Kurssit\\ties323\\POP3Client\\POP3Client\\obj\\",
       "projectStyle": "PackageReference",
-      "fallbackFolders": [
-        "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-      ],
       "configFilePaths": [
-        "C:\\Users\\Joel\\AppData\\Roaming\\NuGet\\NuGet.Config"
+        "C:\\Users\\Joppe\\AppData\\Roaming\\NuGet\\NuGet.Config",
+        "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
       ],
       "originalTargetFrameworks": [
         "netcoreapp3.1"
       ],
       "sources": {
+        "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
         "https://api.nuget.org/v3/index.json": {}
       },
       "frameworks": {
         "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
           "projectReferences": {}
         }
       },
@@ -45,11 +44,23 @@
     },
     "frameworks": {
       "netcoreapp3.1": {
+        "targetAlias": "netcoreapp3.1",
         "imports": [
-          "net461"
+          "net461",
+          "net462",
+          "net47",
+          "net471",
+          "net472",
+          "net48"
         ],
         "assetTargetFallback": true,
-        "warn": true
+        "warn": true,
+        "frameworkReferences": {
+          "Microsoft.NETCore.App": {
+            "privateAssets": "all"
+          }
+        },
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.202\\RuntimeIdentifierGraph.json"
       }
     }
   }
diff --git a/STMPServer/.vs/STMPServer/v16/.suo b/STMPServer/.vs/STMPServer/v16/.suo
index 810ac13fd28b7f248f26ed591a6504241785a4a3..d1ac9b298cf65884d5517c34dd55d14c85d642f3 100644
GIT binary patch
delta 2751
zcmc&$ZA@Eb6n@{kc64~V0haHw!6>W)I(k_PWnrUGGzg5|4p7_*j(+K~$&|H(L=(!!
zCR3Ksdw$HsKgyP9j4pBg;Y?htnL0B+wnUA_><9icX6_dxV=kNLTqr9Lr%N=x&AI2k
z&--;gp7-2F&kE6ZgsBE@_+aM-fmc9@uxXuq@z)P0+J5Av@yOavuIELJv09XS*uax*
zg4s1@Z7u?LW1ec~+QpH4)Hx`{D4S3=qTHn=*z)kb1Z6WyAqwqSfU*@O<}tuojX^Kr
z`@-yd_w4Yw#-(Xp7}e-heO(bc77d)aIB?;?2BsBfl7Y$nNTacpPR%0tpBW1mG-B-O
z@0E0&@fe;pj&dC31PTRXVo}FU>2C_6fW4%N3xO47F=GYDPeMfB36})P`U(yWqEH({
zIg0YHpQ2SyfqCh2#<$vun*AUB;;)LHn`!?cG7s0LOkxZVr7%*1sMideO?gTzq0}TE
zZhnP}eBxsesTk#lVXne0QY=K=mNdnK4??7}Q_rctCIwdtG;ph=UC*ru66cZ&AZ&1h
z%eYf1Z4n<qT)S+nbW+Jt4^?6s7-^7osifwoVJ>HsKLwH8V`;ZJE=2b-`-<Rt%(U7u
zPxcYmpB-3|86i`#y7a6XR}smR2JsL?tmuIqF{1Gj9)vloTP#P2?#2=vfQaN4>FN+f
zjpCs7BcOr#%qx0cgRgXjl4CHN<<|2`M2OQ%X!xKk(#@nBmISpU*cpa-e>;38SRovc
zRXrP!#bO*OO_>Ve;8i`(M1-zsas!I{h_OS=LTpP4&U<0bh+d{4W=z2$Tr{clw}^DL
zvzOuh-MX?AKuu`Bth1$H5Pqgxx9&b*2B%#EcY3}Q4G3<#KY;b<$*Yugu%#Ozqd<(C
z3x48CH>TPkLAbjcT8$2+N6mb!N`z=ni<qnfNzb&Wa6cW)mt6r@c^?#SIRlscjUZGs
z5lQ3Wib<}N8o}7T<pG;Mx@gnNO{?2h69d9lOxsFYz^qkXMG6Q@Da4JB<V<kI;Ce9m
z$%NJ9M+Y{(O%B2AMz^ZNn^di(c!>WG!N^o<MD)KR7|a?mS`S69mAt+6Pv{lD({q`t
z1!Uu;WSsPj_?F66SQfST{J}I~`cV3GtuWoJn|27`bCtvGw)L?830=IQ?FwH<)no$-
z2icYj<sAj^n%Rrr$i0Zs^(WnflG<o);hGQ@A>Nlgx{b+fh#h9n;&XsKkMwUvJ;(y=
z5DVg%8)Z9lVebI;2U(bzSr^XtvxC?Vvto86rAI}9N>8$peYbp`#xK&o%be<B3HKS{
zEgB<SZA1?ZCa9A0SV<mLR>p>ggG1gIKpHo|i=9OqIBR*Gx9qUu?<I%TKD|q*dKbTM
ze_-7<1%kGaB!z62dWX+uvH9&mi=%#^))KHwwF7p4eZ4Ojf3Kro*rA@P?mqL$$EYbd
z^g*EFueROjXBT=j#D>-94MbHdVO(y|%-lp8os%ozrkn){w*lUetCaEGAbASmx8v*6
z>2twYGyWht-U<`)2-fEbc@Mzx16qk$DA-+%knlL6rZEr?ILky+O~79#`RWENzL3L5
zwp%R&Hebjhg(PdJ-tYI>>U{C{JNksoUFz=i&?VH&#tV<taQLQk`>N9p!_o0wap#HO
zg)B_v9(0A$IDknCvX`N8?-(TVo#$WuibMOp2skJ0sP{p}DG|J06F5(0Kt}KI>I30)
z?^YNyhm3lbt{PKkvo$#^*2ip37Te>lT8qQM(e=)J*yk;aM@><FeoumP7XS3*C<kZW
z4Z~9Ynwx7{>=s8;vt)@o_eODaxe@AWWy-1ao+$a-tU-w>pX@43+C?dQ4(Ymsd09J)
uU^+RB#TqHiaLt?xKgY_IsTS@9kGC4#6?MH=7aW4GI~|aiQvY;J$M~OEhj*<2

delta 2495
zcmc&#OH3PA6rDHN#F&|2{@)e@4j5t+V-E&{NlfhK15I!g(sof596l+Z5K4!LrcG+|
zM{*>XyJ(wLgtBNimBOsLb402}N!6%It5#Lj&#s$Dt>jcft&-k1<AHH$vdN-Py7Okv
zd+)yc?wosG^kX)9gI)C#?q)|0ON>y(R_>i#D$jkh>pRlSFifBpF0q%$hwzAfU}6z?
zf(^c|vq3V$-dTV^J=$Xgo3PJE%S79YW=1oi(FI4bFGhO_EiZ-9H9S-qkHQT@0a&v*
zk^`R`f`!?sak?%y^<ISYeqQT0NbJjMj9J%vYSb9zY4#-HnHO}c)bRFLPZa7v8YXqA
zg=xTVeV8;HeVBBv7AlW(AFrJX(nxuW&gs)5F3}=3n=0n%a&)(V{UX{@>U#xy*=D}Z
zax`yNG`gu8Js0Mx5pe53G6&QANuJapR;0sS%lI*YMq3PR7VTMkg3as)o5^vrUnCND
z`}uY^D!ap0<z3ihn;>cJQF^gT>5VfO%SG5K?o!bbL=SYpimx49Y!=)u^~0)9z;_G2
zzt0o;$Fx616CsP<IDy$K0SH7N!r4eZ1Y)m{0r+yR9ulzt2<8f~G;p%L;d>(4g0NZA
z0a06sD?vYd&~_3UNX4};F12m)q&zjaGoh`ACzKo%p-uS@VmqRg1`RrAM#>!yw(3%c
zviI;z8A6S^Igqr6IqHVee%oF2xB+JByLmzpK|hi#PQ|BYNGc6+891I+abjs4Vza|0
zUa2kQ&cvcbq((f={*<fjjgpP`X)ZQq?-3<if>ab#ccmq(O_N1eoJg+!7y;4sjmfK<
z3Sv{-QqlC$U#pXuE9>Jwt+hP(u?j3@o~QgX>BS%f9Zet#m>eo3niQz?7Q);<1S`^Z
zXpT#HiQSt}8YI0a4}(L)k?C=<Pdq<)q{ZWtbGrU8TD~$ayZb-;b-)q*^q1~$r?<dj
z6S&>~(H2%XL2E}lJtPAd8)Zp)7|4*aR7&(z1hK5wq=^$f1zDCKd9%rS*sw9NVy+P)
z9zhUV1*f}pFya(EX9t{-fr!u9>hpSi-WGSOYe04kzrp6x7_`=oFCMx4-An>D){;|r
zy7xr*^w8ABp{duyQx~Msc5)5;qw|n6S_pMxXNuoJnFumr<_y!$crL$}n$AFM#Hu)G
zYH0}yI|FjyN*imWO56!g_J`CObo83C5ZOtC136B=s&wd@gM+9uq)=E>JbGy3Rh(p!
zw}N-cZWeP?<#1eS(!%2IqrwLZ^(<lF_hAp*o6CmiVnSLCz@JgC*~xSwQJNWnkpuB4
zAsKKhb_kWh06)z6O|RXjr(hVkGv6xZ+e_6PrKjuMROCDho%wIUtH<_2qNf10#R1W!
zNCqYgZ?+1lHUuGu3&h%9lXkVJd_<rWy>I74tm`#7H6Z4*LjWuHZ{HXHvv8nz9s;)d
zFn0iBqZjQ?z|~>Sg+Q$yOd?2U)aXI6Mv;bXnM{`<olKSld4_V8R>;mi&s1=~WDRjt
zj4JhO5<RGT*6x4Z4{B)iYSo-`%4LB7ZR=g;jfp#1K=S-xm|1wf@^Ta4M;ndT&@Yij
zkD(+UADvO2rvNTrzzgOemdZmm{e~eK@~xPeRRr`C<=Lg@ZeqTI1R;0U&3dp~m~NvC
zQkykF=|$CpL!&}Y+xXDIvA({;k%6(1iE~FrhQ<d8)pv6?)^ED3zfHC&D}`Xu=g&a?
UL(JC!3CRw><#AXS+&Ykd0OV1T2mk;8

diff --git a/STMPServer/STMPServer/Program.cs b/STMPServer/STMPServer/Program.cs
index eba9cc5..3774b74 100644
--- a/STMPServer/STMPServer/Program.cs
+++ b/STMPServer/STMPServer/Program.cs
@@ -39,7 +39,14 @@ namespace STMPServer
         {
             Aloitus,
             Authorization,
-            Transaction
+            Transaction,
+            Update
+        }
+
+        enum AuthState : UInt16
+        {
+            UserState,
+            PassState
         }
 
 
@@ -51,15 +58,17 @@ namespace STMPServer
             Console.WriteLine("Uusi asiakas: {0} portista: {1}", ip, asiakas_port);
 
             POPTila tila = POPTila.Aloitus;
+            AuthState authState = AuthState.UserState;
+
             bool keskustelu = true;
+            string[] viestit = new string[] { "viesti 1", "viesti2", "viestriiii3" };
 
             // 10min timeout jos ei vastaa?
             while(keskustelu)
             {
                 byte[] buffer = new byte[2048];
-                asiakas.Receive(buffer);
-                string asiakas_vastaus = Encoding.UTF8.GetString(buffer);
-
+                string asiakas_vastaus = "";
+                int state;
                 switch (tila)
                 {
                     case POPTila.Aloitus:
@@ -67,20 +76,126 @@ namespace STMPServer
                         tila = POPTila.Authorization;
                         break;
                     case POPTila.Authorization:
-                        global::System.Console.WriteLine(asiakas_vastaus);
+                        asiakas.Receive(buffer);
+                        asiakas_vastaus = TrimVastaus(Encoding.UTF8.GetString(buffer), asiakas);
+
+                        state = CheckAuthorization(asiakas_vastaus, authState, asiakas);
+                        if (state == 1) { authState = AuthState.PassState; }
+                        if (state == 2) { authState = AuthState.UserState; tila = POPTila.Transaction; }
+                        if (state == 3) { keskustelu = false; }
                         break;
                     case POPTila.Transaction:
-                        HandleTransaction();
+                        asiakas.Receive(buffer);
+                        asiakas_vastaus = TrimVastaus(Encoding.UTF8.GetString(buffer), asiakas);
+
+                        state = HandleTransaction(asiakas_vastaus, asiakas, viestit);
+                        if(state == 1) { tila = POPTila.Update; }
+                        break;
+                    case POPTila.Update:
+                        HandleQuit(asiakas);
+                        keskustelu = false;
                         break;
                     default:
+                        VastaaAsiakas("Some error happened... shutting down", asiakas);
+                        keskustelu = false;
                         break;
                 }
             }
         }
 
-        static void HandleTransaction()
+        static void HandleQuit(Socket socket)
         {
+            string vastaus = "+OK TIES323 POP3 server signing off";
+            VastaaAsiakas(vastaus, socket);
+        }
+
+        static string TrimVastaus(string vastaus, Socket socket)
+        {
+            string ip = ((IPEndPoint)(socket.RemoteEndPoint)).Address.ToString();
+            string asiakas_port = ((IPEndPoint)(socket.RemoteEndPoint)).Port.ToString();
+
+            string[] user = vastaus.Split(
+                new[] { "\r\n", "\r", "\n" },
+                    StringSplitOptions.None
+                );
+            Console.WriteLine("[{0}:{1}]: {2}", ip, asiakas_port, user[0]);
+            return user[0];
+        }
 
+        static int CheckAuthorization(string msg, AuthState state, Socket socket)
+        {
+            string[] array = msg.Split(' ');
+            int change_state = 0;
+            string new_msg = "";
+            if (state == AuthState.UserState && array[0] == "USER")
+            {
+                if (array[1] == "joalhelk") 
+                {
+                    new_msg = "+OK " + array[1] + " is a real hoopy frood";
+                    change_state = 1;
+                } else
+                {
+                    new_msg = "-ERR sorry, no mailbox for " + array[1] + " here";
+                }
+            } else if (state == AuthState.PassState && array[0] == "PASS")
+            {
+                if (array[1] == "secretpass")
+                {
+                    new_msg = "+OK maildrop locked and ready";
+                    change_state = 2;
+                } else
+                {
+                    new_msg = "-ERR invalid password";
+                }
+            } else if(array[0] == "QUIT")
+            {
+                new_msg = "+OK TIES323 POP3 server signing off";
+                change_state = 3;
+            }
+            VastaaAsiakas(new_msg, socket);
+            return change_state;
+        }
+
+        static int HandleTransaction(string msg, Socket socket, string[] viestit)
+        {
+            string[] array = msg.Split(' ');
+            int tila = 0;
+            if (array[0] == "LIST")
+            {
+                int koko = 0;
+                if(array.Length > 1)
+                {
+                    int num = Int32.Parse(array[1]);
+                    if(num <= viestit.Length)
+                    {
+                        string vastaus = string.Format("+OK {0} {1}", num, Encoding.UTF8.GetByteCount(viestit[num - 1]));
+                        VastaaAsiakas(vastaus, socket);
+                    } else
+                    {
+                        string vastaus = string.Format("-ERR no such message, only {0} messages in maildrop", viestit.Length);
+                        VastaaAsiakas(vastaus, socket);
+                    }
+                } else
+                {
+                    for (int i = 0; i < viestit.Length; i++)
+                    {
+                        koko += Encoding.UTF8.GetByteCount(viestit[i]);
+                    }
+                    string vastaus = string.Format("+OK {0} messages ({1} octets)", viestit.Length, koko);
+                    VastaaAsiakas(vastaus, socket);
+                    for(int i = 0; i < viestit.Length; i++)
+                    {
+                        vastaus = "" + (i+1) + " " + Encoding.UTF8.GetByteCount(viestit[i]);
+                        VastaaAsiakas(vastaus, socket);
+                    }
+                    VastaaAsiakas(".", socket);
+                }
+            } else if (array[0] == "QUIT")
+            {
+                tila = 1;
+            }
+
+            return tila;
         }
 
         static void HandleSMTPClient(Socket socket)
diff --git a/STMPServer/STMPServer/bin/Debug/netcoreapp3.1/STMPServer.dll b/STMPServer/STMPServer/bin/Debug/netcoreapp3.1/STMPServer.dll
index 55c81807d296d53e590866fff8442787af2bd4b3..6ee31abf9275ece9404f513b7cab5fc4c513c936 100644
GIT binary patch
delta 4409
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
J7j~pu|1X$HyiWiC

delta 2150
zcmZuydu$X%9R6l@Z+CC6-FENVyO!R;^~&SmPH1`5@={O{E3MG*Fhqe?5V!<6*j9~+
zdPH7UAyU^wtkDP|M(__YO;A&eQH+N8jEOINCWc5fVk9O4G3YnjQZzd0d^5jqzTa<V
ze!uD7wzh38`yS4e_Wkh%hTHeZAR-!pC<$wbJk`{9WQDW430SO%dBD0*Uwy2s6DXs7
zi0Wm2z0CV7#RU6%msFZP>OUfKqRKxeCWuk~w<41sWCYc2VwVUZJr>x(2!b}d;Wwok
z{Ux$ORQR289`S%|)ird$KP#tCDUWK|O297j76MyLD?5q?yxla6tU-57Vw_kb<1(1$
z|0bvUgJw;sjxuk6s$!C}Vu~<6Q67)!Ek~*6QF+U~wLC%0FkGWJTCHc56OAz(Vy5?V
zu%T;a)3o85wR@|n9~bw+0$UD_OL!H*SmVXi7%$c<H!B_syLv2TyLR4zYZ=)P4;c$1
zS4k`0Z@79^_lwqok`B0t+g^g+5jiFuFJ>4Z-tWyOk!|3-%*s!MR*ZAn<8bR@g0o@`
zq1;<QQ8>%2+Yz)J<BjB)StAj4UXBpcT|GY*-cuw-1d0A4OHi`C6G}EN2$8#YWSJ-U
zX2d__hLry=|Mj=Ml)U2JBE74Wsg50ELi1(tt|k#l*vQpM@5zxx(>3!f;DLx*t+8Qh
zS;K!loEXnMF&~j!4$|!ROzlb%s^CRvmWP$}VtBHuyNjS&GAKrnhoI25W(?JOQbuOS
z`%CP6X}Sh9JP16;@ohC<+T#^AZ|GLfV4VqURNV5Vc;5#2($KJQdFu@vzoz{H-&DhO
zn~HZRF`Hx+7FJ7ym2pu_18YMG_$bvH7>-W`7(YDnprt^-VzYfElvq95I#G}Y?h5d3
ztdJGxrN4paa6lMXCTy<$35Bl(_*sCn1HLzy$F+09Mpip59jw+;n!$a}2?s~W*jNXJ
zw-QSZK9VWTL3bc}SDX`3G*cQyQl8^x`^6qQKT6)faWd+FDi7*r%BaLoA}5;yYe`!1
zeF(`jw9gD%bF{O({Y~{lYwff&^kjyt^CkH^bUe{8WY+RlCe937^Q11qsN!n`cGWcV
zwh_(*UQv0*6c*+(@;Pt|#c0?c@N=jcVgx?qIVEn9VKhs@r=cR%5^YRGsaaN{iAE)6
z1~@;!)&M&KTp3`2n88!{MC7rR^F|c-ZMm9wiDkPFgJLcYqe7dHm(h-e#DiKJSBorL
z0rzVwi3M#neZQ1z(G}>oVtYy37&vUgo4omM;(ob@(s6j4xKBJz=54V*&^*fxnziQx
z93;M~ogiKq-uNVgs+&z_mLg&@VyGh4VH&XkbBH;3#A$elI2(J3*Q3<WVNtNKlvvFV
zYd2oP$2bLjn@aFMTaHQ9nMw{p`wrIx<G;Dn!Lm-@E4l;!!%b1XetAXGpILGHz&jPa
z!fq>c_uRP|?Og?byZcw!Jzd>BU3Yim`r_ub{^96E|8#VoKQ-3sKM>nx@Jp~5i~O&u
z>ijKL5x*(X;@4G=j)cn9znE6eKCnKqU0C4`EJrJUjDD=yC^WyVwzKk$)z9dkpUvO=
z^o|=_^fg+ef4p|WqWSIuw^cKu?M7OPXuB0k3lZ(m(r`kMj^pq`f&h1wY3k7#j$`R*
zL}w`IP|!}PWk3^7(tl%AwfcZZyBH)Da)?$cM08Ri6FL>iq?MK_C*`<>h#9sV=}0!q
zRHWt>xFfe@Fz)MwO(W%4l7G6%Xx7nd*Oc5(?O7onD8<9^m@`ahmJ^*JO-L)ni2=W@
z?$C5#(@s7o(Y{3Ge<S<(Mt1cxKHOA+W9$>yJNZ-G8S^vAOy$ZKFMV)gjMMtGF?a0x
z4Gp%xEP311%Vga!sbYWg;@ZdFdatE7`olGCFAe{ctI#LaJl$6xmxE3Ih2*LMXY|F8
P{JLqt9s8^3Yc&4`_f}37

diff --git a/STMPServer/STMPServer/bin/Debug/netcoreapp3.1/STMPServer.pdb b/STMPServer/STMPServer/bin/Debug/netcoreapp3.1/STMPServer.pdb
index 3d7bfb6f35cd2a39592bc6d6bf2efc9bc2170e14..b55ef6297e060cea8925d05aaab2518797f8e85d 100644
GIT binary patch
delta 2129
zcmZuyYiv|i5dP-e?e5*REiElwN?W?p?Gq{GAz+kHno`~o(*kKsEK9qz3w_buLK=bH
z?IUVpB4pzaH9<(#sENFUM575{qCsOKKTM1gMSqAS5EBv;NhHB<Zf~Wio1MAmn=|vB
zIdjh3d!p^?b4SC;HUJgdx_0w{tCTK__z1Av1Dw~n*2GY(zdNq;H)-P^728{Jn}cmS
zUcY@~GoMdo0flwMO}zt3R(i8#*LhrS{@}OvdryA0sP1aV+|LE@?kqF#8-Qb!0Cf(b
zP4Eb%fI<#<DFIj1Q5QAGE|=%4(_G483KK>4u{&i|-&6>8gavO_3O=ITq+F>I{8=sd
zzD97eR&cL26PCv0VX_%U=5YNX#@}~%EaW-)fKOe_LcWU!iL;0cUHl8NmpJI+1LRX&
zO#CS4mb-W!aRaf&>wF3EW*~`WuA!8M6vyQ*E+c-M<I^slPy7zY3te1J{0GOa6dwsg
z#QF>Ip}3MbN_>W56W6-)`J7k0kaz*tN0<(N8Xj{UT3oz{SSeS#xSlA;aUmr@|HZC<
zh**E!6v0wzgTvGol*xlt)Id8$u!-8>WopZb_9UGX&cbUnc`;6HV=J{EebfObIbfJ$
zIKkos8|WnkPEiD9)W*3b(-uwJ!dmJqET{H447Q{Fjt)49W+SQj{$F;QkOyy3d!2-Q
zPC_;!wD_Ieb!nA)YRgGZebu6zmSdl~#A^Grf>#_NCbTwO&DmV3CjYxh(@0Zq<u2+A
zl_}~UD^F0Lsk%h{W%bY0=V~BXc&Ro-{d;XA^@U0RiCAw0U6DitL(%x)Kz|n^!-<~O
zL?jVKXHTTRJK7O<K!5aLM_;@fG4v1j;b2d!H`+1Kk9`CC29Otv4k9*)-NSqKM29dO
z&-`lYy$52^cp{d`x58PGp`pk~W~KFFXw6@pLy1jQ-;VG61kc>ax%l<nS*L%RkdeBq
z@2)R7zV7`GuUj1z75>(dcp}<YzwznWGPzeK_sirVnS4bi-;l|3`&lu`$+T6clj%Zj
z`4xV4iLrfXF(|@TgLznQ*o);JJyGq;pf=w|!^*J|VzZLv#?D5m;i2Z}9IJ>@tn%h%
zgD(;Tuc6~y4-aXB;azR?ARDvPn~tL05rW4;QqUx{m;B3Kf+j<^RXTUE^TA|+1_}7?
z@S4ZX4F1*1pZgF0eBnMkN>Q(_OPGR(YZvHNn3=&E^)E2VX)K<YApZ&7g%7f6WT^zD
zMN+RzdaI-lN&2j$e}If0mC?&GdOJMkG5k*~GZSeuam&2WV@7w*VG(2>E4k9xUY3U~
zBxb}&FicX}&xv)$F2WXrVk_H&Dy*@Q%$q6-9Rpl(ucWS^NK#+$oh?Tg5i)iFb2MR|
zlb6ie_N;*Jti;%}oN6lIngz&LM^f>4^-1$;H9MAR^Gf6vO-04ovdNhob(;5oITon-
zA&w&Cx+{~T;o&G}-%OUb#Eb-`Sem5Aq{d9@ni&n7(L-kJI5&8o9V)34exARx#T?B%
zXppPD>tvo|Y-iK_0`bD=UL40_!*iRqM2uadh31Q3=BD=;yKshiYEJVZiQmlTF==%U
z3KpBB%@2ykTF-CrVm8|SO1{I6%$p+c8{2iKPqVQbX7E}gEe}FU0-f1YOw*|ZXBLS(
zx+Y0@@=j?MX=zMDyQE$<sWXzgW6~9pPRQu9GVYVHHZ!(a#@~Y(KWQdzuwoyx2_*GZ
rCQx(DcZx-k)ZNUjnoGVd%vjRJnX|RqgZwf}x`x+gg<iBG_Xgr`O4<L{

delta 792
zcmZuv-%C?*6#ty>z1~eTZKazD=5p6-J|qSeMj0b&OCngPPz2hB+gz>rGer8a^$<iz
zDmNk$Vz3vZjK~+Eher7-^xjhu)E^MN6@9*QzIDgvobx&7+|Rk+v+w7T;?R<vKMx=j
z8%xk(llUd%_kaxr6v#t^v(uSedWIqT48YX6;X#~Y9Mf@hc;GDk0{Ih%{7iO2i(Ps3
zck5Go!@!EwZ>Q3sy6gkBKxr%5tWe83W3&PXz&Y>`bp+q9c#B>)n9E!3K3%LQS_lq-
zcll47|6@onU<>Am%bkLDM=<ZWVF~9iRr(B0(GozA&fu?sJW2kRFv<5;>ps>sZzAtt
z%_eHdo2&ImmHWxHVt<tf$O4R;2#ftK+x>Y2nb6N^V!K6Qh_O+TH?dzA(Mw3>#0ppc
zn=vrXya~N~3*EFH=v8~sN4s-8{Yip-v_?fOubX!U8<hgEiy57J7t-qv@_a|_F22wp
zT^z8g!p!9CYqUo?3$z}mNPEL6(=O?M1(?lb;~0z2#xb3onViUt;pR*l8O)7mvdPhj
z95TsCWF}!IZlzN0BeTaXn;o3y{xBZ~51spF|Na_(<GlEAck}6<)wS0no6p|gj=gOB
zsfvjcUF(ZAqalBzl&(u@N=kR6v?!&ODV|O0U0?V8V>Xq<sTCYlUJoJ)eq2=CWK>}{
zdQDysQS)92NJI+HQP|)`kzV)Y;V;%2Z>)^CZ9Qe{LJh;b`@Ltll`E3MW9l7OUO)Vb
KOQnF40R909f^QE1

diff --git a/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.csprojAssemblyReference.cache b/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.csprojAssemblyReference.cache
index 475e9f25ddab19c98e99fb9760c6360cd0369394..a0fbfd12797557adefa2aaaacd9d5126dec64303 100644
GIT binary patch
delta 14
VcmZ3%yn=ayKO<8T)8s(LZ~!3@1Ni^|

delta 14
VcmZ3%yn=ayKO>VA`{Y2zZ~z~A1GWGF

diff --git a/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.dll b/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.dll
index 55c81807d296d53e590866fff8442787af2bd4b3..6ee31abf9275ece9404f513b7cab5fc4c513c936 100644
GIT binary patch
delta 4409
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
J7j~pu|1X$HyiWiC

delta 2150
zcmZuydu$X%9R6l@Z+CC6-FENVyO!R;^~&SmPH1`5@={O{E3MG*Fhqe?5V!<6*j9~+
zdPH7UAyU^wtkDP|M(__YO;A&eQH+N8jEOINCWc5fVk9O4G3YnjQZzd0d^5jqzTa<V
ze!uD7wzh38`yS4e_Wkh%hTHeZAR-!pC<$wbJk`{9WQDW430SO%dBD0*Uwy2s6DXs7
zi0Wm2z0CV7#RU6%msFZP>OUfKqRKxeCWuk~w<41sWCYc2VwVUZJr>x(2!b}d;Wwok
z{Ux$ORQR289`S%|)ird$KP#tCDUWK|O297j76MyLD?5q?yxla6tU-57Vw_kb<1(1$
z|0bvUgJw;sjxuk6s$!C}Vu~<6Q67)!Ek~*6QF+U~wLC%0FkGWJTCHc56OAz(Vy5?V
zu%T;a)3o85wR@|n9~bw+0$UD_OL!H*SmVXi7%$c<H!B_syLv2TyLR4zYZ=)P4;c$1
zS4k`0Z@79^_lwqok`B0t+g^g+5jiFuFJ>4Z-tWyOk!|3-%*s!MR*ZAn<8bR@g0o@`
zq1;<QQ8>%2+Yz)J<BjB)StAj4UXBpcT|GY*-cuw-1d0A4OHi`C6G}EN2$8#YWSJ-U
zX2d__hLry=|Mj=Ml)U2JBE74Wsg50ELi1(tt|k#l*vQpM@5zxx(>3!f;DLx*t+8Qh
zS;K!loEXnMF&~j!4$|!ROzlb%s^CRvmWP$}VtBHuyNjS&GAKrnhoI25W(?JOQbuOS
z`%CP6X}Sh9JP16;@ohC<+T#^AZ|GLfV4VqURNV5Vc;5#2($KJQdFu@vzoz{H-&DhO
zn~HZRF`Hx+7FJ7ym2pu_18YMG_$bvH7>-W`7(YDnprt^-VzYfElvq95I#G}Y?h5d3
ztdJGxrN4paa6lMXCTy<$35Bl(_*sCn1HLzy$F+09Mpip59jw+;n!$a}2?s~W*jNXJ
zw-QSZK9VWTL3bc}SDX`3G*cQyQl8^x`^6qQKT6)faWd+FDi7*r%BaLoA}5;yYe`!1
zeF(`jw9gD%bF{O({Y~{lYwff&^kjyt^CkH^bUe{8WY+RlCe937^Q11qsN!n`cGWcV
zwh_(*UQv0*6c*+(@;Pt|#c0?c@N=jcVgx?qIVEn9VKhs@r=cR%5^YRGsaaN{iAE)6
z1~@;!)&M&KTp3`2n88!{MC7rR^F|c-ZMm9wiDkPFgJLcYqe7dHm(h-e#DiKJSBorL
z0rzVwi3M#neZQ1z(G}>oVtYy37&vUgo4omM;(ob@(s6j4xKBJz=54V*&^*fxnziQx
z93;M~ogiKq-uNVgs+&z_mLg&@VyGh4VH&XkbBH;3#A$elI2(J3*Q3<WVNtNKlvvFV
zYd2oP$2bLjn@aFMTaHQ9nMw{p`wrIx<G;Dn!Lm-@E4l;!!%b1XetAXGpILGHz&jPa
z!fq>c_uRP|?Og?byZcw!Jzd>BU3Yim`r_ub{^96E|8#VoKQ-3sKM>nx@Jp~5i~O&u
z>ijKL5x*(X;@4G=j)cn9znE6eKCnKqU0C4`EJrJUjDD=yC^WyVwzKk$)z9dkpUvO=
z^o|=_^fg+ef4p|WqWSIuw^cKu?M7OPXuB0k3lZ(m(r`kMj^pq`f&h1wY3k7#j$`R*
zL}w`IP|!}PWk3^7(tl%AwfcZZyBH)Da)?$cM08Ri6FL>iq?MK_C*`<>h#9sV=}0!q
zRHWt>xFfe@Fz)MwO(W%4l7G6%Xx7nd*Oc5(?O7onD8<9^m@`ahmJ^*JO-L)ni2=W@
z?$C5#(@s7o(Y{3Ge<S<(Mt1cxKHOA+W9$>yJNZ-G8S^vAOy$ZKFMV)gjMMtGF?a0x
z4Gp%xEP311%Vga!sbYWg;@ZdFdatE7`olGCFAe{ctI#LaJl$6xmxE3Ih2*LMXY|F8
P{JLqt9s8^3Yc&4`_f}37

diff --git a/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.pdb b/STMPServer/STMPServer/obj/Debug/netcoreapp3.1/STMPServer.pdb
index 3d7bfb6f35cd2a39592bc6d6bf2efc9bc2170e14..b55ef6297e060cea8925d05aaab2518797f8e85d 100644
GIT binary patch
delta 2129
zcmZuyYiv|i5dP-e?e5*REiElwN?W?p?Gq{GAz+kHno`~o(*kKsEK9qz3w_buLK=bH
z?IUVpB4pzaH9<(#sENFUM575{qCsOKKTM1gMSqAS5EBv;NhHB<Zf~Wio1MAmn=|vB
zIdjh3d!p^?b4SC;HUJgdx_0w{tCTK__z1Av1Dw~n*2GY(zdNq;H)-P^728{Jn}cmS
zUcY@~GoMdo0flwMO}zt3R(i8#*LhrS{@}OvdryA0sP1aV+|LE@?kqF#8-Qb!0Cf(b
zP4Eb%fI<#<DFIj1Q5QAGE|=%4(_G483KK>4u{&i|-&6>8gavO_3O=ITq+F>I{8=sd
zzD97eR&cL26PCv0VX_%U=5YNX#@}~%EaW-)fKOe_LcWU!iL;0cUHl8NmpJI+1LRX&
zO#CS4mb-W!aRaf&>wF3EW*~`WuA!8M6vyQ*E+c-M<I^slPy7zY3te1J{0GOa6dwsg
z#QF>Ip}3MbN_>W56W6-)`J7k0kaz*tN0<(N8Xj{UT3oz{SSeS#xSlA;aUmr@|HZC<
zh**E!6v0wzgTvGol*xlt)Id8$u!-8>WopZb_9UGX&cbUnc`;6HV=J{EebfObIbfJ$
zIKkos8|WnkPEiD9)W*3b(-uwJ!dmJqET{H447Q{Fjt)49W+SQj{$F;QkOyy3d!2-Q
zPC_;!wD_Ieb!nA)YRgGZebu6zmSdl~#A^Grf>#_NCbTwO&DmV3CjYxh(@0Zq<u2+A
zl_}~UD^F0Lsk%h{W%bY0=V~BXc&Ro-{d;XA^@U0RiCAw0U6DitL(%x)Kz|n^!-<~O
zL?jVKXHTTRJK7O<K!5aLM_;@fG4v1j;b2d!H`+1Kk9`CC29Otv4k9*)-NSqKM29dO
z&-`lYy$52^cp{d`x58PGp`pk~W~KFFXw6@pLy1jQ-;VG61kc>ax%l<nS*L%RkdeBq
z@2)R7zV7`GuUj1z75>(dcp}<YzwznWGPzeK_sirVnS4bi-;l|3`&lu`$+T6clj%Zj
z`4xV4iLrfXF(|@TgLznQ*o);JJyGq;pf=w|!^*J|VzZLv#?D5m;i2Z}9IJ>@tn%h%
zgD(;Tuc6~y4-aXB;azR?ARDvPn~tL05rW4;QqUx{m;B3Kf+j<^RXTUE^TA|+1_}7?
z@S4ZX4F1*1pZgF0eBnMkN>Q(_OPGR(YZvHNn3=&E^)E2VX)K<YApZ&7g%7f6WT^zD
zMN+RzdaI-lN&2j$e}If0mC?&GdOJMkG5k*~GZSeuam&2WV@7w*VG(2>E4k9xUY3U~
zBxb}&FicX}&xv)$F2WXrVk_H&Dy*@Q%$q6-9Rpl(ucWS^NK#+$oh?Tg5i)iFb2MR|
zlb6ie_N;*Jti;%}oN6lIngz&LM^f>4^-1$;H9MAR^Gf6vO-04ovdNhob(;5oITon-
zA&w&Cx+{~T;o&G}-%OUb#Eb-`Sem5Aq{d9@ni&n7(L-kJI5&8o9V)34exARx#T?B%
zXppPD>tvo|Y-iK_0`bD=UL40_!*iRqM2uadh31Q3=BD=;yKshiYEJVZiQmlTF==%U
z3KpBB%@2ykTF-CrVm8|SO1{I6%$p+c8{2iKPqVQbX7E}gEe}FU0-f1YOw*|ZXBLS(
zx+Y0@@=j?MX=zMDyQE$<sWXzgW6~9pPRQu9GVYVHHZ!(a#@~Y(KWQdzuwoyx2_*GZ
rCQx(DcZx-k)ZNUjnoGVd%vjRJnX|RqgZwf}x`x+gg<iBG_Xgr`O4<L{

delta 792
zcmZuv-%C?*6#ty>z1~eTZKazD=5p6-J|qSeMj0b&OCngPPz2hB+gz>rGer8a^$<iz
zDmNk$Vz3vZjK~+Eher7-^xjhu)E^MN6@9*QzIDgvobx&7+|Rk+v+w7T;?R<vKMx=j
z8%xk(llUd%_kaxr6v#t^v(uSedWIqT48YX6;X#~Y9Mf@hc;GDk0{Ih%{7iO2i(Ps3
zck5Go!@!EwZ>Q3sy6gkBKxr%5tWe83W3&PXz&Y>`bp+q9c#B>)n9E!3K3%LQS_lq-
zcll47|6@onU<>Am%bkLDM=<ZWVF~9iRr(B0(GozA&fu?sJW2kRFv<5;>ps>sZzAtt
z%_eHdo2&ImmHWxHVt<tf$O4R;2#ftK+x>Y2nb6N^V!K6Qh_O+TH?dzA(Mw3>#0ppc
zn=vrXya~N~3*EFH=v8~sN4s-8{Yip-v_?fOubX!U8<hgEiy57J7t-qv@_a|_F22wp
zT^z8g!p!9CYqUo?3$z}mNPEL6(=O?M1(?lb;~0z2#xb3onViUt;pR*l8O)7mvdPhj
z95TsCWF}!IZlzN0BeTaXn;o3y{xBZ~51spF|Na_(<GlEAck}6<)wS0no6p|gj=gOB
zsfvjcUF(ZAqalBzl&(u@N=kR6v?!&ODV|O0U0?V8V>Xq<sTCYlUJoJ)eq2=CWK>}{
zdQDysQS)92NJI+HQP|)`kzV)Y;V;%2Z>)^CZ9Qe{LJh;b`@Ltll`E3MW9l7OUO)Vb
KOQnF40R909f^QE1

diff --git a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.cache b/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.cache
deleted file mode 100644
index e2206fe..0000000
--- a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.cache
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "version": 1,
-  "dgSpecHash": "1nI1HAaUmKGAZYvhm41fBY9PVwui+nKyh+2Ka6lR3CLCit0ppkBh+0rJWrzx4lMtQMcoy0u8EPvyvAUxYQk8GA==",
-  "success": true
-}
\ No newline at end of file
diff --git a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.dgspec.json b/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.dgspec.json
index 510ab55..26c43ef 100644
--- a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.dgspec.json
+++ b/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.dgspec.json
@@ -1,32 +1,32 @@
 {
   "format": 1,
   "restore": {
-    "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj": {}
+    "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj": {}
   },
   "projects": {
-    "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj": {
+    "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj": {
       "version": "1.0.0",
       "restore": {
-        "projectUniqueName": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
+        "projectUniqueName": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
         "projectName": "STMPServer",
-        "projectPath": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
-        "packagesPath": "C:\\Users\\Joel\\.nuget\\packages\\",
-        "outputPath": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\obj\\",
+        "projectPath": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
+        "packagesPath": "C:\\Users\\Joppe\\.nuget\\packages\\",
+        "outputPath": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\obj\\",
         "projectStyle": "PackageReference",
-        "fallbackFolders": [
-          "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-        ],
         "configFilePaths": [
-          "C:\\Users\\Joel\\AppData\\Roaming\\NuGet\\NuGet.Config"
+          "C:\\Users\\Joppe\\AppData\\Roaming\\NuGet\\NuGet.Config",
+          "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
         ],
         "originalTargetFrameworks": [
           "netcoreapp3.1"
         ],
         "sources": {
+          "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
           "https://api.nuget.org/v3/index.json": {}
         },
         "frameworks": {
           "netcoreapp3.1": {
+            "targetAlias": "netcoreapp3.1",
             "projectReferences": {}
           }
         },
@@ -38,11 +38,23 @@
       },
       "frameworks": {
         "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
           "imports": [
-            "net461"
+            "net461",
+            "net462",
+            "net47",
+            "net471",
+            "net472",
+            "net48"
           ],
           "assetTargetFallback": true,
-          "warn": true
+          "warn": true,
+          "frameworkReferences": {
+            "Microsoft.NETCore.App": {
+              "privateAssets": "all"
+            }
+          },
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.202\\RuntimeIdentifierGraph.json"
         }
       }
     }
diff --git a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.g.props b/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.g.props
index b500bca..84f1eb1 100644
--- a/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.g.props
+++ b/STMPServer/STMPServer/obj/STMPServer.csproj.nuget.g.props
@@ -5,10 +5,13 @@
     <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
     <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
     <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
-    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Joel\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Joppe\.nuget\packages\</NuGetPackageFolders>
     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
-    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.2.0</NuGetToolVersion>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
   </PropertyGroup>
+  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <SourceRoot Include="C:\Users\Joppe\.nuget\packages\" />
+  </ItemGroup>
   <PropertyGroup>
     <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
   </PropertyGroup>
diff --git a/STMPServer/STMPServer/obj/project.assets.json b/STMPServer/STMPServer/obj/project.assets.json
index 3c4c0a0..4eee0bc 100644
--- a/STMPServer/STMPServer/obj/project.assets.json
+++ b/STMPServer/STMPServer/obj/project.assets.json
@@ -8,32 +8,31 @@
     ".NETCoreApp,Version=v3.1": []
   },
   "packageFolders": {
-    "C:\\Users\\Joel\\.nuget\\packages\\": {},
-    "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
+    "C:\\Users\\Joppe\\.nuget\\packages\\": {}
   },
   "project": {
     "version": "1.0.0",
     "restore": {
-      "projectUniqueName": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
+      "projectUniqueName": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
       "projectName": "STMPServer",
-      "projectPath": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
-      "packagesPath": "C:\\Users\\Joel\\.nuget\\packages\\",
-      "outputPath": "C:\\Kurssit\\ties323\\STMPServer\\STMPServer\\obj\\",
+      "projectPath": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\STMPServer.csproj",
+      "packagesPath": "C:\\Users\\Joppe\\.nuget\\packages\\",
+      "outputPath": "E:\\Kurssit\\ties323\\STMPServer\\STMPServer\\obj\\",
       "projectStyle": "PackageReference",
-      "fallbackFolders": [
-        "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-      ],
       "configFilePaths": [
-        "C:\\Users\\Joel\\AppData\\Roaming\\NuGet\\NuGet.Config"
+        "C:\\Users\\Joppe\\AppData\\Roaming\\NuGet\\NuGet.Config",
+        "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
       ],
       "originalTargetFrameworks": [
         "netcoreapp3.1"
       ],
       "sources": {
+        "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
         "https://api.nuget.org/v3/index.json": {}
       },
       "frameworks": {
         "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
           "projectReferences": {}
         }
       },
@@ -45,11 +44,23 @@
     },
     "frameworks": {
       "netcoreapp3.1": {
+        "targetAlias": "netcoreapp3.1",
         "imports": [
-          "net461"
+          "net461",
+          "net462",
+          "net47",
+          "net471",
+          "net472",
+          "net48"
         ],
         "assetTargetFallback": true,
-        "warn": true
+        "warn": true,
+        "frameworkReferences": {
+          "Microsoft.NETCore.App": {
+            "privateAssets": "all"
+          }
+        },
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.202\\RuntimeIdentifierGraph.json"
       }
     }
   }
-- 
GitLab