From 51b3820cc983e960b9067542276aef8c8a379483 Mon Sep 17 00:00:00 2001 From: jwkim Date: Fri, 10 Jul 2026 16:57:38 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20agent:=20=EC=99=84=EC=A0=84=20?= =?UTF-8?q?=EC=9E=90=EC=9C=A8=20=ED=98=91=EC=83=81=20=EB=AA=A8=EB=93=9C=20?= =?UTF-8?q?(AUTONOMY=5FMODE)=20+=20LLM=20=EB=A9=98=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 판정 룰(앵커타결/와일드존/3라운드결렬)과 카드 선택을 학습 정책으로 대체: 수락/역제안 금액/압박 화법/결렬 전부 행동 30개(수락1+결렬1+역제안 6단x화법4+압박4)에서 선택. - autonomy_actions: 행동 공간·특징 인코딩 (학습/서빙 공유) - autonomy_store: numpy 서빙 + 행동 봉투 7개(수락<=목표가 / 역제안 단조 / 역제시·결렬은 설득 2회 후 해금 / 마무리국면 압박 금지 / 첫 역제안 앵커 이하 / 최종제안 1회 보장) - chat_engine: 자율 스텝(역제안/최종제안/압박1~4), 최종제안 금액=목표가, 턴캡 12 - ment_generator: Gemini 멘트 생성 + 가드(숫자 화이트리스트·목표가 비공개·금지어·문장완결, 실패시 템플릿 폴백, 6초 컷), 인터넷최저가 근거 인용(수집됨+제시가 초과시만), 대화 기억 - chat_service: 자율 행동 experience_logs 로깅(AUT|종류|위치|전략), 대화기억 ctx 관리 - context loader/CRUD: 인터넷최저가·견적기간·협력사 이력 로드 (v3 상태 21차원) - train_full_autonomy: 시뮬 15k ep — 앵커율 0.8~6% 정합, 협력사 현실화(컷반발·반복짜증· 양보 상호성), 관측성 마스크(마감 40% 미관측·15% 전부미상 — 서빙 중립값 분포 정합), 보상 수정(목표가 초과 타결=결렬 취급) - 서빙 v3.5 (v3.3 목표가 즉시지르기 퇴화, v3.4 소액지형 첫턴 통보 퇴화 — 게이트 반려 이력 보관) Co-Authored-By: Claude Fable 5 --- agent/artifacts/autonomy_serving.npz | Bin 0 -> 84392 bytes agent/artifacts/autonomy_v32.npz | Bin 0 -> 84392 bytes agent/artifacts/autonomy_v34_rejected.npz | Bin 0 -> 84392 bytes agent/artifacts/autonomy_v35.npz | Bin 0 -> 84392 bytes agent/artifacts/full_autonomy.pt | Bin 0 -> 85597 bytes agent/docs/완전자율에이전트_변경정리.md | 203 ++++++++++ .../infra/repository/nego_context_crud.py | 89 ++++- agent/negotiation/chat/service/chat_engine.py | 122 +++++- .../chat/service/ment_generator.py | 188 +++++++++ .../service/negotiation_context_loader.py | 34 +- .../negotiation/policies/autonomy_actions.py | 85 ++++ agent/negotiation/policy/autonomy_store.py | 152 ++++++++ agent/services/chat_service.py | 87 ++++- agent/tools/export_autonomy_serving.py | 42 ++ agent/tools/train_full_autonomy.py | 365 ++++++++++++++++++ docker-compose.yml | 2 + 16 files changed, 1361 insertions(+), 8 deletions(-) create mode 100644 agent/artifacts/autonomy_serving.npz create mode 100644 agent/artifacts/autonomy_v32.npz create mode 100644 agent/artifacts/autonomy_v34_rejected.npz create mode 100644 agent/artifacts/autonomy_v35.npz create mode 100644 agent/artifacts/full_autonomy.pt create mode 100644 agent/docs/완전자율에이전트_변경정리.md create mode 100644 agent/negotiation/chat/service/ment_generator.py create mode 100644 agent/negotiation/policies/autonomy_actions.py create mode 100644 agent/negotiation/policy/autonomy_store.py create mode 100644 agent/tools/export_autonomy_serving.py create mode 100644 agent/tools/train_full_autonomy.py diff --git a/agent/artifacts/autonomy_serving.npz b/agent/artifacts/autonomy_serving.npz new file mode 100644 index 0000000000000000000000000000000000000000..2e9d0b2e96767520065031f0275160d158e15e36 GIT binary patch literal 84392 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 X)4To087a#s%M^>Zq*45ZjLiQBd%LoC literal 0 HcmV?d00001 diff --git a/agent/artifacts/autonomy_v32.npz b/agent/artifacts/autonomy_v32.npz new file mode 100644 index 0000000000000000000000000000000000000000..963836890691861e38bfff3e1abec4a6df90a925 GIT binary patch literal 84392 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 bKATpVxqVnEN=f!cK`iO92B>b9lv_% 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 literal 0 HcmV?d00001 diff --git a/agent/artifacts/autonomy_v34_rejected.npz b/agent/artifacts/autonomy_v34_rejected.npz new file mode 100644 index 0000000000000000000000000000000000000000..76567dd8e9c9df2effca4403f753565b139f2341 GIT binary patch literal 84392 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 >DY1a4U_vic{$o@h|E(w}GzGn~K|_ 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 Ko{M)#N&R1%vRw)Q literal 0 HcmV?d00001 diff --git a/agent/artifacts/autonomy_v35.npz b/agent/artifacts/autonomy_v35.npz new file mode 100644 index 0000000000000000000000000000000000000000..2e9d0b2e96767520065031f0275160d158e15e36 GIT binary patch literal 84392 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 X)4To087a#s%M^>Zq*45ZjLiQBd%LoC literal 0 HcmV?d00001 diff --git a/agent/artifacts/full_autonomy.pt b/agent/artifacts/full_autonomy.pt new file mode 100644 index 0000000000000000000000000000000000000000..c286d4846ba0309774e76a62e2c76f03c6cb3d82 GIT binary patch literal 85597 zcmbrm2{c#T`!`I6kh#n=85$@e)7jTSQBi3`sU&1b^hKdkgo+3mOPMMuDwGD!z7CZ} zrD#%`=O|KW?seby|My$#_kW-Nv)<=<&suwZ*Sgj@pYz#!U;FH9U&D8fn~128kc5QL z|Lal~k``LIHZ;`7cWqR7SorGL3I4uOzGiDyg}OLN2rd4vD}I=tUwCL}fL~N_cvz&A zdxU>LM1cR)V819SfzX(F0$~#`=^^N_fGD$xX3+t`fk9D%VSZ8J5q?2tK5L_bLnEbp zA_7*d4G#79i3$jd43F?xXCWmJF){HPKJ;AV(4D@40Rqu~9+7eh4flOWNCw+hsT7!6TT{|87TN}xGUp!IJm7G{4_(f$vZNdldJsObI| z6}`Wx=>LOY5G5ErPhj|ODwhAEV)P#vmIC8{Fiif!5Oy14GUgv9WBz6yYer#J^FJ1?GP-vG@mJQk1}Qp1^8toM5t-UDD z7dXTT9RE{hA#jQlO!-gQB*D};f%AXLECnucf@y!t)<&){o8vZIVt(u3qlRHZLVvY6 z|Kn2760-YmOTlbqc*JVoD4+l8iHpi*H3w*s{V(n3wDpZG;x*VZp%Pz9+*-5Csy&B(1q>&q; zp7`-)GMGd!he6>&+#{R~KZgzC$-5tLeD^bC`6x2D$^ajn>!&*F2e<=sPtmS&1-v#m z6CO6sBvEDwbesA`#{OiT-LNb%)X<&=^Up`qgJq9F?VuAs!uC8S>P>*FCP#?aqd4H? zBk-nw32Zbn=C{_F!40cax}-vw^^dUQgFl*)cXscv>CSxgzjd12&u`}LCxwv$-~CLk zj2C&9e3}{Sa)FQaiibbtC+R)1gmx+?Hn_wLW1kuhhd*2~wpikrjScfP*~jtX7)Q$C z(XD8zd;b`D=#)cdvBUT`YPGz3eJoj6p3G%iZX@rvN<+yvReU0QpPCzw1Ko*BXyuOW z^o!FJd}#8RR%wkR8xzLSf=y~@cTdLtHr2-og=QEPd6m+$+E~^ugdeX@h6^A=#=mqX zpO=}TS9U*r{yv6IfBKH8N*ImTG)n2}jwf{E=xS8tD=DK?**MBB3bWeU&C%@WOHX#z2~XAz3j@8+?zwC6jt*p>qFxR{!=iu8NT&CXQnK?iulr zTv3GMBNfqj>Lw`tw48Wvev3cT)4}eg0X%RthrL!h{HPZ@;cfFO^2@gfc*<-*FW865^0>}KZ!jB#IxX`gN zu%e-y>29b;^IHe7bWtofcg|H<)T_XY}FZ&?+;UzHG?*;mM)$oygD0X`* zpmdckF+ND~k#aWObM7*5f0p345Jhla;RQV<^6Y69S7JVQ8GXt9qLn>+uqXTgY4O#B zT^;GvKr^L5WR4*}r+zw_RA7rAZ|x&5CiM`>Yz^?V*+F|7%<$N=GvuvK4w<-fE`B?^ zgU+xVfe8iXRN(c3-o95r9RgR=hh}r}>bqeuT6Y)(9}S@n7BaMEg&l=ECOBpDGF)nK zoosfyPPKh|>6(Hiv_vA7p6e0N2IpNke5F3kG*P1;2eJ?pva!;;4&IfIAggu7cwISX zlp0ft+K1MFL8~5wduCy{`C;sGt_QU!L#+N{%ndLEwM;1}5qga=Cw{=( zysm~7VzwCHycs8cGRFjgDjEix;faH{z+J2eP8yh#YX`<+hs!JaB2rZq;C)FIKsUM_K==5khNNn+_ zi#|1Qu4Z&A1$gMuZ@g*!5?{DB!^z^Kuw&F&bZu4VUzluw;?KkQJ)TDRwOb6vjQa#L z$9Cg=u^h(#b3ff}d4L9#iNpBw^Jwx`0y~4O$f2kmcuQm}8Rm2gr=^sl+Zug*?!N%u z#43VBF%Q>gE<^S4jd;$$2+sYg1mvbqYtvpO^EJgVQ*A4jY`XQ2J_XKax z-vYOmmf|l@KdxtPc|%iYG-iB=f(ylIWcRKHn0!qEg)_%87u0G=nSOFlg(T-ZT)57g?++D6>B3ORJRk~=r{B{X4r18&%^Y8z zPJ@Qu$vEPRH6E5OC!2bBW?YLgcAt4m8yYg{k+l-wHlYQM1b(B*>YJ&_<@Ipl+B+is z%aq^nFofHrCy6>5dFYg~jvl@3kKdxQaB6K;gUFt-cqug%v~}7ra!PN*(H-98=o42s zwd@CGeUpTYIs(z@yJ^K;Elf!}LR`-5g=ni?Y*t?>Z{*TLugJfkUni;4jbpFUpv$53 zi~DFCy?Fxl8@`AvTQiw8Tq(x{=gZ^7dm8joauA=HK9YA@Rmv@D)5N`ZyP>WB63+Oz z3pNiH!HTVxRJ(R6KVrfl{rL7937=EL^;86d^&ep@4!TZ7XcVs7(S#>#2e3ZlIw|RF zpi0r@WNP(WS~shXPH&aR$KSTnq=w1#=HaPWIf*-mHm`d>qVYy&1{{v<^cx5BQB19-~67^lY~eQoMZ_y14>kL%G85qSi#aX;B| zSQtjC#lnO#7yh}T6@J+E5G7wJFs-jPqK|Y3-H@1wyI!BFe{1j7zg(9fp(K}s+Q+?)GOX9a)7%qDAY z(?V-#jBKS_XgS=H3xuBeNItl4BpPzL7^I$0ue>lK-p%@$IMoN<%_<{}3Cn;r)*^>p zbE!blfKKi`g53J;y!Q-E95^G3r$k1wKBF38?NfVZ-nSLlYCR6j=ih`#u>(|ZOBPR5 z@6%`Pg^bVOTip6{6nm(6J=yrq0)t$yq4u{EPS0|1qu8bn{j%|iVQy$=5r@8#$X-T}8jetG8AqCs-Qj8Nh02SYaK!0HvTns&g zK_9G0B_|-mwUl5>|9N_Dn>6+`9wz;I6KO`iGdQLjvsa!f6T^^QAbOz`jz)=M>dds^HFE;(%uS)&*`Vm>pn19BmtkAEvHJ3BiOfp>M@1r^7%)^h`+^Le!IRc z4rNseNc*$+2u5Af^38E@Cg_((iG~ugm}JqK5mOiqyixY?sc~$Z`3TwACY-a z6&zW}y>x&y8GYh{=dB|#&ySNh9cg@it%?i3B?+28t`mdbGO*ERFRo3S2vS11a5<LDD#mX#F@u-%NQ;F9aS$8=3)qIlT?fCg0}Ln%|Mj$A81x z`XK&ba}4S$mBHlQQ^2mj5NegRahLULsv@AMynPh$UX_DIV>3wl!;7@UGY~JI-ic@K z+OSuzq`|Cut-}(3ZoXWfO$Pdj`0NYllHozcDFel;GyI2(()9 zicu6BOO87_@fy1(vFG2I(iiJi@}lQ;*{!ZeN$tF|)M;%!6E)Q5XMTCis|Q<&Y@rQ| zS$c~XNqWhxd3=ymumi+pOAA)tNr7K=AL+^yGuT~`{kV=BjY_-oVOioi_^H)Lciim5 zi=%de(sqLD`qjatrv(T1w?U%WS)5O9lB$paIw$xQiM!cG&*Xi=oCEiXl#@7rJzW;x zj}L`_3LW0jJ`islG((B)O}6$<9VoPaD;U39gjq9R5eyB)ib)piy~OtpRb+OjK_z92hnRzQi7GJi0F6nJ*JBJ@x~K}$<2Tu^CHrFWe4=+AIH^3cQ9|vc6i)vMq*1h@p1!-teg{2 z`~2t7-q}cJ-@d@5UpkD7RdirXOc-nZXnWRPGbO)<|)oWMLNjLUUBkxE$rNRW4sOyoyC6f4Rw*p@0RWV0? zFL|Q=jA}02L(O(5Le=(* zW=H(TW`TL^C^n#aIhnIngSSjcrax+$$veF`R5~3`!$liuijxQlJ#vNHZwC05-H9&t zpUJ1-Tl8VR3g^_Nz^*lQVB7oVqTRb!Fzq*kNA4D(OhFR##k7z@i=R~Eu_~IiXHzR9 zKhn`2j?0(m^PjCG@MP^0Om|NtlcV)`4aYo`9^p-@I`$t)wgxTgD)ge#tQ{@!=E{jm>$PABU+I|qoMEq(AnW|B(Z$z z#)MT|qFWCbKuvWMKVwm#!*quPkpKFDOpkv??As;aRr+X>8oQPY-jhLP#-`9GBKc%6 zm!qqk)Ns|KG$^(i$C(eGOHUkB!W$>=aj(8-ad5_*O6HAV^u2lJ)b$?jyZ0~Hpn4r< z3SA+W$K0V*aw{pVkl>S}Mft`zQ~4)#li3XI4B(%OU_^K+DE3}rR9+o}_m@ZFq#TYq z=N!b@_D8u#QJd-arK@3YxG?Y9r3ss>%=ng=3RqU7hWTMvaN>zyM> zrb2*XuHA@cOnbNcJ?JBatF0Lx$>oPI?LYsG5F zWeo?oQTW!rz@rrA;VPcr5l_yZGa;E1CBamEHoDJ=fHsle^enC6l1Goh=kF3A_CzoF z)zd)+*kZcRIvL(tE~BptgtC{lbKJ3zPI;|qvX8B{Kx@CUbOTMO|#j8 zcAOzBcH>By@-WmKvZwa05@Yv8Sg|^9otTa<`#?ub4D;51fbU^vLF73{f=%Y*(rdqQ z;gb~D|0fZr&(c8y*IxQQBn5toDbl$QrLpxyjs3KKV}1eF5)Joq>{Cp|Gosc|dCL^5 zp6sMmX#>>6q>U=Z9N}W~3u)z@8C0iz9eFtAB6UbBBsxpX>A|%NNJmi}{$4!+h-xJL zuJjRHNBHweEef!@*b0k973qEJU&Oj82-Zkw5zoUD;m->J^w^K5>Ny>dGq@9<-N+=X z;S;7b?I$;7cM<)2on&#WGSwd=Mu(@B(T+#8^whnHtiGxxKc`=ZW-c*=JIx^ti63sk zr|ahYUc-~nIjGF*^tQpqYFGN;!Bu+UK@!Qx&ByVs?qt@rsibpKF5fX`H@a3W$2%|Q z5Lv&~;H-8NnCN)8P&uDprDcNBGj_n#<1zfC_XUu@#SFYElga-5EW1?pGvShL@wu=x zi2CSYW2hARV}2|KH_v&w+!7Mc!S1`KUiOM z)4k!y&$p!UHA|#7&!a{kr}4k`F|5TA1$Z8_6u%1V^Y?tEpyuRHvQ^0k1}jytSSy8k z9(-~Ks;_i6J zC_X`!X?>}`vu8f0r~%2|vz<&=ljEBj4e={mXRewyCpl z>Sjl}(^U*!hO2@2m9gBGlX=>92flj_s$b5)NE;cdx=$H}51xans|(=RO&d7cd>t~h+L(K@jQOwjYvIHw z6+B;ak{p@xjl`Qh!GQ24nr4>Be4miVOAos7+44%T%%O$}*I+b zNIHyh)@KrBMX64Q4hd||f{&w4&=VCk+_$WUG(0>93eCcXzA;Dfrd}KU@Xd#NaA*{I z2W6t#;Ve8>77AA$e;vSLgW^A`*$7ZvoodP!5?#$di9d) z*OXz_s4GPKtquA~sSl@gfcQ9pePKCNG&^V#(;;70c!Y#gf?B`gmcJ9{c`c0d}>8;yr#Ckrpb2 z^YJs_OU?!!xAft&gYjJQ;v!fU{|@G~ne!fnb3yPi3jLy1(^(<6$X!_xxMXskzN?hr zndG&kQ?Uj$>PGQWhmN7_VMY4LW(&w&tH9^KcOiRc7b=am!JYliWWuOKnme59 zd&lvV8?q(;OzFq(7GJT%^fMkyKTnLT#i&8gNzl%c0p*#WK(JyzmhK(Nc6y7`ozWw3 zY1SlMQCS7<+kOzEr_=D-r*yhJqZ5P5c7WbUB;MQhpozvIl-qI)soW>}WiXs9o~F!B zt4(5r9~>iP!if1hO~LxnXjUk^3HQu>M_ZaB;Zy$-5PLTYWLK8M^VV8?&BQ~Ncp_gO zIR;i=5y#Mr8I-L}g$W;XK%o4P!kioU^Q0nm4~vBP+k3g`j>3d_T>zS}7|(xFraBMR zXiQogje0Hxmwy<;kt0t?@*#J|-6xKe>Wspdp040B+7|ZBi=>~uMuJpHJzlf7f-*57 zx+r)aDL(rP^>(L1?CB<$614|?otjf!e`MnBa&$0+lS;^!F!^2 z$r{4fI#REnO^~osfo~N)f?6ZigLP;k=;fs|%;sV=)_6$nZu|rtin(M|mKJZGUIKAt zVQ|~K9a|db@Qb&;C70LTqtW#txaR#S8gikB9Q&w7+a0u^)?_<-&`6Ijt`WmC3Ww3| zu{pde$N)C2h}4?*BU#IUKt;jf^ z+k~Gg0j0M^?e)f`;LA^zaQRLWpZWU=J7&%RZB7_Xth4SB)oGS=?*ePwb*~u0jLW%2 z6Q*#C&=Zp1mw}&Omg2IKt*}hW94ex&fcNF?ATKTpVzoc%63>y~&_AB+%G*R2d3)4{ zB`dI*>nn*wrxtbC&2oHBW0J6&F@HH|6Ur*fyl@V8QZ=yFXx+4et*fY@I z^c*(sfFxN1osvr6(}L->0w@VJ`KOD&IMEnk~q>*@;7y!Vjgh3df!yOg2t zyCg8D+aRg9mWiJz%AX_J?4_m*TsP@1?f#(wzQP`8D3^|VQs?pB{AoNbbf3UQ0m$vz zVL$WARXVt8Gg&Wkjd6YM!H-%H4qji}Ks{QD_qN}F)oa`_#C0hAO$m zov|53V?L1)t$lP(Y9sgYn;IHN1);;3ObCA1hrJFQyb!#ncY0SL_rQ+7IXH;QQM&v( zZYq|qT?``Q+sK+P+2rG}GA__ng*j||6jNrc;TJ{NcAEom zILiyqtE{7kO8h}$Ss)4(yr<*y3sG(;t|IE6f!(!dVgJG!nBRO6TQ+o(pL-feppyja zXk0|ik9BcQf2I+r^gZVY2-7~yhqWH(z{kK0JuQvsdD$E~r?`b%?mrHb zXIC;``)8x~*+^0xy`IQz8pE+~E4h4&e6Df-Rl2EXKUF)rkM7F*Nkf+^;8-Uq5LsDB z{R8ruKfwpdnyO&#i18IF?P!YY%T?&PiSx+32rbmzcZy4BQzts=pUAp_Z{)3HHCJDm zNxqn$Cw}-E4qENPu$~gkmbM|{M|9Z9%66Q?f*QKp;kLcGO+UB|Z=gD&1-O03QkwkY zr`EWy*N_1ypPv0MNPrz~%B-jq7_NaG0p1h_c9qzO*17_*ED@X7dsvI#fH!><;Qv<6{q<2j{Omj`)B__YbPcFc&Sym1vCyZ&& zz7=%MEpOOXeVcB&vI;#OR5GELYe7Uxm4EN&h<*19h|+<1c(p4Vp3fS?zyI|UKXeQS zljeDNdd^U+Gd`;u?C+t%)o*pMv7aXYqyMCp!4$29vmH z2YoFp$txvJ;8%U=gwUF5SSxuFC%v4-k4cY#nd0i;cKjQ0+TKVPo1Law@hwzpu`qme zHsFI>khG7}giG5eeQ+w7e9)Zl zF(`qI!%1NNLWH-yH%MF*;!)(MHt44xqowcPLKgdoo_Ft~SKBwB=ecNnJL)SA+hPhA zzPv=44^u(dOpHJ0W`!2MnnU)^cW@umP2w(@(2(=9z{7R|KG|WyDj!wl-}I&9gIhny z;t| zTDyr@-cPbOH4wv{-74&wX{BVtm?FAJQywP%G38T?W8iH_3OV>r4M$Ee;_uhDGCRhp zK=`>T8gs$}Th1JT<&kMH!t*SaKG{rvr0DZMRF7f4`WR>(tH{4S&`%1+BsA2O=i@k= zUk&yXh4|I8lhAWPFL7UZ;RYw-mxRApz?1LH=*)PTaPGDh^;22r= zoVCzHoR_GM(GC9sGLbSqqITWTyKD{Lw!T6F=qQn-`WC>#d31v(;c@e0`s~sQunoxNV9% zzoK;)7_0+6w@r->9GZvXxSh^A)=GCR)?>%@+$HnbW{8m!VtaH=(0=b_@K)Z4TjxxH z)lZj`C0cuUg)!B*=4Jx1pCJRM`tH!$6-{K#tYg%F`e|#qV;9K8-J@7fbq6ZuJQ^M6 zJz`d>4u_3aj;w)3I<(C)#FFnDcn$Reddg#vu9%)}?~#0jY#S*CtJ=0xi8t%8IgNm4 zZz#!m>bl;G#K!2kOsFNHfaLIX6d%l6`UDOWxH=Nl^ z^Di;4He8_>R*K>FghcqGQU>RBb@`R|^w|QzP4eEum=xU?#!Vk~Q&!WJSKMb{U%NUT zUnCTgGoJh5yQL-+J52*+r6z9GZ%JxsV8re{^d2pb3*+f*XOWQUVBM=r6(m)7NEX95p6wxlXzFN0Thr)(1*3}Ot zSPh~>VLD!jdk@}1nfQI0Fe{YSM_1e#15y>z{EakC5cweoSAS`6d!t?wdN?0M1y8U% z)sKjLE5}X`U*3KE1yFBwz=+wZSTXIZ{W9q$DycM#J(XrjROZdXSKAHP9PTF`JaL$O zRnUd5z1ifux(VOomr35u`pw;2HHwJc_UG>D=h5c9si1l`m08j|iML63OVW2o(HtD4 z{o}1^|HGf;h4@J#xaLMSwz%=**AD`&9!+9TRS~%&9XP(t2-k|H@|~%&P*=VO=NuG6 zQSrz0_qY*wS0)-KTrk5s4VKVnCeC~63xj^x7BJ~{gRV|naQl4~AKA+AB-VypS(^i2 z*(da)%K@^Wc@{2Ouf}%@X%oTgJrLl%2@6xC`1b47kmYTQYt5_4dE?X}n~;ajYgY*w zkb(*cV^|U_Ovj$cg_d8LM559b(_aXogXVC2>u1d$@1MuFmfR^6=RDrc=s~4cKHalu3#M})7(z{ z^#bvNvJB3Vjw5$6LUCNsFPOhOoVj{ZlasQ@#&a^c^m5ZkR_aIqNywAHxKX3n_cA-l zg{Voat@RQNiMdQqHOwYX-YUGfry9S(Z7pidN}4nmeYzm@njQU35!-3;MK*l zaKipF6;3Q9@6C_m^P?BYlpE48*EkKMQZAz9%XJuZxq+NMn~H+&L!@!h1g>!=PugTG z==egGJ>-$hZr-w;WBTkM{+JoA@G7ud*JFi$9v?$xV_M<0F-_>98&&GRKE!p!4IykXJ33`>SV3tHCUXvDQmzkRKryuCDPb3zA(ex!~ zk~W9jFEfJT@qdVk=t*>#Wrfb&O^{l{@Rz%8aeZ~OV4uxWvR}N5D$0!J^=|#d--?H-@80Zyhoz-9+)wTR8r!n9d$4$12wp)2B138_^2q27YYfUbtyk!==u&WElltdZ4lAthMDBTr~a%eZAM2gg!V#VzX6VpI0VjX53!OkjFevbVL!*Zjk(AkAlomvk)jdSL}{!o#{~?B z#T|y=MjzT{fExc-M~4_E+h$O4Y2pDJVd@a zOu0>Nw0V94KgFcEfy|hVa%CH^QRM(m_EiV_&Tk-Ntc=p#5%{Zo7rK^9!Bn~B(Eao# zyqG4-FOL}uC+6m&$uDK5_rr0TX;BE1Mcc9MK@?}qkK(r{=irMm4PuYr1(&u=ArYQ6o}Us;kuB1Xz=qx=7$!PH@ zpU={p$}EYyO%1*T;RL&#@Kk9MvHdbD=dJ%?wHK0eCwu@ebZ2T>1l`+ z8M56EPU2;o#$%|-Tjr6oKWh1|KrPu6=)3uwd%pHDJQFDMpM?7xN*o%1IG%*Bg%W&; z*c()P$Yc5FLaf$F=XMuXl2zww$cnjXD7frR>XH^mcO_UPIrIm-Ol*y$)_-$j-B^!ffaPt$^O(YL)gb_pG zdz=j?!#~rIhd&$NFu7AE(KQ!)aAisiuiD&z^Fuzsoo!b1OZIU{Ing`hyH95}{@4P+ ztxmk!t!jR^W)bI=r2=>2q@guZj_)~hib+$*p}Px4@^K{*>>jBPT%~*oHVd7n-+RoU z?|l+8Wr8aWD>H$}<;MIwrDU?u|1|h+9?DP|8Yw*{8OR&SY6*9jxC-90g zruMN#`OrSKmfUUHPRD;=Lq@ul+6sjj@J=tZNX6n01X8MKc^nHLF5RQgJ}5z&x(X}1 zZ#3^UQG+#}y$Gy>#^QzEZ%kxIG|oIf5q3?sfZwjgB=$)KURzbj%~Ko7m`cmVex+H! z^@g*<@~$J_p@Cr!BGKV=9`~!}2w4)slEK~+r2A|l-e0Zd@;n{k96t+=9X=5Xm;3#+A@)Fdy5zPh1`d^YroOktv~7Gdn)iG z+6WDY{0zA{=TLv1IG-@Mm@RhA1g*j~aA~9_jvFn$2h`E6)!AzBX7Su5RP2{N#ic#iYF(iM(G8#+bM?Q zq+FrHn!!DFqv1;44Gi^s3Zpcd7$j2YoIn|Aq$ur$EG(BJ|gw4{!Wu7IxsN+KV@wyqF>bp+zJ`B|m z%zH&rmdV2>mABAo;>V0@bK*CaY=GxJ?x;9lh;Nvo!Cpx%CsiY~L1&Eve6?K;v()6s z`PFM+#Hxd2mDFLrWQPSS7&ya7zuQW8Ts%xdbTrvvpZ!4c!4hbVng(sB*U;;}=9rpp zMswptAic7iyWX=OznnTo=U@o0eKm^LKkp24iY>7A_<81C^A<2rh^Ok4CHb=wZ-}kZ zXVPP{nq+MigG*tm%-ptZOjhA0=5V7WpLSslBWa|Hfyv^8CkaqlK7swI+XP*rguiw- zguOp$ken40$Ff&hC@o_P<~{CkZig_*sbk^W!)4$hICedJni-kq^1%GVH@tO&GQ?4W{eKvKuTd;B0gb zhN+A34efdOxa&1z7?ugUibEP6AGcuw-WYf02E4!KijZ zkxh$s#K7`j7}hTe({FvFxq+L=hMHH5=&7Ycxl-$)j5)+SS+^hLv!od5pj_%7xw~PD ziXA8LF~xO8ns}kL5+_F;!kQ zln;lmmgN%u>(U{g(o_Cd`bIiYWF-Bt;{s~GEaL{o{IH*vUPSI!yaO{Acl5|zhQ*G; z=)T?>4K*h6hfZaZ`o=;!$M`4kncvY|ON1V9{bV1ltpI=WgTbP*7;WR$Gb-hqNQ_P* zex2eBg?F?tfYk@L?48UcT@QY8ksK>p&(WjWpXm$3wb;=0cKtJQ_>v>NQ4vI{?#aVeQHG7G*W%y5S7JXfst|m0$Zz3ukxE>< zO*1w!PJd|sPQ9Hdzi77#%iyyb|O$ZtNk;SUI9jcnR7pU)g$%KLs> zOGPy_@cnl$^2AMKC~t5hdA9Jr{pTT@qiS6fk)1RVSExx)!E9HYD&ifpIac| zHRNl1F_sP7K7sgmsbWgkPdcvpE)kyN3UWpZAYx$!x#c-+D8Fboo~!tZoBS-;TN^II zqBH)eBGduC*UwUU)&qyn6(Q&Mmtv8mBJDA4qI+Jdvh>_VqA()^7d@7OO{Irv(e7** z5NZV3_M>1GvJF)q-@>N`$8o%264N_=yWJCsS8$(c#5tCGspgjb%)!a^q&Yl>ZuJVm z+X~2!tuFWggBN#};@#!+nD$RI zXiwNSaB%B`x!G?~X4D$I+P@tY6%N6+<{;#*%_DI(vGB~;90e&YXg<7+n{@j$7Rngx#1FmlfUEeo3B9Ta*D#xB9W{jw$=7ZYqfTEX1O#b*L#^ z4pKvPFk(AeY44Fe^u3-Y&XN|V4`Dj#I=u?!D_lTpi)bK=r|_P)#AsmdB~Y7Z$YtfF zQl@_=Y5zG3OTO;5mq?Z2FA5zYi+9fA0yYL<&-NCmqm!{IUzb&Js>R&KpKy1V4%mH} zhXG&L4*7B8@IY}YT=I$<`aWvFHf>7MULR!+-@A+r$1a2OCV759q#hD~IHPF0V#9`X z8Ti7xP(`0)I(F$f8o25t^;drjveF9dpP9D2RG~GvKC;D!1s0Iksm)5MsjxdW262*0 zBRmL|z?UOVlH~MjLoozTewx`yELvhuzAnE4cTx>W>&}z3NLT}}r^Ud_KW-?0tA$#1 ziQzgi8LXMV5>#DoabgiOQPe3JH>Vzibd~EgILeq!9?DHQc+#37wR^zZ;6Bb5$v;KMm#>Tf)4@E>!r;Jx1rj3H;qz4D&{3;^?Y+ zjAMVI_nN~{n?4Di+4hl*4?lB(2e!gxi%|Hc;y|;NC3rJ!4`lUOVwQiM?!2Uotq*PN zgp`ul7FlcPFMW?izX-qGI}2|FBsGlLmk3t988EiG0H58JhEY=Pd`E64IoTIauk1-B z_iZb2!rEPQ?TFbp$KpH|`SFZ(`b;wL=M{0yKS2wwR5B|Xmr(zptzhsi8p6hHYPj<` z3GS^GhKUV#aA8C;tMR5CM~^aP`PR|=N5xg(YLo~+-^`(!9(8C^UC0 zzcf_ZRpEt!@$h9a%NRL2@TFI#@fyZkam{2(?+AUP!h$1Yvrr>EbkX`g$5}z*_1s|_mMROr7_#RVE&tCOHzPgc|}i`IN3=_WJqmH!#?RLc$O@Bpc| zv>nPh?8gedXwY9`L#`R=(ocP+T&C?hxOQV9pSe$nX!UMmsy__k3R^W^Ys@OJ5s87X zGb*`ZXO#Jga2Z4SKe!!Oj> zR0wMlH&LsH67X%B3O?EE%+DUZ9hW-qBp>v;7_IXApug(?xxGf4wTn{ZCojE^8N=Ul z!7ll*$jKU;BBQCgd^cHDtjwsUG{Ik$$KorCw+JyqWyeG9e^+@7|EtPla~CJO|EtR5 ze=4B&%?U-ZLLvLAq;yh#?E`0jrjfYEwlY0ax8cF9+W6_m9{Qqvkje=kW#pc^z;chT z4P6>PNzJ|ix-zkx!kDczL}NA@xV&VPIBD>D=FO-o50Wk8=91>FMd0k5!+5-S#C&1y zG)!MBMOJgR7&Eegdae_}xB4P@s?-n5`|ZK#iWmw{n1qSJdznKk6`{6Igp6JInzIbk zhOuGRs9K$D!-~nn(!7bV&`FHmu9L#Fi7Id*pqZ#B=v#m!RrU9ar^wbBta1hHjJ_fm4R9 zqK{8DkW0Sj$Wo704QkGc%p%=tPS5W?xiNJ%s#!0BprIIfn1UMW6dWePAtSM}aSd%B z5QF&@M)0}iDDhBm!L`#>P)~iF{l{M|cFlhdQST8a>tE&ck;s7-`XNiF;m5vaqVswu z>FAE3d3)E;&D}NR&4TTeZ&$)<7=tQ(Fsqw^ zkG(^CgNQ1xtnm}Rtlh?2%sfc!|5R`*ZdWq5&pao^)viOa!Cl~_paS+gwv!{41t9o; zI6Bj?n%XXoH>pHPMMb3&5fK&Y?0cOuW=J85$ds83$yCuimn2POs8mukNjiJ29VtSQ znMmd`W{8N#yRY~2`F8fT_r31_@LQuD>Fxtt8u{lM-f426s zU&g22vjuMV3)HWe4kudum{G|!TGJi?DRcF3XHX>6e?E_Dk1Vmq%N&+!mavw^W~?4G zD8=?JEBw*T^(r+L?sR^a{2O?ZIWOoz$})Z7Yr%FF=Vk=82mR=X)hxQ$yb$+{+ zX?IH`i?SQp`nE+hef2@`w$>%JKbow0X&hNC?#4d{80}jaK=pfOLiwZ1{7aj1vVU}f z6=rXPq^Ww$VY#C8T4)45sm)?T4=&}Mv^ChdQ@^3PA%NC|HR8~lU6f)sfKB+b8eC?~ zhR-EwbU=SHJ$9VIWzJKC>gy&f`oK2mVK9n@$4PkYy3_1157<|YB|Jxf5tI}E|AI=-n;dKviNNx`r^5+Cz2~A+*o_V1CtCL~|{;lN6G#%+T z>%+`!Rwv%naRsZ&j!N^L2~by}2w$hlQ=*Jx7O8pyaDjX<`GR8I1b(w zno`va8+N>C7x+)zBFxc0j*g4FVZ@wU6c=Pcrlm@$Mj!fp1wwP+Itke-SW*Pq>u`7gG$#AaD`{@3{-puho$3sSJs zY{rE;ws@`v@ZGOi{OSz0L3uMJ#-=b=w+%w=Ju^63mCBw~1!MWC<6KJP7>bQkWVR!W z$kDu#>cXs{+IbP%psOS(c${SC*dKCNuLIXERT#Rk2VMER3@i&a;iBv6;@LBo8m111 z#O+gYPo)pYwZ7!`4k;A7(R*QcLmQ_!YA&UkE+f5JH)!mHlUTEq7J4libemj3h29Qja^@xLNXlY zi?&+VV7LAxFj~fu@cJx%-dN0xdf&m?e+=FpYNf(E46A<|qnS^C&Sm9xN~~E7d)-FT zx9>wRD9xH|D|^G0f%c>(9|XPw>@g2=0DIJwvzRTWB~xYI{p@_SuE(K^M8 zt4N&BPE6d0Ud`)qd|50$8)}7HQ-|TMpPKl#>N{TQ&URBXuc_?HDk4R%X>7$9QvtUY){*qtz()>#{82$yv0tu0a~riD!bhG2dHS{EFUw z*xJ`emUSf)@kas1`PSn?^;ei;<-=l@{pI8OX`=_8L1CmOx4q~pzbN=19@w^x+d8`s zYgGuA2>DA#*<6uxEe zafyK&Rpui}>b z-rPnf16DlXA#cWMFs>{OEtpqb8omrWA88>~y zO_tDQBeDK`?_Q6z|PE>8P^^M8lBIM8t#Uq@-T3YU5w>N#mup;zy{pB%syna zGs6=S)EqtsR@lFR_%UA*YaT=IW3jYV*#LfZ?BX8W5Ifba1(;BJ2%b*d3h(Q;lkt+L z>{b0?Vi9N9%KAkRH&=oD3jVN!wEg6wwU$;a94b^P&w`_a7O*pN@7N=i?R>=XlZ^E@ zWx=Yq@Kv@66s3!uyaAiB^sMTk_QX`se=Sf$lx#Eo*_UIO)2E%31pmADV zXj!I(lFjMxb2so(QNt@cl@0^@4`AC*aeQH&CwS}($8+QNQP<2ie0kfN`dPTqB7PFD zWvd`~?v{#KgOQSetA|p|cY$eIl4t!1ss4y9LVkN3+D67Oz4Q6xZXV4HHueUo z!YNXnV!;kAA3_Vd2hvr&HxS@`0Q0}MkfT&e9ph1Q-6j=IP8iFtSzgL^yidZFgSzR# z>Qtz>G8X5rKF>}T1+$3pA6U&8IT)l6!NSH#1hZ#yaP~$I@H=^dX1Z%iKMp(u{l|vF z!>eaeUf)m%-+rI8O5&@c*Z<>>uO0`f-_F3C>I&$2JW)t!3b19!;+r8n_K>IPiW^&J~HXZR(`` z;25}xV$I%GjYzsecLRLk(5Ar@zfu`oj~YX&6Vg{ug8I8-$u^3o_a`zSdb8;M4L`(k zbziev12afPTZyJFdc{1WBiWtPGhtq|l5qA`88sf+!OT0(kmTED=sKnddH+H&EioIt z>i=Sujt!e{v=VMSEP%ElK6LPWx6F04nUHN_Lc{N73VJW=@N(rlYMu2Sr+TNsG_;nk z+3gNj+s!bJJjvm6Fa?Btq*wci8(Z}s?YK3IjwKvsr>!Tj_XmARQoascGkOZC&mOQ{ z{7hlUfmp#>ZXVY!;}OWeNJh#@#Uo!QLveLI$iKOQK>_EOdNQz}(TA~QVmHk=r$bee zcWkGawX&FU2`j4l0_W96ae3i1W#CxyS!YT2{zy345jD`e{E!`FIQ8SmK|rNc8Kn_bApK> zLD%gvRB6oS-dgunenLIW-?*QSZ1N+wmP7mk?fsIqJ+$CV!4T>n z^Fw5sjG}#^tLT;0S}>MVlrH-6@WSu}fp%vP2IFcK@swID{Ii+?gS3`W$+n9W-(QKW zrmG86U)jUb-uLL4)kpd?^fUy$AW8~dCPBM4E}-o!eB6{sjhh3gBjg^W+HQclo&iuh z){=hNo`6q165)npBez}2L88IF@6b^+)LLIqYqx_-$s?Gl z#Z~spSAitW5>RM#gyvmsXreV$*fd;GIOuwbZQH-FDrwetd}Okdb*|hk;HNAa92suc z^+ye+l@~H&=S@^t|CvpEqaZDPIh&S?J!9_|w|IHeF!Lmev6|ay=^g6%r+VvxWqMw&xAC!OUzc(Q|0uJk@xkz zf>X_Jh%}a?#@2L-?OG}9x@gaOW$dEpWPq-p-%!rV3YEuSAg%D-z4^8Rgu@i-%++o=VH6=*Q@F82}`}n*`A6Ff7aRGsOMdMf=C^f&}GC@Of(v zC3DRo@^me$%AW?Kq?Ryv-zFBf_cd$(EH7;Sa+yk;rqhY=1LX1P5kGMIEa9S!RCwIG z9F7?%pwL-BjiC>zz0XB1ZcH`*cxe>A`Q2N3^i(=oUY5t(RwZnjUq5MgxCJ%3A7rbx zhr#{O2BxrMCysfyA8HN0a-({Uhn~;HF7Ov6DE)6bxcJ0#Z)=vYDZ!ud$h98y{j3%& zI{b<^o-AhCD($JlZ4eC@Qb+o(w_wBdyQFp@mzk$4K-Sj($SJB9w`J=szQy@D=7*Fr zU!x&>=q!X+zfSNOsb^W){5e9#`C(+JBnSWUqM1uCRUEfLQIJ1(9`#IbpvmS|)O&KC zj;?Z)<_pbq;e9G}1h0b7l^a;8zc%|m`ZoW3eiG$+4iHX%TL8N23$Q&sUiSWV5I?Xx zg(fc#lC=yTV1KgAR^ni_6Y9R6!u)+>g}o2YfNAg5{FmVXH*d*FUXR;O&D$E;E--|m zi*u#!gD#nQJ zgfHe<2osXVLYq?|${Z$u=8qff_RfQBfSnS!{2d{@?CC_t{j1@K!b-gIub4fwXn~4d z2dTv&fxY^+75r>Q!HG;|8c=+dB3}#mQz?Yr&jGSG?xf55i-lN?Xxh{;P{=QrWcY`h9QjA zjs%xe+LY|pj~2eXOs5ykfp_y?@akPd*~p+2IyqB|>{Z)fdqoy|l=hZZi@c{Heqs1_ z=m5xGT+P0k{^sU>7w5vKg9Nw1H)zha@2KJwD}IC3z(Ks5`VQ=57k`a`ob~;o{_iV# z-kOh1LMVC1+6r@52Qkmd7x1R-ZJAJ&k%m3KW%M{0gE;rVbKvM0rv-ygWY&E z&(3Bf&SEL|W|6$zTI$mILauR1uxoTOT>b0}|NWJhzL@d>svheIdMQV-*YN3Vb;@6w zSvrG0oS%U@O7RdE)+*+8)P%t!4zYk+Jo(3*WWP@g5L~hYg&37joVuVvM|Nyw@^+gb z{ed^-j`n5Wzu5>?lRv{=17&D>Heci!HM4?c#gft8pIDRVW0|h6<(G`@Ej%h6!=7?; z;pya=@M6ya#P+IPAXRlpB2k&;&4KstK# z8{RY*vxFUQIK_ik>0qOr5N}b*Y#O6k_cdeCPrUR5@QjPYvleZyT;^bE!&u79Y{vqi@OC%CW=seSfG7niKtixRWICa;bl^9`tQR5_;X2( z)h5lLX;E)DU%Tg2Hqt>E) zR_HhgmVCO(-V|&^A8lZ&v%G0zR}+76$yFA4Z3=vyvxi599@}pZda}%8#=7`fJ&Q9T&NrS;uI~x%ETM}vr)gEJ3g-VdC#ku<8UD~KK92`6r)6JhdSjL{7%>S|zm7aUR?Ozcg=DVNr3#acQ<6uj?-{mbl zoMp^qmWHrF%CVr`d7N6dy09J_)S#EVI!$xWU@vkV$=6fl-#xrSdF#x;|A0HTcrAg> z8BOruU@0pYHiTde(#Ls6C~;~NJhjt?jpg3tD0WBdeBSf!Pvi0Bm>k#@KZ%{U*#r*j z?Pz?%bYa}m82Xb|2|*h6@F6ytJsp<_FMoBi9gR+qaP|%J-^jz(jAIl+cd+vG29T!r zr}>9A^3Pw1XV55Jq1HMAj_Vx-Z;MZmh6YoQo^ml_m%f?qrUN(G%-T#GiryRvxeWwOnZnKQqN2Rj!sdiM6 z+Dfk@caYhC!EEE*zVK(t5aG}pU160CBM+MxmhsDk{@nGV?L#6Uu4EEzPFYU-uU4?! zg+8cfVn-f}Gz6>HTd4BTDEKz}HA~pgi{<&*Gyl=?5arv*?kreIyAGto?SekA(c%Mc z9jJ%%9IsO7tsJoU_m@kGYJ&5q4EtwCik^NHyM1{TWe+SRc?}usWok~|BFE|Tp4*&j z%X(1qTuh~x|45SSO~5hhCUwk{r-vG|;Mak8w)??%4B$+KnO8`?xtKa79ehuRS>I0#2 zLn&SM*iYH$0J9eNA|YFuK3W}xtd5yN%8K1!cGia;@6Kl?&Q`?ISK|Y(e6leWqi{Zl z__h*dTro3`mW&+_1N@xG<>OucVcTGSsQGWs%Xc_aRenq#jSqoxavrQR+=1x}MpDcs zc{DiL8?pzh2pcTaVE*LMIPvsY@-VZfLU~(eUU8Q4&sxCU$7;gUSN0T`mrjGNEolDD z-So!)I68n;*3@m5QnCs8$#nUX0+sZmYs~b&1@OMq_+%DV}XL{>L8< zj$;S!k7BicF07&=5AjhA?(Q#7Ne9lObxWRXLU$}qTH1`&-}IS!Vh)o|ufa_MvlK2rg zM>UC!oZgSSoSnx1{u+;@`GZp%uFK^&pJ2}}9LF!V=@RXny*Odhb5yggKn?E~_;I@) z=V+S9*4>jl?$t zm9S%AKVI+SQ1)wQ1UmOuXXYOh@sH{`-rc#J4-y%P26x8r3qM}M=VLdr1pflQeDWq{ zxJ}e@pXkv2Uenm>Tk%-i6@^_tuXBxhu@bAfH#pU~XRvrv9CrGr^Z#BYaCrs5RxeEB zd7%pTSyp2C@GNd;?lpeihzJ~ZZvcKvn}GKeS8*Sl;$YQN8#a4>7E647fKM&hN*PgN zXVlwPNMByZI$eg54jS+V9XnyxNip)#uLul$-Pj>9)4yQ$GCc4~k*b1-t5cf@E>5lV zLEt;_?@tzTH4xn8DnZ_Fn{fJ3|jkM;Xi2~ zWE*4yg^AM)g?ghLFn(IfhV}o0z1y@=y+{Yv>|O^>&3&LL*9Uvs--S84-CRe)2{5X< zN>emnus_j@*o-runbyoyvT>BMxIfqVzpAIXnmheSVVw!3>D2J$A{!>+)h%F4_X}#f zRiqF9sgR9LCRRT;kjTtu!?uN4bhyEZFWPwox4jRe{VPQlv+7KlV*fKRz2!aI8d^eg zJVQv~L5{4c&=}VR>BFl{;qVx2sPm+&P`Y#qg~wcjNF5{4znsXARyz;h64%p%gK7|Y z&jD@~tjEZ!D{1EJLy%c$4x|12VP)e{P}sNw8h5;*q^XCY;j1cyXF1@N{;Ig~M+y%7 z7se`=sc?M<^}u8sQ~W#p1RCGEDe)b2jD@{?%!$VU>(PFgD~%-XMY9!F-9CnC4SiXs zS`!|MjKIG4t2nQ_Q(4E|%_vo^JH)MF39uwmxoI{jtMxTM?aRha~N9p*5Q>}TI~MK9nMV&GsjUs!caTl zDh4Z*;L+Rv`2CS_m>pisPo5&h&r9{$-0YpK#4Me8uib>g-hHSYc#vBgtBixIy;$$Q zxtP~r$DSGbW7zNmn3$-~H(g7^Hb#Ww>wYNUSRvgfU(Y*#C12Chl2-3#;<*!u(WR$Je9rzbdispT)PY zSi^qFrK5XZG=7?J17|)S$)d*E@jfGGVNJ3Pr`SFp@#!2~zA%nm8Klk>KHR|%@>lr! z>gUiFZGevy_K?=TK=#PE8h?sDlk>n|tg~qt^nJb@R`eZ?MHjSLQdcyS@0co#FC0tN zGg2s?D-yb&)x;Mk2$WWBVLLfj70%aeo^+Sidi9}K|(3PN=Mp2CV_ zdCcfh0^NCLN5(^6%icY3X6|VzbjNuav+K|#ZG&YrD>ak(FXK6dL_fIfwH5Ln&7|;e ze&G3I0%)Jmg14o5Ab-*axgqNOv-h^}aMMK^K1n419^45^Kg9g!oN`pD`+zIAonvb@ zJQaPv`NBNC*^uRXh}~Pdf;6+$piTM^&e{|Ud#oy1SQIbII&Vg8eUuQq^XRsT9PA1I z$LTuv1e=R#^n3MdNk?uzIO}bNl~Xln<|okuaSKKfiHqA6)wq{h<=jn0sid=FGCgdX zK#M~RAoMZMHV=KmGNQu7ndv&qFu6+S&b3jiVFboa9Y6u&O{p!)4b}||5oY~t0M!~B zX7(b2?j8Sy2OUyjQsOG=^w1DSE>;j=%6Qmm(hH2zgD^AHff{2fP~Tt<@o4x6bss^OiSC>1j^fCkp1Ayl3`6etVrbfL zOpa~i3PcZKY^^#;?UOO)ZXUi14#bz<16aVW-}pgWx$1}NX?(i(7$5!^abNpwOu5LI z=CadVUXC{RvE(L`WMAN?YQE*YU!Fo6_vKu7Lk*hRyYN092k?@uGY+$A!~YydW4&Su zrpZO)jUDE=C;AmWNbJp$f2s4?Dn00l>O-`38;9NRyk&>imvK4Shp|teoqS}4AsNKR zVP=I3zPzDA%S%ThH?;@XU>zbc*Nj7%zl5FCN#lzZgVD);JJ-+V88&DK%GTN5LrHrT zI(bfDpNtmcq}w-fR(U#J|N5Mpurn3gH!JdU{D(=#p3*?4-8Hx;o^gg;H(uJi7QfHz zu1d+>h#L(X`PSPW=sn~Rzv0kZ{#@dB?C7gW&zhXE$NF8UI=dI=9v{NX-sfYWj|M(m zNVs6b9?q^QoRw=-VPN6{+T?3L8TX*)(!&f89Wr_=+l@0sk+t$_B;>6s4pSx&2fJ=bWkme{QH2`yi^r(CpB`bqZDcC*cl=ZrkNes zY=yd05@^JgY*H7w%g?t*O40%qm`(c)NKMp&@MXqi6FZ76JbnSEehH=Y5k0Z~xf$G* z_CfDWL3HPX0ySyA0yD1!e0kPeND2DR%x-)o2PbWmsr#VY>wIxPNfz7k=Z>T*e<>vH zAA|{4J?TSEBsts>b*UG%@Z(A^VU$J;Ja#*W78XIIo7#+(4-etFcct7<&uKD^z6wHp zwymt~V=j)n9YS*yl3Z8{NL3THuNa)2Ffi zsVx}Qunx6sA86?dG3!=@H#LOUC={XyhKKR7mUb{fwES}?oeeEpt%VUzw&%xOfL>|nJlg!?s zkMw(UG^^O>!E$poAnR@kw>GFR6f5-skA4m?^uZ}+zV8bT?lPs30X!_S+YYvUrb3$x ztH$=&PGy7Sh5Gm7U_qbFkdtZwP1m(adeoUV+>mnpckU*&21|-|Y~}OwuW=gkmAE({ z8%qxq;E-{gi2!=vZ+Pd46`~EoNMSV>R)3?a3ZeZ`lUgk=bCN>SA&#&<5`}!3XD`Jf}bbDsY6{}WRJPRe{yDIJtm564p=~Iw-(Yi zPcydEOpgUBoP(T<3uJqI5GEV;7CK#!9s0J4o?SK+_Sda|e}ySHdcYduZvBS)dafy+EcOhZ44!9Qu!{~>-1jEhC$wBN}l6f*SK@pelHB(+?+2p`LZ3xWe&iat8)R?Rp7|FZ_Kqz zPpGz+hhN*X_=N?R*^cg!xU9L9JG}@YUrdLLIXjaN8Fv%ZvU`$~Ml4M*dPae2DpHkg z_AJWNiv3Xy*h_n$|5=U6_(K6t_k}FiCwZ8Nl>1u28)+(gSwWp z)PH9Y`hUq~shvKQdM}@i_%B_Ue>wrQ%}Yo%uP5;iU2wcl3KSkZMn->Dz?B!9pra_0 zf}{V@m^0hKxH6V4bR5QwH~E08T0hf#ZFxwpeMC8x;kbI&1K4fgNGq5Bhjo<79~rlT zw>CVAr`weUK42!A>RyJiIVafNNi&(v-#mU!#}&kqOW=200JYgOX}8}A>>9G3iY_f7 z+qS8+YT{G2Xj?Cs=(mcC9;(h{NlN1Pq8HkhZ5F%8*&OFmO_QrC>EFs2b}FuryY?iD z?eTKK{i8mz0?%R@7eq z3?<==7i{cZ!m|HHfxhlb$=mB|$mGxfdaNmrmG>$s@$D$slDwFeTp22`eYNmjm4kTO z5O64Fl=dwawy!GZZs^sE?@I;iRQg8g8zzcOjh|F`EFSquo-k553cml72d#;3+2Va$ zM0Q&Vnam5Kk2;%Rn_&`;k2ypzV+kZCG&8sPH)*)04f}RkgMYF8B}<5Og7gJ9Q2%T; z`Pj(8s8#)im1)t`aq$e4in;&h2NG}!e8L($O~~l$GR7~+r1S12=&7beW4AcaEsKM) zds}>{A>0R!Xg?$ATz_18Pn|VdRr0qkuBYA8)7VevZXBm%4hKxMA?4W;wtnmxD0zDh zZ~W~oG%qw`s`*li51Rwt!Q0_+Ml`rSe8$QLCksa36xf`BGhp2GYdA~PW#0V?Vh0p# zu=J?|smWH*dcPlh^wh(&b5%Zxr9=MDn4vW5c3_a|U!@^N9cLNq@moueb>flOGC%;5WDjDK|(dNPHXj}x( zlt<~2O#DB;)|g83RTO0>_T}Q_I;~m_8 z>H`mtCqao`CM)@t36rOXioRA1d0s9CNq96ww3XvKGbPen*Auh{1k<^bMW7p90n7V{ zUA~%$lwvUf$31w+da!x?$r+7!lnsG9?*WH2jTL=^k2vc`47;k+irv$5rNf3=NyyHsFIxGB_Y-y);2(NyB4PA)25aAjr)bbG(x%|!ll<-{s> z>CJ0$TD6yX7A#?xA6wI%Il00`w>t3tD84(d=RiO4wR8BvF~e~+lo=d>{!G;S1q1pP zw-}N>jlhWR*RrjCw!+dUZ}@%P0n%&6}ApT1A>2aR@$Y7twEheJaz) z#jyFuW%&o4;N|=T+NU&)Di?fUzG4?*BkSNct%-!(DM7HMW;nTyX$JiPyYS@5c3gbD zjXioSX5ri~V47bnUstNa!YA0W4gb!A*S6<)t|Nubo#sZb504gh^j=0IF%GRtR0LCh z@tW4&oAzWlkxJTWwxnS;O*%N99@R2DBc7YH?s;LC(+?UG8$sV|v;@CP4d6J#i~6bW zl|6BcgR{oPROSK6zWI|NVG+t|0C?(hj3jr4vwPc_>Y}CkJIt6WDUcpUf;n z59^ae_WqnST>ctpR&yegZD^vKYeFa_JQeiU9>C>o0v-@^Z4$K>T;At_L?OoyqSI&6 zYrprBe|vNLV<=PP^cu*DVXh)ami~IA%;~bsk>bu0 zb9L#i*#>YRV1V$Wy%L|zJqVkYj1u-8u$T5dKb$|hdL1(^--M4}nXzdlv4Tl_7`%+@ zDLrNtMb(E*DRANm^tsziuctMT#n}$F{Ft?HwOGR8hZb&>wb*%5{KnnRoJUWZCgZec zFJxc#+6V)FwX&1fjo{_^1nB$7jZ_PcV7t;F>drocOH&ktPqR{4hG9KBal3?l$^B2_ zHs2H)J`9BJdEThagy1EDMU8zi_0qa@p*HPHC*<^xA&SN}sTGP(*{u=CKZif!u_pq+}`s>3{^ZO)x<8Fjkw(0Xmcbl;-iGZ=TFx zLy@T3%45w7TVA3bgO9$9VlN(#!s>ux$$yUTF@NJ zT1{5`Rl@$w@sT|6u(baxeT3Z~%TUqhFZTTqj05cw`EwOI7}b`|nU+t&w&$NP+I2g& z^y)%SqpAGm_@8)t{6MbQT8WKyIEHIKHuANOJkIGn$W@Ii$`OVHGlx)Qs$XMxsY4Fy+_?mfueHOSWl7TTe`%QY zb{cEVx{ue_j-rmLR8V6_>B+(p)|KT2lICetYN9K#I;kV>-RLK*-&aQ3uD-A>P9Nlo zwZ&Y+2g$^bjWqkoKhpo!OB%i85?RFuvE406q&HX}YrOkIza1sa#3U56W?jK+zh^_~ z4?Vs{Ig@_&R;4DbelUH#mXyceOuAT6$W!~xJ1_(I{=JMNZIMIw-JDimn*#+q8km1$ z1j}DlDDE|}7h*euxOJ5#v~$lr#RFK3xxeGCye zVagF6&M4^OJv0?}o)y77%YS5CS5Ef?N6`D`LFEPy$YzF`lx_r(QH+Z4`{--FkHRAu zXRinC3pUfxtyAfJ_+gkKvdN2^deHl?22i}Yl}_X(^9us1Ve8^);I^-d-Fc}6H{A80 zUqCV~wMb=8QqHh9J|m@#4ayw9_!~MMRV5YESW&y31ZBJ`Z1T2*9(K1V>w zYmTU^$HDq*1@OaKo@`$qW3iKmvU0a7m|}`}`|N4d_~pmn?7EFD8^((K6%*=c?POag z?gOheoB1s!#A3p8Aj2mYJqj!!es=`RP*;Hg9y+kRa|k&2_`w7n1M+@4k)>N+VQUoT z^A>w2fTg&P)cwz0baqmMklRYq0nhv3on6RAJLPE6^Vr(vgv0~AJWS!qR!ptY5By%1V*7;?XNE0+bx+g^yZOba3-1)G$ivDp3P(hpxU8Lb&+c+K=cdW z>0dyT$h(}0MJ^3U{0Mi4xY4#!6=CZ)9~#}g2>j+&i;UGiRJ*N$#UJpY;H-;Km|{-T zEL4Qc+E4Jo+`qiLg{JV^gn?@A->TJiFDdKbGA!Pez&s>R`IjP3pwDeFKQEO7wT~fG zAa$1Zp7@p?!!3#5w`by=bUMECP61cnB03*i&!?YWNO!y=sK8T!roa(&nwbObuTQgS z<9~wL{cLL4$-&2km!M46MjKfw9T#`sUTK-dMStJNT~l0z$7}myl4b*|UjC2dr8yW{ zH3k=Dt;Gu}PsEyqH@SUHr0zjIg$1FP*|PJ0xbZ6DKCu-W;aY}hKwV1UdqzlscQp~5 z)5E~@l)%{0j{^XLGT^?G_Nrmo; z7+T(WnoPw0x0%jF>ha+Yn`f^~XO=rL8;e8|uczqsJe;rI{)G}=U&8phME0Ajg~i&= z;8(PoZr!>{0}c)+_lRn41h2+If0WC9m^QMme!=jw~-8VI_e@Y*`p$Mf6Wt|eQdb!b8I8|>XfjrUsAcAnNc*ZUmZonAA$X%=X_$*2JGtf zp1JzGW1d-~Y4?6t*gSkUZyS+7N$+D|l*pfYocIox#7v+b_lH5x&XY`UQ3A%jy2!Uq zZlko^+q9%{E7|#71)*U)8Hh-N)3uR;;V3)EzyfArDNuVaHEG@D(=>iW7k|Snl^wsQ zA$_wX5RCR)VhZ&YiVbhe-stIY6)jfcJ)p>bz?vispJzrP4}Cz5SD8m%4`{Mwir85-b^2^A4~ih z&7#V#QjaMY_{^-SWZKcqNA~%`g{Ub@kD{VbJ93uv@1uL{M|~s|t@a|>Tuz8|Zlqc3 z-?FEtg5Y5GC?Pc4UC>u|CArR9J*rSH5p3_oZ!oq?daRX8gqH}iweje4rdk2)^xhYwARV#?^UM%jgA25B6tioD%=4`kh3sAWmZ7?1ZC|3ecnPUZkH{`~n?q&TVfTXE`hrZBl)) z`|x2_5ww*BdKYtdw};@v9pCs3^A%W5zbekhd;}KXKE*HnH6EvS_mYK9G{fpw`*Gf_ z%h;;AP^R&4DB4?|#ZQ*HtnR`HW+FG9DK`vds^fm3W=$CHqrtIB0sXln8Ex1-JO}sP zspA6QHKVMb7Bef0<&XQ{mAotp=lD%^e7nwC3~V=$D6MY7wZ9f(VNNYy(lHr5kACI) zr{rQ|tU2?#dE5Sw;V1stqZ~<&l^i|pI*bF3wDNoQE|Am?Q(=R~o{%+^^iJK_BUejUZYrv^94Nq^fDTEyurDPl30#X zB>F19;EHW#;=j)^c=E3j+x{q)H(M5inP z&F8qn+!MI4?+`3HdmJYwC*m(PQ&0WecVmU{Zaa8+qtloc$U$OBT>TMJm3U%Jh zvA158#o2w#zGf2Jwo8+rZYcJd6NlpQVX3nEunvCyOG~uKeTP>Sr=eGHx~N@T=j}W~ zv0dC*WISst-uQDIQ=j!@Udg}lOJ73$6LCy8!~~CtnV$C_=Cg1kK; zw0fG$7tDx4PTLcs)&f%(&&=GC9<E`7z zsM%{Btb5+YJ`4|FAIulRkkM!1wAn4%G{gg+Cr)H_D@-75Ltmk!&j4YdB%dFhH4G>D55s7(7N7YeoAFTFyahLHzQmm>SOe~*-Kf^% zHWoiupg__l3r80UST=&`^qs~ACd8s+O#-txsl_e1Hw_;jSWT)aXDLt20=QMlk@cKt zczfMO)Y}tSP--1$dX-|Kc_G_l)QLYwM8kqFPq;yfOK4SxA)JYL%1l&0QkvxoxK~lb z##j~6!$n%6KYWy`|Ej~?*FNb4q?V)_@N>Ew0Rq$K!oXyyF2xgBp za2)u@8o-p< z(Ga*N6<Vcij)W;6%C_h6wPn4Wrl=A z6cwV-P@K>E6s2KAQ&dXPLR(wE^ZWna$HTquIiJsYe_pTWljkRFX(nF{c0uD5-i2s9 znRxYD;s6_jE*q-^0=|IJx!n+V)!B1ra%x~He-30UsGvgQ*1(!O3WWSxglFz`!_+r0?$HN%WXU7$NlbpDX>Tt zV_VLs!W64Fg5}$+;7e#ZS?M5VQ#G}krWh?Gmgh1tUU)5h>i9`|<6~i}&lGASAu26!rX0qG=6( zkAtyX$fhbBXgq-j`f})9?F_1~ECQ<&b-}s*H2&O^Nc#4Ug*eyM&?O@c3rcr`%uw3@*tWC5y(!;KiBCVfmp~aByrM?p}Ky%f#n{JV`+H|CG?h>ozrB9*iEB zP2lp3w?t{SIUM`11yoWtP^XY2ko^=z1CJ+>0mm&+E9XtUHu~^hgl_7m5eoJ*XVR_a zl_+E<1d7=*=+It=;;J8M?%4B8*xVbi@<<`y2^))s6Q4B9y|)z>Y&Z%xm!{+7R3(mU zNCvyMZP;F)OwV*xf}Zpc*|xWpS;d&b%niw)xLAaX^-{s_%NH^Jx1C6j@hv9iTo{=6 z`_L0<>wrGxd&ogMv2QuW<1$5XA(74Jm_yveY3u`4L-=}A9=`cLL@RY^ zI?8u;uT+YViiN^dCYiv%-~Vu`t2*k7N04^)7xaW*7O{VOp3Ij?!hku&Br^Oac6R!M z@sI(SK8^s^@d(~tUy0%sDrEM<9JuCOPu@C^`h5#n(y_Xlyt*`=h@%J9NK6N2j4Wps zTZp#uJ!H#TFFYP!Pp3K85Y9f38SNT}>wO>4u*X7lR(UpAr8%DS){Y|1Gc=*>Zu8s>5)gg zF9~yTw+ukyh6xljZv=~=OQdr#1GDN==$8O-T=t5ec`Vk!u6JT^#WWitLgR3BNhX>G z$x)-N8d${gXT?*#L&AYP-1%}2J1OLMeP#JBq9s0+&i-5t-wsZ|74L^oYV&5?&->!f zor)p2p^)@O`SO0U9Z({p$gOlp#o%abVxNoTMB-RZqUi+Hi4x)(O%Jm@JTLgrL<5`` zZiqS$S_zpXiCqSPIP=gslD@Q%bhX{44l7N8A;qX#`V0;gDhq5k%F}md+K?_ifi(GZ z_~$DN`=4*5{%0mZ>`{AM{c$U7{;>fM>dypmc{jGgtp+PD3DCWEGicwvLM$giDUop5CyFBb{e*Ax7UD?N6J5cz_gJJ2Ven zXUWhvrEMsvltIv>G~B@(<9V9UWlj`V%s5Jyzf2>KoR)!do&ro*D}WmtDo8qN&hp&)rd zi%aa*2eq1qB+e)V+#SrIwmpWsxMmn#4<9D(z9xvF_i+7+A|`qP3)MP#cy*m5owaNk z{tB`KGdF2?aoLdMD%!$y*9Ua?wJJ&3FU%B%?q{}Y&nHDQ=5x2#Ex?H{XX1R#T=LxG zCI(e@GoyD_LERBMWE8?_`ZYyv-hrjGtkRgv5|*buvn;srk7hx`%ULk{;w;?A1VW=< z9yNCoz{h=JID9gbw!XY2*eM5ae(D;cdG`j2n#N-D+3hshCyx|IOcuE2?4=Q}G`Rzb zYB+j21GQiC&V!vh=;WYEkT^7kwKq&As{(w$@{2SRm$RPReNl&0+8u?M)efMqUrJsa zSqKI(jo9?#2#lO)AZIkMk}IcO@fOpL*w%D747pxAtgpsByXfT>YWZit=bhS9Q#=H>rFFn9r ziD<8HS#%iQ@N?(clW&nl0Y!Lo`6Zb3ncq`S^5-2)`&jpP)8MgY4|)l^vEwVvaiEv? z7Jcd`um32((0?56wY5d{{%H8HXfDp#^S+_=wke%vejNQLEd#Rl8@VeUgj@TD@i5Q7 z4*A)^-kv%I#(l6Q|0(nRR4aKXi`Js1Q-kn#+FrbTaR)Sx|A`(f&kvYZ!Rkr}z#?~b z&R>5VYSw(f$36X2{%sy}_K!AXL~MhvuSS?d!!_8oO@X_$W0W$k(e!D`ZtD1(LRK}O z@tT;5GtQnS2Y$RFof{_-sJKj%pa>T_8FNWqZ!u|}CyHm-;%b>!xI)vG)ch5I_MJ=A zysd&d-Cuw~!F!-zp|Bsy@afM??!+ zKApm^(rqv_!x~gr7Z`b2OWsQx;gz;RswaAgvp9T>dFl{POeUw&8?|O&?k>W}OjIO_ zZ>&)kGU-~^OH|uwL&L0dOIbBdKk_B90IkHHLjRT|SRwugtL~=3^rL=I?D3SmRBEJ4 z_5PCLM?9nRjv)=!{7$C{`@z46xn%EL6=d&!!l*g>Vbbt;Zuzy(^~Y#A{tm6gzH1Ti zW1axTCx_w1p;Q|2PL=E0J05hZr(mI#8Cw|!MCf}Xl!#9!16O&Dym~(D8^iO@`iiK% zc{&#Q8Nk=A8Vx5^Dv9M2buJ=s4XoZT!oL6h7TZT6!Q`|Fcm6~!$ndU?E(Z^SZRaWeYsHXWQkgL`%95#_Xw)z6zPMTBDy z5aX@U?3tQWHcc^!zJ5~Gpe(tY9h|L1?EB0x!Yi5BOIXl1zy8tB->$H;um7bQUn}?y z!xI|*>eb;T@=1Z46~WVafD__+>xLAjsK z{qdTfd|*voXSX$Y=Vh^OXZ`77_BoX`f66ZOQ6wGJQ|XjNvvK|BEPCE=u%Y$)c#JCz zq=n;LsbI}YDjKFjr5kTDA97Z+Zh-=NY)lz3^Aa#$&C?mnAqTps_#$07eH8<3-{^w` zoW1p?0PotU~1FoG?mU^ZYO$b4yPk}$jUco%5+5i0LGQErq-4ku!kJqTQge((#R$QH`E$A369#DV zyjc(|cLWz6?89q0H*iW^0P)4|0BxsdF(FfILJx2Bf1Y0nQXpdJm@Kq}Q7qFGH-eCu4 zuJ*x*PXZZxz#DV|uCdWGhN;(3G`ni~N>oiP!%ar(=_~ze!NgP*k{l%iGRyS29jRfo zro$i1GWpL^8;&MafFi#qa_465rB*&E4R?$9^MZZTZHnDDa86+hm=8tmG%SrJ*BceN z$r)P2XoE4Fdod5ngmp2rW=DxxHNN+sh_orleg8O8jE8EH*?hRh|_KG8qz@Tl`^%d~QWapZ;1rl@;cH(tI5W4~&01C>-GlcyTf4Eg>B`8}T+ zy0?5|CbX&(jYwz4WK}=C`=O2c%(}*oR9&aaBNM6A&ob(|bPR#r5wtn!IQ?>VD^pW7 zOg|a(J{z^mWVr66AfT;|K3+48Wv^P$at(QQg6%0%I9SgZ+^c03`5A2Y{F}5*?qkCZ zQDtVodLb><&Y~lJtLeIBC(#UFYjIvdCktv_2kV~>s z)=LvrnZGnSoJTYp+&oR%J;dEBT4%od&;U ze$L#^*qE%RqsLg9WO0k83bnK0ZX*J_YlrKv95SZurUUFy&p|5o@DcO4UX>Ii3bU`a zJzUa%%b%6^vS)AD zG97zT1>tSAOzzHf*4Jb_^?EByF4*bN(e*w=`e-h-y%tS1vl59_ayq@xiuBFp5A^OC zQIhlKAKSAmk5(!CW99xcq3))GG`H|JZ5y9N+zux)P5vjCk7GXwK72H#m{CX9#Z}Pn zj_2rk<&*U7$&GCH4?>3O4wC7$F7%_Q8?O^tLB~C|X&45Ex9)9{yTGfKBek?!vw8@6~Va7Aie)GE}T%ddIaki4v#?l|ggKV z_0J6>hSy`z+Y+>tdoRek-ib%&?1tzIl32*+awhNT!I7eY`o%BqfS>jba2S#zksJP_ zwyE35j!;*acQ_Od@prxjcIHIrq8Qn={1Av_#_#+&uT+S-u( z7aWA$gUxJ{-8w4kmPqgD_Y(i#`6%j}m+^*B`NuufHVU2B(A1 z)-;U2Z3^Cb>SRsxa}buCfGQHgfuyl1(vHdc3AobcHGLwC%#B)Uc;6v_o)H}q&v%-S_OGR@)?H)cl{M&}`MosQ z<_8IUWNCBFLK^mL^oH5}RoGJ6_OP83_R2E;a{V9ALbB6sI4`%p-n z9Q{w88{YegeDRKEAAWdAJNK-{>P;oIn$Px}8dL}W6OGJxrOWK5^A{MUKRUQIp_kTg z+Xvsq9;C*}yCA}`v|*ZK5&fjff1jFhbiT?=)L!@z15?K1>4`dUGaH#blT5MEWF?W3 zQlf&WILd~OvfE^Cf@jNa>iy;lehSxy@X&Vh(Rmi!J+02wZC?*ZqC=_Yj~F=B_?avT zXUMk!c{DVbZIkpO3fy;g;$6Q%@^x+=XozwA9^MTac`?)0X>s)7elsq}h0nQ$i-N3&3%B1_6^^Tl z(By*6kn|{-yy((mU1L+>(!FxVai zji9f*0Ow{L1dF8$kqk+r{9)8Xut_8Y8R%$lMk~q_#_v#Gl#vLXOb7jG-(iUF{`4NQ& z`BatnS7+Fsr@4*-I^j_%{qNyP^lr+-y`O!tR(u1f#_WQS*WNhz)CkPY4wG>Y5+EQ+ z3_2Jo@N3&m2IWpb@J%CZo-zxPA0^X_g>RXhj|p(luD#(+=PhcoI)PR3o5mSla%Uf3 zI}4>w>1^GcCirXEL*!+YLE)1VQC+7<1Dq<^{-#`3?4Kbyc>4u0)iK5K8}i5xp1-W< zmIXf#Z)}i{JI?R1HMzP5InWQ@OX9z1Fn8xCVr>ndduj`X$c)37@N7FcF0P<&?%ZMe z3{A=BCUs`FVmjox$KV7NVKRP07@jvdPgW@Meczu^xazGHRJ6?_T1#q3`0|yk(IP9b z-BpVUR<}va;#H(}Q#QN3WC2}YZcY6o50M_#0;(6^jCb6%;iJ@B=5b&;#7$DbY4%3Iepv*`W78mFiy5b#G>rM8@es1NnWSG$#L?+y_`#x-DnuqjlH6o^ zv_{9q3AMp5-VCIILh07%U6>?)i4-{KaaW7I*tU{1++ppEL*e^zPTUPBycUfw{pv7a z>pXB<@rvdb`I92!m-N}eS)_f7KhK@&p*5OuU>1-=533bGZM__`)w2@ich91&3YYLm zMj~cL9zn&2*|hl7O)~DkqmX*|Bzk-)BK1ql@PU^hyi0vX`Y@BEEn1GgiDI0podh>? zc`euVL6_-IXhe}9mfc(uPR9mlaACjrxnA~6^m|P);<7SCJ}bociERxn3l8C-;5T$_ zZx{N!Z=_K=C&-=gWzcGL807B=FzlQRmTMbB<@A-D>WypYaJL+%x2j|9U1MhNrdfDW zd6bwb8sVBnb0I&X2Q~7MJjPn&wh3`{vbM0-u?v4#T4C`xAsUqCjg6$59^vn));q_8 zG5)4EJ{-51#CPqohQ^RT@yp?@^jXl=egM72Zi1ypCGbl_BIfOR%{q9#Ly^%+R{Bx{ znUXvkt+mo|duKI{za0mk+SM`oybH?gxI!gYk3kLTYvlR*YND+(8E5na(SCDTD3r~@ zr`n&{DO=M(=erdd70U!QzhY{WxRt$JrTjO7J(WAAxXHJD07ysSZ0NuEoISOSqU&1CRY8rYa!fwexH7{NIH z^PUprqBmTHQyVq;d}17lE3?DS)OHfN$sOyKIFWnGDdgv<82-}LLL>jxw8?EdzEH}7 zto=t&C}$2=^F@zZn@iJ!^;%r!ra)rAciRO_0H>C66Q_J6+^pP6l>YmLDf^a7t}>$d zC0CLgzkN^roTmrirRE9Z_ADFwWh239z?gPq#ew1@8KN+~u)*_-2fWJ=!?Pj6obX;{ zc4xv&Xbg%)&A?Cey@@O)OjX0Xt-t8Q+*}w6{tT1tRY2Br8y9S2fQ@%Ep-AK^8L&#D zo^@92UM*)P1#VL{#aMi^Q;Yjvn?UUL#?TK3CGgvhba)o$2NP24V2hq3ZFuU27oHJ( z5-J2%W(R1&GF|R_o;K_ZROB3D3t^ycIux%L$E&xmQ_s+@ z{8(e~vkoAYw{jpa%9#7ROA-FW-(rucJ)-3;JDEw9bs+cA$Y$9GJxKH5*DHw~*pV2oA)dJ&}QDpHFH)fvB zGWK!vMpCWjWixqpG^U()rf%j?RFdy8Z}Ml9 z{g-0AQUwO=_(GMxwc*g7=S;>*1D>;{0Ng=7HlL z5vVod9axPmWLaDq8jQ=Ke%mgh@T#|1GN%wM=wZQ_y$xs+ok@!}S2N4EOoGs%snFol ziZ>dN#`hN;B&4 z(f(tQ7w1bx1`_djyBue~R24)Ugt+RoQ-Y%T$~NVWTBsHz4-IF<@PXVI?!71jqTW}b zc+M2Kmbeqd@3cW(fd^zyjm2qSlXzc}K9Ri^4O+88=!E^6%*JafkXKub0aq45@02rG z|3ZO;9_dCe;|;`HNSDqTZGvzv8k3g(nMVy@LIzeVFyh@KGXHun;<+Q6Ml@(bNNE^!yiRG_p)W7TiGefA5mb^Sc zGeg7axTZ8Fzes_Mt6oUY4Dwzjv1_c!%P`Ayi_>8tOFG&94=v>6>EQBY`ux8n z%AaA=@v6^g_mzIu)9)aaA5tJ|w;9sXV~xzNdza{*mI+ic>oSeCb!nLI?L-E)+~YYC zKbX+fbC{S0r1PuG>C|UV#NUOXDaDgW(1j^XW3N6Deda@jXNi!NADh_3=pfSLS zMd|l2+8{R+O;X-cFPA=x{r@&3PTgJn9|qcN3=6_nB$PZtPQ=5MBB4bL+7t5T_y;XY>d zPd6HWb{fsP!}mHY%9y^ywRHJ|5_Z|FH;mKl<22%CH7#b97}u6UDjD~gCao-EiYK?y zTYNsPcO~C7Tr`ETZTl&3EPv4O{6D7#$ww0GvPZ~Dw(F5LDKT1WwuR9fI8K+J`Ag5y zTlB;6)wE13k=>$tp58s}NViI_f~2r~(rsjeQOfDo$qx`NNdBb;KKi&aK$WYXTLYf= z+}Vm|eRktfDekyy9vtq_U~}D0kZoV2k0F?8FW%8#1t7fvWw$?JC1>D*+DNVH1RmI%Q29|SE`VdC-dlG)n_7FdMq(*?G`yo)9z84K5tw64B97;YfVBFqna9pDajrq8b z=kVy^gN%dLXWPF5TWrBF@)sG^Bj;d|;W3gcB#PZH-+)d=47)spa1Tu5!Cv_Uxx3E? z?&o!3kBA2BT3}A#*EH_RP!0&+%Az~_Y-r-_pVZXj4B_Url6XIa`M)wa)kXvQL47f+ zwf6}t@DIeVXU@WAi3mEw^fYy`D26w>{&e5PEo9x|=k#ED96W0lrJc_V;CrMrUR`L6 z+^JkXhq0elO5DW`KX04bZzmx+>L`1-^%AD^d((`(APh)711c7#5SZ`4UMx66vgDNU z>gEMtuzEF|p7;;Kig#1h3~8=Ru$Iid)B-~j`Ps0TCljzuUF#K-U)DGwxUljZ?q%K( z!>3A6Ki`)=`Eir920Q?N`Bn_smq$j*`Y~4fEZCe1LQyt}7>IQe$?2}ND`*++{g{7tK`L_Y;b-y1{8Uhmzen@ItYUZy}O9+7zO6(F(+K3(@k?- zd=UC~!Ot@V(5N#5U*S8jU+YhnSzf{W15%t$i9eZGu^d{LYVdAv1)IWtHL~z~Fuqxi)LVohRL+ib( zp!Cfce0gkyDII!?m4{8(Dq%-rB-$p}GHgK~D{V&UTum&VnB_eS8c?0~k-AVlJCkT!__vE(F1EhMN z5sJ+64HEW*k&r;dAJA-sIeteb}xs1El*d;Wf4EqCs{Tks8uR@i0mnTB@VF7$U z7sNcG6QzZ6h_x6)8Tg4QL^a6RJtl|nAv+_1{4X$;Es9$pJP(s*3?ZWtGtA8&I)h3 zyaI*Je7x)o^r(Kj~sTfQcy0P2<2fZd}dl4Hu3xwgAoN-kj1-xe}|Eh zM@i6uvKUf)lkE;WLyG!KY2>e?XnrRi>oebD`o<#28S@{vW}OX6HuT^m$HV;Jtj{IC z^2L+h0W{*L2Oapj2L8_h&wQUtI*28VR@LB{fwAO{{C7IKha`p zvAO;FDg7zlKtruo0V8yq@j5ypUUKh z-5^)^{$Ec@JbnJ0!TUltiOn`o>axTcuB(V}?^K_`?bH?Ar46g-qK7<>zvL}@FGd@J zb|-?VhdMof_#G&AmyqaHTWH59$Mf$}an)66=x*^PT~2GLm}fLRnbwI#gMM5?Zvw67 z_xMG;e>0?gjxwzrOli$(MQ3n5J zKgAutCfTI%UE8l|t}t3&g3YdGpfpnvHu0RN(W+5cZ2SuMZ|H(O@9(2kcpKvtmJD)N zHF$m=QcaOPoP2C6WA18*wUdoWjn6mY@G=@6oB7hiyAwdBYk*`_G*Ij1)({~A7*fGs zKiT$NNMi&OInn|*WKV%@_!Au542bFHKy@m@_XqEY`3`rG-X4g_xASqUSovs?~zAwtvZnh8Q7@$|nD2W|G@a ztH>bFyWp&~xYh2Z_;&ROc@^zWXX>s1u^1Clsr{HLoD;)md@p@ngcepMC`0p6mKfjf zB=*|;^I57lt5e=W8_a^)x54IcPGfuMFbQql z2=m`;C(pJgV(&v!ZX=(UbH7tS6`i*bKkFEpqL7XLKkpNtwN1peP7OvSXJV&`G|I%P zf-BF?-nw`!WIOV{)e&LtW}pEaR3qG1hnwV6%4#mN&ld*7?$HQ`eT2Hq!CzIY@Sxsh zDiS0E&-d$Ls7hP0! zf|(rrgE+1w(b0d?lqRUNO;)0jz(`a!_ z2h|yv&CT5%MM5+Z@lRVUx8nB(?)nsSbPkCGm&&oIwaEmV+`T~V5J!|A@ZOB6olJwI zJG^r%rzd53Z$|1yaH!|&wOgWWjGYo;{i5}h&71*#w&IxCF@~6}|7^YE;UF2Kp^ob% z-ZFn@y3&Ei;?SJXUw`@STin9WGvCHV(`RF@g4zXRlI^$z4~%VL)b1C7XJH{2cZ7my z-xD^!Y6|%_kI$j6ljmkM9HCVU3aE?ubd=otAN~?8!1GaVM28FH=XHPa)R$vu|EP~% zx204+p`P#OC9@{nAu!yMON*j(=#Ok!Oy2p3JjEQ;R(?UHQsOatfv;fgxh2G^=_F)& z#Xz~mD$@MoIX%mBxF+puhYvm{al3X8+0XC0gPIcIU49Vpi#ZDK>$cI&ZjJC!Ak4ja z+fLbVHH0D+o2kuyG$S}2KT6GER%OOxM29Knm28I9C#_(slr@~TzW}cFwRm&EaUzpF zg^+ex;uozBcIK1tXZtY_=I?>QNB5C|@Xa{lt|z$W$a?^eg~RrN$@uZg58P1d3sw#` zy#ICwo)p;Ov->vSm&?(KVjSvsMv$(ty3i9k3j^~^2vwTGuiv838LWp_th8~0@+Od} z`iEYtC(}Km;W(jSEU~iYuqI3ls}1BJSKJW_70NNj*bm%W3_wWH8Z{3~a;-!2!S`ei ziYP1KLZg3z%F}@m7t%{l4_8s)x&)Z8W)tHQ@4%?NGY2Ep6Ev$V1L@0G5a|1vUi`&7 zvZeINso%$8acdNO`L-F;`StJPA_3{+`}QreZS3AAE3$^~pWTs2q}hMtVMT2RypBqS z0nsk15MP=752-czbJ7<0@fF-BuXDnF^LMI zI5R5%%V(~GC2?UqZ!nnLS$~%M`Zo_AcniU}1JmF$@9jPuEQwFf=wi_lD{3-__f96n z(}__*(4+4R)5loh*>W}Vao^^jt<@+$E5oW?=L5G^(J}wVz=55m_@na^h(E~_fSLJd^r!p5LbG#-b{!$@0vY*9&OzVN7j$^ZYs`M zs7C6nuHfu`7fjitg0I%KVp7N?ruAeH)~?+Em+nN7^XI=YpVkxsH@TeN3TnpF56d7q zTmz?msKz(KhahWg==+yGIx}l6)Br@{mp5uEwIl65=JR#Px68%URhi z<~tj6nXZMq$tqt-SS1(Fe!uC8gLE$Wt5yZFWA%8xz(krj3+Uaep^TTpL5SI@&+loi#dKEML^5N=_O;pXa1>FQ2sfNuq zY!x~{7d|e8wPDj>*T+ZD^vV|g9Z@Ih+3mQp@*oX9u$W$KUqlUp9}$&b-|6kSkI2p2 z!kk)ZIcoki^=N~IGCltp_Vw5_-oJm&L(hr?r|V7 zrx;>d+&E2x2PET`1ql7OlTjX|_}_ME^bF+i{67cQamFTYafdG{46lY??#`_HopU%# zxDoXK3E|v%H{>innBrAF@6dYj7p7e~L^}$~1^1>kq3yVCxIXxm6#hNKs2wVxI~~ff z&wc{eX*d#W4uVjXi6c72oQw0lgr(KiQiu7V1a7<7>p zS|436#`l~q{m?{-xJ1%I55lNsD3zDXhWx0v__XshJ@@!EyGSS>Z;7mho!=0W9zsXj`pz2+?JE{s;6}`;kIM~#m2|dPZiJ{6RoNMie zclH**jH606x$*&6dVVPk-8u$=Z&YBd%}D*HJXNS)sYC9WE`Ye669OsGd3Yv9+vdSX zZA^Z1j4r#LPBJuHaZJ=GF-eUfOI#PAWc6AQ|0N3A;0b9z0+^rV6_cOT!^#OggR9Ew z;3+u=COrry-h*ODv%9JLdIBl>7#jU4v*D9?}^j&RZzdd1;l$w z$=dsuQ84`id*5ahGsf7H8xpt3G9?D{P9I=Iy6w5E)3;;wvgHDc2}hjzgtt7i`?J2HoSPfzXp`I-+`jPPATuc6U9X@%%FU66#Ae15C(=jQQx9 zyo=j&wh;GUP3C;oPh)OnpQiWS((pgIfAsqp3+D0$1$>y_OUn1H<1S{e0^677TxU`m zzaJLkBqJw~jm5K3%54uWQp|;-6XDzqQ=U=s|K~heTl|!}7JU5=kdoIX^z(X0_P{qK zOkNq!+L-@CM`0tJd(9L*UJx$%$Yr?DZOck6TudvKsv%ijmezzAW5PTc^q)6@s^7Z` z)mjwCbv$J@_#9zhovEWLULHILn4fpW*~5cEZKA*N7aC1BvsuPSu{Ig5-1f9u>m%Fi zA!@jSS-v`+i}Ia^!`n_$#o-~^Fj0zKv(p3>CGs&~mje8(l(uKp(qLD4tWKF_WTsUPStatF?Ch@OpxpV>St}P**sXRZR zAengjIHSdXyaz~8ob)v2z`v{lx?QOR^c`7huk(dmUj7sny|=-dd#0S|4ZdF?9*S00hsm=SR%rh>9jVH6PD~}9Ml6^}3Z@=}+T&l?htW65m6C)8)!k!>&-5tr zLpKzUt!beyYbS%&@Gaa^=8alvs$hAimH0CuuR7` zXxqx_yCi{K`#DUI86nubrGx(j+!z;8PGhMIbjrwpXVgPh z>%9g9MNfczE~Vr;cbht0nU7Dn9MpJLLqrPKkY?$rbaliSOnt9}RL>c}q73AJ9mX16 zSr{W1fxo_l;bh{&tnv)IF!l~=IuwDD6(zgD zo6dDT4%fPb!0CK0MwKdYb6srdgcZACb*dS$cz22Mx}j@x{n~dn{4!EqQVMLR7P{Y9 zfHk-5VWENmw(K7yPf!1#_|U2{3W$76|xx@6iNE;|3!a?Zg%Ha zLvH@9f3$B;3i>F4-a3hMAJ_5Db&rMI2$MmRPnALGW;wna z6^v!_5qNP+9G!9|jd;Cs;rqu)q`Ng6`acE1x{*w7;+Ax78qaH#$W_C^?FZQQ?eCc9 z1s~{XOBHU&*BRE-&LwRS1THhx95w#af@Iz?dM|X8R^&~Gr~Mjm zgx~ipI5!R!peXsbP8-*mc~IGjJY&x)x?$(RNw{y|9R0gTfoeatZ3xTJ=lZIBh*hmP z+E=78G8&=u(|z7~E+`f*-yIG5rt4ao+|e8$m} z#+rxIW#26L>+U%7EaN8dl3tSDV#Lq5;?Tw|lhN1`$L&x~z>6!i;cKHc#y+2lp|G71 zOH|?@}>au2HV*i>8l{Qs*V0wVL>N!brJKaBP4#c7V_@~osnaBgv&>p zS<&#~KNeT(1%RBo1XG+ik)AC-M5biLlW1v)E5iAoi2aj3e7i#1Cgi;a=h)FlbsU>{ z@BBs3eaSK3TkK$5<`B7So=yDU`jf&XBj`F|CfAW3MhaJqgB}qDV!q@qlo@KV8-LxT zdS@!}``?A|$uJIHZ)#`9$nY-M=ix-udkMHL%LARYC#auo1uc7j82>w@LDUB};~y&< zJYL$sDrLxG_w57ZP>(tMj?5xra#v~m+gGIeXFM~`b}mE}y{j*>(1y!qHN@#+CRp<4 z*zbQPqachyvu`ue-l32ymMkal4sQfcGMRUbxZwVS>$pWXLNW18H?itZgn+(#Jo|7V z%roMZI%|{BX+kR15bY-TdmgxkDl#u8Rbhw!SV+SdaF6^(I(E*5x>s{?v#kL-YpS7D zh!)D(%41Od2=2Dth7MJ-IP9l}i`SH~nPRG(l%G6zS9deHQPD*9ix$$hKxekLa4XM5 z7p4ZQ>)?(>DPwTu20T~Y&K3Td47=slVCD3kU^AO%E9oDi&liYsXQF4*Z-#E*c_tgT zHuLWZ9mDP8(gh=*GeGQUDLy(ej&pwdmA!4W5RTVR0cXt|%IIa#ts_m)(P;+mLQiOX z%~%@=-FD=mDn!nEJey+uiAb0eJaC8aiH?{tJD%C$Xy9(hZw|-DY5I)f4r$y~aF%DK zPZC5Py9T?evWUOEE#3CuHRvkW(K64KFy7+{y5}m92WfvGIZzSL1|>s7$pMnUBia%_ z$kKnlH^ERUojQlEC!!i+_~dsWOkJ1_Q4^AJ@>mZj@h`#f6MCGGmN&HT&Sf8toS?(Q znh?zAtgReQu$GHNVMbm&=HF3+#TWb8?e8br*afTE;1qs7rHRFmYu}2OO3&*auS4yPUOa}4Z&@{9YA$2-w$2k&Odi|gYte~B6d2O1eDK% zOJVVhf29+IpH+wFmwQoa);luPnL_?Y(Rs&X^}cc34p|{ZsfZFXDiP!Uav9wVj19E6g9=7oLJK!cXu*-2$k-bAmmtRSh3{8z|$e3UfB8!gsNm zG{Qs(B-|w}jWxHyO|u60x%3YWdR9Pe%m^Lw(IP!(9T=O7QKW5S3qCnKgGpHRh*2CA zg^sZnwC~j^aJ1OM6+fTC#T6!F`0{A>N&9U$Jfce1boNt~JOjpUtS*ildP;P6-eG1W z8{pY(F-(}hFf1SX34;y&wCQ&edKkN4)vlNB(o+yq`K z9pEmHn4!mz4RgwH4K`MmGPiZZs8rWJtYMF1)6+39PyZ5hRj2WNUpFw!--f?7^%3sk zX;@{whvdWtf$^$BviZk`1#Z=KApgPtFlEn@BOp!NYvZc$J^sk7?E2L?~5{~|*i;XUpkRtpC48FVPO zh=f;N;=YdG3{xw_EQc?LlRkSBxMzCUBXD<2A^s1Qu&Pm*^PA^LdNmEuI(ZK(C%ct&)Mb*bsYl^tZ45io) zDgk%v3EZ6TugUv_t>9{)kLUM>(kafsJza2<_K)LPt~2*BCVfscegObZDbC2Eer9O({ZlP zHwPx~C?KtGmEeQ%1n%zYG&+^vR~);i1bm+WnB}O#`@34SMtCb(@!>2{NwFutOiCEp z$SfT8+YTds0%~XP4<<{-;iHYGpr|<0%sX!Aq0a`FZQf(fVlOWMoD!3F*Lx370{2;S4TT zy&k|N_IK32AMC+R~@%>^1@$ENR-Ct5T(bR_9o8tj1Hol`LPi4UB0YywNkVbD3 zMDMz3V(n8Glz#9JIU&BbI@6Bpt{p+{jR}0n8Aj33Gu-n#(ohv|AvpOU8m{N87l_{q z$Clh?+LlxZNiDwY>&4OFF4n}VuT{h>e*rnaPYUXPmXN8INw{;$G(5Injz_T?z^ueI zXrDlE#jKZfYv>H@%xwmppNr_vmA6Q4R}|6G52Xv8&Oqs4G~M}a6FK6rnUqXhh-DM_ z`nEn7SnQuU2jnDWzYBD$HUKZX@sRE~q67*SR zCh@O*Ox#=GG&P|XnHJ+K7JBR(uc*MbgL2u3mLL!_-wXlgeQ2M z+l^Vu#xRMl0prh8G5F{Wlrla93#=z|^L~p!*U5j_`(-;ApK#_@x5yIxh{w#7+iF}3 z_ksO3`Uuk%mUH4=@5pJ_3v^(bAN2V>V`Os|fm!}|JohafgjW0E7jYkAE%O#jRGjI* zop!L}a4}u$rw-%CZK4a6hRMjMB8)0o4h<^C=r}h97X9`D;o%qT6p1owqqu^YwlBr1 z-!Cz@U>u^%402;olH0s@1)1^Hh;!g~+vY4>h(n>J=I`=UF?*2*x*CF@HP7ZSlp}1MgF}<2mhFX=;A=$mHd|enAie=yJx^}gK<#r zZi3H_$y+{akAabY>UJEXw1a=fs3(*7SPs|Ln=;CcM@ins zTg0Ivo;I44)6I8hk^qTknDjRQt-`}m_1#f&^n?-h-C}f&96v zi)c7jlj$wOXg*R;?AK1fvwo6bPfAc{sRNQWZTcu)ln6KDOPz8tTx;ch$p_o zw7*C2)bn2U<)Woz!%!Mbk6VV%3SW_+XcNp9iAE1<4Mci?TzgPQHvFk#w_i8{Us84; z{rBDCx9%96*}EUbAB8ZD{|q@4!OqGmcfZZ zaAA8dgfAB+9^G@WB0vIU?zGol%N)oI+7L#QG>&c*G z7&w|VuzO`Uk(PpqB;R0^Stu{TC12-v^j{~lDtSxr>p6}f00;{7af{SkekOR+vNkk@ z*?s5@)u`JEHjR1U7djIog;>aI&%w1zDYRy*6Z_jMxzov`f{a}pMm4>o%A)@Sr@m71 z+BBQ^&hz1R-RdRvDN{MM$cLnFe;BGysK(u&#JPh}EAjZcc=p6iAu7B~2x5%3LBx|p zp0jDgz5U!o(pM_LQrv^U*_QL)??z4U z99)pS1rq(Q!}s6u)cC++?t0m5GPl8u3@IL?Z+Sn;{jwF9dVdo-FDu4^r5BkxTU)sJ ztO!Cw&f~-n?aa-Dbr7>wi1n=SCZjKNK_H?^915)AE;7;h3?}?2hu!;PsmxXu=Ug3YxhVC6Mb_&ytV=qE{VNKwDW?+mXI>ye#i2FZ zdQL)D;CHGtXELyv=V<T?4TLAwQ0v%<)Fm!}*{ZIG&)WQ;rehAednG~7PkFfO zd>qQ8&f&XmVN3tX1+}}8hU`_i*SLsh(8`J->VT>|6+Ib>I@s6xoj%p~6_;#%Fl1E(IU&XYlUz zQV^+hBBUx04*nY=K5lvh#piL`LjAFB4e!VGYCy9GU&)-a1(4mJ3~c{iPOuP&!=N^V zo;pR&t|IU;Mw*U3EF~8H3y9R7P^`d-h=$HknRg23`Dl~&?GHfw*E5vxjKCK|=J1Q! zFp_7cu{W9*!bLeVstNwKt)PMM7g--$_~oU=?S6L>9+>J=nVbRA#_EEVix)pzHo%oe zH6&R2I34*fjwpN+c z1I|mY0H-e-gNkeO;o`bysLr2r&eaUl{bsA-#;S$f?EY*#wIZ3bJD~;DV`hTgSAEc) ztP1Xj^6~o7=~%2cjmz6vP8FhzVNRhYxw>N<_wLIHXels-bf;lLji%%IQw#oARQWy|fqY5d!tU^SPIq3}M;7QgQv37DWOwl~datmN{z(%;Mg1%6oth-Z zQ1>4_8C1)73@#@3CJ>tA6~mg`mBlZmX}mX8j;=q#^J<4&s0qLLv-8hRCdum!ZFYP` zU;gf7C9R~`8-hYseO)J;H(WwGhEwU0Y4L(Y*JkP<=%&ufXIZ~#_3Wc@n^{H02=aXO z4cb)}L$2r+T6{3znCTXAbjd(Djrd_K*vs8x$2WXs_m<9MLw^Wp<>zekwN;zxK3{8k zuQ;6<>1(EuX-Q1i{Hb)gO%}cMT9S;4#If%a;>ZALVt;zJ(t(GG%oAZNn&4tiKRkIy z>nrAwvXU=!e7in%EuKp&?bPXd*GLjExsTekT_jgbgg#~n#d?n30D@r>yi?Xg8i)o6aFm?F}^jq`^b{9#d zBilvD<;~}5k@#Mc@>P@FWN;2VBaG?RoV|!;I$7X4DGe4Gi^1wG@|=M>#r{RdanwhOdv-pYyW@R`vp!bH z9SAbw+R`n!3K1#r&1qvJ=IHW_U_F|B)s(E1E9Cpkk*wm55X^ta_m~H-K*7b!^CLZQ-i2JE-LHYE zxA`;gGE;hQvJ<`+iw2L$@nlTr3NAtY2GuGF0uvt-sPEuw=kjT2)q9$H9J|Ndu2mya ztpg};|C8EAZHC_W_t0R9FL_QpLEEo{cE!eXV#CswYw$f8`^OJtqC;^`xjU4bwv*6n zve4=@27XHg2^^d+pzQbmbJoU#gxx}Fn0%AI8FHkOua0mJ%8m=pjV#A{iSd{bZHMiz z#XxW<4*s~7u?<#Z*h}KwJePZf_XC_nk-1li&)*Q}Qq4tQ?RLz6^n$op4w3`+!^kAw z?KG~Vkqwk9qRRzCq$Ozy?OA2Q^&B+C8)s5syiGJt(z2oP{@t*2%~cqTY{sl6U1C=? z8#C8;Qqh}I7Asbok!f@7Y3!d{e9qaO3_eLF7jjiGBTENm9ArTGjgY0=fif6{MReHq z7A}r6hIVN=%f1IUVEqGx7rk@1)c+=1-nsY;({CDZuTRv#t>N)7=H4~*+Zl%Xc8zph z!cj0)N(bwn#c00$BYv9n7Z+(B1v#BeV#!~VjV#6Z-w_}z6kuVRr;TgV?t$|2A}IUT zL9VqgX4JRefp1EQ@XlPAi&o6T3#+a(rE{myQ$K@gebrkcr)%qeeGRK_D+f_ew=Z+K}Q~nLdbmD+_6kY2bJ`8DF{#q0h#6^2jP0ysvd) z*R{Ls`9D3hx-1?B=iVTHU#=swOgG>Z#))^%UncjR55WyhAA0K5bGq(FF7bD0g?r2o z;&8Z;8u#-K#Oi)yVo>|-s68CZsDcK7;f3w9Qx#*D9Fg4BOWp1=$rBwh|7<` z&x%tNosW#DfjjMnvgNOG(s z+CP6qGyc@kZ{3vLW8Hv)TsJtwje)*LQxH{B@Jw4c&75X}Ml%}7n*bYj^QQ^Wc1WD7 zu3bhArn}TVWTQ=Kc+l~s7zRw$115rjYExhakqAs3}*V6w36qDr+ZE7YS z`mc!9r(LMWXVn5sVu%$?0FCwt*0VGRN2}^^dDT?lRJ#N&(#0_0s|@+7IbN_q?HEzN z+DVxY$vmTOACvP?fKR-HaZ`*2)GQChpL2M=;}$9WbnF!^Pm+Nr^UlH3=yNbN`Xnyf zl>lz1n=nS{G);5qCm$EaT6{f{hg-jNphy65dudp&qJ|U1%k3JDy7 zGanFtu@`K$c>?ofjxqK$7h?E_Lv)#vCNBN2p450~VC1$lxOKidExF|eLMM!1jG77c z-0p%8Rab#)(=oc^6k&#&M7V8h15xF7B@FM`f!yaYc<8_1DB(83gvAxpzV$}SO zTP}O}mHG4_mOkq=h7UKBNay)-^fGgRXIVV=K&KZ%c;+T|#0kZI$#7p&$HKLWenva3 zlE$1KLe($xaHj2Ch?tbX$~0@6iQSR#tfFvf^Bd}Wzmd3C?Sa#;t>}Z* z(y-I5lnm&0!Rtw9i2?&!q?-3kiR%>ZK%Lm+RLJ@ zwVz>RT#0AhYEbiWqsTM(rq54i8%Fvta3q%oZ9M?bu7!|MK4bPTK^$JGr=#=x-xe|R z|FOG=l`-m%fT%B91{(al|GoSennz;rT9qliFaDgKu{ezS7bfs~+&XyYq#Au<6hsU! z*g^vBV4sHyVDGn+pzr^hNz|Q0y*`#fwR{YHIx7QRdtTDx_PwN}{VYAGxr;rZb%j;Z zR=0e*^*)-pJ^=}d0N8#!8><#L;`aG>@yJV6*tyx1*45638(C_2Fs2e_w0lB-Y!sY- zIRjp=DuFItBd+495lY#F(#HI5bioF}=EW01$lwx8)we|ZA^;H;VK6h{UEbFQaBs&4 z3cTx0VTuBW!Z*n3iV8CI=VUe_*bbzZJV&*OwxGIB9(>bf@!cbeg}$FL^1>;wNqhz0 zQerJ0o%s)SwtKLTJ-;%=QGe-+G69iq+fOQgWr1(ZMN-JS6&HtHr$45iBicV?aZ%@F z_@Vcbe0#iyjXAWOIz%Qh(OQ>qhuJLL{`4&I`u87~^0XGt=D(s7;(y?*z7Cq_x|8}c zp%~DV!Aji`B{jk2WMQcT*Hv@~I#=yM)7iBk9GU<*kb!4l-MI#56r6OARvM%Nz%8-d#5;eDn|#)~^WW;yG|GR|kwn=RgW+!&N(E z;N7ABMv_+;Q9M z<2=haipjltw`N^&FIizUc5g0x+xi1{hRVX7 z0ZUNaAq4r_FL6$;7^gW-my;HG!`wFJcU-sMr^>%_Nnk7A%M}xcIR4(-Xf#CMD~gdO z@jayNWh2ZW%9i?{8O|bTD~=aWpi9P=;X~!SzzZ61ql^?ME2M!-LUq}i)pt-3c$EZx zFXP$Twd6h~vSn5Az{{r5vvn>gEDJ!!YZW)Q(%p!%&;Su<&+HHmhYr8ymLk8p9pOKr4O@i#Dk8}ZG66>2)G_f za#ADFxJ!Z@X#%qE@)LSvXDZ6^c{W}7{V?akQqtkB0J{C97Rwe&l0)nXm{n{}-gFP zy1!EaA>DcK`Ai7D>^H>XolDXGbBg7hge%lUA%R@^W(!^w&7}NJDVA<%pbs~P!qdYG zh>M6ms@EyuyJ{g)Ib}5%|J#jzi4$Sv*j(%$6&Dl+JJ2`lRltbUG1GkNnC!tb%+D?1 z?8cMBVCjE`88l5n-$U)xsy2g$VW$p5|oDnuS!qyOTQ6Y;-rt zqcPHdz}rKVT=}evf4A-;4@d2=F`$%6Jv$C_?$5;ds##bY{1OL7&AD2RKim7ANAOsK zcZ6GrSp0naEw>J~Y1z^?*EAUVa*+|a|Y`qh@+h?m)Et2zOn6RKv)rW z>uQtTbM|nNpEgh(>BqP|{}yq6Errl&4{D|R@zTiwoac9yJ-Xv2NL^5)nrUJ%PCX5t zjhln(H;3aruNPFB?ZCYU|B$oe>*3lq3+}{`Qq=zuLc=cnp`+gnNob5M8opf(EAktm zQbeBnJ+J~cAN$01mML-S*+TfuKOEZ^pW)O;E)iwFr=)Y?Fs+R7!uE_6)T>OA%Q?1| zdAxA~3@EE|Ca#e*{EZX$yjvc1Cb_`lk2j#Q_6dwAFDXHk|*8 z`~K#zn`bA{16@~ulo`U&{7y10=pHL!kbnh^$64F#TtQd@?bi2-(5g8&(yO!&4wVLtC^ipe2#ZP{>0j&Gf}wfB>J`d z#>-|by`2*Vvj_a?fv6%JzoCNY_b5^?6IYt)E(Ja_!^k!JzqqgBIXxWE!+too9uJ+q z4G}Y%NXY%UD9(vN-T`I!HKv=?7c9Y7!)J(wvNrZ?ybk`~XW_IuQ|Mh1fuF>Fuy;(a zV+Oqn<;|Jo?xisH-d$-XddzZg&p!{lE;{0xtwE$_k3NJR6y@SR904QmSo+`GM6?*1 zM4eC8(Ib{c;HDEQFh2Hwrs-M1>|6Tm>O&jZIM-3s&qrcYWJgDA${C$26L97QD_qjw zN6#k?2!0<6AgqB4(YQ5Av_JF^#hL}Q_VGm66?~EA&AiH1?FX*=aSc=aW|qaIyk5N7 z=nHPUCva9%$FUMRjUYM86FLmssQi~WGI)Tm-+!xeN6#j}l8gwDi$t*R*TlnJ{2qF| zA{G~%fZGZwm^Q%){;t<0OL$^WN8v##5iCMC8=nS=!)dU0xSxKQyO?BuI*0!p5@1!< zc#zZ7fFss}KBuQsJ{O;z*oDunoxt<7 z6rD6AjV9w|&~CJg?#tyrTcbKF?pcDzg*MZTrTls4-vU^sr3H@Oyz{`9E#&T;JWCk;s>-hgmy2;!PPqqQFB)~ znL6bPzWGDA<-dyXb_xep=J!d`q%AmRhcO%;I?beAe#vYK)&hg!VRCVSJy%{TS)301t_b>DJWI(W z>;5g}OnkH{nYnM;Kg(gE}Wl_w~rAPyt!=0JzcSlt?*BP zSyy$?cQ6I4A6^F0)I3;c!oawb3FPaqbi7qG%%(PmlJ$$!xwFCd@Wn4{JQ7d<(#luy z{@HSrm!CrN%+#RL>=n+FP=kfxJF(a{gYW&y(Z$c?U}m2<+}`+%XZ1;Pj=p2CG{T(j zj18k=nx?F?O*lAR3r1f$lM0%oIK%d*G;V1*%ruE%PruD4F%uG~df#($pn3s>=DTr! zLrci-S<~pb^c1qx;yT+iwiJVwuckd)mXpVuT=CcB6ioU)8=Ha}JC*nRt&om~I=+T^7MV(( z@36xt-4Mv1nn#28xLTHay%#JnnuM#a7{TyFX);s(2z>uOK*o4nVphhl0n#> z2I*>6_C*R=;~r%$lXrFBR#6^;YP+Jts_%xFVfgA+VI-_9Zne#K-9ZAxM$ow zY`j^--u?EJzSnG_{G|ttb9}EnL<9;H7-CxH%f@O3z${Nma?3J^?^_z+!`bV>$vPR% zACJbwBx5!xs~;_|eq%J`-4LttxNR4w!_we0u*x)^3lA-%Q$KuTzj7K>OnNdYvD(Ni zxtxH%$9uwOO>^j3{E1B5TT1#&o)N{VGx!{MG1=-j6P>l<;J|;iuq-Nz+>}Y7m-;Tj z56429r@p!7(aQ{aMk$DKQQrg>jpONo`@;(c22(*LzYZ0>YpGCCGO>2I#i3|5x>TQq z{N=ps^S&;O8#_W2#mlitGllH1_=r)4H}Qj78lJlTA5IFg10m)J$h|pA|_*6a>UNmPsINe|KD+0iPxUD;K*DvuG>=?i)>PvBtt8rYxWin zPY>rp=l9b_ssxL7h0|qxzL1-cgrTi1IP{+pT`yEY#=G%7Wu;s^?)6o`9rmWdcjdul z$|;(6@CN%{`a1FOlwhvPhC<_w354kqg_W2=vQ7zEuKzwCQWer@)9F^O=i3xibvucB z8+ne~cu^4cUQWw1WN7-xclL+B39N~-1rw8q;i_uQ_FzpzP6g*0P%-9~%082$37?2EP58jG}zN`~icWVx4sYDAppH^XbXAisZ z;4NCO(Mh!0&*K>x5$y4sO^;<6VV9%__{%jgL02RRTh{|Z=`TH9oHFXtMZvDe^w!_F< zW;tXzA0lecb;%XmVdzhhV7I3vlLzXJWW8qs*>+Bsw&?GHrF0FF1H0H((@1m+O~YAn zdr?zi9sL|)&lPPEu}t)AWX`@n3%jP6(gmY0(9>H$42ulGXMz+L9_ov z^8#trnmW*xs-g?B&ckcvT}Y#yKw(lK1Z=gU|H+J?-5#D>QyU4*&6B`pnH((j>&6%F zwv#`cGAFAy177w-flbg5d&bzD7M`8~AN?=VjXnJN?NvQqUGar{%-V=n3c=`V5r88; zYhc?66D~z{jO9>c98P&-if@~zak&%Cu+%!7PIsPyEdRZ#d#q4o<{j|aAWJ3Y9Vctt zBVb6X8(s~HarSE4xZNw>u)R~3;1kV5FrmeqURzm#oBekI*E9>}^I<==LrE~v=Pl|x zDsvhY=G;lIaMH3i2CudZu<}MHxn*0Xa(C|sl3s;)_-#FiHkW1yw7oWShxN{2tI#Q0?aq@XPYqz}I09h@Gp?BqNsbnzF2$X&x>UsXZSfG4UR9D_CcUXhhY6QJ_V zbng3c6)xjv2dnB?XiZd%&B9E~@?25YPWy4c%tXVUhE7s!gV4-Kx^j6Jb#kDfdYaFCo1VpKMI+<_ zzk_l7lO!JBqeo|4h=Uco3W(axVR9z*0vz}?%+CNE$^88s>JHa|=&2~Sc2fraDRtpC z*r_42bAUXVD9n9%KM9M)`^l|oy>!4o3HvWPSuVPnPEs?gS&8Y^q;W$yQO+>NWEX!} z@;8^dgbdT7$8KbAustKUMh~8Uu3)|Dc*c}bJ)ecBr1QUBFxM%QU}o#@#&y&i6|-fz z|Eed0=6|tt;=XoP|HA?_1yu|v5`iE4uaZ?C2g$ywEG90=klR$G0{XU_sd4=hvN0tW{Ixl5BG z{9w-Gd2r`HHSYDf<217|m@{lE2RR{mSbau5N6ACm$LC~h$S?%?zoQ!- zgmc0LH}UbuYSOdJgWl^|#@FAvq`!SCk$Ar!b~z~FPOVfyyw+Kg9lRUDs`fDMwM!xK zI!l*Nx?JPb??5l6^%5McM(N{EnGfu%SnpLUwqoIeK4 z&l;#DGdaCK()gi451h8DqJokVkrLep_2UePo$*HKn>Gmpyxy}J-EZj_ui~1f`(60E zFNr99@ni#Q)oBOL2Ck+YAIffETLK*LqR%mS-*yRZzc8V5A1cDpL$m4GMR)LM2G0pl z)FBg>$Z(d$im)R36=f!>!Ss&*sN~dM-1cib(#d1twYV4~{3(tLZOgEj>odzD>zF;K za`F#3GBpWG)^+gx?i09o#Xa&y@PioK=q2Grx+Kp)ox8Z$8K<>wKo6rbwypjKsutFg zc|HlyPtTO#nv6P^oEep#^m&Eu3LNPsy;2E(AR14Vc-WVaeau*{GQG18E~Tgdm`z_-G|A|7YFE;KqunI zzut&HKe~G^rY_q(*_KohI#|7e+2EZ(*A?Z^mp_uo&-iNkYvwm*#r(5$;=OFa!jK;| z(E+KjK7>U4f4B46*g>PR^*nFB-Kcw8lFa&SJ&wwCnb`c9?8rf zOr`bJ(d@1VrL@V&!`vS{XesZ_mQ;;oXBh4ynkGxhkAVz&puCrP{HTOT)f|E9-AXty zvV=9^) z9ax~1kG8)oQ1zuEB;J$dF3!8leNPvLDsMep65oJ{*MBgT%6yNpu8*{IPsUXZs_;|j zBw3kYfJ%mQF@1{^GsD{r<(C_Q$kPII(ZlIjX{rS;bMBDW;ih=}ekf+j{U943#Ipv4 z{nR|Vk-fM(f_U@Kq>L^HJi5vr?i`!MO;-;EK}sR)oj#pY@ZUro-w5cwz#3eqt_#Ln zBXCGHn(Qz$MoXz&wvE3p#(6%)a$74_B;S^KIdwg|_Nb)g1Jkr>;aRR=9ZEp>;}p>M zZlKry+Xc20-MFK&sj&Z51l+q`B`}Sd2CcSzcyg3y?+heCR#!6a(HIBI2+PXLrO}#( zQw*py(~_-Sc)#`?24)@N{0_v>`ixnaw=)wAGgP>PPxjM$1)U^Kdkj|R>oBi2g|P$M z3}F7nNw{Xidf1-)o7H-gLvOelLcHldTD)D9Q|P-&&jho$NT1=V%+G?0uq0M>RiI<< zKHO^qv^8N(4D`KI)<3x-K`Ia>%C?oT&Ra%Gc!PJqBfY7$B@FcqL@`zLKfB; zLMYEYHZl}pUW!<-9R-6#tYkfmZ5Fi*$+F^FKe|$dp*}qS`95i}_J+xa&w$Ikg=lZ2 zLM0&~*2 zw7Bm+rs_#xug@Q5)=6cqt=WP?PA3+6ZU!suam=PiX+*IllIYpVa|%1`;jxfe zyx)w4tSmks_{9^2cbtF`ZUXlsY$_Kqb{!2|5(ZxXe$%ZJ)JXVr3C_~UnQ6}SgqLNp z*jyEhUw?TK*Pq6m`gt+#^v2^*J-3m3xO@{bvg@gni3rDO7L(tr0^$1lR*12`DR?8n zGmWB>Xs7aC&MU$g9#kv`AyqA0=R1fBgOiz>_D(kBr5pPz;wbbbv{V04Mf46$gl?yg zC_c_ZurW)WWLW>9I@(d}uIuWU<|9KIrs(qAs3xeMT!m$US?t;WBr!v%4h+(+QA53% z;80pX{^VD&iswAAKHLDOWd%cfz9qgoQ-A~YOR%$605d$-k@AgysYH+r_x{y5?#i0m zthw?Dvh`37QU0z^C%jE3CN{|y%WevR-OTOOBsQ7+E>VNH!`tb3xubOFf@b*k-z6&M z?T6jw3)$$e-K1s9eGD==4zE(m>H7|UYVdoArbMK}z3e=AKPQ^>D9VC;+&6O6#RUA1 zy3-qc9e6ZJg?w421<#DN@Hw9m(NW07sJGhaQa%FbyftxG(H@@Z+d?I~&ytI^v%tM$ zGECiB1JP<)+{c*paJsn>RtZ+3N{1nA)#Ud-ntib$Z-g>o1@v8D8q~|!z~xaH{Jm`x zIlsA#InrdxsmRsS$?LN*;m;_E=6hUWmkV&IiwIW|c#M8(kip`xgP51432FNmam$KT zaKqTwc(Cv#o^qPTB?jier!7U;IQanl7|CEaX(gfh=|x0T@QF5W90PJ{574SC4MuyO z;)jz~Ttm(gv`T%6V|}wpUnTD>wW|aRo}-~~HW4C&yr9ZfhcuLzp}0pk4SHt|+A^QW zt%;5_Kz#-GCeR3NZPuf9su1Qr@U!^re+bvM^zoeCU)1bZCn_J!g5)_t%*>}!7PjBY zp>4`0ejnYL^LzUrE!g41{q3F2Iq&1xcJ?AJZS}LXT_r>vUzyNaPi<@dgW&f{Eb~l#N1YrZFzlU^2sIi?D;rOtgR9@t~n1I z>c?ZUqdo>ChGWDZN6ySwhgd70hLjuK>@TA>bUCJCsWMZU)BV{7-&UWXf5QmTI>4a+ zpP3}~U5Q}byaTw_>K()yoQ8p2V#q$wq%NB~*wr0Q*s*9k?j7$0-#a|P?e_(o7JCH0 zty{+BRppTE88<;FDS$Sr9OqnBj%yEpWdkF<8I9g7fmXo^Sn~2N z4(&bwR|^lL{fZVk_D=_i*HwhM&iC=f^L}`+`W4?P@TXP$`0L+APjJjJLZ`}Rsxw9( z<*&@MQ2CaK26LP_k=O&|&&&!~FE)|8s(FxX%-%+yd1jL41v}v2$6DBb@)Q{;w4&aF zt@LzZ2JT5-QIE%98g1~D*AB5Z4u4RnnJp+Npln2kCQi2c33f!MW+`xagY3Y z}qb1o!RnXx`QpXcbf(&;J}snoSh zX5&qNQX;#C>>Rp7HqC9sbJ1X#Xt5I;IuMq9?G!BiGD6HEGa=~fe9S3+jACyUFmlf^ z3{v*sIR9yo;XFi-?5(9`a_?avV=_LKJ8pim$s5kM?zPBNl(pQ@y8u5X8ezMU9QWzk z6Lv377KDl?(U41g{?qdYWP7E;8V_O4SOqwvTNhX(IzlT;M4_s40mxYdg7W#rFk-z2 zdK=szGOZY;6bBd;&G&4$t~yxUeGT{6hp3dBixUDwx#sdyICITA-gTu3t2c>~d02w? zjm6=&_Bd=i6wUb>KH+z4Ka!oS9NK@Dg28}PI40al$3L2aPrb9K#SsBr{_z&Z-4tWB zJr3jXnm=swGlr%V^*~X?0UVG-D!Qc}WkbdbMk;yc!lpb3jb3bVt9KhdpRW#@2^u&U zEDbB}9mC+5UNDf*f&SZHh`-)!)H}HXf=`A*`lx^?$vD&Khl-@CE{d>$FPLM8qNwlw zQaqX>PXf7%>=W~I%#rbPEo~}z&V6Gr)H!A{Ud4`tjV~axr@h6DR#Or(a*Z7D38ETV z!raseH_0F8O_dc zima_qgDLdT|qjLOqwusJ`5Q4040%Pcik)F2Ig#@(fFTjR-{RqCAFqe+~2#SV<& z-S5k-VnDKtL;3a3@txQOP@nn&MJ-3@v_pe5_VQ_J_qmTwP6;KYr&hxImGWpSf0UeA zEQ@#848q!1;g874;Oe45b~`vj;@B3_nb$<2=Q-V=*hW{((-2sO^L!LvHF{z0AI$ps z6I8e45eBNDaYGVlPw8ci(j4%Z&`N0C^U31&N;Mc6l%_2aIjF48dqyt#lQY`MB%$90 zXFLc+kIPLE)$yD78=HV!SrT-ZN%OmypHNhG3I2RChU>d_72f^a0@IH4G7gg%IQZWL z*xn*df(Jv%;mxz~#dp8lMMfXXU z%5-kw$MLv#(hP8r9b~WX82~d!XUq(-gTtyRctE5TvKPl8T)IbkukvCsxv@B`l}3wX zGVw9bs0ok@#IOG=?M>in>fXQqCY7krfM`;hBuVqx>pF@C5gE$dfTEO0NH=MaN-2$+ zQ)!kAm4>~pjf9X4nP<7ln3TxWf8W31d42Eu_j~@Y=lMOm*FL9CXJ2QZz1LcMuWR_c z8?4#mwdLFclX5&d-U^}@t0QyNlP2-;ipBa(G~nS={DTRkZVq}Yi?1fC9U&%*s-70=`IOxOc=UCmRz4pDo$+WG6SMGv!wWDLHRqfe%@np zt}6r|hFap0z-oHV`~-A0d9YJA?!dU6$>gMv*J_iS$jvp-go$nnpsEl--UT^PuH**^ z_ZJgHnHLJq-jAXBGmPnues}zFHkxeOEx~D@u47&tDWC@?~5m zFGgqRS_L_xpPR)LcuENaX1G8&KaLpP?Ij!Sm*aTPg=iC`L}pyABHd&r9L)=FDjIa; zezT7u*YYK;wf;#J^Ukx^<+^C3%siUfE=Av7Zo|8K$I>8vob$OSz|p-L*l*l}&2L;V zXa7OCw&F3~5xPS~-bB>s=h>(JvEabyV#ye7uzY#0S*6d0 zKlVE9lsDlHtJn+PYc-Lyie@_Dj1}zj`i2*N9D-NP$*hs$V~l!u2!5Od5QyL9)@44eND!A{M3T^Lrg$6S3nH|c8+#TFP?~`z} zeppS@GRI-I$vynhl*FfuZs(bVHe^9`4f9pDmfet|$c@u1f>pz0;QawT!GUg`>nBl6 z%trH?uWoBGZF!D$WT-iDFtLY=4W7g?b|96#qIrZpFIB?VG6z$@n{A25mU7 z9vdqA>1fN>G*r(UeB-+4k^Q6jeB&rV`g>ijr?{5Yh!4Op=TrdIrF8GyOg=~ZnV_LL zlk{b+fq7a{=&5xd)%142q`LD^o%{oP9DuE^$wbcvH`q5a9Ig!hCatMcspp+=+G^xX zi~8qt-xsD}_yQMRhiX38?om!Ef2csuk2`d-={fkJ5J$wNPBFHtpaKk58BbwH~2UO9Yr=?DPanB zCW6Ej18&h|6>4|t5=ppd1oPKsljr*kI8R>pWv6^0z2|usjU7gDxfiVA(LpKNURq15 z)pXIPT^fyl9i*RCwdpyjXLLpK3+qz>hcSKg2sje+2X3{M=G+|8(blnnL_0-8z|&fi zt1y;cJK#vdWi5jFy<@+DFBkUCY zgU^H5KT`xoXY2!ei?i%>7kg@NlnxD=c68JFdK_`6fcd?$1eZ6i=b4nI_?&MiMHi;P zMvq%iwdNoWd=G~U9zN{+?mKunm2gAa4%i`Y1Iw4n;eL5%T>nQY{VY8Z&$C+~ska16 zJEO4fy&FU~3)$$_IUv^%fNGNSkx2=qnOhe#p6i^jVkj5)WpBcF9(pwW*nYUNSQC0q z&jXp5B&-?yMyIyUf^5;b+{gp_p|J1*Idnc6ZoEq-g$WKAeEv52DIiuoQ|EL_@?pQD zBP^O}NTv-z%>xf^6 zm|9|2L_Rq^YZ@Mf!|Y^q#V0u{@P}w04bAZ6rq7lp`uUT|mDp$WorgP}v(g-27FJ{F z2u<>bw>u` zsCo{owz{63=I018b{FvF$CE_V=qU8>?jet*Msc?yEUAD>;FHZ-R3xuMVCp3g2WMJ= zzDO0^fHN5CZUBX!l!1Bp6hsg4abNNM^tjJ8Y~PbZ%`T>sO6R9+gK;T&$QhyP`80YR za>?X~LOMJ|4JQlj!L>DyOnjb?N{1%kyHOXZ<%}r0JbNT8Abw2!k{Ni@-iDOeBC%>* z4#V42sl3Y(Ty#?nr!S-!o8$xELwOyogal5b_cHUlQWO@?j$zua)l=z|0eV&ZD}kn0 zRNcV@0!@rz^W_R?Ir5y95<26qP5W_$S~-}_%EqDuIb0%ro$fj8NJrL|qW0r;)TOP7 zRIxk*LtT|a!;O&d*ov!9ujIOqI6;z1I!t4SaiK5x_}oK1SanH+Dc!psyf?oj6&8n3 zN8N`E#cjccVd<=KlqtN8bs^h~n_#){4wPN1!0cy~c^vSOWPFujx9mSa*8CxgBSN-v zv#kSBJ57u3QVORB<#ZumCk3Y+h(O6Hg%CE5*9|gM!=a~J;Z|x6*rjQ6$+OBx?hje? zUvh-&>e3{>k7sjVvgh->k>kt~dwy=!S^%$kc5=(vemWy088q7~ae?C-c2Fvgr0Kdt z_r)5JS2ySS#rw(EbRAp*^&NkQ-y_?ii%~0k2}$!UWo-B7z-d`C=KE#`vQ}%5nRek6 zepj6Wqh}d&W6RVaBzz@zG);o`@7j-#+9bFuuOhJ}#FP}eP9#TPL_vyIEA`AM1NkT4 ziGx4F-5;|sZ2LZ@*$3dba+$?TewpgPD` z7wTW6f;9;^R_ZWWYjzC3MmEspj+S5(6NGo)PKF`dFi?LL0r9n0;b(m-9nknpPZ{w1 zAQ@f{DT6wJm>_j2-weB=4Qg6)C)|z_LNvPOQ2IhJALqB7o1Zq0yPbe45+K% zq|meEQ>_Zo(R@p6?h6DWM{59=nZjwYQd-pY7$5L_fEaxjxajZ8?!W2I&So=dSu6u6 zWd?czfERxT=4HCc>7;q|b>X7DLLzZej0)soNP$ndk zjtnTEvwuxNo3B@K%rXT$;d22*%FCIymyz)2T}{aSmPkkPbG`Snlc8Eh2G^9F!hp?+ zaHC-&`t242yAT14*AM6VYDGC#-;^wEj$>5o1v+(8p7uS^p3T z^m;_j2PZHWI%~;FkxbaGhqOYqg?j&r2kiwic)a{F$o(uQj~^xyub@KmOT3Bndnv#y z5e07h{%UfQ83z|@ddU`F2WUF*neG{(jd=coh-%0 zDDZjcJ@M$dN1iJ*;q`n*M8I7gRj^-YPg+|?0ed!`=1-DBYd)iO-;8|58GV@ki`M93 z)eOJpW`T0vSr|BD&g*`t;_axNXj2z}PebNo&Bx8~UAvUNSer-3R!89#sX8c5Ee72) zIdr6i2sx>v4>q%Iv(vnn!sQpS(34%!64=-}iLADA<*5;FWnnf7;3B+R2UdlYvi?q)>^_Zy@J>I141Xi!HY}SAuUqoTv2Qw1IIW$ei9=YhIU3OOGX!=?*%34~h=xu)DzsA3^xXYW6S#~r0e z;j~+1>z{|nw)_tA?t2Q}9&v@$TT2j)rdY$$)M z3*)b(<79mmh(6j$PCm%M<5JSF$W4-4?0ks?`)G5iTcfGOn48%9^e#5qx^iJ!8MMFY z2HH6nqMx51)o;$D&ny;T$fpVT%s!9CZ@om0m}|oR)=Hc!?ndvHG$M0pDQ0XqO010} zm~|$(Ub>$?l5t^L!hi!}kSnt8^4b zEs*0pry4Z>X+1(%r1gZXELabp6}8B$qEfQ)63_gw(BMY8_t2lUsTd~m2L^uL#Q9t6 za@#fE5c>nu!L?rtu2+AeM-IHkjCUNAYJSAM_sdA&16%kO=fPN3JtRMMcfnrSy-fQr zaiV(T0el?yfIaFXg`4>r=YmEJE^ufx7V>!u+Z0mRyVX%#P~2C1ae4{q3cmpcdrd%B zWEOY)4_6F!wkPQ|rc|Nj0u7tB7N*v1fZ0|bFkw0`v2?fu(4d7r*ce0Q?z|#HYKQRP z6JHd%$f3ro7)lIN1Y@G-k+D7A!0np@s~mXEspsG6_h()}o_(MN_9mQk^H;RbnMPaX zI|TQ_Zb3!t1gh28);t)Q1qmmVxf8(|aPb6^nZvW-!1pIKv)P#oz4#c^&u)ipTU5ZC zRpwlFY-W0+__=MUI8M-=$$73>$~_$!hE-_5tI?i;_ji0Z8 zp-BvM*LkD1Qaimc=RUfgQvm&K0+j7IjF)ai!=TAZoayzBN}W~&xsH6IEjGXyPk0Jn zpNTu06+?HlW~u8`zkRD$fycd5yk3DCKIBJpK=h+(d%^(7}cVO)@rfRWV% z?e7t6ghe%@cJLutKQW2-FWqEYem$aI(U(#3SSr@8ynu!v20vvjP-JmFULLHWFt(CT zeOkw})BBmjW_mPlVhX(0(}VE^@|>sAD$wf9ByYCxS~O?ffO?5>1DnU=ih1Sm`PgRC z)IAsJF{!x_hw-tXTB`UNP5kU27&TEk8oU?eD>? zbK^Lt(dWsKF|RMywS~V2&&BjKHL9Yl%cK8N$wsx=bbZGZ#@4nLJFdq==4l46D1FD_ zE~3z3?!(E`FWAj~u7E1>Z9Uc9eWf_r<4nM-!D@EC1yct#uj_3jU%^kp3!-*tzMoKZ%zwx*Hq35le; z%!M-P;~{;fDoI%cv)WJeXWz;vrK}RzE1LIn=kkE{!VO| zQBG?VXE5%I3ZV3w9e#@I6?AqO(?dSH*`*;rnva?;NBKt%be8HZx@6=l(j74oll{&y z$JF-GvK1vXa@ax=H;tjkY#TvcLLcF>6|G!$fvk^q6pk&~z+`2|ke?5AaqP5J7?&Z9 zexhlDM#cH``a6fluGP1Rm2wrn+u8yfYZ@S5EfTbSPSP!BZOE@%k+goV3mFZW7+dm& zEv=S-on?Q5+Snp0^WYboE1HJ}4=U-)8)od0l~GhWeKxsi{F=l!T%(5_rBTyW9nUZI z$1Y1ZsDHBpSV>n*na+=KBU*@j%?wiivyyc7s8WylgY=E<8S-uXPP%hSF3}TAM}^+C zw9Yl0M4hQ5i7%^&?&0NdE>j&Z=VZ|kho#`MS(Em7He=156@=q;Q0x0ssrK?BqPpfG zeY;4OTh^G)hKHRZJD2jWl?q|$$$5gJcX>psvJ!bY7V0Vbf^pLNh9Tc8=w{`UIK3^7 zIb;4E-*+EFTYq&r!p#p3$XQ})laS2Z5lru&*$e)Lwe0u0I55)KMGUuIqLn%?_;z!g z*KT=EXEpE~(bizr@@XC&89JUFkMg85(41;Iq_cVp4A@r^E;M79cJuE&v*|K92`rhZ zMa{O2BNNno>6oI^%*ZqHm@Xc}y!}mB%XeAqbeTG)j}K5j4USsy^|@z6Q|LU`CZ@xxpRShV^*Ns( zU@tyDNB16IPRk-@G%BvLrfqettfpcIvnkJjhAh8B=XT1G;4x2V>vdieR%a7wvXaKj zQfKI*=d)-_-UvF^7?~Ecn{>N}7w^w45XgI*vp;*=SmE${bfw;F!Ld_MS$EqTRQ^(H z^I_2_dN*Keb7TD%`g-z2@?ei0d9yM{a8ZocYdv<9?2=GMab7`D2Kt9LL#h;^o(Lu|#pyKZcMh{XkqQ)5;rkn<@Oc4*+ zjsWwI@#t`@hUnM5YcA*>kCJio!D;hsSm?V5&dcV~Q@bUZru)latxpaSo%RPdeji4T znd`yTx8htCQ^nj}Fb9{owX!c?<)GH~AzD@xg_f7ZD1GQd-|sEMTj$DQ?}tH{eLe~w zZJY#tm)$Yw=18!)%X16@6;R{hWZZtSo;#9LLY+Q3aoRqTTtbT$3hxa-UF}KS^gW2C z=)2L7#);rBr^qm)ualwh2Q=FBI(66|MpNoeFbcn$aB$N`qIg>kUzHeek5UEAK|j@5 z6|rJ6rtT_v+1f+~D>u`i>S8=V7d5Yu&mwx8`oVvR1HQFi&4}*PgLy}#*q?=myIpo-mJAJ)u=n8Z>JEEg0(_&*~c5H&1lV zBIizS0?%1;!kJoe5T-YUDoO6cjkb0)+Jn%fM=5x2)MbJzH$Zu!2r>=Uw7iKz#2p{9 z^u#!BChzM$Bf;13y)D8QEvXcA-EgyK62^XQgv8}FWVY>Ta{sCrUx)P$m_z0;JzN6z zdCG#&jgqauE65G=JpjM=HgbYGx=NYP;|jh_*_vRUNpv5AMd~5y`WM#u$y=P1QwM`Z z9#pMyDq2n}p)=m^$6a;Fa3eMqhF#vsbFWlL^yV2PYl;T-7(a)mW%2RuKMzCL{&uGK z{zZC=_vfu}yFxhAxzH)v!#SR+phDxhur~B6t}Ce`X^FkOe>x5}D^$>{la;w~?&G*b zXE$hU&&3dajLvZ9f@vso z7M`_KV20&JlF-HlsIy^f^Zi}o+~5X(vf3{RuINVLja}g+a;7!4&X?ojl~#h!{u}}a z^Wb2QGHTEae7moMR4CtP#4;7JC8wS?@m!}rYV&AEY9W+`b(6*iH>mm5ujnwp#`?%_ zp7F57i^!#=P?8Wxx?}EOblxmfHyg&e*xEpYr8o{{>2rs2BIv`c-^}1yj-9~AKh|}+ zp=?7kPBt75PPLDiQwgCsdppko8n%Mm(-R>J$8O_VQf$B_=^PWYHoQT}M;=D>X>fmv zPlvHvIe6dlg%m$>#MQ8gTFOu5+(tzao$hivTgMsi*@@7gt^u~@ryf~$seoqWU8J#r z`OJ?iZ)mhmIe{?`oBH0zlH*tQ5%>D3wDR0J5+$C&dJK;w-+!jjg*o%tXwxih3fJ%BwI<@|hQL$I&g7YF)Pov&wY84UZ?K^+zmLT1uTN;rhcYs% zbu(pxzBQLf*-|Ddj%P)#p^NOFvC}+n(va5G6!n%^7tU;;Vy_g);HRUs@Qr}#xNaiv zcpi?G+)@4lDo*zm9iwiI6X~;o24>OV7}_#9iHJlPccbrkGi zKKWd29#)q_?j84Kl{}*9H|`bHu~a4!ZI5+w}H=3qvtfy}!_X!-F^aUHf z8&Zw$`{=#fUl`&0Rwj1IS6X^Pnaq+oM4uWQr$$dZS)YPK)W^k?)>t>vb1i=KNOUw+ zx_NcC6Wx0k96qK9;%a(NtrA~!BIE<-g{F$Bi76_ z7>5#}-2qp{7wAaO_z zA0{5^Cz#=@RA+0 zc_2}9g@inPPo$^nbB-~TnPHy`JG#V$WqZQ(tJZD@@ayY(0!h+@JO8%S0Ceu+75Yegj;~o_n(utL-RXc@It1^jlpgoB5&vR+M)&8@D>6i+C3fw-tlHKYx+4>o}~l zlI8XacCnpi%enML5%`?<(K?gURC7f!4weN|JF{bqLsT`-p}IkS2`1z1vL_%k&4$Yx zpP~85otPc31VbxclLCv;#H&h`O1~V(`N^E24}*AC-cBjbF(s95pRP~MOvT`?d>ee@ zuL+AT3z+c|70pJ@DV*Zh4mfi2KHcS4z%-8iifYeokh>Yo%>3w$j)6yT;6QcrgVBkw zd0{U4%sB$>7h0NqruZ`TrvN3dnQ8(%{VOLYI>NkH+sSr+O_lnbBOge5)uH?0Pev?dYhAPaejp^c7GSo;}K5p!DK6ac+{{ zHhdMihT7(3!Xd3#TDU78yjL9=OjP@~nW?c&_*Q9HOPG7Dg; z`5^f@HwY%X_*3twJaWhPJGH-|0^&FCz{6q}o|%?LxQU4{vR|>V6(e#Uh47#3*VtUQzLVw~)>vj$9>=tmY;%e-6Uj}Uq zf1q7)DU8_df;aeDYG!a1_j#`@ozvb+er#Aw--gX$k0yK*tpD(Yoc&+}>|hH1GN>Yb ze2jM}^EOrSOoZh53pnXKZ#0_YM!NP&2v>%_f@aA%+|w(wFu>#y*?Q^@Yk#DJeYZ!P zT^cY4j~On-sg}Onifz}3XS|V6C)5uDL>F)!%c@ZAw>3Q=`I|PKeMa-OJ>c_W0;A*e zNs#ah`|!00cYH(%^;pz~etWFBX?BY6bj~;WK%1}E9*l%1&J-4h1Fe=O7@omFzUVFd zZ54;hovhHt`vqG`L^0*pZ+i7WF4&yvfFXx{#QLcu_h+;P+%Omhk}}(1ZMrO0`v|#Y z#a!_I&_GADWukGYE>{i5nMD^qW5-;Ci1(jpc$^!~zfnuxOgloRc=p3oRfhJ?I!k;G zoB~VfHMHq*KPlXC0vE>nVa97qe5oD9ae4jhmo80=zq_9iJ20Nhop_H`N@>DFFV2&o zFUP1ZKYmI!FN5CjnRwQ=1l4>Jptmp+S`IhD2ago$ylDdLH_RhR?+js6*f=;^jaGaQ$K-B_;aJ1_#6$DL#{3a3n{k50;GCu~jeSJJLs+BcZmBr+F@wM{j z15s^H4b`_SBwdG+Y3mLx$SY35)(9c>%9VyE8}88QBc!=dcSYJ^Ziq{Ny3+M)E7|4j zL9*h&0c6Dn=-!Gk9DUM=uT_*uhx%^o<0C zYcuJ%RfjNAKL-NO-6o^du{p$VIUH@Qr#igf>8jOvklXo)o{*Fx0ViE)G9L$crI-$p z!8fQ$-Y_!dw*`riQfD@~3+R@k!_d*;AiHDNLI@i)A$!W&=(Ius`?beN5Ts~AiZ(5S zrCcouO75cGt!KN?^2S29noD-(gMLGIGb7pI6?m$Lc#Dsm6;iGRde0 zvfett(3>hm>&a}pX$@bq7KDS2`mn^z0#`X6LffwiP<%ZUOQI*k6|>ji&I{rmu4uv@ z=i@j_+#byz>BHdC%q}|SjUUTJ@Kt9MBeyDEFrh>OZ??a+PFr&p9~i{r zxS&lyyHnWupEmf}ISz*1eFC*}&tQ0|7(3Y{g4^_ZI*omniPs_*a*F3JLGE2iG!5#a zJFi_NyXr@g6`>zkF^>_DeyNox_gW!ytCyN~4&rm0Y3NR3A#v7ox{a9td)Kib+43BF zxAA&u3B!d(eD3JkR59q>xJY<^S3NxLk08PKduX=OOum*UoGTcN0JHb1c+W}%m5Y?2 z$O5=azm1`Pk{hFOa|6zwP)~n!Ipew+6L46y2r6s~$2GPr=SlNH&LEhnmr2IHX>Z8P zfk}dA`dcmaQjOSXA8p#Y*qICP(j_-)23YadR(yG)L2$a;4-ICF6KeYhlcwrc%6O{b zoZB1W4-ekQawLXm?BQ#R<%039t}d8(CgaMMmvGZJ5Srw#f!$gS;q(=4H1B;e^m`q{ zd?#agH#8B<7Y!$!%CThB^QYif-^qQt*u&mA?n%`$#uIl-Q?B>w3Fd?IKJwis7PAjr zqa{wI=patGI=$BkpyT5uRumS)iM zCF!VfQUwPFUt!G3?R0>zD@fR%%DmT$q33b}xrPD4)mA^Iz9SSkqq+~gFMc>0jcq4W zm!-j&N1f!tAwK_GONEqgH0K$7Ja_2#0j}qPfiPsZC9m#wr@8V~8FV}3z>V!`>?r?X zSijc|vpg-D*8J!P72Q;%efqS~W1&zhQ47Z?NZ_*b35?<4&7^w4dXlS6EPRt-J- z;Wmz+GQ=cXEhJ?Nj?-Q09gz0bjs(7rgtc$0@f#z~lv(m~6XjgU@h}D@wfFeEwVPxt z9?ivxj)mdlCkV+19bW%3isoQ9Gv-nO2}`7m>lrO!)IfUc2v{Xgex7CA!lIT0rN;S?B| z;|4ynSHUCoTa4#aFA$Ywnb5og?5yJL2qWwv{UWacBW{hA-?HIN(?+5*;%zj(b{6&m`&LW{ab2LZ%p-(`-b&W|mR$gG#j9(*oPOYN>C94?cA) zM&;1w&DxRUgn>RKbYRd1Y3gv0|K^HPJP&RDS#w5n<^VblOb2zF(~!GvFHR;3@y5nuMT@cC4j45j8PMp!r;~%azkpg(0s5|VELeueDHLD!^=L> zGa;+Ft`EEhV{-z1y~K|CZ4%)cT#{h+?muwa>}%kE(;R=7XVamXM)2+8L@XaO0gtQc z!J5a5@n<)MB_|dWNe?w_**F`IUEBmaj@rSJg)!u*(IR;CW)jZ=ilm1%W<$&JTzdP& zGZ_E5oTPpo25n{MU_0;IYfhes0kPwt{6{5GePfMlS``qU^MZy?`P`5-os2`$PHelQ zLUq?}d>_`2_3E#Eo^8C zg+(%dP`J{HGF5rt$*!b}uJz#+D{Jn+qKkOX-~q{gDG8E#VK7Z00|PEk2sr)`>0HwuAhwJUCC%D-$Ub#O`*Y}kLVTibq}`Tz#RRFo81F=z0Fus zWs*u7(sR)?Ntt`CdIEgQc)pa8IIy>qaL=Xh@anD-x2LcX>=vnW({<-?OXkg?e^i`o zju8vSBJUoC)ji0ro6L``E2=T0RvLCa2I^hBALa#Bg4SD}_hK-E6pe|84XRZXS9`(@ zorOF%qLx0%I^y|7S@h|cN!)@0bz;AwpNVEik&518B0MC)D5XhJX{nQ}ntc@O zeuN=2e#XrQI`T zu=0N(4a!TVeZ4d2@75)xRXvls?9QVRm%uV+0xe_Lj=AviOI55)tT@ z)thm=zl283i6tUm9ydO44I;B%P9&ekrqMAYCef}WS8}UQhTioKr~U&wX<$qa9Vl5$ z{L@}A=Wk!3o4x-$}9q?$MhY zh6^qPS@#kUd)}>qm1tY2(?j1ndKj8`fUx|6EcxonZne<_v1S8d}BmLedTi=+mwViM^k!8 zWfzf8Q)D)CQ%HUOQuI<6=js<~*I1sYmRyTuYG4up&=nzQOO$1+bvFlw6*7fc1aSPoMf2(|2Mcg?5G? zh}TtLsNnZq(LIK9u@VVa)~nHkz?}kbfi(o#Y^RE@5-?!!j@=cl#4S3b0Mf6c zQC;UG4SeAT4L*{r^^?`ucH9Wu7hkt-3A#=ivqgxR+{otnsiQg7mW^PMs*QWb`|`OB zJ0K$I6M1g?nyM_{&x9l%V@BpTykC6d!qM(Rr(mab42)>0HrJrgKv)w2g_QMjpetu!Tw( z>zPFbyuUGM!AzLyK`=qJnr_gYhc}DcFly5>G?AZ*G2gG_Md3u~$rufq;nVO+{wKaT zE}x8f8bNI)xinAt{Q}pUI`SH?JX1(mK(Fh_;ykB7YVRrox7;uAx`yg7ldoNyw|Fca zHPe9o6zPxAYhsDr7+w#}!x^5`>FhI>#&(rQZf+pcg90 z7-I#Tt2~|)H=Ks^&bu)s7L%c1lNfzF!5^RV`hX)7y_Ib7cVv-0{-+T=aN5aBJ5mIfJ4Q79u8GUT6suhq~Aax?wni z*J@hvIFW8ykw|AregXCr&q^+mAPNaGp!BL8&ulBft;6cz(2aMPJ%zttT;R%$b^1&; z$N1qAk?q7=w~+OcO~57l^RR#7HM(fT1ycW76Ze>yf@)qow{ZVD&h+sac0!yEgguS` z#!m?C$I?JfDH2Anl)=Kv3<%t4k9s-k5L)<{yj`h*vi6$v_g6#weK(e}*hXB(HDGeV zLhxVZM|YSflS!@1@QwEY`p#lCx3*}a@QRBq?tXoq+KE=uefFO4Fy#i-=-5wAobTeS zBJ*KVQYN>nUYjA8;;{eDMQXFe37*xuLZlu?MQ-#7e#CC%N?MmvP1VB~G(MFJpP<1V zwSC1(&2$2frW&qmMiXDdV-EtWU|KY5iEziF0CITuAPpS-0Ou9OGn*o=py|r_5UDen zn{XqFebAhMd(sWLubUcR9h{}VKYYL)pQe*9Cv4#Ls0^aWSiyyGCGNS~b-}^26F4)S zu@Lq94LkgcieNR*pXk7mu(CBAr#?T8nW3+!LFh2BPgdrNwS{D3;9Z)#p_Q%lZ-)9_ zCzz*}fi?z>M8kFywR(Dxtv<1VmN;Ig3QPDHbdD_f_V^gP_q77J>@LAM+P&l;pYP#i zJcYZobUiz{GYQ7LPorpE_@y!ow5-gy?SAz*!Icot z@*4CSaSh+j6hQZ^9rW8h7Bo0d5>)w>eot*fP3Zt=P3gy+Qf;W5*am}M#^6`6ic5AZ zBnmJ3$f5ZH&Sd;pC=OZ$$pfnByWAEheC#31muXO&M@LYE*Bu+<+W?+F9PsmC3wmsm z#Z7OeIR)K=-1K7wr2FYPIO~}SWokNPJPog9G~t zXk4E*7&j= zI{obUyw%aT`?({f(Rc8m_#2$H<}n>_SB{r`i)cJI3hGpbGCOVeR<^ zT;_-!@bb(!oOt&tjJn9zpvaEE`fgs6c0e5-c&@`ep{G#Iayy!a|H*8b9K*ATU1@Io zMYuOn$W7Wl4i|h;q1((h!QCov5`H`%l*T=yG93ogjWGkCnBiR7sEZh-rzvDVL`D8uUFM2Q zh=@o_^MCwfQ4|3YpKbpB9$wpm12+W*?3}jFE7)t=40~H^krn^rMW$5-%1)jj2ku3Z z-D~gBY3{d)#wIyp`XPwenFTb*4XRSE&X5go-`$p}3)~B1UJl2p zpNFGGdNVaYIS%hfda+B-PDaW1L13$Vm<&8TLSCy{2?j!yKzVi?d)Bm!a2;pK=G6-z z*EyUN&dg?ZO2>eb;{>`*wUAi$yr34hS27P?*zo=wE$E+OM7)oTU;^59ksHz>r02^w z()}_HF2C)i8fgO7=#>il@Twg-vE&syZ}@C7HENLU^b{e1zPik_dl|%(kI8-c_=Mib zFQoM*{s_rZgh#={iYTZ1R}Ug^e{e=*AxDl;!Kr-Ua_fbhry5FBsiTQK>IVY zcqT|jSaXrr{UZ~E+g`70u6nD9hTxk6%D!W){C%k ztu#b_6>Hk{t{8pvOQCq5CR}iyCOj%7DTIuL7~v~Hmw$N(JH1bG-9yi5xRbun-Zctd z8SmkYpQyo8{ktgRy%;K6weVFsuO%J#1$+WNk$X!|kQRmULcM2FoO_`SBkP$8frd6* zXUHaS_~RNK`!fdWvU{L9R}VGg77Go7Ex=8s6=v_UfqjAtC_B?YD4Hq>HO0eW;gnkF zRvv0TW^x)LO;|_>ti)H>kX(z;WA0UHVCRdCa6&bKof06=rGL%^p7 zjv=QVERHw%>!$e9@2r}%9@j2b0ut`0xH<6?gpZCS{9F6;beZMzKW=|!|8MP2_w!}? zS0A{pu5H8*ydr2C|Fc1OhRk1|ej|Uq>wk2>|DR9S z7BT$CryKp-C19&}kgu1&Z>U!=zb78P>+Egy{*QNNy1AK&xuxX{V`B>|^XbNB#wOFP zrdwEASXo(GnOK?_n@_hgG3Ouu+RKvhn54%apTAa@xuSpV@c+6}E$;aGxS4=ih!5_o*n*zKy1^?4pH0c^I$y@nr9s4(HWBB&+_b<0*XRvo* z&^qs+e;SeWDTowd_^tU>@oz>l{)>@+JFUk5v@opAFXcb`$=@xEviaw3{F?>-to{8g z{p+2^-z^-R_1{`B`KN_{y;l6)!l>Dz|2P!?et+^$3;){N|8C)+{eNr0^q&^~wXgo& z!l*g_tp&4xTKL!gru4USk@jCK{BK&=zjg-gznK{0^v|96@4KnXTuDj8|JYJZeCq$Q yG4elt`_JcDe2e{SY2fYtweZ_X{q_9A`QQKk>(OQIu)i9o$VmR@ulN7^d;dS$TmQ-c literal 0 HcmV?d00001 diff --git a/agent/docs/완전자율에이전트_변경정리.md b/agent/docs/완전자율에이전트_변경정리.md new file mode 100644 index 0000000..0ab911e --- /dev/null +++ b/agent/docs/완전자율에이전트_변경정리.md @@ -0,0 +1,203 @@ +# 완전 자율 협상 에이전트 — 처음 대비 변경 정리 + +> 기준: 협상카드 + 룰 엔진 시절(처음) → 완전 자율 에이전트 v3.2 + LLM 멘트 (2026-07-10 현재) +> 롤백: `docker-compose.yml` 의 `AUTONOMY_MODE=0` 하나로 룰 엔진 즉시 복귀 (재빌드 불필요) + +--- + +## 1. 한눈에 보기 — 무엇이 바뀌었나 + +| 영역 | 처음 (룰 + 카드) | 지금 (자율 에이전트) | +|---|---|---| +| **협상 판정** | 하드코딩 룰 (앵커 이하 타결 / 와일드카드 존 / 3라운드 결렬) | RL 정책이 매 턴 행동을 직접 선택 | +| **발화 선택** | DB 협상카드(NGC-001~011)를 UCB/Q-table 로 선택 | 카드 없음 — 행동 30개 중 신경망이 선택 | +| **역제안 금액** | 카드에 박힌 고정값 | 앵커~목표가 6단 사다리에서 정책이 선택 | +| **와일드카드** | 사람이 등록한 카드(WC-01~05) 발동 | 최종제안·역제시 타이밍을 정책+봉투가 자율 수행 | +| **멘트** | 고정 템플릿 | Gemini LLM 생성 + 할루시네이션 가드 (실패 시 템플릿 폴백) | +| **입력 상태** | 가격 스냅샷 9차원 | 21차원 (마감·협력사 이력·인터넷최저가·에피소드 기억 추가) | +| **학습** | Q-table 온라인 갱신 | 시뮬레이터 DQN 학습 → 프로브 게이트 → npz 번들 배포 | + +--- + +## 2. 의사결정 — 행동 공간 30개 + +``` +ACCEPT 수락 (협상완료, 제시가 타결) +WALK 결렬 의사 → 최종제안 1회 보장 후 종료 +COUNTER 역제안: 금액 위치 6단 {-5%, 0, 25, 50, 75, 100% of (목표가-앵커가)} × 화법 4종 +PRESS 압박(설득): 화법 4종 +``` + +행동의 실체는 `Action(kind, counter_q, strategy)` — **(무엇을, 얼마에, 어떤 말투로)** 좌표 3개짜리 데이터다 +(`policies/autonomy_actions.py`, DB 아님). 에이전트는 매 턴 30개 중 조합 1개를 고르고, +원화 환산(앵커 + q×스팬)과 문장(LLM)은 선택 이후의 실행 단계. + +역제안 사다리 6단 (실스케일 앵커 418,966/목표 423,198 기준): +q=−0.05→418,754 / 0→418,966(앵커) / 0.25→420,024 / 0.5→421,082 / 0.75→422,140 / 1.0→423,198(목표가). +비율(q)이라 견적 스케일과 무관하게 같은 행동 공간이 재사용된다. + +화법 4종은 기존 카드 전략 분류를 그대로 승계: **경쟁 압박 / 수용 공감 / 기준 고수 / 협력 파트너**. +톤 선택도 학습 결과 — 라이브에서 초반 경쟁(1)→중반 수용(2)→교착 협력(4)으로 국면별 전환 관측. + +설계 출처: 화법 4종·금액 범위(앵커~목표가)는 제품 승계, 수락·결렬 포함은 완전 자율 정의의 필연, +**격자 6단만 설계 재량**(`COUNTER_GRID` 수정+재학습으로 변경 가능). 알려진 한계: 부를 수 있는 +금액이 격자 6지점뿐 — 연속 금액 미세조정은 불가(필요 시 격자 확장이 현실적). + +- 모델: action-as-feature DQN (ScoreNet MLP — 상태 21 + 행동특징 9 → 점수 1개) +- 서빙: **numpy 전용** (`autonomy_serving.npz`) — 컨테이너에 PyTorch 불필요 +- 현재 서빙본: **v3.5** (백업 `autonomy_v35.npz` / 반려본 v3.4 / 이전 v3.2) + +## 3. 입력 상태 — 9차원 → 21차원 + +"완전한 에이전트에는 다 들어가야 한다" 요구로 확장: + +| 그룹 | 차원 | 내용 | 출처 | +|---|---|---|---| +| 기본 | 9 | 매출액·유통코드·협력사수·수락률·제시가·앵커가·목표가·라운드 등 | 기존 스냅샷 | +| 테넌트 | 5 | 보상 설정 특징 | reward config | +| **에피소드 기억** | 2 | 직전 역제안 유무·위치 | ctx `autonomy_last` | +| **마감** | 1 | 마감 잔여율 | quotations start/end_time | +| **협력사 이력** | 3 | 과거 협상 횟수·성공률·평균 타결비율 | experience_logs ⨝ sessions | +| **시장가** | 1 | 인터넷 최저가 갭 | items.internet_lowest_price | + +- 소스가 없으면 중립값(0.5/0) — 학습 시뮬의 '미상' 표현과 동일 +- 상대 **발화 내용 파싱은 보류** (사용자 결정 — 프론트 입력 UI 변경 필요) + +## 4. 행동 봉투 — 실전 테스트에서 잡은 결함의 구조적 방지 + +룰과 다름: **룰은 결과를 정하고, 봉투는 행동만 금지**한다. 나머지(타이밍·속도·금액)는 전부 정책 학습. + +| # | 봉투 | 막는 결함 (실제 발생 사례) | 성격 | +|---|---|---|---| +| ① | 목표가 초과 제시가는 **수락 불가** | v3.1 이 보상 구멍을 착취해 목표가+14% 매입 | 안전 (영구) | +| ② | 직전 역제안보다 **낮은 금액 재제시 금지** (단조 양보) | 423,198 → 420,024 제안 철회 사건 | 안전 (영구) | +| ③ | 역제시는 **설득 ≥2회 후 해금** (`AUTONOMY_MIN_PRESS`) | 첫 턴부터 역제시 — 옛 의미론(일반카드=설득, 와일드카드만 역제시) 복원 | 예절 (해제 후보) | +| ④ | 목표가 0.5% 이내 **마무리 국면에선 압박 금지** | 802원 차이에 "재검토 부탁" 반복하던 푼돈 흥정 | 예절 (해제 후보) | +| ⑤ | **첫 역제안은 앵커가 이하만** (q ≤ 0) | 사다리 꼭대기 근처(422,140)에서 개시해 올라갈 계단이 없던 문제 | 예절 (해제 후보) | +| ⑥ | 같은 금액 반복·결렬 의사 → **자율_최종제안 1회 보장, 금액은 목표가** | 확인 없이 결렬 / 직전 금액을 "최종"으로 반복해 승인 여지를 남긴 채 종료하던 문제 | 안전 (영구) | +| ⑦ | **결렬(walk)도 해금 전 금지** — 설득 ≥2회 전에는 설득만 가능 | 설득 0회에 walk 선택 시 최종제안 보장(⑥)과 결합해 "첫 턴 목표가 통보"가 됨 (v3.4 라이브 결함) | 예절 (해제 후보) | + +- 구현: 서빙 `policy/autonomy_store.py` 후보 마스크 + 학습 `tools/train_full_autonomy.py` `available_actions` **양쪽 동일** +- 예절 봉투(③④⑤)는 실로그가 쌓이면 `AUTONOMY_MIN_PRESS=0` 등으로 해제 실험 가능 + +## 5. 멘트 — 템플릿 → LLM + 가드레일 + +**역할 분리(안전 설계):** 무엇을 말할지(금액/전략/수락/결렬)는 RL 이 결정, LLM 은 **표현만** 담당. + +``` +설정: agent/config/config.local.toml [OpenAIConfig] +모델: gemini-2.5-flash-lite (OpenAI 호환 base_url) + · 2.5-flash → thinking 지연으로 백엔드 10초 한도 초과 ("협상 응답 지연" 토스트 원인) + · 2.0-flash → 은퇴(404) +시간: LLM_TIMEOUT_S=6 초과 시 템플릿 폴백 (검증 최대 응답 2.9초) +끄기: AUTONOMY_LLM=0 +``` + +**할루시네이션 가드 (하나라도 걸리면 템플릿 폴백, 협상은 계속):** + +| 가드 | 내용 | +|---|---| +| 숫자 화이트리스트 | 프롬프트로 준 금액(제시가·제안가·직전제안가·양보폭) 외 숫자 = 즉시 폐기 | +| **목표가 비공개** | 압박 프롬프트에 목표가 미포함 + 화이트리스트에서도 제외 — 노출 사고 재발 방지 | +| 금지어 | 보장/물량/독점/최저가/시장가/%/계약기간/법적 등 승인 안 된 전술·커밋 | +| 문장 완결 | thinking 토큰 소진으로 잘린 문장 폐기 (max_tokens 2048) | +| 제안가 포함 | 역제안·최종제안 멘트에 제안 금액 필수 | + +**추가 기능:** +- **인터넷 최저가 인용** (구 NGC-008 자율판): 수집돼 있고 제시가 > 최저가일 때만 근거 인용 허용 — 그 턴에만 '최저가' 금지어 해제, 수치는 화이트리스트 검증 +- **대화 기억**: 직전 제안 거절 사실·양보폭을 멘트에 반영("직전 제안에서 5원 상향한…") + 직전 멘트와 같은 문장구조 반복 금지 — "멘트가 다 똑같다" 해결. temperature 0.9 + +## 6. 학습 시뮬레이터 버전 이력 — 실패 2건 포함 + +| 버전 | 변경 | 결과 | +|---|---|---| +| v1 | 최초 학습 | 한 방 큰 컷 + 같은 숫자 반복 → "이게 협상이야??" | +| v2 | 에피소드 기억·컷 특징·협력사 반복 짜증/이탈 | 개선되나 지형 불일치 잔존 | +| v3 | 상태 21차원 확장 | — | +| v3.1 | **지형 정합**: 앵커율 0.8~6% 샘플링 (실제 ~1% vs 시뮬 20%) | ⚠️ 보상 구멍 착취 — 목표가+14% 매입 학습 → 봉투 ① 신설 | +| **v3.2** | 컷 반발·반복 짜증·**양보 상호성**(우리가 올리면 상대도 내림)·floor ≤ 첫제시가×0.98 | ✅ **현재 서빙본** (목표가 초과 타결 0/30) | +| v3.3 | 단조·상호성 반영 재학습 | ❌ "무조건 목표가 즉시 지르기"로 퇴화 → **프로브 게이트 반려** (`full_autonomy.pt` 만 보관, 미서빙) | +| v3.4 | 봉투 ①~⑤ 정합 + **보상 수정**(목표가 초과 타결 = 결렬 취급) 재학습 | ❌ **반려** — 초기 게이트(실스케일 단일 지형) 통과 후 라이브에서 퇴화 발견: 소액 지형에서 첫 턴 walk→목표가 통보 / walk 잠금 후엔 압박 12연발·최종제안 생략·화법 단조(전부 전략3). 게이트를 2개 지형으로 확장해 재판정 → v3.2 우위 확인, v3.2 복원 (`autonomy_v34_rejected.npz` 보관) | +| **v3.5** | v3.4 + **관측성 마스크**: 마감 40% 미관측(0.5 고정)·15% 완전 미상 에피소드 — 서빙 중립값 상태를 시뮬 분포에 혼입 (v3.4 퇴화 원인 해소) | ✅ **현재 서빙본** — 게이트 78/78, 사다리 3단 사용, 협조 케이스 목표가 대비 -2,116원 타결. 게이트가 이 과정에서 **철회 실버그** 발견(아래) | + +> **교훈 1 — 보상 = 유일한 스펙**: 룰을 제거하면 보상 함수의 구멍이 곧 행동이 된다 (v3.1). +> **교훈 2 — 프로브 게이트**: 재학습은 퇴화할 수 있다. 배포 전 반드시 실스케일 제시가별 행동표(`tools/probe_serving_dqn.py`)로 비교 검증 (v3.3). +> **교훈 3 — 지형 일반화**: 한 지형의 게이트 통과가 다른 지형을 보증하지 않는다 (v3.4 — 실스케일 통과, 소액 퇴화). +> **교훈 4 — 시뮬은 관측까지 닮아야 한다**: 세계뿐 아니라 '무엇을 모르는지'도 서빙과 같아야 한다. 마감·이력 미상(중립값) 상태가 시뮬에 없으면 그 상태가 분포 밖이 된다 (v3.4 원인 → v3.5 해소). + +**철회 실버그 (게이트가 발견, 2026-07-10 수정):** 단조 봉투의 기준 `autonomy_last`가 '마지막 행동'이라 counter→**press**→counter 순서에서 설득이 역제안 기억을 덮어써 봉투가 뚫렸다(9,975 제안 후 9,900 재제안). 역제안 기억을 `autonomy_last_counter`로 별도 보존하도록 수정 — 시뮬(역제안만 추적)과도 일치. v3.2는 이 패턴을 쓰지 않아 드러나지 않았을 뿐 프로덕션에 실존하던 구멍. + +## 7. 현재 협상 흐름 (검증 완료) + +``` +협력사 제시 + │ + ▼ +설득(압박) ≥2회 ── 인터넷최저가 근거 인용 가능, 목표가 절대 비공개 + │ + ▼ +역제안 해금 ── 첫 제안은 앵커가 이하로 개시 (봉투⑤) + │ + ▼ +단조 상향 사다리 ── 후퇴 금지(봉투②), 양보폭·속도는 정책이 결정 + │ + ▼ +목표가 0.5% 이내 ── 압박 중단, 클로징만 (봉투④) + │ + ├─ 제시가 ≤ 목표가 → 수락 → 협상완료 + ├─ 같은 금액 반복 / 결렬 의사 → 자율_최종제안 1회, 금액=목표가 (봉투⑥) + │ ├─ 예 → 협상완료 └─ 아니오 → 협상실패 + └─ 12턴 초과(엔지니어링 캡) → 최종제안(목표가) 1회 거쳐 종료 — 캡도 봉투⑥을 우회하지 않음 +``` + +## 8. 운영 스위치 & 파이프라인 + +| 스위치 (docker-compose agent env) | 값 | 의미 | +|---|---|---| +| `AUTONOMY_MODE` | 1 | 자율 모드 (0 = 룰 엔진 복귀) | +| `DQN_SERVING` | 1 | 카드 선택 DQN (0 = UCB Q-table) | +| `AUTONOMY_LLM` | 1(기본) | LLM 멘트 (0 = 템플릿만) | +| `AUTONOMY_MIN_PRESS` | 2(기본) | 역제시 해금에 필요한 설득 횟수 | +| `LLM_TIMEOUT_S` | 6(기본) | LLM 시간 상한, 초과 시 템플릿 폴백 | + +**학습→배포 파이프라인:** +``` +tools/train_full_autonomy (시뮬 15k ep, 룰 베이스라인 비교) + → tools/export_autonomy_serving (artifacts/autonomy_serving.npz, .prev 자동 백업) + → tools/probe_serving_dqn (실스케일 행동표 — 눈으로 보는 진단) + → tools/test_autonomy_defects (결함 회귀 게이트 — 지형 2종×시나리오 3종 + 단위·멘트가드 검사, + 자동 합격/불합격. 단, v3.4 사례처럼 게이트 통과 ≠ 품질 보증: + 궤적 자체도 눈으로 비교할 것) + → docker compose build agent (npz 는 이미지에 베이크) +``` + +**로깅:** 자율 행동도 experience_logs 에 기록 (card_id = `AUT|종류|위치|전략`, 진행 row + 종결 row). 카드 재학습(`retrain_from_logs`)은 AUT 세션 자동 제외. + +## 9. 변경 파일 지도 + +| 파일 | 역할 | +|---|---| +| `negotiation/policy/autonomy_store.py` | **신규** — 자율 정책 numpy 서빙 + 봉투 ①~⑤ 마스크 | +| `negotiation/policies/autonomy_actions.py` | **신규** — 행동 30개·특징 인코딩 (학습/서빙 공유) | +| `negotiation/chat/service/ment_generator.py` | **신규** — LLM 멘트 생성 + 가드레일 | +| `negotiation/chat/service/chat_engine.py` | 자율 스텝(자율_역제안/최종제안/압박_1~4) + `_autonomy_next` 봉투⑥ | +| `services/chat_service.py` | decider 주입·행동 로깅·대화기억 ctx 관리 | +| `negotiation/chat/infra/repository/nego_context_crud.py` | 인터넷최저가·견적기간·협력사이력 조회 | +| `negotiation/chat/service/negotiation_context_loader.py` | 확장 컨텍스트 로드 (company_id) | +| `tools/train_full_autonomy.py` | **신규** — 시뮬레이터(현실화 협력사 모델) + DQN 학습 | +| `tools/export_autonomy_serving.py` / `probe_serving_dqn.py` | **신규** — 번들 내보내기 / 프로브 게이트 | +| `tools/test_autonomy_defects.py` | **신규** — 결함 회귀 게이트: 실전에서 발견된 결함 41항목을 시나리오·단위·멘트가드 검사로 자동 재생 (서빙 실물 코드 구동, DB/LLM 불필요) | +| `config/config.local.toml` | Gemini 접속 정보 (gitignore, 이미지에 베이크) | +| `docker-compose.yml` | `AUTONOMY_MODE` / `DQN_SERVING` 플래그 | + +## 10. 남은 일 + +- [x] 결함 회귀 게이트 구축 — `test_autonomy_defects.py` 41항목, v3.2 전항목 통과 확인 (2026-07-10) +- [x] 보상 수정 — 목표가 초과 타결은 학습 보상에서 결렬 취급 (v3.1 구멍을 유인 수준에서 차단, 봉투 ①과 이중 방어) +- [ ] ⚠️ **Gemini API 키 재발급** — 채팅에 노출된 키, 테스트 종료 후 반드시 교체 (config.local.toml + 이미지 리빌드) +- [x] 봉투 정합 재학습 — v3.4 반려(소액 지형 퇴화) → 원인 규명(관측성 불일치) → **v3.5 관측성 마스크로 해소, 배포 완료** (2026-07-10) +- [x] 철회 실버그 수정 — counter→press→counter 에서 단조 봉투 뚫림 → `autonomy_last_counter` 별도 보존 +- [x] 턴캡 최종제안 보장 — 캡 종료도 "끝내기 전 한 번 더"를 거침 +- [ ] 상대 발화 LLM 파싱 (보류 중 — 프론트 입력 UI 변경 필요) +- [ ] 실로그 축적 후: 예절 봉투(③④⑤) 해제 실험 → LLM 협력사 셀프플레이 (집컴 GPU 단계) +- [ ] (소소) negodata 프론트 "목표 마진율 1000%" 표시 버그 후보 diff --git a/agent/negotiation/chat/infra/repository/nego_context_crud.py b/agent/negotiation/chat/infra/repository/nego_context_crud.py index 9605ef3..95e53f2 100644 --- a/agent/negotiation/chat/infra/repository/nego_context_crud.py +++ b/agent/negotiation/chat/infra/repository/nego_context_crud.py @@ -26,13 +26,21 @@ _SESSIONS = table( column("deleted"), schema="negotiation", ) -_ITEMS = table("items", column("item_id"), column("price"), column("deleted"), schema="partner") +_ITEMS = table("items", column("item_id"), column("price"), column("internet_lowest_price"), + column("deleted"), schema="partner") _SUPPLIERS = table("suppliers", column("supplier_id"), column("total_revenue"), column("deleted"), schema="partner") _QUOTATIONS = table( "quotations", - column("qt_id"), column("version_id"), column("supplier_type"), column("deleted"), + column("qt_id"), column("version_id"), column("supplier_type"), + column("start_time"), column("end_time"), column("deleted"), schema="quotation", ) +# 자율 에이전트 이력 특징용 — agent 소유 learning 스키마 (done 행 = 협상 1건의 최종 결과). +_EXP_LOGS = table( + "experience_logs", + column("session_id"), column("company_id"), column("done"), column("settled_price"), + schema="learning", +) _VERSION_NEGO_CARDS = table( "version_nego_cards", column("version_id"), column("nego_card_id"), column("created_at"), column("deleted"), @@ -98,6 +106,22 @@ class INegoContextCRUD(ABC): """견적 version_id 에 연결된 (일반카드 번호 목록, 와일드카드 번호 목록). 없으면 빈 목록.""" pass + @abstractmethod + async def get_item_internet_lowest(self, cdb: AsyncSession, item_id) -> Tuple[ErrorType, int]: + """상품 인터넷최저가(items.internet_lowest_price). 미수집이면 0.""" + pass + + @abstractmethod + async def get_quotation_period(self, cdb: AsyncSession, quotation_id) -> Tuple[ErrorType, Optional[tuple]]: + """견적 협상 기간 (start_time, end_time). 없으면 None.""" + pass + + @abstractmethod + async def get_supplier_history(self, cdb: AsyncSession, company_id: str, supplier_id, + exclude_session_id) -> Tuple[ErrorType, tuple]: + """이 협력사와의 과거 협상 이력 (횟수, 성사율, 평균 타결가/목표가). 없으면 (0, None, None).""" + pass + class NegoContextCRUD(INegoContextCRUD): async def get_session_row(self, cdb: AsyncSession, session_id) -> Tuple[ErrorType, Optional[tuple]]: @@ -131,6 +155,67 @@ class NegoContextCRUD(INegoContextCRUD): LOG.e_no_callstack(ex) return ErrorType.DB_RUN_FAILED, 0 + async def get_item_internet_lowest(self, cdb: AsyncSession, item_id) -> Tuple[ErrorType, int]: + """상품의 인터넷최저가(partner.items.internet_lowest_price). 미수집이면 0.""" + try: + query = ( + select(_ITEMS.c.internet_lowest_price) + .where(_ITEMS.c.item_id == item_id, _ITEMS.c.deleted == False) # noqa: E712 + .limit(1) + ) + err_type, rows = await DB_SESSION_MNG.execute(cdb, query, "get_item_internet_lowest failed.", raise_error=False) + if err_type != ErrorType.SUCCESS or not rows or not rows[0]: + return err_type, 0 + return ErrorType.SUCCESS, int(rows[0]) + except Exception as ex: + LOG.e_no_callstack(ex) + return ErrorType.DB_RUN_FAILED, 0 + + async def get_quotation_period(self, cdb: AsyncSession, quotation_id) -> Tuple[ErrorType, Optional[tuple]]: + """견적 협상 기간 (start_time, end_time). 자율 에이전트의 마감 잔여율 특징용.""" + try: + query = ( + select(_QUOTATIONS.c.start_time, _QUOTATIONS.c.end_time) + .where(_QUOTATIONS.c.qt_id == quotation_id, _QUOTATIONS.c.deleted == False) # noqa: E712 + .limit(1) + ) + err_type, rows = await DB_SESSION_MNG.execute(cdb, query, "get_quotation_period failed.", raise_error=False) + if err_type != ErrorType.SUCCESS or not rows: + return err_type, None + return ErrorType.SUCCESS, (rows[0][0], rows[0][1]) + except Exception as ex: + LOG.e_no_callstack(ex) + return ErrorType.DB_RUN_FAILED, None + + async def get_supplier_history(self, cdb: AsyncSession, company_id: str, supplier_id, + exclude_session_id) -> Tuple[ErrorType, tuple]: + """이 협력사와의 과거 협상 이력 집계 → (횟수, 성사율, 평균 타결가/목표가). + + 소스 = learning.experience_logs 의 종료행(done=True) ⨝ negotiation.sessions + (agent 가 직접 기록한 결과라 카드/자율 모드 무관하게 쌓인다). 이력 없으면 (0, None, None). + """ + try: + query = ( + select(_EXP_LOGS.c.settled_price, _SESSIONS.c.target_price) + .select_from(_EXP_LOGS.join(_SESSIONS, _SESSIONS.c.session_id == _EXP_LOGS.c.session_id)) + .where(_EXP_LOGS.c.done == True, # noqa: E712 + _EXP_LOGS.c.company_id == company_id, + _SESSIONS.c.supplier_id == supplier_id, + _EXP_LOGS.c.session_id != exclude_session_id, + _SESSIONS.c.deleted == False) # noqa: E712 + ) + err_type, rows = await DB_SESSION_MNG.execute(cdb, query, "get_supplier_history failed.", raise_error=False) + if err_type != ErrorType.SUCCESS or not rows: + return err_type, (0, None, None) + n = len(rows) + settled = [(int(sp), int(tp)) for sp, tp in rows if sp and tp] + success = len([1 for sp, tp in rows if sp]) / n + avg_ratio = (sum(sp / tp for sp, tp in settled) / len(settled)) if settled else None + return ErrorType.SUCCESS, (n, success, avg_ratio) + except Exception as ex: + LOG.e_no_callstack(ex) + return ErrorType.DB_RUN_FAILED, (0, None, None) + async def get_supplier_total_revenue(self, cdb: AsyncSession, supplier_id) -> Tuple[ErrorType, float]: try: query = ( diff --git a/agent/negotiation/chat/service/chat_engine.py b/agent/negotiation/chat/service/chat_engine.py index a0bcb99..c5f521f 100644 --- a/agent/negotiation/chat/service/chat_engine.py +++ b/agent/negotiation/chat/service/chat_engine.py @@ -16,6 +16,50 @@ MAX_ROUNDS = 3 _PRICE_MODES = ("price",) _CHOICE_MODES = ("yes_no", "confirm", "delivery_type") +# ---- 완전 자율 모드 (AUTONOMY_MODE, autonomy_store) -------------------------------- +# 가격협상 판정 룰(check_price_match/wildcard_entry/iteration_limit)과 카드 선택을 +# 정책 행동(수락/역제안/압박/결렬)으로 대체할 때 쓰는 스텝들. autonomy_decider 미주입이면 도달 불가. +_AUTONOMY_TURN_CAP = 12 # 엔지니어링 타임아웃(무한 세션 방지) — 협상 룰이 아니다 + +_AUTONOMY_PRESS_SCRIPTS = { + 1: "동일 품목에 대해 복수 공급처의 견적이 함께 검토되고 있습니다. 현재 제시가로는 우선순위 확보가 어려운 상황입니다. 경쟁력 있는 가격으로 다시 제안해 주시겠어요?", + 2: "제안하신 조건의 취지는 충분히 이해했습니다. 저희도 최대한 맞춰보려 합니다. 조금만 더 조정해 주시면 내부 설득이 가능할 것 같습니다. 다시 제안해 주시겠어요?", + 3: "내부 산정 기준과 현재 제시가 사이에 아직 차이가 있습니다. 기준에 부합하는 수준으로 재검토하여 다시 제안해 주시기를 부탁드립니다.", + 4: "귀사를 장기적으로 함께할 파트너로 검토하고 있습니다. 이번 협상이 원만히 마무리되면 후속 거래 확대도 논의하고 싶습니다. 서로 만족할 수 있는 가격으로 다시 제안해 주시겠어요?", +} + +_AUTONOMY_STEPS = { + "자율_역제안": { + "script": "제안해 주신 **{input_price}원**, 내부 검토를 마쳤습니다. **{autonomy_offer}원**이라면 즉시 수락하고 우선협상 대상으로 확정하겠습니다. 수락하시겠습니까?", + "next_input_mode": "yes_no", + "input_options": ["예", "아니오"], + "next_step": {"예": "협상완료", "아니오": "가격협상_재입력"}, + "type": "text", + "chat_end": False, + }, + # 최종 통보(WC-03 의 자율 버전): 정책이 직전과 같은 금액을 다시 부르는 순간(단조 봉투상 + # 더 올릴 수 없음 = 탄약 소진) 발동. 거절하면 협상을 정리한다 — 어정쩡한 반복 대신 명확한 마무리. + "자율_최종제안": { + "script": "지금까지 협의에 성실히 임해 주셔서 감사합니다. **{autonomy_offer}원**은 저희가 제시할 수 있는 마지막 제안입니다. 수락해 주시면 즉시 우선협상 대상으로 확정되며, 어려우시다면 이번 협상은 여기서 마무리하겠습니다.", + "next_input_mode": "yes_no", + "input_options": ["예", "아니오"], + "next_step": {"예": "협상완료", "아니오": "협상실패"}, + "type": "text", + "chat_end": False, + }, + **{ + f"자율_압박_{s}": { + "script": t, + "next_input_mode": "price", + "input_options": [], + "next_step": {"default": "가격협상_확인"}, + "type": "text", + "chat_end": False, + } + for s, t in _AUTONOMY_PRESS_SCRIPTS.items() + }, +} + # 최종 타결/결렬 스텝. 재협상=협상완료(우선협상 타결), 재견적=결과제출(투찰확정). 둘 다 협상실패=결렬. # 이 스텝들은 chat_end=False(뒤에 협상종료가 옴)라, outcome 을 컨텍스트에 적재했다가 # 실제 종료(chat_end=협상종료) 시점에 확정 보고한다 → backend 가 chat_end 에서 DONE/REJECTED 를 옳게 가른다. @@ -70,8 +114,11 @@ class ChatEngine: def __init__(self, scripts_repo: ScriptRepository, rq_type: str = "재협상"): self.repo = scripts_repo self.rq_type = rq_type - self.scripts = scripts_repo.load_scripts(rq_type) + # 자율 스텝은 병합만 해둔다(repo 캐시 오염 방지 위해 새 dict) — decider 미주입 시 도달 불가. + self.scripts = {**scripts_repo.load_scripts(rq_type), **_AUTONOMY_STEPS} self.step_map = scripts_repo.client_step_mapping() + # 완전 자율 모드: ChatService 가 AutonomyStore 정책을 주입하면 가격협상 판정 룰을 대체한다. + self.autonomy_decider = None # Callable[[dict], autonomy_actions.Action] # ---- public -------------------------------------------------------- def start(self, session: ChatSession) -> StepView: @@ -99,6 +146,10 @@ class ChatEngine: # 직전 제시가로 잡히던 버그 수정 — 수락 시 실제 합의가는 인하가다.) if session.step == "wild_card_1pct" and user_input == "예" and session.context.get("offer_1pct"): session.context["input_price"] = float(session.context["offer_1pct"]) + # 자율 역제안/최종제안 수락("예") → 합의가는 에이전트 제안가다 (wild_card_1pct 와 동일 원리). + if session.step in ("자율_역제안", "자율_최종제안") and user_input == "예" \ + and session.context.get("autonomy_offer"): + session.context["input_price"] = float(session.context["autonomy_offer"]) nxt = self._choice_next(node, user_input, session) else: nxt = self._default_next(node) @@ -136,7 +187,15 @@ class ChatEngine: - anchor 살짝 초과(≤ anchor*1.05) + 와일드카드 미사용 → 와일드카드로 인하 압박. - 설정 카드(action_space) 모두 소진 → 협상실패. - 그 외 → 가격협상(카드 1장 플레이 후 재제안). + + 완전 자율 모드(autonomy_decider 주입)에서는 위 룰 전체를 정책 행동으로 대체한다. """ + # 가격협상 판정 지점(check_price_match 포함 조건 리스트)에서만 자율 정책이 개입한다. + if self.autonomy_decider is not None and any( + c.get("condition") == "check_price_match" for c in conds): + nxt = self._autonomy_next(session) + if nxt is not None: + return nxt # 정책 실패(예외) 시에만 아래 룰로 폴백 ctx = session.context price = ctx.get("input_price", 0) anchor = ctx.get("anchor_price", 0) @@ -172,6 +231,52 @@ class ChatEngine: return c.get("next") return "가격협상" + def _autonomy_next(self, session: ChatSession) -> Optional[str]: + """완전 자율: 정책 행동 → 스텝. 수락/역제안 금액/압박 화법/결렬 타이밍 전부 정책이 결정. + + 유일한 강제 종료는 턴 상한(_AUTONOMY_TURN_CAP) — 무한 세션 방지용 엔지니어링 타임아웃. + 정책 호출이 실패하면 None 을 반환해 기존 룰 평가로 폴백한다(서비스 연속성). + """ + ctx = session.context + if ctx.get("round", 0) > _AUTONOMY_TURN_CAP: + # 턴 상한도 최종제안 보장(봉투 ⑥)을 우회하지 않는다 — 어떤 경로로 끝나든 + # "끝내기 전에 한 번 더"(제품 결정)를 거친다. 최종 거절 후에만 협상실패. + if not ctx.get("autonomy_final_asked"): + ctx["autonomy_final_asked"] = True + ctx["autonomy_offer"] = int(ctx.get("target_price", 0)) + return "자율_최종제안" + return "협상실패" + try: + act = self.autonomy_decider(ctx) + except Exception: # 정책 오류 → 룰 폴백 (호출부에서 로깅) + return None + session.context["autonomy_action"] = f"{act.kind}:{act.strategy}:{act.counter_q}" + span = max(ctx.get("target_price", 0) - ctx.get("anchor_price", 0), 1.0) + # 탄약소진(같은 금액 재호출) 판정은 '마지막 역제안' 기준 — autonomy_last(마지막 행동)는 + # 사이에 낀 설득이 덮어써 판정이 리셋된다 (chat_service 가 counter 마다 별도 보존). + last = ctx.get("autonomy_last_counter") or {} + if act.kind == "accept": + return "협상완료" + if act.kind == "walk": + # 결렬 전 마지막 제안 1회 보장 — "끝내기 전에 한 번 더 물어보고 종료" (제품 결정). + # 최종제안을 이미 거쳤으면(autonomy_final_asked) 그대로 종료한다. + if not ctx.get("autonomy_final_asked"): + ctx["autonomy_final_asked"] = True + # 최종제안 금액 = 목표가. 마지막 기회에 직전 역제안 금액을 반복하면 승인 범위의 + # 여지(목표가까지)를 남긴 채 결렬된다 — 최종에는 우리가 수락 가능한 최대치를 부른다. + ctx["autonomy_offer"] = int(ctx.get("target_price", 0)) + return "자율_최종제안" + return "협상실패" + if act.kind == "counter": + ctx["autonomy_offer"] = int(round(ctx.get("anchor_price", 0) + act.counter_q * span)) + # 직전과 같은 금액을 다시 부름 = 단조 봉투상 더 올릴 수 없음(탄약 소진) → 최종 통보로 전환. + if last.get("kind") == "counter" and act.counter_q <= float(last.get("q", -9)) + 1e-9: + ctx["autonomy_final_asked"] = True + ctx["autonomy_offer"] = int(ctx.get("target_price", 0)) + return "자율_최종제안" + return "자율_역제안" + return f"자율_압박_{act.strategy or 3}" + def _pick_wildcard(self, session: ChatSession) -> str: """앵커가에 아주 근접(≤ anchor*1.02)한 구간에서만 1% 인하 요청(wild_card_1pct)으로 앵커가 이하로 유도한다. 그 외 구간은 일반 가격협상(카드 플레이)으로 돌린다. @@ -201,10 +306,25 @@ class ChatEngine: out["input_price"] = int(ctx["input_price"]) if "target_price" in ctx: out["target"] = int(ctx["target_price"]) + # DB 카드 정본(negodata 편집, card.nego_cards.script)은 {target_price} 변수명을 쓴다 + # — 파일 스크립트의 {target}과 별개로 둘 다 지원(미치환 토큰 노출 방지). + out["target_price"] = int(ctx["target_price"]) if "anchor_price" in ctx: out["anchor"] = int(ctx["anchor_price"]) + out["anchoring_price"] = int(ctx["anchor_price"]) # DB 카드 정본 변수명(NGC-007 등) if "offer_1pct" in ctx: out["offer_1pct"] = int(ctx["offer_1pct"]) + if "autonomy_offer" in ctx: + out["autonomy_offer"] = int(ctx["autonomy_offer"]) + # 인터넷 최저가(NGC-008): 수집값이 컨텍스트에 없으면 앵커가로 폴백 — 원형 토큰 노출 방지. + # TODO: partner.item_internet_lowest_prices 최신 성공 수집값을 context loader 로 연결. + if ctx.get("internet_lowest_price"): + out["internet_lowest_price"] = int(ctx["internet_lowest_price"]) + elif "anchor_price" in ctx: + out["internet_lowest_price"] = int(ctx["anchor_price"]) + # 고객사 교환·요구 조건(NGC-009/010): 런타임 소스 미구현 — 중립 문구 폴백. + # TODO: 견적/카드 편집 단계에서 입력받아 컨텍스트로 전달. + out["customer_condition"] = ctx.get("customer_condition") or "상호 협의된 조건" # 인하율 = (기존 공급가 - 제시가) / 기존 공급가 * 100. 기존가 없으면 미표시(0.0). base = ctx.get("item_price") or 0 if base > 1 and "input_price" in ctx: diff --git a/agent/negotiation/chat/service/ment_generator.py b/agent/negotiation/chat/service/ment_generator.py new file mode 100644 index 0000000..e5764b3 --- /dev/null +++ b/agent/negotiation/chat/service/ment_generator.py @@ -0,0 +1,188 @@ +"""MentGenerator — 자율 협상 행동을 LLM 이 자연어 멘트로 표현 (v2: 행동은 RL, 문장은 LLM). + +역할 분리(안전 설계): +- 무엇을 말할지(수락/역제안 금액/압박 전략/결렬)는 RL 정책이 결정 — LLM 은 표현만 담당. +- 가드레일: 역제안 멘트에 제안 금액이 정확히 포함되지 않으면 폐기, 예외/미설정 시 None + → 호출부(ChatService)가 기존 템플릿 멘트로 폴백한다. LLM 이 죽어도 협상은 계속된다. + +설정: config.local.toml [OpenAIConfig] (Gemini 는 OpenAI 호환 base_url 로 접속). +비활성화: AUTONOMY_LLM=0. +""" + +import asyncio +import os +import re +from typing import Optional + +from common.logger import LOG +from negotiation.profiling.config import LlmCredentials + +_STRATEGY_TONE = { + 1: "경쟁 압박형 — 복수 공급처와 비교 검토 중임을 암시하며 긴장감을 준다", + 2: "수용 공감형 — 상대 제안의 취지에 공감하며 부드럽게 조정을 요청한다", + 3: "기준 고수형 — 내부 산정 기준과 목표가를 근거로 원칙을 지킨다", + 4: "협력 파트너형 — 장기 파트너십과 후속 거래 확대 가능성을 강조한다", +} + +_SYSTEM = """너는 대기업 구매팀의 가격 협상 챗봇이다. 주어진 '전달 의도'를 자연스러운 한국어 협상 멘트로 바꿔 쓴다. +규칙 (위반 시 출력은 폐기된다): +- 1~3문장, 정중하되 간결하게. 출력은 멘트 텍스트만 (따옴표·설명 없이). +- 금액 숫자는 주어진 그대로 정확히 포함하고 단위는 '원'을 쓴다. 주어지지 않은 숫자·비율을 절대 만들지 않는다. +- 지정된 '화법' 전략 안에서만 말한다. 그 외의 협상 전술(물량·기간 약속, 조건 교환, 거래 연계, + 독점 제안, 시장가·최저가 주장, 할인 약속 등)을 지어내지 않는다. +- 회사의 정책·사실을 단정하지 않는다. 주어진 의도에 없는 정보는 말하지 않는다. +- 상대는 협력사(판매자)이고 우리는 구매자다.""" + +# 생성문 금지어 — 승인되지 않은 커밋/주장 계열. 걸리면 템플릿 폴백(협상은 계속). +_FORBIDDEN = ("보장", "물량", "독점", "무조건", "최저가", "시장 가격", "시장가", "계약 기간", + "법적", "위약", "%") + + +def _configured() -> bool: + if os.getenv("AUTONOMY_LLM", "1").lower() in ("0", "false", "no"): + return False + try: + return LlmCredentials.from_config().is_configured() + except Exception: + return False + + +def _digits(s) -> str: + return re.sub(r"[^\d]", "", str(s)) + + +def _history_hints(ctx: dict) -> str: + """대화 기억 힌트 — 무기억 생성이 '매번 같은 멘트'를 만들던 문제의 해법. + + ① 직전 우리 제안이 거절된 사실과 이번 제안과의 관계(양보/입장유지)를 짚게 하고 + ② 직전 봇 멘트를 보여주며 같은 문장 구조·표현의 반복을 금지한다.""" + hints = [] + prev = ctx.get("autonomy_prev") + if prev and prev.get("kind") == "counter": + anchor, target = float(ctx.get("anchor_price") or 0), float(ctx.get("target_price") or 0) + prev_offer = int(round(anchor + float(prev.get("q", 0.0)) * max(target - anchor, 1.0))) + cur_offer = int(ctx.get("autonomy_offer") or 0) + if cur_offer > prev_offer: + hints.append(f"참고: 직전 라운드에 우리가 {prev_offer:,}원을 제안했으나 거절당했고, " + f"이번에는 {cur_offer - prev_offer:,}원 더 양보한 제안이다. 이 진전을 자연스럽게 짚어라.") + elif cur_offer == prev_offer and cur_offer > 0: + hints.append(f"참고: 직전에 제안한 {prev_offer:,}원을 거절당했지만 같은 금액을 유지한다. " + f"입장이 확고함을 정중하게 전하라.") + elif prev_offer > 0: + hints.append(f"참고: 직전 제안({prev_offer:,}원)이 거절된 뒤의 재제안이다.") + last_ment = ctx.get("autonomy_last_ment") + if last_ment: + hints.append(f'직전 봇 멘트: "{last_ment}" — 이와 같은 문장 구조·표현을 반복하지 말고 다르게 써라.') + return " ".join(hints) + + +def _prompt_for(step: str, ctx: dict) -> Optional[str]: + price = int(ctx.get("input_price") or 0) + rnd = ctx.get("round", 1) + if step in ("자율_역제안", "자율_최종제안"): + offer = int(ctx.get("autonomy_offer") or 0) + if offer <= 0: + return None + strategy = int((ctx.get("autonomy_last") or {}).get("s") or 3) + tone = _STRATEGY_TONE.get(strategy, _STRATEGY_TONE[3]) + final = ("이번이 우리가 제시할 수 있는 마지막 제안이며, 거절하시면 이번 협상은 종료됨을 " + "분명하되 정중하게 밝혀라. " if step == "자율_최종제안" else "") + return (f"상황: 협력사가 {price:,}원을 제시했다(협상 {rnd}라운드). " + f"전달 의도: 우리는 **{offer:,}원**이면 즉시 수락하고 우선협상 대상으로 확정할 수 있다 — " + f"이 핵심 의미는 유지하되 문장 표현은 자유롭게 새로 써라. {final}화법: {tone}. " + f"{_history_hints(ctx)} 마지막에 수락 여부를 물어라.") + if step.startswith("자율_압박_"): + strategy = int(step.rsplit("_", 1)[1]) + tone = _STRATEGY_TONE.get(strategy, _STRATEGY_TONE[3]) + # 주의: 목표가는 프롬프트에 넣지 않는다 — 압박 중 목표가 노출은 우리 상한을 까는 것 + # (상대가 그 밑으로 내려올 이유가 사라진다). 숫자 커밋은 역제안/최종제안에서만. + base = (f"상황: 협력사가 {price:,}원을 제시했다(협상 {rnd}라운드). " + f"전달 의도: 어떤 금액도 언급하지 말고(내부 기준·목표가 숫자 금지), 제시가와 우리 기준의 " + f"거리가 있다는 취지로 가격 재제안을 요청한다. 화법: {tone}. " + f"{_history_hints(ctx)}") + # 시장가 근거 (구 NGC-008 의 자율 버전): 수집된 인터넷최저가가 실재하고 제시가가 그보다 + # 높을 때만 사실 근거로 인용을 허용한다 — 미수집 품목에서 지어내는 주장은 가드가 차단. + if _market_evidence(ctx): + il = int(ctx["internet_lowest_price"]) + base += (f" 참고 사실(인용 허용되는 유일한 금액): 동일 품목의 인터넷 최저가가 {il:,}원으로 " + f"확인된다. 현재 제시가가 이보다 높다는 점을 근거로 조정 여지를 정중히 짚어라.") + return base + return None + + +def _market_evidence(ctx: dict) -> bool: + """시장가 근거 인용 가능 조건: 인터넷최저가 수집됨 + 제시가가 그보다 높음.""" + il = int(ctx.get("internet_lowest_price") or 0) + return il > 0 and float(ctx.get("input_price") or 0) > il + + +def _allowed_amounts(ctx: dict) -> set: + """멘트에 등장해도 되는 숫자 집합 — 우리가 프롬프트로 준 값들뿐. 이 밖의 금액 = 할루시네이션.""" + # 목표가는 화이트리스트에 없다 — 압박 멘트가 목표가를 새면(상한 노출) 즉시 폐기된다. + # 역제안·최종제안의 제안가(autonomy_offer)가 목표가와 같은 경우만 그 값으로 허용된다. + anchor, target = float(ctx.get("anchor_price") or 0), float(ctx.get("target_price") or 0) + out = {int(ctx.get("input_price") or 0), int(ctx.get("autonomy_offer") or 0), + int(ctx.get("round") or 0)} + if _market_evidence(ctx): + out.add(int(ctx["internet_lowest_price"])) # 시장가 근거 인용 시 그 수치만 허용 + prev = ctx.get("autonomy_prev") + if prev and prev.get("kind") == "counter": + prev_offer = int(round(anchor + float(prev.get("q", 0.0)) * max(target - anchor, 1.0))) + out |= {prev_offer, abs(int(ctx.get("autonomy_offer") or 0) - prev_offer)} + return {str(v) for v in out if v} + + +def _guard(step: str, ctx: dict, text: str) -> bool: + """LLM 출력 검증(할루시네이션 차단) — 실패 시 템플릿 폴백. + + ① 길이/문장 완결 ② 금지어(승인 안 된 커밋·주장) ③ 숫자 화이트리스트: 멘트의 모든 + 3자리+ 숫자는 우리가 준 값(제시가·제안가·목표가·직전제안가)이어야 한다 — 지어낸 금액 즉시 폐기. + ④ 역제안은 제안 금액 포함 필수.""" + if not text or len(text) < 10 or len(text) > 600: + return False + if not text.rstrip().endswith(("다.", "요.", "요?", "까?", "니까?", ".", "?")): + return False # 문장 중간 잘림(thinking 토큰에 한도 소진 등) → 템플릿 폴백 + forbidden = _FORBIDDEN + if _market_evidence(ctx): + # 시장가 근거가 정당한 턴에는 '최저가/시장가' 언급을 허용 (수치는 아래 화이트리스트가 검증). + forbidden = tuple(w for w in _FORBIDDEN if w not in ("최저가", "시장가", "시장 가격")) + if any(w in text for w in forbidden): + return False + allowed = _allowed_amounts(ctx) + for num in re.findall(r"\d{3,}", text.replace(",", "")): + if num not in allowed: + return False # 프롬프트에 없던 금액 생성 = 할루시네이션 + if step in ("자율_역제안", "자율_최종제안"): + return _digits(ctx.get("autonomy_offer")) in _digits(text) + return True + + +async def generate(step: str, ctx: dict) -> Optional[str]: + """자율 스텝 멘트 생성. 미설정/실패/검증불통과 → None (호출부 템플릿 유지).""" + if not _configured(): + return None + prompt = _prompt_for(step, ctx) + if prompt is None: + return None + try: + from negotiation.profiling.infra.llm_adapter import chat_complete + # openai SDK 는 동기 — 이벤트루프 블로킹 방지 위해 스레드로 넘긴다. + # max_tokens 넉넉히 — Gemini 2.5 계열은 thinking 토큰이 한도에 포함돼 짧으면 본문이 잘린다. + # 시간 상한: backend→agent 타임아웃(10s)보다 확실히 짧아야 한다 — 초과 시 템플릿 폴백으로 + # 협상은 즉시 계속된다("협상 응답 지연" 토스트 방지). LLM_TIMEOUT_S 로 조절. + text = await asyncio.wait_for( + asyncio.to_thread( + chat_complete, + [{"role": "system", "content": _SYSTEM}, {"role": "user", "content": prompt}], + None, False, 0.9, 2048, # temperature 0.9 — 표현 다양성 (의미는 프롬프트 가드) + ), + timeout=float(os.getenv("LLM_TIMEOUT_S", "6")), + ) + text = (text or "").strip().strip('"') + if _guard(step, ctx, text): + return text + LOG.w(f"[MentGenerator] 가드레일 불통과 → 템플릿 폴백 (step={step})") + return None + except Exception as ex: + LOG.e_no_callstack(f"[MentGenerator] LLM 실패 → 템플릿 폴백: {ex}") + return None diff --git a/agent/negotiation/chat/service/negotiation_context_loader.py b/agent/negotiation/chat/service/negotiation_context_loader.py index afbdb90..de368a1 100644 --- a/agent/negotiation/chat/service/negotiation_context_loader.py +++ b/agent/negotiation/chat/service/negotiation_context_loader.py @@ -44,14 +44,23 @@ class NegotiationDbContext: distribution_code: Optional[str] # 유통 코드(A/B/C) — supplier_items.supply_type. 미지정 시 None selected_nego_card_numbers: list[str] # 견적 생성 시 선택된 일반 협상카드 번호(card.nego_cards.number) selected_wild_card_numbers: list[str] # 견적 생성 시 선택된 와일드카드 번호(card.wild_cards.number) + # ---- 자율 에이전트 v3 상태 특징 소스 (없으면 0/None — 특징은 중립 기본값으로 폴백) ---- + internet_lowest_price: int = 0 # items.internet_lowest_price (미수집 0) + deadline_end_ts: Optional[float] = None # 견적 마감(epoch 초) — quotations.end_time + deadline_total_s: Optional[float] = None # 협상 전체 기간(초) — end−start + hist_n: int = 0 # 이 협력사와의 과거 협상 횟수 + hist_success: Optional[float] = None # 과거 성사율 (이력 없으면 None) + hist_settle_ratio: Optional[float] = None # 과거 평균 타결가/목표가 (성사 이력 없으면 None) class NegotiationContextLoader: def __init__(self, crud: Optional[INegoContextCRUD] = None): self.crud: INegoContextCRUD = crud or NegoContextCRUD() - async def load(self, session_id: Optional[str]) -> Optional[NegotiationDbContext]: - """session_id 로 협상 컨텍스트 조회. 행이 없거나 조회 실패 시 None(호출부 기본값 폴백).""" + async def load(self, session_id: Optional[str], + company_id: Optional[str] = None) -> Optional[NegotiationDbContext]: + """session_id 로 협상 컨텍스트 조회. 행이 없거나 조회 실패 시 None(호출부 기본값 폴백). + company_id 는 협력사 이력 집계(experience_logs 테넌트 스코프)용 — 없으면 이력 특징 생략.""" if not session_id: return None try: @@ -97,6 +106,21 @@ class NegotiationContextLoader: _, selected_cards = await self.crud.get_quotation_card_numbers(s, quotation_id) selected_nego_cards, selected_wild_cards = selected_cards + # ---- 자율 에이전트 v3 특징 소스 (조회 실패는 전부 중립 폴백 — 협상은 계속돼야 한다) ---- + _, internet_lowest = await self.crud.get_item_internet_lowest(s, item_id) + _, period = await self.crud.get_quotation_period(s, quotation_id) + deadline_end_ts = deadline_total_s = None + if period and period[1] is not None: + end_ts = period[1].timestamp() + start_ts = period[0].timestamp() if period[0] is not None else None + total = (end_ts - start_ts) if start_ts else None + if total and total > 0: + deadline_end_ts, deadline_total_s = end_ts, total + hist_n, hist_success, hist_settle = 0, None, None + if company_id: + _, hist = await self.crud.get_supplier_history(s, company_id, supplier_id, sid) + hist_n, hist_success, hist_settle = hist + return NegotiationDbContext( rq_type="재협상" if int(qt_type) in _ONE_TO_ONE_QT_TYPES else "재견적", target_price=target, @@ -107,6 +131,12 @@ class NegotiationContextLoader: distribution_code=_SUPPLIER_TYPE_TO_CODE.get(supplier_type) if supplier_type else None, selected_nego_card_numbers=selected_nego_cards, selected_wild_card_numbers=selected_wild_cards, + internet_lowest_price=internet_lowest, + deadline_end_ts=deadline_end_ts, + deadline_total_s=deadline_total_s, + hist_n=hist_n, + hist_success=hist_success, + hist_settle_ratio=hist_settle, ) try: diff --git a/agent/negotiation/policies/autonomy_actions.py b/agent/negotiation/policies/autonomy_actions.py new file mode 100644 index 0000000..d1fb7b5 --- /dev/null +++ b/agent/negotiation/policies/autonomy_actions.py @@ -0,0 +1,85 @@ +"""완전 자율 협상 행동 공간 (numpy 전용 — 학습(tools)과 서빙(policy)이 공유). + +카드 카탈로그 대신 행동의 '의미'만 남긴다: + ACCEPT 현재 제시가로 타결 + WALK 협상 결렬 선언 + COUNTER(q, s) "C원이면 수락" 역제안. C = anchor + q×(target−anchor), s = 화법 전략 + PRESS(s) 설득 압박 (카드의 일반화 — 전략 1경쟁/2수용/3고수/4협력) + +특징 벡터(ACTION_DIM=8) = 유형 one-hot(3) + 가격 위치(1) + 전략 one-hot(4). +ScoreNet(상태 + 행동특징) → 스칼라 점수로 후보 30개를 채점해 argmax 한다. +""" + +from dataclasses import dataclass + +import numpy as np + +COUNTER_GRID = [-0.05, 0.0, 0.25, 0.5, 0.75, 1.0] # C = anchor + q×(target−anchor) +ACTION_DIM = 3 + 1 + 4 + 1 # 유형(3) + 위치(1) + 전략(4) + 컷폭(1: 현 제시가 대비 인하 요구율) + +# 자율 전용 추가 상태 (v3): +# [0] 직전 역제안 존재(0/1) [1] 직전 역제안 위치 q ← 에피소드 기억(같은 숫자 반복 방지) +# [2] 마감 잔여율(남은시간/전체, 미상 0.5) ← 견적 마감(quotations.end_time) +# [3] 과거 협상 횟수 min(n,5)/5 [4] 과거 성사율(미상 0.5) +# [5] 과거 평균 타결수준 norm((타결가/목표가−0.8)/0.4, 미상 0.5) ← 이 협력사와의 이력(experience_logs) +# [6] 인터넷최저가 갭 clip((최저가−앵커)/앵커/0.1, ±1, 미상 0) ← 숨은 하한가의 관측 가능한 힌트 +# 특징은 학습 시뮬에도 동일하게 존재해야 한다(train_full_autonomy 가 대응물을 생성). +EXTRA_STATE_DIM = 7 + + +def extra_state(last_kind: str = "", last_q: float = 0.0, deadline: float = 0.5, + hist_n: float = 0.0, hist_success: float = 0.5, hist_settle: float = 0.5, + internet_gap: float = 0.0) -> np.ndarray: + has_counter = 1.0 if last_kind == "counter" else 0.0 + return np.array([ + has_counter, + float(np.clip(last_q, -1.0, 1.0)) * has_counter, + float(np.clip(deadline, 0.0, 1.0)), + float(np.clip(hist_n, 0.0, 1.0)), + float(np.clip(hist_success, 0.0, 1.0)), + float(np.clip(hist_settle, 0.0, 1.0)), + float(np.clip(internet_gap, -1.0, 1.0)), + ], dtype=np.float32) + + +def settle_norm(avg_settle_ratio: float) -> float: + """평균 (타결가/목표가) → 0~1 정규화 (0.8→0, 1.0→0.5, 1.2→1).""" + return float(np.clip((avg_settle_ratio - 0.8) / 0.4, 0.0, 1.0)) + + +def internet_gap_feat(internet_lowest: float, anchor: float) -> float: + """인터넷최저가의 앵커 대비 갭 (±10% 스케일). 최저가 없으면 0을 쓴다.""" + if not internet_lowest or anchor <= 0: + return 0.0 + return float(np.clip((internet_lowest - anchor) / anchor / 0.1, -1.0, 1.0)) + + +@dataclass(frozen=True) +class Action: + kind: str # accept | walk | counter | press + counter_q: float = 0.0 # counter 위치 (anchor~target 스팬 비율) + strategy: int = 0 # press/counter 의 화법 전략 (1~4, 0=없음) + + def feat(self, price_pos: float, cut: float = 0.0) -> np.ndarray: + """cut: 이 행동이 요구하는 인하폭 (현 제시가 대비, counter 만 >0) — 대형컷의 무례함을 + 정책이 지각하게 한다. 갭이 크면 역제안 대신 압박이 낫다는 걸 배우는 근거 특징.""" + t = {"accept": [1, 0, 0], "walk": [0, 1, 0]}.get(self.kind, [0, 0, 1]) + pos = price_pos if self.kind == "accept" else self.counter_q + s = np.zeros(4, dtype=np.float32) + if self.strategy: + s[self.strategy - 1] = 1.0 + return np.concatenate([np.array(t, dtype=np.float32), + np.array([float(np.clip(pos, -1.0, 2.0)), + ], dtype=np.float32), s, + np.array([float(np.clip(cut, 0.0, 1.0))], dtype=np.float32)]) + + +def candidate_actions(): + """전 행동 후보: 수락 1 + 결렬 1 + 역제안 6×전략4 + 압박 4 = 30.""" + out = [Action("accept"), Action("walk")] + out += [Action("counter", q, s) for q in COUNTER_GRID for s in (1, 2, 3, 4)] + out += [Action("press", 0.0, s) for s in (1, 2, 3, 4)] + return out + + +ACTIONS = candidate_actions() diff --git a/agent/negotiation/policy/autonomy_store.py b/agent/negotiation/policy/autonomy_store.py new file mode 100644 index 0000000..bfd16f0 --- /dev/null +++ b/agent/negotiation/policy/autonomy_store.py @@ -0,0 +1,152 @@ +"""AutonomyStore — 완전 자율 협상 정책 서빙 (룰 대체, numpy 전용). + +AUTONOMY_MODE=1 이면 가격협상 판정 룰(앵커 이하 타결 / 와일드카드 존 / 라운드 상한)과 +카드 선택을 전부 이 정책의 행동 결정으로 대체한다: + accept → 협상완료 (제시가 타결) walk → 협상실패 + counter → "C원이면 수락" 역제안 스텝 press → 전략별 압박 멘트 스텝 + +행동의 유일한 유인은 보상 함수다. 남는 제한은 두 가지뿐이며 비즈니스 룰이 아니다: + - 역제안 후보 격자가 [anchor−5%span, target] 안 (행동 공간 정의) + - 세션 턴 상한(엔지니어링 타임아웃, ChatEngine._AUTONOMY_TURN_CAP) + +번들: artifacts/autonomy_serving.npz (tools/export_autonomy_serving.py). +불가(플래그 꺼짐/번들 없음)면 None → 기존 룰 엔진 그대로 (즉시 롤백 경로). +""" + +import os +from typing import Optional + +import numpy as np + +from common.logger import LOG +from negotiation.policies.autonomy_actions import ( + ACTIONS, Action, extra_state, internet_gap_feat, settle_norm) +from negotiation.qtable.domain.model.snapshot import NegotiationSnapshot +from negotiation.qtable.domain.service.feature_builder import ( + build_state_features, build_tenant_features) + +_HERE = os.path.dirname(os.path.abspath(__file__)) +BUNDLE_PATH = os.path.join(_HERE, "..", "..", "artifacts", "autonomy_serving.npz") + + +class AutonomyPolicy: + """세션 컨텍스트 → 상태특징 → 행동(greedy). ChatEngine 에 decider 로 주입된다.""" + + name = "full_autonomy" + + def __init__(self, z, reward_cfg): + self._W = (z["W0"], z["b0"], z["W1"], z["b1"], z["W2"], z["b2"]) + self._state_dim = int(z["state_dim"]) + self._tenant_feat = build_tenant_features(reward_cfg) + + @staticmethod + def _acceptance(ctx: dict) -> float: + base = ctx.get("item_price") or ctx.get("first_offer_price") or 0 + cur = ctx.get("input_price") or 0 + if base <= 0 or cur <= 0: + return 0.0 + return max(0.0, (base - cur) / base) + + def decide(self, ctx: dict) -> Action: + """ChatSession.context → Action. 상태 구성은 ChatService._snapshot 과 동일 규칙.""" + snap = NegotiationSnapshot( + revenue_amount=ctx["revenue_amount"], distribution_code=ctx["distribution_code"], + partner_count=ctx["partner_count"], acceptance_ratio=self._acceptance(ctx), + input_price=ctx.get("input_price", ctx["anchor_price"]), anchor_price=ctx["anchor_price"], + target_price=ctx["target_price"], round_number=ctx.get("round", 0), + ) + # v3 추가 특징: 직전 역제안 기억 + 마감 잔여율 + 협력사 이력 + 인터넷최저가 갭. + # 소스가 없으면 전부 중립값(0.5/0) — 학습 시뮬의 '미상' 표현과 동일해야 한다. + # 역제안 기억은 autonomy_last_counter(역제안만 갱신) — autonomy_last(마지막 행동)를 쓰면 + # 사이에 낀 설득이 기억을 지워 단조 봉투가 뚫린다(counter→press→counter 철회 실버그). + # 시뮬의 last_kind/last_q 도 역제안만 추적하므로 이쪽이 학습 분포와도 일치한다. + last = ctx.get("autonomy_last_counter") or {} + deadline = 0.5 + end_ts, total_s = ctx.get("deadline_end_ts"), ctx.get("deadline_total_s") + if end_ts and total_s: + import time + deadline = float(np.clip((end_ts - time.time()) / total_s, 0.0, 1.0)) + hist_n = int(ctx.get("hist_n") or 0) + hist_success = float(ctx["hist_success"]) if ctx.get("hist_success") is not None else 0.5 + hist_settle = (settle_norm(float(ctx["hist_settle_ratio"])) + if ctx.get("hist_settle_ratio") is not None else 0.5) + sf = np.concatenate([build_state_features(snap), self._tenant_feat, extra_state( + last.get("kind", ""), float(last.get("q", 0.0)), + deadline=deadline, hist_n=min(hist_n, 5) / 5.0, + hist_success=hist_success if hist_n else 0.5, + hist_settle=hist_settle, + internet_gap=internet_gap_feat(float(ctx.get("internet_lowest_price") or 0), + float(snap.anchor_price)), + )]) + span = max(snap.target_price - snap.anchor_price, 1.0) + pos = (snap.input_price - snap.anchor_price) / span + # 행동 봉투 (학습 available_actions 와 동일해야 한다): + # ① 목표가 초과 제시가는 '수락' 제외 — 매입 승인 범위(v3.1 착취 방지) + # ② 직전 역제안보다 낮은 금액의 역제안 제외 — 단조 양보 원칙(제안 철회는 협상 예절 위반; + # 올리는 '속도'는 정책 학습, 후퇴 '금지'만 구조로 보장) + # ③ 역제시 해금 조건 — 옛 제품 의미론 복원(제품 결정 2026-07-10): 일반 카드는 설득만, + # 역제시(숫자 제안)는 와일드카드처럼 마무리 수단. 최소 AUTONOMY_MIN_PRESS(기본 2)회 + # 설득 이후에만 역제시 후보가 열린다. 해금 후의 타이밍·금액은 정책 학습. + # ④ 마무리 국면 — 제시가가 목표가 0.5% 이내로 붙으면 압박 제외(+역제시 잠금 해제): + # 푼돈 차이에서 '재검토 부탁' 반복은 상대만 지치게 한다. 클로징(역제안/최종제안)하거나 끝내거나. + min_press = int(os.getenv("AUTONOMY_MIN_PRESS", "2")) + near_target = snap.input_price <= snap.target_price * 1.005 + counter_locked = (int(ctx.get("autonomy_press_n") or 0) < min_press) and not near_target + last_counter_q = float(last["q"]) if last.get("kind") == "counter" else None + if last_counter_q is not None: + counter_locked = False # 이미 역제시를 시작했으면 잠그지 않는다(단조 봉투가 관리) + # ⑤ 첫 역제안은 앵커가 이하(q ≤ 0)만 — 낮게 개시해 목표가까지 천천히 올라간다 + # (제품 결정: 사다리를 다 쓰는 앵커링 개시. 이후 단조 봉투가 상향을 관리). + # ⑥ 결렬(walk)도 해금 전 금지 — 설득 0회에 walk 를 고르면 최종제안 보장(엔진)과 결합해 + # '첫 턴 목표가 통보'가 된다(v3.4 라이브 결함). 해금 전에는 설득만 가능. + cands = [a for a in ACTIONS + if not (a.kind == "accept" and snap.input_price > snap.target_price) + and not (a.kind == "counter" and counter_locked) + and not (a.kind == "walk" and counter_locked) + and not (a.kind == "press" and near_target) + and not (a.kind == "counter" and last_counter_q is None and a.counter_q > 1e-9) + and not (a.kind == "counter" and last_counter_q is not None + and a.counter_q < last_counter_q - 1e-9)] + feats = [] + for a in cands: + cut = 0.0 + if a.kind == "counter": + c = snap.anchor_price + a.counter_q * span + cut = max(0.0, (snap.input_price - c) / max(snap.input_price, 1.0)) + feats.append(a.feat(pos, cut)) + feats = np.stack(feats) + W0, b0, W1, b1, W2, b2 = self._W + x = np.concatenate([np.repeat(sf[None, :], feats.shape[0], axis=0), feats], axis=1) + h = np.maximum(x @ W0.T + b0, 0.0) + h = np.maximum(h @ W1.T + b1, 0.0) + scores = (h @ W2.T + b2).squeeze(-1) + return cands[int(np.argmax(scores))] + + @staticmethod + def counter_price(ctx: dict, act: Action) -> int: + span = max(ctx["target_price"] - ctx["anchor_price"], 1.0) + return int(round(ctx["anchor_price"] + act.counter_q * span)) + + +class AutonomyStore: + _z = None + _load_failed = False + + @classmethod + def enabled(cls) -> bool: + return os.getenv("AUTONOMY_MODE", "0").lower() in ("1", "true", "yes") + + @classmethod + def policy_for(cls, engine) -> Optional[AutonomyPolicy]: + """engine: tenancy.registry.TenantEngine. 비활성/번들 없음 → None (룰 엔진 유지).""" + if not cls.enabled() or cls._load_failed: + return None + if cls._z is None: + try: + cls._z = np.load(BUNDLE_PATH, allow_pickle=False) + LOG.i("[Autonomy] 완전 자율 정책 번들 로드 완료 — 협상 판정 룰 대체 모드") + except Exception as ex: + cls._load_failed = True + LOG.e_no_callstack(f"[Autonomy] 번들 로드 실패 → 룰 엔진 유지: {ex}") + return None + return AutonomyPolicy(cls._z, engine.config.reward) diff --git a/agent/services/chat_service.py b/agent/services/chat_service.py index 3612c9e..2c504c9 100644 --- a/agent/services/chat_service.py +++ b/agent/services/chat_service.py @@ -13,12 +13,16 @@ from common.enums import DBType, ErrorType from common.database.db_session_manager import DB_SESSION_MNG from common.logger import LOG from config.server_configs import agent_config +from negotiation.chat.service import ment_generator from negotiation.chat.service.chat_engine import ChatEngine, ChatSession, StepView from negotiation.chat.service.indicator import compute_indicator from negotiation.chat.service.chat_session_repository import ChatSessionRepository from negotiation.chat.service.negotiation_context_loader import NegotiationContextLoader from negotiation.chat.service.script_repository import ScriptRepository from negotiation.policies.base import EpisodeState, PolicyContext, Transition +from negotiation.policies.autonomy_actions import ACTIONS as AUTONOMY_ACTIONS +from negotiation.policy.autonomy_store import AutonomyStore +from negotiation.policy.dqn_store import DQNServingStore from negotiation.policy.model_store import QTablePolicyStore from negotiation.qtable.domain.model.snapshot import NegotiationOutcome, NegotiationSnapshot, PartnerType from negotiation.qtable.domain.service.reward_calculator import RewardCalculator @@ -46,9 +50,19 @@ class ChatService: session = await sess_repo.get(req.session_id) if req.session_id else None # 새 세션 컨텍스트: 요청 페이로드 대신 DB(negotiation.sessions 등)에서 1회 조회. # 행이 없으면(데모/테스트 직접 호출) 기본값 폴백. - db_ctx = None if session else await NegotiationContextLoader().load(req.session_id) + db_ctx = None if session else await NegotiationContextLoader().load(req.session_id, engine.company_id) rq_type = session.rq_type if session else (db_ctx.rq_type if db_ctx else _DEFAULT_RQ_TYPE) chat_engine = ChatEngine(repo, rq_type=rq_type) + # 완전 자율 모드(AUTONOMY_MODE=1 + 번들 존재): 가격협상 판정 룰·카드 선택을 정책 행동으로 대체. + # decider 를 감싸 결정을 컨텍스트에 기록 → advance() 후 experience_logs 에 적재(_autonomy_learn). + autonomy = AutonomyStore.policy_for(engine) + if autonomy is not None: + def _decide(ctx, _p=autonomy): + act = _p.decide(ctx) + ctx["autonomy_pending"] = {"idx": AUTONOMY_ACTIONS.index(act), "kind": act.kind, + "q": act.counter_q, "s": act.strategy} + return act + chat_engine.autonomy_decider = _decide # ① step desync 감지: backend 가 본 직전 봇 step(client_step)이 agent 세션 step 과 다르면 경고. # agent 가 자기 step 을 정답으로 보고 진행하고(응답의 step/client_step 으로 backend 가 따라옴), @@ -101,6 +115,13 @@ class ChatService: "selected_nego_card_numbers": selected_nego_cards, "selected_wild_card_numbers": selected_wild_cards, "allow_selected_wildcards": True if db_ctx is None else bool(selected_wild_cards), + # ---- 자율 에이전트 v3 특징 소스 (미상이면 키 자체를 중립값으로 — JSON 직렬화 안전) ---- + "internet_lowest_price": db_ctx.internet_lowest_price if db_ctx else 0, + "deadline_end_ts": db_ctx.deadline_end_ts if db_ctx else None, + "deadline_total_s": db_ctx.deadline_total_s if db_ctx else None, + "hist_n": db_ctx.hist_n if db_ctx else 0, + "hist_success": db_ctx.hist_success if db_ctx else None, + "hist_settle_ratio": db_ctx.hist_settle_ratio if db_ctx else None, }, ) view = chat_engine.start(session) @@ -129,6 +150,17 @@ class ChatService: elif view.outcome is not None: await self._terminal_learn(engine, session, view.outcome, res) + # 3-b) 완전 자율 모드: 정책 결정·종료 결과를 experience_logs 에 적재 (실로그 재학습 재료). + if autonomy is not None and view.error is None: + await self._autonomy_learn(engine, session, view, res) + # 자율 스텝 멘트를 LLM 으로 생성 (행동은 RL, 문장은 LLM). 실패/미설정 → 템플릿 유지. + if view.step.startswith("자율_"): + llm_ment = await ment_generator.generate(view.step, session.context) + if llm_ment: + res.script = llm_ment + # 직전 봇 멘트 보존 — 다음 생성에서 같은 문장 구조 반복을 금지하는 힌트. + session.context["autonomy_last_ment"] = (res.script or "")[:200] + if view.error: res.result.SetResult(ErrorType.NEGO_INVALID_STEP) res.msg = view.error @@ -196,7 +228,13 @@ class ChatService: ctx = PolicyContext(state_index=idx, snapshot=snap, action_space_size=engine.action_space_size, available_mask=self._selection_mask(engine, session), episode=EpisodeState(used_action_ids=set(session.used_action_ids))) - decision = policy.select(ctx) + # 카드 '선택'은 DQN 서빙(활성 시), 학습/영속은 아래 Q-table 경로 그대로(오프폴리시 갱신). + # DQN 불가(비활성/번들 없음/후보 특징 없음)면 None → 기존 UCB 선택 폴백. + dqn = DQNServingStore.policy_for(engine) + decision = dqn.select(ctx) if dqn is not None else None + selector_name = dqn.name if decision is not None else policy.name + if decision is None: + decision = policy.select(ctx) session.used_action_ids.add(decision.action_id) card_id = self._card_id_for_action(engine, session, decision.action_id) reward = RewardCalculator(engine.config.reward, engine.config.state).calculate(snap) @@ -207,7 +245,7 @@ class ChatService: await self._log(repo, session, idx, decision.action_id, card_id, snap, reward, decision.propensity, done=False) res.card_id = card_id - res.policy = policy.name + res.policy = selector_name res.q_value = decision.q_value res.updated_q = float(policy.qtable.q[idx, decision.action_id]) res.visit_count = int(policy.qtable.visits[idx, decision.action_id]) @@ -232,6 +270,49 @@ class ChatService: res.indicator_range = ind[1] res.bot_chat_type = "indicator" + async def _autonomy_learn(self, engine: TenantEngine, session: ChatSession, view: StepView, res: Res_Chat): + """완전 자율 행동 로깅 — Q-table 은 건드리지 않고 experience_logs 만 적재한다. + + action_id = autonomy_actions.ACTIONS 인덱스, card_id = "AUT|종류|위치|전략" (카드 재학습 + 파이프라인이 임베딩 매칭에서 자동 제외하도록 프리픽스로 구분). 종료 시 최종 보상 행(done=True)을 + 남겨 retrain 의 에피소드 재구성 규약(카드턴 N + 종료 1)과 정합을 맞춘다. + """ + def _card_id(d) -> str: + return f"AUT|{d['kind']}|{d['q']:g}|{d['s']}"[:40] + + ctx = session.context + lrepo = LearningRepository(engine.company_id) + pending = ctx.pop("autonomy_pending", None) + if pending is not None: + snap = self._snapshot(session, NegotiationOutcome.ONGOING) + try: + idx = state_index(snap, engine.config.state) # 로깅 호환용 이산 인덱스 + except ValueError: + idx = 0 # 자율 모드는 이산 상태를 쓰지 않으므로 폴백해도 학습 오염 없음 + if ctx.get("autonomy_last"): + ctx["autonomy_prev"] = ctx["autonomy_last"] # 직전 결정 보존 — 멘트 생성 힌트(양보 언급)용 + ctx["autonomy_last"] = dict(pending, state_index=idx) + if pending.get("kind") == "counter": + # 역제안 기억은 별도 키로 보존 — autonomy_last 는 '마지막 행동'이라 사이에 낀 + # 설득이 덮어쓴다. 단조 봉투·탄약소진 판정이 이 기억을 기준으로 해야 + # counter→press→counter 에서 제안 철회가 새지 않는다 (게이트가 잡은 실버그). + ctx["autonomy_last_counter"] = dict(pending) + if pending.get("kind") == "press": + # 설득 횟수 누적 — 역제시 해금 조건(autonomy_store ③)의 카운터. + ctx["autonomy_press_n"] = int(ctx.get("autonomy_press_n") or 0) + 1 + reward = RewardCalculator(engine.config.reward, engine.config.state).calculate(snap) + await self._log(lrepo, session, idx, pending["idx"], _card_id(pending), snap, + reward, (1.0 - 0.1) + 0.1 / len(AUTONOMY_ACTIONS), done=False) + res.policy = "full_autonomy" + last = ctx.get("autonomy_last") + if view.outcome is not None and last is not None: + oc = NegotiationOutcome.SUCCESS if view.outcome == "success" else NegotiationOutcome.FAILURE + snap = self._snapshot(session, oc) + reward = RewardCalculator(engine.config.reward, engine.config.state).calculate(snap) + res.reward_total = reward.total + await self._log(lrepo, session, last["state_index"], last["idx"], _card_id(last), snap, + reward, None, done=True) + async def _terminal_learn(self, engine: TenantEngine, session: ChatSession, outcome: str, res: Res_Chat): oc = NegotiationOutcome.SUCCESS if outcome == "success" else NegotiationOutcome.FAILURE snap = self._snapshot(session, oc) diff --git a/agent/tools/export_autonomy_serving.py b/agent/tools/export_autonomy_serving.py new file mode 100644 index 0000000..c9f2e01 --- /dev/null +++ b/agent/tools/export_autonomy_serving.py @@ -0,0 +1,42 @@ +"""full_autonomy 체크포인트(.pt) → 서빙 번들(autonomy_serving.npz) export. + +dqn_serving 과 동일 패턴: ScoreNet 가중치만 numpy 로 묶어 PyTorch 없이 서빙한다. +행동 특징은 코드(autonomy_actions)가 런타임 생성하므로 번들에는 가중치만 담는다. + +실행(호스트, torch 필요): APP_ENV=local python -m tools.export_autonomy_serving +""" + +import os + +import numpy as np +import torch + +from negotiation.policies.autonomy_actions import ACTION_DIM, EXTRA_STATE_DIM +from negotiation.qtable.domain.service.feature_builder import STATE_FEATURE_DIM, TENANT_FEATURE_DIM + +_HERE = os.path.dirname(os.path.abspath(__file__)) +CKPT_PATH = os.path.join(_HERE, "..", "artifacts", "full_autonomy.pt") +OUT_PATH = os.path.join(_HERE, "..", "artifacts", "autonomy_serving.npz") + +STATE_DIM = STATE_FEATURE_DIM + TENANT_FEATURE_DIM + EXTRA_STATE_DIM + + +def main(): + sd = torch.load(CKPT_PATH, map_location="cpu") + W0, b0 = sd["net.0.weight"].numpy(), sd["net.0.bias"].numpy() + W1, b1 = sd["net.2.weight"].numpy(), sd["net.2.bias"].numpy() + W2, b2 = sd["net.4.weight"].numpy(), sd["net.4.bias"].numpy() + assert W0.shape[1] == STATE_DIM + ACTION_DIM, f"입력 차원 불일치: {W0.shape[1]}" + + tmp = OUT_PATH + ".tmp" + with open(tmp, "wb") as f: + np.savez(f, W0=W0, b0=b0, W1=W1, b1=b1, W2=W2, b2=b2, + state_dim=STATE_DIM, action_dim=ACTION_DIM) + if os.path.exists(OUT_PATH): + os.replace(OUT_PATH, OUT_PATH + ".prev") + os.replace(tmp, OUT_PATH) + print(f"[저장] {os.path.abspath(OUT_PATH)} (state {STATE_DIM} + action {ACTION_DIM})") + + +if __name__ == "__main__": + main() diff --git a/agent/tools/train_full_autonomy.py b/agent/tools/train_full_autonomy.py new file mode 100644 index 0000000..31a1d54 --- /dev/null +++ b/agent/tools/train_full_autonomy.py @@ -0,0 +1,365 @@ +"""train_full_autonomy — 행동 룰 0개, 완전 자율 협상 에이전트 (v2 시뮬 프로토타입). + +기존 시스템의 룰(앵커 이하 강제타결 / 3라운드 강제결렬 / 와일드카드 존 / 카드 카탈로그)을 +전부 제거하고, 모든 결정을 에이전트 행동으로 이관한다: + + 행동 공간 (action-as-feature, ScoreNet 이 후보 열거 채점): + ACCEPT 현재 제시가로 타결 ← '앵커 이하 강제타결' 룰 대체 + WALK 협상 결렬 선언 ← '3라운드 강제결렬' 룰 대체 + COUNTER(C) "C원이면 수락" 역제안 ← '와일드카드 1%' 룰 대체 (금액도 학습) + PRESS(strategy) 설득 압박(카드의 일반화) ← 카드 카탈로그 대체 (전략만 남음) + + 룰이 사라진 자리는 보상이 채운다(유일한 스펙): + R = W×R_price + (1−W)×R_end − λ×round (기존 RewardCalculator 그대로) + 협상이 끝나는 길: 에이전트의 ACCEPT/WALK, 협력사의 COUNTER 수락, 협력사의 인내심 소진(이탈). + 마지막 것은 시스템 룰이 아니라 상대방 특성이다. + + 베이스라인 = 현행 룰 시스템을 같은 환경에서 재현(앵커타결/1%클로징/3라운드결렬 + 압박). + +실행: APP_ENV=local PYTHONUTF8=1 python -m tools.train_full_autonomy +""" + +import os +import random +from typing import Optional, Tuple + +import numpy as np +import torch + +from eval_harness.feature_buyer import AFFINITY, STRATEGY_PROFILE, SupplierProfile, sample_supplier +from negotiation.policies.autonomy_actions import ( + ACTION_DIM, ACTIONS, COUNTER_GRID, EXTRA_STATE_DIM, Action, extra_state, + internet_gap_feat, settle_norm as extra_settle) +from negotiation.policies.feature_dqn_policy import FeatureDQNPolicy +from negotiation.qtable.domain.model.snapshot import NegotiationOutcome, NegotiationSnapshot +from negotiation.qtable.domain.service.feature_builder import ( + STATE_FEATURE_DIM, TENANT_FEATURE_DIM, build_state_features, build_tenant_features) +from negotiation.qtable.domain.service.reward_calculator import RewardCalculator +from tenancy.config_loader import TenantConfigLoader +from tools.train_feature_dqn import pref_config, sample_tenant_pref + +_HERE = os.path.dirname(os.path.abspath(__file__)) +CKPT_PATH = os.path.join(_HERE, "..", "artifacts", "full_autonomy.pt") + +TARGET = 10000.0 +# 앵커율(v3.1): 실운영 기하 정합 — 앵커가 = 목표가×(1−a), a ∈ [0.8%, 6%] 를 에피소드마다 샘플링. +# (기존 고정 20% 폭은 실제(≈1%)와 지형이 달라, 실서비스에서 압박/역제안 밸런스가 어긋났다.) +ANCHOR_RATE_RANGE = (0.008, 0.06) +# 행동 공간(Action/ACTIONS/COUNTER_GRID/ACTION_DIM)은 negotiation.policies.autonomy_actions 공유 +# — 서빙(autonomy_store, numpy 전용)과 학습이 같은 인코딩을 쓴다. + + +# ---- 협력사 모델 (상대 반응: 역제안 수락/재제안 포함) --------------------------------- +class AutonomousBuyer: + """FeatureBuyer 확장: 역제안(C)에 반응한다. 이탈은 '인내심' — 시스템 룰이 아닌 상대 특성.""" + + def __init__(self, sup: SupplierProfile, seed: int): + self.sup = sup + self.rng = np.random.default_rng(seed) + # 기질 t ∈ [0,1]: 0=터프(하한 높고 안 물러섬) ↔ 1=수월. 관측 가능한 이력·최저가가 + # 이 숨은 기질과 상관되게 생성된다 → 에이전트가 이력/최저가 특징을 읽을 '이유'가 생긴다. + # 하한은 '우리 앵커'가 아니라 협력사 사정(≈목표가 기준)으로 정해진다(v3.1) — + # 하한 > 목표가(≈35%)면 애초에 성사 불가능한 협상이고, 그걸 빨리 알아채고 끊는 것도 실력이다. + t = float(self.rng.uniform(0.0, 1.0)) + self.floor = TARGET * float(np.clip(1.12 - 0.24 * t + self.rng.normal(0, 0.02), 0.85, 1.18)) + self.patience = int(self.rng.integers(4, 9)) + (1 if t > 0.7 else 0) + # 첫 제시가: 목표가의 105~150% — 실운영(기존 공급가가 목표가를 26%+ 상회) 분포를 덮는다. + # 좁게(110~125%) 학습하면 큰 갭 상황에서 정책이 분포 밖 일반화(대형컷 역제안)를 한다. + self.price = TARGET * float(self.rng.uniform(1.05, 1.50)) + # 하한가가 첫 제시가보다 높을 수 없다(자기 하한 밑으로 부르고 시작하는 판매자는 없음). + # 이 보정이 없으면 on_press 의 max(floor,·)가 가격을 '역주행'시키는 비현실이 생긴다. + self.floor = min(self.floor, self.price * 0.98) + self._last_c: Optional[float] = None # 직전 역제안 (같은 숫자 반복 짜증 모델링) + # ---- 관측 가능 부가정보 (v3 특징 소스 — 기질과 상관, 노이즈 있음) ---- + self.hist_n = int(self.rng.integers(0, 6)) # 과거 협상 횟수 (0=신규) + if self.hist_n: + self.hist_success = float(np.clip(0.25 + 0.6 * t + self.rng.normal(0, 0.10), 0.0, 1.0)) + self.hist_settle_ratio = float(np.clip(1.18 - 0.28 * t + self.rng.normal(0, 0.04), 0.80, 1.30)) + else: + self.hist_success = self.hist_settle_ratio = None + # 인터넷최저가: 숨은 하한가의 노이즈 관측치. 60% 확률로만 수집돼 있음(현실: 미수집 흔함). + self.internet_lowest = (self.floor * float(self.rng.uniform(0.98, 1.08)) + if self.rng.random() < 0.6 else None) + + def _powers(self, strategy: int) -> Tuple[float, float]: + conc, acc = STRATEGY_PROFILE.get(strategy, (0.5, 0.5)) + m = AFFINITY[self.sup.segment].get(strategy, 0.5) + scale = 0.35 + 0.85 * m + return conc * scale, acc * scale + + def on_press(self, strategy: int, turn: int) -> Tuple[bool, float]: + """(이탈여부, 새 제시가). 압박이 안 먹히는 세그먼트면 이탈 위험이 실재한다.""" + c_pow, a_pow = self._powers(strategy) + walk_p = 0.04 + 0.30 * (1.0 - a_pow) * (turn / self.patience) + if self.rng.random() < walk_p: + return True, self.price + concession = (self.price - self.floor) * (0.10 + 0.55 * c_pow) + self.price = max(self.floor, self.price - concession) + return False, self.price + + def on_counter(self, c: float, strategy: int, turn: int) -> Tuple[str, float]: + """역제안 C 반응: 'accept'(C로 타결) | 'walk' | 'counter'(새 제시가). + + 현실화(v2): 현 제시가 대비 인하 요구폭(cut)이 클수록 수락률이 급감하고 이탈 위험이 커진다 + — 초기 버전에서 에이전트가 't1 원샷 로우볼'로 시뮬 허점을 착취하던 것을 막는다. + 압박으로 가격을 충분히 끌어내린 뒤 작은 컷으로 클로징해야 통하는 구조. + """ + _, a_pow = self._powers(strategy or 3) + cut = max(0.0, (self.price - c) / max(self.price, 1.0)) # 인하 요구폭 (현 제시가 대비) + prev_c = self._last_c + repeated = prev_c is not None and abs(c - prev_c) < 1e-6 # 같은 숫자 반복 + self._last_c = c + # 양보 상호성(v3.3): 직전 제안보다 올려 부르면(성의 있는 양보) 호의적으로 반응한다. + # 이 신호가 있어야 '상대가 내리면 우리도 조금 올리는' tit-for-tat 이 학습으로 나온다. + warm = 0.0 + if prev_c is not None and c > prev_c + 1e-9: + warm = float(np.clip((c - prev_c) / max(self.price - self.floor, 1.0), 0.0, 0.35)) + if c >= self.floor: + margin = (c - self.floor) / max(self.floor, 1.0) + p_acc = float(np.clip(0.20 + 0.9 * margin / 0.08, 0.0, 0.95)) * (0.75 + 0.35 * a_pow) + p_acc *= float(np.clip(1.0 - (cut - 0.05) / 0.20, 0.0, 1.0)) # 컷 5% 초과부터 반발, 25%면 수락 0 + if repeated: + p_acc *= 0.25 # 이미 거절한 숫자를 또 내밀면 설득력 급감 + p_acc *= 1.0 + warm + if self.rng.random() < min(p_acc, 0.97): + return "accept", c + # 모욕적 요구(하한 미달·과도한 원샷 컷·앵무새 반복) → 이탈 위험 + low = max(0.0, (self.floor - c) / max(self.floor, 1.0)) + p_walk = min(0.5, 2.0 * low) + 0.35 * max(0.0, cut - 0.20) / 0.20 + (0.15 if repeated else 0.0) + if self.rng.random() < min(p_walk * (1.0 - warm), 0.7): + return "walk", self.price + self.price = max(self.floor, c + (self.price - c) * float(self.rng.uniform(0.30, 0.60) + warm)) + return "counter", self.price + + +# ---- 에피소드 실행 (룰 없음 — 종료는 행동 또는 상대 특성으로만) ------------------------ +def make_snapshot(sup, price, turn, p0, anchor, outcome=NegotiationOutcome.ONGOING): + return NegotiationSnapshot( + revenue_amount=sup.revenue_amount, distribution_code=sup.distribution_code, + partner_count=sup.partner_count, acceptance_ratio=max(0.0, (p0 - price) / p0), + input_price=price, anchor_price=anchor, target_price=TARGET, + round_number=turn, outcome=outcome) + + +MIN_PRESS = int(os.getenv("AUTONOMY_MIN_PRESS", "2")) # 역제시 해금에 필요한 최소 설득 횟수 + + +def available_actions(price: float, last_counter_q: Optional[float] = None, + counter_locked: bool = False) -> list: + """행동 봉투 (serving autonomy_store 와 동일해야 한다): + ① 목표가 초과 제시가는 '수락' 제외 — 매입 승인 범위(목표가 초과 수락 착취 방지) + ② 직전 역제안 미만 금액의 역제안 제외 — 단조 양보 원칙(제안 철회 금지; + 양보 '속도'는 정책이 배우고, 후퇴 '금지'만 구조로 보장) + ③ counter_locked: 설득 MIN_PRESS 회 전에는 역제시 잠금 — 옛 제품 의미론 + (일반 카드=설득, 역제시=와일드카드 성격의 마무리 수단) 복원 + ④ 마무리 국면(제시가 ≤ 목표가×1.005): 압박 제외 — 푼돈 차이에서 재검토 요청 반복 방지 + ⑤ 첫 역제안은 앵커 이하(q ≤ 0)만 — 낮게 개시해 사다리를 다 쓰며 올라간다""" + near_target = price <= TARGET * 1.005 + return [a for a in ACTIONS + if not (a.kind == "accept" and price > TARGET) + and not (a.kind == "counter" and counter_locked and not near_target) + and not (a.kind == "walk" and counter_locked and not near_target) + and not (a.kind == "press" and near_target) + and not (a.kind == "counter" and last_counter_q is None and a.counter_q > 1e-9) + and not (a.kind == "counter" and last_counter_q is not None + and a.counter_q < last_counter_q - 1e-9)] + + +def action_feats(price: float, anchor: float, last_counter_q: Optional[float] = None, + counter_locked: bool = False): + """현 제시가 기준 (가용 행동 리스트, 특징 [K, ACTION_DIM]). counter 는 컷폭 포함.""" + span = max(TARGET - anchor, 1.0) + pos = (price - anchor) / span + acts = available_actions(price, last_counter_q, counter_locked) + rows = [] + for a in acts: + cut = 0.0 + if a.kind == "counter": + c = anchor + a.counter_q * span + cut = max(0.0, (price - c) / max(price, 1.0)) + rows.append(a.feat(pos, cut)) + return acts, np.stack(rows) + + +def run_episode(policy_fn, sup, rc: RewardCalculator, tf: np.ndarray, seed: int, + learner: Optional[FeatureDQNPolicy] = None, trace: Optional[list] = None): + """policy_fn(state_feat, price_pos) → Action. learner 지정 시 replay 저장+학습.""" + buyer = AutonomousBuyer(sup, seed) + p0 = buyer.price + env_rng = np.random.default_rng(seed + 7) + # 앵커율 샘플링(v3.1): 실운영처럼 앵커가 목표가 바로 아래(0.8~6%) — 좁은 스팬 지형에서 학습. + anchor = TARGET * (1.0 - float(env_rng.uniform(*ANCHOR_RATE_RANGE))) + span = max(TARGET - anchor, 1.0) + turn, settled, walked = 0, None, False + last_kind, last_q = "", 0.0 # 직전 역제안 기억 (같은 숫자 반복 방지의 학습 근거) + press_n = 0 # 설득 횟수 — 역제시 해금(MIN_PRESS) 카운터 + # 견적 마감(환경 사실): 마감 도달 시 협상은 미타결 종료된다 — 룰이 아니라 세상의 시계. + deadline_turns = int(env_rng.integers(3, 11)) + # 관측성 마스크(v3.5): 실서빙은 마감·이력·최저가가 '없는' 세션이 흔하고 로더가 중립값 + # (0.5/0)을 대입한다. 시뮬이 항상 다 아는 세계만 학습하면 그 중립 상태가 분포 밖이 된다 + # — v3.4 가 라이브 소액 지형에서 첫 턴 결렬로 퇴화한 원인 추정. 세계(마감 종료·상대 특성)는 + # 그대로 두고 관측만 가린다: 마감은 40% 미관측(0.5 고정), 15% 는 전부 미상(신규 견적의 전형). + deadline_known = env_rng.random() < 0.6 + blind = env_rng.random() < 0.15 + if blind: + deadline_known = False + # 협력사 이력·최저가 특징 (에피소드 내 불변) + known_hist = buyer.hist_n and not blind + fixed_extra = dict( + hist_n=min(buyer.hist_n, 5) / 5.0 if not blind else 0.0, + hist_success=buyer.hist_success if known_hist else 0.5, + hist_settle=extra_settle(buyer.hist_settle_ratio) if known_hist else 0.5, + internet_gap=internet_gap_feat(buyer.internet_lowest or 0.0, anchor) if not blind else 0.0, + ) + pending = None # (state_feat, action_feat) — 최종 결과 시점만 채점, 중간 r=0 + + while True: + turn += 1 + price = buyer.price + deadline_remain = (max(0.0, (deadline_turns - turn + 1) / deadline_turns) + if deadline_known else 0.5) # 미관측 → 서빙 로더와 동일한 중립값 + sf = np.concatenate([build_state_features(make_snapshot(sup, price, turn, p0, anchor)), tf, + extra_state(last_kind, last_q, deadline=deadline_remain, **fixed_extra)]) + lcq = last_q if last_kind == "counter" else None + locked = lcq is None and press_n < MIN_PRESS + act = policy_fn(sf, price, anchor, lcq, locked) + if trace is not None: + trace.append((turn, int(price), act)) + + if act.kind == "accept": + settled = price + elif act.kind == "walk": + walked = True + elif act.kind == "counter": + c = anchor + act.counter_q * span + resp, val = buyer.on_counter(c, act.strategy, turn) + last_kind, last_q = "counter", act.counter_q # 역제안 기억 갱신 + if resp == "accept": + settled = c + elif resp == "walk": + walked = True + else: # press + press_n += 1 + left, _ = buyer.on_press(act.strategy, turn) + walked = walked or left + if not settled and not walked and turn >= buyer.patience: + walked = True # 인내심 소진(상대 특성) — 시스템 룰 아님 + if not settled and not walked and turn >= deadline_turns: + walked = True # 견적 마감 도달(환경 사실) — 미타결 종료 + + done = settled is not None or walked + final_price = settled if settled is not None else buyer.price + # 성사 보너스는 목표가 이하 타결에만 — v3.1 이 '비싸게라도 성사'로 착취한 보상 구멍의 + # 원인 차단(봉투 ① 의 마스크와 이중 방어: 유인 자체를 올바르게). 초과 타결 = 결렬 취급. + outcome = (NegotiationOutcome.SUCCESS if settled is not None and settled <= TARGET + else NegotiationOutcome.FAILURE if done else NegotiationOutcome.ONGOING) + r = rc.calculate(make_snapshot(sup, final_price, turn, p0, anchor, outcome)).total if done else 0.0 + + if learner is not None: + pos = (price - anchor) / span + cut = 0.0 + if act.kind == "counter": + cut = max(0.0, (price - (anchor + act.counter_q * span)) / max(price, 1.0)) + af = act.feat(pos, cut) + if pending: + nxt_lcq = last_q if last_kind == "counter" else None + learner.remember(*pending, 0.0, sf, + action_feats(price, anchor, nxt_lcq, + nxt_lcq is None and press_n < MIN_PRESS)[1], False) + pending = (sf, af) + if done: + learner.remember(sf, af, r, None, None, True) + learner.train_step() + if done: + return settled, turn, r + + +# ---- 정책들 ------------------------------------------------------------------ +def dqn_policy(policy: FeatureDQNPolicy): + def f(sf, price, anchor, last_counter_q=None, counter_locked=False): + acts, feats = action_feats(price, anchor, last_counter_q, counter_locked) + i, _, _ = policy.select(sf, feats) + return acts[i] + return f + + +class RuleBaseline: + """현행 시스템 룰 재현: 앵커 이하 수락 / 존내 1% 클로징 / 3회 압박 후 결렬.""" + + def __init__(self): + self.presses, self.closed = 0, False + + def __call__(self, sf, price, anchor, last_counter_q=None, counter_locked=False) -> Action: + span = max(TARGET - anchor, 1.0) + if price <= anchor: + return Action("accept") + if price <= anchor * 1.02 and not self.closed: + self.closed = True + return Action("counter", (price * 0.99 - anchor) / span, 3) + if self.presses < 3: + self.presses += 1 + return Action("press", 0.0, 3) + return Action("walk") + + +# ---- 학습/평가 ---------------------------------------------------------------- +def evaluate(name, make_policy_fn, base_cfg, tcfg_state, episodes=3000, seed0=777): + rc = RewardCalculator(pref_config(base_cfg, 0.5), tcfg_state) + tf = build_tenant_features(pref_config(base_cfg, 0.5)) + rng = np.random.default_rng(seed0) + rewards, settles, rounds = [], [], [] + for i in range(episodes): + sup = sample_supplier(rng) + settled, turn, r = run_episode(make_policy_fn(), sup, rc, tf, seed0 * 91 + i) + rewards.append(r) + rounds.append(turn) + if settled is not None: + settles.append(settled / TARGET) + sr = len(settles) / episodes + print(f"{name:<14} 보상 {np.mean(rewards):.4f} ±{np.std(rewards)/np.sqrt(episodes):.4f}" + f" 성사율 {sr:.3f} 타결가/목표 {np.mean(settles):.3f} 평균라운드 {np.mean(rounds):.2f}") + return dict(reward=float(np.mean(rewards)), success=sr, + settle_ratio=float(np.mean(settles)) if settles else None, rounds=float(np.mean(rounds))) + + +def main(episodes=15000, seed=42): + random.seed(seed); np.random.seed(seed); torch.manual_seed(seed) + tcfg = TenantConfigLoader().load("ktcommerce") + policy = FeatureDQNPolicy(state_dim=STATE_FEATURE_DIM + TENANT_FEATURE_DIM + EXTRA_STATE_DIM, + card_dim=ACTION_DIM, eps_decay=5000, gamma=0.97) + rng = np.random.default_rng(seed) + + print(f"=== 완전 자율 학습 {episodes}ep (행동 {len(ACTIONS)}개, 룰 0개) ===") + recent = [] + for ep in range(1, episodes + 1): + sup = sample_supplier(rng) + rcfg, tf = sample_tenant_pref(rng, tcfg.reward) + rc = RewardCalculator(rcfg, tcfg.state) + _, _, r = run_episode(dqn_policy(policy), sup, rc, tf, seed * 131 + ep, learner=policy) + recent.append(r) + if ep % 3000 == 0: + print(f" ep {ep:>6} eps={policy.eps():.3f} 최근3000 평균보상={np.mean(recent[-3000:]):.4f}") + policy.save(CKPT_PATH) + + print("\n=== 평가 3000ep (중립 성향 p=0.5, 동일 협력사 분포) ===") + policy.greedy = True + evaluate("룰시스템(현행)", lambda: RuleBaseline(), tcfg.reward, tcfg.state) + evaluate("완전자율 DQN", lambda: dqn_policy(policy), tcfg.reward, tcfg.state) + + # 궤적 예시 — 에이전트가 룰 없이 뭘 하는지 눈으로 + print("\n=== 궤적 예시 (완전자율) ===") + rc = RewardCalculator(pref_config(tcfg.reward, 0.5), tcfg.state) + tf = build_tenant_features(pref_config(tcfg.reward, 0.5)) + rng2 = np.random.default_rng(7) + for k in range(3): + sup = sample_supplier(rng2) + trace = [] + settled, turn, r = run_episode(dqn_policy(policy), sup, rc, tf, 5000 + k, trace=trace) + seg = "·".join(sup.segment) + print(f"[{seg}] " + " → ".join( + f"t{t}:{p:,}원 {a.kind}{'' if a.kind in ('accept', 'walk') else f'({a.counter_q:.2f},전략{a.strategy})' if a.kind == 'counter' else f'(전략{a.strategy})'}" + for t, p, a in trace) + f" ⇒ {'타결 ' + format(int(settled), ',') + '원' if settled else '결렬'} (r={r:.3f})") + + +if __name__ == "__main__": + main() diff --git a/docker-compose.yml b/docker-compose.yml index 0446071..38c695f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,6 +64,8 @@ services: environment: APP_ENV: local DB_HOST: host.docker.internal # 컨테이너→호스트 DB (config.local.toml의 127.0.0.1 override) + DQN_SERVING: "1" # 카드 선택을 feature_dqn(numpy 서빙)으로. 0 이면 기존 UCB Q-table + AUTONOMY_MODE: "1" # 완전 자율 협상(판정 룰·카드 제거, 정책이 수락/역제안/결렬 결정). 0 이면 룰 엔진 ports: - "9500:9500" extra_hosts: