From 55b8285c03382b339e9547af290fb647585c2aa2 Mon Sep 17 00:00:00 2001 From: Tulenien Date: Mon, 14 Dec 2020 06:25:24 +0300 Subject: [PATCH 1/6] Start lab07, add task --- Lab07/LR7_DB.pdf | Bin 0 -> 42984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Lab07/LR7_DB.pdf diff --git a/Lab07/LR7_DB.pdf b/Lab07/LR7_DB.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c33b8453e02053d203cbb30461730c7315307a1b GIT binary patch literal 42984 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

S_|4oLhogOo zmd&@pQD^$*Y~5kT$@jsZZh1|7I2zX&GoSY&ir14Fg{_*3tOxphfj4ZjDWx?2OQfgu zH_N%JmYo9dRd3mjQ?JN7Nrc7knB)b~!P;Lh8T(Hh#I#Y~&oK7{z1v%VKhWzi?&G(n z7|hFue+rqR>)hcV<)0R@c;qa>(rQDOI^sqg2w?}lEmaZ;8s2?M`W<(h*Y5!0n)AfnjM4}L9_u_Obh)7)+D!JK@j9`mbW0+O}&y`!jclXfSc#&-iltLK2 zoJq@)~HUaac?81L`f;LaXMU?rLr; z@k7MY<=Wvk+`3cRzA4N`?htd$a=aViSkXOYw2u<4F)i^@(ERAyqH^IL0NmLsfE> z=UD%_U67jT0vnAsqD$%2fv}YL8Iu+nT3&28KKczQ0>GIUQ17NnuGusN-)b!lWL|)t z`P2cmMk2DNod7hTj8SXKE}QM1Y$%WkN2tMkxn+Wxnl!_1(eI{{COil$R(;nbNKzfLbuFDAOZ z#g)B++hA=#q?_tJhkJFB#+n zpu=^SsTVB6qLJ16rd>OO);K>a%SBrG=ly|+(}&!W@@l8Sm}wn2SRtJDlZeI}wyldE z*g^}%>2e316Wi&%2wnog+Tqy^m@kV4IV!yiV5!}d354OTBnp&{-C4L@P-Zns2Sl?G z5(9NUgp_bC!u4AI%9O~8!=vr#4r&`{kyYiMSG`yidws_h$RXJ&i#Yn{83 zxcT7=Lb_r9^m>b_E5W0?Fwr2^+@DeR-gN0bR;KCu%Clgz^0R!UEmYH&$4#S_r9+zf zXCaG&L0;B*HFL1!E2t6lD<;--p9Z7VbRkJ3CU!$l2>OL-Dm04@3s?eo{qw~jtXnaEpEP#{O|#1a@1om3wjE13@6dSFpgvh}8T9Ic80``%?2SAY$N=1X}@f=_>0rYAKB zw_XWRlG8X$EQT}EVKqycs)RD{!CB$EIwTAY6%$lfkz;onWM@;xcq@F%r?m|n@_~j2 zh4U7x2oCxUYA8i(uG$+Y!z6R9L(V3jRQjJ=?;%CN!QYJ~Czdq`0W<-mIS-m7w2!P(>_H(Y37`i%z=PekA}fZZZO_JFRzjLJ*^3Eh z%|9R8m@$N7*{5hrfFMO6M}s!T>R73FMgUP1J=n3o!MX~Z6qQ z4fYZ0+!zpg6GenMqguIsP-Jq{j|PPV0HC;0lSthVtC4Kn0d=0`zwtBvYnigTE&Wjf zSGn7Yp4uc19d>2gmJZhx4n202`;HDV1aHM`JHp(iTA9D`QLP3vNz3wb&V6c}!8Z=s zlg%rQy)IS#M!!*VPTlBuygG6n=wMA52=*GefC_6l#S(wyk1bH%#reF&C_tf~@;k}s zL1ZIH0mX~ERNHA(`%_4=p{Ns}-4Q*Kpji%xSinVPe`sQg9xVr3I_Z$aUf+anm!o`3 zbH3j>-EGU`a(>|IxBEbSk3l7kx$C<-J2AQ@LVdJoPm(Hn#2MqVOM@+>mUSDPv2ccJ zR^%lH;!4)XH{xGYwx`a}YT(XzbUx;Pliizr0e{K~vkOpscUgk7T{Q_hzaH5Pm-)8c z5o0?`_KlMgf&s z^hEC%(lFna!+oYlmiFKbpfxcXz(W+I24$z2Ka9uwa{9Zu`9MR=huu&g*!Y zdA4-Mb=ev-x2S9Y+hKVNke57j2@^){Fgobc0|UGin-A5uSx#EdTP4k&k2Q7AdQ^n4 zOlD)G=Nlm3<pskxs%lgERAhK9lqE;MWlPC zq(Hjyy}_{W$ZF@#Iux`>+UNCGk=d$6{^9JQLQNVuxuw{4X;zK?60m)ELiScQh;-#< zK{Y}WFg3(Y`33fz6%K)wVVj=#BPn^KslHR7cND`YJP0&=Oa>5Nc^&auNRW;6R=on0 zvx6$CB6NO^W`WaeUgdynhw>adr?7{T?8lrVha~!IOnXQH^G=1w0z=BBoaJNa9Dm)U zWIjl>zx{Hh%AVJw-*%!ngy%X(jEou^=jtMNyB8JJ$`Q`Qe1G52V2<%q#YBqI#jDEH zqW4D;*p@`#sFG~lPQwMWIm5QdE;PL9{*MHv(nd3lj)Sm$`(|d+txo5+H>=1yD#yMR zqzH^~EPc}jYMLK(h?hh(a60q&t!Z6QHu~InKgzVH^`orZDI-@mYh5Dv_xQ*vB7Dpm zl!jRr4Pfg46}1njUPE?)`?Bo|RJF`7TfJC4*`1VO08zts@rKc=w}ZlGQuJ$q%!(Hf zBD7l>tqd?KgsW`!oF}eOV`E4caRIOohMSZm{dV|IC^kg9mRbgL4FgC;k?>^#YDbft zwh&`+t}BhB`LcpQBNVdMv7HN-zpp*lfxrdKU>iTuu$T$$cgH1Zu<%yl+4(AgUn zkZq8k5+XS&t9u}R*n`#rh50!Z=PBkvDa&hHLWoI4!#C8-j}PXC@;QqkMZYRPK+=Iz zZhv$m+a% zX`8Mq>mKDbqX+M0CLHl>hnTLmoqkrhF=6UWX$>cv+vbI9*qip7QPJgFvV2Ur-k)fD z%VA|$K!uEVD7m7*66vPx)i#ArZ`^>;@5V_#`~iHKfTg3cQJm^SNf#Mbt57!&pu2`K zpPGx1B+A~hU_cYRf26_Go;^A1G&Dj8~0 zWNQV$V5AQO0+=i``*}J>&}`xlHb>bgDpXZ^zC*0Okb|tsttTM@4nHf8*60aEK+@r zLyaT;SnTuv6&C zK+IO&Z^bQ&O_D8=lji$%%Nc5!4IOsgs_zgnKdEWkumpA)t}@~i6L~e*iEHXz{%@dr?L>kVby0L@3c9PJU9`-pzqX6rwutn0>O|8 zBMgB7q%E%h5_0wtrWTOJx?`OeGzA|Fr2*XQZu2QYnR>iYSm_@*0Q-$uYwx!Tw}s8z5%>6z(T#Cvpa7O{Gj9VRRt_~h_P z;wkmFKFT~LmMk5`L`JaLK%gBOdidEtot#}!-KzEgQKT3Hl+)?OFhS&H9<;|&S#c@SN4&ONq%E9Dmt|(DX@iwrCR3rko&-HiVt*)F3MAUXgt*iPIPYv~O!7}o9xxObiX9dn&?U;JWx{bR6MyXHoCHKr1} zjvMenre;PK0`}X-Lz}+0gFt*}TG21$mW}f6fRIiBDH;@lZwr}^RDk<3x-xQdYX9Bs zYmhUOf4}Nn6t?4$#SQQQr{58I+u3C1StPUDB>`1Y=FLPbIuTkqJ9q7H9P~8N!2qGW zbZT@_R85o~zPkR{AcjaX@wPBYe0K?Uo=K3>sn^MSoQ}+&*$dvE)^|GIM=-Pk0~X?_ zx=sCX=}~p(xAgY->A4)aw?S|Y&HS!Y8$ta_e*ZC@moL4Y+ zc~o4;bmeJm$JrRMk4PmNgk$cAuE!{HAU!KZ@hmQj(m{hOO=#tgtHvjKS3o96NkMw; z_8Q295e}lWWWpWW2(aR*^w~e|gKy$czrIzRvOa$VvWRdgdHy-d@4tnA;lDg{VpyIC zN&ot_%6~HB{|n~UM}A2$S;4<$ZZW-*FR5kC<;)CU{u|a4nmZ4>4{+fOyhc{b3K!_e*1<0 zA2hi?{ZlZeU;Mj&A{VJfe>M8XjVyTS6r_|Jtf7=d00+S%4CyeAvv&bV@b&56DnvzW z`YyL_H+_=XS$i9H_`T>_aQ*B4!>JqQO!;-|$Hk7BF?em|gAb~4BfQ3an!~jM!hChD z$z1!NzNVNOaH@7* zsHR|UZmXw#Qzm<8hGqKLT0J)t+yA~zNe-E0qk_RO5a@;=lq5sy#serx3`eS8o8pTE zNk*!TKTvS=89L}0&q9XB%^E6bwL%S_r&K8OMS@A0d31e?DKDeA^O~^>t$mtyrf2@ zfr37mwZs>@z!ik0zPD5?UJ_R0kvn;>#OlsK#<`BwT87Wx35iOMtG|+=Mu?fLAgAs* z2G_!wXfZ4sTh_jK;~Z%7_00aNzI9PoslMSM{Y0!}h%Myeq%J8>2{?r-HE<{PFM{k3 z&L;!Izhdkq6#gKiy^7*0?-yPE zUqn1w`lnF*XCfXOq@s*Mzt#6yya^ANVD|w_k~H)1BtJ`oSGu$>TNX4uAvBNSw@smzWjtHn+J(%-3!&^)M@} zDedis(j#(!aNFzB&$PM$h20{JSCuy;t`x4eSM)IW&`GuX6SUwV9jdVXr`9{kiSBGT zYS9KxOy|-@mTm7iV%pxje8Uciggc5_QPsNBm4X#8xPuS!yLAkb-0#HR@EQ+}K|ZsE z5$x08&&(sWiX3Ny>JV@uU4UFqrBRaz%!tQ_+yfP+=5_*{fJOlO>Z?SlkpNAPG2I@b zQL?JPOGECX#Ku(xzyv)^araS7M5uhq4a40lZ?$ooubP??b|$SO*5Utf_6|U@ylb|1 z+t_W}-fi2qZQHhu-L|`T+qP}nHh1gm|G~_OnKO6pcOxSzE8fbgtjv6?B4a&k{T@sU zL5)oMx*`!zI6Qt1;$hC$HxbVonNRSncke8(5}7U;GTzYU0u42tf$duE7L`w%%8o)6 z9W|;PEh=9?S$^>vsdb`+1JlF$L5mwa^Rn?JW<&j5}yCyYvfeJ2C6`qjgY#4WHBUK0}zugnsSHpIIr^#@b$R;zG zuYLF5EF{dLoFSniXNr02ObTBWP2`BSe57E&qUZ6DAi0C^gy7rNeWzaCh$Z*uR3g-* zZWXqLI}|6$G00lr_S8b=?|T6V=gxjdF$>ePsGxekpC_aa;u07qi9p-++1-gB>zc&; zqsd{h05bh5-Weh*-YIUkbhs39Al8Ko_)3SFLT2xHP7k?ead`o`lBoh%A7z#h+0lU3M#&Vjgv#+1h0o)WgL53fSqIc7X){IpG2;|y-$Y{lBlv#t{AU*xC z)+m?e?7s_eX){i166sO8+L5KM&pcZF6RNFKIE$*zwDuk_zD5DJVE ze0yPxtYog}$9+`D(#j)<1y5ePS>dhMWmI(l7%rVaBc4Jm0h7QME`mq^n;0SySj4Z8 zrbLM%i9xYa$z(8bpT`{x5&~gQemVft%J|NP+yNX2AJ3UzlLR!6*`Ga0+d*WJE2oUE zlAEe@)-qig4Bo`1aP?ebfB8FecIQu7@$4^gFkETFA}Y_2s@7fPPZ-}lr_8>bgert1 zkN33tn9y^a=;(3@Rb}gb^v{J=ZZPQ0N?K0!cVqxsPb#ZYr^$n9eo_E-nLLlVUUnro zhIq#wBgYqO!9Et~OrUk_LZbC5BIxc(0qx^vZPN7^TSj)AVQITSntY~)=UNGV0~q zaq0bW^S(O*{nsDV+p+^+SZb!X-A@bQ#bm75PA+v*s7tGms*#p&d?{m%UD73-UAy9S zxsJ2pG}f2eg|?SY+@mfWT3BkKS8hmO8_&t`35TRh_SiU1ORU(uX4g(pOsg50)Z`BX z$vBc(uDh6b`x;JdtZQv|?GdiBHW?${uI`t+ zykF9km?0C`6pyeN0q6ogVfq6cbBCNOmK1y!2Rs%+yAX(45UO`c-4?Oc zD|e00C;`q@bOLV1xfcCIgysQid5ifjNZK=hsP1P11PZ;=I_#H0b;9`ITG2zdCz-7_ zT{;ZhqMj5P@%k8e5_*F1K-34>26D;q2P@m(m#^L_S@df3VI$;&0H2w&Txjw}2;Sod z8@nHE{&L<2LJjFI_B()1!1BJnS2$&HKSp@zT0KH(Qb5Oj-Xg${I`6QMva{+EQAaw%S=(E7}en|pMQa2cwF4$!*xh%M3OI4pZMxR-`q11{+5A>JXn zeb$?1WZ_^1jUMy-CIwkRPT5X=?VLbg2&Wx;5;t=T?!!IshM(pw5LejpUg!4xGOL^p3u}3M+OpM%csk}v$ zh!dc;M6-b7?D6UE2hIn)(=Vg^G#?Y#d&wi%Bkv=QdlW}SWJ(D%Zv1o#m2k3f@PW`l zGGb_wY4I&lBK-XvU|FQEwOL9FJZI?2qT+y@4=9H%OC=05gC99Pq5KM8A#ee{M*K9N zo;6aOV}7K8O$bJ*FtDr9;UOR_I@R+-<_3oOigiOS0xX9$taS{WBAt4MD zi=)X+CtBe&w50JgRE&x2>rj46kbbBsaC}9s*Y>9)j+He|%QBo7na`bBF8U>#-AJKl zcXHY6%Ev~|RpW3ftRbe-wtly8;OnK1AJKTS`@`)owb(-*++4Yi?k>Pfe%JUNHf+aM-32<@|>-tY4OmJjU(u3(MX2HI1e15xl1kNKA zEVHI7YPS?-SvwLmt)L|Ad1rEg>#xf#1GG$*ZN{x?n|aECuh)7{#H?wIls2~Z3OBQ~ zm7)d+#_uWA!KFAnl9k_<*&cYg_2ox0BsICfrLoYEQ~el$9u1mYndD zmrMvB5zfiZ{$7ImFwFpY(L5Hf)_A)Mol#wSJq&=fX~G_HI$d)ork+Wcw8?5UYvD#4 z0QZeXZ@F**O=^G%l>zf^5eku0VSR_~Ky9q?ZMSDFT!coz66oePiZ7kFMWD4)?B&?O zp=or00bO9h9)5`zQMisK2t7hJ!tl7lzDJiJJes-mE73QQ0OhO06&WpSQ^;*gI+13r zz@oiIU;1^{#qgssZST~_&Qub6EaSAlu zTBtAa^NX0vJs?OpB~FJ4Nqv_gJh^ZD5LStN7N4jG$1V-vN{>ebY}TYOPg_jlnos#= zOHl+*1fcO zr*g;OPn^^Ou;~|et(^@>kj(aTGX9Gj1N0Fwo@AZ?bZ9jLKRFymJSIgP)L<@OX)u#q znh@V&iJ*K99d3E%Pd5QL=3vw_7MMm!hy`?N3BM@f5IPLP8#TyGsO_xW81}$^J1ic6 z*W>~Rf*jmJAK8-m-=~fbXi~WKsjqT{NHhrEl(eYVh}~4;aZF-Q;-AFP$;lFU$z6DH zKWf-^mg}fj{VtmQ_5HQ|MBx{&d`ex-d*m4;b{*o;bv!R?!{U?XdngoT=9QfM)D&Xk zH85{lyBcJEB`AD2Z!x**IG;>*nCD$_DWx7yL4RP{V4SK1>*xnb(qW>vdrK<0pTE-o z3FHLJ%?_YMrAHH1#s^1&kS+;}3sd)Yk!d0vPpyPEMT(wL^Y$tvR6xj!syhRa!C$~v zcG<~W-gqo1h@u#wj#N0C%RcDJLcyqqv89o%qjgneZN=%nNH<2V)=Nb(AbPG3V(|1b zp;6VI9$YIhs5KXKS3utZq1~OD{{eazDrI|ba2y^l6wf6a)~5p`@F?<|7HdRrpGX>w zP63Rvz}n%9;cYiQblb7I*VEBix+U^=x-W7HO?KxO0xzJb>w-oDrs4Vs70s^&e%dBN zN{Eb_+L(3qWZjAJz5#2rUjfu=Gn9Q5DbC?)eUuexP1u@hJfs_@=R|`YOi5sbuq?PP zGX^cE`iZ3rsTo#N8v8tTG~Cq#r8ZPF5DQ1eE)1a}^9f6K^--tOu*OB=0Y$y#4(~3m z9U<#JM$xmGy3WA7jdh+>I(O{_j)?o{L~-83^m<08v1T78fvW}_!7H>fiI%z<{mcY`m!0LJro>^X=F?1+6(ea2O+BD#sHhtkBKQfGwjxTV6FE%Vco{ zPO^Qzr%ji)b$@tnU;G*LeYw{|V;<{#I@3&{(}$MvJ&azawNI&P?ecl0n8LZeoPDPI ziWEL+T*EQMfLTi3%+P$L_ z+5~AkpbpQiWyNr=ctVz4y74xre+B1yJ`$;ZBuon5r)kI1(5a%#9*aZ>crVEVmTP}` zV**=@cNGh?;29L1KvzQEZxj)QZ<5HRh=X%2W?^iz_1T(|(?%K1TnxtQ7`m(m)dvik z%_oy@!iMLDctB#}Y+*-IO$12h)o?pjff48R2-9qsl+NT~X%^%pWc9M2wi0Fu%C*rN zTe8y)Wtek89(EnZBX%8_nk7^ix_W_)1%_c_nr27LR=U$L@Y1922LOSOuq0JZm4WqP zC_|_+(fqh8^X?L@Q4(2oWN{n>KK1&JN9dLCTMpc4uS!mOYiAjgQcC>@H@zHY7!&qa z;Y81Ut)k}xS8YG#G^|J1CxwJ?A|P*d#|VU-06kVt*5RWVs9u9G&;SHT?JXY`NHR8w zlpoKQfTLAXV2ncZg^>di78vIex8*eba7v@>I{MFbmig5dk1t?Tr_+e2;fhxe!T2KH z^m1M$H5Mv1RyO*Qs%;zVbe6HjHJa7P?24HBii}3@EhAI80Agw?Z-vDEge+?Sj&Uy5 zQ|Nq_n`EclL=aU7xYYsOFyEC5E@MP`>%+jXX@9RzL0vT-x7Uwf&~12q3#*9I0UPKp z0^5&HgP@g#&rh$7SW`zTJhha(MAa@|cO6dehnk#tzE?fY*l$$Lgbdf0=<#{cp8G=) ziyPNk=Q)}iHK(TQBFU_RaDJK6)4-c$1aIl$a6jq*!kak4zCM2z4`VuGBz7Q%{J`OjGK|DU*?q9d$!s3>;b+18)dV%|{AkQhUct zW-3QPUNKLt>*H2KMu=ixPVG0L;)&*DkvArhCm2gTCEC6KWW;Ys>-9PI`zRM*fO|ed zz^awr;_D!-I2dKeF|*>}tY+rb%u#GOTp7)7y84XFVICIuL2`dD3?JL#KEGU>7|N9{ z;>7bjnKZj0ROlwL{LA;Gy_Yge20t%7*Ct(3 zHB|C@v27NbV$jXKEO&Yqo;|lEHw7joh|Bwm1#2JthS64FPyXGAU%b zTUuN;Nj!}1M%;l`lez0X)Rl&)$#!0SqkXSNE$L5}*S*F?N8Y|U5}H`*9OlZ?iMFa@ zXnqU@4%Z^pG2S-g4V3FA)rY02|WX$Iyt@W z!1)27^oYza9jC#Vjmf=&3kRuAIwm}$3>#1ubqtY?GE6RUB1)}qij+kf-}m|Pu?alp zpL2)95HFX%)lhk~D(a0e!cka2ucX9*Y7RJ_j^*t+W*MbEx6ygKn&`dp4n zsrp&$ll1MY>L^tQwC+R$yocgRw&E~JhJ@NoegC?JY)fQ@h2hxY8ifkuGL6+m(lhFME5+bNq`n$J-ZJ%5Z7zPB(y zLNYuXgC;SM3J+XK>LPSB@%E=w-|&?fu5xLU2j_0RDwbNTI(xAGVnLpQir{Le{sEHc@Ac#K{nIn=wfi% z%lJ08i{0>&>h{Ln%^Ckyu0M6vt_l8!F)4=Kn7LA5UEp!*DM%4;eBTdPs$%=5;0}WycX_Sx1(_M=6 zWMJ?n8eaR?+k(lB`NniRaq31x3z4%W&{*sfTv~baokegWs*x@zqa1+5YZAFG{Da?u zh|ez)Ji{WY$}*ZQo=);_J%Qco3k?${Vk3Elo-Du6lvuCQG}%XE7@vMkdpgaZZo~1K zWG`6M91?Re%+!928e^5D@Dx!Nw<=%|E>PWIagRJp_b$Wi5|iHgTV#^-UUte) zkQZ9^p(uZpx8R7Pk~rF`s&TR&k(5lUmK+HUoC`aaibcHH3o!H4i9DiN)Dg0gh!w;? zZoJ-kP0nL}9HiwTRJ_0>X5t%`V$C1?D7Ttj4alnP*;nqJ{+UEJFzAn;K8+jDz20Z8 z>k=6?14TEqrA3w(waq+r#DO|i#bxt*f2)>6G>wdu1-7!{5+jD zIm*Y%2>AhkI%Lu=wiJt@`Zs1fX?AZSC=YNEQ~ZkUc$h3Yp1!t2zDpKJT@FG!NXE12 z7fH!WnAy0t4Vgf&;DNjW6)IQuQ9}p*e!St*>)}Gry7kQmq zL{NAGz|mM?Tfg9fe^IcRI(Lx9D9Z^7-sY*ZwYXc*b!I|Emmk$E=rI!W{a z#YpaE%R(V{uBF-h*m@I!#g}DPGynXs>JyFM)v4b5t$c0Dui#q4Bc4Dx9lT6qvv&2# z*$J)#7N*`(T+WR7s8qG&J@SJKl#%aXGav{k`R#0K2vLAesiLnvKO{nleM1mVnRsc( zapQiJA*3Yp`)b6p0AJGIFu(HXT+`eR^J?EQ)iGOi;%+HV^Z7UIi$*>@u-H2LhF3!3 zv${KC#DPFg$6^g_sGbhSR?yS}-XV#k;j{F>KBkR;z7B$PyAb&XJ5~#8@LMfOeQAdD zzA>DRb1IFI-OkRlm2`8d4Emzhc|E2@rmEL|R^A6vm8HB$;73=3RJbL*yN9aW;(MPIoZ~9hl zycvn=+&pd)1CO)cuf8v68f$CI7i~-YJF8~vICSYP&!0s5v$mprv6-lcH=!}Q8a@jC zI2N9BD0K5vf9DMHxauj;cyp5nnP79%Tf1}okGJD$pM7RlauWH@YAdeYewJotG zgOAHG18;+4=CaRMh~Ht?V^6TQkCFd}_a~13<-QX5Q}lKGvvXtYv_QK?it~f>^m8Io zL%CyGPW4RJmiq^is_~{zhaL;MPke93YnXmeIdF0kGm;XKG<(r}Me z=l>eK!}g74`41zVf(Q^Jltoh!-e_#GGWc-iIe|!?--`F~Tw`%;8sPn!4F9e*w z9m79s&;MK9{okFEe+$6*X5Y{-eOpiH|Jofr13UBoBLIi>yX5^301gZDzW{K)9WMU> z;IOm*3jl}Z8-V*S035b&4$r>;aQ?<0Qur4_)ZYgFdF=nJyZ-~G^v}BcH=yS)Pr?7v zxNcG%+DU1#_4Ap>(S$TniXm}XN+&Z-iWD+YiqxMg41^7mac4vj-wy*O^#_pu4XJQ$ z?hAlqDa0UZN@MEpr8&t~sSrP;N)!~y%H8ru_f8LE2U)w(Ko?q48PphV~%WKySiip-E;R{VDmA}Q`R?`79)|Xt__Z|lv2-$sa&q%2D zoX4#QKSCvwZMCqg*QfG%I}19UvPs{Z)zh^_6A*#+4x7$m8W{wmx*WXr;^L9>Zqag znD_|k{HpGs67humGvw-wuYDEW@5gk}se?K;}m221~t={v( zn;UdRou9^wz{?f?R)|Lw9T0c*Yzk8hnmeaP_FiRfC^P19hv>fUAX>qPM^g2%h-ynfi$Y|V!QhsS&LtHgOAFt@wS>~fk%kM^2slS&~&!sPn%K>ex zMb?=$N=cVe;TKYums7Qw0}kPlfySLNCl^blrQy@2gC=A{C*VUSXbA2%;#%>Is-}%L zm0-3wnLOG>Sj`&*3+kE9W=oYDQ8TuwS+40=zFJl~YF4<4SKdJ+^LV0I%SOGAp8re; zdmkZqA9Z2h?_V@0^(7EdB+X3wjL&cqnie4%`$jXZ1Lh3vCW<-YS{xHi+Vl*^9|;uk zM0)d0iikjY=A^G`?Od0MlAT@G$k5(cFO@BB6T&+de3}g0gM@S=gf8#jSPU@2N7D&& z4f-h}$nxw2v%P<}Rq|hRjL!wWaUxcOV8ew>2F#8C@%AGl><#uaBX$G3QNxZA>KK=g z6zXWE=r+>7y9@l$%{-SGyrfAq+3H6Ve`L{fBzBKpv^8#1j4M4{rH{3g=fewD2?({W zGEZCSi*h+^q|D&eTDSTPZL$!t8jz4mW@c`)N~= zfWBm=-A!EvX!pk3a0`xuuS#|K&o!-FuUSWtSM1k$pIQjQu^evsBb9HLFqdgkEO$W? zzijYb{BU8%wKIk7g@=HdK($|gd|t<1EoC=!F=feyX%do}?KI1^YK$i;rL4X`wn_m< zaWQ!)*RL_U0P(Tj9f!kX{@LVWEly%0HOv53R=)vP8dU&mLTLc>+7bOeE=d8J>Oe(FsS>?YuTmN4Q>&u_ z3j+~~WWK|F7J=z6vpNr=Nq4xr4U|O-nib^yi3}ync7eN?g1_?S+N!pu+DAvaLpyL@ zWe(Qkn+dlAIxyUk?!XQnM>cEcMF&oNwkBDh%@v>TC%xwF_DQ?ETN<)#(P^!B&Knhw z$&G+Ks|&~@t)c7NFVoJ+R>%rtnwMnme1XkpF*V;wbU!Y>=KXB9B= z?*(?{^M8y(OGCz5IWe(5-dpHk+&te?0_GL_G$pHon}oYGE#U#JD@8|pxS_0+sspSP zdYvIyEf5`AT5*DCURP!NbvJ{9P~UksNE)t^Y?stxM@=92156Y`0c30m;YLpuutKs> zLq*3rCq#@Y{jf7Gs*&j(zP^IQ|Q@=z%n+jQFJ7|N@m#zG?|5^qJ8f< ztE$TFG6SapZn|xQzjXwvPMbq&Rj8IVZX3znOy?q@BOp_dZeS~c^2W$>AETer9Ai@) zf%9BTOoIp^t z6|*LJi?}OMS>UOO?EJR$NRkGQs}fD|kG0e8 zVjQTNIP0;}E7Aq{xA@%R(=+!E3|YV>;fHl#O#xX4p@mH5)eX8jbYGeiD4ftAq;u3> zS-j6GFBk zKU6Om-HPHQcJ?VJPKKKYl~$;^T2RgLydH_Uqt&?KV>?4^)0L(VU7nCVvpF@ z0kI@Vi=+d!r>|%{{g`XNzz&tqyyu}HznqP?$jK{9bnUHfKj9aujm-`OJ3gI$fb^C?J0VO=oq(C?0fKK;qt92EDv!5F z9SfK-g35?so789JD{#LcZ3?qC_FREqF%;`In662@c)q}X3(}rxNOC94M?GM4C))0N zCJ=t1Qiy*Dw+X5eDmmMl%Zjf*#B|So7ktg->9u>96BP^%`D4(wvanLM^0`7)3qLAU z#*|*XPx0NGNToM~)+=#K&@=vtfEz;h6Nc&)eQDNy;DvY&S`7Fh=jN%PBDq>!`;-O`Y`JJWNxA-2#D{7-q9OVVg6iOhFWjjkg&-!$WV}rhi^Q`ycwvqtofsZr zOr-N>+ee%3sZO%E%7Nt}i+h1r%Ddrf4HtelVa`0-2|UIX{RMNTpwbZ`OQRcN)q9bC z@Z$_!Szz_C_X>i@4yOwSj*0dIt4)wHYdzC|2T{jyzanqWWpBy0lrQ{D!ND?&<%9Bv&B(R|2rEB{WY zAnXeCEbD{Og|j(`QU}gkpr~XaDoPu))~ie?10fwN8Rxjo_=K3OWTS>c!lZb3F-QSF z-8pe)rX+BcI8BV5zNDJ!N!yb~b!ofC?2L!7pyY~wvAF7e5RQQsRa@1bQg7>vWu`@@ zV&}vtbqq)OeKH3St>{bA_F-6^J7b1i*ZMUSdtac2d%DV2<*!L{&MfpDh!xKFn4gyR zAbp8Tu1??@?^_B>)qP%x&B$e_X(MOT z*Hi3F+j9tR&Hc<+InqEURTX3_GIDD{4`ogBR6#QGluQZ9G@n(vsQ;BgSLn&Z~4Jvp*X-! zI?)`Q-e-lCgd}0sHe4CjeZEOEj=c+_8u+`wQytn%raql;)uQQ10d_vBSS&fcNV%iv z<4JRfV>ijiwzFAhN3G-|neB5o#_jDo2D)L}VUNjftYX|pU!aK!g1JA2MLG<+Ee4^` z8^*ag+W+kanqIAyDf4G-(Ygcd9zyaaYD&QyT@YU@7;jr!k#mdib<=yWPzl8GAqs*? zWxw&pdXh}ILSIy|&X7y+03@fxXNS)QkT@&NjYydqb!d@Kl!&nr1tynF5?4`-_>4zF zSVqD6ERNQ~W$M8RUyrj5?Ck6o&RuWjP;pUieMY7}bCP503NDm(pu5BX7dp_>)ejRj z7A{~p%R6l#Me|c+`?a)Lrh1Bw#T+D+4}umD$%~h$;v4&lDme(P8hbUxo#dh?{jBla z`sF|$T`$zky=H?5IoIaY`r6S$7`*GNsZ-Qxp$=T*het5y76OR?Vd`Jx>m0y_fV8GD zW_Ik_GNmYYf=cYk%PG5qmn+-PH>Kkqh6iS5oD%nThrA>G%G*Qzi`!%U%qh&BWBrD? zj?p)Em%P*c%UXxKwZ7Z^&MA)}3H!O$Sx39KU-Q5=`1~dg<|D8cHZ0! z_-2QGsJfv)_cR`$x&pKy+KIa#BpoMc4xM6Ox(V*>GX0062^-!Q6vo1 zBRzlx%O@i=(;16qN}8-lN)-EQuwE)`I*pq;&r_$InF(wbal})NiE3so5gIjnT^$7H zjN$mUUl%?s4GO3o6DH^cWD2EY&59#dp~V(EOgV+i?j(xHf-M!33e*fFwj`C#b5Grc z-!=_TP^M*u9}#c&RM!t@al~6U!@z1NT3Qk)ig77=s-|hx4LaoKb4`XP%In87>e|{_ z$76;jnXcFrW38r;;a_(bUPLq?zrdVTfcHjYr%)6`*D`iY`6wSFK;YHC!oJZ-Vor<0pwXF3KS3 zhM^oXFETGGFOB8*y*-C|WN?Vd#KZK&?tM8GBAvl4@nnGd5bcnyZsc ze;#bb%s8B8VCqs=S+{A?K3rTc{F+d}PLYg@LpzW9cx3bjmTQ-FSpN!qUq1|MvRz_k*lS`k#VwOA$$#=ZgUQ<%7_dp5&oX$v<=(YRhi={6$Ge zsbrm;vf_#Q{V&pJmLEm%zD!EA@7SJ_J^)K>JGa}VfX(6JkgXK0sG*f}P1Jeo4RpJH zGz7Co5@ILfjq4X8p%k+=<8#KVNYV@#45&wHg0FJ|WA@0%=nhe)2ZbN($>jBqt#!}G zJ3b4=M+8EUB3E)zX-yy{2Tl^=;agIRM-zoGA>Ar#v2AsAog7-|v}ewTx=r1*o*RDL zSX8WyE^KZ{XJ=>Vs4Pg=UkQkHgy}Fm;+2h=Kh-3t+c*%j_3zDnCf!twX$-??u&gT= z45+;h3}`LeXy!@xI-2zP%?ToJ_KV9b)qN$sF9)wlO=CNpOEbGQC?-2}{#+_FYq{U* zx><^n=he+Abnf&yw~eB0>&P(y;yJm74<{-1&vf49$cYc7eONz&d;I2+&dJ^pC)eKP z*l{0wv~*#(Tt1zS_1d~GKEAI*2JUYxoQ*RQV_mUo%8wFQuggCi%*xJ~XKiQka826E zX`DUCyFV?hh?Fw&E1%o{idcB&bF zI`n$zwGOn7{OpbEQX!T~-P8SD1P=~a~t=L-(Zs(I&&o4Kh>lydfd)AVWY;2F6 z!Bu9eYZ<24yF${BygB=gi?5E>ai?*~{+((4F9AB%zl70mfc5_np!k4#{vCE>W&a-g4%hu{?3-NweNgyJ-_-QKZO8ie(A{6}WnyH;XZh~!@csO| zU(mevs}&e|}t#erm&P0OEnVOAqkDuwwwC1a48 zyGe(b+-Au=uh!**cw9j&%`4YPr;n0V*5vHOe|ak)Pj3^SRkwt+iV5wy+nl(0L`mrv z(}H1p%2Ia|(I|1Ujb&hq_7Y9`Cj*bFEFw;xfVSpbV%}<4YQ*1XkqXfrMw9Slj)@55)f4GKwDry1G#|{Jm^eR0XR8doj$h!U_SRbQIfpH z^x7WMPPgb198_F|8Z)xqZ#BzY0L%>H@2!pwaG`#1^Ub<}jAr-3$xn>sjhZV%lVh7`)@LvtpCVt{!<=jXJz{)(Eo1}c~S$~DN(p9 z=e4UNoyA%L?=+FlTntZK@RSI)sHl*HLRwRTq8g0qfj_T^&p%nfz5AC+TuNVEgq9E* znm>~g%vn{L#+x9N0t20P=I`}^@%`q#T@ zmpLaYojD0VJs#SlN zsPwqF`bp`>dLU~D=%39PIQ}e?fY?i1-G=J9m9>CNQ0=K**s35ZV=xYGpF#XJFme<7<2njm7V3Lys( zSrCI0+{FgcB0!3)viUUK=4fYNsNA5ys)k(#V(B96=8$r$Utsy1FXz3EY3zV)4w=e{ zc=bSL9b;W#;imJl5l#u_-6nV?rWg^Hq-L+uuG1dpcWA|$X8t%mYy%|h*g*9o(7E#Q zv!ipx^IIFY27|bF$N&)N+zf z@90nkNUU=M3Lrd16RyXzl@?%XoCY}8AC-R`m08AZTYTG2p)%g0(y2Yt22TW!dTi$` z_ZMbSx~1PG?mp)1lViP{4{0)*P!wwm=|jiJVgVOzGT;Qb@H>kQ%OA2_9{&tr%78E$ zJ4Y@heJZFUhZ9R91o_!|19u_n!=@48@@3SrY|TOshj@!iLgi0F>S7O()m_Y0)Z z!nF@{g)02ve7wYsPLw-2qkxc>-J+W8VB1BN25(UG3czc=59m3=595G0E&%VnhM6%_ z(71+_J?FTFh&`_WFImHE$dxJFGBiCHv5Xiy4a4l%JHoMyz&q}-^?*I+_Bz0BEC4cY z6ZbQBZWHH0Xr&pctweg=ONv;LTg=&OAb!f(Yg&H4ve)7T;?rnJz=be4!JN!QJ@H6s zfQ;H`h}Q>hS?Z)0%mJ-Y*6#sVU$oXJ*Ybl`2HYKU88fy|=#%{?VPffVdJgSPfEL^` z7X{)YWC SB&!RL8Ac!doyG3ZUHv1b46(s;AJOLl5P_k8 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 literal 0 HcmV?d00001 From 439c4b0ac3918bc04f2ac76f75e59cc4be31d98d Mon Sep 17 00:00:00 2001 From: Tulenien Date: Sat, 19 Dec 2020 11:50:16 +0300 Subject: [PATCH 2/6] Add Linq to Obj code --- Lab06/application.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Lab06/application.py b/Lab06/application.py index b9d7891..ccc1593 100644 --- a/Lab06/application.py +++ b/Lab06/application.py @@ -266,7 +266,7 @@ def updatePriceForSquareMeter(newPrice, sqrL, sqrH, connection, cursor): from re_obj ''' ) - connection.commit() + #connection.commit() # Called a stored procedure cursor.execute\ ( @@ -308,9 +308,13 @@ def getPostgresType(value, cursor): """ try: cursor.execute\ - ( - ''' - select pg_typeof({}) + # ( + # ''' + # select pg_typeof({}) + # '''.format(value) + # ) + (''' + select pg_typof({}) '''.format(value) ) result = cursor.fetchone() From f12930ffb061225e08492d3026801f7c97897b75 Mon Sep 17 00:00:00 2001 From: Tulenien Date: Sat, 19 Dec 2020 11:51:10 +0300 Subject: [PATCH 3/6] Add Linq to Obj code --- Lab07/LinqToObj.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Lab07/LinqToObj.py diff --git a/Lab07/LinqToObj.py b/Lab07/LinqToObj.py new file mode 100644 index 0000000..6d5ae99 --- /dev/null +++ b/Lab07/LinqToObj.py @@ -0,0 +1,35 @@ +from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String +from py_linq import Enumerable + +engine = create_engine('postgresql+psycopg2://postgres:1&0O#_)"d@localhost/Real_Estate', executemany_mode='batch') + +connection = engine.connect() +result = connection.execute("select * from re_owner") + +print(result) +collection = Enumerable() + +class Owners: + def __init__(self, ensurance_num, owner_name, age, gender): + self.ensurance_num = ensurance_num + self.owner_name = owner_name + self.age = age + self.gender = gender + def __repr__(self): + return 'Owner ensurance: {}, name: {}, age: {}, gender {}\n'.format(self.ensurance_num, self.owner_name, self.age, self.gender) + +for row in result: + owner = Owners(row[0], row[1], row[2], row[3]) + collection.append(owner) + +print(collection[0].owner_name) + +men_from_twenty_to_fourty = collection.where(lambda x: x.age < 20 and x.gender == "муж.").select(lambda y: (y.owner_name, y.age, y.gender)) +print(men_from_twenty_to_fourty) + +oldest_woman_sorted_by_name_with_age_stats = collection.where(lambda x: x.gender == "жен.").order_by_descending(lambda x: (x.age, x.owner_name), ).select(lambda y: (y.owner_name, y.age, y.gender)).first() +print(oldest_woman_sorted_by_name_with_age_stats) + + + + From 0b1cbc81ee1119366102698c7f98b7867fea679b Mon Sep 17 00:00:00 2001 From: Tulenien Date: Sat, 19 Dec 2020 11:53:12 +0300 Subject: [PATCH 4/6] Delete wrong system function close connection test --- Lab06/application.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Lab06/application.py b/Lab06/application.py index ccc1593..5fe51ce 100644 --- a/Lab06/application.py +++ b/Lab06/application.py @@ -308,13 +308,9 @@ def getPostgresType(value, cursor): """ try: cursor.execute\ - # ( - # ''' - # select pg_typeof({}) - # '''.format(value) - # ) - (''' - select pg_typof({}) + ( + ''' + select pg_typeof({}) '''.format(value) ) result = cursor.fetchone() From 0467cf254fd519b837a5aed9c7a29ea9dc3dda83 Mon Sep 17 00:00:00 2001 From: Tulenien Date: Thu, 24 Dec 2020 16:52:33 +0300 Subject: [PATCH 5/6] Update .gitignore in order to not fetch other folders --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 989b401..639860b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ re_objCopy.json re_ownershipCopy.json re_ownerCopy.json re_ownership_typeCopy.json -tableCols.json \ No newline at end of file +tableCols.json +.Lab08/ +.RK3/ From 2794375728fb0e553212287043986652a8f8a719 Mon Sep 17 00:00:00 2001 From: Tulenien Date: Thu, 24 Dec 2020 17:19:01 +0300 Subject: [PATCH 6/6] Add stored procedure call via session by sqlalchemy.orm --- Lab07/LinqToSQL.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Lab07/LinqToSQL.py diff --git a/Lab07/LinqToSQL.py b/Lab07/LinqToSQL.py new file mode 100644 index 0000000..a47a215 --- /dev/null +++ b/Lab07/LinqToSQL.py @@ -0,0 +1,43 @@ +from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, BigInteger, Date, ForeignKey +from sqlalchemy.orm import relationship +engine = create_engine('postgresql+psycopg2://postgres:1&0O#_)"d@localhost/Real_Estate', +executemany_mode='batch') + +meta = MetaData() + +reobj_table = Table\ +( + 're_obj', + meta, + Column('cad_num', BigInteger, primary_key=True), + Column('obj_address', String), + Column('cad_value', BigInteger), + Column('approval_date', Date), + Column('obj_square', Integer) +) + +reownership_table = Table\ +( + 're_ownership', + meta, + Column('id', BigInteger, primary_key=True), + Column('cad_num', ForeignKey("re_obj.cad_num")), + Column('ensurance_num', ForeignKey("re_owner.cad_num")), + Column('ownership_type_id', ForeignKey("re_ownership_type.ownership_type_id")) +) + +connection = engine.connect() +reobj = connection.execute(reobj_table.select()) +reownership = connection.execute(reownership_table.select()) + +# obj_ownership = re_obj.outer_join + +q = connection.execute(reownership_table.outerjoin(reobj_table).select()) +print(q.fetchone()) + +from sqlalchemy.orm import sessionmaker +Session = sessionmaker(bind = engine) +session = Session() + +res = session.execute('call table_size()') +print(res)