From dec9204d4dac70e1204f1fff59bb4ae642a95a32 Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Mon, 17 Dec 2018 09:39:49 -0800 Subject: [PATCH 01/10] - Removed the dll artifacts in favor of a nuget package. - Set it to be a netstandard library instead of a netcorapp - greater compatibility. --- .gitignore | 1 + AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 13 +- README.md | 2 +- ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg | Bin 0 -> 48941 bytes ReleaseArtifact/AuthorizeNET.dll | Bin 109056 -> 0 bytes ReleaseArtifact/AuthorizeNET.xml | 3967 ----------------- 6 files changed, 6 insertions(+), 3977 deletions(-) create mode 100644 ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg delete mode 100644 ReleaseArtifact/AuthorizeNET.dll delete mode 100644 ReleaseArtifact/AuthorizeNET.xml diff --git a/.gitignore b/.gitignore index f1e3d20..b2edd60 100644 --- a/.gitignore +++ b/.gitignore @@ -152,6 +152,7 @@ PublishScripts/ # NuGet Packages *.nupkg +!**/ReleaseArtifact/*.nupkg # The packages folder can be ignored because of Package Restore **/packages/* # except build/, which is used as an MSBuild target. diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 8075368..2b01dcc 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -1,21 +1,16 @@  - netcoreapp2.0 - 1.0.0.0 + netstandard2.0 + 2.0.0.0-beta + true - bin\Release\netcoreapp2.0\AuthorizeNET.xml + bin\Release\netstandard2.0\AuthorizeNET.xml - - - - - - diff --git a/README.md b/README.md index 6af0f97..7f825fb 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ## Requirements -* .NET Core 1.1.0 or later +* .NET Core 2.0 or later * Microsoft® Visual Studio 2017 or later * An Authorize.Net account (see _Registration & Configuration_ section below) diff --git a/ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg b/ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..6f483692c3b190ce0cef876099d17d1087f7b613 GIT binary patch literal 48941 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%0D!Ige&@> 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 RvH<&eZTvh0uC9OX{ueo+h^PPn literal 0 HcmV?d00001 diff --git a/ReleaseArtifact/AuthorizeNET.dll b/ReleaseArtifact/AuthorizeNET.dll deleted file mode 100644 index 4cf867013f7647d54092f9ad6701a83b7c8362f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109056 zcmeFadz{VH_dmY(KF68+%sDe-j4>DtUS`fP!?=ranK2mmAqpYnKGT>Y$7STsC<>`0 z6(tQR3Z;^Wq>@xfrII(jRVs>7{nlE0zs_r)oO3?&`Rn(6e7{Y-)@wc2TFTv0bpopB%EmO&O%4YrhiBc7(lGXBRJcuTJ6EaZ^%?ON#C& z88Ip4_7RgO7nP=r9Gy~f*W{FOlT*6%?w>NLXw>M&QBmQks_8ztj1_PjJNJe0vDw=h zRyQSrXEOFAXUrj^hu;K01^hFxXUs{ykh(E|`spVHg7827*jUbdEXDt=y@D8mpJ~u; zZ*-vDe4L0Iegunz*u=e@72c2w5=dbzR7-~f&ew3`($UjO0Uv!rjSI)Bbem;B8Q!>L zO3CdIAZ<8y9OwqvYd<+~xEhy?o>&BhsFfPRwl>{R*NM`asla)KAJisT6&6_zon~|9 z%cPP@nOedFJ=@dj3foL_AOO=U1LQye#vlXabQeZV#=^y{DiAh+O< zwj!u=)VCMGT5zO|6b6WMxTC3Fg1>lLLK-w2ZZ=E~1R~4;IS_#PkzJDmfhaRT4g{jj z068T}oXtppPKDh_#9b9538g@Fj9E<%1YoVn4#Y+uf zuO*DS;7Oj1-J*_c33OIm(h?1NQ{th|GCU|HQ!w^Cns2=cI2iW$_;^_bhsy%6?k#|W zOq(u@deGrakZl)9%UZ#>W`cIRoZSB@{ebWg(SwwtRA@+$n_$!jKjrVg|DJtY+DKbM zlZcW=9CSB;=yZ`_!!%A#T&9f;gfYVMbJ^@!5hZQCRW^GwVN0{y29Jj}19Z|5nu~y$ zql3XBLmfk-LMDfX4Q}$DZG6aN$IwCJ(l!Sr-#rlqk3W|>-kLVqmJw0X69pI~lX|t$ zsO0f*uq-Hr74H&7)nEW6w?eVe2#TjbL3sEqkYX>H3&Cp3U=j2B363X?bjZ*;sFCSl zbKvN~VROZY+sdJ>8qnce-VP=GBf!-aT^4z!+L+xl9?X;VtLdSM5Gp?aSBEF-C+hJD zSV|oW1BT*=h>x7&1{qOdVMQ6R7Y4|66g37nY)TWbarTmq0)_%7yCbfO%kHX@5t5R5 z7h~zdRb`@)2_;1!H{6Ejce>FO+!D9|6i;b}WQWTh;&K#aV^wnugvgQ1feLdXLZlv< zct=aPRK^uj)B+oTH6C6Bt1vuL*8ZW@hRR01NO0NRAufASYbZM%=5~ZhFVx*I6faWg z~LJe40>ET~6$6ak?CTB2Rs>fThpi|UY&pyXH`;(g zS{sqG;Iy`9q{u-HhT>2IB!wHWn$nG%z^hh<6}BSK;xO7nAR|@+TM=CD98)?#C_=bx zj*NtmjIhutIe^2{!$YgZhfL{+z9TBEeuiiu(gq#{slw<4K?4rAqYRg2TGJ_=AyCce z0yZtrfc4-IMY#Zq@-PB32J3SLj0Y|luA{g(sfCD;DP18SIVB%#{VCm$&>c+FlpbK? z>@ItlQGi~RP*)W}i@K;M;4dOwRp201k%tBjRxb!*R6BHEG>mi1f)mhQ@(@f&qFVH@ zlzKxgtaVr#eZc!GiOwH+yt0|Ii@cQzmc}w~QMXkV!G?}y4e@y4IPQdTgu*yt*R<7x$BePWtcQCIDYzB( zQo#@v8S0G;Q<2*!0$rkG>4*-4az!J}hLHuX(b=^`_Yjse#?$u3rDSej~jOH>4I;VM$9B6oQscdN)$ z6){Z5W=vD5d(4#S*o^5af9M$Sm@4OR ziApb}G#-<36~0{k(Da4iXzYhI>s8a ziPb9o5T&t+H7fEjMSy^g(ZM7^Qx&GcH8evH!C-Z~X|oFdR3I>s!MuwJE~ zFw^K5ZOrtOD*Y6t|GA_$sO(0{LfhyVx0vLoRr(n-jgB$MOm9-@XDN+ZH>=2V6oK~8 zF^Ww>g-UNR)94rvo9V48{XC_yy=^M;0!5N$y@Z6?}a0vIqAt12f5i zz-wlJ90eQOY;=gX?bW*odQ#5Fy3^z_Ojcp&jp2 zAkD9&rw^759Bu2pBT^%Eg~NE;%We{CvDL$LdWuiQINu69wzA`gw1jpn&6z$3h3WNV z=>eZooDXfBqUaC=@Swbdd$=E0VWVK0qVRq)yfJ`2cR~GqK#^ z?%?no1r(7Gncg@g^pPmx!D{0@FeTN(SaF!=V@QX2J^^dI578nZ!(-i`$k34c#x*^H z9V3J8W38ayXy`W{x`S53-O+OIDTDi2csiWk)+&aZofpVF-pCwjy@c^0P=#>}ZP7=v zZNZvB+c9*H^iBZWSn;(-MlItwb{6TN{Y;Fdl{5tL>e=HKZE=)Lf%wd6STgWvbMs`7 z52AP;!Z-vw2YorAuPHEgn6r{qz$t&)s__syF6F~u!4-XqorTb$i41iQ42?>Nv!~~Wx$KX`RdJNmGbs%m zB{!MAs|p<|Q$uepjt5W1UG{2&=&2Zv-3t!7aKI5X?!dyX?P&q* zaCi^FW}E<3r3O4GMv5624Gl3IbYg}y`x0pMdf6ZER3&(cz>n4Xb4NLZZOUgj*{8vv zx|+Dh*W^|oZTxD(XmD*7PuCWRXK9nX%4zH5R~tryYqNN|wm>{fo8$%32J?3kUR3>K z{(AV;h|%C0EuOA15YN&md4V+g9^1ZtwP7^4HjAfg3&gXuNnRjr{^t*FQhv@2j0V?e z@pO%Wc$P-V3#8F^{@_C5M;k_iYqNN|wm>{fo8$%32J?66#`QPeuSSdp*J$x{je&TU zM#&4J5uPyqd5%o-s}ZBYHCjAfV<4WTQSt(5^gYIR`_+cg;My#nt}PJH(k6M8)3(5` zHjD<>X7O}wfq0fS$*Y{U#eTJ6G`Kd4r)vwuv$RQG<+QEvs|};UwOKq}TOgjLP4X(I z4PK}Dxu#$=xHgNYYYW7)v`Jp&v~BaN4Wq%eSv*}^AfBa7@+zkdUKaV8H;e|?X7O}w zfq0fS$*Y{Uy?(V}G`Kd4r)vwuv$RQG<+Q!+R~tryYqNN|wm>{fo8(na8@w9wb4)QB zT${zywFTl?+9a=X+CKEF4Wq%eSv*}^AfBa7@+zn8Q@`3U8eE&j)3pWSS=uD8a@v0K zs|};UwOKq}TOgjLP4X(I?TTM*7!9t?;_2D~@hokUS2=B0{c6K#aBUV(*A|GE$jsM> zl2GS~#Iv+XUgfk^^Q#S`!L?aDU0WcYrA_iGr>&-6Z5R!%&Eo0W0`V+ul2{fo8(na+aSN%FdAH&#nZI~;#t}xuX5UM z_p1$~!L?aDU0WcYrA_iGr)_~>Z5R!%&Eo0W0`V+uk{3uDystE#-|(KzV}3PaG`L2K zr)vzvvouOxAdSB7**xJ_8%Bd`vv|6;Ks-yEB+Atbio5j<$1>#xSB(HMXzVoXMqrtUVJY8ELo~2FlDyQwDUu_r-uFc}<+5+(` zZITyA8(f3S@fr;KH8)<1x$yTI2cyBYT0C8AAfBaF@&ak~y%tyTs|};UwOKq}TOgjL zP4X(I&FNPgMuTg!c)GSgJWHG81=407TWxP1bK3jPYhAzEF&bRE#nZJ1;#t}yFOYU$ zZT0(DFZ5R!%&Eo0W0`V+u zl2Q)rQgF+AN-~EfCMrCV7?9 zR_s?BMuTg!c)GSgJWHG8RZd%}Uu_r-uFc}<+5+(`ZIV|xZSe6kKmV?S(cs!Fo~|tr z&(bD&mD6^wUu_r-uFc}<+5+(`ZIV|xZ43Qs!)S1A7Ejj}h-Yb&yvk`?>{lB`gKM*R zy0$<(OPl0XPTNwy+Atbio5j<$1>#xSB(HMX9`LITqrtUVJY8ELo~2FlDyMCgUu_r- zuFc}<+5+(`ZIV|xZIAlZhSA{KES|0{5YN&kd4aTbm%lqHN=Cphh0a_HD)9G&_1~jh z?^iEIgX^_;y52xMORwbpQ?IY4r~GQdXmCvyPuCQPXK9kWe`SzURnCezjsWxK@j&YYoJ+v`StOt)c2S z$-@HdDepUmAN`I2qrt~u@$@kS;#p&myg*~{)%KfTZ5R!%&Eo0W0`V+ul2ck3HP@nE{Lj*Jkl_ZGm`}Hp#1;wlKfiFdAH&#nZI~;#t}x zuX5UA{c6K#aBUV(*A|FpX_LIlX^Z!(4Wq%eSv*}^AfBa7@+zmThF@(M4X(}N>DmJE zENzlkIc>H5YQt!7Z5B`07KmqQlf24ltK(N2MuTg!c)GSgJWHG8RZd$yzuGVwT${zy zwFTl?+9WTKHn{(`zVZIs(62^}2G?lubd7;{mPW}7q|x`@1s}5Ya}CC5aBUV(*A|Fp zX_LIlY3u4&8%Bd`vv|6;Ks-yE zgKM*Ry0$<(OPl0XP8)oEgr9Q(qrtUVJY8ELo~2FlDyMC_Uu_r-uFc}<+5+(`ZITyA z8{8l6xbgk~U!34){xBL`qs7xT2I5&7B`=7^k?M7sAFT`gYQ<=9trkz$8i;3UmAoKY zNh8dwkLLd$@&740{!g2i|E->X&g1`=3wM3t z83fQB0`bA%2+t6(#^1mao}uW5XgeMNJUUw})RZa~UA5v?SEZ36=jAPjT1HzpGQU*YKBxN8tfNwGJ zt>Dn`#|U>-$q}C65Tp@~Fta#8fwq1i3Yy$uHu(~gjtO_B@H7Y61`G>E)B;>;vn4pf z(+V>%osembF1(8`4}(0mhw;#y!2#egX#~e34!=_YkLOWHxogUOctS*aq$A`J<0~i) zsWvDg!~tIj@q>OmksEJv>!JwY;@->s=0+|KHBGqTTQa^z4gVbZbm2}Co(ASDH3Ua^ z8i6(7$io*;pynd@UYM%bZ|kw(sb!LZHQx2pn0QcYH(+hROk|-8s|MVr=w2na6}q@s zV5-1H{kZq){{vFi*oCJJ)?cUkwwBw@a&H2c4n=!#geM0xe^Px%bmhs>30+2uu?xDe z!a+bTy0GrS?Fuex!F?nihfp{U-nk6L;~+fwstET{SQG|D0$L@(VX~+jB$ePE=$@ta z3#@2Qbm6TE=(QKR$>jD%Hz9q&01PXH>MO1yAm;zdeqzcI0c61#3pz^@#^AYZvL@hT9*>1qUzL-x_aQbVy9jS8$CeYOx!*GaVG$f5+-pb3`?O*nq5nc&t%-~1Rwc3Dqw6I1M|A0d7Di+~zgDMf z2t2<=!$HGQ;odu{6{Z&J`PG~yeXrVsS!7AnULJg*JKnP8Dv7e(Xv>WO7dyngw?pq4 zBRd=@-0($q)kuCdq~d9+ZrB)=&$MtD=|{M8&EiYA1hH6ne!_v_x%D$R!t)ElngA~o z{0*#nhP#R`KEtI!YdAkSvRPP-?S$tV^01lTiT8&IuM_;!gntqI+k^~6r>R#W@cRXF zaoRB`?}16!oqrcKaQ2d^q4ieqgy+A|@?9Qv5_o|D|0o4RB|J}0A~0%M$+>zGfl<>+ z-m51O7}c#L+yLmTq&^TBiB@vHojntv7~^+2 z)}S>z+UHu1lb9s zPMfLEG3C{gY-&M?!gB_as0H_4EjSom3%tstBHVkm;ElpZ3%q2MTHwWy9li+?Phj=1 z26HS^a21Aw1D6Z+uqMxgd~*%Dy9f_F%iE16pg=ucz_Yye*a1)Sc-@5uc-bI4z9WW5 zcZuPpgxR-jd%U;pF~ZXhJJ#OUxC!ys<|9pe64w!9@^xt^bmc41&gf>)lyyN@-W%bo zsZBQzUAp+)E!@@Bt+)dQy|>~VK;D}G&W?PK1HVuIu6=5Odx4Qnoe_RZPa-hj4F>Z? z5q@2!0q-(6()J0rTX;N(N(L#4vN#!?b>>MxWLpeTle{1$9EYO|2#uV-qx4vdN{0u~fa#EBEI0rqyNcen`@q zUk(nfFyVpwh}}qo24F2bVCEmhJT`!03z%}4+ z3E-Efx?_ZAuUYe^RkIIk@ESn_k`EdO%(}P15uSrsf>#K7@2HD+-RHnp%VK4Q+!w(D z3P1WBuA)xh$?w*MuL;GPQVKW1He`U_q0{E@UF@Si50Y_c8enrAp=C$QFD{<8)aSf39 zJkSW*gkM&b@Av%<3A{4n-g{+60oIjSjqEx$2zLUQ@ITRoTZUW%t)abI)LwJp`AfBj zdvAMiZ_wI7c?NBJt7XeJ@c!0(Ifu+m84BFY7sOvv4pc#*2J4t>@FCS6?!E0D@of*!Mmds4u_1USGS9erh>uerspuZX6qd`U?q#r+g{L#V zXuunj`X>Py?Po@Xr@!fX=M9^nI$&f5AMDFpla>BRL_26p`BD}XO!@4K^{KeZ>46QSIyww z+YCHpYRw4GPDrYI`EFH@d+#$?y4fu~52{1E4oUKI@Ho13Xw7S;d5L=$Gjvl2jh*^; zhZpx8Jo$IT?#^zU*|=F|vn-ql_=`gDs+o1!0&_Bpv2C#5KLGsxr6uDg-vKXx87sAM zHZ~k$1NyVm@TQs*V)eQX=!W;8i-1cT0PZxgXe1WHkASbBzPa|xVPWtv%6{j~@Qo(y z9gaF{1`dd0Yi*1TgThe|`x>@Gu%$X^KH2Ty;|68;edX*c*ib6A0pCGQe}4^1)t``i z$c=GC&o@ZPaj=|*Xvfumze5b0or7`SAhnT$MKv_C9c)Siw3%dklKp_}%=#Fgn0GD1 z!Rpmd$q8rK9U2uzv&@#;;Y+k_>DMx1+3hWNHjiaL<)JOeM|&)GXLAR8Ec;qU0-HPF z-n=9>4=fC~)4h4oY+WI8FDGBisKu7G|E+0V_Hf5d?gp%O`?I_*bGJwT%NA#O8f(vX z3kM5nxw&6s*1rCVmQC4N(BFbJXqe%y#a7lw?)3)0HEqMr+cVs4*j+6%+z!^R>a~oz zY$IfAu_VaWVgso1JopawLne-83Mj9|9-zqk^)uXc*)FJYFgL?&w?=61ApaMrZ@}K| zijg@D(Vy6!YG8B@HX3X+i|oAJh-H0X9zbmt#@8B~`#D%kcA;Y|y9MUN!KTJxd`o|v zlM(6n<~i6)5NXd|fZ6E8YC;Rqth0N&k;j$-w*l(~v(bQEgn4kVRn(VVb!gU;Vt zU~Au}Ud!mtc14bdzlrot#|$?fZ}{4A_`!9JD{_1DWqDa%^ln!~Rp3wP%;8RUDfh{o zELb^psIq!vM7057?yo{bb(lfuK|=Llb};vgLXC;{W}8;I4mjVj7bklHP&lAwguVh4 z4X6d7XK!ki8w;p4q229TPaXAcv*mY6G{PI3qbt{J=?NXZW}-Y2(^Y*+5;Ly zXg=^d0lJ0IL})V)&=5i!+qTN>4rmym&p>rAKqCl^g0id~r#z1Zfpaq2H!5HoXw207Q$UOjPDWTPn zTMg(wLN5Y(1kiFqU7^i&fF2}t8piM>pw)yXz;VE%vWC!qVMI>@dX!Kupv{2R5lRN$ zRzOb>`WSk65zteFzJwlL2J|$czo5-m06j}+AGGp1pyyzOPBxu=3F|tQZDD1A^6Gq< zlVWSa4nV7nErT3mP1r%kQ=DvMk7$+%x%UX&S2Y?|cout~(5NItE#Y4tv2r(|w(Ju^ zqZ8rU%saDFghT>Xc440pN`f}CSONQz&>*Vp$G#!d4Nw;R&CRofE)g2U&J#KdJ*4p4 z*hNAgQhy`a_k@NeN3&!;f&D~i74Z?LX+9AjMri8K$B>;8`j6~gr*bnAc8SW zpvrp{>eC3dEM$LCWuL~#Tfzj#%7f5f7Asfi9yg)~n1f>v%QLZZ0}Cg#i+Gz60dGFF zxmD#Jq}&TEnsOWA+Ly&%RcJC*zRqH)mAk0&O_o5F`)gq3enik;8|v>MOQKv-EzBKO zsDx(e16GSFLus_fSY4`oDi$k0R%k*Bq7$qE<(`f~^fOB%w38}-WsM0PZjZTZtSO<` zd_>n-3qr$)=iqG!O?P50jJGFrq8_3s-igpa8m*J(5xPh#E1q{Jbc~LBBJV}$Ng6{f z-j7gs8hd{}kWdTC4dk~FT0v+qA4cdTwKDi`rP2t7h=uHzF3 zeM7xJ$%_c>pjHm^DKvwR(F}gbr&6v3RUTL9e03b(3GSg>I~w0<#bbZ<#1n*?P!A2n zMnYc_a*JmPjU?1hY#}s@&;aoQp$pJvrnpVKL}(#s$zo%~%Y=TV%5mZqLXXj0PZF;a zs+W$HMPeVJGYt{lDc+{Bm%z;LW_O9hgyLX6ce81TU_K3MWrjjk1@dNz_o?!6s+=p1 zQDrq+*Yg#MYmSwR#3z&+NW3ND6rq>sNSBK*2(2dcp!k~F%!TLB-E6fuN4Yk1Y#&zW z3Zb>)JIc)_-V@>nLbYk^8^q6qoHQ@n#IMw*i;nG1@jK}~Nkq2bWVB5_#Q1kOYaIJPUr2f|M1Z|dQws6wa;9Q z&_TMI*0r@DG#hwlMXIe0p(RvV-`1AU*D%^FX4pCqI!?K^w$6l{S(wYWbtQCw)>$uG z4;s-0nzR14-jwUo2`dLGG?|X{2wQ*3^`XgB4K+wLQjKsrCM-B0LmYV#A@azZy# znjN|6dFOTT(CVtxgFHXceY0fT_9!O+tw25OS~U!j}cl% zxl6Wngu*HJlkIUran$C|w)KQ=r#64FJwfPWI%1b?PZH`)tNeG{QJpTvu@Z>HP?>LJ?x z9HB`xBA2~_&;>evvGy&53Mm(B-%98Mm3y904^my#zKzg3)Mi!t3xvjyva0qM30?*+-7PeMWHs?czvm7f0-&zQe|WND}?@_bF+m)4QT8) zDKwr?XN5ke%5Dn%Nv(`iXgXC+QfM*d79fK2b{mahxyofyZl(QI$~7XLs})*9t8R^b z59LnMnt0Uy8lj_w$RYbdLYruXylX!s z@STNzAvp6#?C*$yWt+10g>tqr`ZB!BHYOVVl$d>?Em%i!+17%cHpM*nOdPc0PA1{A0oa*HF8I%@7}jI@ogCKCpLo zK)awJ+CBZz-rqc@ii3>^#Tod~egY!(U=$AaX4E0D@8o>$jo-?@g2*JY-^63hDYDlX z`a@i3-_OQ*lkGU1XCd-IbBqs6MSC>?ZBma5V7IqGe?-;+uy(EYdtl}r?2SCMCt;o) zEI$n`a?O^n#$e0ek(K>!&PQ!}@4v-i%Wqdf+tY?)X-oEc_7C8<%KydNnjj_blbu36 z>Z6-eh`qm;i}pDA@%7PPO5=J1BBrX2c8p)nxay7ESK|+eq&iSTDz(3tZ0~MZxjB)A zIoR){Fel#Ij-#8v74ntw2iP||qCE<}L&cxvENoyI{3a3Do5|lo_6kMdZ)`xDr(gxb zsHrbG^Pj`fH+8P)Uj=GBhWCi8mfwuRcw1U0XR@({!{p03X`Y%>#cV;Y4Y^J_<%I*Q z3&&NY&s*Odob!=n*Tlp?jU4-}r0rPuFsT2G){HzZ@)*U?G3pI-qWV(WoJKf|w`LUD z2kdAg$iD-uIWrDt48*IZqjiIYzoFhg9<0BS#zRfLs%Sgqq3y!ao{C5N4cWad&_C84 z?Z_N#=Yu>P(Jrv&Jgn$nJwW@_ffd3rTPM2~*dMI^f&3 zu)ozC0QNDuG9<^}0=^UaGPNzH_5U#059vxPuNZO^xc1D-Ii&M@ZCp~b9G$H_YLlar znx)!6?aLK=0j_>#`v>TJzmI0%7VypZa)B)m>3Ewt=jy76T)39fJwj@hN3AE#4_*Px z7T$y!_*VrwFK$l9v*X6m$+6(tFlRV~>YGvh{^}TyrYoV-g=?=H*=Mpx!+h?bGgOYf zv?f-5K(>smyBS6X0JQ5n z%?2CU2Q#+g!c2HMqW|n(fVKeFolg4YT8gK&bcNwJ{Qw~n@c z7EudTX;u^HO52&{_8C%Wrz`myy5mS~QtewE)_Z%AE9xbhrFHpu6gH7RgZvV*JITg& z!)z8^*+xa+JTQvXq1g_l_!aUmQGF=+i^zX24C{ZQmOrNWDT-g9_$i9NMDhI;KTPpq z)aFyvR}1QE7}a#4cp1fOQoJ3+&6W8$-4{;L{Yzfwr&0aeR6nU3Dk-COexz&lV5*-+ z_B^qs&{=tzY(tvcESlTrss5RGTDMdW&neK_B(g7(eH*N)MBWADQPa=*hv=wTaR&<@ zfa~yfC)&AmXJ1D>{*{dFmlmQun2K2k9oa)PqRzBdOZ#JdDftt~zlZ$QRR03qoyXFZ zu#{R`ABn9!N7)mUT}Z8cLGx3e{NCh;(G_wj%|i=X)$540k68Mwu1m*R-A~%A88+wP zTJqDdwp$ZRUN_`DcXZ9?AU@T)s;GO%3+Ye8z2p8|WSyXSmd_+x;2LhWDcg~AxEPLz z8NZk2c0H&yBhS)^VrfnuA^&$8ojz(gKYM6&Ka1l_T#mzjxjS<9fL1OJINRiu1OFR{LjZ=r5u~bym4InX|;St_7}2pr1IK+W4(-L(VFp} zHTxPvqrjOlBPVI)KTj)Pa--tk0OgIK(yWnp4LO#9bWG(_R;&E|P?;S64p@1;m9Gfe z)B2J35&ce7wdMOzDenSuPUL+--XrwmxSCqH@m?UW|374X1nrc&Pk@!z^Z6Y=2VXuj z$m@I=y(;-O?;D8AtG&JkZoKm2N`w2CHZ%XbCv6973YyIslWWg(Am23n-s`V5eugo!#=n7WUiG>eS1a=k z_A{);W&NQ>MVR;vBG)om#JJ_<=2(anRonR-6s%BQT&{$y2$8;}# zR6FaBXInGyjrK&en#SIQ>^8cl4K;8EcG9!fYG}vo{W8@Yj!*hWj{{gz_`tH~z`}Z? zBfDE`U*2cyRKqsqGXSnYv(0Rp^W|E7ZcD6ug4&r(+3w^&Pp`=4R>iEmS~j3_O1?&G zPyTtZX3O%aL*DP?E50U;k^5oO+Nkq}t3*=$+AxZuILtOm!YgewUH9;5$81wSfA!a! z^66-F%~asx)f-k+2Yjjzbgh=>rggQ4=VzZ+uh@coEhhEjczreO&S?aFo$A{JtfyLY zu;1cULal*=&6~qmhV;O=mSs`#Z6NZWxDH@<=X3#ks&Dsy)W|zXYJ4Av>sOWPbp3Bb zcMAC$a421+lj8?KrM!BScD}`28_eY%4)Jn$6$!5qXeRsSjE2YuF!S(xM&!R_9R+rC z8fHJv8*8?p#?lQU1IxbdI2N+*$#6==ZzVXl1@eYw}iLyadFXlRE?A`|ORiPxm9iPX4O%e$Pa1u0UK!YH zS=idQ^r|ogp6bmSId=W^f_$YQpX;pl;ngKQb<5XB@@Zdx)|Kald`&Tj?xYSnj`uX3 z1T&0J<7SVQSqX9_%cGyrz64sho{g^x<*Ng|HS1dHVDbtq-%%N;&BL|isnCLak}1xb z0e+*bIsaG>@A9dz9zFmI?H@kd9_wz+ z>SOf!?rnM+d5XC5?y1+TqdUTP(3a?L3pc3gTOcC0}hxU&i%_jQgJ5j{tXc?Bifdv@6Wws*l4cWpcxPMzoU6r*Ba%<$Jj}_BFY9cHcznQ^w_cZt`46X#XszYBbAZkg{4AWLsYwy*2adrZ!L4eEDw#yOmjvJd=I+I&j=^2uDDeX?I!^Ap{z z?7dI6+4yIRpVYCLPYjEwDu?9Z|?b-HzHq^ z%l9Q-=z#P52+i{}x;xCF`5#UGX!4KtJp)|HdZW=f@GFe}f?d=364*!ReYr{6su)2} zn8kGE?3DK_)X002##LwK{K8*hMBk=kjnw>{#=WuqNzOl@a!4MFaIiL=tAHKa4WDe~ z3M_#8GTiYyMnHUNq7&>JjjDnrwW`M{Y0ij&Wj{7VyO?}oV5L5aI-Qaraxggs?AmJe z!JcfA2KJA}O~5wD%mzC?vo+Yy8@C7hXOqrgr)TDaUEHK+gzuH7uSkQwzKlWpaW2|> z+M~U|&~Bt`)pTfIDeNnnK>W)Xv>)f9y{A3e3k>Z>$eNW?^0FZ^q$=9d7_?)_4(I_2 zRclW*Y7O!9IJ8S*(4I&|yF3f@tC}k}wTH-PH`?84Xus=@_D`~Z80Z)FN4ud9+SVCp zU+#x?X&l-<6nV5g`rTsDc8)?@pX@zd&_B=_?G&nvq)0=uoyh)8b}iXA$kxck`XS_> zA?``i^9@Blgx*d4!wWk@Wn>4mjl06JP~&P=Gan+?^Uz*vk2bFmZ9-SHQT@@zN1@$G zwkFw&RN0?u8k1#IIh?qW9k4#1A~}>@YR5=2MKZ`<%)m%^I@){57Jw2{RcLlkh%au2 z_9wEplAT1h2iecazCm_9SX|Hjz&=B-gWhO#Gx++d9+rk#xrTS=3;|!>JLYx9vpa>( z&1bSlLR`OIY3HMAd2!(#P$PR8+ zE}>V-cjQikhqsQ zJ$@O3_MY}=Kh8zFk>VE^#T%kcPDkq@yQUxd8~USt7_6x+hptZgY~Y=`PYQ#dd7nOEI<}G^C#sexE!>p}IYui-=&=6w2Rh-K5g=(UJ=wnm|@0}ez~V}}$n222o%?21Bd2P_oT=|eS)tw8h;8imTtp4_ju*WT=&Tog6p_sG>QO6fbKJ>@TI^1RYIIy7 zYO&>nR`kq*F?-)z**UT?`&6rJ!p>-w zP1yI|%I=X(*soe;Ci`2f%!Gem!CAtY=o^{I5(&vU%VHh8xj~WeTXb5kDJ$~kZi{Tn zrfIomY>qcKCbAh@OlTe*qinWRAsl-)Tjs5t6q(Id6Oz3*XOAm{mCad&x3V;{IeST~ zY{6dFDqFC3y_KHG7VNlI*^+(k&D|T>lAY6Xt=Ny=+~UYq?5dW7Pk!KsK53SgN493+ zgrv?kEKVWR*@h*1D<6t%!|H35ZCPWjvMp=rty~w`mgQ)b?N~Q&ZewIS)=$gb#BTNG zDk5)UqqJOm_JBgDr9FGxTe&^5J=>&Jc3>}Pl^xhC-pW@ZJFvI3${cpYn|m`dhkdN& zI!(%bvD>_r|BcLJW3|ez>`rg)=g6*Xx|Yjl zbG^B1k@>7#%XMR`6hbZC*puE$7S)YCr&V@mJG{A&sP61FE!Ts+tq``-gMH+!jE?HT zPHU9~>|3p}fc@;PtQu9o{?ICW!si&xwVNE(lSL7dYqu9mPzd|$#p-!0>qYfqZmqI6 zYpzxHW}Up1X;Hmd53RBfEA-~FqWZ8Qgyh-Zmkm=0`|Hbwdn;Q-^=0D-NoD<5i9%S} zkInX0c8Kc77HO6J*$S<)KU?Rm%!}&Jp3y1`**0&kXH+5Et>p%=eF|ZJ1K0=N%EG7t z?1WZ1kbR|94rD)gD{qY&$bQo*Z)R|DhaX(mBcpC+VT9!P2C-N|t3%gzZD}9Gsw?z- z*KtvUSRI8znm%J6%nXIpa??e z_{!RL`w$jKXb#(6yAPmbm1|n(QTtGqs&bv{3t`{CLHX4^F073Soca z*gQhAzwvC7#+$&l`Ji2jhrLf=mlVQQCNcv*;ty*HRZn6Cgk`%^F2^&jD_CAG`6Oz4`vX!b5d8O=##=DEzTUe^^ zW(Fb2o60hMP%A=m3{zRLLO6zLY!e~b`#tQ4#+%NL`=HZ`hgzny_?FffJgk6_Y-I*3 zCM31YWYbh7@@BGa8gCXmukmIxcocyj$tz>=grw>+R-h27p2Ox5lKtJwHfg-MY@5cL z%g$@Oc`SuKH!gYeSr(o2L-=w~+18c#GH>jklPc*LaIrN*illmasvD zWPeN93_`NMayCy@;=GizJsNKryR7l)=!AvIpd?W1|#8osYA% z8gD(@tMQ&-hcw<3jJ`@kotsaxR`|slYF?gVLkP+KHn35I!J|q+{tDTlH=RO)@!`oY?H>@&CY1NS6E^fY*X@H zW$g&b{`Rmggk*nv*bIfRzt`9fjrTe`q4C~eXEfd$ERnu$N6yP$)`yVn?@d-pNcOjn z%}|v%FZ}k!*e^?hnQs;R#mXPf40xMRPIKB&Plg9gwozZyzW%gd!rsQ2@ zkv=Hi2PG4dW4Oo)6~Zxm&&ml&EkCer8t+H8OXK~>E@`|=%;;^+*-xy1kks-sDoNm7Udi*I062Yka@6971w@f3SQ)vcErAnL^m#b+$|6{mD*iyua94jrSKz?uR|d zGyHE>NJ#2rd>SFyALnJN64wOhyELBQmo%P@$M?5p$Jj}zohY^_*IP; z#WM$3vlPw85|XN8csU{2pOddtm8jFnk7zs>w-2;*#&Uy@zyT~BU*1R;}`Glm-hI}F+*`L8nRVB`g!7DUgBYsxnrSZ^Pu}#TK z=T1UWXFAVU2z9!786nwU2H&9Z8uJPtv{&)4_s0CHLfA?Zo;k#trA%H(NcNY-%N4@P zrhLCv*^HkjBz0!l&{$PZ?&- zOB-$wk~-V);R>P7wtNjC*tGF_PiY-*-8gKoRCzV z!^irdVjnb(kW`k#w<(0mI`Z>`WSgCM0M>Sp^KcVsRxN`)9A2}0Uc|IY@%jXjb$(iWJOI0P#U^iZ&@w)S~8m|Wr z9f@s9UIBL!k~#}`zCx(8Codx;`|HIwXuRIMLgV%3XEk0Qo_ss@AbEXx4k6iJKb}uW z_ScV>DTMv?=esmsAwRA02Jo{QZvamog+0i58ORF>$^LHU(+J7_2JtdgiSsgu@6vdK z`6Z2a3y&X-ZA#v)JeiQxc`Gke2z3tO<%DE^L-{t1H;nJnc*FQ5jdvS2#$XSUH=Gv` zlKqX~g@j~(BY3$&*xyLLU*p}*&uhF<{E`p4s(3isQ9Sbw>`%_pXg-#Z?0pO`CnS5n zgRfMT$h(6d(RgFIeXON=95)C_-gur#NU9#s$0~%XC-C(eZzA8X@h0&j8gCM}kF#`6 z=Isbcoke^&A=zIsAFC=+XE9%|@$Td&G+qh6uJNXD`*_&{@}}^13Zc$YUP?&zcNbqn zNcML(U$61*<|j1XRPLN$&C4{NO-S|nS+y|}kLF;|cCLgrT2kr7fdwtL$A9U0Qo$x_te9(Cxbjb%@^+Bx2I)00Is1I`b zphO>(;)4tyl<9+7`Jfyhl<$N3_@F^PXt)m=>w}7Y&@>-Z=7SdbpyfVjjSpJygEsk~ zZ9Zt158CU44*8&?KInuGI^%=R`=Coc=&BEbFCg@ue{lSKkkbbx`k)jaWcZ*=AJobR z<@lg{AJoSO4e~+5eb87RRP2MM`Jgf%w8#f7_d#oX(0W4hIpHQ7 zXA_dwiKV=q59;EB3VcwZ4;tcwM){zLKB&|O&G13r)s+@nS(5R#*qL%T`6uOkSDe696r37bbHS5#p`KbGOq(YvAm!p>R z*$TOJi>Tq4|w$(U0;r3Z+*Mk6z2$ zD|9u<75y0Rq>vN7ylfr6S)s3!YezrM%N6Qgqe1j~zFeWCS{cz#@bwCnBxOfG$v;-; zso1vBPw~?V9c=wO|S5>HXjXu#&^Xg_U>E`HXc&b86st=3a#0`b6 zR39DvEO#r^ruxL_%{)_~sQ4+-&+%-9n$(ycUBL?#`m)BH=q>!{U9$I)H5Ns0Xduxm%(0)lWyi!ZQ`B zo%Bugt9*h&{gS_n-ovLU^iASV(Xa8BrpewPsc|*>b-r7n9aaC1euJM>s70b9W-tF- zp|eR*F>mto3VoOqAG42NRA^XojhMIiZzhVV8?&GPq0q6!MllCCd`T<(tY#;xX2!hD zlc!6xBB^D}K|WWZ7D?@64)KKwwKH;K-r?m6%}*|fIn0wilJ{g%|Co3Ap&1gbO1LHF z2yZe|qGu9D#JtA~6%q+!W8UXe6iVt*6a$~VQD{QK-7!b`3=^fyjQNlcpCwy4QEy(% zF}_Nnr(>4Je8eACXlLvLF~|913LS3$aLmX2358IvjJFmnrmn=MQ5(=SLKJxaoX-0G%s2cUg{mbA z=UIM1p{#^3=eNB29LXDA&FMVHyD3y7xtjAoyilRPtJQLz=Ytfgl3d?;fsazCT7uj8 z9Y3y6tK??R|ME);6;x~EyvT>&D|^_R*wOhtAE{86qifyI#6}9^Do{-A!pVL&cAuSLeV{U!7ob}c+o;97kw0(RQnC55QPer z_j%iC6N40T)_c!s7ef>p*6X;likPa8R^2A9Sdprb=+(j%Cq|mNf}33NV!lF4YISi{6{{5b zyr73GK|HHa+uHqH)x>UvQu_>cC5qP+nptfmD`RYqG0`$W-Xg zg1cPFqK`sHYRz!f6om@C)O)V0mYAYYMBOE>+G46g@dYbf@Wf&sSXy#N!GXDf?Uv#q$dFD0s(Z zi0uk(taa4YNbFQ7qxYw-H1VoJv+8`|N*8Y^^kT1XU2gG~LYGr6x-!H;g+}!L#no86 ztI&=*zq^`<&lI}QlgDO?|0>isB{VimI2OtoT-Gxtwy8)^C_E)0wwY+4P+aetvDqR` zq1)@E#x@u26#BSNdTa}^T%q3en#Q&i2TWey*0HU`8HMhzmlNAs7>i_oPxj~<+eQpk z=uFLCv2Dc&g)a3O5Zg|aEA)DgA+a}!BMSXl^Y+;G;;2Fs>Wz=>AgV5wZBFWWXKaqB zuh50s(_%Y{MhX@7oE_UqWGeJQ?FF%&g-4+teV4^{5wjI~r{2ogTrpRnF?}A5%@YqQ zbfNB(v0cSO3T5726f+miS|AKe1Dx zfyS?~{l%*a4etAAY@yhzkS*07H$YrbsC(~-xPc;Zsnof)PHf!GVyHro_O2c`NDNo# zQk|5z!Q!|=M|(AlyG8t{(5&8#<8BqdD0Hk&^SB}6H-%>OXcsqBTvKRM&CYT7wA2q-oz*Y{>yyFS*g>%V+O%povwXAu`*>vOcC8&FpOUt1 zV1@Dp3kK?})IRpRB#=k4!-<9z1S@7>!@PFS~@C`gEarUqMcLx5Qfq!S<|BV@F z!}h_4As&N|D?G+>VCw{1XV`LK%Y!W+w(hX?fUOs7ymgY7=p?uTtTY!AY=61LT_ zJp|ht*dB)M5!lwkhX1XD?Qz)F!}cU>8(@0|wym%|58F1_UW9EsY&&3k3AUGE+X>q) z*mlGADr|dTdkwbNVS59%H(}cc+gq^hhwW|H4#D;=Y>E6a`0j;K9pKyR!8%xVu;K8@ z`%xX>Z+wt#O|~Q1Ze;tC9ZYr{SO;_QQ62h=>R{n}tid{2Bl5Gz_9Z)*;v>Kg7URI) zM%KwN4u3h4>>RL8wwUY+ieL+}<~A{c`g(%rJ14+jPKs|_41XiZomvWi4auEaCU)~d zaSO$r>|AO&*jV@ugm?I8_K^6HT6l*KVH?Fs@}JgNdH&7N!m`am|9-UZXNJ3 z_@f7$5-T8bM*IX{`TrmAjeb7}c*mLjF5vS&9hhweJ14?yEBUEB_)7;YC%?We4F2Lz zx@|2*Tp|@d75M}okXL9!JH%F9)EzL=_7z{!bSEfJf^UbYBXGucLu-?4Xs6gdWC!DB z*|H!G-|z~5jCBD-y1{p7yu(_xTy8rFHG{=hVBvGiRPz;EV?1rUK#`wd)LWpYfw9vz zf<9aMEPE)nSbW95X}?okgBmA0$uf<1ZIR#~1B;(TjVC{z{1MQmlOyt`m&w0Q{&n*0u=bAG>>Ou4lKe>W9uACErcH zoBV9@v&nBqemnBJkl%&;0`d#UFC@Q^{2}BIA%7J4qsX5~{zURi$uA{;2Kh6{ui*H% zB`P@nZHWqwe}4kcrv9RWKDj)O)=ve;zcW$6@$XDjaQu981;R-p}#V)fLps2o_nRv;9MMvM?Va_$lZLj-Pj~;P~m~3XY#euHg9h zDvm(!=;L3osNned>jY)_%jW2 zzrGqVG-N6oGDK%fSw3JHd`(N5PI| z7r;(r2_d1Zm~{kO3N{+>l1QG?vXIJBRFiu%YY>*|XdY{&}7S_7X)d zQ{*Z|uJaZUXQC}wyT}3S7RX&mc8x&pT7lg40xLIAWd&uoQFaGq4^iX@MUGPBIMtt^ z`qR|%8IcPuoE6={o)^8rhT5>NNE`N&LVhaw1?2Z3KR*O(3PP|ZITZbrQ1nwnQI!#j zs!oJq{B#(`&ys(h{EJ~&;|#~_5VFI=vE~f7{5gRW%Bz(VZ1O3<9o^9 zPyV4OZ1YGI_Ior6=k0hD&fAG799>~FvIa#XYe+O!4v)slH8B`p8-wxnF&IyEV#IJ_ zq?r6t@~1g5JHv^rJrv(d@%`#tW&eos^78LB)>mFKDQB2`|Z%Bxg! zoobj1d$GH)mrxhB=5(Q+co*tPq--)}Qz&at)=k+=%4Sox6=mDGP)Uvpm2`38@y&PP z@hxx_g6-oP47SiU4D2A+?O=zv#)2L0ngn)~s|4&=*Ho|*T{FNIyXJr`bu9op&9xNl z4A*k7Wv*3V=eZsMyU6u8*mBnfu*+S~f?es_3U-ZaJJ_|ZU0~O{UIV*{lvj}QZKVAF zYwvBK<2ujt!0!$Ka`*?4LsFvn3uq{bwke2|s9#eOh8G|S@dpqAQj$%J7~Hu4Mg(TY zGXn~+U*FcSN{dnBt1sFAGDJ`q(}!z)1=d+71B$j^Q4`IgqR{7 zBu$e}lU7JCkZZ2p%Jbw)>Td9#Rh^)Y`h~U{r8P=xD@9s^ z^xJJNahJGD+$G)=e?hHo7kWRa_}mm1pPO*8>~8SlHc325JV`uBJcS21d*ddhCZ#5& zCZ!f}i?~JHBJL1(h&#j`;#J~R;#J~R;x*zm;x*zm;x6L+WV=hLOQ}n#OKH=p7gV)f z=#!vK*D9uK71Onf=^~yao+O?mo?0b2Z&GSfYEo)anqDQTwkWkIwJ5bHb%;CUtK_TX zYvgOxuTj57+$HW3cZs{in^rTqMgMRK*IB1x%9+$3%iH;G%sE%FX| zhkTWMmHJicSBck%*T`RCh%OPAnl3e6N}JX&ZflsIYnY#F7|%75Z%Im%L`?D~HBD-o z#4X|$d56419fvv&@hb5u@hb5u@ylx@H)@pDh`8ikYP!^Pfp=nR%XqG3Jl8UwYgz8Z zlf;w6lfXOMOyVYSlekITB5o14h+D)R;tp|#xI?^3yh^-EybAo=Z8hRG;x*zm>bt~U z;x2KQcoV(^gZ7B;te`!vWBk`K{=}2Slf;w6Q|s6sDK#lIDK#mzh+D)h;ui7Bx~f{c zN$4Y_&uwz3=}^<5rbEp+`d_8AN@g0N+bUn+9c#?RMc#^nD+$3%iH;G%sE#ek&i?~DFA?^@& zh*ybMiC2kNiC@OEPxJ$QW*93^y`{8`(ODCy6JCCxN4N5I2dN#7*KBaSQy*Nr${c9fvv& zb*jXx#H+-s#B0QB#B0QB#9iVpahJGDylE5Tyoqt%#5iwaJtv+dpW5_`s4eEE7u5Sn zp$B&h{S2tMHR;x*Ta)_fO;REjr52?Yr52?Qafi4=+#z12pH)h$lvXLNQd%QkBVHq3 zBksc0H+BpCOVWKe3qMZ!3aG@;r7M@NT)Jx7Ec!zC-7It*l=-lk`LLP!u$lQlJV`uB zJW1RnZj!giThy_rV-a_VJH#F04)IHyC4Z`vRw=DgTBUTJ(i){TN^6wXC|#h`rPQU= zrPQTVT`xWxq)pc|Mb|S$*E2=evo;b>f=3M`Z&Jskj!E1iZV|VLTf`mW4snOLL%d47 zO1w(EO1wtAM!ZJ6M%*Rt5_gHa#G7tloNr*9Z(y8nU@6@2g8Kf=NlKHHCMiu)Y7#ez zo5W4x7IBNXMcg9p5O;_>#2w;uH?UkNtx{U0v`T4>c#U|Cc#XJA+$HW3cZnNY#J8p` zOwksmf_!p|q%OHdQkNud5;uvP#7*KBaf`S`+#>D}cZfU09pY8uRq!t-FEjKSks38? z)T~j{CGHY;iMzl%+uSX(wraYOalVnIa3f3MMu~sZjen-L-;$&>NokVOB&3)F+$e5M zN=-^lN=-^lN-at)N-at)N-at&H(pe4ZE~pNP{*N;Lmh`YbJVF)r%IhFb*j{X_6qsbf;dq>f3QLF!o4v8ZEF$D)o!9fwkfQioE9Qiswi zrBzC+lvXLNQaVrnYt*Sxr$(I`b!yaEpw1Oimzpj$U23}2bg9|2jd`+-b(?&08|(Hq z)@|UZ728-VC^acHDK#lIDIMGbTT#spC>dZD)(#&Qxz_P1w$wfQLG$3EL&5NlKHH zCMiu)nxxdE)TGp;)TGp;)S}d))S}d))S`5np*z%ZsN+z_p^ihHOVp`Sr%IhFb*j{< zQl~~~jnW#WHA-ugUfF(8t=Q~R$EA)-9hW*Tb<_^Y2V=)Y)xNoD2XkWwb7Kc{V+V6% zhvY^ZHQS+i|K=n$lhjO7GfB-PHB&pjt_C-o)G?`JQpco@Ngaz)i&BeHi&BeHhf;@9 zhf;@9htf-oNtHTP>Qt#yrB0PP^VF$Pr$(I`b!yb9QOBj!rPQU=rPQUgX(w}ICv#&b zb7LoSV<&rwo$Mv3lcY|PI!WpzsnbavlR74KOzN1_F{v|19g8{^bu8*w)Ul}JQ0h?X zQ0h?XP&!8+s?@1cr%IhFb*j{vr%sJJHR{x;Q=?9eIt$csspC?|rH)G-mpaBSwwhhc znO*EF$R~HPuh_-D0yz4LU6Ms&)LEd8OC6UwE_Gb$xYTKCW7^wTE818q z+E^>v*ke$dq%=uslF}rloo$kPCUs2enA9<;V^U|3Iu>;->R8mVsAEybq12(&q12(& zp>&QuRH;*?PL(=U>Qt#SPn{ZdYSgJwr$(I`brz`OQpcr^OC6UwE_IA{)`xcHNjvkT zoq5vEJZWd1P?`kt?Y2(pn?y|No76X{Z&H7dIu>;->R8mVsAEy5LLG-X4s{&rIMi{d zQ>C;@X_e9{rBzDj>BHsri>kD_M$H;EYt*b!vqsGYYF;6Asp(SFrKU?wmzqsCF&}PX zKHyn1_M&fMKHS87pfpKolF}rlNlH6!V%?yQNgb0qCUs2e3{odeYEjdorbSJQnie%3 zN*ziaN*ziaN~@GsDXmgkrL;=vJpHdxrw07nZ3{%Mkh;WOx^?N+rCXP7o080dBy%9i z97r+;lFR{0lR!`tl1wiVlgJljEV{Dj%AzZat{h4oN*ziaN*zk8lvXLN zQd*_7O6ffPuTiH)of>s&)TvQtfjTaATJXjw4yK5Fn*22RIr0nS zuaH-_Q~!4AlTVYMCO=1hf&3NnY9ICYQJ;L8{51JF@|VdkkgENnpWZL}m&nhNpC{jT zhe$g~D|h_1QrBN1KX-@d&y&A&r|8U)&XcwsU>rz0NiUJklNxu4+qS#tGiim$CGzv6 zmx&m6Q}b?WlBS4MNau+xkhb3=nw|HE<{)XB$Qut+be{Bbw@4SrcOIq= z={)HIY5NiBwFZxfbeiq(+ad;|9r3lP-{|heg^> zntHgZ?%E=>O!_s_?~@+5QSeWb{@RU$)So7;kY0Y6@gc8{F+QZ}V}ehUzf8J7s*W?< z9O>mj;%TAjv`AA!BYZ0J z6*aOgO}>)(BURoum$|5(*>;711%M-#I7lfuruaLGsMIWA$61+mbeNvFiq{fusb5nHn8PcaEl)1kn{1wvn&lCUr zMK!bYGUy9CjcFp&()#AeS1Q6^28DD+r0JQ9>Ki-TXQ??0KX=akoTTf@FI`mc?Mz)1 zy#2Y0s(DxCIqH8=XyuEpx@nit?5@j1u6*&LdSzGYmoKW{+m#0W!(A27gEAbfuPNC))cnQfx#q7nf2;Ygo42&Iwd`rR zx23nmYI&;V^DRH$asM{i>C?;~B?0g;nYpexdLrZcz2AwRoqn4(}9N@lN47yi-_@`<@%{P9cFCpBwQ` zVH4gdY{tFM>+w$E2E0?)qAa;_kKg>W)i%6S*p7D!J8&0tC*CRS!aIdFbzZgOR_IN5 zr;x-uh240ka5LU1+=6!sx2h6;ORtQ(`WMtk@lN4mxGTCB?-XvsJB1FsQ@9=P6!zhr z!hXC{xC8GL?!-HV19+!!7v3q{jdu$7;GM#~c&Bh5-YMLVcM2cJJB5RIr|9(LMPrSr0`DR5Z)=6c&E^X7X#gRr*IhW6prAX!cn|a=)pUMhw)C~7~Uxy$2)}+ zxUG5;?-Y8~*KzapRpiM3h8+1#)sJ@y19+!!8t)X&sNY8JypG)Y9rZZgDSQI&6h4V} z3TN?7;Zv%np1?bWb9kpPh<6HU^#_tuhJ_Cs{6+KJ-_pO$f&Xqf5JT&3LaSbhmU};1 zu2O$+($$!G4wdAfUg0KtN#GodbI!=Lps&~Uk8dC(y*;p|0ie+J<>Yh*MZ_rHf-zF ze*~3yT?c#vD1Mz4w)N^i<1dCDYXk6&pmFto!?s@iC1?!2*GAyigT~eWgZ^y2`mdld z^k$oZZvl;~{}=N0>aRg#=-qArz7;gC{s!{(>c^ll^i($ji5XjgG=av{SJ49+=tH&v zUtw$qz7jNs9%TpcS3u)xwXqZU8qm0EHQK;m2O3ui<0kMMLF4LrV>kF4K;vqwaSQlu zpmDX+*aLnSXk6W7d=z{VG_Gzj_JY3^G_F2sbb$XDXk2v|`@rK1uvoT%9yJ!S{m3 z)hXi;_jjNJz3VazfuAVXmz)yn4)n|<};GYJKtIr#cfu9DAE64Z*_*u}n`gy#Z zTCctU8drbUcmn+21C6V{Z{XMC)GvX?)fbH+@V^WiSO3V!fd3WHINm@Fga1{~xcZVY z3jWtXFm&PRce+3#>|Hk+X_&)$e>ocAP|A(MxamL>P|3{!`WyUo4KLL%a zKQ(5+{~2gp{d;2;{C@zAtN+9JpTN7Iar~Oz7r=iXG_L+H;}^ic3mRAd*?0#0Ux1>e z7=I7^UxK1_7|(+Lub^lV#xH^YYtXp*vGE*u6?+bROYE1yuK-1Tjy(_lI#AT-*gpin z5ft?~_9FNjKvAD#zXE<6DC%?U68K%9sL!!q1)l^(eU7~Z{#H=b=h&}-{}?FhbL`9D zZwEzvj{Q3LJ3&#OV=sfh2Q;oe9{UaO2SMZNq1Y?nJ3-^hjQun4U7&GwB=#zJd@Tw5 zvDj~dKMopKy|LH8_kqS$f9xCJ2SDTM(b((Y9|Mi6PsV;1{8`YrIv1MSLw!l;!~I%O{fayF8@G%Nqr4-h<~mASY1K? z^;fFJ*kJ51K4RQuq>K~BH~ypXL&J!zi`^Kz zIkrFcK&&VBo!FM915KSx|EcLmO{us`N{II_9#iO{LA-x%OZR4Bo6&pw z|J;^eKP0@t|1|n;%fqH{VYk0^m&OdO1nRaNPHC(TsUNoF@f9L*8`PV5P-DTk+`R<$ z9mXZ>_Dfz|g8u1W!3yiG`{?2@Zua6Abh{PbM~bHR>w6Ys|LG&zzo6T9mx$k!bSt|3 z>aPsZ?ngTj`=`_an&&*T?8(cXeA2T|!hTl$F!ls~L;eY6HchE)(}TwgcDW-}$aa|dT)CLG%B7Ao z`_;*bv9a{fm_4{(4WvuwVI0qv$}oD$_P9Bk&sz4tRKeb_#L0OmbgcWN>g&PZsot*B=0H#HN!349LIHL3^wy))gCD|uM5Vg>)j*e!{y@oh z52$1I)QNO1J;E&Lw?<)hoj%q#pt`!vQ;)+e6p^!5x&PQ{)t@@qb*T3-bs;@AVV^sv z&SXpJWj*N5S;eVB+0ICfQ~5&r(-St?zI>@nraX3mrai9Bj3{c0-XCrlu@Nch_BnwsUzX?#qX*{0oH7kE`ltlM?i}HkO?EXe9_MI+u+lg%sFH< zI*js^iDZrdE864v3-%)TR61L-qq;pO^X2UDR1^-i`~HG$Wrwp8hiC`T5G~acG^Ejd zs@IK%3K~ilwHif;?#XW8+0p=tDU2bTq{D3}>8{4}wE<`B;q=5<8Qn*qUulR7x(AZZ zxdGZ}*Vg$k=0`t_rY$Q!fxa;0yd1JkGG+N=NYtUiC!2D*0-<(9-t0}G30X?DB9LUQTmTV*|9Mgjch9v?Ls=6 zIg}nt=Pdh_J)X|yLJD4cJB(2?Uz~b0TOMsV&X)Sogrz~|$}-jlC5M?2%ZS4j@^~KI zM8mB#rkpi4fi}~V8_1V~vUC|eNuhjlV!WY`-Y8_xmb{8HApJ!{FT)Nph29l;hWgr& zV8AN{?O7dsPpLG4z9=`GZ>ZY!Iw7Mg2grtSJfC5Mld5$%D_ulG=J^R1Wy~_NR;eLE z&z>IZwWNq_6hcrUsb5lptVem+854iVeRvRXhN1nGU7jfBkb}stfW(UhyGN9$j5CdR zc+D=-DK_M&zU7I4epzCNtnWdmTta(An`kI!ORNE>{F>*LNkhTPBe{%%^ktT9O092* z(YH_JGUywNBlaQ8zanCc4G>&IJha$dF_142FLj8ajEiXKK(D4Db+?onM#*=1?Kqes zj$C#oHGcJ^M&;48E-jbDMkT3Jhopu2gDkr|yF4KEEvm{&xCoRIj)K7~Tr87P3*}H$ zWr<9Ts`!0i6c6@-QQ4SuBIpUDI0k9d@+C#O>x?=;5k{eOq`;ukJt_TAqj3G;8%QAF z1{h3%lt!w6Ne@P7EGXp3*~F z2)Cp|AA`e;jcE(I0>!=y<|w9*cE%fZB^(nYxAgN_gdCQ76^M{|4Q$54pm;r1!UmTY{JEI^fU_HdSUpAwGT?AFqI0?=)3I@Tv5qXMP8Y`(3mzLETUI8S(uWx# zde$Y~G8K!xJmJk*Wh|6V*<#&WtcS#Bi}{>PZWaqqP2{dBmyFT*k}oddye>Y9QeNzP zpy$W3Xt7+JBQqJmBIyKjS!aD3DNN-uNAoDEQ6Uy`>=4#=nEMuFzN^shUBXg4o6nmoB%*irc`i%iFLX^kHxyJ7e5{^nJsM=Ao^!?deW5; zD5jtCb5z^C?4?BtjZ6VmBR!_ELZO()9NyC&L0{>yx?HgM#MDTuP6RA)HJ&HzuON!F z*~MaBbI_1QwRU;|6B3ys(00Tw2W(dQ!iAtUWGgmYdDEjQdVvlDJ2{#!O^lDHg&&vs z7uHjfGw7BAw&ivJWO<@cla6OE*yP82Ce%ls39WHtZy>PbQH_<3Dtk*Fg_d2MqK}pY zA$vF{u)xF~1Qxb5OHyV&wnT&QMN&(VJ!~XCCUrB=M|4Y``?7lG`oOpsF7gNKZ@YUE z12EQ`egic*k-{J`hD{o8zJ*1rEWRUB`Z!(+LPt3{DiRR@yeJ?ONJap4*~?iiR~~dnTMcBW4J-LBzsTM z-3!Eii3OwI>G+ONA?X$hmp;+4Eqe$>)3HAp^*^x zeX@(P^@4CNV98&k=mPq{yk^7O7L-a$kf^`qL5ob>yY;Re?Xu`3!xbhu zB#0Xbv`B;-J(@orMmoAWyhMXgvM`lJjlUP=6^lZ}8N&R*pGVYpW<>WBc?kS?_l=6J zK$;V_u_Gp>iALdVmthdH&Lg-qVSklg2cEKrOj*qLPH+>AO59MYFP=i~yz=eIXtX{k z=y}sps!K^idkq1FOc7l|v2+{-jA1GuV6g`5k-2t2;#HFXB6B%!&K5wu3d$i`W+Rv+Dq3oi%A5kgk#sJ)(mFb~Y z@Y>yC#A}HmZ)A#qVK!fs$&{HcU^(k~T2OHXuRVvWWk7VH6I)X9y|BKsN*K8;S4a3ecd^NBU~tE8Xm!!RzsdEG&m zT~22;5?pOjMdtES%GzhYj6w;MbBwwQA}E{G=(AE|Bj|L>quObsFVj9*l9`QJD?t<$ z>OPiFbiP>bxBMlX4j0oC*uT*W00d6|>L(<$`8B378zdYU3~7%vEMlen7*;}_uXKPl zC$dZeT;w-rS424ik@IT`Er+}M^>z(ydY0CwbCd-l`}G`TDMz%iNmI%fY4e6x4(Hf< zM;x#Yl1iWv_FK9*H4sQ$5SBV63D8OwdV9^~Fe+i9?Jd91qCtpCtX8Y={Do6tod^Sm{t_DIL6d;9{eeg=7|>gM#gzUS{HW*MRGT%;O#&RAt4 zUU)h0q0u$H%A*|>y;-@OEy=8d3G%wJ-rU&K;tW9RstY11=+`scXcmNE={;m=(mQ+t zQ+9Ng^#u3h-~k(VKxB@937yQ|X7Ixkw)h2qo&p65U)xa0-GG zzu#9XGj--n-GYq=>3O^im*KrGLQKphyRMUYtb6Ke{z9h?z@4mX>$?{+uUtat^@c%V zXaZSxqK{4MQPE{pmuff5Nik){Ah4V?n8Jv+-uj{8)QfIJEfTk-l_F7GS}79KrImsa zURuMe%JuBYmQu1_s@t(AW=)iBIU~T{P8~jCmxI<6j_87RbeBQvxpcs3aD~l1m%67x z$timT174AXR9!*m-qC1ZqQ`Xaj5|_xp-v~HxRe9|Ho7QJ8$*?zCt&xZKDVkz2~v~G zm}RBhvRh7yd|XnbQ`+A+Jv~y)Pt@0p-ll`s2j^#(N*IkcD zd2wUIXkQoOdPSW_%2>_3(Xoyf{hZW$6}B2EV%lBAc&6)sT;h-+bbQgtuiiLk_d=b; z=f7%+V_#MBPkXUp#N%A$pKHkBtO`yW2sBP|m|_7q{=w^8A8X6Z5K>*1(Gea28^9@??ASJb=gA` zBO|iW)4)=tl080zxlI-|rUApb%v?f15AQ;Rpt_~bAc5T0K`u-Loa>u@iliBt>B&I?a;MQ{Au~L+^rU96Z>51V=0~2RFJ|E~~0&B5>^az%97sM#=vewZ| zv1fe5-y}l?#Pux9nsEaOk%xcSC!$^M?D?Am+=i=LFliMB1#O(jTE%=RKV0tUmL-x@ z!BPh%JJcDPC}HtgDsewd9AT@3Ct&q0Q0|Y41fxahj)xqhEOoWRkGWUW9bSbNFG}8} zFx+s|*Ugka#DvF)ew;jsexz^r;ibFwy0otcd*S+W7tZraS?iQt@I1t#njW*I_72O~ z!+3e-xgr8Z^G5Edt7TgUy9hs_UD-5x8{WC_1X#am4S1v(F4G$qG3NqPi+^qqy#Fd)Jow#l*t46c!Lt(sIqrF2y@OT*=%MQ{&?Rb$l6KPT@AiGW{Pn6nPNdor6-O8;nSo z?hPYKUKQ5oiuD*#(p;41P0SZk*EWqRCB+RZX?@>!~$E1vfY(a2)hEA@=`B) z>5pK2zgOlAd0e+ZA*P2jr9eRv^BZ~(_SGmm#nW)g8r$b3+5-vJOFE(`{9w-zkOacw zdOaWtT!apw5wA`oP7LBuK96m=oOGXlN2z!>u>dfTOfta9Sb4+5i)K!ik*eNbGX=E?s&oRRDNycy)(HY(3WWOCVk7bnnIuY?U zdfcIq3xRb5XR3|CJSg#}ctNawPU7`Y-r`L%#~V40jOB4PCi@w#7<>?Ye}_M})dGyC z-Y%}TGn%^At4J$Q>EckJQu6+K(5|mX29ZMac&@QX=jO40YPU2jTT$8Egx(pKc{&m& zk(EvGrDUjN{^3jz{LsNUVv%Al02)Ji2p{6@>RD0us4=6GSor zsecCMsVS`1#s=~n++fIXAXRGF$17d>y@;rIM*&n9UpTu3?ymp{Cx(0ym82y#~w+Z6G4W-iJacXz%49Rm)d+FwqJJ&AX%QSLNL zknG$%zJAN;Ollyw-|UI~USVlzAs_LDqrZpYJ_&A_dlqk)^K8TENsr6v80l3RDhigG zY5+%S9@}%6_bf5G^9G92dWR;mvY^&0Q*~|vbKyJhI5aVgYi4Rl8$IZzaD?aWD0voK zVnNfCoeCwTaRQw`RzmtBj)wGu7#~5fyoZ9TMDmcO8+TvIzRYWAvZ2(KAIAecz4;`U zNg`)M(&mfu{HZA2_tFy+o(_c-7aa#JDfSLDkc@y>@B4XEq5vM=IbJN+?&>krQ>uXb z@NV&9_rc^Xa_r6fmN^^>gc6CRm%>H$w83d#SZ<LkAx2p0z#cp(UYKn0*Wt?7@5VRuN-aOtbA*l;tJxqZ^2R~uyaz{U5tw3Q$0$7~h zh{6~TfWqDd&vgP4?!fq2T%S%25xx2lvED}SI%DX9#Xc@QBy;2Bt!Mb8$a+? zfOoKct5+1hwSF^Cj)8n|an0-)z&;G}C-U?X-BDwgvZVaWoAm^6uNQ}G9eRTj8=HmE zsgC+h&AOgnV;g5geqEMMs>4593Y;NHM}et*zyWKgM!n~}0iiUazWVj{($&vbQbTgz zhHLgxWZ$6Pqyv4ww5$4MnR=2Mt8G-ENoe$Pc^#=^`pXRwkymNTQ)9L-Dd=07s60Lr zs$hpE%H@1+Ns->|UQ)z$+L97~Y>5c<+%x=YE~292{vlK%Gm3~eIwTAk+@%QToCdEZ z^Q)cjX{c9)DR)-I%Ilii=I?ExH{wZtBuVJ&i#D!n z=&vu-2M^z#_V5%&6^vCmoTDKyc4-(Aaec8Q_oXpjIf$lRsMc*+*D!sU_M^E}()P1FolF-2AL`kwlj_CbXiM}(`)$4%-gKXfjv^obz zlT(O+$`22hU~tn$jvbHM*^$vQx(js4yw=GrO&w9`!~9t;7wCF54#&JCpYg77N|&n7 z@eoCMmAe@C4$=ae96iv60+6S4SiY_ifH9Li7kCoHebt~{&!U5fxIi}+gi4E{o>D*N zBSZPgpq|}$Fp2I)@654SdWXHj_K!z#0ZN~O`*@(|LH2Q@EwDiHwFmfek<=?Js)Y;ueGA6 zobvi^8>5Xz*kXO*qQ}`mzjZ(8eKJ4`I_MIO7?Z#W?{LXX}3 zs~6tecQ3E>rEf1=JPWFX+#ceKYwibotgge2^oQIo153VmdV%Ndx+&JZZDd#-T9i$p zz(V=tN&K5#o;7&4%Y$&_9(aVV^plDp5`2v=C*{6ZIw#6jV8+YDK{A=vm1+*4z z*)5j&BbeOoW<~Pmwf?Y+*h}m2h2bT8L>OMDM})xzaoEqRZ^Zc_hc^|x?j#aMBz9if z!l6YXxui}ou1hNT2UvdO>KC+i79R0#T5DVV9=5ikYv(m=ZPT}~H6Pre!|XAOuYD{Q z1h?*dxz3x&zMU^z`jy9rxR|ZO)_EG3WBUF^GF#_zWEaoZ4UG-j-zE3&e0>PbMVog) z;i8?pfDpMK-1GA#I+FrJl6QMsM+Ze7NTY0#1UBq^FP7e|^QG`2vQ-z5MA{RtYu7^# zZqfzZ1R~@uhkT({^NIrQUl z^_@6hE3n_<-M!X1E04r|oj_c|eTNivKuJ%$g14~irL^2mT)=gp#De}VPG(R#=H0-q z2Nc|W^F1$mU4gaaW1b#7tjCby3nRJhNxgm+TTdgs%R_A3*u`K+ zJ2H_^pV943PRZaB9@2<3hP1kZ97*CRkTW~k_Tx@p5X5v(E<+$@LA0*w-A)e58ZIJ2 z`HUcM;Yon<^xa=4$m%`3siLPBxa+i7)Std!>xC?3oZ68qi!YcYt6|I#YA7JD@w!b$v#aqL;oX8nUpvDR$>x2m8eM>Nc zmK*yF;;w-23uG<5J`y`VgoC-faNY)vzYY#5G_Xn~K6ZJD9^aEg z!_zkGtm$pUDb{44hZsiyaESzq;eXMj8=oy=9((tO&}g{PCL4uy9x=lW%DOc(p`FOL z2`6=FXwJ(;*(iL}9@1D(o%7ozzB+X(mL7Z7d- zk9*yq9rzuA37Dh!1qIv)z;7hjz;d8vr9K{Ym4*-5pVBRMI`FFw69~n|?=D<5+(og~ z;a!4(;3VdlUOXC9F@=t)IV=XX+u7k~Cr<{*9AxMnFHxixb{0_v5`#Rn zkHLqjNI3U1%>4{geEKZP>T}At&ClBoxEHrlLmEB}z{hbQd88ZlW`oqONpODNs3Vd_ zEPJ45BcJ>n5ENTq^ij&E4Jp9o3i!25F6!JZ=b)i;L#^_2Lp{)sSV+tAQ#66pw6VtJkpolUu@lAAoI^W%!rvU+Nv=q)Nqv;o>4%fYZ+|=qnUq1W%>3|loiwI@{@Ov{D`v|E zBOQYjiv+6^vV6deqSJxvXi4=!^}PqjD2OsnVVE4;S%RNZk=lSr1;%YlU~SNm@N&=| z!+(;&%em{p&#qj<^?g$1#P@K;mqu|7mv=4g@*1x0lqzgMN0OxBNHnGA(<7+ZbTcVHjvaK^ zrBGx9%9Bb<7QdH^i|Ut5zg7?^L8p}HS8ZrAB=^iqp6HZ<1Uw>S=sZbW2@3&k6y zZj;J(0cn)pYWX7cwWEGX4i6!J(kuSbwzyrThbsMO}TFI1JVk=v4Gl?wXrwXz3+H!2)Yv9|=)97=E91AT z^6=k=dv&A8!meffZ&Stwku)?B7a{|2Cu2N)Zn^_M6rj{Z-<{|G>}zLF{>tFH-`W3e z@B6B`%`oCk@T3LIh7DqEU9&kc{Z1_598WlXK7TObbb9>kvx(W~e10G?d)C((NH~xA zd{@Fb>hlK@&b>ZAnsCN^{%pd@`21vme+yLy;Y|Db z-%U7g`TR2p=UHEWPhxhj&u>Z0`th87B{BP|kH-_UYkjxxB%F7Be0^eelg~dN;M)?j z`+WT^3CHJWyArd0KF=OZ%+|~3Kw`F@=erZm9^cR7iP=8ipBEF3pAXJ+3Fmnqe<|U7 z+2`L+I3M_KUr)@=`}o@l=X*Z?X2SW_D%6?xVjJ;OMlEeIqqSA4QzE-U_(ZmOWh~x` zAL)p-qNcUt*P&vq>*D}p9v_3O6$&bGpSau60+slVmiUU5&8t_fUJctS*qT=wiByY< zwYIj#Rg;l;pmoRg4J+dbr!A3cO>`%E;)xT9M`Alsr&Z!{M&R)k5{>B}u0SK1{;PFj zgV`*<#?*q)rhgP~YeEF4f7IIA7TcVtK>3kGDp6@!=~>{_M%4oUDlPFgMX+^+HpCYr zw$o@?Z6FG(S2ia;l}N+!<11BjYwPyy+ZomEE7luo$4=F>+Stx0rB=5!BOS3Ft%>wX zg*@6&*}O`{5_ZDgP-%w>(skX+mB_Wkc;eHEiNsXmv`)p3L~SZj`AFi^lCO!W?Q2)I z>{L|z9F?{wDz`}>h%)lZIY>H5`i2zHJ1n546^XUYD-zCn*uXy^X*6OR4e;5f6@qOv zMBc{uu3fnjT|wJM!!K>rzBVbUwJTQBJIU?rN|Y%gl4a-y;|r}78!D6QkTI3=jzs0@ zIR21#(-ot2rDrl{%Tg4T`&J>_5|sy#a}wc7S!9TVBxH+dIO{j9T#=amInTGckI1p< zpKC>sFt)E**_4=`)BmqQc2!WA^8ecPM$=BUekXpQ5Jis?o1PP&r{`88Cy{MEi0kz4 zAcJEt@IMmG0BFuk#;;r14Evk$9f_GqFwbfE>v3`RCGG4>;5M#of%H|VRo=wkm+`lt zu`dYr4E~&?99nG2q~qn^3NGdFpr(*8|< z06%8lj=%EIxzBI-S-@trOx3(X$Vwq`A@b8x&8vm1 z5wcc@{6t}MtB~u2;CIAS^9CUaA^62X)x1fF{4Q1V^+IkCvPH;^LbeLoCS<#i9YS`3 z#8$M%R>Wc};^@BaYg)0R1zp$l`$FbmgKRbU3L0vnBE4Q^yO2Gx6)-nc_6a#4q*KUo zA$>v~6Os`!Ci>-;6=;r63p-2p3#8AGK1=$X2+`#wD$fgfQOHY_ToU#bvabsJnvi)R z-z4~^u-_v4WnteYyCCfM$i6P|_^#OB67mBf?+f+;xS1_Nb_>}qf;WUK2w|jWCWU=k z$Uz~Ua5vK>3)kcxFJj$Ap{}GAJ0*zF}rotW4vKPA|gRFe5RYc?P7iTjDtL z9Ahdmn0Z|Y(>wD`VdrBjR)`bE>|H^=1*@ZkLoyOGd&Ig4oYO4U4}?e}XI>QnVgm1l zyeQ-)A(wArB;OTDM#!iT$(dOMv0=6>WKzh}Lg3?u*)NE*gY;pGIDU=nCJ}v^ ztP(o?!Ri$|HgA~zx5kE9YRtSX8n4NKx)w8>L_D#!Rc1^vnU%-D#8=34rB!B4B3cO@ z7&5bpx1vcJ(2K`0|BA7JMqJGvBcx}Z!Owx!WQ`hn53=8 zoPVbhV<%>3GGlU%YvUk|*=Myeph3^*(zXNI7}dsEZA@z84Q&)?%xu@T_h?N2K-*r` z#>?7xoyP1-+IUeLO3P-o%`-f&pVqSPYU3HLvPTceHK2HlEi;o0fSF zx-@uD8(#W$Yn#rO8P9=^p!1w|{*pG{*P5?u+uPcBvqd5Fwa9VAK?2_h8)i6|AaPzP zlOk$P&rt{2BdXKyYvThNl`YyhNMq(TZM>q5?`mU@Huh;_FO5o)Lot8?S0(K^x!G#>?8+qm8}Vh-+i5Hgqy8)7ti;HfFW)1#LW|jc2v- zJdK%6+EChP)`sWxd$d)4ppEynOounKUW4yy;~g#2UeD<8W^{NnI<+%icsgb?m$ZYI zwDGbwblPX$*0wjb@hxrWT$-7ut>U@UF>`dR9UW_DEmfQ?+Ssm*Hf`+I#vU3oA811- z%-O4D`?PUD8~1ACpf)Ckv zV^$kq(8e>`cvc(FY2$fqyr_*!+IUGDU)ILU+IU49uWI8pZM?3Hd2PI*jc;n>O>KNj z8{gH&TiSSA8{gB$JKA_x8}Di32ikaF8z0b^RoZCQMqC?fwXt3so3yb-8{4(frj0$? z*sG0w+Bl$%d$n;;8=czd(#BD39M?vlHU_kDRvWY0ct#t~YU4R=4AQ9R$X9gaD>}Lr z9o@<$t@)xhJljj!_Odo!(Z;LVcwQT?Yhzv;Z)oG2&3iCvH|18$j=6Bc7P7Vl z#91FVF#O8Do$?c_1F`Gn1vwt~)?diWcio;U8PJnCHjaexlb;tM*&8>$Jox?Snm6Pqfe^>$wX_ixc2HwpYHHb z^RGkw4BWi@X@|7HuYhpW^%|2>H$?i}mGZs55xa5faiYlvwS~;%qU`5 z4}PZXXAoo=?FDVz|H3<(_|G6vnP3gcx7DNdU7AB6Hc{~ov{GE+^nRKuDn%Ph1e?CT zm#=WprCP%cUMcY@UH|Eus85Gc?Ea76eDvy7$XAp4va~m+`B43u-e|R@ypcf~!?*MT z`0@a|s>WM+rEu1`2IBf}&?(G6*Lmsneuq#``t{rVDWznhYz5zfMpyY7;8!zx2H;}?K1r|Xf$%0O&g3cr0dg;!hrprJ9)x=K3YlKh6?t*M+XuWW9g z93Q*=!v5P!`1sU#`gRZHFVm+x5CHNSKK&F9!}I!kb?5q%hkv`Fu30W!{Jwzh4nB;2 zqa2k&#ICWT@}CTNPl3H(T2Xf!>RLm-_YlEzsN>gRsE=H|x}qPGr}A1IeeZwEocZI1 z`l+Y!KUvU{CU45FV}75Zt}&4d&Ub@TXDl@To9FV^F4kb^d|R)hz28vRm^ub#a$G+h z`{`TAb>6q^dvdzLscR?QuZ?}7S9ifR_5+5x_v$rlX+L!OA2QVaKaFd@!d^S$>!ItJ zo$nCKk9$63z}jIj%|EeY*~9Qd#@@&^CLzHg%k-ZYc`I?&fe+sq^aY(^)p7gP)6DM) z$?FfS3iPjVsR0ZP-NBzh`R~y`b7xDbi}z&yR2e7wWT)%z<8OZ6Q1ibk2h94PaB?Vo zEB+q2Y^X=74Vh@j`El^yss671J+1#}^1*H2IP#1C;>)S=fBnh};=;WDEPf{UoP28j zDf|%V*&|uJFe~KG%I|{M#j}}w8Kcu}c)4!hR?3{eZ3v&QKHJEs?t!o+KlJ2TZzm1j zmc?1RP{2Ydq}EZ$45|L3sXOkvTX}K%z8@z^_iy$Nd}qzS`Tg%ae&(NUyo9v*|Gpu7 zn{Nx7F9-CLI)^R6uCcKbX?$RI9N%EV2POE0ZE^GCo8d<^d%~Vw(}pbt=-}*qI;<*V ztHOnm#klAl#ouEKhI&_TUkU{N0O%RjkNX*CR5$K6_T!#LuXkVLq&f^<{{2q#U;GUY zFqK>#kbl1UkhUtES9-gm9sr{Ye+J)u6yZ-6S3dC5t++`dH%sN;Zn|o`tiWfg+?h^?wI&0~UFJdzI_pR_O#yHU%VH+tNDS8I|$$R;|%;L!k0$+_IWp1#gzCS zQX8NzIi&AS%blCCK#Z3Qs{_|xc-0?%U~e0K97k9qbSPP@ z50{(U5|$rV|F+Na=?jLb^SKXx$z9k9-0{V8!Vj6x2bf1;x6z!6=F`1&lj4OV{LTzY mdkiUTLrn|kaMT@={Xg!%c`P>(`#1OhkDG+QjrmWX1OFfB+~s@# diff --git a/ReleaseArtifact/AuthorizeNET.xml b/ReleaseArtifact/AuthorizeNET.xml deleted file mode 100644 index 346f3fd..0000000 --- a/ReleaseArtifact/AuthorizeNET.xml +++ /dev/null @@ -1,3967 +0,0 @@ - - - - AuthorizeNET - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Special case handlers - - validated on ????/??/?? for objects listed at the end - should be validated after each update of AnetApiSchema.cs - for fields/properties that are minOccurs="0" since xsd.exe - generates "specified" property for such fields and requires - special handling to set them seamlessly - Make sure to update the respective controllers to call the respective request hand - - - - - Since JAXB does not generate the class for this element, custom coding it - @author ramittal - - - - @author ramittal - - - - - Gets the base url - - - - - Gets the xml base url - - - - - Gets the card present url - - - - - Create a custom environment with the specified base url - - Base url - Xml base url - The custom environment - - - - Create a custom environment with the specified base url - - Base url - Xml base url - Card present url - The custom environment - - - - Reads an integer value from the environment - - Name of the int property to read - Integer property value - - - - Reads a boolean value from the environment - - Name of the boolean property to read - Boolean property value - - - - Reads the value from the environment - - Name of the property to read - String property value - - - - Source Code from MSDN article http://msdn.microsoft.com/en-us/magazine/cc163367.aspx - - - - From a04681d943f749b37c0be0cffc50733755564a0c Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Mon, 17 Dec 2018 09:59:56 -0800 Subject: [PATCH 02/10] Allow the logger to be configured for something other than debug. --- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 1 - .../AuthorizeNET/Utilities/HttpUtility.cs | 16 ++++++------- .../AuthorizeNET/Utilities/LogFactory.cs | 23 +++++++++++++++++-- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 2b01dcc..3204ed6 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -18,7 +18,6 @@ - diff --git a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs index 858475a..be1e408 100644 --- a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs +++ b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs @@ -1,14 +1,14 @@ namespace AuthorizeNet.Utilities { - using Api.Contracts.V1; - using Api.Controllers.Bases; - using Microsoft.Extensions.Logging; - using System; - using System.Net.Http; - using System.Text; - using System.Net; + using Api.Contracts.V1; + using Api.Controllers.Bases; + using Microsoft.Extensions.Logging; + using System; + using System.Net; + using System.Net.Http; + using System.Text; - public static class HttpUtility + public static class HttpUtility { private static readonly ILogger Logger = LogFactory.getLog(typeof(HttpUtility)); diff --git a/AuthorizeNET/AuthorizeNET/Utilities/LogFactory.cs b/AuthorizeNET/AuthorizeNET/Utilities/LogFactory.cs index 8f0ad06..5ca6549 100644 --- a/AuthorizeNET/AuthorizeNET/Utilities/LogFactory.cs +++ b/AuthorizeNET/AuthorizeNET/Utilities/LogFactory.cs @@ -3,13 +3,32 @@ using System; using Microsoft.Extensions.Logging; + /// + /// Configures + /// public static class LogFactory { - private static ILoggerFactory LoggerFactory => new LoggerFactory().AddDebug(LogLevel.Debug); + private static ILoggerFactory _factory => new LoggerFactory(); + /// + /// The logger factory instance used to create logger instances for the XML serializer, + /// API operations, and HTTP utilities. Use this property to add providers to such as + /// the debugger factory: + /// + /// + /// LogFactory.Factory.AddDebug(LogLevel.Debug); + /// + /// + public static ILoggerFactory Factory => _factory; + + /// + /// Get a logger instance for the given class type. + /// + /// + /// public static ILogger getLog(Type classType) { - return LoggerFactory.CreateLogger(classType.FullName); + return _factory.CreateLogger(classType.FullName); } } } \ No newline at end of file From 77cab9e678f13b0ce305491f4e051081f9b99b1c Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Thu, 2 May 2019 13:53:22 -0700 Subject: [PATCH 03/10] minor fixes in the nuspec - fixed path to docs and dll --- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 3 +- AuthorizeNetDotNetCore.nuspec | 36 +++++++++--------- ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg | Bin 48941 -> 0 bytes 3 files changed, 19 insertions(+), 20 deletions(-) delete mode 100644 ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 3204ed6..02bfcd3 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,8 +2,7 @@ netstandard2.0 - 2.0.0.0-beta - true + 1.0.0.0 diff --git a/AuthorizeNetDotNetCore.nuspec b/AuthorizeNetDotNetCore.nuspec index 69b85b9..fea80d8 100644 --- a/AuthorizeNetDotNetCore.nuspec +++ b/AuthorizeNetDotNetCore.nuspec @@ -1,21 +1,21 @@ - - AuthorizeNet.DotnetCore - 1.0.0 - AuthorizeNet.DotnetCore - Authorize.Net - AuthorizeNet - https://github.com/AuthorizeNet/dotnet-core-sdk-beta/blob/master/LICENSE - https://github.com/AuthorizeNet/dotnet-core-sdk-beta - http://developer.authorize.net/resources/images/favicon.ico - false - Use this SDK to integrate with the Authorize.Net APIs for Payment Transactions, Recurring Billing and Customer Payment Profiles. - Authorize.Net SDK for .Net Core - Payments API Authorize.Net - - - - - + + AuthorizeNet.DotNetCore + 1.0.0-beta + AuthorizeNet.DotNetCore + Authorize.Net + AuthorizeNet + https://github.com/AuthorizeNet/dotnet-core-sdk-beta/blob/master/LICENSE + https://github.com/AuthorizeNet/dotnet-core-sdk-beta + http://developer.authorize.net/resources/images/favicon.ico + false + Use this SDK to integrate with the Authorize.Net APIs for Payment Transactions, Recurring Billing and Customer Payment Profiles. + Authorize.Net SDK for .Net Core + Payments API Authorize.Net + + + + + \ No newline at end of file diff --git a/ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg b/ReleaseArtifact/AuthorizeNET.2.0.0-beta.nupkg deleted file mode 100644 index 6f483692c3b190ce0cef876099d17d1087f7b613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48941 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%0D!Ige&@> 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 RvH<&eZTvh0uC9OX{ueo+h^PPn From 91f7c0f7c9b440cbeaa8e0e6b8297da15f648a2a Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Tue, 7 May 2019 13:26:18 -0700 Subject: [PATCH 04/10] Switch to automatic nuget packaging instead of nuspec. Compatible with dotnet pack commands. nuspec file is not needed with this, but left file for reference. Upstream maintainers can remove later. --- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 11 ++++++++++- README.md | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 02bfcd3..61d0d4d 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,7 +2,16 @@ netstandard2.0 - 1.0.0.0 + 1.0.0-beta + AuthorizeNet.DotNetCore + https://github.com/AuthorizeNet/dotnet-core-sdk-beta + Payments API Authorize.Net + Authorize.Net + Authorize.Net + true + MIT + Use this SDK to integrate with the Authorize.Net APIs for Payment Transactions, Recurring Billing and Customer Payment Profiles. + Authorize.Net diff --git a/README.md b/README.md index 5d80ea3..00dd595 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ## Requirements -* .NET Core 2.0 or later +* .NET Standard 2.0 or later (.Net Framework 4.6.1) * Microsoft® Visual Studio 2017 or later * An Authorize.Net account (see _Registration & Configuration_ section below) From 3d991c8a4a79f63ca8a55291c5a82ff4e921cbd3 Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Tue, 7 May 2019 14:28:14 -0700 Subject: [PATCH 05/10] Added async methods for sending requests. --- .../Api/Controllers/Bases/ApiOperationBase.cs | 19 ++++++++++++++++--- .../Api/Controllers/Bases/IApiOperation.cs | 10 ++++++++++ .../AuthorizeNET/Utilities/HttpUtility.cs | 7 ++++--- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs index 26c2c67..96def49 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs @@ -6,6 +6,7 @@ namespace AuthorizeNet.Api.Controllers.Bases using Contracts.V1; using Utilities; using Microsoft.Extensions.Logging; + using System.Threading.Tasks; public abstract class ApiOperationBase : IApiOperation where TQ : ANetApiRequest @@ -81,16 +82,22 @@ public TS ExecuteWithApiResponse(AuthorizeNet.Environment environment = null) return GetApiResponse(); } + public async Task ExecuteWithApiResponseAsync(AuthorizeNet.Environment environment = null) + { + await ExecuteAsync(environment); + return GetApiResponse(); + } + const String NullEnvironmentErrorMessage = "Environment not set. Set environment using setter or use overloaded method to pass appropriate environment"; - public void Execute(AuthorizeNet.Environment environment = null) + public async Task ExecuteAsync(AuthorizeNet.Environment environment = null) { BeforeExecute(); if (null == environment) { environment = ApiOperationBase.RunEnvironment; } if (null == environment) throw new ArgumentException(NullEnvironmentErrorMessage); - var httpApiResponse = HttpUtility.PostData(environment, GetApiRequest()); + var httpApiResponse = await HttpUtility.PostDataAsync(environment, GetApiRequest()); if (null != httpApiResponse) { @@ -122,6 +129,11 @@ public void Execute(AuthorizeNet.Environment environment = null) AfterExecute(); } + public void Execute(AuthorizeNet.Environment environment = null) + { + ExecuteAsync(environment).ConfigureAwait(false); + } + public messageTypeEnum GetResultCode() { return ResultCode; @@ -171,6 +183,7 @@ private messagesType GetResultMessage() protected messageTypeEnum ResultCode = messageTypeEnum.Ok; protected virtual void BeforeExecute() { } + protected virtual void AfterExecute() { } protected abstract void ValidateRequest(); @@ -181,7 +194,7 @@ private void Validate() ValidateAndSetMerchantAuthentication(); //set the client Id - SetClientId(); + SetClientId(); ValidateRequest(); } diff --git a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/IApiOperation.cs b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/IApiOperation.cs index e3ffcf3..5dff17c 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/IApiOperation.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/IApiOperation.cs @@ -1,6 +1,7 @@ namespace AuthorizeNet.Api.Controllers.Bases { using System.Collections.Generic; + using System.Threading.Tasks; /** * @author ramittal @@ -12,10 +13,19 @@ public interface IApiOperation where TS : AuthorizeNet.Api.Contracts.V1.ANetApiResponse { TS GetApiResponse(); + AuthorizeNet.Api.Contracts.V1.ANetApiResponse GetErrorResponse(); + TS ExecuteWithApiResponse(AuthorizeNet.Environment environment = null); + + Task ExecuteWithApiResponseAsync(AuthorizeNet.Environment environment = null); + void Execute(AuthorizeNet.Environment environment = null); + + Task ExecuteAsync(AuthorizeNet.Environment environment = null); + AuthorizeNet.Api.Contracts.V1.messageTypeEnum GetResultCode(); + List GetResults(); } #pragma warning restore 1591 diff --git a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs index be1e408..4152dec 100644 --- a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs +++ b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs @@ -7,6 +7,7 @@ using System.Net; using System.Net.Http; using System.Text; + using System.Threading.Tasks; public static class HttpUtility { @@ -22,7 +23,7 @@ private static Uri GetPostUrl(AuthorizeNet.Environment env) return postUrl; } - public static ANetApiResponse PostData(AuthorizeNet.Environment env, TQ request) + public static async Task PostDataAsync(AuthorizeNet.Environment env, TQ request) where TQ : ANetApiRequest where TS : ANetApiResponse { @@ -45,12 +46,12 @@ public static ANetApiResponse PostData(AuthorizeNet.Environment env, TQ var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout); client.Timeout = TimeSpan.FromMilliseconds(httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout); var content = new StringContent(XmlUtility.Serialize(request), Encoding.UTF8, "text/xml"); - var webResponse = client.PostAsync(postUrl, content).Result; + var webResponse = await client.PostAsync(postUrl, content); Logger.LogDebug("Retrieving Response from Url: '{0}'", postUrl); // Get the response Logger.LogDebug("Received Response: '{0}'", webResponse); - responseAsString = webResponse.Content.ReadAsStringAsync().Result; + responseAsString = await webResponse.Content.ReadAsStringAsync(); Logger.LogDebug("Response from Stream: '{0}'", responseAsString); } From f4efbbf7549e5cefc59ea5ab66d7f52e55eddc4c Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Tue, 7 May 2019 16:00:40 -0700 Subject: [PATCH 06/10] Fix for synchronous calling of async methods. --- .../Api/Controllers/Bases/ApiOperationBase.cs | 3 ++- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 2 +- .../AuthorizeNET/Utilities/AsyncHelpers.cs | 25 +++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 AuthorizeNET/AuthorizeNET/Utilities/AsyncHelpers.cs diff --git a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs index 96def49..c33df56 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs @@ -7,6 +7,7 @@ namespace AuthorizeNet.Api.Controllers.Bases using Utilities; using Microsoft.Extensions.Logging; using System.Threading.Tasks; + using AuthorizeNET.Utilities; public abstract class ApiOperationBase : IApiOperation where TQ : ANetApiRequest @@ -131,7 +132,7 @@ public async Task ExecuteAsync(AuthorizeNet.Environment environment = null) public void Execute(AuthorizeNet.Environment environment = null) { - ExecuteAsync(environment).ConfigureAwait(false); + AsyncUtil.RunSync(() => ExecuteAsync(environment)); } public messageTypeEnum GetResultCode() diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 61d0d4d..af30c9c 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 1.0.0-beta + 0.1.0-beta AuthorizeNet.DotNetCore https://github.com/AuthorizeNet/dotnet-core-sdk-beta Payments API Authorize.Net diff --git a/AuthorizeNET/AuthorizeNET/Utilities/AsyncHelpers.cs b/AuthorizeNET/AuthorizeNET/Utilities/AsyncHelpers.cs new file mode 100644 index 0000000..a0012e1 --- /dev/null +++ b/AuthorizeNET/AuthorizeNET/Utilities/AsyncHelpers.cs @@ -0,0 +1,25 @@ +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; + +namespace AuthorizeNET.Utilities +{ + internal static class AsyncUtil + { + private static readonly TaskFactory taskFactory = new + TaskFactory(CancellationToken.None, TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default); + + public static void RunSync(Func func) + { + var cultureUi = CultureInfo.CurrentUICulture; + var culture = CultureInfo.CurrentCulture; + taskFactory.StartNew(() => + { + Thread.CurrentThread.CurrentCulture = culture; + Thread.CurrentThread.CurrentUICulture = cultureUi; + return func(); + }).Unwrap().GetAwaiter().GetResult(); + } + } +} From db003e797a58dcb9ca01213493c658b9a0a82f34 Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Wed, 19 Jun 2019 11:24:04 -0700 Subject: [PATCH 07/10] - Hotfix for Googlepay - Added a few simple unit tests --- .../AuthorizeNET.Tests.csproj | 19 +++ .../TransactionControllerTests.cs | 113 ++++++++++++++++++ .../Contracts/V1/AnetApiSchema.generated.cs | 3 + .../Api/Controllers/Bases/ApiOperationBase.cs | 2 +- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 2 +- AuthorizeNET/AuthorizeNet.Core.sln | 10 +- 6 files changed, 145 insertions(+), 4 deletions(-) create mode 100644 AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj create mode 100644 AuthorizeNET/AuthorizeNET.Tests/TransactionControllerTests.cs diff --git a/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj b/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj new file mode 100644 index 0000000..a1a0b64 --- /dev/null +++ b/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj @@ -0,0 +1,19 @@ + + + + netcoreapp2.1 + + false + + + + + + + + + + + + + diff --git a/AuthorizeNET/AuthorizeNET.Tests/TransactionControllerTests.cs b/AuthorizeNET/AuthorizeNET.Tests/TransactionControllerTests.cs new file mode 100644 index 0000000..f798397 --- /dev/null +++ b/AuthorizeNET/AuthorizeNET.Tests/TransactionControllerTests.cs @@ -0,0 +1,113 @@ +using AuthorizeNet.Api.Contracts.V1; +using AuthorizeNet.Api.Controllers; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Threading.Tasks; + +namespace AuthorizeNET.Tests +{ + [TestClass] + public class TransactionControllerTests + { + merchantAuthenticationType MerchantAuthentication => new merchantAuthenticationType() + { + name = "5KP3u95bQpv", + ItemElementName = ItemChoiceType.transactionKey, + Item = "346HZ32z3fP4hTG2", + }; + + + [TestMethod] + public async Task ChargeAsync() + { + var transaction = new transactionRequestType + { + amount = 123.45m, + transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), + payment = new paymentType + { + Item = new creditCardType + { + cardNumber = "4111111111111111", + expirationDate = "0349", + cardCode = "123" + } + }, + + billTo = new customerAddressType + { + firstName = "TestName", + lastName = "McTesterson", + address = "123 Here st.", + city = "Springville", + state = "WA", + zip = "00000" + } + }; + + var fullRequest = new createTransactionRequest + { + merchantAuthentication = MerchantAuthentication, + transactionRequest = transaction, + }; + + // Send the request. + var controller = new createTransactionController(fullRequest); + var response = await controller.ExecuteWithApiResponseAsync(AuthorizeNet.Environment.SANDBOX); + + Assert.IsNotNull(response); + } + + [TestMethod] + public void ChargeSync() + { + var transaction = new transactionRequestType + { + amount = 123.45m, + transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), + payment = new paymentType + { + Item = new creditCardType + { + cardNumber = "4111111111111111", + expirationDate = "0349", + cardCode = "123" + } + }, + + billTo = new customerAddressType + { + firstName = "TestName", + lastName = "McTesterson", + address = "123 Here st.", + city = "Springville", + state = "WA", + zip = "00000" + } + }; + + var fullRequest = new createTransactionRequest + { + merchantAuthentication = MerchantAuthentication, + transactionRequest = transaction, + }; + + // Send the request. + var controller = new createTransactionController(fullRequest); + var response = controller.ExecuteWithApiResponse(AuthorizeNet.Environment.SANDBOX); + + Assert.IsNotNull(response); + } + + [TestMethod] + public async Task GetMerchangeDetails() + { + var controller = new getMerchantDetailsController(new getMerchantDetailsRequest + { + merchantAuthentication = MerchantAuthentication, + }); + + var response = await controller.ExecuteWithApiResponseAsync(AuthorizeNet.Environment.SANDBOX); + Assert.IsNotNull(response); + } + } +} diff --git a/AuthorizeNET/AuthorizeNET/Api/Contracts/V1/AnetApiSchema.generated.cs b/AuthorizeNET/AuthorizeNET/Api/Contracts/V1/AnetApiSchema.generated.cs index 22f6d2a..1c2d370 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Contracts/V1/AnetApiSchema.generated.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Contracts/V1/AnetApiSchema.generated.cs @@ -6450,6 +6450,9 @@ public enum paymentMethodsTypeEnum { /// AndroidPay, + + /// + GooglePay, } /// diff --git a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs index c33df56..d6a7179 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs @@ -31,7 +31,7 @@ protected ApiOperationBase(TQ apiRequest) if (null == apiRequest) { Logger.LogError("null apiRequest"); - throw new ArgumentNullException("apiRequest", "Input request cannot be null"); + throw new ArgumentNullException(nameof(apiRequest), "Input request cannot be null"); } if (null != GetApiResponse()) { diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index af30c9c..d6f1516 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.1.0-beta + 0.1.1-beta AuthorizeNet.DotNetCore https://github.com/AuthorizeNet/dotnet-core-sdk-beta Payments API Authorize.Net diff --git a/AuthorizeNET/AuthorizeNet.Core.sln b/AuthorizeNET/AuthorizeNet.Core.sln index 8edb9bb..3b76d35 100644 --- a/AuthorizeNET/AuthorizeNet.Core.sln +++ b/AuthorizeNET/AuthorizeNet.Core.sln @@ -1,10 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2018 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.352 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthorizeNET", "AuthorizeNET\AuthorizeNET.csproj", "{3F665C7E-A2E2-47E5-A032-E7D2F67AE165}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthorizeNET.Tests", "AuthorizeNET.Tests\AuthorizeNET.Tests.csproj", "{3B62287D-0B5F-4085-8D98-49E8CAE1F30A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {3F665C7E-A2E2-47E5-A032-E7D2F67AE165}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F665C7E-A2E2-47E5-A032-E7D2F67AE165}.Release|Any CPU.ActiveCfg = Release|Any CPU {3F665C7E-A2E2-47E5-A032-E7D2F67AE165}.Release|Any CPU.Build.0 = Release|Any CPU + {3B62287D-0B5F-4085-8D98-49E8CAE1F30A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B62287D-0B5F-4085-8D98-49E8CAE1F30A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B62287D-0B5F-4085-8D98-49E8CAE1F30A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B62287D-0B5F-4085-8D98-49E8CAE1F30A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From df71a006b8511e11173694cbe3b541518b419cc3 Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Wed, 19 Jun 2019 11:25:13 -0700 Subject: [PATCH 08/10] Minor version bump --- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index d6f1516..86a007c 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.1.1-beta + 0.1.2-beta AuthorizeNet.DotNetCore https://github.com/AuthorizeNet/dotnet-core-sdk-beta Payments API Authorize.Net From a3a32ad3f8c3cb965d18b59d314822ca7d1e65a2 Mon Sep 17 00:00:00 2001 From: Jaymie Blanchard Date: Tue, 10 Dec 2019 18:45:35 -0500 Subject: [PATCH 09/10] ConfigureAwait missing --- .../AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs | 4 ++-- AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs index d6a7179..7a348df 100644 --- a/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs +++ b/AuthorizeNET/AuthorizeNET/Api/Controllers/Bases/ApiOperationBase.cs @@ -85,7 +85,7 @@ public TS ExecuteWithApiResponse(AuthorizeNet.Environment environment = null) public async Task ExecuteWithApiResponseAsync(AuthorizeNet.Environment environment = null) { - await ExecuteAsync(environment); + await ExecuteAsync(environment).ConfigureAwait(false); return GetApiResponse(); } @@ -98,7 +98,7 @@ public async Task ExecuteAsync(AuthorizeNet.Environment environment = null) if (null == environment) { environment = ApiOperationBase.RunEnvironment; } if (null == environment) throw new ArgumentException(NullEnvironmentErrorMessage); - var httpApiResponse = await HttpUtility.PostDataAsync(environment, GetApiRequest()); + var httpApiResponse = await HttpUtility.PostDataAsync(environment, GetApiRequest()).ConfigureAwait(false); if (null != httpApiResponse) { diff --git a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs index 4152dec..32cfbfe 100644 --- a/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs +++ b/AuthorizeNET/AuthorizeNET/Utilities/HttpUtility.cs @@ -46,12 +46,12 @@ public static async Task PostDataAsync(AuthorizeNet.Env var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout); client.Timeout = TimeSpan.FromMilliseconds(httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout); var content = new StringContent(XmlUtility.Serialize(request), Encoding.UTF8, "text/xml"); - var webResponse = await client.PostAsync(postUrl, content); + var webResponse = await client.PostAsync(postUrl, content).ConfigureAwait(false); Logger.LogDebug("Retrieving Response from Url: '{0}'", postUrl); // Get the response Logger.LogDebug("Received Response: '{0}'", webResponse); - responseAsString = await webResponse.Content.ReadAsStringAsync(); + responseAsString = await webResponse.Content.ReadAsStringAsync().ConfigureAwait(false); Logger.LogDebug("Response from Stream: '{0}'", responseAsString); } From fa68a19e7c7569264f56964bfecb71aa9190fdc8 Mon Sep 17 00:00:00 2001 From: Levi Baker Date: Mon, 16 Mar 2020 11:11:25 -0700 Subject: [PATCH 10/10] - Version bump - Updated test dependencies. --- .../AuthorizeNET.Tests/AuthorizeNET.Tests.csproj | 10 +++++----- AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj b/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj index a1a0b64..2f18892 100644 --- a/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj +++ b/AuthorizeNET/AuthorizeNET.Tests/AuthorizeNET.Tests.csproj @@ -1,15 +1,15 @@ - + - netcoreapp2.1 + netcoreapp3.1 false - - - + + + diff --git a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj index 86a007c..5adaaf4 100644 --- a/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj +++ b/AuthorizeNET/AuthorizeNET/AuthorizeNET.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.1.2-beta + 0.1.3-beta AuthorizeNet.DotNetCore https://github.com/AuthorizeNet/dotnet-core-sdk-beta Payments API Authorize.Net