From 1e75be3194079edcdcf3163ef58aabc08b8523a1 Mon Sep 17 00:00:00 2001 From: mabejoyb Date: Fri, 22 May 2026 11:01:25 -0300 Subject: [PATCH] Limpieza en el repositorio remoto de archivos no deseados commiteados. --- __pycache__/agregar_planos.cpython-314.pyc | Bin 27859 -> 0 bytes ...uplicar_plantilla_contrato.cpython-314.pyc | Bin 7014 -> 0 bytes .../envio_contrato_docs_email.cpython-314.pyc | Bin 11065 -> 0 bytes __pycache__/formas_de_pagocpython-314.pyc | Bin 84517 -> 0 bytes ...rafos_dinamicos_forma_pago.cpython-314.pyc | Bin 84544 -> 0 bytes .../plan_de_pago_contado.cpython-314.pyc | Bin 66483 -> 0 bytes ...mplazar_variables_contrato.cpython-314.pyc | Bin 6530 -> 0 bytes formas_de_pago.py | 1838 ----------------- 8 files changed, 1838 deletions(-) delete mode 100644 __pycache__/agregar_planos.cpython-314.pyc delete mode 100644 __pycache__/duplicar_plantilla_contrato.cpython-314.pyc delete mode 100644 __pycache__/envio_contrato_docs_email.cpython-314.pyc delete mode 100644 __pycache__/formas_de_pagocpython-314.pyc delete mode 100644 __pycache__/parrafos_dinamicos_forma_pago.cpython-314.pyc delete mode 100644 __pycache__/plan_de_pago_contado.cpython-314.pyc delete mode 100644 __pycache__/reemplazar_variables_contrato.cpython-314.pyc delete mode 100644 formas_de_pago.py diff --git a/__pycache__/agregar_planos.cpython-314.pyc b/__pycache__/agregar_planos.cpython-314.pyc deleted file mode 100644 index b045d83a9def3353a40672c5e8a388b3971c394e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27859 zcmchAX>=Rcm1Y(89U!>x;7&+fL{ij3$&$HAq9svui3aUh6dNKS5;jG^1yBpqnJ}^Y zgtF`w)OJR2+CD})&X_()PAi>0(>gu*VaG`(y`%>;D3h+J+xBVyXwRRKEP0%E&UEIx zuTTI;L6SS2nWFIO)!Uc*?!E8c`<^!2tR@am=x;PneCrU${WEX zjaaL>an(qLQf1~nQl0TDzH#-4OYvvkTY1?Z$-7HQ4VkoxZ#+-X3c9W8RL*>qoU09P zC4J_7oEy*Is*=Ca_QDztd0R5^if^P{@nzmyQ(mRT4sPETj*FCxmk9bDk8<2p8OK#{ z<0T_qnLLV5Fetg2QbAK_eFb;0j=M_>#!C#`!A_1da#b{6#-XwU<&knW{-&Xd1C^0V z<~I*j9jJ~}S95};m=mnU+>9gQ5*`<9@bQrv;h5k+cpio0yH;=(bCJ67`Yn83fUvr(;@vVWN%i;01J6AD`aqd zP_Ppm`HT#X_Mwbkr7hF^T~^1%Odk~A_@I(24QrLG#M~=2=lVh!sZ|mgyi3iOl=?F7 z95p-Aed!w?%wA|p8__cwt^TZ$7-FM7kZA)}DvkQ!_>j^ngfwC8W`&%=dWt+0IT$&_ z((W5Sl$Dlh*q>FyVV35=_~EQH%_#4%(yGYt_;6}AGCdd?KYW)SxRLkZ_^?tMYs-^G6F?-O%htS6(<9*}(;{#iDatl+f_XuNIX=$z=&9nlzNma+W zxbaFI=W8T*h#Y0(;t?LZBiEP4M^V#JWggazcN%X`qr}M3-lGA2{1KE1T63>5*O!>7 zF;hx_+oi7L0=#?TW9pWhm(1ST*@w+*FePs{~oeDD|#L?WRA<9a!aF$`oSThI5=Bf=MUMK6x#DjTfm`4_+;P>8XMiKv{5{N1^8zoZ+W9)p zt^SzON;=UWnGQh7bbQ`Ta-v(=>lT7J)<*Ksqrs20@$2wV8&As6g;pI?`hn16 zsrlnLWe(ENSVuGH;YPGn-1ScOkE9=qXL;MVkpub+F*o_}4R7p-~m=&HW-9ewGV#d>l7`TZA$7Wp;1BieWV z%&NUDVQ-7o#J;**)|N1|y=Qiag(zS$JqY+n58M;1=<;>Lr7VGv>R5VMMpa6vG6XUp zjAE!q*&@pfG8RT^ct-g-RV4;T0rNNbVT^`uzdz#fijr~g?4&O z{3pG0GZB#>FN_)G8kNCOPfVQ_iEdCU!n@!sa5q$HZSi%BGrIM{p+)|-jw`N?J$3oX zKY4O-dqUG3e+tg8Z)-VA;cbrB7O&Zhp0(Xj!}odEg8W}M*K&Vm?NtAe?^KJ$2>4wW zfoMZ!(M}H7F;2{bSPVFpw1t-%zA#b$)D5qJQe1@5}Ryf~0Flr8i!D90o% z+9<5|g6^W_yyb!o5yd63z8BBLYvNyBsoh3%yXWe|aPBcyeXQ(k;LeN|XafM#m4zDs zwg7ip)s-wx0b0?8Vz5+oM;X|Pwd|AiRMMXI&HyE|_1h?~U-d-zv`EyW8^3T392rEd z*A2GC$h(H}Utc#D5GYzDgM|RmssN&$yJ)Ubzrt6k*C9DQiohiBw_>cUY{VvDYbB_* zr>1%rKY{f&r=CbNoFP85Do1Db=R=e2W@ldU^|`3?Tr$)FENjMlq`(JIXo;UI{^OwjAYU}{3%$h5?t zT!;Eh6BIi^2}K&c2k{HH!U2F7t&6^Bf4phcxapd4(~|ePJ^$jlXV1m*F8twVYR>C&*G&R`7z(Nu89s9o$4(kpVBALX;C3Th_!6VxMSC2i)NO^=jTOl>S# zqx55%KSt<{JtKsgHasJQpEf+8l!UI>1IngV04tJ2og-x(IhzB~9d9$S+d6=66l`f|C_e=1QuO;!O~5-7mh6+>$!Y(DFMuqk{o*-E>k|W~ z{Ycv-RczpxCbBDYn;F!KrRX2Z51P`!KLgo%SD ze5_z(3mU1^92O5Ec7T#yfrEu-E=&|{PMTX52H=hQULIIA*Suq{iI2Yi=(itTI+<+f zPV9VWrQxCLwz5R|qe-NGmN6igAXYJ!}aT=>`Veqzzv*bmKVg*axZ#Jx$ z51<+NZi;PPdgRT)70W{lgKK7cqGVgbye*;GCKH1+>xUi?2ZLqB-%1fqe9F%VA?*zh zwh!EBHk+p`$PAGMGpH;+9~KKx0H2Gj9#7*{u!bO>ZqC?-eJfCGC_LoD037lGNb$CH~YpTv_Zt8xg&ekqKHx z0pA1zAEXmU(Wl4o3ln)I%4)i3eAbw7c3kQDtDRSNUad_U9$4sozqD+zx2xC%~Y^pp{#F=C^4|4jhne}U{t>Cp>6Q|@SZYoz9LK?#gTE-tem7)VV>Vu>( z)xtY*d^?x3bUoyCH0XFj;K&qEOW}DM0rm(+rDRYLHFhY!%UGCxk7HqGbk28=v9KsD zzH=-Dt6*zUx`ua1bD#dCDQPAX=GNlT2pYlMt`ewcc7;CObC$Ipt>9=OhCTJ*TSe4r z%qiqCs^y&j&!(dRmw(1JG~n`wUE%4V7@3@lxPq?XBNVVd7@Pv_82~+Tf#?KI2VKqn zCwg31m}lKBCSYHpXI>WwP=MT75S2*4=XK#P6q*T4vdw<`=~-Xf6f3F~!QnOqS-8%D z_MM*d&z$yCBWCCPs9*m)R5g+TL>n|@$R`u#+QF<*0xb@@ zW`iyuE5A!g*Ea9i*!FwZtqg|DbsI6(43P%sZLa35@poefLb#7)5WaKbm*5p2r*Boj zx6iGWv@{rDv5$iE{1qa=>V7%k+$3n@eKeuU~d2dSGsDhS~gcD&8}5* z{j#|p`=2#?$68qxNTHV5aKp%HjW=wZ!Sao>UppH$CH3Wr>cJKL z;F`1Oa`UC;M0rcn*}CfNN;tc&I9Ky_Ea&aGTK1-p%sa5Cd*5Do-C32W?oT=g5|)8A zXUU>|&0eu;uU)p+ChhgB_U2`K^ICq{T7JV?RV}J_xKX{sgzC-C^Gz4rsNQJJS$#pt zsq||5TjLsVt&QTgGc>b$#iIy**)Q|G?~wH6+Z{2~G9y zfo$n8QD2y9J%b4h7r`MJm6jjkY0o~y$GhbBorEjRgM7d;mH%#}3w*@(6lu5@N@JT^ zf=BjXQwvoNZ7N3p-6Ud^_LeCEcCQ-O%Xr-CQE=2IWyJ#ZI0LhjGjl%wsP{y;KR6o! z2L!>$EZXPRNJb^0ye!2@1WQK3X0nu0C0W=aN^!>G4C2@Aw+$>B=tm4Aip|Y5JXly7 zwRQ+nvGP@W!?L|0X>VG!Z(g=$dMS6?MdbehZ#jOayT*X}Yea z$stLEhl5sc8)zRG%(L8rwmM730~QnMHa2}-aWitM2SGbYvv+WZ z{HD6Q)sR4|h9%?VG^E5dO*DfOXS_2{PDJp<5GHNp=|kcp5`R_}%cXV@;%T&vITzpw z?}hU*y7|7@{+_}1D{CHPlQ#Ra`s;b+vEEk)UmA>WPFA$7R%}gFY`s$ZZeI6d@0v6J zx&61)oO9bPEoXE7Ynb*rU*FPe=6_TIXWb?~y_)`(;m_QxLS_q2T~7};xC|!lO+hs( zNk8`*PB3e^a;PxOsTG-9;D*76nv58^ocYyvXNm4oW19KAbIJv6Nb^{4u5c#QV}N#W z2ttkAZMi3_8UmY?vj_J8!MpSzYs}^#NvdPO*oL=TFG5tpiGKh`(u1@To{+2nxe*at zcd$%gRkZj_u^EzC!5pLB6K)lQQ3ivc;%Y<@!9GDaot1i)N>zjH!p0oocM$Bt3EBix z4&od@u37cs)5!J$e&N4{0};I0#`a9xF6>0`PV?5mE3grgzexoY3E zY~QrB^U8^&eP_b3^SZS-rg_&|i8bKJyR5yWjRupB##Kj4!qKu+yK3)Pws%}|k5bnFR^5#x8 zIW6z&n3Nmp$@@#Wzl}s;Vy}r-@_flna-wxN=oPDHUzx@s8GC3=vBuTHbH9yV9VZKD zp(+c6y)(0Or$Ai(2pO5wJtdSiP6WV*QKYztDApFZP`8xv)E-DbBP+S?ynR zm{e?-G_nqWgx*=>M1r<^DFR+Ye0qpXG(>QsT{q|z15bfhreR3S9-=C2h}zIp8lo)C zS1Jj|-9^NarPj&FJrzWjOP-nD6GLQAdrhDrrnmY)&711?;A0g=6@MOf?fM$)X!;mz?`wk9B zs>8ExgJhnY4M1Y;_j$qU8)r#xITM)ovuTvHGr=={Q8Hks=AR0R=frQIcu9xNl7AKm z<%wWm7P=6cc1azai^$N2wnL|vQhJytsK^uqzK9q$=@EF+dcC~shWu4S zmukLqGHGaCHFPZ-x{`)&=s!%Bh5ldJ?2D@F=Au<|^*iS3xGHI`i$_+>o8Pk(qyYKi z?&o%|S?m`dI{#2q{NrI@0lR}?0fxA`vfw;LxzGk#A6Q4C725E4)iRrs(KKY#CZMM3 zE{IWJ++ql-kE*jLIUmaLC(!M){DSI`)Rk0B{g?<(BH@<|=&8Fs?$Ci$@mt43B_i^JIz}ARcDJ zlTivl{Gr*V5UD&=Oa0&V>*KXaXZ>Q|_58}%iP!2^^PAquZ+g#B@`1y7S$9bn{c_S# zx7ho>-LY0y{%XTZ4RO;_-@9e)(Z03P@>h#qDvBGErJJIC@0VA;SK?YLt9Z5XrN(&a zQeP5j`js@6WN9mM6qo+VeEjI2J&u&uYc?%){gOM3CDKHQF3c1m)~%+g)8mlZ<@Hg9se2z>E)j8KZU>9B5E$?zFvuwsNV7yCm~*u8 zpe1P~f)Dc03S!|j8M_`&dJhVWe*n0Xc6z8|;{&UJ)ac#0!@P?swCw{N{Jq`((W{7W+Qm81o+&L zvjyf{tfs;OE2Y8o%a}8Fni^!_>w9cUzXg3(s68DDbAWbD zWU=YYX>?X#KloMWP3QmOE zOozP@h@@txdR*R_lU~rAx8D%KrbC|~^XFb4bS)?6=I773+f0H#5)`3lA;o)->&qx% z$cF-n?6sg`_)mes|B7i?mI(YI8Yg~*oMJd+k%xqmnsM}$P%^WEWuE=x-{OIOpIG;d zq(QtypM;*+u2O`ohZCvOlICOpI|KC$Y&6wiaor9X1^ziDm?8&L2`LBK2nj`)5k>K9 z6uv;=Cbn5%R8F!ne}us-}CTLiLZ z&tE*bu>XC%dCgg{$OL=?@8;D&o>x$KdGOL;tUXz|E?$v*ceKK0h4mde>5YQ_DGPZyC7!vPIomVez5~bam18QEAte{&!0sJU_HJ zc->wSb6)()b6;6=l&v~ymK`m z?P}h&hMsFhyRLe#742QzzgAEl^Tfx#KY7Ldz1ge&pC0{1@!Q7|M;}W(KAp%9ykiO6 ztVFYKx;V?dj4g?pEB73*m4Xx6Rgin8C9kq+-B_KVVjW_pgd$1A$yCh8 z*iv~h{uE*07=DPC_!s0Xkn=M*DULzuo^C?)&QAHozd@7+z#1k5PaQ0LF&yiDVLsmT z{qU8p@10E;cHE_-$n?8dJIg|zbI1&RA`I3d_cir2QS%gzfag0%?A5V2$6j}eb~GrN zjkyb+yMYTcz9z6xOU6^)so6jT3KmHNDF)c>kx{T-e}~+7Q9H9GVR{%gotg+m!~`N( z!^pG?<7O#-xiI$BpO(b8LB(d?lF)3Cn?}u1o)ojf-=dkxW>${pv^NEFkpdQ>Qxpq=brP!zuYSo5EDG@|CwS^;7MZgv1kqn}2NDnm! zQ$vY=fY4#m56d9+SNIe|l+t{HD9|Gzh=u%2H3d6ni6kKMN*>TSN0wWOJ2fb=q} zj?|86CdfjpU=|)qGn;p1EXh!0uL31Mt_QJUx@*1GujvcQK9h zL3qgiR;R6f-(GP&za&Tac)06?R0IeZd+n_q7_$Xp z*3%<~nACG`l@nG6xbyHR@-Fj{zUFA;9K=KhrD#ceCg6)q69da}uBRWAbkqL8)O17+cysYV$s|{O$bT{w$O#Wh zW;sxxq(rT#aihVIWRbmn!AK-{N-l$Y?7@_$`9YwAKGeh3GOhKq;J-mb!rAb5kK;ukhE;D##p{;tVtMaV&X#Ib+a?td3oEV zZLy{o_QnU3=1pWXtAsTt^XuY|B+Z)_20k)6qRz`jmx^MRWL`r&k~Fp;cRJ9T%xhfI zB#o`vf#zghecYEcZq5$0CG(n=3X;aQg}#q0_NX=*`R2KJ=Qsb;lIB`*OVZN1FnB$8 z@S54N_Tz_^2rthP){^wzW5F!;V*Y=Y59tKzWnjM zjpG5|1M4k_fexp&OhiSZus9Z9#7KXyCH8{1~2WJ~pEdJzlZ{k-kF& zTOL48wzwp9G76j}c&Id_<>G9SQ@t){Mp=`khPq2m?Ok%J#+*bQNEzVPe+)qu*E9Sv zDPV`gdca|C{=EKTtWC4Juj!6*vSc zcx5U_N$mL|pklfQsOWa07~dBI71g>4PalF_cZw^=_6b0yxl2w3RJ06KNcsm*p-ug8 zk7&R+h`%Afq?-vuA~XIT_9^NSF+A*6F(aA%L;H4Y_olr&z2a|?MdWD^v4k=z?i6%P z1x^xl(9V(#vBW3(z1meZTx0yp{$j7%>F;A%{#2;*e?AS@UebDOV$onW_*!D0- z-YS-t5F^$_1+J-}RUx?bdn48{kniKF>=EIy z3evt1eZ=HSwpG^1d5}XyK7$UKa{LJ|v9g zy;2tUzFb8aoK%6Gvp5rllPl)Q4{&(Dr%}R)Jwff-XHYG zAGp$xEZ7m{?-hpw($PrNjK)51zQF&-C~1lZ69t+-;?(a;Rp)3b6};)-i*9mo;`!_) ze-yi$Fj)SFk7@Vros`_R4yDrC2GT-u?|6}gy%T(jJ2POp%T)f zh>#Y?SMjF^Cn2IDJkFkD#6iivw63g64e=$gCRxwaaF3=1AtAj-k6`ws^m34;di2M+ zY-)_}b=bK}m8B;$)^RTGUMH*%4X4gmn_xXP#EepLt}Z4N70`%slw~d-o4tl_L}?b#!0jgVr*WV!F^`UVoES63}xMaBeG zaaFq*D&#G;g%c~c9zpgG5t z6RMD5uYuY??*Ok{Ke3@6U`}>LfJ(qo;Y#k%kdh9BNh|1uGgLC4f-_1@nhFvp(*(d3AJv$7D!-hE281}nDb2t$1!o5IviR}#G&?z|D zlDD{U(GSzKqmBn^YndjW?t7TU89!eTns_F`7@lvz89(J{VGCQ)hyA{Q_i(D5W+qH* zkwu8^Q4xG6hqFSo^4FykKR|@|A)NX4Y202E?rCplr}R?CCEIYeu6=HDum3EW4m{us zo|&a%lS|dm8}&IuGKc)&~pXQ3~35%IIU+dIzM%R4hvfIaC#0$14}NIB+A;7dF`ut z-HE*JE1ipdYboP5W_PB1oJ~4hi@hHd^uO8vW_Q9l1RZ@rajZ9XCXwHiur#4CYu>`4 zgR;~aPjn6>>IW0~`>t8`{RZk4r2EZnTk4*kG9c~f=(8Q9b}9Qjyba^~YOlVp zg?p>14en3Mto<(TCoSgwO7%~+m-m;b-*)owzg?mw*JbPPP`|x}hdZf3R^`FskrCq` zvXRcn5apZivJmAa#_S`N{A9FTFrG?>X0arlkPs17Og+j*L{Wx^a0>=8=$X73Nz?kA zAzfCQG-}?EM(@E5nLB#0y#Wfsh6OAKefj=hwK~IkHMW?QK4L4lJ^Kp=%&BxC!`O88 zXpEiB{$iR9^}Jx}$5H424)y@soNe6`in!*&-dQL!wzO^Ub~W$Z<_iT{_iXPZHODy| zw1$bNSLSb+u7Y7ErU^OI&h#N|rYX5;|FSpbxv>`tUfP{NeE<`EBhwh1Wg3ICIQ5)T zr^r6iB8VR&t@uAFgO+p)V2~&nFRENw%BjViQX-rTL`X9UerqBO?F*H%7Xb1-{KBuG zB&=sJ4vx!_kDyC@^ukvcHBc(Pcr;eBTwCtd}G91r85Nmj)HDPW_ zXqqwt4F#rCtOI|mnYI0{=Ymuq@nFw!103CZrjuZh>v}G`NnU12zfbOy_+W zoS)EmZIQ=|JIeEIH<|lp{tfp2#iaaBJa#PQ@lDAoc~o&RtIOL%LZo*+UMGwJ8I0;KXr%K^fpp+I-JYp}4e{Vx(Y_3<7AQ~zSj^%vPtj-26Tp7cnsOJDA>r4Gnh51X=PEp6ADv$RT& zJ!h`8-D}QVRUT)~Tu!CuIdfHe@^j|O&yg!_=R5Yl#(umt#o!PehYCYQSysSKPyUAZ z;!ug;5^6Fwykp<;q~##(Jj|+Ug}P(J8?$FDrnFV47aH1e-KWram-r@6p3p3~k3ps^ zKb~Tx<-(?{&=MsSrK$fz^;tL6mxi}>^`+rWuCGlSDm_-Nv~f)3DOH#joK~vOv&qXxC;``a#X3i9Q!6Cp9^o12UTkt{1P5DvD@d2-Z&kyFaW#&=^OsKMhG11AHM zr~^FYBf=q9y9-CkanWipOjE%2zHM`~pWE2{bkUu(r%o4*oL{t9$&o#d*cEo%5z@In zBrHyDNQ010DKER6GacB=53diKrm*!vXFBf)nr1;xfE&bw;KAvfJ(B~9NrE5~EQi39 zkHTg^GSI;)x}X(TKhQUClJex}p;^cc{6lR2+66o=nPeuIERZrAcDIe)gvoB^5Z^-S zVm~>IMP%D-(mpez8@35%oHH}%WoFCFL{(fx5_g$wb;)+!jLRejQ|v{>VjnroE=WBc zh{)!`=~W~4Q0y)^#D`+!RcG*<23N|)n8G>{hTn823+n{uk5P<(^Os*Vfb>N#@fvDn zhAU*_ncmd9vY(U~Qy!(%RmT(FND51cvuFzAb^i(I8p;ffe$f`wuV`G?)4q>P&gkx> zsd=IQBU5E;GHKd`?Z26>Lrqv3m((kU7Up%u8&?c&cAwsn72%PD=U7r0zg9k;v>i_v zj(=cvTpT+;79C4kD;M^W6_7f*|C^Sir4suJlXY=2+VK1n7ur#WMxQX$#`{+^&1gcx zP!sQZefzh!FKxr=u)1w4n(ZvKHooumL-9jPCss5aa=>f-OWN-|w4!NepRU*H;*;NL zUeRp+sC4sEf3kGTvZiR^0E?@7O&ve*9qWpwZNn#ouw_m0uOv%%QR0Ec6VZB{Bp?mW zaBSa-q3)y7#;n-dJK|ygN*k;9?fI_`;8vp>9Ovp)-Qu|XJ{A1dJ{4lvZAWL4&a(;2 zSvFR|q%D*%gjl!BVgoCh8rG`&dduUTf7bJo@Rwaz#2;;6(d=Tme)qtS@*CnOmZp>W zylJ&SGnM&Sy$z~y|Gy6_X+&Su#%31Io$?0NFpJZc^-nqy$qu;oHbWRk3 zh9}U;RL`ipl$NzG1mk`*lI~E0QYU4cIpia;txV6*KAFk{#Q>};y)!sgB)ZngtX!@ijW%zUWM+d^ZUeyXz~uw>cI@T&@$M65s%~M1J7WO zjxRE2a(i%7(ZtC)Ts=>B$kXOsQsFF=I(#lHcHm2-qbuU`6mB3he$r>bgcP^v`{bMT zMPi^CeBmnnw$#ypjEYO_qG-J@fU{-DX_Bvvql43u0oJ#4QLHE*`ZCZ}{PZd5Wb}{Q zj_F9W9z5C{#7C0mN&h+ApY&wvFn0J%0Cyml%9sA(lDNs40AQdkeeo>2@D*^!E(OfQ zvq1`rB!>g6u*kL`!BQu?R+inRE?>+|G8{&LaqHhCU4P52qLZ_T`zW%ToP*?ylJf*P zVRBBB^E5e&M9Arj5ZbY)V0n?A`rETa-+V)HB-Ph=4AITJiV zH}2}>^ARvZV&}M-p+JVX<60_QV9PGKW$XjaL51laDji$3VetS}Cz3<#fn>}qEBb#D zNdF<9)}VXDuqF|#W z6CgrF&GY}r)&4VQ{1s>V6=(hxd7QuE3jdKSf1lf&zJ253-t&87U9awWX%CqO8|cCg zT)=v9_xas1L)^VImNa)Glv97h@HN9X>|e7-`RI-nuHq(8yKQmu;*;l}T(wm#+p3Z_ z*Sp3Vc2)Y~!4-XRtmD<)FYR8ktd@7Lly}qR9|zALjPcJ7-_&xZ+D{D}-|~+f{<%Lj z;XhNj?a=b>&uqAC{u7&qx887a=8A-|VnO$bM#WcrVsP-=KiQ<>>pnHq@~%&ZdAi!} z6Pu1N_{3r4ZJ$=);+{`+xRd6Sk_NsK@i^T4$uN(SKC!_0)Pkc;w{==1FVOR~pE&c7 zyafimpO(QA^HbFA_|yiAs?YZEun+jO9{S5q4)9LC`O`Kg^_x*~yy0o%D(6_{9G8k- zC|TjkZkV?5rVrEn(R*p%ht|A=voX=UGimKv*!Lms0d~~KPbAImg#nm9Bp~{%O`01P z20p~u@CigX+zUf%di*a5&wTYgx~=$;q|K8sc$A5F;QRwI+{9S-j=2sB3pzD;`Ou|9 z@sg#T$%1a29Zb#Fp7VQRZrs!Oj=7$d(*I`QTKSQrZ6skB`LLuSQQ3V(OqSqM-9ofE zVW^Imf-OR$6NZLF(~cF*&JSC6UUer1J;~OwWzD9AL($fFDT^>Q=^>MIstqc3s^wy~JnLkX`K6S19aMCuMFbsd_?tk+zP9-MYUs~2Q zqF{IIF;;LH_$f^t6=jU>2D7Qu_G;@(txLKqs$^N$ie@Vdt%wC)J@wM5rH8Jnl2yA_ zG`r=rua~}5cSWrvDoIrAebaLFKmFp7MA^|5&FF`k^4OuJ)~gk7p8iE7@yKH#Q`cUw@!?+~(B0DOK0hil&iy%VXnj9KDkFJZz)> z4cW}JXIF}ytYoaQWM;=w7-^*SNExkHyAOHYjrJkQOW92pTwyeh*3xL-7@Ji_nV0>~ z>8@@d-c3Q*`Oob?=lqxN|4((5`rHVf)aT4QH>wc&FI=&ol05PJDT`1BT|xpiiOy0w z)r@J!q~k2D(}boc8J&SPdXm*yQaW`fDNFQ{Ij#jo$tswizzFOho#Wh*UqI?br~yT} zd=-T&Y^qp>VRr|gBG+*B!9Iirsa)H+z#h)E-yhe42J?-&Z_mgV?V<7ev!nHPo8S~m z1a6SY)ph?5@M^K=70YOoP1}1fNN9vesL;RXR!8UR13Zuq}N0{ZN78W0}i1SbI@xA zKlIfJW$>;SjtJ$X^^i~j^#;PH(&nQ#l6s&}ZzA<7yKXd-dUc`BlX^{|-ZIzhMMCWy zPu?wF)X(aN5B-p(P1w6Gmc^6Uylu@amSH*1y#(^8D~^Jd9QMe|RP>n5sW@V;dN40t zy)8OW=s#^!_H4a9I%Ky+rwY_?ftoH*V>VT=!H(!jyDd6nQ$l@r!DfqIq92(H!Wj

oy}&Zz#?SzhQGImO`UFe(#C%bDMr(ZvFo=w>cWNSJ}_`5Sr_Pee%VATaK_Q?rABm zdf=o5YbN6k|DPOM1y_-$K(`_u&2>AG1Sr^mno%R*Tq{!0DY_9U6!i5#-yH5UdI{$B z8GXV_b4OdyT(5mXp>3`&Ja3<e{p@X*H*yH!tT%c^7{d#$?fMH zWABFOtbPC5`{jpsZ}g7#;xptZg|cS{ga3`U7Njh{E^AkmxEvGXaW$PZpoyJND+y`F zaxQ4+aP-{RDx={D#>VhMJ00!uO`ou+m zN8+|ozs*ZvNH5!8Sno0wA*zq&1&}Yf09--S+Ytbc|lAk42!)YCepHwMbO^f&Rb1V zI+al3q83XfL|~Cfh_SeuG&IprdsEAnTbqx;VlgQ&(yYH6XE?qOSWj!CV zJ2W(Zrsc7ZgV zb_g{7vook>gwd%B*~Y#I#@c`s2S%x8@`wFAhg6_bN?T#m#zM~t@Mlg=##Kp4F3tpL zi&0Z@(qiz5EheFgQqW;BDbcuWQ42bDfOcN1gTivha4!*!1{nql!cWKcnL*nw-wkQ? z%zDSBtMe;Y=Y4V8UwLc!!{xQ|kN)Oc8o9fm9saYf&hK>WA$O}!u%CKHU9Nb+!=SYw z${B(ddqruBA?1kX#febFQS?RI!)#$lHN^8BVa)TuBNUKFpiW!`JRm3$EqJc5Cw$LR zrwZt@2rFaI73gpQql&BxctjQPXz?It#y$rm2GEy#!lgDin z0?aHV$T$&=&;lp8hVllLVj@f{3c4-ESOz=B(px#T&&+vAo|kzs1sEV|yvV1M{M3c> zGtkV((|{==rgA|+QF}FL6Mz#STQX*n*OfE$4+Z=fj~38kSLzwW{{)fY^78*nj!=Jl|rJRncV-O8Rq5W?rl;kR zr)7QiA20s;;{Ane+i~;c)JEGB#=1inv!!pE+?!A8IydW%nsrC-&u`WaJ**wd)}Az( zsy}!d$f)sb>4eEmJoO&h^maV-c5He_A9_c(xW?Zsm@iN4(8%{1^&C;YNh%Y18mQai z{HuZWzV5c0_Hh1umN2bwfJR=UDVWc z3hdCGn-EKD35#74jriq#@K-P6y~K@JewZS~h=IXy?MHAFxTYZ;-+D6WskijjC7R{GA*8;YDHT1cu(kobYH6Ffx9 zG)_6xgQC|k8ezA`t~M#*Qci%oxW?=mpaB+l>coj5F}Wtk(}oASx8x5^HS*oqw|^44v78XkHY)*|a~XFbPE=2%WM3~;j_oa_+? zSO+2lN#+8;4t%*N=;z0jEj5Aawr4?^q9Of+xE*oyQhg49WAq}a+gf>%#v)XN!QW17 zz<*Itv*)MS2n$+srpI7o?lWpiA%I>~7Oob3NY+y_B$W%0!@1p~+M+(}1_0yt!PYQ; zf!qibqG{q?ya?(7#Ey%SN+uZc5@dh|05?(HaL!%#8c88R#a z+)$Fa1(Nbr!W*l5n4ig+p_+;-ke4O+l&FaqB#Or*OTgybf^4L>BPnq6SCTSE>}Lo8L3Po5yc5n5b_#Y@w-tg|Y zk;}j8-QvnuCs$AHu(a2i8H2`3ezT(OVMSZEqGPk7`(Z`*mcMDsSH9(M-zhHL;MC8flvT!<~(@gi@H$yDe3sNf^81?Bc%`b^??=Wy^ACm^v2aCTqj7?C-tqceZbB5EnIZ9 z30OUE3ue8soynId34T8Nm zS}9kE6Xx=jIAlz+KFnJVMOtYZv(Yu@UJ{vVs5%%W+zVH@oX-sN#Ee&%$+2O6g#`)2 zd`~|J2OYqL zby?S1fYMIkY6)mdGz?8^B{fOW$febtizWCTZ8>2`{HkPe^P-MZN)2u~s* zO@RwJHe*P8$%g?AyPo9=U5m>p19WClvgN|LjXW>L-_;;R16~WN202hnz82U18XB}& z{KEN4&RMwAORAJk$RpZMp$&VH{?Cwf!0no%evg8`M_ped*VoAXHSz%QCok%Id7CM@ zQM-ElTbk;te}>@o_x-nqZVugg_2#Sh20kA7<;aGobGy0a4x<2&5E7xDSQ@csmKcegJUHe4;r)$5xw$VHU>wIwb z`q>Z8Uq8P(dgs~(!|ysvsq!5jc^XVtL&o_{W#gKft?V^X+2cTy**ugDoG?-OGpB=U z*ma|xSIn@ui+ohwGoGcYpOvvx|87|$RrBmel!JQpPk@JwX5&D%Vld->?5iWj`eA6((QM^0SnEke{c8Q%z}nBuroQ{SIdI18A2a=- zjCaS`MIG7BpLOKs$VPqVrl;$Xr|WTP^H%BL#_^CjIBt3;0ImI#)D8${lG^1^Rr^N! z%jSv6Y+x#LZr6#*yFMAtmc5*r1iIp-ZLaFh&pvVe>uH!(0h#?2%<$LW>s+7xs=hN@ z+Lf93hH;tR&JCvfG2^;%_Rd>(FWtVhKAx@WG6UVFyJv&x#T{dJ>hCt)Zdzxuhfky*Q1)Q zY)ucuB%d=A+Tobof>+nr4X!EA_V`y^u)y|lp6z$!n2o=TuebbaVeO*nZr@}&9x)w% z*{Ok*zSG|Z)BTV3Gfh)o^f@~;If6bPDVcK7U$7Lke8EwecF~yjmb~6ae^J@|dMEwG iK*j4$$CoSx^q0<(*UQ*1eGW|fDNL6IFx|<*`2PjlbtGZ{ diff --git a/__pycache__/envio_contrato_docs_email.cpython-314.pyc b/__pycache__/envio_contrato_docs_email.cpython-314.pyc deleted file mode 100644 index e2602095f0c6b4c65bca9536694a271f09e5a2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11065 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 diff --git a/__pycache__/formas_de_pagocpython-314.pyc b/__pycache__/formas_de_pagocpython-314.pyc deleted file mode 100644 index 8a55c2a32a6ea8445d51c62f4ae2441932e0935e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84517 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

-&Tl%f4Q2LHnVG{hK@;AzVR5_JVAzxN_y7tN1 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%0Daj4fbo);UI1V7TOXSwJr3a+z$GF zA!b~0p!wOx3ra(#aV>mxd};&)9r`TJgE<(Vbcs6VotVV>;c|oRjIK;#N+eZyaY&6# z91hgM0&3)pS=3<`Mt|wabY%2r%H-7L5n2b?x&rbqrpYJ6w02VAUS@+r=2)XksFNgc zMZMSM9-DHyC?zbb&VYi5*-`=F#Zt02L6#LsyQgT|5=&b5Bhi^sbaW+-iL-8w1Jsdh zxm!w=V?nxrc(02# zUVC#eA(Iqrk${phfUrsmPnE)>s7i{lw*-Q>66F#$p)e)hE}YVbw@uL*!EiI&J2Ao3 z2NE>fMFOX#NVzjMGlO!RjBT6vz|CbwkxAmsHkG+)V#pH{r%yWK5Dny%Vy<}N$@jm= z_rKxHT3p*2@Qbk(rKSuTI3hPPn<|?~jI}E@8;>$(<454cLBKC=qyiF>RH0}*+U@9- zSa*_C!NMVC4z%|=uoD=_ zJe5@gpyjjq<@O6MSWa}gCm0C@69CH3EJB94!)X$dA$vNY_B*J z{{p|WWi^%663lXwqE>!nl1i+b#DDyAuq8OCgPBS)6)7=t=O#RtrLB8doTuFGo$!E& zOws}xv%Vp{clsQtG+XV6MH->?g>7Q6auJ(PWfFFmqmy7L+wGc#!LisCE4*7p$(JXf z5(;c1R)pwcjCFgea<=%zI%v9$4OvZi$hz%pB-xlTbi@eIB83$NstRb$lbYrvK1~xXl35On zBE{`L#zM<_Lc)pc=QVXS9%Y69z>i9I@`vH^;VCdl$J3vr{rC8$H$9upTU~*)EA)tN zGTSPJF>y`lx(<@-bUg~PdL`ES4TXu;QMZfnZPbugI|9ORt|h97;}~OJ?_e zVp^1_L^lmGU5On;95XmiIFI%X%vRP^J_keT?471SWRgz*cK}r?G1cB_@2F=2s=&d= z9&+?MdIxWR%>f?yoa-9+HDW%8+k4yE!4Z>+aK@6{UIa6Z*$5s{nwbbDo|Sk?7_*gY zVvH}2$FF*1HhzXOF>YF(Gh^e|rpMj1Qv|yj<-Ac3_IKm6NCnPudIUT!(h!xvtdH3+ zA>Y{eG%emp#9YjNeL#Aa70?GLY(5(sfSO59#m@B!)J_pxfK>+}OnscMT$iT2BtOI6y$! zTd9YMV!J#<#ztKu<4D zjWkwKaQ8G2QcJf0UNVW4)ChTpeS2{X8x}$kSmK5HbhhvAA8G|lJ_S3)u;PnOCNv^S zJ8^BoU2b;M%eh^IWjlo_0Qd>=VW>wzeY zpi8iN@!AZEXrWKuULw^_=&o; z!4AR&bU>LXV+ID3Cn1ahrl0mVY&VTz0|YMb?e9tpD52{p(?(C@NllZ=Wdn=>fH7lO zCw7fd>TwTkAIdkwAHe~@55@-Qa1DnV_DLLhkhheUx~tRjz(83p>?u!8vSOIM5;`Za z!>se~)c1)Xp)Jd0q!mD_)evPP*rumgP!{4C&;F$ZDnlzj3c z?LlF`8R@XqV@EXS0SZGzR6(|g*>G+_LZDJ~{s5;Xe#T?(?4=V?tSTMl%-@3p;m*Et zdrN2QfTP^r3h)S_P$2Iy@DV#BD!HmWQWZGn+E@L)#>X38i*<#_GXx zv6B?mBy4bL2npLGlQ(?+LK{@<>*dZuAJVjpb|N;*$QaX;ow4W}?IX7|`6ELcp61aZ zl{$;|)wqvfyL@)YF%iD{yyCk3UD~KiM;wuX2nR@K9+mcEbld=2+~@!|abzF}GC3N< zd|=ln*p@R=;9)e8(Ps=7n}f)~q9`pp=D-<<#DLMfBrK5umM1i^TA%`+Q7FguhL0FP zGSE+;|#gxmf<@ESBbN_tK&* zvUEBJI(waLMeXejALh|kJ92)v^)TjH%W3t?<@DupN=F7S_nz2Wz1(}g+#|?>mVuDDL zxHu5Lk`CXoIC1An=XpQ6e$heU%M`|XMkbJ3tU<=;RA@wlI)-i6kUj1x$18mKvzNal(=R4VlBl?xU}7JTZDavq z@mZ(q98RQUNz{n6K53dOqBjsv3+_8#pMV%}j3l%yu*!NHUCUlSdVb0-uvtBF1bhAH z`ELlHO*#yt;_dVr@_@ZmD=L{pZv0ShpBUeUxuYEHZy#W?xr30@O=#`xZH2(@Kzrwa zm@v@UKG-fQ`&thprgx})xV=;>>66vr+R0M{2SUF6?VY$Uhk^%)_qLNSkqQ}NUdRN4 zm>>+ELCJ&CBu{T2?xO}Ba*+U`6F>VzEufOT17Z>Z7yh9~1%NU9Q+sR(h)5AImWWeB=jJDgP+dOUm>U+Ht8nC8|5dA?O27LXXQci;rW(GvOAMJ+2x2=z?Sw z`{4FOR5>8_102&1j9-DRBN7l2)qSH^r^%DpJB7<|7M9pXx8LN2i~*_efPe$tiq4wa z`nu6o19k__!#i6Yy?q1H#pZvYMBKzHNCjn1e}!M3Uy$=l3Xhv@eBR~jr^ZR8#P|00 zmi`5FW;ofw^0?FKiAU*T9Hv~ncgD+1O*3n%o)qy zNw#g^CA1fZoX6z+B{^pFsfU&(PXRf_*O#~4Wy->Y0;IQEs_2`rrad@Fo{feUA}@#GS8n=Bu~yN98ueO zsJ9Oi{EmTk&s_@rF*$e0iN2+#SIO*E5uPWoCuUwzCFyk$RrGoa=Ah$xyG1p#8y=n_;LK)Wbq z2pz`E2}YhN(D^)WuCHA1Mqhf1YG4yms#iKQUiM~hkt!VM54Qy{rF zejXRJE+?)mfz5jPDn$ONlTt~)B%Roq3=%3Dl3w(FK`Z;|-9g0fy3Ukw!Pe;&mWaNT zfPL{A0a`yv>o5Zml*YJ4bYC>Y$QYtGJ*A)(V*1k}T6lJj+lfnJMvQnQt*XwjNSkPR zN^&cl!$?CE72QH3MAK72AbwC^iezDFKMF9!27r*#lK>Ar0*I0NPkjnZk_Hz|n*pIP zPZ=8JAys!`3X_p$>$D_>En1jxzVqpDPZi}M^Ua>!l+pCmYk{kH22@S4HRR9}O;0U3 zd*O&WiFuJm4DSwr4UB7H@^g|@sm!#nkWJ4a&~DEGDyg1I+7v~d7gHF4&`60kmq@`) z6r3pWI*=?3d(lV`L`jAe3y`OUk{LI#Lwo!I-P`pFu}_Z zE9wWyHvmSNm10dJObxSE#;9MG&|_+CAvg&vhhceKcN3zb3?P=oj!E4^zhjxPlxTqb z7-LfrP(Qbm8XyZ~Mo?6BZUjO*GngDBG~BR|J>n$sTu~F@DwD_;<|oyRbp$|?2dzt? z7DOq6)8$E{Zb^%FhEtOC#2ARCaK+IuPbwuh0{mF>Gfvmmppj^yG|T8d&`E__B85^P zM8oxxmjWr7fvuK=h3uuw7Qjb5CunK7gl_VX-8axY#w-(4&IFV^Zi*TtB4k3Ni3myS zEIu%0Z;8Gg+7wQUZh$`w2_G~NpDIu4bmdrz_OJU72TsK|bhh=-Z)TzdP`njvS^kRurEA13Dc93i!4 z?nqFb?%(}>!+Q-2y0xs@U{-BNmrUxV{M=W2p$}M_zoAiZ@W1LUFp*3=*jbc5V96P6f(#GX+XSs(8a-VddSGw_o+$Sm}SN2c= zXCqC;88=cAxY8$v1g;tHCb{Ov1|_H8NYio|Pcjm?bP7w~FqpaQjY=&NXDGSc4V{*= zldo_?r{wA$!!bP8CBQM5xV?`{(zxV}@^~)wu~x|$AM4UM%j0q_SF(ZfGBymkT;@g# zmkqbc2&Wj%~?mN#XWAE|231HZ<9&uYs%tKUS%@w8tq) zoM9sqHXk=kFuwQrG*`&ko^*3iYyXgR+i#3;)CPd1C)iRpbkK^5frn9|%&%wi+2;l0 z1)m|LPk!g*S5NX8b%OqYPaFC9nxOaKC-C9GR}b)(i@bYs%{{Z~o)MB}fe}!ieDdoj zdHYGhe2Q0?Hk71j^0C&+*&gprg;Qqa3{Q$l*#=X|(H5uRG{2L$rbt;;q`YhS#~DFI z=0jblfzyT(^}d!zDn)YYd?V~Z8H#*|LTYGV{_>4=JQ&V8DHu-ino|#yc;uTKNXH}J zb@FDv2Mvu29wDbXsH{QAT(Tc=c@Okq^=YKpn)0^@hE`tF%JOIWJA%rB2QW-XiAGFTcf7HVB4BUegG@YitHIzTN1zt|b-RO)3bbSxCv+H@e^L4rDCU32C)+ ziQ!~TZ#Vf%VR!p(QXwm)Zn^VbR=Z&6;58i&GO~GF?UF~xIKV5-4=U=GOZoO;q2l?+gnCgR4qt>7MJHpP@D;&hHH>Go^GN zSl=sHipP^==_jAvyrNpZzB0{c_5_u^lsakt#5c~odnT}Vp;|Ck29;G0j8GH<94J!9OFj)PiP>}6A zw4R*l-w%`DzQgOA!uATu`3N&+`(F`^#lEilX&JsAm|2CBn(piVi9Q_$lyv$z_t*O1 zNy@mJWDlHQGJe~=bbV#_zq}F3w$1fCGdMk%lpAn-(0#LeDRZr`Az0V|BVAwZew3^* zWIQw}Ocq~P$Y_?GkJV`*GwdoAubPVkuM6g?HFGU*u3f60)2^E{{I)e~*{Zc{p<&r5 zSnCCI!<_b`qzwO!wcK5+xx1Fqh1|Ne+-5$vdAWb3E11)}Zq4?eS+iBH+A7gs#{^rm zU_Ch3bzg7vb%Y`gRcg$E%D+{p{M!d*p=-w7ym9w}XHK8iDKp?sMWtOo>h{alAU8D{V9 zsJm(UH{O*4fAUsP*~f-7H}K-2S%JNO(DYva_q@w{zyC&1*~$udp+Mk?*~(ih_^J*e z?U1i$ogq5EuV2U*0H)tpr}^W8>P$8vIt4=)ujvY@GyE+%v#SazIl}|Z(Q~YJ6Z)iwO3}Z+X`tbo2u00;?I5qre2`JO@Yae! z$mj#S>((lM*TI!4!P?I&E$bGmzhc28Sjv5UYybit!CdC+eUMhf7w;3&_M^S#Vtz-R zU_RjMT{jg3`UKM+-;s3;d6QtQ22h##fdfKjC9h0hx8}i0w-sK?{qp9OykL3js=0*k zeAU+*Dr;DNEm(GNHLaNMIPL4XpI)?}zn5OiE7R6(Ro{!}_p}MS+67w&z@;wPL9J?7 z9u;=92C~6lp9q2u?%GZP5L&i3K zw_~MRDDM!ghp5fj<;ci`dZNcm*EKBXf#p`A=%Ao+Ag4{mE3J{N?NDw|-X&O%P*y9_ zBWqp&Lxf>tS({ekg`ze=(~hi}$ZC0{Qxxs{-c`Qg6o1Ak?0Z!xbn(i(^};9G6+e3Bjfp1?O`RX94jZIPa z#Psf$f_e4Z_wEhqR19I9G=%uk8h77t;tOsJ1`CbBU^P&?8sMYGz>CIcSYr}Z)EEOb zCRvTf7^pGu$-|i)Gn_raoVuqP^SOt!p75yQe$zqv0vHtoMx8*w=m;3S3c%d*(U zl(M^p?;i-J4f?vl=VEpGJPQ_bTB|;0(1V$t~8Q41()A-7R zLaAe|wCiqZS5SF`1sC2NTWA)F>(`3g?iRNNmF+CF0Ly2kP*k^8)N;3|1-t@Vx=R-u z`8rw04NF$G*ux*_7RqH7l-KN7v@N|QlpYEy53>Zti~6NWp`<;i?D!1JDYc?xv0!m@ zsX_qAWsab-g%wx2ShMI|Y7(kigq^KHWt&__{9@};l2G0tlz_EpVu3|By^A#qvwzqu z?0`0)hL7{h=QI6|-?uI0`?@|VsGQI8AN&2Br50d?xggNBq*=}v%#B!MjRgVde6In+ zoKdo_vCPi~nwNlZ`><98&aUhZvK7vXRmu#sv{>KESL~JhJQnHXESoVX_NZ;|y;xkZu+6xx{`8bc#{mZ+9r48>+tzdG7cI;Vt zEx2R%ZZhQ*IzP!hYWL z0`(bwux!AYO}`6oj$#rN*9DaaSbPDtMmC{nUr@O}oE|uKL)h7PD}JR{I5==`=YX(d zFsK}2(S-pwfViIwp5g5qzQeGM7%;Ay^1(P7jPqr`Hx=Mk4S8#ZeY{~`;OvrXwP+u< zS%}&x7$~J7Uyi$sxMIYC){?RpY$NZ{X8+ z1iY(hJ7Je85q4WnapT;3Z!NyLeDO{(-#;i+4Fz+D`HOCBs6RS-V(rYiwTo8+iT*bh z3KwP;E-jmvXP4cpwj=x-H+W5ED6M2It%=8fc@s+0DN@oOsujsafwO$!o~6UfCzg+_ z%<#uf@kdYdr_b`vEBsmTW1NSp4prALWi9s*-*p6h*I`<%I=TBtdVUU1FP1HZE%#xf zBGLNDKy9iQaDtQaDd)hoO+(#Gbc+!Z~wv5zArE?w%Octx^lzLGcQ@w$Az$azoa@ zG4sVzVM%+=U_a3+4spjhK5OS%R?Xe4nx(eo!WAx<)k5Q-$-vr?ShApB&JSuD*R^E} zP0J%etpl7>A{4gAD-u$%il>->lEzeD7yKI2{E2(&oRGO>P74LI?v~|q zTIS$)wXC*`@#7wT%*%VH(P^)9hln%02FCl5LUA|_jIBapbjGcl&Z83J1uk^aO`gl# z15*Rv*uyvU-WlPKjqyjvk^UUlt)%olN}vT?K$}_*=E_))es4NRe3tPb2l{6`P7EYm zfS76q(_u7&wK3*_wK3*_Y1Esam=p%f`)~YfH8v%m2i!V>@<6DeiN4JbQicg4)CY*n z1cn)GEb0Rga(xCxYSsryR9`vO_q@ifn+{N^^`XXQ`X1yyz4%8dip&x!w;nyl*Z1A= z@cm=_vCW;fZrVlV?GDw{(swTgRB!$yEg>NTOejY3^gVUnx_Kv!q-k#7H(sBA{iEdc z_m8aG>gKf%EPMFcc79LCYR3hB;u?S9b^i4kjKv!g|33@<9|P1KH$nqy9*tYKTtXdY zHy4_`LY~*S2bP1Rx$a;;s0lxGfghYehKt-$8d38x8d10y(e!5YpSc-5*}}Eakeb_Q zNYmT7l`|`S{J;=DJi-r+BJ&v6n?RZS641|ZG1%!=47S;d!8R9Ru+2qinYkG3wYeCr zHCi886zOkdk+%$0Wj8NhzmvnC@CaGnuWLRsT0f{?x9$F78r$|9Xwg(ai>6wsc~+nb zphXjk&;me<7Rb<=o&&8V=K~DQ9)k9{9lLHJ95pwG9If zKOrR%I3?uaG`JeS-|l;FAdvpe(?LzymS3wny6&c{PGp1lMNqSoc?$y2pI-~MBe`+; z%yQqI>O1Z`XZcfSc-`3$j>~YS)X9a8^pFR~WjI_i;%p#6v#QBiwX^fb)LpPbn%ab0 zl;rY-SA^ufzQYf!yF%u?P_h}O(?iyxb#s0wBR^!ZiL?CuA1dvCd0(CKGetb7m51hhP+2TRzjtPF zV9EH0!}n}-fE!XK{_@#L2Li@#4nvrRQo*Vbr~QR@Cq(4_bDhyKS+4j&QXPGMnBYjH z@1G_&(C5!|j&%C|d10%GzIW@>=p&@1vQG(%3@Y;JSFk|(RbN5B?v=7%A95`2!$Rp- z!-;Z=d|1j#d)VO6(9g#S4p!bL)|NQ>y^*bEpF-(V&g%R*mqdX-*GnI3D=YY~8d$-< zNGqnuU(_el=a)%V_9iy6@I2a#63?WWZ0#MV!o&0YB9w6>(Z61Af*d1)R;4zxguYuck`@uja~t zyK1EXSECI0XuT9L7B7F3WWdLprGRs48SwKGUfnuhcu2(npG0?EiHpBASySkkN{_!a Xm9AmGr|g{c&C7O7H6pw*fqwsA>=oTt diff --git a/__pycache__/parrafos_dinamicos_forma_pago.cpython-314.pyc b/__pycache__/parrafos_dinamicos_forma_pago.cpython-314.pyc deleted file mode 100644 index 922e931a77effb7dcd7fcca765ab7203d54435df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84544 zcmeFa2|!%ec`ttNEX*)7%&>zHhyjEEiA4g*TD&5Jb`ZWo$csjJ1S5ov0N)w3U@OLs z6C+EGQ0zuy$EhcY+u+1$aGW$s;xuw($8OVQ&>#<<&{}Q%lBP?ZRJo1g_O$jhCmpRjH9G+7Z_Io$~g6IC0UX&+W^6*#xW-Z5!aC29p>rDADwW!`-x6-6{367aTWbvDcyiLYjk`E5kUK~F>a=nc zpC?xt4W-jP=wl(bZ3)MDaxs2MMtUvAPfmpukUUM>3Z(|^cP~oR=5gC@j!Wehah?Sw zREE+mEjib=TK6J*m1Ih*(c|UlaiOPBu&ucR?JA(wdkWiboSj#&E4dQ-TE=>z6s^nX zDYSCi>ZNvKjXJh0+FTqcX6rm{i+giPpoICITS_;V1lE_#x`h0_>B54&8A8F{Okv^PETOQ@7Ff!1ZA7kR%(n@?YUbMv zUyZORj}waXxW4p2t>A{gg!$`)Quxc5e>rO1A}q#xIlcGsffX!d2|_C5ka~n{6)F)@ zC5JQ!OYydhm9P@A+k|TP`M@gpw+l6htCdsUAk<+`t`?RfYz0fd25DM^db~HtY1RrW z@wSS^t`ly6e>L;pD6D~hE%Vk;NKza zVE*mQ-^Tnc!tE%n)zhl&x4;fTKv`P6S2F5 zyWn;RcO!fc3*Rkx;NQ#qcL<$`y%Tk|3HKn>OQGn~T?pAG?86%$xSRRAn17GZjr1PD zhqU`y341-}wm;G>R@n=9*`uuUz&&%OIiRNT&Y7lHO|x&#H1{IrhqGIu?DIhPoH_4P zOZN$V=+!~itNlVh`q?84z&#)g!tG^abU#vvlmg>&ujf8(UfSNCUAyO?7O&L8Fvn_! zP5eshia8I3qzgs5kP3tZv|PgWK)>e(gbit_0t21_p@`s3cPfK7gNQ$*^ThvRYxfQti4nSuK~_p4A#tMdURUas>&&;7bGsny4{+5)0SoYm@& z=}JhBSAUvhd_^Uf+NL5l4#`VU66p%^WO_uUrD#|3d_U7=kiEzyV{fI{i|JCXaaHr6cn z(ZF!v0hasYo};?7H1m&o9#Gob&G4)6i56b?WJ0RPgi+5?2PYh_Hzve9?ip_TrLJqT zS2&^dNtdG?tvjT(A#jYf>ZIpb(lVY%TE-nH${t3Yl_$2-w!{4aqV={$v+;d!bsv5Xn zc><4nKDj@Gt%Qd?kAp1XxcwkhaaM1D-_&bTeCp@22(sl<}`#za;PJTxz`9@wzFO?0t zxF~SK^C`?h@|>U9%PDiAlo2@Tc}yv#8$*LpdF;d2>N&yS-2#@M>Q7!qvihGu&rjiR z41cF}ZIMPGc{%fsz$rEY$#W)a!I)<>VFX4$!U&v77=h$vB&+{4+dpSKC-zIbzo^B+ z_Rp7i} zQr+3QlmvZ0C;YAw68JQO$Il5NHRMUpr)OcN&nx`^{C;v)>=$&g1Yy7E`Lt4+JciGE zp45fhh80Wg_&p8UvG?EC-j&pWrw9glo>FQE{Ep`)Iro<|n61WsMvWa$5_?9CeIZF~ z(9?)EeOdU5TKCf|y(wd%eOe3pfLO&9X4rwJ{5T5Z$k*!wf;`|q;% z&#LdwvG-@y_mHO<`9tda=h^#n>iZWwpWn-^c?wWff}@{r;XR)Te9`lTxX>>kG#Gf^ z^F`0|dORHXJx@JKCz$bjN{PyE;P*Z25Kc2Qkz{%*G7uB-9q4kNC^-W!BrL3>2 zW&NR+S{-jSC ze+BLyqRzN zq{8KBzq)atJW-ZM#rM~hXPV_vX@cv@^ES()(hb*@C+1nJ?@vO@f6QXlmM6r{uvoQ? z39*04V%65@Vt-X?h{p7JtS{u1!?tB{ii=Td6tX%lvCK zrAn10Nf}bP8j0Ht?d9}baSLC^1zz(!myqhYB&lBaY``qNCj1R{6lgqp0zYIs>W50b zfj8KW`k|ciZ?%+4F9UC~R!b$ltHmedVwF;{hMtt_)4L!T*c12@R@>`w?fMaG*N>DE z0)NWd^&>fDvUdHM+OF4yUr)RK{MSk`|6v>*{fD5VzZm#K&+~Di&m;6q;4f6j`oA>T z$KdZzbnns({8XC(d2DncD`kyTAnf_Bx;`Wc$}8%-Bx(Gf^4kpIone{+uXmpv~hq`$(_|KS|z|Cz=9#T>C$S?m|* zh<%U6K0in7zpz-6&Z+Q<$?8;?q^CLODC1u}uj+d94XnRM0SBf$-;{k9S&1q{l0tQ} zm_q9V*!qid`nOnm71qs}o>n^56rEK*@tkRF)on%3Lc&&0zwnFI3WS<&`Gn_Bl-1d7 zVHENEo<9LK{>yqJB&__^@zUzvgmPx>4`n=9o|v{HdJ=X-Pr{DqwzIZ<7d3w1 zc?IsjdA{f1>dma2AA4fDv0v!Sg&?sf^;EvQhjqHj00( zjAGz#JW;jnIW+djXY~9H=FD)-5&p|0c}>@u_pg$!Y$sbiY-P`yhrexcd#2U4=CPF1 zz?Ofk$CHvDdCmAs*~=@qn~nM3dbSfZ@bn|jvRa0wo)(1tZhV-2Wd(p&0>CAKpDO%% zGvAE_Y^1CRol@I$fVJtO`hE|4*VZ;Tf0ipX@KdzF=J_Kw3wF=9*vy<|Z;pBk;?ndj zh+o@?b$Y(da(sv7aMhdjsS%&9f1i~*WA0ebv_3BIla_DmdbcIMcRdmptM!ga(ouWn zHG7w(uVq&IvgeMS)xKV>eLc&8F^7x#bJ7+SKvJDg++{>OSyB#sc zme;kl(Y=?Ai#iTHOmc*gcK?dwQ1WZ+N$H$Dxku|s&t367=@#S}E&GV8`nS;oL(6|+ ztQWHumM4zbhn(*vbBvOq<D?}6r6-}dfp@~l<;wpaT#+I$M* zx%9)YZ&vDDE1GZVj)Uz?Vy}%&H-qKcymlXy$7b0z=k>n|Z2!yah2|~q==v>5{k8Sn zD)+nkSM2wPSb@4};aZ8QUtiyymyCnyNOft*I7>OaKj|Cgg>K5X0P zTJ670TISc+=DBE@Ypn18_O#6WBRm@y&cT`fKcHnkY|H0Z&%Z@l=GWEYxoDZ$YkBtk z%|**VZwU%%h3BU_&43hEuWB5AqR7wHUrl!d2~XR_*)mH-!zWwzJxsJAX?{>wgYb!2 zb**G|O(iK`%Cm~aUz{`k1{VL;objt!e00wEHJ)>`+O*d5#;mY)o=ra;xW`lG@8Aw;h*eX9^X zeL`5==?lS7#<@Aq;uNl%$u9%t@(DnfE|(LU^mHM^vjihiuFRO8x6-Ah(;S)cDYe)G zIIkEeZ!GWSd$}8pMO-hBx=T>^t+X0ZH+q88hx)oHBptnIV(aBvwM!$h;d;|+?O`Lp zB)Wlec1rT+fuGOSn)sGzy_4r|gXibifqyl72kOqqsJm5bfifbMxAPqLGs<1X$L!wz z{(*ou&^yrYZ>=)MEE{}Xy$8L0vGgtdhrE5g-8%+-B8!ft2|ISRZs^?HxP4>iuC^|@ z2G$B%uh53^SJ%Tcf)ky4P=)mD=C$?<9Ib^tYEI0HndYUKE8-|lY2gce>kEch%1&RP z!z;#8n~!w)2C0PzH1&HA`eJ4@ZOG@Rf|e|axd*+X=-ofy@9geHbZ-}Y`v=5>-p)a9 z&p_?q(O6oixUbXi3v~LtV&72_2TV8z{;rn58R0G)jOMf%t8+B)mUZF#GxqHFINqEV zvpOyt@%zD5O8SW1#htP*GJcLv!yE-_p7%W*I!% z+1I%vDCq%XsW-rzh~H{dTTKY=6yrGeckY+ZVm(nn?-Rz z#EZ-C6A$%v`8vH_T?0e?fta~jz~Q!7hQ4|qB_2+r+B>(jwCxbu*SUu?b+2xgVqMI% zVN3H}G1HFLre^qez%{oE&G@l2HMZ{%;7PfC*A|LRMarfvJDa!cjM*gbmgaUPct_Lb z9ddB%uI7&B7}rH}t<1N&65MQPJGi|D(gRCY#<%kapqms7f>AKl0WQ2?{uxbSjPH*b zd(poX(H9sJ@!}7NFVN~tVbd7!Q|YCmi_$teJLM(o>+BS9l#^@1pPx>SjBvl;GWg6Z z9dXt-Wk}V|4H<4UtbzS) zcMh%Hz1b`uJF|p!udeOHoH$FGt;-AOkGzXmUYrUpQ6T-o9VpvV3$b`^;6l8WJf4wcHnF`t5NDX^!;*5USE0{ zw`YzR!KklU*H(i*zdnuJIr|bU1f=-cJ6B3vY~N9^Uj#Pvw3G5Hdo_zyrgvZ9y&PC9kX_Bz&>nk+=-O< zZD(Fv=K(K3OXu3PYehQdU1erR;bMGuj30{eT`^wt)3h#e<6&DvybZ6+VLRd-yp3?v z7VBvJqlac(`N51Q9t>L-PFqq(Z~x?jW0{|LaK=>-T=B%m!q%e8M$VdjNr`#v!D+i= z%y4q`+gS^zU3t$|g&M~Vzqj#X!Lp04Wnt?wDzo9y!!xd&F>f&Q#IfV1QGR++acIS} z`%fMT@=rVvwzj^wW}@+{H=fP8xa^kK7QDIQ^}>tGS`bWGn;t##wkwBxD<3@~6_R!0 zW2}&3cc}5%Lnn_)ZQb$WmI?1yx1VjeSbfWD1#dQw;N>hp7XvRG zTi)5UyairEj~!f?BMtEI>2IT z$=IWn$SVt5h*QK58dczcw1wDWsL`0PfwWQ#N-4AYVVR?i>Y+#miq>Om>)U8W8x^#| zb*S4@h%?H+t~P3=%+ba@mSm$_WfKXUe~{AB+`40@TZDZ8*L&M~7Z)?OY}r0+a>EsY z2tc>|$ul<&r|xQ{knKBKhf`%w^Uf+$EW3Z`pidm=ByyzByHE7`JAHm>vw|Mv;&!+B zU~iufq=V@52L@uMLD9EAW<^-vK)=tQxZeTWIguQ;ME?RFX}_;{bO_sas-Sj)9~UD9 z^%q_BVQam*;T8l-P8#(~Fjjmpps$_ybe*8_yky)VGCq?!8#QH?FkXrP8KWZF#diva0Q3Wn0*K`#k%b z<^wB^zgoz83v`x*yr=`(e8DI#LlUu;9D<+M+~+r-~@VE zL%t4oL`Uyx+p|sG8b~WY3XeRRm=&M~K*Z0HMlD0vo8OabB?>a((b_*~*aO=)>FH1b1s2#- z7)wT@%@I$OOcm9jj~6U@dPEt6z0!Dt(j+v{M$0YX(P{?mF=uoDBV|;Dv&;An+@Bl%Om>FzI?_kW;Vq6Er7*E`xR}A?51S3GgNxV&FXFsv6 zeZ9k8u~Wht;yxr`psAlx5;Io&X!8kM)S5qO&5u|MMjB_VnWvnOJI6j26316WtTiKz zmjI5}KYDnq?DiN99yLd93ACJs$4z4>id#wCkw)cfd>v8LdPr#6G! zJGJ`w>am6sHw8PvC4VMn=K=5%_-8Ov!)(D)<}3c>QB6YGNf$y=W73YCBM-top~2fk4@;XAwjo4qgB zo@<<{Z=TM|IkWoo>fov;ZwWg}bUD8Fk!KN`#mc12vJVQcBHrxBOzj*-n8)K>_I>qbA~4ourMQO?6ifXroq-(JXd7}}_egr~!(z^6fz z#u2rvWZ@v+&V%bBo)`GEkZU(3gT3uZ%NEqK5f2_S@exdl9qXW}<;FS6z`@_m zyH!c0Z*v=D2Z@h@y#e=O8!SETbVr%I0@`5to%jf;O6hy!`1Qfm_Ego1*FkO4wOh^8 zf>|B3wcBKl`q$F-_G|WCu<1uaH&QmGFZ%fTM+(wJm3o3S5txXiiF;Jqs9nW^Lxv)q zgt5xbNc&a^@bfEP;A2)1GByYhdxi}wYGeFz5uyk%@cYGf{0>{(ZM$0Acetz4VwP@6 zM9M(3NMxKybdN-3)=(zv{X^dVK<}_mq{hXJ-hF;Xr;9|WGfq<^K?xcG!&okscF=pI zQ!W(5zg6*z_fYaiO2XeCGx>Xa`eWwqPLvii`XDZ&hCuu%#*FazsSQh*G=L-mGDazs zc@Met1Ri7vSr`o3&l3##v1!q})`H-wh_z&-k!X4#5ul38CZoAv+L0Y~6izw{gSST< z#iRUtRxT$$m=?)iGSYI%k{#ryEDNR`X{WXx-#T_AnpZKIS21pkv9|&sb_?l4Z$c7n* zYm7g!aisZOTiU4a#L|(bX{F}$?5VtE<4uvgYezP{Q&4iUY_#WOb?E+)CKYeYRnjF#`cxKmDy#aUqk8=4 zMaP<{8+U};c1CV&zvyU>+V7sU-yN}g!Y0rA@2%h*IV43cm~mx}tvWG$!McEi$ps(y ziKKfbW21rlp&@tULgNn$c(`#gj9)X7c^(z2NQURP1Ids(0m&%+&VytMkWSi^|UAK_-~731b9`?j!Y z+ix7{ehD@Dvstyj;7t6|E98Xl>0-Z9?J7D&Di!5E!m?-*3H@jgvQ@#Y#C93yWB(*p zPDVE%M>`BKCpUD=n+FG4Ab+Vcibv282Dg~(0mDwC&p=C+Nt*&d6_Byr5IR7H(0hcz z62A#4mjFme6I0klP^#MtkkTnnP1is_NL$J$!t$PDW3>t%Op$eQXxEf=^GM@65DxN0 z;XRoe6rOScLQFdsj&=qcgWl(Qp6>ZkK*!U-sWa1{7?BgGJxifJ{swoAAujp=wgTcOVBXcRVrXR!4`V+2uf zf0s|fF@!~+3gZt+lS=SHnNn-#!CpTpn8Z&Ylnu#E@G!a1BS+tMWzASJ#!8;r8MQ39 zAOY-6$2XnW0`TifA6tL?aMV>BcGU(;f)7m=)P}9KZ`;$Qv7<_qM;*I+5fZQM)6t&> zO^V;Ha?|SQF-of)qutK*!^Vc0L|wi&j*J@krUk^nw!7rEX%e5EvnRxZgX} z7Z4xCo5Wcu<6`XWIV2uO@V6<7t`e2het9#F%(0axwgaK1aCybS`_J6>>H9`khfS5C z`{BI*o>>OudDE`k$DIVj^FHu{pn^iMl>0(jz40Z!{x=G~&rySwWo_nfy~4o>0$Sl` zo~apTUDTGcriL9fbQq+?PK>aQbxpul$A)-1*V5a zUR%2WQ#4=VC^ZGv76Dg-0 z#~mk}pj$vOtbgios3i2zROt;gmA9O|9nL&swVsvzt17M8@)U{k6ls0Lp+IA&|B(18 zguX%18RUT7_-LvN18Gh%gbY63Lq(BrLK1XdOP4W;l&Y%K#^+z*;EXj~rk`K~dy~cq z^q~3>4a-1fEu#|SK&6_fO%EXCPzW(~KtKZx3Mg%}sM%GI3Oc!34&al+^?+MAVsX_J zZ3G4qo)TbCg?Rv2RaJ}I+z^f%l8GgidK7>pU-Y*I>641UwDOC&ZQG;^gdxBK!;$zv zXe*B%O_R)Fm|8b(+YmFf^jBG9_Mv{5D0BnI2E4IUMdBmF_B&Br%-ZD*_<9D!qcKab z-`fZJDVE|L9Q5^fi#P{H8|ofPW*is_#0*^r;)O_dCPeCF*~Dj%j!k+19u*5@%viIc z)}jm6qTv4LyT(htxF2$(sI_6z+7Pj>!XC0YMw))?bd4Hj?72~U@dbNv$PlrYg#uId zWp6vOr|oH{)*WAW>ZX%7O*>qS<`+NJdL@-}rC+vj4yPha3Y+q@<)kbrS}1HeT}y<2 zeKM54L~(u%KIRc%%nR*gKlAK)T2FJME(l4n4*1#TDhh+CiXt=ya}W&X_9DfEML||3 zNCQQUKg84#z>8Uk<%3|5O=LW(O6&A{_xp%!JJjntEIxl7G<9@^jRetQ50W3R3-8?GacIxkqSk zcfZ^Y!tx1^)}uk=9u<0O0?0UZOY(Sv?o9om&kwCIv8(c`3~d=oy!NZr zjQ;rN?6rPu?ons%u6g>Y&djgW&nl|ny89`qm9E*(Jw$u3r!8CYX}`eQ7Vx45t9bjX}FS^`;mZ~Jvsqhk{umS>{r=a#RJGCF}e?vZyh;1$!Ui(Y-9QxroI6W zEKvCE9Fxe29`X^6jTvCGhn2>O z1e8$Tqb$(BoIz~Si#LgzRz+sb+qvG!)6@!4kgZ|3ccgB@F=08D}IPa!9 zMsGind#dnw;fX~f>&Y-jfJUZ1SUik{mEGS0OOQY#aC)1aXH%u5K=_`*nUW$u6-Z-5K_Wor4SXU_H zslE@d%Sq2<${+KSPJPk-NP3xC^siFrXydyWft1HnMvn#eg-RmU#Y|KgcDSc3Zf%%I zW?4wD_n#OJTNl8nb0LZ2SP(}4f^{Jw#=;N$v=!dSw{0rp-YCo6bd&Lo8+o`NQ6Bes z6n0HHMGDq}P9C>|$>VnL!NVkv+ab&2kVbt}tVqjVFOSnG>SVGejr|r>{HO`b1zsn~ z!&*nt;(j<->9lIa`^YhoL*zdseUIXY*+(srgh$z(OkOUnbY zdvVlWIccwaF>fO4D}}G6h3%CQdutf9aRX9)w6O*ur3#3|8WeNQaZjajR|rKL$%o*K zK?;f=tsy9hJ?fy7nKdItK$5^>6C|NVj?6y+E9Ihewi{qw$aX`|GP4qCpxHBrEeKd{ zoh^ug^mu}4EjlEVBr2-bgI+2b`VpH_Hoz}>C0ScjoI?jk}%VC9;;m#+bohAJ36k2r|OHSNsDcWz*0LkIIdtCvxzL`g-gk zD6ZdjrO%|=Pvt(IJ7y0Gp^Qjs*~ogLf-|NI3PW3_3TjUJ$LdcU4qI1Ftbn7~Z)e27 zj9`yveBjSVZLg+gG!}8MF67BAvNu*6UtPw-{b;N2`dE`3T5*K^$fC%|H({rfON=)C z&R%r146w}jtBN<8te!=~!m<@*`h zjq!IdY>I_J+nk|JW#Stt;2t>fGoLQm;Rj?W0kgNSBMlpu+u$LA4gm;jF@U(;G1@*_ z$vmgl9$!1QGgua}FN)fiOxmHffo{jXJZfJvXuguVzCLVPuZrnj;UC_aNE(<2VCM zNW4eIZz2V23K7%p%Ez3kAR6r08S9>HGZ_p(Jc0u;Iak$9eDI3 z(5{z&BLzVr4J{>G$Z^n<*EYSd=_^~#=1x`LI^!x1@sf4Rtf@zt>O(jS{o$_; z!b3O7b58J<#S{DvuN(L$Bx$Kvvb?={qOtv_*7 z)Lt}cF9J0Ys(;H~4%?*1H(xPx&g?4?f;gqMh@9%9js{Wp@@OoM9}Qq)^$z|xD;iap zSRofDsp__sqTdFs-?iwsw4V)$0|{^AJuj zeV;PZ093;RZG3vpsEOn_rm^l5J1`cmydZz-fs+qNJ-2WfxtFcz`N)>p`;hw1_Tgtx zo_-(BtI=ZXp#yzVM7-2Ljf~Xx&AftJ%~DknvwR3^RK{kqc2M15Dpl&G4ZAq;f!J3S z2x0!TRc_GqNeVKHpGnd>Q4OGvoJy&nk08z>$b@>+mC!cg5E7me>?1|Qz{GyHB$Q*7 z%BjU!p(6IDQClk2C5wh76^TLOT?JGGYr{wI6EpSo!nQ-*Od_$Xup{&jzzC#oz}xL- zQbib-_yaKq3=MHiudmaG{ifjLdniK+9XRuK$D?IyCv4DJ@oyl_a$0jQ!vo;Nw1e$Y zOTh(80aSu8;+FI*8KbH1Cg@q>s5HgAFuZ#6)Y8q{R6-tdF^v?i1J z2e%p!avrpn$$Z{qf}c@)$iW_BY}h8bG;5QnlgmR3Vd&riNPicg!>E%v8Z`s%SxYRN zp(aDJZKBDWphv()k1G+&MtTxUl)>%>fFI+0+KfR{he=uJavlgXu$v?jBtr1@%=XE$>fF8vU zjKqN7+0F^ls|nlgpd=CcA>RG8q$Cq8iAl~-Hd^Pveo%8=0l)aCNV0);994xKM^OF5 z10$OyolAN?V7@(PtozvwQG3Y+dx@f72~0T(p?Q(wnxc01l-)g@o_)r4+6FV*#&@!^ z-%iiJY)DBfomo)yT){I1p~lY^jitQj;L;0%OP*gGbyZBcDyGx3C`a&yx6(_mlyDgf zE|+o+*T~lQ-*a)W)U|lZGfd62ny{X20p37~@H=WN%*hi#@Jf>pp#HPQd_GsqJ)Lev+tXE!i=#+dQ` zz)_H3#AvgI6EQ+-6!zu;9P{pDJx@di{-J}N$R}Pzu1@M{Ej(b)9cd%Yj0%~yrahJS z>>`}i@lD(wS+F{ivF4(6&Ew`PMi3#F?CB%hXOkc@bTwa{NPw9f>zbJqH+5|J;eiuy=ASm^RJ<0UX$zZa!7=br12GRrgt-@j@ zjML2(}&Wvb9qORFrJ2BSu>(g*=^0zXNQUL>>)tdasPt5Sx)V{0SI z!R>Ve}S^%q^eicK7w(=X2kQr>3Q)X2XVR=C5mMsU!b}4dkO(@>2@(*V+Vj zI^6GO{DRyXzq@xoo&P7BC-;7DZ=b)`rZI0ZzFpzvh&hos6w|P^{LY&4gEi&d@XSk2Wan?-3646jTUXPVE@o5zGV=8MT&9T1%NooZ0A&bxx%(o^~yO0Q{0Q z^_1nfWz2ZOF?RbCE-3#etwl`k^0%&AM~#;arqqm?oV+u4pT0YqQ#F}WHC__QSuwhC zCM$RB(3#=W!%yD&e9Od=Z&klkeR1)vuVtO* zb%)T$3B*j;TdJQ?>|Q8QTPkEgO+XNuJti<{FniOq6g=%Ba1X1~}AV~xI}Zk*ffaqpBig|vxCCP3Rjx3REInvZx74)*!h zxhv|I*WXaHd}YmwH5KlfTig{Z*0{TU?#6v$Zy!8;Zi=s{b#F;n_0=|MOZwe`13veF z*xQ4vF#6cuWh}Vc>z8*-t?dI775Ragl_%{9BU@YAa)-d<9rRB8F`SqY%xuhrjXjXC zMqSe4q%L(*PsP7O@&{;vZiR;}(A>)L)JRVK!>uDtquuXVY^VHZ0@Il}V<2&Y4Z-r@ zP^dk$G0cvY6SIHx)I*~W1=ll`LHVS;JYug1n<^yiVnCV7V}b`Ofxk-g5KlTNa8J+B z>#X05yUQ9>(!ju^GciT%1|wLoQGOEOV2jdzC326AU(8NkIYG=AI0Ex~`AxQ}RoMGH zo$v=&Rdg$v#Q%+^K1PGHh_!jfRv5f9VyhTwnsJul(5&;ukxkPWf}2#U8GVOUj=mZt z=sTQr>8jghUIa&qT}iUmAZ;NS_K~~{Yza0@($hT3vX>=md6ZHwL&J$AqoP=1Cy=D_ zF;%oB^}3UfE{T%My#p-;x}3j$+MXIZkhH`{F#NLxddH;Df54CUk8p5~4-<}g7JrVn z_&FB;o>Gx>lIHVactFWJGsddU)Q#0a$?7bPIx8ogl@aGsOsd5>R{H3%U|wj))Pjby zmhY#1JMFu!H*c6)bNftY?fB6*`KipUqZSa4WBX3tJe^fA+Dc_Di)NOEGs{Am5$EEl zbLpgWX~bErmX?rHCOc!i_k%SxAMuItwl3ON%98;PCeD1-fQ3i`GzG#+ydPao0`AzP zhthkYeNd(!w9^HSJB++yhep`y#7QZFaW;vI16C^i){z4H8SMzPRkzU8Lsf&R+F_p# zYg}GBPK@@`qp$^oHtiTxT-p>ZZ4v>gMxE*iaH(XJEqey-nw>^m*%qyA6*f6K?8<1$ zA33ph*ny!^*+)+J!L$xjQfn2$Vzv%5TziKFuA?IjZdykwTxW+3uB*cVH@)83VZc6C zA6$>3`ZanJy!n)B%SaeH;nCy**hm@PeOT?b^>kH{yZb1+X^BWLZ;$95Jm64!Pj@J_5qx%^&L4@<8E$mY-@D43C(U?lp-{5YFy`j0KCgFsr)*>ySBC# z#3m?BqO=Il4T_-9ME4W z-RlRL>+kKOJnP)O0r!v}Ex$+B%}56(?qTGoIB=*J_MGnCe%1%p@oL)uFtK>J7c?}^ z75Dkw`@CKExl#K)^BudmM&yL1SL?<#E znGcM05I(mf+i*_O0sFwJjMfLKG(x*}Zm4yCU~pG{P+oOCWA{N?+_1f1i>3P586Ro^ zk*19GWT;hwl#GgI<~BqiNHQ15rMN0*%qFc8GIxyGv>69&?Hh!k1qZPW{e8^b23JIN zABmY+dTCH>@?Zc^#}q#S>|atPAHY%QZNk=Us3bZXSc6W%XlLb=^Dv$48m>;QNt9k* z-l7wW{|te9QeQ%&n+;-@4pKt`-#n9B9I{Q6L~~ajw~ZQSoHMDGisa3sTj9KavI>vuNlAhmD)FR!fl;lZ&zepcO>68nl_W2_pCEC zG=AUN`bhpQ(fkeJ{0-+yBiYT->}`|T+alR5qp365WzV-xtU9{{5sRB6*&9bwf4Z~* zH}a&8JrF9J%wBRfb2Js4I~m4<2^j6esg9=Ls<3<2MAyWwvz6!8o?G_jo#EZyaL2yz zzV5J340ro4b9{iWpRT`gV&T~qQ0{5l_)E^*e=!@<@-8h{NWX>uYBZ(Vu4Hj}t1cHp z{lIK}SDm;eY+4|ZY5#*llIc4C2Za!;lrjALHSouPKahYx+?9Sv7To>=-a$ws{D9{^ z5-jW@U`)IYizNul;H!vR8Gv4-C?s{WEe-fjQVajk;NSolX}q|-;=W#-Mih_Q0J`=e z!N7hMV@VX_zY-WB=qtWYjtW)8f1}rR{6Cc7Kgjt{a_E{o5q9OA zXn+IoXIEei`YoC%f~==R3prlOVI?2g%t$SFIN1LoDxNXzx$1_B)^tdfov9T}Vwm)EG}RS90JMjpqdHR;l#2lNc4 zCRZ-O$lC;xGKCSGmJTcYRz`59)~9yxda^Q}i^WG9g9-Uv-41_&Vw@7Uhc zwjJ%b;WVLnyL&>Shk)m;TM1$E)&>tAaP@4P$g=?nJ{MmF3ZDG*0p5_z%aY{xkv zvUqbOdy7U)IAMMiYzQw}9$wKDUcTYn`g0G3H|`Ga9tt0N=rYG0;u{V4X*8^-pR^{! zG$;s=5_!|0An*$c!Uzh&&gHMYoSBS*_@8|S6a4>o`^>5BvmHCz-C`DP6o$UC$w%l; zBur6di#c^mlQ38U^2($1`Q$7hhfLVSh2+e+K}deneXEhk3T(*BhGHy5BJOx?h)k z-J?V5BdgE&s{-ih5m;CWe63-SRQYNW*mYTy7tIbv6)RvDLFNWLq+tN)8VSy@M>7e~ zEMOW`(@(V&s4Pi%p3d!p-4offY`mEiV%ps}n#FOl+sszVwJGJvW&?}4q<5RmS3;{{ z+pQ8788i+W+KsctH0{(^5?ZlG8QYq>4|OTl7a6Q*lo{P-tx{Wj5x#b? z{ZAD&Dk)xv413!p=-*n8V6molufhDoHR(hA*gn zvr@bAtF=P&LBU&f09TFs*VWY>K76>gXJDYG&*vTN_18i`SLYoH9H_$`=eW4EKj0rO zzh+X>RK_y=T?2zYeditn1K#XY~hhe ztX$mX=O5^UnpJABTmo)i=eU2tpP%@m5$=+;VcJ@E*=)>B8EL(2Gn#8=oW-L?T!Lgx zA2U97?2%*Bt|Hu{{4R_`%APen>wA7@IIk*dS$e^;^zEfJk&N43C=1>GjjV~=U(Wqj z;Y)?zTJ%)yQ)Oe`CzqV5K3)Bp+84@3Q^FayO}lbnrxSKn1Q&&^6=ZPNbi#VddE6PX z=CgZOq*}N6inC?ksE%Z8f2n%>_BSeCt$3qqDzj3#TkuTX>AFz) zTbY$FRZ}_J6UxDzPPkuWtocN1*uF4qTKN8ZH_P{FU;s11ndPAXlo}_DkTjWV{{5ew zTxKKx{(B$_ae0!-TtLQv1@Xp!Csbp=g6W(EC&?BmwSXA|7O?yq_+S3BmCJ15{hgTa zPo`|Vg?rUhvZ>JY>e3>(KUkZ)sf0VfvSf3y>9v9)xUU!IZC-48{l+r5KfEPx(*olg z`8>HL_RWRHH)?V>rx@N$N!y%nelv?l$eVdQ`SVTi$0@HZsE=`kL3l>uteFUVLop)L zwKwveu$>+siDZTC=9X#d8NjPTt{1SU2#|{Y z3DCSrU&DajYXb@&HV*~%*Q~(}`&I~#2k6!_`uKwh+qYk&-3IGZn3%$V+cfA691wdE z6ldsegT5E{29Y(YScfg*MxB0Gg`?v$scEC#V@;uoXzJ37sY}PbGcb}m`Z(_NKJnl$ zjGS#5!tp<4&_7E5NHnN$(PX@_`W z1Z7s%79)7We{9ZQO;I;Qb3^$15DPFQ+80vR#-MOQcSnw_=A_7e1B7L`_cc7LD(uS)xdixO3 z=XJx(z1O?1&*x@E_8vqPSV2%5baz6zBG%HGGmLl4f@@Xp^>qcH)fnjV#|(#7Y{Xi$ zcZt4k)X|G;T4Sy*Xq8|c(+e1X$cL*k%-swL84fkX3KKq@(W$SAta?y~W)vv?IeHm$ z2nTg;Yg;WOhqAKDhF&4m74wHdL&s)du{^NVb9rf z!nw;L_G(;`r?(yrwSVc3&)+e=KT^IbymsqU`PLa{L3rWri1UuH^^QvmmPQvW4=-3g zzAu`;dNO}?B!4ZeciyoVvQ!%*&P}-6`(4MvsH0-iQ4w`CPC6Q=twp%9e>%P7vV}`q z&tHYfXv#?Qd${!@V=OnAJ-+H(`ILP#-PM;dRuNn|zUy4`lw<2i^R(R+&c7jSht2m5 zlAZuPP#@L0VVHGC<8kJ=R)$Mz^`IVXqeF7azU$7U9i7}PaIY$r$1Pl-^{NcRg(}%o z*Iie6x3^}vvF0w^6Wm$jSyrXk$~=!&g1CTTSJ#1-!I<9ePPTrKPTY*{ucZmBWj&t3q2|=bQ^T1nCK|rAc4F;Wm~q_0bOqC} ztT?eQY$^>I;Aq3A3?a&qP!G|NB#fNvR&*G{Eu*$uXvv~I5{caM-hG9f2|xRh8bb|G9u;yQKqxh)O=+f*0>3I1FXKdA6y_=(U(RQK zHRmx%)p$!VvFm{DXR9FjkxA85eKt>7$0f6%A;_xI{JN|EdL$UH;u+lCD)$}O!$?-Y zA7Ly~^|ZsUI2JZ$-_t$MSlE>o&mIfGA;f)m8NBoS{ZaX1ZFVuY_6`%M7h9b{pq@Du z+%#{`%#e(`^v17v=Lu8o&J@xa#>yCW_jXs44Qlm4K=F29uWJ7RD0{kw0vmh*G7N<& zC_X5Jg}2f7Za=j>JIgH%Un_og8j8h z;rL2Zd^IsEFe8BVmTn3Al{UljPEO(m!W(e+54Zsod~PLO?QnWx+vl%a;mo9K?@~9& zjM~7k(_OiVadK{i`Kv(fZN~zn3lzJLiY@Spt@Li_?cP{r#(n4Xu?Y$NS$s!)7%Es0 zunb`2jslCNF`TNP9g%b$G1EZ|XDmf(e9YSKJIqXfW2vyZ03rr1pM|>$eEt3*T$+w{ zOWYxNOrXPFPy(U{WikLmC=EvE_WY=Q(WHG*#O{vT7f;$@z?wVlS}|R)2pGpv4us=K z`Gu9UI3Mo$c<<#@&YXJL!C4)T9eMc3m@Q&i7%py}vNTU;=ANlMT^U|j9m%YTW;TQ~ z8zwTN8EYmp)|@SXL_1^iXv#aToSDo;;o_!9=7z9i!*pgojIdmVQCI1tt2E-mk%`Jl zS0(JRrnAbY7nP#=^eR-JZbS9<%;Oa&s!)AuTGHyX^UrKPy*bzs$zB}IZU|>LjN8Mj zH(kuygcDWSCDH7P$?S?qc2zXHb~3w`s>sX_R))5Qmv@9ScFXmpayfNZIdhKf7dE9n zJC~Y?`qCE!v!8en_>X17^1^C6sZr?=VY!GyGoO(Fx3kBT0MLZW9rpaFEwgTb+(H%yGNr5pP{Re6(^ zz1V?*fVv%QWy*A&$j(5}uqj7EtSp)igLET3>vAQcX|?9zn9iiV1ec>l?G=;uiV4s- z6%qTosD1sU9d@i6!ln%x!lpLUL(<(c(jGnoPboOGU7PD19qq)o9~%X4c6~SB+fe4Oel{H}jWFOZLd} zMmzsuBndzF}Xq<=xxk3 zK{z=`wo?=crL-C1>Xl%!8&o8pTZ6!6Mnnj?0*sb>Ct=V|xq6YV zY}ik0`a39{pnzlrb;F5UM>b%2(b9(x_|2q-(`QMZ~o(>TC=<8_$ZPM$~fVrm>rX z!dp1`hfi;;I=w1b6v?WRvYB(`4{C?aDuO?D(Sr@r?wy89?W{nQG`XA zUZ>q0s<$Sjl}Uf}pba02%@qfz!+(ri*Ss9+LF%8v;#TsmD;%8Q2KF<1392k^3bJ`k zUh@cyeFjXh#x`}B8*p?pkL$Dc@dM_aW{7U*z!GyK>N#MfQNt@>kk!wofGAK2fjR1$ zhrx{_3O*r`8c8?AyqF+q4)yaWv$vmMrGu|YbEzLEnVkz5$H+!BIj&MSU$UG@>(Y%V zU8tp;T);MbOxlJ!P06;QV9SI3y+VT)b35q*_q5hHa>RvIhxNo?{W6xwO@@)A5-Wm2 z&HTpO2oC8eyLoP}koD(~^CUl?qrp6aQ3`=0UC61k7EnoyLDSCEq!)cAmv%$*pdFx? zqXl%RgLWz&Wr+)>Yv#ficxL5--IfJCUMW6{QlJ#*5D zwQ5@o_<<wuIwY3#=cm1<2VXsnwV95Ei(fE_Hez)L-VJ zXy)Q@=3;y#Epzec`kAbv;67ZqkX3OZs{)rYT*8f*DW_A$9>5itxTpcw+2t(>-5<%T z8Z*h)F-&JK40b%XC%7jhPG`HHFAMGa(*DoyAK!C!MP$j%ku|=u zu>PM@sLaglGfPe{2`^Y0$y_$t^o}d@asS)tg~6TA?S6W9=*|gP7dD*Tcrm>xmY#og z6_-`c5GSMDCA#F3G)s)`?jxVN#>9TS#_3WCp)u%*Ma}3?A?`ce_*!(_*RJS5Cun_E z;6qfjOn5Su6z|IQYSx?jya)GndvA#?o^Pg=R9~c7&R{Ko!DG+owvO}T)n9c@E?mQU z29fz+AX2(n#Heu^_)-((j<_*|ksq`w*}4}+^3i%^i%sG+V2E(rZIXf~b9R%&r;vq_ zCQ)SjCDs~U%>E10Li2*l9GolbI5P|m=re!8B~R8xGb_TG6(J#-Q9YSaJ$~m|LnPzI za~m$2w!8~=!}y%#X-g>Ov#w}fcJM1^Xd$62+0MD)0*7th#X_nz?c^bLGVD zNaoGaj1A!o96cFLp%3j19UmI=L|kQ2S5??m6%t2HZ(Fm+y3ZUqeIR%!lDj0DTOH0N z{v~I{WX_6-sGd0 zml5tHEu7aV$wxH&s5{JyPv$g0TR`O2fN`f0@K+@Qvam+(#X35|j~KR_ZKMU~%Qy?S zJw=ji#H}}yR5wtKi;?3dUaB#fj!DMYLqsTPErMO0+I|I#sqh&kg2g6`o&0JF6-(+x z65XKNA(BXX1{aoqDy{^U`WV_mq6F1eoQ6<(H0^Z~eq<3^l$^XV!h%cg4=`u)l2r^$ z7}AHj(OR?gSrPg?0`54mbik@@BRIrC{lQI@jO?&L>Y_d!)&^M?)nU=J?;WcCB<|)D z%Qj#IhBZgz-yh96x*83T+M#_B4+{(JO-(vx@if3qXuqw)mNaEN4S*FpXy2KJHE2(o zT1RXucpPgqC4P-=E0=q8i}VZZEb)!WW>@`Q-k_typ{_TD9@qtXfLi1D=&eERN2GQL zDQxcu*gt7(|JWru;V{9pBjl)@r$`XERs1*wK1$9f$axG71O|^_#wCu7ai@gcAykAh z%8DE4a|j?mMk)1iavmq=C^^IA5U+~6W${5((bp$FO$9O7dV(TPlJf+dn2GSTbP@)@ zRefYM{|qIm?4;Y$7<1c+L!vnF&(yLc;)zH1U&Su)??#sQNpSh05&d+*!sp7LE)Utp z*S}RzH?|)3@6Y8vof}GxELb|W{+)$IZ|A#liS2Vso?a4KFup#5G)+nxM`S?_a^x-e z^l)hB7w%>$7mhXkcu`5vFjHI_s{ica@vP4s8{ZdRwBkbkis}4?&km25e)eM*^J|_l zLRwl}iX(apmtV>MD8xWn#klEf))%Z33(l^ORNfjXyDgf3+lBnwu7@C4i2G3)X^}cn zA93FhS-3iyzB-(~nuvm%K@?nB&Mj!8lkziM7zi=Xo=8_oE6 zZ7sjiVS8;|IsC7eFNFI;j^F4^`62Hhzmsyb0{@aA4oWVDXo((_Rv}HYa$sLZt_5>X zx%e!S6PM=4-jimUE@Z$b1DB6%`WI6%&@5C_>DgnOP8^Gx3a3nkzhobP`gl}{79%&4=M<; zv9=t68)uZJ%4qe>k$kcra#u(akR$QYq~U`p0$0le$fqcPr~57fsu0J;o#0nM9Z1~Vu`Gjr2&>&Xp#EEjCH z^62v;MhV96V5VT~unA^e4>OdWK{TPwccvPO5BAoXG#v(Ajay~Iw=4i1#00kI7pQ^0 zCSr$EypefmA+YFq7RU>Z&*}i zNkH*;k(5rH(bZkxYe|y>2pN;U&E`1{d^=?#Gv2 zE%xcm>`|s`-0)UL2~>;OIcJ(rHwWt?*-N9@%fs1Z1(&sIGHcaD4>Tpw%;s=r^SS!b zrfEmksn+AI!G^aS#kg)bvlN%^TJtVgN~g0*aXrhZ<=xB$;ErK`Adn|He%T!GZ2@6~qr-qLY zpL+1*gVX5+(e#qZ^pa5NmnuJB`NgGE={3{oi=a`OOfSb*yUM?K?_23Bu4Hfpjr`?o z4wrXrI=v~lHIiL{lX}j)Q~k&LVSnIUJZi*R`AZxE}BlydCDJL{Un-`8%(>L zYR-24GiOe7Ua8`;3a;G1Ip+I5B%yaYyQJfkRBoq^ClRm$prkJoz?z3Aj-T#sgtpl% ztw&<(Av+>k5g79&Wfh8z2#^%c%2ysuuuAR{Uq%WZ0MbuqQ$V(*ro+_U_vBL8=fk4T zk~W>QaJ1sM4HwQUpLo~fmlR~eJAbv6oC;m4m2lYGL#a)deej&>98zrEAanhGXO1rbwW)KocXf+^2}X=i?LaX78`vY9i(n8#>N`9%t|CHiEq zL_DDkRo`S%hRMweye@61B#LC(&syZVzE6{6QL77BCG?>P*v`Ni+j*IO=&pVIXstss z_NbG%53eI2*d*?oeNTjX!5+P8NLi-Irb;91lvH~S)kMh35ADa+;Z!;`u;PZAJ|E`H zgD6I_#!}cB0w3t{hfy)n0VZO>$p)c_r&1N*Y={&*(Jm!2L*#?K|cej5v(p+kPd?n66 zUy`dMjh97I|2yz;V%TBeL-cf85kYBf4=5O)kUzut@F>FB6-dd}N}{>(BH9hKd8E&# z&GJ=iw!xWW?yugCoRAuIZVhwJPT}2qE4eRF#8f?LOc=w0qc- z?C@`c37q2Zqdrn3l2SO~(M&p!?o&u-0q06OhlEEvs=#4F7?-+G(h|4%m z^+(3d6mKtU=! zyPv^zAM%R8cLs4d2~>m)Jd?3bop$rr_DYKj^5-s=rdLd+SBzUC>C2<(tHSB4CK@A-8(Yi zA)2;$GHr2acOc6uw z)Oef^0a#RU^#6S@n9PbK4!G?nAgGB<0E|+SiLNvdog83l@o~WD$nM8ZtxaVo`fO<;5&4hY$j0U_~CEDQ0E$svnm@kekrN>Ij@2xT%m zo9}39ZfoDNqg8=4Vwf_`2{uy23lz^Nhj?%yMksRdt!+1($LEUuv!r=ap zFW5Pqo*!I-&F^+%^XJ&G`BUxK{HfVv_g}Q;KW@L0M|$e~gl#WlJq!ZJ5w>UB{>vDg zgfEDzln29)`is5dV|sRP)DwqLkg78K4kNDD;_3}LV=YzwsmPx7*H5tYd|Y}}125}k-Me|@!-&u`t7XP|*wtyJ2$nL=t@|1cuEGGJUx=&6 zv=L~h5uki#Enh-xioX5rs!U%?e*hOK4W{0j+RH1KU{qOS8PYP>V^f#5=q2=;4K@a3 zg0ck=O-R=v5rwWuSxl1(#FFXXCPRuh`*}C=>!u z%A-;!bT@*YQPWw_Sny(Ow%D#4oKngEx4ka`ZZo;k!%u<)2m&Ah5+K17ybtk^NL{={ zf|o>!BqWm3j7|)ANTLQLC4i7b&S(ae-K|jGxQ1hI)=<2uf!2E8oqVtV9|sR7dm?8zRn7 zI3C_29Z%T!J~o_2y&=tptFmw!&8EJie%C#D+P)#uxzG_I+yXPYBf#`fkachTP%n-z~A}(Xd1m!EdLh40VAN&|ml) zhPdCi*WgIw@=GxU`}5!{=8#y2*wBFA{UR&ZxYG-7vy{kP7o$a z#Cyn5XqJg23&z7rup1Yb;Hq)wC|&pA9ZD!UU0a5pcWEM_xWo)b|FmCo(-}w~^t(f+ z4S3l*3#92Cw}->_5g1&7s(1WswYHytwh|aq3B8(z(Ul-qB3{TaUYgy+j1n;MV%7Mv zGr6GLMz^(b(C`W4Jh!M#h{0Rw(O@#*iV%E=G6nUhWOQn@O_Xx(XV*8h9SEw#4L_Yp z1eGLROz+DXD_^E&4@}t&XA}=nPdykulMoNy>F|KvbU7JwL1&6My`bexT#0BAa{f

r3F6&Tqyy;e!9^!l>~=PCK`XKoX;O1Tm$O6D((N$^TxP3S zA3GiVBvqD}GS?`mNzC3w#59WmzcTAg?a;o%1Uz zLjlBrEL!jFKD;pGKRU=C8xf9<`jzKG(Y?I7e6jLg&B2A%9}e(G&kDUZzw(t&iG>=K z?4x}D%ly$3{E3r%<|#pYnpd8FphZI9uh7=asp>6u-Rar&54|SDJmretB6afTg(d$8X%y|GV0yE8lPM z%MV6JeKW;(>>C+=c||Btj%&_8a`|e%e$6j04F$&W${a~7D;{#%=32jecPNfkVDig% zNCA9$DX%R1cI~%ad~MrmZ5LnLwd@qCyM-Nx{qi30AgUan;@if>xTQ{^3>q=pd1VLg zA-$?^w$B@c!hK6d9%iA^`g!F56sD=;J?+pA6Q`f6n3wzImB^ovJZB6jljaQI(PrI$ zFvI89tmg0M^Y`O%WLn+*q`H7o%O{&xlZ*M}VqYunoYnD+dm-UW2w4QeqTEAk20s9iJQ?b=jR&L4(M!M`b7Dy)@g2k7s&~PzwuFhJFP#As?yy z8JQ^pjk@H9$|T~t?a)0QqD5UWtO1J{43w&1GRqaRicx+N6n6x%*7fkDtRCjdhar?EPj)8RUQd9w(f++LmAY|0DjFKP> zHj4lvXy|XX^;-H5<1|`qiH&T7NrNdRjm(FjDU!U?+TUxjQEOQiH?8wMo3(RosLYI& z`_3)s?;5`I9eb6VwlPo35UFxwreNCEHi(!cqS+RR#YhcSRR}AQ3B2>TMO3k$qF)Qm z{j_tI40e!8FwF6YM*W}$*NrwxBpMAdVnl=Lkji4F&^w2M!b-kvNI&IFrh%7Jgw_r# zpujE|R)%KG$zY1u^MD3eH3d|Jo^MnljWXdj2YnsB932j z+Bb$t>9V(`W0M8OYrw<=H$;nBqNCXZd8C_(V>Vrw)@FA;2CK|Ge&?3UY-#TT#`jrz z%&>!CrZy41VQFXb%BsxA2}szefu&H15Q(5lNn*;XX2w6Kb*ayn&HWZ(+9b33fRS(! zRM6)R3OzP4>~K$uJRK+(iIq&60XFMDGmN&t1kuPONINLM>(V6dWRQ)_S%SKf;sE>b z*q!fAM9LHCu6tr^#6D7C9=1D%-3}^%Wq=(cOpmeiR7BNG{pV{7<(k>~S@X^mJV%b8 ziU_KRBksfKvg4K>Yrna(tIyKc)@5n8)|)#VWH|$UxXtj2Jqn6Vof9fa>>s;%Mrnq{ zCK%NyoiUWbvc@nv5}n0V|B0Bh<2fJo5H`vWtA{$(u_+rGpsy8gCACOw#hi>o^m@UE2s>+6Lb^Cu%Hu)7Gof- zYwQY}b{##XJ=TFTbDOpINI%A?zqDfjbI{^~nJU*fa!-?{sL3IeLG?JmGZ1eAoJ1uK zJF`y3qF`Osap#uX1%zc2gh9@BKse2>An-=)3>3V~gp8&L@Nl@zXcOM60dy>_48t)g z7_zw7j0qLQnmOgZf^M=)O-6qWfjXi@A}8Cnrvh589GHdU=sUCma}k&X?U7?s;AZ7FTI%z%+d-s#*8tQa3l)(dRbb$8HNPUCt9(6c~ z8-azkghy=)eW);l!e59QSDc4_w()|(5jXCXr$#4-K+>TL<2=}d(FuD{&Aek1SV8O# zu%MB(DVQ8i6Z1~DDt=RJ=9ZR6vTm|36jTCYW?40;73~FwrXaIC6qGtxj0zb(0<#3H z5A9CG;Ux57jP}N0!Xq)*C;}x7J|UDCo+5@vu$1&^ZwUlr6_iTYfW4G>yKqV$+C4=k z14GMD??eStABfOw7fD+^+CqdnV`3 z90WTFqM4y>&3^9goBZ?uDIw0Y$(L3)k z4ZrN7xN2q~w5)%D-AY9`4+jb6niP zhs1y?%&sx0>;>O~wKHmILwc9{90)X9=!iQSqNRoHV6bQrk56S1c2}U2V0YYMpMfE< z=*23uRYl3;W6&f8juDGNWF5wmJ&B$8^L3EBoef!SXvliZY$Vy3F?7TT(E5bM1S$?_ zxf7f08aog6g}4M*pT_!JAJm5Nf|W2+^jrW)^-JB~-tqbC*KI*Z8dnJyKXqJ#YPLC* zklamz!{N+QU<4`dd=G0Z>j@DjvYyq{;aHRv`U5K}-sK;H$Absj;pYfUY4A%M-U4kj zZgmM#vQR&|!N#f>#`FP*7k!X;r;AmP)l1Q)awsfl8g|$j%Z7dE&umcGF|U$%ffK4-rIR*m@1;~jnN9bkq@vpC~M?ks?h#%u(8D9%g- z6T3?6BrMNLH8GwS2kTQ#iG!b}OpKA1=FG_G75AuvHi_U=BTP5y!Pahc2C2X_x`)8t zA`MXq%=)Ok67r3Vy0JL~DG(>&Q>LE#=kbKCyUlHrB+&=ch1f!Z!=1Xb;Kb>UxQ7Lu z?HQdm@7+_oyBeo9JI(p+WT{p}1ZiK&kbyMDl8SV)YDg-=L1Jhh47$B7yNwMDG1eeb zsP*KrRtpG7M;rApQEa=D$k?!bh&-VqP3F5YI*K5>V;oo36Hx3vU5yDf22;2rV+fD1 z<{_?}2`eHo+e2d&1!GSGA+~f2;H48tNsW*;*LN01uvZ}jf!SPWU1wYF{$p+6#wT%( z3zNI(WI`jNv}0Gs92I7V8;mLCKs$!)7ZE=->bSFTZW3E0!iO>1t^-uq3!ZcWQ>Jm? z@m=IBYXG7!f-b`9!YeiCuZ0?VbE#M(O*tyq<;EHZ1R9%ii%C%gEF)lfV8D-JuOf~G zDDZde=8JB8uz9cp9Z)99n1*%Z35aok->0n&+el;B0D;|g=R4v8O6WSwl-SdFQq#n8 z*#KhzV0jp(gzY1gdelifhl-8xhj9S#gRucRT)}yUc><>$4oemrl@u z3l6r*ut9ZJDoWXP#7Yj3Nj(ghI0!N0+k~32RJSAGfs0?A03BcRq3o? z{$890cUddUtzB&cmI`wlz$1i0*@&loN?2a$tCQCfDwf#VO60i$_ISRw%|O=x1ZKn0w` z(5dYToi2c6pr1g?aSkI=7HOzl(CdUHhB$mwLu$C0BJRjq`qHFA+@UV%?>X{_Ef5AQzVi-RS zD$IHb7DD`Omzt`eKFnio;0>O^J#OU<#Kp4q#bOy=O64d*}V)@&% zSQ@t7O9!*VOQ&t1tIx(()V{9JVIFO@!{>Kf4`ZIToYuTpPG2mibY$>i?}@$Di@oQI zz2}R)Cw9`mO?%Ir@ZK|eU2QvN9fV*T9%M)Mrjf7>OK>DOJM7(V3Et);TuN^p*jfw1 zwyOofp<1j1+ty-?oWi#sqjT{No3*vy;!elC-~Tsf=Qt!3WhqDw38%D|*cmaM{@_?2 zHzd-D2_i|@qCRvb9lB$&;rL@TB#9diq|19r7$O`7IYtOjYQ<}A9I=TK8@kBvkl2PM z5`+Uw*h6D72$Tbduc7)kToebB#WZw(Z69aP2SY*^xU^=%2auN~!NEjPK9vb&l_{TB zb|31ZB2xbB5ikk(2a`m}QrtH%Ar8nYvVf2{tj&H7hfI=WX;^fhl+G2=gNV&i{I;uO z5bKSSadtjLB{PYKU^2Xeo;yNlSQK$(UFx#oylZ$AhfS}Rse*DQOdETw&l-$v2j>KN<@%B^jO5Yu<8<9J7zis_wq(&e>tFC56{ z_IGsQwi{|4Aeq}iz62`d81q7$7o-4T@C=F`lqP!mthh}Yv`9q)gf9HF233Gc^bQ0Q z3AoS?4JrVPp`WUw$3R>t3(^t1p$PmKgy^soL%@fBP?ge;GL5J~Kdu8;vXenY=O`p} z;EC(CJ7@5*3^~UfL3yuz8b7)r62(5a`v}HcAg==qQ4Ne2A~|w$aGxo2;x0|*OeUv_&|HE0D3Sq(S{!Dtkc3H4Fw<_G|Rc@6ED8Rao$GxK?QDm+~Apm@>fTv@r?FW z$@GDX=0eaU+J}c}`(X#&v{!`<4>OCukh*4e7bEfPRj|uRTD>6t&myZPNm{;!*%fBb zft~*YZF2r|N)m?~51bmmL@jL~2a2a@fV4oEd{FZ?Z=YOHlAURB9LgXPfJ!y8*lO#M( zVDHmh!FW+6OfX(F>=2CU>j^68O#&o2MC+IFB$S5N7727=1Q9O`KM;n@+{LqN5tp-> zie+T@W%z;#;a3o%uDS#=kqJp708MH^*xM~;h%o$2fsW{Ld41`EOMEj-&%}cYARbnt z^Fbwfuz)~KCi#eRi$S=O4yq^!mp~9sf!yBcdEC+3ZMe0>M9@gLA<|E^m`eO5s?#P( zf5_0YHHW=l2>I#VLD+A<=B%WI@p!2~j~wVr3D_5}5uh-X6c#fOL9TRLME8T*C<#OK zrn8uaAZ@dh7T&DWnh{Ko5{{&W)fSR!3mP{GZ-sK`Xow=xTeLRoHwA%$Lh~t-g#`X6 zKpPzZYD`Z8ob(7FO6osl6PP3m9@K9HguMgBz`J-j;rHZaD8iO`8Mr4rx5LN+{y zK)an}cE-7%O4<-boflOYflyD0HkL@i4HTRpvO5qi40+K=&`ME)6swrCnUd)?a76@= zvz5ZtVz~Hr!MTg3kJ830$l7d#fiT|75G&%xx}gP(5;w(~MwlAnu5=NO&Pr!klVK zt^@edmTPSGtwBSPLTQ%Km7t9ZHHHhNK8S>CL@xzWGA&zZ2@BavnJs`1IiX=1Z@th> z&hyk)Dv=i^zMRP@Imal9^ekdRi9|?Tg3&wYCILp6e?I^6T+M(-aJt1 zDI0|9nYa}bXA)nhDjUVc{D3nXya#$m=K3*YyB@`I9QPNp{GZ7Zej-!-M3(py$)o>? z%I6_UA=Mjtv7GH>2AV!rR%qU+DDy?5<{lIDOq>8(RI4!vc)VTDPW zYaggfp_AB9_>mIkQDF#X$J;wr_4zA$vPATOrU>R;64i5w{=`i0<#%4c`TBg%YHpoB zw~p)%CBB{LwR}a3?AqdWr7UjeU&!%a`LR*PrT`J?9`Cs_J2YqX#(4Mo@_jGO z_rr{2{?f|9JfJx31#2+;xi8l5@Jp>Qv77xI)F1Qoi(cRRWi?Zp`8`)*DT5_G{so;XE!a z=CVHO=VU6gkdWtze=LvTvK}jwxqXkzW4MBKWfo^%ZzOBSkK^OH)W^w*oOV3}wky~5 zFe3Q)G*`%FKk4D1pZ^gl>0ck>s3`zVL+~Z9tD)W%YCK?FDdQ^{eAanEcfq3#Xp-JK z`K6P5dYz!D_o%`@FAEwcegaAAzf{i~FY=CwRmb#-V_Ha@@hG8&`fDe@a*{Wn6bz?$ znSNbP8Z#fOOkDQky(w_Yb)5D|G3gCq+C|!9WSsJM5>{o&E3)LbjbBao%Q7CRuWLBf znj9~Yv%F(?M9jRI-hRK_ye3cJRlEK2Jr5Ezp4N}zWl1S>O|W~VE%F=;D4=EfcdxJE zX>{gEL3@f6aHggaL-LzJ4LO)YBDEB+s?}?wc%Sqo8f#l}*qu7oIhy)x?5(i3NdFBPo;n zTF=`(zV!JzA$8AeLMYjR8wb2)FfV>Dv5=M0wmfz}(<*3>@X8|()3f;OJ&R5uy`GmF z9#+;ZmGK?Nh02#!mc(;!i%Sc{zUR+OnI^==IC{D0Sl8iLae``;2eze2rkJ z^2@6q>Yx$_O00C%o^F;a$ESK%drLe2I;<<1Tl{hhY-#8Vech21xwleo4a{eJ!zSeI z@yqu<)SA3yPz3HdxR#XR-4Dy=o1eA!AQCH-Ea*>`?X_f5y*wdGy^=6WD2d$#wf!D;@)T%YCLo?AVO8LNej z{=!BWBl}X%M@cem`XjweZ}fBrbOy=!g(5Xzfc>cA6+^M_s$i&IHSFOHdlqYERcnTH zZ}zIGe8p5g-?*d`ObvpeaaQ$VV!HSGYVOXJ+?|VQLT=q^ZZn_Tywtzk?a%33Gi7?^{+oWel?`dG@A*SBeS81-z|H>mTuXbu`P{i`pr?0@Av(XWUq~MSraw@mdSm>G3^pOU1Z_93><%c>y{&#l4h!oQ zw0*p?kF_Ju*W{P)Vs%Rs0i_#@*Ocm6n|DZ1=8^BTw?j{RjQ8|miPC3#&kDK< zPxr%|qFW>Uj)tWHq1YniwDR)IwcO%cQ+!3!l1nIQ6QEQ;p0$=;cx!OJdZ|_@Y8J9v zczMRd^s4zcm$gE=74WW^s`;HQ%hiIZpO+igj3#g8yk0O?c&uyyd``ho?&*7&TErLc z6H@o1y@q1Gq)sr@d-~S&1wN~w-|acPh9N&7=xP8|M!v6J$f)AwX=|oD7$Y~qYkW}A zyqxE+Xj?Iq@?EcZ`U2&ROPBrSEi0+TeCKIT?}N0WdCmQ_J-j@1ExY=?SblfAu(LzR z?gY5hB_-6V#-(AQq*XAqq2`Q=g+adN;9b2?*&}51Qf;Ya3x#}j`|_|*-u;7i{^%?G z(1_48Dx{tR(54*=?ffpwa*a^YDVPpYQ?quxSIF->csE6;>HWbJKlmy?J}Fo)30aqU zxk<{<0i6vM-Gb>bWiVAOO!2!9-7OHR`&N!X1;!Zv>bP)ZLNHAt8f3g^-+NPh<0<~k zE5bgzP&mZP^VSOMFowLQVtyE0jpW71?!tH$#UsI^WSP?F<@^eh_u_n)KWEPaZ3>@S z!l#tZ$ILg)SMznJ_|p^osY!nF@*^-{+@TnJoLm<^a4G|p&3r}6atz;gjBh>8AAcF# zndT(-Kzn^XE=KbP_ed_Y#I(iGkG2?6eRVcwT@ecx%CC|RbL$Cm&0!AyKG>0^A4fPS z?MyI0o1Y4*JpBn-zKr>4f8PF0U@hr+bz?x=vX0s;T%fIkJe^bVd}yuu7^H7F?RY4#k@%$ zdrV6#J}t4W^l6KIg+8sZcKX<3hv}mkiKV8D#8L+~QkONt*KA?E2OAP9^m_byq5>|) z7CoR-q6d(r?j!WeM~@uMx~f%e1~+!zcN8iT=Vq;@sJ zM~#6OjZw13B*ar=wA7d+1sbEJ#=s{HXI9j3_WE<`HZ|sR4`&16QR9OHE%XI2@eCM6 z908*yU^MXnMoqxLC-tm8s%NkJ^BOk+^HjWLWyi^>Y!#KA7>BY|R5pBKLtzEXVDe`A zhGFakBqc4=+c)1P;CTp$mNCQIG+!VXt31|+ur*Q%jlQ0)wUk1>XpfMx*VD6R%=S)- z(Zx*xrGZg`T%TT07J?F##IMK;JiUBM0qA>WI~P!U1eHiohI)8o8OWi| z5N6`mq8Pe0ginHC>&iif(=z$2Dk!N*t0nLZMJVsN))eA3b9`E`OwyW4T5-V4d2RDU zLi#RRF+j6R_6wNv$YdC|DR?tP}upxy3JUWyO^()GoLd4+zz*!j3k-yj`jzcA;%CQK)DXO2IfB zV1Y%qTnn}HGk?-7lt8Od<1g|n<}$pNKg?dt_jG?)P&Jq7J^F_^i>*KjLxHb*QMr^a z7@Dwx>I!_&Twe=z7*q8U#ly>b!PLHL>gG+| zcVnO>dew0Bo&ikU0QiE9Wg1K8a|Gjl@D6De^Jm{bd$*f^`8+@Ns?g*R(#9DgK1Z3K zkAo=NzqHF=*7)}1GUi~QWcT7_f64y0$N2-tF(pO(Kk3DM%VIMt+v^mR`D;q!+zi_! zD669VA1A~Sv-LzRQybpt`qPtZ`MVd-3i<7%zB7I<-m3_tX0KwAPA%~nVJ2w94@2&% zp`16A`}WPM7%mn1Ca~3GW0mV84N;rDW?wl}I#3V8@2vg|~)*?!|R}c|D6Sz!oQ4DB9L1HeDBXG~JF}?h{%D?(Y~7N(TM%V=TJR=Kv57lE50=xb8UwTaG>*&Pl)kYISqv zzdz~YRj?4r?^q>=9>#|EM2@?%=Zrp)yMp~ z$AP%mXn%O*#Oj%Is~4wy3EtP{3+JcjUtKaR%`7=qvJdmGUFVeG#nm|p%V&?n3#9kc+ zdv%Bwr7rHl;oiT3rw^->EIap6f-J%Gk(S!jASlwjd45IaT2|fC4!-{wfAX|H>kO|n zv4E9Oz>3oJ*_%0dX4QUib>f<@%hxbJvRJpcW9is({c^=ho)sKQOH6AFheJAlx6>FwFv)vE%JFySocebvyj_{*Se#FJQ+~~Bc+(BXh zuYkY)NG3ZJ1O8Pe)7fIy^yg8D?gAIM=pfHH_fX%+H}&$3eRqfWqa*y0QKUb|^~foG zuN-Ir7tp3OfQQmG051--5Id!7;jp;tULrmbEYz`^M9z`^M9(9asf6TM7p zeCM@41Gr_M2i!V>vOdswfWFNSlaCWbs1Fbs2n++bRn!L{r24e7l+1S%slE!T?^%so z)7Mj}4S}X+`nGVNUi?SNvW!wHw*fuIH(2jF`Ti09=*CW4)9 zaFIJgBWgHGBMKKIn%0c|Gc=Oz$?VW$*f88r%L1Xwg(ai>8{Wc_yF=phXjk&;me<7D&+Qp8>5g=UoiVZi4oi z9lK^E95pltEN%2{$3XmD!}c({k-&OJH34Hf0b_cQT1W$5gw8<2(HT<1wa;j{CUy2D z2{D_#n6Y|h|NUJdCPT;6XSDPG0UevDa}NYsTIt*NxksFVnEVV7f9*KVj<5g5FUMhMF(!caH)=WlLScJ4Q4Ce{+rAu! z+DTOADTw*^y&Q)@d^$FM+T!=&7fT(#0Ej*Z=KWSI$KkHq2H$>Dmg6vt+aTO?E`Gm8 zgnLeiJ`2J{FUC*h|K^l9F%DhPJEB*SoUs=I^LfXN1O32&gr(4Rz8`hfxzO=8O_AAS` z{8~}dwY72=%LXwDzj6oj7Wkm?e-GG>q^6}aOV+zJcO7@n@~6)5>azhHm*GsQiwhj? zB@d3vaJZzSvw>X!LtY@s08{P(Q_-3sKaiduFq-kdu1m&Yn7^PW_kdsC%(^ynB|Cggkacqe;xp_F6f!&?$j!feG`3Hs)O`X;D@gh1czyA_!Y|*+ zyhXk@-%nk#e?RSh2}zbPai5%9a^KN!AW3OJp77U?5|Hh$A336mz)e7w_q<2&z6pParS&G`@NLKqu({&&!h8ND(8VB`4h-+seXbx9=c1|P{M#u_x0nD zs9{aS(erBF9*D9C;mnT`k@J7M&O^5Ed#%-$OXadVRa*M|IcLeC?|&>TpwExec33W# z%6=SM$39J#1p4xdM*6JCEot<&lV40Z{x%_reM~0ysb%^9wt;xQ#c%UI_HErK_SfxpPR!7rAboY{Wy;a9Qw-?XFMd05 z0ZZWrW#aFHO6i+yDP<9d>Xhu;6(dG;sid#o(!e4PYsG-WMoSh8=n)%wyQiU*blv4BAd+(8N4V=_xEi#Wbp%zC`hB6i8k zIx*m7Q)?VcaWYo~{A8&ZaZ)Pk?Mu6= wEtk!)w=bK~ApE|JhPbNmt*)~;OJi?4OO@<5B(lYC%|45(EcUjmERKHvU*JGjn*aa+ diff --git a/__pycache__/plan_de_pago_contado.cpython-314.pyc b/__pycache__/plan_de_pago_contado.cpython-314.pyc deleted file mode 100644 index 0e88f66f986e8f175ea87dae06a6d6f905f782f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66483 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 diff --git a/__pycache__/reemplazar_variables_contrato.cpython-314.pyc b/__pycache__/reemplazar_variables_contrato.cpython-314.pyc deleted file mode 100644 index 894a0bce440b910276be701d53d384bc67d11fbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6530 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 Bxi str: - if n < 10: - return _UNIDADES[n] - if 10 <= n < 20: - return _ESPECIALES[n] - if 20 <= n < 30: - if n == 20: - return "VEINTE" - return "VEINTI" + _UNIDADES[n - 20] - if n < 100: - d, u = divmod(n, 10) - return _DECENAS[d] if u == 0 else (_DECENAS[d] + " Y " + _UNIDADES[u]) - if n == 100: - return "CIEN" - if n < 1000: - c, r = divmod(n, 100) - return _CENTENAS[c] if r == 0 else (_CENTENAS[c] + " " + _hasta_999(r)) - return str(n) - -def numero_a_palabras_es(n: int) -> str: - if n < 0: - return "MENOS " + numero_a_palabras_es(-n) - if n < 1000: - return _hasta_999(n) - if n < 1_000_000: - miles, resto = divmod(n, 1000) - pref = "MIL" if miles == 1 else (_hasta_999(miles) + " MIL") - return pref if resto == 0 else (pref + " " + _hasta_999(resto)) - if n < 1_000_000_000: - millones, resto = divmod(n, 1_000_000) - pref = "UN MILLON" if millones == 1 else (numero_a_palabras_es(millones) + " MILLONES") - return pref if resto == 0 else (pref + " " + numero_a_palabras_es(resto)) - return str(n) - -def _normalizar_numero(valor) -> str: - s = str(valor).strip() - s = _re_module.sub(r"[^0-9,\.\-]", "", s) - - if s == "" or s.lower() == "false" or s.lower() == "none": - return "" - - if "," in s and "." in s: - if s.rfind(",") > s.rfind('.'): - return s.replace('.', '').replace(',', '.') - else: - return s.replace(',', '') - - if "," in s: - parts = s.split(',') - if len(parts) == 2 and len(parts[1]) == 3 and parts[0].replace('-', '').isdigit(): - return "".join(parts) - if len(parts) > 2 and all(len(p) == 3 for p in parts[1:]): - return "".join(parts) - if len(parts) > 2: - return "".join(parts[:-1]) + "." + parts[-1] - return s.replace(',', '.') - - if "." in s: - parts = s.split('.') - if len(parts) == 2 and len(parts[1]) == 3 and parts[0].replace('-', '').isdigit(): - return "".join(parts) - if len(parts) > 2 and all(len(p) == 3 for p in parts[1:]): - return "".join(parts) - if len(parts) > 2: - return "".join(parts[:-1]) + "." + parts[-1] - - return s - -def numero_decimal_a_palabras_es(valor, max_decimales=2) -> str: - import decimal as _decimal - - s = _normalizar_numero(valor) - if s == "": - return "" - - try: - d = _decimal.Decimal(s) - except Exception: - return str(valor) - - max_decimales = int(max_decimales) - - if max_decimales <= 0: - d = d.quantize(_decimal.Decimal("1"), rounding=_decimal.ROUND_HALF_UP) - else: - q = _decimal.Decimal("1." + ("0" * max_decimales)) - d = d.quantize(q, rounding=_decimal.ROUND_HALF_UP) - - sign = "MENOS " if d < 0 else "" - d_abs = abs(d) - - ent = int(d_abs) - if max_decimales <= 0: - return (sign + numero_a_palabras_es(ent)).strip() - - dec_str = format(d_abs, "f").split('.')[1] - dec = int(dec_str) if dec_str else 0 - - if dec == 0: - return (sign + numero_a_palabras_es(ent)).strip() - - return (sign + numero_a_palabras_es(ent) + " PUNTO " + numero_a_palabras_es(dec)).strip() - -def numero_a_letras_es(valor, max_decimales=2) -> str: - return numero_decimal_a_palabras_es(valor, max_decimales=max_decimales) - -def cantidad_a_letras_con_moneda(valor, max_decimales=0, moneda_prefix="DOLARES AMERICANOS") -> str: - s = numero_decimal_a_palabras_es(valor, max_decimales=max_decimales) - if not s or s.strip() == "": - return "" - return f"{moneda_prefix} {s.strip()}" - - -# ----------------------------------------------------------- -# ROCKETBOT VAR HELPERS -# ----------------------------------------------------------- -def _missing(v) -> bool: - if v is None: - return True - if isinstance(v, str): - s = v.strip() - return s == "" or s == "ERROR_NOT_VAR" - return False - -def _gv(name, default=None): - try: - v = GetVar(name) - except Exception: - return default - return default if _missing(v) else v - -def _gvs(name, default="") -> str: - v = _gv(name, default) - if v is None: - return default - s = str(v).strip() - return default if (s == "" or s == "ERROR_NOT_VAR") else s - -def _sv(name, value): - try: - SetVar(name, value) - except Exception: - pass - - -# ----------------------------------------------------------- -# HELPERS GENERALES -# ----------------------------------------------------------- -def _norm_alnum(s: str) -> str: - if s is None: - return "" - s = unicodedata.normalize("NFKD", str(s)).lower() - out = [] - for ch in s: - if unicodedata.category(ch) == "Mn": - continue - if ch.isalnum(): - out.append(ch) - return "".join(out) - -def _safe_preview(v, max_len=600) -> str: - try: - s = repr(v) - except Exception: - s = str(v) - return s[:max_len] - -def _to_decimal_money(v) -> Decimal: - if v is None: - return Decimal("0") - - s0 = str(v).strip() - if s0 == "" or s0 == "ERROR_NOT_VAR" or s0.lower() in ("none", "false"): - return Decimal("0") - - s = s0.replace(" ", "") - if "," in s and "." in s: - s = s.replace(".", "").replace(",", ".") - elif "," in s and "." not in s: - s = s.replace(",", ".") - - s = re.sub(r"[^0-9\.\-]", "", s) - if s in ("", "-", ".", "-."): - return Decimal("0") - - try: - return Decimal(s) - except InvalidOperation: - return Decimal("0") - -def _to_int(v) -> int: - if v is None: - return 0 - s = str(v).strip() - if s == "" or s == "ERROR_NOT_VAR": - return 0 - s2 = re.sub(r"[^0-9\-]", "", s) - try: - return int(s2) if s2 not in ("", "-") else 0 - except Exception: - return 0 - -def _format_money_es(v) -> str: - from decimal import ROUND_HALF_UP - d = _to_decimal_money(v).quantize(Decimal("1"), rounding=ROUND_HALF_UP) - s = f"{d:,.0f}" - return s.replace(",", ".") - -def _money_amount_display(v) -> str: - from decimal import ROUND_HALF_UP - s = _normalizar_numero(v) - if s == "": - return "0" - try: - d = Decimal(s).quantize(Decimal("1"), rounding=ROUND_HALF_UP) - except Exception: - return _format_money_es(v) - s2 = f"{d:,.0f}" - return s2.replace(",", ".") - -def _raw_or_money_text(v) -> str: - s = str(v or "").strip() - if s == "" or s == "ERROR_NOT_VAR" or s.lower() == "none": - return "0" - return _money_amount_display(v) - -def _sanitize_usd_amounts_in_text(text: str) -> str: - s = str(text or "") - def _repl(m): - return f"USD. {_money_amount_display(m.group(1))}" - return re.sub(r"USD\.\s*([0-9][0-9\.,]*)", _repl, s) - -def _first_non_empty(*values): - for v in values: - if str(v or "").strip() != "": - return v - return "" - -def _first_non_missing_var(*names): - for name in names: - v = _gv(name, None) - if not _missing(v): - return v - return [] - -def _as_list(v): - if isinstance(v, list): - return v - if v is None: - return [] - - s = str(v).strip() - if s == "" or s == "ERROR_NOT_VAR" or s.lower() in ("false", "none"): - return [] - - try: - parsed = json.loads(s) - except Exception: - try: - parsed = ast.literal_eval(s) - except Exception: - return [] - - return parsed if isinstance(parsed, list) else [] - -def _as_list_of_dicts(v): - raw_list = _as_list(v) - out = [] - for item in raw_list: - if isinstance(item, dict): - out.append(item) - continue - if isinstance(item, str): - s = item.strip() - if not s: - continue - try: - parsed = json.loads(s) - except Exception: - try: - parsed = ast.literal_eval(s) - except Exception: - parsed = None - if isinstance(parsed, dict): - out.append(parsed) - return out - -def _safe_dict_get(item, key, default=""): - if isinstance(item, dict): - return item.get(key, default) - return default - -def _sum_qty(items): - total = 0 - for item in items: - total += _to_int(_safe_dict_get(item, "qty", 0)) - return total - -def _derive_date_parts(fecha_raw): - """ - Parse a raw date string and return (day, month_name_spanish, year). - - Accepts common formats like YYYY-MM-DD, YYYY/MM/DD, DD/MM/YYYY, DD-MM-YYYY. - Returns empty strings if parsing fails. - """ - s = str(fecha_raw or "").strip() - if not s or s == "ERROR_NOT_VAR": - return "", "", "" - - s = s.split("T")[0].strip() - - for fmt in ("%Y-%m-%d", "%Y/%m/%d", "%d/%m/%Y", "%d-%m-%Y"): - try: - dt_obj = dt.datetime.strptime(s, fmt) - return str(dt_obj.day), MESES_ESPANOL[dt_obj.month], str(dt_obj.year) - except Exception: - pass - - return "", "", "" - -def _date_text_long(fecha_raw): - """ - Return a human-friendly long Spanish date text for a raw date. - - Example: '2026-04-18' -> '18 de Abril del 2026'. If parsing fails, - returns the original raw value as string. - """ - day, mes, anio = _derive_date_parts(fecha_raw) - if day and mes and anio: - return f"{day} de {mes} del {anio}" - return str(fecha_raw or "").strip() - -def _money_text_and_letters(raw_value, raw_letters=""): - txt = _raw_or_money_text(raw_value) - letters = str(raw_letters or "").strip() - if letters == "": - letters = cantidad_a_letras_con_moneda(raw_value, max_decimales=0) - return txt, letters - -def _build_cuotas_pre_paragraphs(cuotas_pre, base_label="a", sep_line="--------------------------------------------------------", nl="\n"): - """ - Build dynamic paragraphs for pre-entrega cuotas. - - Each cuota becomes a separate line with the format: - {base_label}.{index}- ETAPA PRE ENTREGA: {qty} cuota/s ... con fecha de primer vencimiento el {fecha} en adelante. - - The function is resilient: it uses `amount_letras` if provided in the cuota, - otherwise falls back to `cantidad_a_letras_con_moneda`. - """ - if not cuotas_pre: - return "" - - parts = [] - for idx, cuota in enumerate(cuotas_pre, start=1): - qty = _to_int(_safe_dict_get(cuota, "qty", 0)) - amount_raw = _safe_dict_get(cuota, "amount", "") - amount_txt = _raw_or_money_text(amount_raw) - amount_letras = _first_non_empty( - _safe_dict_get(cuota, "amount_letras", ""), - cantidad_a_letras_con_moneda(amount_raw, max_decimales=0) - ) - frequency = str(_safe_dict_get(cuota, "frequency", "") or "").lower() - fecha_txt = _date_text_long(_safe_dict_get(cuota, "date", "")) - - freq_part = f" {frequency}/es" if frequency else "" - parts.append( - f"{base_label}.{idx}- ETAPA PRE ENTREGA: {qty} cuota/s{freq_part} de USD. {amount_txt} ({amount_letras}) " - f"con fecha de primer vencimiento el {fecha_txt} en adelante." - + sep_line + nl - ) - return "".join(parts) - -def _build_cuotas_post_paragraphs(cuotas_post, base_label="a", sep_line="--------------------------------------------------------", nl="\n"): - """ - Build dynamic paragraphs for post-entrega cuotas (same shape as pre). - - Uses the same fallback rules as the pre builder and supports an arbitrary - number of cuotas. - """ - if not cuotas_post: - return "" - - parts = [] - for idx, cuota in enumerate(cuotas_post, start=1): - qty = _to_int(_safe_dict_get(cuota, "qty", 0)) - amount_raw = _safe_dict_get(cuota, "amount", "") - amount_txt = _raw_or_money_text(amount_raw) - amount_letras = _first_non_empty( - _safe_dict_get(cuota, "amount_letras", ""), - cantidad_a_letras_con_moneda(amount_raw, max_decimales=0) - ) - frequency = str(_safe_dict_get(cuota, "frequency", "") or "").lower() - fecha_txt = _date_text_long(_safe_dict_get(cuota, "date", "")) - - freq_part = f" {frequency}/es" if frequency else "" - parts.append( - f"{base_label}.{idx}- ETAPA POS ENTREGA: {qty} cuota/s{freq_part} de USD. {amount_txt} ({amount_letras}) " - f"con fecha de primer vencimiento el {fecha_txt} en adelante." - + sep_line + nl - ) - return "".join(parts) - - -def _build_refuerzos_pre_paragraphs(refuerzos_pre, sep_line="-------------------------------------------------------------", nl="\n"): - if not refuerzos_pre: - return "" - - parts = [] - for i, refuerzo in enumerate(refuerzos_pre, start=1): - refuerzo_monto_raw = _safe_dict_get(refuerzo, "amount", "") - refuerzo_monto_txt = _money_amount_display(refuerzo_monto_raw) - refuerzo_letras = _first_non_empty( - _safe_dict_get(refuerzo, "amount_letras", ""), - cantidad_a_letras_con_moneda(refuerzo_monto_raw, max_decimales=0) - ) - fecha_txt = _date_text_long(_safe_dict_get(refuerzo, "date", "")) - parts.append( - f"REFUERZO PRE {i}: Un pago de USD. {refuerzo_monto_txt} ({refuerzo_letras}) con fecha de vencimiento el {fecha_txt}." - + sep_line + nl - ) - return "".join(parts) - -def _build_refuerzos_post_paragraphs(refuerzos_post, sep_line="-------------------------------------------------------------", nl="\n"): - if not refuerzos_post: - return "" - - parts = [] - for i, refuerzo in enumerate(refuerzos_post, start=1): - refuerzo_monto_raw = _safe_dict_get(refuerzo, "amount", "") - refuerzo_monto_txt = _money_amount_display(refuerzo_monto_raw) - refuerzo_letras = _first_non_empty( - _safe_dict_get(refuerzo, "amount_letras", ""), - cantidad_a_letras_con_moneda(refuerzo_monto_raw, max_decimales=0) - ) - fecha_txt = _date_text_long(_safe_dict_get(refuerzo, "date", "")) - parts.append( - f"REFUERZO POST {i}: Un pago de USD. {refuerzo_monto_txt} ({refuerzo_letras}) con fecha de vencimiento el {fecha_txt}." - + sep_line + nl - ) - return "".join(parts) - - -# ----------------------------------------------------------- -# GOOGLE AUTH -# ----------------------------------------------------------- -def _resolve_google_scopes(): - default_scopes = [ - "https://www.googleapis.com/auth/documents", - "https://www.googleapis.com/auth/drive", - ] - - try: - raw = scopes_api_google - except NameError: - raw = _gv("scopes_api_google", None) - - if _missing(raw): - return default_scopes - - if isinstance(raw, (list, tuple, set)): - scopes = [str(x).strip() for x in raw if str(x).strip()] - return scopes or default_scopes - - s = str(raw).strip() - if not s: - return default_scopes - - try: - parsed = json.loads(s) - except Exception: - try: - parsed = ast.literal_eval(s) - except Exception: - parsed = None - - if isinstance(parsed, (list, tuple, set)): - scopes = [str(x).strip() for x in parsed if str(x).strip()] - return scopes or default_scopes - - if "," in s: - scopes = [x.strip().strip("'\"") for x in s.split(",") if x.strip()] - return scopes or default_scopes - - return [s.strip("'\"")] - - -SCOPES = _resolve_google_scopes() - -def _load_json(path): - with open(path, "r", encoding="utf-8") as f: - return json.load(f) - -def get_services(credentials_json_path, impersonated_user): - info = _load_json(credentials_json_path) - if not isinstance(info, dict) or info.get("type") != "service_account": - raise RuntimeError("gdoc_sa_json debe apuntar a un JSON de cuenta de servicio.") - - impersonated_user = (impersonated_user or "").strip() - if not impersonated_user: - raise RuntimeError("Falta la variable gdoc_impersonated_user.") - - creds = service_account.Credentials.from_service_account_file( - credentials_json_path, - scopes=SCOPES, - subject=impersonated_user, - ) - docs = build("docs", "v1", credentials=creds, cache_discovery=False) - drive = build("drive", "v3", credentials=creds, cache_discovery=False) - return docs, drive, "service_account_impersonated" - - -# ----------------------------------------------------------- -# DRIVE / DOC HELPERS -# ----------------------------------------------------------- -def extract_doc_id_from_url(url): - m = re.search(r"/document/d/([a-zA-Z0-9_-]+)", url or "") - return m.group(1) if m else "" - -def ensure_docs_api_compatible(drive_service, file_id: str): - meta = drive_service.files().get( - fileId=file_id, - fields="id,name,mimeType,shortcutDetails", - supportsAllDrives=True - ).execute() - - if meta.get("mimeType") == "application/vnd.google-apps.shortcut": - target = (meta.get("shortcutDetails") or {}).get("targetId", "") - if not target: - raise RuntimeError("Es shortcut pero no trae targetId.") - file_id = target - meta = drive_service.files().get( - fileId=file_id, - fields="id,name,mimeType", - supportsAllDrives=True - ).execute() - - if meta.get("mimeType") != "application/vnd.google-apps.document": - new_name = (meta.get("name") or "Documento") + " (Google Docs)" - converted = drive_service.files().copy( - fileId=file_id, - body={"name": new_name, "mimeType": "application/vnd.google-apps.document"}, - fields="id,name,mimeType", - supportsAllDrives=True - ).execute() - return converted["id"], converted, True - - return file_id, meta, False - -def docs_get(docs_service, doc_id: str): - return docs_service.documents().get(documentId=doc_id).execute() - -def _walk_tabs(tabs): - if not tabs: - return - for t in tabs: - yield t - for x in _walk_tabs(t.get("childTabs") or []): - yield x - -def _get_tab_body_content(doc, tab_id): - tabs = doc.get("tabs") - if not tabs: - return (doc.get("body") or {}).get("content", []) - - for t in _walk_tabs(tabs): - tid = ((t.get("tabProperties") or {}).get("tabId")) or "" - if tid == (tab_id or ""): - dtab = t.get("documentTab") or {} - return (dtab.get("body") or {}).get("content", []) - - return [] - -def _paragraph_text(paragraph: dict) -> str: - parts = [] - for pe in (paragraph.get("elements") or []): - tr = (pe.get("textRun") or {}) - txt = tr.get("content") - if txt: - parts.append(txt) - return "".join(parts) - -def collect_paragraphs(doc: dict): - out = [] - - def walk_content(content_list, tab_id=None): - for el in content_list or []: - if not isinstance(el, dict): - continue - - p = el.get("paragraph") - if p: - text = _paragraph_text(p) - out.append({ - "tabId": tab_id or "", - "startIndex": int(el.get("startIndex", 0)), - "endIndex": int(el.get("endIndex", 0)), - "text": text, - "norm_alnum": _norm_alnum(text), - }) - continue - - t = el.get("table") - if t: - for row in t.get("tableRows", []): - for cell in row.get("tableCells", []): - walk_content(cell.get("content", []), tab_id=tab_id) - continue - - toc = el.get("tableOfContents") - if toc: - walk_content(toc.get("content", []), tab_id=tab_id) - continue - - walk_content((doc.get("body") or {}).get("content", []), tab_id=None) - - for t in _walk_tabs(doc.get("tabs") or []): - tab_id = ((t.get("tabProperties") or {}).get("tabId")) or "" - dtab = t.get("documentTab") or {} - walk_content((dtab.get("body") or {}).get("content", []), tab_id=tab_id) - - out.sort(key=lambda x: (x["tabId"], x["startIndex"])) - return out - - -# ----------------------------------------------------------- -# BODY MARKER SEARCH BY INDEX -# ----------------------------------------------------------- -def _iter_text_chars_from_body(doc, tab_id): - content = _get_tab_body_content(doc, tab_id) - - def walk(content_list): - for el in content_list or []: - if not isinstance(el, dict): - continue - - p = el.get("paragraph") - if p: - for pe in p.get("elements", []): - tr = pe.get("textRun") - if not tr: - continue - txt = tr.get("content", "") - st = pe.get("startIndex") - if st is None or txt is None: - continue - rel = 0 - for ch in txt: - yield (int(st) + rel, ch) - rel += _utf16_len(ch) - continue - - t = el.get("table") - if t: - for row in t.get("tableRows", []): - for cell in row.get("tableCells", []): - yield from walk(cell.get("content", [])) - continue - - toc = el.get("tableOfContents") - if toc: - yield from walk(toc.get("content", [])) - continue - - yield from walk(content) - -def find_marker_in_body(doc, marker: str, restrict_tab_id=None, min_doc_index=None, max_doc_index=None): - target = _norm_alnum(marker) - if not target: - return None - - tabs = doc.get("tabs") - tab_ids = [None] - if tabs: - tab_ids = [] - for t in _walk_tabs(tabs): - tid = ((t.get("tabProperties") or {}).get("tabId")) or "" - tab_ids.append(tid) - - if restrict_tab_id is not None: - tab_ids = [restrict_tab_id] - - for tab_id in tab_ids: - norm_chars = [] - norm_to_docidx = [] - - for doc_i, ch in _iter_text_chars_from_body(doc, tab_id): - if min_doc_index is not None and int(doc_i) < int(min_doc_index): - continue - if max_doc_index is not None and int(doc_i) >= int(max_doc_index): - continue - - if ch.isalnum(): - norm_chars.append(ch.lower()) - norm_to_docidx.append(int(doc_i)) - - norm_text = "".join(norm_chars) - pos = norm_text.find(target) - - if pos != -1: - start_doc = norm_to_docidx[pos] - end_doc = norm_to_docidx[pos + len(target) - 1] + 1 - return { - "tabId": tab_id, - "start": int(start_doc), - "end": int(end_doc), - "mode": "fuzzy_alnum" - } - - return None - - -# ----------------------------------------------------------- -# BATCH UPDATE HELPERS -# ----------------------------------------------------------- -def _loc(index, tab_id=None): - d = {"index": int(index)} - if tab_id: - d["tabId"] = tab_id - return d - -def _range(start, end, tab_id=None): - d = {"startIndex": int(start), "endIndex": int(end)} - if tab_id: - d["tabId"] = tab_id - return d - -def _batch_update(docs_service, doc_id, reqs): - docs_service.documents().batchUpdate( - documentId=doc_id, - body={"requests": reqs} - ).execute() - -def _utf16_len(text: str) -> int: - if text is None: - return 0 - return len(str(text).encode("utf-16-le")) // 2 - -_UPPER_WORD_RE = re.compile(r"(? 0 else num_pre_cuotas_fallback - pos_num_cuota = pos_num_cuota_calc if pos_num_cuota_calc > 0 else pos_num_cuota_fallback - - meses_financiado = num_pre_cuotas + pos_num_cuota - letra_meses_financiado = numero_a_letras_es(int(meses_financiado)) - - # -------------------- - # TEXTO PRECIO - # -------------------- - adicional_piso = _to_decimal_money(_gvs("adicional_piso", "0")) - precio_departamento = _raw_or_money_text(_gvs("precio_departamento", "")) - precio_letras = _first_non_empty( - _gvs("precio_letras", ""), - cantidad_a_letras_con_moneda(_gvs("precio_departamento", "0")) - ) - adicional_piso_txt = _raw_or_money_text(_gvs("adicional_piso", "")) - adicional_piso_letras = _first_non_empty( - _gvs("adicional_piso_letras", ""), - cantidad_a_letras_con_moneda(_gvs("adicional_piso", "0")) - ) - valor_total_compra = _raw_or_money_text(_gvs("valor_total_compra", "")) - valor_total_letras = _first_non_empty( - _gvs("valor_total_letras", ""), - cantidad_a_letras_con_moneda(_gvs("valor_total_compra", "0")) - ) - - # valor financiado con interés incluído - valor_total_compra_financiado = _raw_or_money_text(_gvs("valor_total_compra_financiado", "")) - valor_total_letras_financiado = _first_non_empty( - _gvs("valor_total_letras_financiado", ""), - cantidad_a_letras_con_moneda(_gvs("valor_total_compra_financiado", "0")) - ) - - # ======================== # - # ======================== # - #--- CONTADO ----- - if adicional_piso > 0 and plan_pagos == 'contado': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras}) más ADICIONAL por piso de USD. {adicional_piso_txt} ({adicional_piso_letras}). " - f"Valor total de la compra USD. {valor_total_compra} ({valor_total_letras})." - + "-------------------------------------------------------------------------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente." - + "----------------------------------------------------------" + NL - ) - elif adicional_piso == 0 and plan_pagos == 'contado': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras})." - + "------------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente." - + "-----------------------------------" + NL - ) - - # ======================== # - # ======================== # - #--- FINANCIADO ----- - if adicional_piso > 0 and plan_pagos == 'financiado': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras}) más ADICIONAL por piso de USD. {adicional_piso_txt} ({adicional_piso_letras}). " - f"Valor total de la compra USD. {valor_total_compra} ({valor_total_letras})." - + "-------------------------------------------------------------------------------------------------------------" + NL + - f"VALOR FINANCIADO: El precio total de la compraventa con la financiación a {meses_financiado} meses ({letra_meses_financiado}) asciende a un USD. {valor_total_compra_financiado} ({valor_total_letras_financiado})." - + "-------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente. " - "Cualquier aumento en este impuesto u otro impuesto existente o que se cree en el futuro, estará a cargo exclusivo de EL(LOS) COMPRADOR(ES). " - "Asimismo, y no obstante lo pactado en las restantes cláusulas de este contrato, queda establecido que cualquier importe emergente del presente contrato que tuviera que ser abonado por EL(LOS) COMPRADOR(ES), tal como intereses punitorios, costos o cualquier otro tipo de compensación o gasto y que estuviere alcanzado en cada caso por el impuesto al valor agregado, dicho impuesto será a cargo exclusivo de EL(LOS) COMPRADOR(ES)." - + "-----------------------------------" + NL - ) - elif adicional_piso == 0 and plan_pagos == 'financiado': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras})." - + "-------------------------------------------------------------------------------------------------------------" + NL + - f"VALOR FINANCIADO: El precio total de la compraventa con la financiación a {meses_financiado} meses ({letra_meses_financiado}) asciende a un USD. {valor_total_compra_financiado} ({valor_total_letras_financiado})." - + "-------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente. " - "Cualquier aumento en este impuesto u otro impuesto existente o que se cree en el futuro, estará a cargo exclusivo de EL(LOS) COMPRADOR(ES). " - "Asimismo, y no obstante lo pactado en las restantes cláusulas de este contrato, queda establecido que cualquier importe emergente del presente contrato que tuviera que ser abonado por EL(LOS) COMPRADOR(ES), tal como intereses punitorios, costos o cualquier otro tipo de compensación o gasto y que estuviere alcanzado en cada caso por el impuesto al valor agregado, dicho impuesto será a cargo exclusivo de EL(LOS) COMPRADOR(ES)." - + "-----------------------------------" + NL - ) - - # ======================== # - # ======================== # - #--- DURANTE OBRA ----- - if adicional_piso > 0 and plan_pagos == 'duranteobra': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras}) más ADICIONAL por piso de USD. {adicional_piso_txt} ({adicional_piso_letras}). " - f"Valor total de la compra USD. {valor_total_compra} ({valor_total_letras})." - + "-------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente. " - "Cualquier aumento en este impuesto u otro impuesto existente o que se cree en el futuro, estará a cargo exclusivo de EL(LOS) COMPRADOR(ES). " - "Asimismo, y no obstante lo pactado en las restantes cláusulas de este contrato, queda establecido que cualquier importe emergente del presente contrato que tuviera que ser abonado por EL(LOS) COMPRADOR(ES), tal como intereses punitorios, costos o cualquier otro tipo de compensación o gasto y que estuviere alcanzado en cada caso por el impuesto al valor agregado, dicho impuesto será a cargo exclusivo de EL(LOS) COMPRADOR(ES)." - + "-----------------------------------" + NL - ) - elif adicional_piso == 0 and plan_pagos == 'duranteobra': - texto_precio = ( - f"USD. {precio_departamento} ({precio_letras})." - + "------------------------------------------------" + NL + - "Los precios de venta incluyen el impuesto al valor agregado correspondiente a la operación de venta de la unidad, calculado a la tasa vigente. " - "Cualquier aumento en este impuesto u otro impuesto existente o que se cree en el futuro, estará a cargo exclusivo de EL(LOS) COMPRADOR(ES). " - "Asimismo, y no obstante lo pactado en las restantes cláusulas de este contrato, queda establecido que cualquier importe emergente del presente contrato que tuviera que ser abonado por EL(LOS) COMPRADOR(ES), tal como intereses punitorios, costos o cualquier otro tipo de compensación o gasto y que estuviere alcanzado en cada caso por el impuesto al valor agregado, dicho impuesto será a cargo exclusivo de EL(LOS) COMPRADOR(ES)." - + "-----------------------------------" + NL - ) - - # -------------------- - # TEXTO FORMA DE PAGO - # -------------------- - pago_sena_raw = _gvs("pago_sena", "0") - pago_inicial_raw = _gvs("pago_inicial", "0") - cant_cuotas_raw = _gvs("cant_cuotas", "0") - - pago_sena = _to_decimal_money(pago_sena_raw) - pago_inicial = _to_decimal_money(pago_inicial_raw) - cant_cuotas_pre = _to_int(cant_cuotas_raw) - - pago_sena_txt, pago_sena_letras = _money_text_and_letters( - pago_sena_raw, - _gvs("pago_sena_letras", "") - ) - pago_inicial_txt, pago_inicial_letras = _money_text_and_letters( - pago_inicial_raw, - _gvs("pago_inicial_letras", "") - ) - - saldo_day = _gvs("day_contrato", "") - saldo_mes = _gvs("mes_contrato", "") - saldo_anio = _gvs("anio_contrato", "") - - nombre_comprador = _gvs("nombre_comprador", "") - plan_pagos_raw = _first_non_empty( - _gvs("plan_de_pagos", ""), - _gvs("plan_pagos", "") - ) - plan_pagos = _norm_alnum(plan_pagos_raw) - - _sv("debug_plan_pagos_raw", plan_pagos_raw) - _sv("debug_plan_pagos_norm", plan_pagos) - - saldo_a_pagar_raw = _gvs("saldo_a_pagar", "") - saldo_a_pagar = _raw_or_money_text(saldo_a_pagar_raw) - saldo_letras = cantidad_a_letras_con_moneda(saldo_a_pagar_raw, max_decimales=0) - - - num_pre_cuotas_fallback = _to_int(_gvs("num_pre_cuotas", "0")) - cant_cuotas_pos_fallback = _to_int(_gvs("cant_cuotas_pos", "0")) - pos_num_cuota_fallback = _to_int(_gvs("pos_num_cuota", "0")) - - # Legacy + nuevos arreglos - raw_refuerzos_pre = _first_non_missing_var("refuerzos_pre", "refuerzo_pre") - raw_refuerzos_post = _first_non_missing_var("refuerzos_post", "refuerzo_post") - raw_cuotas_post = _gv("cuotas_post", []) - raw_cuotas_pre = _gv("cuotas_pre", []) - - _sv("debug_refuerzos_pre_raw_type", type(raw_refuerzos_pre).__name__) - _sv("debug_refuerzos_post_raw_type", type(raw_refuerzos_post).__name__) - _sv("debug_cuotas_post_raw_type", type(raw_cuotas_post).__name__) - _sv("debug_cuotas_pre_raw_type", type(raw_cuotas_pre).__name__) - - _sv("debug_refuerzos_pre_raw_preview", _safe_preview(raw_refuerzos_pre)) - _sv("debug_refuerzos_post_raw_preview", _safe_preview(raw_refuerzos_post)) - _sv("debug_cuotas_post_raw_preview", _safe_preview(raw_cuotas_post)) - _sv("debug_cuotas_pre_raw_preview", _safe_preview(raw_cuotas_pre)) - - refuerzos_pre = _as_list_of_dicts(raw_refuerzos_pre) - refuerzos_post = _as_list_of_dicts(raw_refuerzos_post) - cuotas_post = _as_list_of_dicts(raw_cuotas_post) - cuotas_pre = _as_list_of_dicts(raw_cuotas_pre) - - _sv("debug_refuerzos_pre_parsed_len", str(len(refuerzos_pre))) - _sv("debug_refuerzos_post_parsed_len", str(len(refuerzos_post))) - _sv("debug_cuotas_post_parsed_len", str(len(cuotas_post))) - _sv("debug_cuotas_pre_parsed_len", str(len(cuotas_pre))) - - primer_pre = cuotas_pre[0] if cuotas_pre else {} - primer_pos = cuotas_post[0] if cuotas_post else {} - - pre_amount_raw = _safe_dict_get(primer_pre, "amount", "") - pre_amount = _raw_or_money_text(pre_amount_raw) - pre_amount_letras = _first_non_empty( - _safe_dict_get(primer_pre, "amount_letras", ""), - cantidad_a_letras_con_moneda(pre_amount_raw, max_decimales=0) - ) - frecuencia_pre = str(_safe_dict_get(primer_pre, "frequency", "") or "").lower() - - pos_amount_raw = _safe_dict_get(primer_pos, "amount", "") - pos_cuota_monto = _raw_or_money_text(pos_amount_raw) - pos_cuota_letras = _first_non_empty( - _safe_dict_get(primer_pos, "amount_letras", ""), - cantidad_a_letras_con_moneda(pos_amount_raw, max_decimales=0) - ) - frecuencia_pos = str(_safe_dict_get(primer_pos, "frequency", "") or "").lower() - - num_pre_cuotas_calc = _sum_qty(cuotas_pre) - pos_num_cuota_calc = _sum_qty(cuotas_post) - - num_pre_cuotas = num_pre_cuotas_calc if num_pre_cuotas_calc > 0 else num_pre_cuotas_fallback - pos_num_cuota = pos_num_cuota_calc if pos_num_cuota_calc > 0 else pos_num_cuota_fallback - - cant_cuotas_pre = cant_cuotas_pre if cant_cuotas_pre > 0 else num_pre_cuotas - cant_cuotas_pos = pos_num_cuota if pos_num_cuota > 0 else cant_cuotas_pos_fallback - - fecha_fallback = _first_non_empty( - _gvs("pre_date", ""), - _gvs("fecha_contrato", ""), - _safe_dict_get(primer_pre, "date", ""), - _safe_dict_get(primer_pos, "date", "") - ) - if not saldo_day or not saldo_mes or not saldo_anio: - fb_day, fb_mes, fb_anio = _derive_date_parts(fecha_fallback) - saldo_day = saldo_day or fb_day - saldo_mes = saldo_mes or fb_mes - saldo_anio = saldo_anio or fb_anio - - _sv("debug_fecha_fallback_usada", fecha_fallback) - _sv("debug_saldo_day_final", saldo_day) - _sv("debug_saldo_mes_final", saldo_mes) - _sv("debug_saldo_anio_final", saldo_anio) - - _sv("debug_pago_sena_raw", pago_sena_raw) - _sv("debug_pago_sena_num", str(pago_sena)) - _sv("debug_pago_inicial_raw", pago_inicial_raw) - _sv("debug_pago_inicial_num", str(pago_inicial)) - _sv("debug_cant_cuotas_raw", cant_cuotas_raw) - _sv("debug_cant_cuotas_pre_final", str(cant_cuotas_pre)) - _sv("debug_cant_cuotas_pos_final", str(cant_cuotas_pos)) - _sv("debug_num_pre_cuotas_final", str(num_pre_cuotas)) - _sv("debug_pos_num_cuota_final", str(pos_num_cuota)) - _sv("debug_refuerzos_total_final", str(len(refuerzos_pre) + len(refuerzos_post))) - _sv("debug_saldo_a_pagar_letras", saldo_letras) - - has_sena = pago_sena > 0 - has_inicial = pago_inicial > 0 - has_pre = len(cuotas_pre) > 0 or num_pre_cuotas > 0 - has_pos = len(cuotas_post) > 0 or pos_num_cuota > 0 - - # bloques de párrafos dinámicos - # - # Nota: aquí se construyen las cuatro variables que almacenan los párrafos - # dinámicos usados posteriormente en `texto_fp` u otros textos: - # - pre_paragraphs_a, pre_paragraphs_b - # - post_paragraphs_a, post_paragraphs_b - # - # Estas variables deben inicializarse sólo en esta sección y no ser - # sobreescritas más abajo. Si se necesita reutilizarlas, se debe leer - # su valor (no reasignarlo) para preservar la consistencia del texto. - if len(cuotas_pre) > 0: - pre_paragraphs_a = _build_cuotas_pre_paragraphs(cuotas_pre, base_label="a", nl=NL) - else: - freq_part = f" {frecuencia_pre}/es" if frecuencia_pre else "" - # Preferir la fecha indicada en la primera cuota (`primer_pre['date']`) si existe; - # si no, caer atrás en los valores `saldo_day/mes/anio`. - primer_pre_fecha_txt = _date_text_long(_safe_dict_get(primer_pre, "date", "")) if primer_pre else "" - fallback_fecha_txt = f"{saldo_day} de {saldo_mes} del {saldo_anio}" if (saldo_day or saldo_mes or saldo_anio) else "" - fecha_txt = primer_pre_fecha_txt or fallback_fecha_txt - - pre_paragraphs_a = ( - f"a- ETAPA PRE ENTREGA: {num_pre_cuotas} cuota/s{freq_part} de USD. {pre_amount} ({pre_amount_letras}) " - f"con fecha de primer vencimiento el {fecha_txt} en adelante." - + "--------------------------------------------------------" + NL - if has_pre else "" - ) - - if len(cuotas_post) > 0: - post_paragraphs_a = _build_cuotas_post_paragraphs(cuotas_post, base_label="a", nl=NL) - post_paragraphs_b = _build_cuotas_post_paragraphs(cuotas_post, base_label="b", nl=NL) - else: - freq_part = f" {frecuencia_pos}/es" if frecuencia_pos else "" - # Preferir la fecha indicada en la primera cuota post (`primer_pos['date']`) si existe; - # si no, usar `saldo_day/mes/anio`. - primer_pos_fecha_txt = _date_text_long(_safe_dict_get(primer_pos, "date", "")) if primer_pos else "" - fallback_pos_fecha_txt = f"{saldo_day} de {saldo_mes} del {saldo_anio}" if (saldo_day or saldo_mes or saldo_anio) else "" - fecha_pos_txt = primer_pos_fecha_txt or fallback_pos_fecha_txt - - base_text_post = ( - f"ETAPA POS ENTREGA: {pos_num_cuota} cuota/s{freq_part} de USD. {pos_cuota_monto} ({pos_cuota_letras}) " - f"con fecha de primer vencimiento el {fecha_pos_txt} en adelante." - ) - post_paragraphs_a = ( - f"a- {base_text_post}" + "--------------------------------------------------------" + NL - if has_pos else "" - ) - post_paragraphs_b = ( - f"b- {base_text_post}" + "--------------------------------------------------------" + NL - if has_pos else "" - ) - - if len(cuotas_pre) > 0: - pre_paragraphs_b = _build_cuotas_pre_paragraphs(cuotas_pre, base_label="b", nl=NL) - else: - # Cuando no hay lista detallada, generamos la variante 'b' a partir de - # la 'a' reemplazando el primer prefijo "a-" por "b-". Esto evita - # duplicar la lógica de construcción de texto y mantiene consistencia. - pre_paragraphs_b = pre_paragraphs_a.replace("a-", "b-", 1) if pre_paragraphs_a else "" - - refuerzos_text = ( - _build_refuerzos_pre_paragraphs(refuerzos_pre, nl=NL) - + _build_refuerzos_post_paragraphs(refuerzos_post, nl=NL) - ) - - texto_fp = "" - debug_case = "" - - # -------------------- - # CONTADO - # -------------------- - if plan_pagos == 'contado': - debug_case = "PLAN_PAGO_CONTADO" - - if has_sena and has_inicial and has_pre: - debug_case = "SENA_MAS_INICIAL_MAS_SALDO" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - "3.3 PAGO DEL SALDO: El saldo será cancelado de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - elif has_sena and (not has_inicial) and has_pre: - debug_case = "SENA_MAS_SALDO" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-------------------------------------" + NL + - "3.2 PAGO DEL SALDO: El saldo será cancelado de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - elif (not has_sena) and has_inicial and has_pre: - debug_case = "INICIAL_MAS_SALDO" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - "3.2 PAGO DEL SALDO: El saldo será cancelado de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - else: - debug_case = "PAGO_CONTADO" - texto_fp = ( - f"3.1 PAGO CONTADO: Un pago único de USD. {valor_total_compra} ({valor_total_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "----------------------------" + NL - ) - - # -------------------- - # FINANCIADO - # -------------------- - - - def inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos): - if refuerzos_text: - texto_fp = texto_fp + refuerzos_text + clausula_proteccion_datos - else: - texto_fp = texto_fp + clausula_proteccion_datos - return texto_fp - - if plan_pagos == 'financiado': - debug_case = "PLAN_PAGO_FINANCIADO" - - if has_pre and has_pos: - if has_sena and has_inicial: - debug_case = "SENA_INICIAL_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - else: - debug_case = "PRE_Y_POS_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_pre: - if has_sena and has_inicial: - debug_case = "SENA_MAS_INICIAL_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - else: - debug_case = "CUOTA_PRE_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_pos: - if has_sena and has_inicial: - debug_case = "SENA_INICIAL_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - - else: - debug_case = "CUOTA_POS_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera:" - + NL + - post_paragraphs_a - ) - - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - - - # ================== - # DURANTE OBRA - # ================== - - if plan_pagos == 'duranteobra': - debug_case = "PLAN_PAGO_DURANTE_OBRA" - - if has_pre and has_pos: - if has_sena and has_inicial: - debug_case = "SENA_INICIAL_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_PRE_Y_POS" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - else: - debug_case = "PRE_Y_POS_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a + - post_paragraphs_b - ) - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_pre: - if has_sena and has_inicial: - debug_case = "SENA_MAS_INICIAL_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_CUOTA_PRE" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - else: - debug_case = "CUOTA_PRE_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - pre_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_pos: - if has_sena and has_inicial: - debug_case = "SENA_INICIAL_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.3 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.4 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif has_sena and (not has_inicial): - debug_case = "SENA_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO DE SEÑA: El Sr./Sra {nombre_comprador}, ha realizado la entrega de USD. {pago_sena_txt} ({pago_sena_letras}) como seña de trato." - + "-----------------------------------------------------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - elif (not has_sena) and has_inicial: - debug_case = "INICIAL_MAS_CUOTA_POS" - texto_fp = ( - f"3.1 PAGO INICIAL: Un pago inicial de USD. {pago_inicial_txt} ({pago_inicial_letras}) al momento de la firma del CONTRATO, sirviendo el presente de suficiente recibo y formal carta de pago, reemplazando cualquier documento emitido antes de este acto." - + "--------------------------------------" + NL + - f"3.2 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.3 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - else: - debug_case = "CUOTA_POS_SIN_SENA_NI_INICIAL" - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras}) este suscribe en GARANTÍA a favor del VENDEDOR un pagaré, el cual forma parte integrante de este instrumento y el mismo será devuelto a EL COMPRADOR una vez sea cubierto el pago total de lo adeudado, será de la siguiente manera, durante la etapa de construcción de la obra:" - + NL + - post_paragraphs_a - ) - clausula_proteccion_datos = ( - f'3.2 Conforme a los términos de la Ley 6534/2020 "De protección de datos personales crediticios", EL(LOS) COMPRADOR(ES) autorizan a ZUBA SAECA a tratar, recabar, procesar, proveer, almacenar y/o difundir, cualquier tipo de información referente a los datos personales (nacionalidad, cédula de identidad, RUC, domicilio, estado civil, lugar de trabajo, teléfono particular, laboral y móvil); información societaria (RUC, datos de su constitución y modificaciones, personería jurídica, socios y beneficiarios finales); así como antecedentes civiles, penales, actividad comercial, información crediticia (positiva o negativa), situación patrimonial, solvencia económica, nivel de endeudamiento y datos del cumplimiento de mis (nuestras) obligaciones comerciales e impositivas, de cualquier empresa y/o entidad, pública o privada, nacional o extranjera dedicada a la gestión de bases de datos personales o crediticios, como ser INFORMCONF, INFOMERCIO, BICSA, Central de Informaciones del Banco Central del Paraguay, Central de Riesgo Bancard; haciendo extensiva esta autorización a dichas empresas, y/o cualquier otra empresa y/o Institución dedicada al tratamiento y almacenamiento de datos que pudiera existir en el país o en el extranjero en el futuro. Quedan igualmente autorizados a proporcionar los mismos datos mencionados en la nota de consentimiento informado a terceros interesados, sean entidades del sector financiero o no financiero, en el marco de acuerdos comerciales en curso con dichas entidades, como contratos de cesión, venta o pignoración de cartera de créditos. Los datos personales y crediticios servirán en estos casos para a aprobación o rechazo de la cesión, venta o pignoración del crédito de EL(LOS) COMPRADOR(ES).' - ) - texto_fp = inclusion_clausula_proteccion_datos(texto_fp, refuerzos_text, clausula_proteccion_datos) - - _sv("debug_texto_fp_case", debug_case) - _sv("debug_texto_fp_len", str(len(texto_fp))) - - if texto_fp.strip() == "": - _sv("debug_texto_fp_vacio", "1") - _sv("debug_has_sena", str(has_sena)) - _sv("debug_has_inicial", str(has_inicial)) - _sv("debug_has_pre", str(has_pre)) - _sv("debug_has_pos", str(has_pos)) - _sv("debug_saldo_a_pagar", saldo_a_pagar) - _sv("debug_pre_amount", pre_amount) - _sv("debug_pos_cuota_monto", pos_cuota_monto) - - texto_fp = ( - f"3.1 PAGO DEL SALDO: El saldo restante de USD. {saldo_a_pagar} ({saldo_letras})." - + "--------------------------------------------------------" + NL - ) - - # -------------------- - # REEMPLAZAR MARCADORES - # -------------------- - _sv("debug_script_version", "v4_sanitize_usd_final") - texto_precio = _sanitize_usd_amounts_in_text(texto_precio) - texto_fp = _sanitize_usd_amounts_in_text(texto_fp) - - precio_insert_info = replace_marker_by_index( - docs_service=docs_service, - doc_id=doc_id, - marker=marker_precio, - replacement_text=texto_precio, - debug_prefix="gdoc_precio", - restrict_tab_id=precio_tab, - min_doc_index=precio_min, - max_doc_index=precio_max, - ) - apply_bold_rules_to_inserted_text( - docs_service=docs_service, - doc_id=doc_id, - insert_info=precio_insert_info, - debug_prefix="gdoc_precio", - ) - - forma_pago_insert_info = replace_marker_by_index( - docs_service=docs_service, - doc_id=doc_id, - marker=marker_forma_pago, - replacement_text=texto_fp, - debug_prefix="gdoc_forma_pago", - restrict_tab_id=fp_tab, - min_doc_index=fp_min, - max_doc_index=fp_max, - ) - apply_bold_rules_to_inserted_text( - docs_service=docs_service, - doc_id=doc_id, - insert_info=forma_pago_insert_info, - debug_prefix="gdoc_forma_pago", - ) - - doc_after = docs_get(docs_service, doc_id) - _sv("gdoc_revision_after", doc_after.get("revisionId", "")) - - _sv("gdoc_replace_mode", "BODY_marker_by_index_with_current_url") - _sv("gdoc_textos_status", "OK") - _sv("gdoc_textos_error", "") - -except HttpError as e: - _sv("gdoc_textos_status", "ERROR") - _sv("gdoc_textos_error", "HttpError: " + str(e)) - raise - -except Exception as e: - _sv("gdoc_textos_status", "ERROR") - _sv("gdoc_textos_error", str(e)) - raise