From cf0090d3f520af7330c4df849797c3bac14a09fd Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Fri, 16 Oct 2026 22:33:36 -0700 Subject: [PATCH] feat(ui): add Focused Prompt Manager node (#186) --- README.md | 8 + __init__.py | 9 +- .../classic-start-focused-dark.png | Bin 0 -> 79405 bytes .../classic-start-focused-light.png | Bin 0 -> 81309 bytes .../nodes2-start-focused-dark.png | Bin 0 -> 81192 bytes .../nodes2-start-focused-light.png | Bin 0 -> 82078 bytes prompt_manager.py | 15 ++ tests/browser/focused-node.spec.mjs | 244 ++++++++++++++++++ tests/comfyui/focused-node.spec.mjs | 211 +++++++++++++++ tests/comfyui/host-fixture.mjs | 43 +++ tests/comfyui/prompt-manager.spec.mjs | 40 +-- tests/js/comfy-metadata.test.js | 34 +++ tests/test_focused_node.py | 61 +++++ tests/test_init_package.py | 7 +- tests/test_prompt_graph.py | 13 + tests/test_usage_tracking.py | 10 + tools/vendor/frontend-coverage-baseline.json | 12 + utils/prompt_graph.py | 6 +- web/comfy/prompt_manager.js | 10 +- web/js/comfy-metadata.js | 1 + web/js/focused-node.js | 150 +++++++++++ web/js/prompt-editor.css | 27 ++ web/js/prompt-library.js | 79 ++++++ 23 files changed, 934 insertions(+), 46 deletions(-) create mode 100644 docs/screenshots/focused-toolkit/classic-start-focused-dark.png create mode 100644 docs/screenshots/focused-toolkit/classic-start-focused-light.png create mode 100644 docs/screenshots/focused-toolkit/nodes2-start-focused-dark.png create mode 100644 docs/screenshots/focused-toolkit/nodes2-start-focused-light.png create mode 100644 tests/browser/focused-node.spec.mjs create mode 100644 tests/comfyui/focused-node.spec.mjs create mode 100644 tests/comfyui/host-fixture.mjs create mode 100644 tests/test_focused_node.py create mode 100644 web/js/focused-node.js create mode 100644 web/js/prompt-editor.css create mode 100644 web/js/prompt-library.js diff --git a/README.md b/README.md index ddcc554..ecd76e5 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,14 @@ node identifier and sockets. The reusable architecture is inspired by [Pixaroma](https://github.com/pixaroma/ComfyUI-Pixaroma); no implementation or assets were copied. See the [toolkit maintenance notes](tools/vendor/README.md#shared-comfyassets-browser-controls). +**Prompt Manager (Focused)** adds an editor-first layout with collapsible +composition and metadata fields. Open **Browse library** to search saved prompts, +preview a selection, then choose **Use prompt**; **Load metadata** controls whether +category and tags come with it. Prepend and append STRING sockets remain visible +when the fields are collapsed, so LoRA trigger outputs can connect directly. +Encoding, storage, and CONDITIONING/text outputs match Classic. Both layouts +support ComfyUI Classic and Nodes 2.0. + ### 🔬 ComfyUI Workflow Analysis - **PNG Metadata Parsing**: Advanced PNG chunk analysis to extract embedded ComfyUI data diff --git a/__init__.py b/__init__.py index 6593b25..f4e3076 100644 --- a/__init__.py +++ b/__init__.py @@ -3,12 +3,13 @@ ComfyUI_PromptManager: A comprehensive ComfyUI custom node that extends text enc with persistent prompt storage, advanced search capabilities, and an automatic image gallery system. -This module provides two main node types: +This module provides prompt node types: - PromptManager: CLIP encoding node that outputs CONDITIONING +- PromptManagerFocused: Editor-first layout using the same encoding contract - PromptManagerText: Text-only node that outputs STRING with prepend/append functionality -Both nodes share the same database backend for persistent prompt storage and include +The nodes share the same database backend for persistent prompt storage and include an automatic image gallery system that monitors ComfyUI output directories and links generated images to their source prompts. @@ -38,18 +39,20 @@ def get_version(): return "unknown" -from .prompt_manager import PromptManager # noqa: E402 +from .prompt_manager import PromptManager, PromptManagerFocused # noqa: E402 from .prompt_manager_text import PromptManagerText # noqa: E402 from .prompt_search_list import PromptSearchList # noqa: E402 NODE_CLASS_MAPPINGS = { "PromptManager": PromptManager, + "PromptManagerFocused": PromptManagerFocused, "PromptManagerText": PromptManagerText, "PromptSearchList": PromptSearchList, } NODE_DISPLAY_NAME_MAPPINGS = { "PromptManager": "Prompt Manager (Classic)", + "PromptManagerFocused": "Prompt Manager (Focused)", "PromptManagerText": "Prompt Manager Text", "PromptSearchList": "Prompt Search List", } diff --git a/docs/screenshots/focused-toolkit/classic-start-focused-dark.png b/docs/screenshots/focused-toolkit/classic-start-focused-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf487bff1363f8632c94cc3166d9242aea3888b GIT binary patch literal 79405 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 H_Tj$(kABCi literal 0 HcmV?d00001 diff --git a/docs/screenshots/focused-toolkit/classic-start-focused-light.png b/docs/screenshots/focused-toolkit/classic-start-focused-light.png new file mode 100644 index 0000000000000000000000000000000000000000..0219fe5a46d0522a5e7f86edcded779703f6e8c0 GIT binary patch literal 81309 zcma&OcQ~AH*EK8!zetdVs3}5piQWa#qnFW1^xk_-2tp8Lh@LQd8Ey0)B}ViZ<97669fmhN_h1H&Z+Y);JO@&6}W?Kk&?n&51kRHpXS^tBQ8~3%}==*mPbef(%f?nUz6>bhWmfs7LfkDI_jNisa8CTeo}O4%&*d`F)c=XW`nSMihLpr zp}X6E-}cbLpqWX?VQxrCl$ni9^B)UYSy}UR;Y@GUn9EDY!RfDBTAs6+sQ<900dbgX zzH+3?{O9*L(XQiC%I_wTVvzQ+ftb}3$CP| zrQF=y(9nP2x8Cd(Tpi8+sX(CLg+f^8q&o)xJ`Wez-=QI;I4(e3 z$8B$W<&CZkH2}XLrMNrDV!=V4nVFeVjv?ykka;vnK2Y|YVp5Q)Q3yg{u(dNc_qAh$ zB2JScJTlCxl>E=31N@_Pq%}04-a>+cy7`a0TSGAX~C#db}Ia6Ns>#KA!?fb{HD zmkHHIoqDB4XJ_Yp>B;^P`j56kxpU!9GiMW%AfbW9GAD>?RZMM6>8c5X&jjx)ibs>*YehA3k)cz0Jt{-YTBV?QB@&GFih@ zH@%gVz!DRmPwlon!@b?jey}}jxc%rJ2ea7UT|6fY;)}I|mRjS^G9$#(^9b|c&Ygj` z3#0i)w!i(ZbX(ktr-+CvfKkzAF)V9%t7b<}9M^i)>B}nDsj~CX3vh8&G>WzE|B4_x z=hpOrh26hbpjGuO2 z=ZgHOrUu>gu+u6jB{MGfs`G-4euHMN({q`etn@NGS%vQ0%1XsB#h60*a>I&B9qE={ z7Nt13R3T)={Yt9s;JmVYeY&ogn0Yrm;c}0iLEjTU*NJ?rRFMIqvH~{D&DLH`&Y2y; zKLhFsc-%J9sgq5OySmkIkoGL?urr*!k)d3*p>{b<^g}hF@(flE)z65_Vm*{7t(v3~ z8IDhFEI%SGB_$If8>ZI#J}&Mv1)P^F5k@-f(W;_$b&!RHOP$$BRzp5a4e3ZJrVV{D zZgJ}*Yf|-yBk2>$d5sD;yW?w*+0j0^s$#@~t|Y~$mKKzZ7Ah2?5*=NpV~fLb!wNpX z@ohmb->ZBAMpEL}VCF5ez^}H136tyo75vcJ7=fXeDatPmFy)Y)koS7xSf^m66|vyP zNbRw{c|c6XH%DVwXV-9QO-jY@)b{yt-oLYyrKKgj>0HNK$LslF^)uYU4kk5uc9TPm zn`79Ba#eKnUFbjIx1chfk_(LTr7s4MDv&Z}#ucrUg!7RRaLKP^vKSfo#%Ej_l|Jiw zxguQS@xtRPt@n!&a%pZ|X>mVcGO&^0iqO31odk%ZUhUyJB5!m?%QI=XUR*-F!kT!p zzrzacnkoL|=}lR~QMK({b8gLQmUy@Lr**F3%q%Pp#7yj-N1}ba;p&>2299X%F+=|z zZS%Bme{R&vvD;Ks8-6Hd4ULiaxHl{9XAKO_o9>ilWM&56BKJaB4z+&&J`Kqb_!0Y} zq>!gzXAEw_K|#qZW}EimDLSY2_&5xSj2Yx$)c^1yIH`x8as7vl1|qj~;)3^WTp?J( zrQ78^Hkw200>uMhpA_dgo)2}Ts49>=QJ}OB8ZLTmwz|!ZWQ>fvm|_uQ1}D4e4_!nBJ8gIhh%k${3Q?%q@h>aCe?QL?VC>YE zxpU{&{=Th-F3gLBY^G9?lb-iVfTjkJEC`$&7-hJ*zA;>7^z`UP8rP2L;b0%*OsxJ1Q^pD^Q= z=m<=Lq>$&_ z-v{^KR!DM9L1Sb@RcEk6Ie}YdN8bBw)%XK6!x(p(r^&IQKh-iFt|hGof1v8w$B&UQ zI$wC0nM(x}-{u$QehQ0}3$?GeD9+BVY#ChZS5aLHrk~J zvBygPV^5)lPeb|z5TqjsYBeXF9=EWyRebh-Nu2Q~rX%y`58ekR85%%N*Cz+5nU2v0 z9;%T1q9RU#j*3CHB((?$Mh)5FueVs^Q^Mrsk|beUw31KCyI@q@?7C__vh+wKGLVA2 zB6?wRZX-rb#Zk5#!U%=DNH#_8Yb0eY2{2DsO7t>!))*t$c%d$411Kw~@%3YY1Oq6f zVtwgfl|VW+jvE%Np?}si^rgZY^Y-oADay`{j{FYhBP;zt)dmg8Fpea+%zWE2!kBtu)%!bd;+a*a1eN95lYXu@e&woUa%dJ;OxO_U2XvWG2z$l-3kQV` zSZs_GKostEMy#{w=pl)|ef#$7*RMBk-mHb5fmfe{>uUNq=E6&K`@* z-=)S8F#FlttNHhI0u0ERn3xJR3wq3kXg)N292F-Xd$2WG1+TByJ2nHcN)>1P-02M$ z1uJRziP|11Z{lmrcz^%b*z?bD_l3oRKED{axg%!8T(oPfobPC@JbiIpJH=;zLJ70a zqS$!6@$ATp^qC=h@vQdpfR)JI8&+>!Sn+B|OX5W2AQY<&dur>jQG1Dd#>`cNL%MqB z&Bdl-=?5V`4V2FeXR-gg=j~!qK0d8v2Tea61|v(A1`T-J!t{Uu>0)aWf!5t^)rS_C zeNTS@LB+-}pKA>N(@($qm=VP$r}%t|by1Xm3S_y)t+hCrB0g?bua9cT%wM)y>AYD7 zw{+d-Yu8xS*<-`)j{nW`jQ}6S-OnAK9Z(P=EnBSE3k3vB>A9ok-R^e_)8^HkgTQ?A82NLe-ERvxW4)4ZiM+He}+FXwEwewkj2R$ACe=lI?=`T>FOu5^wOM$p2JTt4}`q2 zHp`z19tktDv%?DuD|j^uZz+rsGj-;fYJw(+@+m9mfTH~L_!YCPU)XUZ!oK&ATCQ7S zAqQ_Rx~euWKWeey$Jp4}v)Rgpe;v~BAl+v&k{M$w4wl$=+8<*pSp1{vBOGJvhZkQy zn#J7f1hqEpajk97Sz)zvzdt8ne+E9}fT5!c5^ayu{y+VU@@vFfrVGMm$CmANX*Z~{ z(eZ4mv#i#rA8y#e-kO(cZLsBJSe`cL7yO$G7?R3Vncrd`m~gZ$eBmjCgnM%>6hC~- z$`G|>j-Al&#c`<|i?4;xM$PAE9oyq9N`e!PnqQBBKbchwWya9W;)F3{2={yt`VW!= zoi<*{=)K>1#*GuuG(?~goNc{PkpUI5GWV#dx-k85K$@@`GAisng!{QTyn@|*%-(ak z(E3WZYeu{HYx7R-EnF7E{hZkOUg8+d+%lb_-o6Z;Z)b_O?4T@uMo0R3(dysA7zr#^tZfA|7h#Z1p#*+acGEg~Yf2h4%d7IJiPxal;ITv? z5FC?ZVqyLY&e{NgcjgaD@&mYd74NtHl~%P4A&(8=Nx-ck>&wVmmm2mk@efmhy?hev$qC zeb5f0939bgrlzJyN`MhkhI9+wHwiyT(WQ*jw`Qn1++kCy7?@!np5guJ=JnoHtL;K6 zV09&#{>1n3J0Y*X+Aztb4i(%yOveFP+lPc0iBsstf&fQGCVswyZwzniV@^@O1KacQ+|ZmU<1#LK@+k(U!6lQ_!7xQ|lN5)b&>)=o1 zM23flM@5OAI_DQqXu>NKBZD8UixZm#`#l+O2P!{c+sYG)#1q=uzC72IXSU z(PFHUJ}stm(2hJ$177c)dmWtbOUNU^`v64u`|n%1yY@%uii`dew+3bIS~^*MOUrT-G2)f3gR=J-hv{KWlon zZQs;tq*!p6KHjgXsUfgMcJ)Ack^IcKEJa>f5%1b-Ab*!DBSZWs@L_nwiPf23R2`wW z)%&N?u5D}U>)_5!S{O|xn+m!pyI$2UDy)yd!@L>t&l~1MkyP7qeHN9owJln^j@ti{ zzi_&GSKK((2;cTLU7we?~9TYf4Ps{>1FLNN_0-{ zt+TSF+B-%!?Ohg^Sh)R(MB_}ve}CqDWaB+NGIAs-_Qu)tH$LupMcpQO*A9%Y`xm>U zU@*74d_860tqAv5LuaJ)hpE zN;vN}AN2jN(-k?9ZA=4|?LQL*t06jC0zJ~_msrZjDcDq9?#AccE}8l~W7gJONiG!I zL-Je^3O#q+F2t2=(f{@KUe``{U`K)RNHjAmtF3L2wYTLn&1jTXjk)=aqlB`uG7!w9 zWYpNJ-)SAkp;f16d2`W#rv2b%ft9L>M9tXTcHfL%P`r$z6KaNnB#b{iUy(km)IGrj z*+inG7kmHSH=kvht-vK#z|KTRhj`v|gSbP_lJwa1=_fiytgyW`pEpaGw}%NL6^F;h zsw#8UE(~{V(C>UC*<54_RA2ZAf)Ae~>GRns7YK{Qbg%XgW_8c{Uj#OI6FaNu+P#eO zLo?-c2xbXT8<3-<9G@8-LLv=Bt`)#wi%^JxBU~ZHea15{FE5{Ybqu}@8YUVV(rl^^ zlW1m5o2hEqYzgt7O-DWUcd6YA;{+K&5cBVaof`Cbov|Ni)3Thwlf58UheH}h>D@rkLl5MGGa z2OAT+i?NERa&sk9(~;0Sw4iwqIXS%T;+1Vdv_TEb&LGxc^~?h`qu)RDTG+0uM_cx-H} zF6BYPw{LF-G9Pq))`~9oVZ4*`J4u4gl z%c!ZLQPse6ovp4 z<5L?2)lC}u>YV&A9xj7WbB$msZ<7X$*(Q!{Y@aQ7$jHb%o3<{7!Jcw(lp!d&X-vT` z#V4k@b@Qe*PcXtwB;kI^;`C>$z|)7U+$?C}85Seov;8sFj;w=c={{wcys4?F;o;$% z?DZuPJP-X(9Rb9E5NLIE`7RRI_+R+hRzl!u+z5oQH#V**-De4A18=W$-+oNTV$SKl zy1IJrnPOOHt0OrcX+yk@Nb#}ZT zD@<>T4P!1=p1CXtb=!@CpnU~9LPh$Kh{#r1H=AR`EjML@ks)Q+{uR{+0uFNlJ!YWTK?Icb z^;xOcr|aCytK(RnI?5Vm?_w~Z(cIH$j`6!VXu2qJ^w>m<>DX`@cYF%{hkYuyb^Pi0 z;~(Er`=CvGZz$!j+3PPbnL_fkEHnFMmGEyp_?(zn<8ws7|H)y2a15e(?&Ln%5~vmy z7N#Qz&v)N80Jm-sM2)HGX0+Lj8#i)N-2i)%id~wj@zXyYIQNkvLq(G&KIh}IhNt?k zDB3%&dWMIeW?l9{DL%fF4>9|8|NXgMZM*Yqsg;nY?ri*xuM!RaBYL5|7=NFqEqDdC zuV&k}O7DEg(r{FHvw9Z$G$WF2g46%v?7*~16$|y+U!%KYI|`~{-iL<6`6d|K(iH9x z|MIi1s);k@S*IrQwf$dQ)qXD_ux*~Be$Y(@Nni8z@|Lu(3QEMtMh1_*e<=83vYYOph_z}GE*a}UE zLdWG>Qe_d5lq~K(-S4iN^{b2E0cdY+v?v*a$H=cBVm4S*HI>n$sjgY9Tcya~adooN z_e8SkD1x*~tH{uI-_@F#T-48JG)=fbvuMzam_}&t>|oZ=sf#WzPXaKmel57m_NWTW zmlx*)0|O6zPi197J=;R}M0{g<%yxTI1;^lqa9?%UL=v}kY^=BY_RQJbyKB0YcCk8N zcIj>fe|=%xachO$a0SW?DPm$}wJv=YLInNcmgRjAWVX}VDj{Y3nJQeF`i<-7rtDLt zT;CNmoN+on)ccCO2%@*CE^T4ZzpM5Czr>DMrX8OyBT*fb5v*Pt2buWT=eWFEvS=z6 z`N*g=9}7%YW*^`-knp5 z$jSXYciU`8&eXsEU=;gcetnzLjz!yOz2WC5=#q3-^sLrha~uPCd_DVn`)tn&lH`n< zZqA&4b5)MukUM48oplro!6Qc!Z2sD{?Q)%=VLV|76>@2|o&|EfQgQ`~Hcbi#^U1d*SHV}S9sIT6900F?JXjMogpRAZt+aA>t@^XuJmT5_g>yOLa(;Q8TvOw9XManEJ;`roa$ z%RQ%$3C+qa2Vt`Gv7TroRHs}`Q6w+7+GDv_A9Nz1>AaZx9#!G~@)I?uj>r}$IgEk$ z?%M;#TT@j!8=rd2dU|^isKN#>H+Q_<1G25|p6#*OZe!BRUTH<>B%C?Rf`n#J>&J6E zT-#oL2R$9LtSUgX{q+TiG8$0}7TTNjzJonr*Ap005fc+DCX?b$7QSnq#;<=Q82IKx zLnoemE4diIIlgHWH`Q^KtCk>~;MNPRB88FSnP9ohW5W*>3HbzWKjlsrzt%&sTh=x= z$gZ2~lUA&|PAa46wwo?~RXZB1sp46dXJuv0`f&QAD%1pw&Gia&ExB22#q%M>&rDot zCh`(8pw60M(g3RWpkxM^czMUH5OQziv%xN7h|-CcMf!t{R%?W|i|Po@CSE{Ajs*FDKoPDGF7=%(}&jas2cT z@obH?yPx0g3GGssnNIM zYCHoo`^D)lyZQpdNn(Pb+r;6{0xUF}6$t=EqA?*Tal#k%yYmYRAjNyM!(i9LN0`t| ziKA9pI{QpDO7Jb&R4x3=7H3YepTDc#a1}Os1#fJkP(!yC57-ZUmprqE2YAj05@SLK33_lfMqeM#t~%ZbW?O zJ}3-4r>d9o>}&gYkCg3HIewAS;;}l*hsKON zH8TN9$THR97$pP`K^+Se75i$jM%6~{_3L59A2DHJ8)Lj&TtA*zKB~i({n$r5eZmZA zw6S@BPr(0>#q7(V3(Wh{PzrcYt3gTA4unWK4@S{48To>`Qd|ydT9Q@Okdom3ru&Tl z$>u?E^}K3g>d9zb$J|^uTb&l}ZN}p-3etN-f=Wk}{2XThVh(0!+3{V};c}=9tIx#P z_F*>#7we4LLhoQMzBgaFwzjsO$~@8FUB&aJd?M@ZNRz++a>o3;p<>T;Q`1X+xpr34 z5_Pp{xq>&A_dv5R{P-qV@Bq6ae=MGDMsdsWVP_K+Zo+f~E+zJ-fORWksG~zF2w9;- zpp_~R>Md>gta2q@Y$EWM+sJWyHUw|GUUf6>Mu9$S$-z-ed?8WJ&vSVsH&XrE&o}uk zx(kiO5Be{L)s)W9Pd)&lCYjfMb-HeBIIlCm_o*avo$*Fire=ecC?hK%KH{Lz2^$_p zAxm!dyb-w<%mT*=V#jn}QhdIMCUV8=K<}5B2m{Us6}pN#(nb*Ja55%#ap4wTMB9^& zO_cWv$h)?YBp7Cll)$teP&te+tGKKv&o=swU`TrAzkPeWvvZ@Yr9{UTY#i1|Dnm_8 zJH*7@d$B|`HbVN=3mpm=C3?1|Q;xCuIC>$W4NNy%Id5bGRKpOG(B$8=&R?~^PuRO! zTkEv|?+`yhC&TlUM@Q+(in&?xFZ<$vhc)}6vliDX?5A|Kw2qtJ6?2pmFOoq{v9M@Q zNfM5t$XZ3}HesVz4Bd%h6ZZm%HXy&kZEf|*u<@=XJfSBVVv{UbBI0+8`)|f!44#;- zXRLaM#sFWLL*OY323>oNrT3yxvRbM=pQB2hHM6sVm%NUlq*DN@JEa)Yg#)p3o%&=S zb#GF%w#w;#39MCjz1ljZ{<9l-inqpNdV2cbipG2O0l+Gg79IU7g_^@8RP$*4cHSG` z^LB_^-DbUWpXL>FHM1qt1Oow|!{0s0yn=z47qx5ovw}@BKysV)JrF*6Z->=8Vp%dV zS4w&A2RtSF3M2(v)3JB&-W`R{_80Da6=S52UESxM8Md?VINedxzp1t3ctM#c@>oRC zssgE|T0!76T-UOLz5+;Z26X+) zRw@$*5(3A$36+*mNeKyllPH`Ox2m6(g(PQC?@3;@zu#1#r%hFUB}|?bF=W7#BLD zIJx!Zzlgl8_MsNNXbtZZI+@yKuYdF*=goH=ny2;?7!r(sYt3>>Y7B==etxD@gwXbs zb2t$-s?=DzJbq+EqeaU2_3H)mD$svi!zXgl7XUF^R5=bJF0LgI!C50jpT+zqzFsyT zIu02uXDV4_Rtn-5VCNrgofoGwHGQwxssCEYiXHD{%}f~gLR^prNiwkv(fI2q7xN_B zMkPJi>n3+ICdBW-OBM(dsPocD{5)LfMF(syE%`yOM!EnY0@%Q?@NiaA`Mf~yM$~f+ zLc$1$wCqPYl(l0XZ&&X*P$nwYU%S?M zx%c?ki$qI^y|+leZq(HcRCl!;MO(MsP%;CLmhgoc%H->U*ZC`UYX%4RVU47g5Dq5z z@%hQa#Rc!eFC3C0uYu>vJc?$0v}nlg24hW7a8QMt$G674_M(xKPmi9P754}jORpr;<6A4wa^cTsz zxoMklBT%9oTLk^QPnwWcRsF;8SgFyr^MBH81Xt4zAR_yglRMj^n~F8R61-E>T`nls za@Xs{rj+=8y;`0b{SlqHxKp>ibg(iYu?p2MP@33`#_Q%6^X|M(jjWOuvZs#D%uw&_ zsoFnkn%fUohjWl%B8s-bUbiDcJxwp)to)){r;U3%aGEqZ;hwhE97P;Od|QLR28=SV z0l1R%u?LrE;DYSg)29}+d39l-p`X9Hk$m$R{{HZ69WTZp5<2;cAW;V zo{orQFYHG2moN7z-YNpjxu%TDpb_>$ZMYpNS7P-T+x!lHNn=)DzkdCB&)NB63}eWC zHiOzm&)7c=%e3fc@=*_HZ)BrWkYLD#}|` z$sG68ixkL3DhW>~l3*x(T#xU^1>xTLah8>??|JkyKV6hXII!s$ZDuN*ei!K2XY{X% z)bL}-SWyn&F{3N$1xCkv)YPoFxAPbfn%OH8<>odvg*|4m?-Q&kkA8MPGjy9YZAB>4 z4gHa~$1EqT-BMkPbNnyP%V^MtA_MtGsjmneFrsXpLeSmP=55ChG+RX2qMfLA0eEM_oF zlf@bBrJxHWlc~N}g5qgpC0wc`C%~kkqc=Q|eAkVM@ui}pvIw1_vnZR6kSXQ`D$x&= zTHq*Cbj@zPhM!+x9cRa1{1UeF}!jpS-Q%5+G@NL(4kb z+q>+hdsFLx#!#=@Fld5W;3#q==znoE%hM}HtuL+99Ah6}R>pBqJ=|;Fo02zY78od? zBXYE;mSy~hSPP(i;p#C<98cXq`46(2(cYTJ%6l@fdUDe(edASIM+XrVpHW|0VQ_FT z$huO}()*i}IYn40@4PJejSZP>BxSwGqy6YuHflEpTmPKzRSksTm;m#gVkhmBBV6eW z89?qoI0|^v|9DKLSdUjoz3g(miKqN}Ur3h+(6Q(EAVUO+Uc7h#%2OW_#k`NGEPyX*z-t+!Lvj``~!Lqi>!=I(7xvA2xy z@axI{13sFn2KFU1{bDD?yy>S_N@A*^-Zuehcy;bQslB?*4cQw5Gffu75nalN*eh)~L!bqonO^Z7U9ZJnS)5`c5{s zmN}!_LV~;9=>%FG^eseUL_k{-snK+7J#@TZf|8hFSa#9ZPd)AW#J0H25Tab+9g4IG z=Vtj>Rc+SLp0&%$hDkV&wV!mv?A!YP7_0k#Jrk`|hHQxaD28unGx*9AAD zM2dSy8dw`7Y)qx~E^nsILR`w+JH|>yW}_~ouI|&5e84gRenj<(Tv;rYt}YXzsF&FY zp~5$G$+Vn?w7(so-yqVtQUI(FGcK;fgwz5qKr|aJLGhUUxa|pyx}cZCJS(5D!7P^x z@G1R>VS=6dPFGF*mmVOmy7gZK)qi(H_+n#ygu|_mm?{D{j%oNDUarox3$w_}eX7e3 zR1cuIZzssxbu+6ko+lJq541j;Tce4GkaM#j7dPHC4X<6qOrb-ZPX<>xd?-cxit6ZR1m5sJ)D^X1(J zCee$Mo==$_6!nb&b0dVs z#rYX1QMLZ?Ndb7}BJ6X92Y$h44=2=|&AH%|4D=N|eG?W`ntG}RG;0jFh zPHl`oa9#g+ziB=T{{|#kSQx=30dbc6W3e^V;<0g^_VPo5-n<*gV(vKIQx9SWl*Klg z)%HCrLD~TUme$?$w`B?c<^p~-nDRbvd(6XAnM!+=JR`G*OwZw~$uxssCSo|Ksx8F4wM zjRAD&Y1D#lx5znO9fihOCTUppXZ-y66NN(k{_S9U3KZO_KY6h?B=Gc@)-x0I$1Z`ql!#o^xk*s%`+xonI`F=`SFZf->M^phsh!~qMgrNu=VMs=}HIeGc= zva(M^y)O=HJZ^)#=s?#L>&quafO8n{bEQ(H8FRu}Qo%gH!NCC>1$-9$k8sZ>fGP@f zVH4v*4S2+4%10VIBH z?L@aN=xNsCfG?H%rQ4be!m#Jmqd|i)bZ|0G^ zj@MKTDY!2NRQXQ|DPv!6Ol)W;$$aZQV({z=nid>n$cXe#{oP%b5I?kx z!>d=Xyu50!1{9kNWhYRe_}BUN=aCDtC@bvFnkopLc(NCb8>htZ;x zWGT!3`5Tt0)W8@uh;L3Hz3Cd|H03D;THE*=M=jq*@>BdD9kE#DGEz>YJ$U{IC|DdEF;`S^uBZJmo5)Sv=7UqY7<7+h zynJx2TbnQ%8LC+^NS~DITBuRxwx7!K(h{=bbY@E+LG|j2Kn2sgc1M*|t9%1orz`S} zqq?t^(sQl@ie&{R>eWpKK0#VROsr-0;{3oo%~MLuTwFpTS#sR)pHKhxn$?%@+D6Qh zT~3n(G`j&6s1vYPl9He&!NUE|tlz$!&q^?0YC3u7yEkCpc$8gOSXfr(G+y$?|8(J@ zecdJx|9e)}Dw_!oFa`vK(+S?sIvVBN^*|OZfWQr^9eypR`_H^R(XVrx2HF5HP=Fhv zBzm@2@3|`iB*wix7fbpAft|K{qQ@(lN4v}2rHd_r_}%N5hWdB-G!HnYiPA@b^F0sd+YxJp%$n87|k z)E!@5e&fkjtoUFgwIFP~0?0+Yvp#AlnWI%;-{*O73(OtW&4)3w0nT+GQyRedGr+;H z0>QX47!W1hR){noOc&4^CBrulHYX4IC5XG!itDxn0QGAHluOtvx)1pw5B;S1 z3yEL3q?Y>Y0Nz9zgN+Pa6Q<&F@<1t=_1RSbptS<8EVraYncnMQi!}-uUG7GI1PPOo zrUu@U*N){$-UQmOqKwQBBog>xxhWz*Sy74nC0KzN85^5*>So30F$T#3S^40yRa*Zd z1PQY~Iy#CH!i2s8{a*!Hj9lVXoMyFi^=1y90X#c*qAj}UQPesU8-Ava-Xi-S!`kBd z|Hzx~s|vtiobpOk7@j7HGa_@-%=!*aND7H6eC$66hLDSok;Fa`V3PKL2x0 zoAHv%d$J`DoZ{(VX}PUOWrWuo4rXFyK(10$RMgQy0XjD17WtF*GLUV1lep!>v;o3G zl~3UpL(}(Ag3Zg?5{-?U#7ADdir`u4<43 z{)G*(@XLG=5>bc0+>=}d6x=|3;`4pDzbl@anwk;-#)4bb#vmvl2A)|bhqFaRkA;Lz z!40=EzI_1t3K01hp9SLT+kghZ-gN3TmIV?q5JP=7N;}2H#j_Ptj|b)1^<76a5)8an z=@RrZQq$>%hH{i{$?;?z?sK7vD*wR0EhR`u?G>_J_2ocVO1h0+NGQtbeDqghYV!HhRM zE9>U@$+nV`Qq;$f+NEzlSYOLaWyHaW#KC0&pa0SjG)5BQ;&B(BiDsSqgfDepFiQva z;p7DiE-*VNH(#E{URGJzAR=HNTuvUX^P;uI_x=0#I)&F) zIoW{f0?H#W(O$**I?Z5o1xLu-eh~G<|6?6H!KZqi@K|8Epl?`K-7uI?&oNG zi#8-fTa1(e>`MODUX(p!Vs5^?xcJ}?XYzn5Zc7#dT`)>oqxfrV6SQdr&Bb)BYplI7 zRu~6|I%{MOa5&vaB!O_~OlJkmHMifwdoe zQR5cUS%A0iGQot?Dx&Ui9!UCmwQZFAKmJ{T$?hs(nDRx3L$2V=-O1DH3eE=8drmBu zo?_LXF+FnO3HQp*{?qO|Wq!n@BwM;!yKV-OBO=Gq!{cz$z9C;@6$i&JY>fn`Sr(pv3ie8E`Z$=(n<5E}Vy#&6@|{8sw- z@uNDZTLw?L3xRhVbb#%jwQvHy@6-oC0c9qX=C#(<;I$7%C5>b(WUR?ze$9gTA1kK1i(Fhu?4la(~ZqKIBRK*Pw^T$&Y;P_7!VkY z14d~Bx;kPMjuuaH1R){LSHfFzxHuMMP1V*#hTcc$1d#ItadGrN+UOM$p=^`DRA$|!|Crb z(KWKqz`?OdU8Z{$Xf+i(fHeoAaWX4#o`K@iXJuvW@BGUX)q@}9)7kk)jTZ~A8a06I zjFKM7|26L#!i&>=d@0=xhp~Q=+S(K6XD8Oy)~1)kYarQ!7%SqA|Gok820G}*J(E;# z><0hAl=DN6xho?#mVPF3T8|c*@ivbb_#)#N0R`xa2lng^d*k6-;58}MD9W@M$=8qw zzV$IGstP!$PBLxZ7#kZ$nO#}0YC78l3UOA6$9F;>=}K=|<;`%uY1P4SOT4FdY& z>L9x5;*11IxyakV^Nl)VfI!R10!8jlH?hWK$CIqD)^GcNJJajieI^-#<_7Ks;HrBx0+mY9@w=i;GJSBtD>qk7%2x(zVpq)&f^yB+ayk^CW;pp!xt$ zBF}noq0jHR77kx9eQUYR!areC39$Z;bpd(rKN?zs4y5`1)~d`_VtSMWxSYWQBkTp zcg_!*gjt#bw(Bm~FV40p32<(I1v9lew<`6U2W3hv0dJv-Bp2~HwD&*Jolwq#!G5L+ z9)JP}5Y957m`##7%zLTwDrHEPi2V=017Q%9&{&@+@jl*|HBMji%58N~hsDhRkysOw?jewwoZ4 zu{9v!8fsRf>LljW_-FfIe|Q8oN_sVDg$%KubiOW zFN^cjqcX?n?;K$18sm&b4(G0+bI)bI$)Ws#>I?1;+$PGv;}%9=cOUiC=x<6+4(0$4gX!knsOAx}USFQZMYQ}4QAxgB^wK*}*8V;Q6Fudgy==?Az zQFlD6v%f^joz>=R#6l$iCX>z@tR4YdA8hbh76aq1EM0el=-}=pz%`J3UyRGb$cQWe z$QbA4Lm|;?)?I^WFgYjYcYZ!R+~Qww&VKo{-frgRP~D%U-qP0&pd3=S>$HHW_3ipw{M0vInrA!*4k~ zQ#ee+M$I?xv$Eb)pEj0ykG zV(y><*gY+{WGP_BgCddV?GIbVxY+I;bN2ErfSK&!wB#>ev~+ax!P?>Y{w}#3rAzbk zilk~2`4yBmrgv61KK@1eVdB|_Gkc+SU9Snxw0EC=aRj0PcMXgJe1_%1Qr}IojAP5E zIz61qCO37;g_03fI`2C&O(6OC_6`Rxk7!NElut!{er@~ia8Ut~LrjJpH z!ybV!(8uP$LtY0CD29s>at zG;{$iRj=dhr3Ev6_w;V7=-Fy-Ow1s}(0lhgv1nJ{Y?JHyrL?mev=G(Z+uQYXY6Io8 zpVU#x4~E(baB!|juK|$FsLDUsdxL<#La31@)d7uiq) zSdHB@6IhYJmp6b`060GVOL}zu#)i$uf>974j)NL` zZNP6UPrXIx7$JiMD;#t`$F6>-V|6Hp_@Rgo*oUZlz^<{|AhF>4PC}fmX7O&GC--{P za5)I`PnSM`{2+|prj9tenmI$g@o!iJ)7GOyhD(Z%zDMvRv)YdL1N8B0x~_bydRJ+y z2VCC42IqxxTFmSOu)aI7fB^wKeEjar4ay%uLKIZ@alUePb%^JyuQBAq;eANtpj4&R z)Qx=beM>R=a4t?+JFa zEGmWnQASCQcpe*$>|-<{#ggLKEO84#5ivN5Y=6rSA~VY;{`2P&m(@Xlq%V`ahM#=C zec1$n4?`q4E{%YFE|)03N;+vM**LRx+0=shuNz1CnK5uO0xjuxn$4<_rB!-2wOUO$ zw2L$ka%9R$rL*=m^mw{3n%$1}se6A%{rQBP7GCd~k8* z{(&YWB=?vd)ZH#SBeYqh90xty5tE^R?agnyJYjD5MPO7v@pOeJb}RhqNoCTaeB--2 z&kWIr^9u6vV1U&_S4t|_#%1xa;&mNq$@uwy&QNX@_|ybl61(70EA@wB`QN>APzRti zBjX7!&WaqUzapSR0JcjeK-9b~ncS2+C& zLU>4lDZj}I(x_|erAcDOrRbhsC^eIxfmhkE1ZH31TBY;j#!+WGoe#Hb*V%A!91f3` z)0cZwnGKs%(TO~^s7q{k1E4*ynJFes0^Zp zAR#m$sN4*>fWI{H9MDKJfN?6H0AF3>gJjH+d6-0ZSOt{4iz6~~x;9&Q@r2IoZ#eHP z6~AYhbDoPt8s*))PlO%M-uy==9kFT8l-vMdeHQH2r_fO4Mx#=#iW_x-n#~-EuY0SR z{||d#9ad%9^@}=+31fkPz$gNeTe`ud5v3bMI;9(Qun_6ow9?&OBGTP#HX+?0-Eh_h zo!4>Vo9{jEcU|Y4>pcIsF9Y{e_r2Dy7HW5rnqE)Dj1@>R% zQdUU`iQSDRr&`%LxM1|+PJ=J-LtGop)?rBpY?HxkOmvj}#*BU6YU%TsihBxs(N`&& z=n#lfD5v-50hmtp5j(v7LnLSPw$?N~iqzwTNn!j{x77!L?ii7|n8v zfYTOwAY=ivXg(l;mXl6k5zHbxcJswui2K;bo;IezGXaRA$cjJ=Fey=o$)z1nkeJmo zC_Hei+MBZ~RV=a37ZvH_gU1E>4Kr1b3x17!d-gVS0Jxzy3WyzC@bGJFV?>eflPNhl zH_Na|!Kodf?|hWh$<)Y$q!Bgp<;$aY?=Up$L>$hAG$>&$QPKE2>%;2W*VwEE#>1Po zHpcyW+yyd0y#3K;sYJfWI$nljYp5=ji7B^eXVor4q%DaY>qC>&X!g%Z+tN><_ss}5 zgW_dx6yfCMaBXcYBb+RnhC_ywgrvk~NeeIo2>>J3=K4Z20n(6o?yZI!@Ln7?bg1by zZd@9%T7e>Zug_`#lZ2GVDlZKp8@+*P%L#G?#gQ2&=pCmax&!`>wx(u2Z~FVVxV==w zXF-NwGcz+lEr?tC56d|2I&N6OlK?J`+1`ASt3a)jt}m6hFtiX5Bmz|Jqm@}fPQJ$X z1s~N&Oif)dS0E21d!zJhU+`>?#38Kh`$`3jKkZRp&3w3{bYyF7e!eZ%gB8;f6sDHv zXF2WdCeOMYy7>Xz0akPz#7}hae2v?mKmW<_(ixu`bF^V@1ClAWBD*FtDtc;tnq(F8 z)s@5n&IJ?wh}_D{Gek<^>`k-6s_n0~C^F zy8KUKeYSc#sMnoc+wleIb_*Y1^;VoTv_a0sl49O=ug$sxAXrDRNwl!6v5regECZx? z5A;o@7hEtejqo9nU!gH+`xVbsbFMcZ>M#>tO<1i=OicLpw#_o74Xp%4MD(lbsGC$k zfS$RhmC3=w<51;J{J6^9!qBPg44al*(jF??&RDbK} z?MdZB3C%gD?C9=YfWx@R<{#`dJ$&I#95`1MH{q*Q=K;kTbP5=_AtPfE8UYj4XBTob z;x8u#_(QD+PSR^squUD}PWI3$1NK0n>QZ&ttRC!2*BqfrZwTYz0!B0|%N(3dpnWSc z+qN))u8z}qHCMljUj7aUGBh+s$UL}P8`0|3(>Z(OK_<%Art^p0xw3Wx{QSfK&)QyJ zNO9BLNu^cZoD@Oq*r8e{N_HIW#`|JJtik{gbv`{y@Ir5El^D0tad|dZ1%Un5-5|dD zqJ@`y%X57+R;v9Yk10}AOBYb%D)u9Te1(mT1(Tb(12%i`omh~fn1{o%{(54=>MOqb z?e$2j#ig~v9Q)ah037rol&_w^tG761IE{rr!*j3}J7MO#3ntk=78E@;f~BD{sVc?x z8;fY8La{?w1vyZ*Y)F&B;!i{YyZ54c+6&0Uo`5^^;kVp)0r8h4RLABjys!;MUy$f zS}Nl`64}A&F8YT=_VG9qo9RCg5_21-O=qxfj+^W@TG6Rd<&>7}mr)pQ08>uQ`PiRv zOc(!1Am@lrsrrotn0n3x#8>l^WBxC{i(H5;9Y^=?v&)#GAw1%@l)A`&@F~I!G`GN& z2|&#$1;xoHwOq8{oaP_U>CqOg%=naN-xWi8dI|a?AD+FRFHtPe7S9oljam+8HPi#& z@S+zi?^b~80Daad2&)+oXy#DE5wGUY8lS*&6f3DwwHfsT7A3G@3=ECX#aIk}d;!HR zJsn+geEcLTbNq9eGcafr8-ot8)SS6=Bch~)7uu2%HK6FBKG+Bba<4}})dBD)SZXNr z?SKkAf9{-Cec+Y0MY>HW4{G&*krL+^^`$H>ZT^M@B&HN3phWft_WG7a1C}<|#6bj+ z5O>`cfFp|gA)l3kyu7Y7ojGyBYhWXVZw9q{jP;;CviD1UxPj|h@m{Q(cpp(WtyHdA z6_+(ZQHzB4;ZG)ipM%k_UNR@Z1&D}b{3G2qA~qwM>+IH5#9alfo*z9g8_&beb?er% znd3EVIe1P~D4D0bzD?#@VRF#a6hmwsroZT_rXA0<32k2Ngc3 zZ~Z8Pxg5g$aIftZ-GoZRco1|Z({pw*~R@igdPA2N&gBJ}y-3|s_p7DUsjIXafiEQx~aLH;qv;y_XvO=?kVqAUU>i2?pGs1=o< z&=FLy_iNwxK`ReVDoQMQD>G6V=ckNAFCPZ97x)B!;Zg&&uJ>X8Omd(Oo{70{;a$8a zM68N)Bm^$ktj!yH8(5+GIcQ!H0B$<~k2Byjy#&2btoTw%j+~N-0aXYz#${SGV6Z_P z!@Y0T$S+V;`RP-tQobpyt|zgcT4G+mi5paE@s**T)z6<-)*T}wD+dh%`6WF6ksi@i z4G1AqL0V6|dj+me+Vc`j1;DXtsspAc;p46ROT3&ifYN}T=yl5JNi+~*QrGk|QCY5% zcytQPM!k6eRLT%4S)w!>Y_D%=N%(NWO$#n=2Gm}hXQdspzUSmvf_*E64gw{Z;}tO= zjYL@h;^s!H&-~4<^YKcM+*q``ISob@04`cfkbc9x*EvWW;Z;(#>a%Dx%XogFqQGiC z48avJxUc&ucUOlBeVHEE5kj6 zSx0s=#G}Qs;!w6AJi#moRct(_lP>Hs4s$023QgMKlsDsV54% zAPVJHPORr_9Vi+D>%JjumW`P*!^6X%kR>}0eMb-Ees%vMKpdhU%(;>W%ZN#D9#x~D zOlJ-NX?K7JJlp%?XRPK&TA7od&U-v`lXW*}sPDaUJ~qTO>8D^8pCdCpp8y*Gi~dA` z4hY0Rpy33;7LNgv4Pvo0ZZ;S_a_n?-*i|km4i1h6e_<~XqTEE3ZPe>kfQ+^=7&M3h z^z`+W6%XH3Q_MFVg{3T>Q2gl|VKFg76YH~X7t#PJ2ganU`VdyU8H*yd>qy};)cBoR z(K^}c6(=`H{L4>+Z57_)OI(&o`dj)b`3YIepMzLvghgC4GA!-4W+_3GeG8;vupyJN zA325f*#%DSQGMWGp%oj6KPhvZ>e}3iIYR?hG(0X4&jFPMJI70Ked&!~bx8s-1@s)A z)UAMGW-;_B6S-=g2}<6Eemp=qhRC=Gavqr}C}L2p5dRny6jViGHv@VFGvy|X-?a&Z z2(vSpO^#5UlF#igMT89Mp8#<3_3}Ckn{P*A;aoxD>?(ic0@z`#S2|?-5N-bRD&xt= zqA!pSMC0-39ZhY`@b1}g24q+)(zxx#c!fPDY`#gh! zwi5uvF$nCPzg<0lX7S8#GL&A~jZMizb={w`pK1bFFkVDn^o_gKXHZ4SMa9G>r$sr;a8S71_tDgqp3&cPTA#tq~noS$c&eV$+oPhLUI(J@}xIYvjxwW?$Hnd{Sy78?+>qk8JE;7P>K-fhj;BQoN2}zbV-=nhfJX zF@}1#g1;`_#l>XmdI9hm+6_T|At5twrKF^`m)pcKp5aH~=v{xTr;YwzUJ#uF5`ht` zl4)GKoKj3K3?MhGs-x3`1aeLVV{Lqt}U`uCf5LLqr4wa2|p@o0QDPGlQ`IfY0wGE-C#i6fyv` z!b%$TEa!e=M*%RCfJqlxC}FfrnN7UYU8w^Aizszvf`wh)2D(W=hQXA543}gE)4e5cb{@vLFZA zU9aL3z9md}nvhxWs>B<;P8uo$p$2{EsU-SMm76N?RUxWs2G*@X_;{H`&-X%F2py1W z@VGjbl^>Q_n-l7(cnWMc2oz9B&n|OMcIAp|jrpHAUrB{^Q_btJKQ~CdDXuZAuwEh{ z0I4}$Sz6j2ah%}&`;H)V0hSWOUIC^ebf|8@cLMfwSqcnV4cK%S3dlVXG2u5dKw#wi zW~Bh#C*(sRlspAK{T!5mtg?k4vtpJ`3#^AJ#j6UsPf(fxEYlrG?Jz2qc(_+~uxY1E zBRR~*;$y?8JF-Ca35iPiIZ#n!VQrUr;S8zBsE~kegn(eMWCE5kj0ezcVB6T-93tj^ z@`PP;QBFl=W3EtDE?FjCrN-d)ZMH5}V5uCZ;$x%kc0>x`>P8*~Ts%^28FE|W;;JoJ z`S?mBB0j@DuavFlcelV|8mJ>})?mM3M!VU=cXT6^-LAh9%5uSDQ53hZSOJs_w)#{| z{RS!tFtl;D9`1~CIbX74S#}R!6*bffrX|VZ!%sgvW(~g2y%2cM)v-VAQ6e5x(2vO{ zdbFTI$LIv${VCOHc|TegpkD@Czo9zx*$@ff#pq+U3i#j|TwFfLs0M6<&I_P(fqN_i zzk=FO4S>R01`1iwN@Ye%jI>rx5i;v|PTRs=!Q2C<-KB6u@p3B=$D?_!ndF$uR{A6g z$iRnv3ss7EbSes}vI7P!X<6@>8iP`>u$}>&a392W>vMf>R#z?`>}L&xqJcL622<(I z&=ir8kuf*V!hZ{c}XOtrOJ9U#RNLc-_&Qnb(jpt1;K&B z+Ub(>$c#=6GCsz;KcqwyH@E!=kJOKq?ni(G)nt40m=ZP+Ww>$P3Lg~ zRuo`fKTeG&ayoJKcmci_@B^Yw69Ro}YPR;`6oao1pa6uapIF;-n}P^Xol6Pw767ihOlEYp_PqqDj4v3ynmb7< z**7epy+2xAzZM2(-_|u-k!MQI^>ev)M=UWZ1cuUWV<*jrE?=Ht;H*#6M#7l~cd+X-b5d#V;;kw$} z^;!Xf!*^|LUPPC9BlG2BVnxG1c@P-Hx!%ZSq?~1q3gJMA@hxSUH6h<&zB7w&hXUR_ zHLp}(L_uKO&%?fl(u*VS^ccw~Dh7mxDoRQwZa=TlfUHkhu=hY;z+^G=Q{1y7o8e}S z@&k=~CE87ugDDc&u|=z!O2G{jZAhddeaXbH5fKq={r2dwG>hpRK)6l|5f|C6^gwQQ zvj*c%o{kV~%P@gJT1p0k;;l@x@ox3H?uY#s{AvsG<9SW`UTGysGoMRP%8-D6!LMR)e&45)r+)>!tIuO38*`*#c z?PcJXd-p!vnJ?aYX=)&E9Asf9Dq4TugO56M&tb(4U{RveFPG1j8|Mw;p0hD(bXCkT z07;O)dMBWDh@#I$z?Pbg)^;$YyLn;Hm5zf%8<%HW&febs(W5~Y*}XYv_V^62Ge+5^ zj8c3*yybrknM>TY2^zOa&OqXCGg9NRm$&zOp#SPOHKv_pM+pklMr&Va@D<3mH|5?p zRn0P=Y%*1{9;s#?eYHB*&`{fBS9Vl8-W^)J==M?&vX2Vz^35E=O4gM=)X&Ff zI7#IwmktXp*aB%!jr-4EuL^bT9d4CAp{Jclobv-udl8D`lUVLI!v*{=Cnd!4o_&PV z|D@}}n*NCa>*1ZrHgUf@IkkKakTSre6*5+q{hWY+K{0R1NeCEFt-D!Yos=XSQ%>Kgmm)IUAwFv;LCB|%yqL+x^+eITLK z38=D6o(BbKfRUOSj%O? z-ZQdKJ#Lo9sc@{~RUdmkST!zxnKXOFu5AHiJBR{MiDHm*u?pZ$YYfa#SV~g z0xXb`3DoQz#-%%9W`LN_M0)U=cpSlsV8cAyp>cV6%NygW5^jb3(jZ}I54Gx#EJ{d9 z;wIO8K4X<%G6d|+;ta}z^OfWFOs35_DD37hVimtR!J@(%Gv3NWKD}6*dI`NWP%0!T zAQIl4c8cFJz~zYFisH#cjn&&#NhudDT&NG{Qw??;4_yPg;9=of8&r5~M!h5byRgJ< zEa7M6B|s|yc{Lw66d@ZO=r;WYP)$BKgcTvX%lx_!YK1$V&UnVj#VJE>Yz_vxzeUv@ zBd`*gr1T}Km}#>L|3T+)Hmyn?}oj*Yfg6iO`b*2vA+swGQGENAW+8^tB$ zsxYOmZA=Pn)lKhi?u5;FE6DqL|Lj<2;!r4n3|9=wR5y;d!?wNq;_VDU{*qdDS;QQN z&4&}t1<7@ZfjmyKwjS5D*>;yZ+y~yy&|geh|59mWA7t|(+eeedKWQk)s&h6VyU#)0 z$z~TV+vYBfrV|+jl6wHKH5t2y>d6@vWOo`b?0@kfeP_kucUDV4 zvv(TA$4y8?axv}%C?4>0k<7sjt=en%Y^M)0o(~G5+`##>cxg(~va+B~Tmf~O6)41@ z6aidv9#J?mbjvx4&|(dwfz*iQ3jC$0r!0C>o6@q%PILL%O@RzM=~ZEZ!oo%CL#Jq{ zsY~D$2CUkw5xD@WsjiL=h>RzPnJ!Ro=mWSPf@pzpAkm2)yqlsVK*0D;b?e540zjKc zh$xm{TW&LpqP3WK&;kwy4(&!scn*_`E&^XZ20iQZ_Si=5rDZL{e#fnBsK%%L6^+0o zYCVP=7kI0~%>WUs6N`1J-eI_xyPd}B(NNip!-^1MLxn}Gjf2CbktI86h1eXL#Nq1&i4dVG5IGnm0!i^fJ6Y}+LBdFAbw$5W)OcN1N zU%YPfMk+OC*&~!A+CwU%a`{cc@bleVhn!>q-;Hb$f$9WdJ;GhPh1W<@W0a?AOVW|W z-giP?!o-)_xHh9N<{Kx~?rpu5l5eWq7S?8?xK`E69Gxn<_U6RKmVCU#2ffakV2|m< zi)p(zsBC&lWoZyz8B*Z#xOZ;@a2UvQ81MvIIO}j{_@4bdJSNvv?SblJKojCPF`1Sd|tdFf2rDwM9!`xRRm z=ZFdhK$}Fr<;mz!&u|{Zcy$mS*@48z!WEpsa~cPhS*VrB4~rC504Hs8SdO zhJ<)Yu5Kn&PU6dqDDk{oqYF23SlxaXqgKwaquwtU>QveMJnH(=8kcL-v-Y&8FbfIc z-mU3X5jUZ$#~w3_Z+CWi4zjKV&IQO7UDY96~kpsTB=DZI?kN3ys%@bluFWa1=qeHV zNln_&nXY=lVpNG*m5S8xdXa{xNBi?HR-Jg)Q-dIte{&@m$eQiuJ5GRPG&VJR`-Hg zrYqszft6_wy6&S`PZ2j>b74iafq-u}|84!EtI2RB!0`9cehN7=v4G5wT1rEitvfCx zv<3U7UPTh5v8?$6XIBP(2w{+x@V~t@cbZ-)59TklkvJ?PGCaD5kTr9LFL8($0gW;4 zFUro!GUzWd4zlHyDRAhs=<0RcY5>`Us1QLEmbFmo#Lt-w)p}bUesu&Knv|#CoU)X9 z8-pt*=Yy8>LYD3{OP{wDTAA7ky;uDB_PLK@G-h?z!a8}bwqG(Y7f{qH%CPKAcgTvB z?NW@sNwMeHqgargmf?o;cIG0vgQrVon|BodSiwYA`#PJ*L|< zCfk6WEe*Lgy(Q)A%pTQ^725*Qt}U=+dBa#mU!VI5*c&uHQ8r!dRu$YyaNGu;{&^mDiC}0Tde|x)ByMhL#_nFJx--ZG#Pxhmp~= zJ%&t= z_!-STu15VuU>kFcR{^(~;xUAK9optVm*_jZi8GuE%1cHh`08Nt1V=S;W*l6>FwNjM z>u-fUxwn6(yj3>LF`%WVH|f8Vc7|`SXt88V3!${`#(DVY(HD!Ry1IAJsF-(U8R`|{ zlp!~yW1_FhNJ=ijPR40hqFKip|HPuwv-0Ls`B`@4=r=4NBX*?Lij_DiNmk$&s@BW+ zMm?4hQ)zVNVz(%9-J1}Jiot88iR0(UL?8P^;?GeVrICzbKk>Mp*`6HLH0Qcm^+4cc z5R!t~)Ao7>V2zyvH?r{kIl3wlXhy@h)=C?-T4!C(SJ7Yz)IF=+JTgo3Oq#8G%#fp- z);cZW(eCQ|Rqo=5_bR*Dc{;`>Zrl1MEw4$uQdJn$x5^S&6J$g0mbmkKkaW;qnr-fp z+*}rt!NOYiXrxoCG2Q_N2w;Axel>$3+hhI*Er;pN_=rG;PHy%%Avv z0*8aQah+K4sF%QAiBaE6fbzEjg;erP`)y7l`^s!iydw=&AO9n|*8yfh3JTl$z=yT? z{BI|cXs#dn>8&^6sScW^YJP#j^_HD;w;hc=jnzJVi}41@<9TDU42x+?z~sR`JHK8b zsEFxduiY|@TkWFkGS}3K+){jW{KSceyY(i>pVqGbgk|ne)>8=+5do4Y-Rgg}IKP9- z+h5`kYxWS@wBFo)uZ&(lS)~GF)qYsuxN)L&V2+t`*ee{G^Z5U5qg z>tGA6r0Y)p!NCKCxmNr*hp;~MomIZQ-YSw>zc*($KEpL%U(>+H>`FywBcKGx{V)A0#dei zxP92e@MO1$NZq-iVSyMA_UR-hJlgfan%FSKT*q>_tgBUAyD(3zv)HZ`lNPvtY02*f zvJUWQ%FEQ?E8>g=bi~tB(AS&Se$F!!xR%}d%YGanqP_`HUxR{NEU(4$U{)`G87&&_ zn1R8`Y*aq<6xk$RzDLMv9>-evxC+=hPScUs)zz=3QwzshMd)n-ZUWzPj$9IEch8Zh z46`nJ=EVg7MnTT-F>@cMlgSgndT)dJ`*RmJLe0-F;MI#47};hax_XGbE{YerqJkV| zPR^-ZS(O~Ujv(;1M91LpPDY(?Kg+aFnKln4XLm^}^@ro(ADBDYH#T!H%VVBhNv|j# zR3IMd24bG84y6Uy8+JdQ zYLe{#LGWB7BWse0qIIxTjmrIg?2onU28JOvCqYeAFX)bTlbHh2^Mi^#)7~#uLK1s# z%`X7l`;W6(Q*t3&3WhP28qdvO&mYWj!uoLb3q%$wD;FD}#P3y9FcP070jiEC`v?V) zry>E#*XihdCgZBBK{JeN@IpxIy#%g_L4JzhokVb9MOviX>Cm9>7&V|+ zFzQo3;5Q*${4qG2BZlb8U4WYI7E70w6b zfkILCYQYm!@fy^4UsO1xzp?oC-5p84;W<)L$Mt-SbdS!mJFUI7H3QrTMyL!P zST3`&loCXswIn7YicG#W1SadPHGD|W39+3zQBe_1K%l?4xH@1vy#hmXm&P1q<>kp6 z0E&=0G1r}LH{RG+Q&SunNfs?{Yuj@VKNM|nhR4=iwP1Oi$1VdD0L-@L1sEbN!k7eS z2nXvXSIt8=NGXkH5YnUu6%IGID2s}S4#arZXLs$cet32V0{&a(v;YxIw_EFnp8gj) z!)ovmSf<<>0z^N00T7ezfxQyC%#0jtk~}6(PGM?wfL|AVVI=?&4`qg6ts>NOA}~w@ z@bz-sfx<`STEPvS24^xF<0U-^*waWmXy6NdKwu&l%nOD+!i&@^YBlQ|!DdLM@Ja0k ztxC~Q>7D}(rM9Y=SZJo^-mb$41G(l?-w>s)8wPU2Hi|+*CoC-7+^|niBvwE`37#R`SC6;H6`K_QwK2&n~%nm zsRG#S1J-Gf$a;GIyb(ITSspg~ZRAk{$dB3xu0cMelZ|9V;SY()xY`u=oY%M>4g>? zo1xX&LMTf$PC-8!4}t@7YHA4_I)EwISS&oNs{Aw~$!NSzbg`uUF&!g;b##2*>B%Zt zB!4vDc5`@kHB@11fN%q*W+>?q+*)~_Z)4dNh!cF3Cn}lifaVT3j_<^V+bV%d{i$?f zCxGf;70I((yLJ@o_}v#Tuwj#WC@;@p)T;wwC*wCra_%W9_0ILl!;>=8;U&D_N@J~pRV zXjwedDjLLGhM+$J)$8laNHCMyPDbNj$GZ91dthmCzIcsyU){<5iu6;T&S^*i9r;L# zUuRxf+Yuk{EJooYiXY(HYtvOs#A?t};xG<|V9Ja19F_EEk>Imwf}JcjJAdz4si284 zo{CjpQcw`#xL#()D({!^SCNn3Gcn3ItPfH`=)e1EvzlinSJgMxEJKUX}oyWfMvUf6>GU5Kd1NMf3LKt%cy1OS@ zTNyDIn!TPt&Mk7aXSV!RtPnZGNY{rJT7phcNKxwHLjoeAL@^kn>Fe(&EmOcxNC_1) z%vG(gZ&)<09f2Y4E{!a>M6AnS=~@8D7B=vgzERBH<*K*iI5wirL*$Mhh>e08wCKD! z*){9@lUZK@yixuVM@Wbu%Vr4=nJq^P#gh-~9SLmo%qmc?Um*Kwwxcj$`gqB|xL43+ zf@};EM}s*cG-n}V78Xa_wPIZ3{84^wjqUYx7!g)5+R1h1*qzPSgFQ%j0vg#q=IK?4 z@O%E;IvFBgk-5F5+M)*LV9oh-VmMShS0VZL{s(<=(gP1+mbLz@#l--&ggo>o0Zf~vPdvc#Y;y;3>_BEX=Ff99-2+nu_J1m{stMp2;k+M&mLQg|fv1 zaDx7o#N)qZH*hq`I)e2%RwI(EDi$(o{|L{kj@FSsKRESf765$rkAMEjxyp(^7i9nv zt=b`S5hzYISfOhIJ9yF9)PSzlhvbx$u%&Gg@Q`%QIb1qV47Lm=z}UD)y?)&OCKLK@ zeRqNCAzdW_N1>EAGbM$WhX-6bhn2O)WPEDawL}Z1BK~F*h+J$3jrone!g+B%2N0>I zGZrGO28wJ3qHykWK;Qx67FYpcRSaTyY%3=hSP$0H*@k>b%=8O`v~C;W#1~Xmj=s$& z<)Bu8{1`N!a)oB%Owg}JznkMlH-@&zsls|1DbC8-^YBR*#`64w(#bz{u^mQWVK2{H zwbf5&p+M+Dued8Iq#Ms#s4@8lAQx4$mH8|bxZ-O{@4R~B9tA>q%<+`I8f1-k?v!^L zqQ&`UrL;AsI}I1td-Tml!|@1Mmy@(aUPYe)DG=tkDF9s$tgWv)^u)}l1T~HN)meiP zd7pbLqtTX0iltZR3!a^h09lw zVQlk6RBEGRb08}9LmhL4b;qzRCN$~bpFYJ|Ond4V#;g9}>8{y;Z5NC6IB~Atc@TQn zQ-(V(K!OB2{!wh~a4@hPoD0aXUtuN*E_VrN!$tR}?${U)p{V}wbvFO9pv zzdvNQ&so^%YcidIcnS5*C5wRz&~nga@OUSCz~Gw&Fr_*49f)}wS4XBBcH_vJbHzz* zlrqdKUY{-R3lL^8s%ljBe|Ze)?&31pMhTkr{e#&2?$IO&>*sgBys)!&N}Ol(6GWz@ zxMr+^(i!35@9)n+213oCozD&_*k7Njr{yOl1jhV>wLyA?*^D6qahlL+rGqU=27P30 zZ!*=R(ccL_#A&X;f(Rxf1LTJ}ZVFs(A&|RDMYTXG&ds`o@ZepX7}#1Cx-UW$<2G4h z@^}oI48}(v*^}i>gyOmR`JZDN1~?+f+_RoWUuH?7Byn0U_u%czq{Q^(Ahb}h*VsI+ z9h|I~L*Q1~-Y)g+sd^5w$E(!TQ$dMN5VOD5!3Mig4@h@Hyyz5j&xjLgu?DxFz40AD zQnV1`K}YvPg7BJs{;4Zi5lcXKvk~10nEhe4;MTPP|6r1Ld3o$M_G^8(=X}oj4d+1d zr8QvQwgNe7#*sQ!2MYzlh)EX)R|Dkx`=CB!22~7;)<{M~JR39fXSzXJ)s7PsVwd^! zG&XTh;p=7sJ)|ANVAvCn$x__EHqM;UPsyvqNgUUkzP`Zh>bJgrYG(NRHQQOWmjHUv zKa|@4solspw)aJv&;Ri{N*hr7Cg>l;zb04MYd-c03QFMA+1acwDA-(HW`<(g9GYM; zis3+p$pmLW)&Ej8+T)awu?lYm#kFhI=08kts@O)`U z98F?~6fkV;y?P!z;Ls33k~Pq-jKTT3uCy=&?z60_(-zdGtN0fLZy@+!Pc2c+H7d{0 zqzR#cz+=0u&@~zw8sOqHp_zcx5(qW#lGV%c9<6igDav2C2zjbGYGt>P*XgNj_I4_- zDj3a`H1UP60gue_8F&BjehM$h(MTe4K%&qZF{e}(bl9+C?=GA1Kenl9wvK@rzZJ!6jqdL5Z{EH&SkTmHXaM9+VzVMZ zweG!*s>9NN>_8gIAW*W*$dlP_F@D^iR=yL4Z9$C;&R&EU=u|tUx&&)< zp`6xkVwb!MJzW3x#sEYzWwp0okWWZ<+E@$^N*>7@jwxDMwS#bLFhiHOy#%;dAI4*y zuk=VvPCj$;q_D7PAj|Zz$drj?^bPtl4C^Pn z;D&(>N+B3hoLVy&kvD=x8!6`y*RLZ|b+$BnWxYWg8W@;nz0eBdj71FfCC8u>p#%Hi zCE!~^t$GV|7BWC%KD>k&gIG<>VQ#obqvl4y#A&wV4+%6N1qCcdK=?i*7|SNw%cuZl z$>tDr)9r4)(jWset5V9njcyNDe_GXDNqt1ykZ`33DHl8|l%khtEE3 zafJZaf<+*G_sHhTTu0rGW|T~a0r@%KuFVmjCXnZih4I+>`um4H`6zWlA-NL_9MVHD zm;jS^rMi;+RRhPt7Ft2R_9rlDuk?`vx(N_B)I>62vhx2yZXO(wh3epWK>ERA9uWaKa>+p{;5hVg!u{u zrvfp-Kevqim;D(grIEZMXF4SqlyqHTl~+=WcKZvBb)-4>PZKL*2WTS*;+0R3#gt=t zCXr~PeAA8~SY-o{`I;luXMZdDn@-8u*la9XgI{ZT(x=z54hAAqse#?>TO7bs_n{!( zgC9E)G_I|7F~GNaIJ2qvXLTIiLQQ3dVRrfG=x<{Fi3qa1Q}2e|rNAL>WMwv|_O*Ax zSt@#Z5g(t@qp8V8nCQs#0%cfFNd9O81gsh(VHjjxvX$jDUZVTk?`5dRoZtNsEkIyH zPaazJ*ESVJqXh9EkWK@Oi)??cMnnMF_#3?WXVgMTZNRszgoD-}b0vQFsW%xb>l+pT z(7=y>9yahIO|`USaUIyr;VL&Tm&FWI*Nz}$KB{;$L0W$_y)+UMdof4zm17?BZ|TL0 z0CIr|J&=?OTB$I*)$o+uidoM;cE;R22CN+{zrn(bq2d2-`NG3@L?nkE7_i0Ia9Lp! zA+0*$x`c#8yOpWQ{tWo?J|0Nx5lxDJ{s5DZ&H{Itwhu7)J;pC5_%jiLz)jX0k`&_J zPT!uz%cp^|*gurNJ$zXI#V4lqiqMwKKV(%|Vt;pG7=!=a>*97`2D)t*`$LFBVN3-2 z2aeM+bd~|@^MnruDfd6|XPv(vBH-r(lhe(vZ@Ak(|8&~XM0*(?0x;155y4F8?Cd+LQzycyVz_tfx2OWtVnL_8{;{;naZ%To6kGV7cSS zQaK4$GhyT+@CXg=#Dx+P$N2Bwjf=efAMSHgUqMQo)A|Akj7xz!M3hV%w#b66U}ahZ ztR<~O4b_J(D_4x-(t4ysvuWF{MYO77Vu;x{Fg}2j&Gvn4_rTcXYT%(UJ*@IUV!Qtr zRn@hFC@qXXV8Mdt@)7-oAX7P>rCg&&Uqyz72|Gi z3{C`2K)nK-p3A}g!|EyX5jpOpl%>%gw+xP#6T?*yYij-FbLArkxG#IF-R0+II+M}A z9_157+KXmZXGx0tPey%uE}v<1gOI1l{Os4q+>KIOjZUS=9Hy78^{;&%qf-o^+Y=(n zqXC|6N|Ny`5s~CWl}QqUzpBY1h&k;k+JO)N_xph3v~*;PPA)oiqr4tSfuFFk=g|SO z3JQcoM1>}gwS;SL>Y`|`W?uC3%QPwgZ;o3N@7hrQc>Pxk_=iFByr(O}@5!MEY)(1E zeCad{Z1bv)j}5ti-!&T_8xERLP}cE4;8B!L2W^IvQyED1H^E4NkB6rMn3Yr&!G1ou z&H^S@zu&s8%KvMy^!M5W`>z$0^8D?%?%mCT1IgA`ZG!lsVZJVrQPH46mwfVtY;X=$ zzkdCS)b@kL!%RWws8o06MW&AbhdS)hGmxe2=VT~wa5J!QtrLoiO9aGR!d=vQv%WVf{wkoF(ah@uaTP5GWeR zZ=W?#m6Y`H%eDdp>+64E{v7@bShO6tOgTGp47p}3x2nB}OQ=p9{P+TPT*Q?S`}$8X zg2UG*6y3Ob^u-I10SLIg{{{`aGgw<{FN2BzwA4E2RborU!Z6+^%}+BMxj{ESS4;Ls z6X}0(&u~r$LJuPOtp_3IRS*69!~_`hSxbYE6bSe>7)!)<=i*@ZDNTA*tO%kSvu#q!pd1-ZsLI^8*jud*I~JvR)nUt3cn zM!@_axIarblN*OLEC=IIU>{ClWHU}zNCxoWUqAoy5fR~su6T%sy1IbLq+-<0=Bkje zFbo**MZxSC-YZv1BF#im4^dJRh~}^P1OYro(13TTI4}W(pfw94RBkL)POCqD+0w}=_0Sx~$^L1S1yK1;duXz`1)uxeD!X5=#Rn1Y%aCld zf3S1@)B5XM)%80~#$>_|rT2j%<6r$d_}zahsIO0^@G+?mH1D{Du~uesT)TGHalCLh zO?zuU1J=t}ZArR>f0U0F&z1GjSH$=?YUxjPbek0|I9N}^_mxoplQri5+}VyxsW|Sw zbH0~S2caeuif2dTe}hGR1AYLEZBr8S4E+8SJuhX4rQ?faMvK>Q+h2r-S=>)n&UAz< zIq)yz;gJXm5nT7$nk(j_rWUq=yunb6(6vpRXRahJDQPBLoOi3b9GCjw@rV!uqzi%@ zkc$Yi#~s0D0~_eaxcV@d<2%=R{Ik)~abr{w-L+3jQcCtiC#q5h($eGN*1M^ymS<3R z@Blt#H0W-ILhS7&FaIFU?iEd_2-7s{Wa3*xO>12s)(XU~7LZ5+=9>BUuJqSIqV8}) zHzc^wc(!K+GH}H9H5RxB@c}o-b@hK<8}jzvB3*a&^@Qmypqc<>M9|L0QH-G(BElg{ zY%`^B-iNUbDqjf1-2>pz@1Ak-&Mr(L&O#vOcdZI zB1iQqjsE-*Cr5Tp3I$=^e^t6SyE;36mIcLxujkLB#2XxYa2Czk*%rqz=JMzZ7Ik!1m7n;rj~*2ZxuKFxMW2F}6z5Y_Q2_(|?N@7}!o)2Gt+)>q<=U*Em?$#weG)#F*e zkQ=^xcSiZTK(N8QzM^FzdPd7R3%y4M8>5b62(@o$@K&|Z*H5GvzGB?eS(7-}UYtHg(}!h8hV z3Hj4vC=v>&@LX$D9M~^6>Z>vAO>x{`EJ*Z`Z8GuhQZCl8k;dhih>%~5jm#$FKfSN^ z1nP248YD%SiKF7#?D_?f-?x^UOwu!phWIvCDbL&yp5Q}ocnzh zo+=>~tCjaQb=thgux4x+CqZs4|AaLy&}ro|rA=SQw~Lfe6mt73m7d)4;h^?;+NtwZ z33OBcZ%>r&vkOfmrB6*k0cZJ*U(3`qHKTiFq@=2U?L8(6u?N8#8G+n38B;OV++O!{ z??!fDf_Gi+CeI{ywcnLyqmxVf<-*Ao7>;4Nh)T!CGQSqbeY>9vrfTKnup&D~I#U$S zBo(oS@GQ*^78EC>(a*Bd+?Hjf?^v%v+bDbG65B{`j2^{`2pAFVbS%kyRXi)o| z%t>UH4qT*{c~3`>(Cgo%Ia#xRE8p8_X1xCQ9)L7NWFV9L8QSt2+$KmNq@QN}i^L+w z4beq~>fc@fN(_L`Elfc?{eGtL7~WE9*ue=MJOd(r0g}hRGFyND9P@uGmJ}lQ=bXXg zoqUwrM00unmHc&_X)x3 z>2lXEoP1TD5kB9WuD!d$cJQyHY@BPkK)R9bd2n_!1wQpo3LTm<{tWmjt%e~Z7P6EF z=V9AY6t=(jUq@mh@oCwK zra(eV&yX3VeV>N%GIOC(T8e6+mC<81Vff`r`JxC+xIa8;!(vW2#PM z`~OPVk1ei<%%?`~6o*g82gcLoDO@$%vC_&~ngnKp)P0q(Hd!nlthx9N(=M3cBoA*P zOzZdS{(HQ?fPY)WBt}Os+&(zN@0Qj-dnEtttPhDR5%3^IV*uM^)HnL1;tIpKp}ea#mB+4nQ<%=I!euND-a~Vu@7Gx7)ZgAih=w}#|6jy^V;%kf zFXI1`FXEVJ0=MUWU2|`#*27Eiu7xCbm|(2p`xZS&u`j&)zVpVfEG!Q@#2}6A!pRrq zk5ElkbKOjPnEeG_M45!5TcgBC(Mp9hN6Fv6hM{M(h=2DI8gJBt7?Vew0+Y}7KlKuV zR9E{F|BXu+Oa%=y$mKoJPlXO)+4_j$`A~|>^j+|vY@PJi$x?tJ3iMuae#I;MYs}G8 zc+YRY<8|1qzR%0GiuKg}CqIE|yI6?W?d+t;4C?K%NPOnk^)getghwe?_F`vrpVqyJ z+RA7`J{zu7n#CNlRO-?q7-8xiQq$99g{kr`+Su80kIbS9t{QVKCh&N7F`fBe?7eqX zlX<%}j5^8;sLa?j;srGM=_7xD(zt3Jli}aem zcng(~-eXAS%D>mT|NcN;9QQ8$5(pp?F1~kG(4yg2?$w=RyDE2Oe9ZR{8p>ad=l-@fFT| zf$+7GNTN9ld~FH+`!DjH(m3aac-q6bv%9pDE~OhMB$ce$zlTzJzVAp(O)~A63GYf= zTO%2!x?|OazrO#&4^7XVyX2<5cb#CsiEc-I20d1RQH|q41Nf;335WAYwOwHu>zwDm zov}wKQ!6FE8ZXmdqLUx=$3o{RVKq++Cb~0>*K%BHx#R(J9?X2LBogpdd%mi;zXw(R z{kMkKC*$>p*H`>HTO8ir^&=_xCI9j37aJ!$_(^zny1$(uZQ|IeoUADpTG zY|8&&Q~qDO5u2W!`G%pH2mS;2)dEo_f7*rzZ{_}Z6Yh&=uIEc1sC@muxd~z7YI*68 z%WlJHzOxZ{^awhO><8m*htSF^wBE|U(O;Pu6W$q_d$Iod$ zBB|ju*E-tU&2__!3hWQ3)7l*w)tEpsBe^6$yCd~Sjg+Gj#Q#(LU0U?;$~?g^_Q7J;Jbyx)={s0yyY=t_ zW0#4Jew2I6+82@{Q8v5=S6W3!FgAIX27{;?&bw??NIa;e(@Pl|e}u6l-^WraQW&RA z>JFvvtSP=pqJohGPpC)PxV zm^1cVH{HXKtuPv%?^`e!y_EL@eG31z2I-&hcge*+;BTa`WPRjv9s8<*%!&UPf44?m zsGcVn;@(xip65?Ya6Y?``@S}c{=lEOU2y+jrB6)P3KxIn0)Pqohf4YHQ7Qk|qPBnN zlQ~ZNA5QaYPvZaQoaR3paZX9|{|S%jvg?}!p|AWu=w9pN_RKX-es3+*{@DH}1;ta0 zPd~)_#EJi}HWpw?>EQD1>z70F7T!)(HDGUrUGZx^zQQxR9zei*%3sw7c%m1tZ_)^v zk-$Pjvb4E){ATd#P`icS-dm`BB*xCxHq79hJte=n7;jtJc90~R){!DWZm`eV=4#P% zajw}lClZQ4nDFs=ovAga49xK#_pwS!qBO?!Iek&HXeBv%StLj`hF_W8F^r~D%W>-rDqlj1^! z(die^oQV3LsWP=23iG?~iWnLl1bOcN+w#oT(vi`KcBOyW$j-#hDev=>67xZ6?YflL zMH$@Z>{urMawXr`2Ft18WY78(KH@^xe{}OiRR~ z!E-HB$GsCw-rX!9BI%_)2nD+gj`UmD*|O&SZ{nQHWExUd{b0cVpGy}s+FXLe#zs!s9l^@*3@ zW)|mEmIy(v+DSV5_Mt!wE!|LgBonlcKl7dW_4uWHd1i0V^vK#z8Y7sAmRsz*DpZu8 zTKsS0_P0x2+-UB7P9t^t2L5^|FCsrWRWow;>@ko?UzR`pt$#GH-`wnLQycYFpgLC_ zg09*6?+U7dlD3p#?9Bub7X2`^{XM3{YDOt*i0#;kpHk2EmmZ{`gi(K1Z(9Cf$J3R6 zRa^+y7%9^a@R`kD$13xaPQ>;EPk&@!bgVGMubmeLbf}mL9CASo#3k$+n z-zj=~&7PDC5#<~a`+Xfsdl&TggWJ&F7QVOBo>^2I?0vn$dgn)l-}# zX!*%hKa+x+7QXzEldmRsUU0VM+Ubc=%od8SV}b!)DVJHQ%TQsty}32LSiSDb%S}mS zgh!l;l&@rpRjh=he>dfRSLw_7Cf^OI`|jvoRM8>SF3o4H7za{vvIJQphfmAa+S>a1 z_3Jh^h8b5>_pcAf4d{~boEYke*&gMEA6+@p_-3SW2}+huJ5mI}_Vrem7AbG@ZGG`3 z<7&B-L8dtb8@E_yrs5cxrv9rVWe{uD&JU+p6*FseTRNseAYZzF(BwVoTJ@89=#P>o z^arf7@Z&Fk?8Q3rRN0_I6PIo`-M{Vh{J~{S2R+D(X96QmVA+z~XZiCR^k$Miq zNnr~3KFQ|tq-c7qlv+4KPg?iu; z)CvIxYtD=AI{PHurdfhDYhWp);W?y`o?0a(&&~MxuGyNxv#)s7w!LqTA2DHD>UY|) zD$AkTzT!J{=J#%_i&npz->iDBgPmQD=8NGD40fI+q=c2V^_uvzZ_rE+r>E9Qw4)cZT9+Z_T_HTR-O1f)AnpI`u($RR3DAe##R@%!Wt=yzBufek|FGY{Q;ef$5~N>tfkVv@yE| z#DRN?g=uNE*5eI(?tpx57g^@MZs99RPBL}2cJ@jNR%VWxb+9f!NsL1Y_q%!UIljL| zNI2*Q5ePw>5bV72R!ev@YUt4xm<;__@;)6E2S$L6^p+KUQ@!s2ItHDN<6 zPEzu)ie>F%W8}{T^qvu}XVOgzL~xUrnbD%g~KKbGiPssNd(U2SaCx)kw^|lMF zN-a@;NQk;ys#C7 zqmH&T*2Lq^j~<4IJP7+TxYlBxIr`i7Yg}5?lwDW;WNwF_&-7T|LIkF=u! zF>5!Mefg--UmL4p^@)$k?hSgKb2!VXr~jAjj7&+IKRrlx6&jnF{^CXV>#*SX1F!N2 zt-P%j`Ocr-wHfLEvf5+X{qchGuTT<+8jWz1LuGk#Vn%p>|7IMg#_fb#qjDrw3 zW7fz)UVeQ36p^HXIMZK}=fXV*4xf!$+$I=Z?D&+<7DOCH7@m;SeQn_e9uE|&I}y^LAAvgfwYMo7RKhkP?8Sk!v5CwC&Z8x+lUSvPL0#Sb^z!hV&r-lHxy1`e@9 zR@sGzM8T`)-l*u|5g5vgsUm{SD(lO1t=v>*l@ya`N6O%K(z-;{LWo9-yg%Io@5=WB zbrJ3nhft~an+rp~h$}n!2#f8Y2AHx>!;H-*qi6gLnCnUY!%3DcXwnl5II<`}^%QnU znbF~Ze-S9UW3$-MZR}V{)y43>ByDjBZ`53=1qNpIkjAx1!Tqc+Ti4*QediMh0@u@- zR2lye0$G=a^#y^YTQ?lDqtJ$jE93^Ay^udYQN+u*Ja}zHItaC7<&z?tWUjBN{wbdq=}-VC-1O+O?b|?FwGj5jA*co6=xo{7i3Wo^-4?QB{RmDGgs~ zSX}d{{mcYA)_;aUNx7j!et1y%>Qp*>W%?3>QO_YL<8EMD)ihy1*uBLdUJkER$E;qfxS?7`Q@_1!h#Ywtyl)0oA0tQ#R8~JZX4ehJ76k80CWR!;=t3zc3$MplF zR2k|M$(fP)#c>+~8?tY&eA?XFy4zc|xsj2j$>dkBwb466R=4+l?VT|F1H=>PO_B*z zNIsnI7IIJ?Nxv;npm*iV2d9QbNJg75N-W;n$;KHOKq z|K$`3(boE|tJ8A`qE#Od;WeE@p`rz)raM>2`cS}=C4*`N(Gu(#L+L0o~88e zd7b6bADvhcf7+b(_QLiD_6XOk6PX!GpFI`3FYgrEU7wshqwv51`}in?-Am;Uc5XPx zAQcrRy{c!FdBOx_NX${El3F1n3W73X0-L;$HR^3=XD6`x7i+^<@6iFT5xI{Eap8kH>ZzZ<9uF;wBL8%z!t>KEtCchhAyb zU)IAI=AV#>b;~St$1$+pUOJKofV)7ceHWa zkUy2&7m)T{EZJJyR-8G!*$%B^?AN2JhqU1JqBV&P!8`$;bhT0PtIh1Q#+~o{xqe7g zWJ!TW+VF6av1j_Ik{cm#qCRm@!ELzL*dFoD-~!L_Q)UOwv*|)$2z*7y9*9uEi{+%$ zGp0THp6~WnQK6c<^poa)HOa!natVyP*CY!wurw@}gLmlibm>l%f7v)iCE@(d@x7`K zO!SIHC+hr_V+d)PIH44qW6f|9rAZ2f61d|gORCzU*D=J?6`P!-|E9}6%zZaHSnmxh zZ%AFdYx6~E)hBRy>m8BwabMw|z~^&z?jlz9Vj3>!(KT40v&5oTE^Z%0MI~Du(hSF({F2bjNX=2>W9?J^=jTDj}Ec{J^d^cXg zA=&s*vqrSBYiq=j6Wv+1(~=-rGd^(T!x%44>ahyDk4Pel#VWHQ1NUOFsB5QF`5M$f zPWI*J3(&*AI?gwJ_QDO^rSHr#^JXO{B3<)yl9Ip~8h;XeYf8;d0_GOvol$e2>~)`J z@q>~7mAOxzR`Tzn_F&pe>)|Ko!C5I*oQ~-RYghi zEoe1At<$@8%D@0)Z>*N`?H7D+RKV?h`Co=1HnErRP2Bza^k9Iwhoo(2z!B|TVb=Ec zaR)7f7vsyYNO~`7bFtM|E?{z-l9(k|?Hd0cFSrAdlZM|0DbHyBALk=zoL~Pi9|7yn z?MQlW&Z7f+p6~6O^iN&3?%SM%&%Jqj7XSSql03Jw*;jBKw#c#j3%yRo7V>*G z+igFW1_9yMAfiss*ezNI*%S1E%b{k;+<3WSueE2FW9if=maf~Jami-#{@TitWx9H! zWKF7)^97BlB4oYlK*Vs{qUYspET+sNIdU~FVY3j@JGZC`n^_QXxbg&uc60!u>KtQM zlDQRCYBMSY9eSa${p2*9HJ}lKUym)nn9p-#ZtLT~D!aY8V*|K%mYmsEA%Djhv-LJp zrxUB^cZXssH13`mHvbE(L?~W0KHc!^OGa3{A}3s1b9vxNRm=uRLdQqAiTQlm@A#RI z3E_U+gD(B9w#||ICgI8X__A}uw3Piy?l@g!_DNGaAUoa;!=8>I%?^VJ@FZSR5L|0D z<%g!>B!<*?8IRG~h3R<5*xXE7|uAs~sc>s04{PgFI-aDYy2@;X5TIT+dITDa35N|jt??P@wn;o90Cz*`kt&R z`{?S!KvA#Hu#YYBUc7K>PCl$lvScxKS=Vgxo8D>}>o&YZXx0gk;zcaDA1)IT_2~%$ z?B~}5NJHHBz)-N#^ylp|1jU)b9 zq@h0)L>jga}p`mmb&uzWRgDo0E%)_%{XETvp{#H%4Cwi5uSzRy!EEC zePs*?o!Fj)C=(zvUdG3U-Dc42E{-b!$t~*HppZ z!hrNzh#clKI1d}}2E#q&W{y|QQz%A1!j*Ha;?aAXfjuH_dOm%&h&-ANbGx9fi0$B` zt+JQ>Yh1W~W|Vw40lxE^-*C-q@}+kXvmPTEYK1&Fyx)N+8MxU!J?F~!mz^@WLr3gM z>1I8^?jn#DFX;AH%Y%y+(1f9ia{+8o7?{lVJN2;DmN9bszI|i+)1kpp1`p-yA$(tT z%ExQSUtv*X`+yPN2n+q3tnbOVx32>C$zRJWIGo#E8d!PzsMvXV-3BM`?ts`fi`yqx zM)Lp@)E*5V!}yUfRNZ#@nWGWJ!QenNrzF)aM&)2_lNF44mo-Nvg@9; zii@gG^;RK@dJ9N}X{}Lal+J7D!n-RW?x%1{w>lm-IQS|gTldhR>!f_QmJ9WvyBOC5zJ!q;d zUAH-FB6Ng4SlaDKT!Oy_TYih++O=W~*6VRu%UUzqH1Hlrhu@ac{SX>aE&aZWQ^F7$ z-P#YnA|)ukWr?0FIIJ~zJ`wF5sAVm-=yD;YiJw{JIkqh(P^#P=nrKv^Gdij$I$4%t zdqpJqjzxn*4GCc8c&QlCr`3$V&-buH+|^(?nzTRiV!j-Z0~r!w;?(V^x4?j?a(>+w zrWUku&qq97o!oJj*!2+tW&5wY~64No45|jG8?;^%Z~2{?B8|UYAG`x@*GjJ zF-C|lMSkqNzm#&R8s=i2p9#(d){Sp~0+RM;vlj8slKSEyL%Ya~y=*DpZt;dFKrKeB zDJmf%NJ#lz|9gI}Yvs-XIjWS>bKA5$>#@(rf&bSto>bj~Kd@>@z;{4F<=t3`3m6Ic zuiJOuGE2^S5T41Kv(c_yZkQi#N0fF9ymGybJ^1KrsOerB2(1^`Ak*$rr{wbS zemH%DTJR<*3W_}yZ{wSify#A9c7NOe4+BXnLTaI^waWesw0Io!CzImIfP@cimI%iV zJ5sbFGBj(tto}I^~@Yvp}}XwQ75a;@it-ph3}8tK>akv4)cJ zb8b$~TB2%Qisl-VCCwzgwk^^~_62dYjFD(_bHO`Jg!JP$4d8Z$rq`HwLaL1rWTt0Q zi&l@+xi=FW?CgmLye5dT*Bc{rHa~owl#x-HKZ_Wcsu6K9GGfGf5VJOFg(xv57?g7Z zu^w+GZ=5@)z-YI%s!uF{NbT3!N1#6hb+ymIYnSStZJ?MxtIcqmXrkf#AbI|ERsXE< zqGM-1Tsgob$bjq4hfAJoPk^+Q9O9)%>o*QKPt>iF$g6^qwF$(x1$~fj{gZ$dW`L_( z9V4r?YbkOq)UPc%KYEZ?>u*05{MIN(9(}VJ=g*}QXHnLT43~A}Vcp6yo2ef<04F1r!>=uEl%)%>y5 z`e4OF5c?fQeab*7wCf(e_S8_R<^8b8@`p(R!Gq-{29~rL6{Szb@|-&%+$n!VfkoB2 zf~z^E-7l%W)W9XnF0nZtQ|*Y33?x0W^_Hp%dq@b(3;S%od>A+G%+!i^tRHO_^|XOC zj&6;sMA=xONcC?NEsnjtV*1Y6qwc&ULo^q%x(XEP(C4!yM5nUVl>We8jdECNn(HcY|a z6czMwonIe5#iIK`lnF?lc%K`i9bH*ctcf8yyTgImz1f4vC={!HdYJz1YDiLYa;VqU zt6;jWg!3F1;TP3+sUe_cmIF+i`*abOAVgXqae+$oxeAq|7w6z<9QAQ$gO(`xHReX-XDT7Ct$>#(?*=2M7 zRr8CMfAP(if9pEb^f@Q9O1eLNda-0J{P;Ug`_JAgh+SJOW0{!jIael+XgzmK<}L#( zTidK*6bdDm;YIbiX^bB$5` z7^rt4TwSfhR_D72BBrVj&`Dt_u`cST3Ij{dK8j~WN7kfqe?%85^~^eGkED8mJ=tQs zmI+tQM7e=GesPK9pWJbHpzg)_)8Fy`Y2Y=FMPVj^eNTqe-J$x8RQT7R&VHjlQ1}i~ zDLMX~>1HP-boAaCKvozeey7YYk{ey0-`vc(R@2_$fGg#UGY1BgX9f|1V2VZY7%dtw zS(t+xxf?gTGS!XTB5gP^b7PT?+9szb^o}82v;qCvm9}ha*1pTr?Gr=Ik1N(J{Df;z z6}8x=%ADwVHEGfk8d(?HE+V)n5r>sOERH$iPy{}yPh(;zL4-7eDHS31P#S_`(>&Zv z${#PtaVP|DA>QXkniKPsWBLv-C7aX0opGh8qGx632Vj^b^nN$sLdyTX8~@h*C#T)a@nNz;lxJGoEaTlj z{E{U|3eyK4N`&`5KPbZ0r_}wP?Kc~_EyNk>4f9A#Mw4cMbHmwn@I%b`2&9Zcyyw&` zU3!I>^7Xb%3^WCLWF3eA-(EuhLZehe7mRg%7z3=ZLpImrtYCSbeb-%KgpYxroJ?#ivVTuN53^h)PUOH9^b(5A@_1F3)jE&+IcaA~J77!c#T8;d%b-4}>p>a*!fnv@r28qgJ z#bN}Mk#xst%i(%8F;L6^f55y$Kp?(s8U{blZE9ESvEyX059{8%{qY$|y_P~CWdS}9 zWLrO$L}Q!Uj}9JfF+8f71e${sxE!|!CBE$8^`Cg?)NKkts6CJ}Zf+?Sd5%|yTncA~ zw^_u6YzPtGQ30tLPoKJfDulc2hS0mVB!IT0K+b?4t30btxyta}^cTV25aX!G$k~j@ zl$j}9UxBOy-!TKPf!HaB{2}gUm+Hq2cF>8YUe38%zOul(Z%555HY3J)@CAQm=0qsi zZuS9g*l#^?Hdfw1!udMw&g$UElLr8nCZS34R-cNUAlUVpoUv}K=a+J@N|kQNsVrax z2*<5n83<*VzEQ#K=i8RGPcE>*p>yR1nRgjZ1+yDu?I$GBd&66vC^~?Sx&4%LIl%Eu zsY{`j0D=QN!e;=aJ3;{qd^OdGlrJBvDa_XC4bqM~&DrE!Q9G15=$V|7sLp?00%9N6 zL!>U)Da&sxO-hX0VT3m``pL88r}Di9nb$jV?OI%Tg@Fl1JQy#pV8F+BH0Te#Go$Xt4zc`^`F4mOz*2HW zcnv6Q2;v?Th-df*0DNTo`Fy$OKMOwIl7fIFvs{N{Qsj1?i{7K{KF+=eN{38%&Uxb( zk@+t@fKSl2we7zpsO(X?0^v=ov@{p7zQEhpH1So@iZ)HBZQn9B_l)16?|FUF-1o6f zy~2GGdo(1TJ!1JZ#$&JH8jS3y&$C*c%}S{gs4E!+A|TYU_lIL06m44`4#dTXV?sR| z-|TD16;X(E@ZpD*C^lBO9_pq;j-PM1)XEixNjnJxjo1cfI6I!ZSHHl$>&byvQUxO? z_NWV9o0+gCApC82n=cnDBIFIk+$u8SV6Nn zI`85Wjf#itx8`%?7E}~N9W?vlM&}eLt+wbFu?`HPw3(+Qud=#b_UU%Rs=nVKU~3EOijO=+Z>+XxY$=neoF#e6Fh>eC!p=03X8D z+C-fnqx}!hjb;>t%2Fln47nQWRvPzLN55kHh$NxhO;&l`qWxxm^4d_@=1GP2@Wkam z>iilw6@94Uyh-}sz?>5Or@iD=JuQQMx_9j-(_h;gyI>x%ckX)HWbsz@t3}a5fh$PQ zS7^_eB5rRU9kLw$QU*z-Rb+v+MB{6ZfL;>odV`+)IHoz*%=(pLb6s_G(EeGPSj*&k zzGGrwVOp(#grR|1qv1IiSWs;%o4%Kp|40_AihImAhAH8Md;}LS^2bgv1v~RhEKlGG zjcD-uYy-_3^Y__?njq1_DOf0J*#i+yi;LsJ|KxIJGXcl?|weJhT)$Y zbuX%DN!5&10$ogStDT&dk9pI~6a8+LW0{5Gnm2cVu?DTZBTSEZ2wk9MN;%-mVnhRA zYlzb;`-#u{Nwr$bhHboWF*o{9s}wCuh4#g!jrzNdpwuV3X!uwxgT(`%?0-K2ft}bn z%E#wmZPT9NW(&Ek;epWdn;;X^c-<&$Q}Mi^YO2@2tjWov5_h^Ctp-2c1o}~QdFlDI zR`38x`B|c$baBoC1loiHIzNJw$lq)8s-jKSJm(DarxX8LheRk2y}BYI!VIKziQvvT zC60Ic=n5XRWS))F->Ky<|Luv`4php|M-CsZvV%4pAXVPylLFAMZdE7@+Mtl30N5KE ziaJ!m->c9h*X%;w$zxm2yDpTWy$evJ1eZnsfz! z+5MRmI@2PAy%h%Rr9;CUq%kCJaLi+pm#ZdeaDV`1RgkEnx2g)Tf^`=+;#>HURQ z_Q@VTj5f?EGvs`}eHREvTacW!gg|s5w<%G%9+Wg)`71K<#Of<8gsQHvN_nziUMjx7 z#t05K3A(mwCP)B-YAGOsuGU*YqOAz*rW%`J#J zj*>EVr&X3i{iH&5dQIOJyWQH2Qb7Hcm1n*q@tN}%xQUf4@UM4jL>l{y=QSp3h3PZ| zJFVjv5)F^qCW^3GUk2jt0;ux5NAtLh4xBH%f`=lq?x28bs0cgSF!2~aJ>Ik9xvS#{ zsX@d63+>MFds;rT@R#+Bb$i1vMFI`!dhT5I%a@tC?o6uRlp0x>#;o&~qAs$?R`tK? zE`>ZauwCC{Xt!zitDM~2ezrY*TSW+oS<7`x;08^omq?K~6P?5gQaepYO$SW>#6VTRq_H?i9v(9zPPpE|V?l@!36e(b$ivnmI;~ z=U!vdV#OHINA_(q!k1`B7s|U0hu8Uz9?bMsdD-A-?;`^( z74}HEvb#R92UL%bCG~cND7kAAD_QKcDd^#goiWDwwWj4{IvGgm$S0)AvQ2__8p0aCAxBm3}W=rH1SYfp} zEtU4VKSWEVYGhTRHp$R;zWT}q*zWOpw)NyP;mvsyR<8@)I_y-4xv1`Za*;g5OO$+R zL5cMy!2UbN<*=+GE2F$ez+J_eryp20y)ER91*%bmV5B~;Y zfKz^j4I9I5+7T~1_zGAPv3k(OJqn$}wUQU{vk~pvGfuA_U=ARZ0sg{@pQ=764V3LG z$4dc1Pt@0jv|UK6U9!%%3`;`I_Q(FRQhxA;YyL;M*CqUbJ}rGS^t830VTMn?`E8TA9U^RqEe(bnZb($ijT2LgC8%j#CdjDbu@Q!^?JvY7GPD>$7P=&@;N zkdN~>pM7?;7OC6*o}aJ-8f)!Z{xhp(WZl?Ky=vA;6|F_HeHzbVDj(PJi+Ud2*u|{e zLavGtcpxHcFLBlhl+K+Vq?5wNuEB@X;l?9_B6{yW(Y&ZjuRC_4(%^_Rb~oo=K1lUB z#q0x^KMRQ}`$4vZU=MplnanUt-U}<6s@+|=`Ffu`t)le4{rN+t^_JDFu71_uPQkk~ zAuu29I=fyPl@jB?=?3%!WL-hk`_~s!9P;`CK|WH)qw!1yMrx0{k&h04dcpO$;R;d; zTf(|Lf$r9ft00kehGnz2#;KM9%uH+h~xJ?M0G z)+994GYp%T+&osVW3qu~fE@Na{OWg><4u31Pth$FJGVspYbfw$xqYLM7IT^_7@PUi zi8SF4NCN*SBmPkB6keRjccKP(U4cS1Vu}$x_?t)lcj|oJ6cUti`+v*;w$0#gLT^d0rFGE=ytDDecD;;2V^?*B9FmGkPeP zDBO5igQ%j*YY_ZH(E`M_)|te{$;nCHZ_2z@^YqP|UE~9WX8%aMaGR6y(`yHaj?3v--+E24&k%rf&GKp1#8NKm*iveJB| zT<`M>pk4)0h=oJZVd&0Qk&qs`HD^;wb@VX9lY|~(+YEi<0vZO0$f7 zy)U4$f84QeauR{-pMj1%{w#g)l|QRZi>hC6t*casI|MQiYpd%%)7@%R95wD-%n{OT zSBErqY*zoenS_o<=eSs1!2|XhniaGl`av`1*4SSYW#aX*%Y&QkKq^WO%K&g?Aa*2o zUdVc_@2`z7k8nNWRsHzNE*R*DfzoA9NY$4VKCX!qPsLa9z;l3AM-bZ={IxS$hl^vcl+0Jq3^+>26I;_$e$6>#= zaPNH_=&@?c*S1rrTwU5gLUXdHK!7C#4%6jN(=N?%Pb2cq@9c3v_r@Tw`gI`v39<*!sL*Qmoq-%Yd!noj_G15$JEze z?y)|jElX1x+moyV@$4e#X_|1)_)ZlTvn%scz44nbs?xu5I-5-&#xX<(P zNk5VmX~2M~^Kq(wElEB-YakwT$&DsKn|Z5g(${u*0$N*L@E4@Onj-kphY>_}Ou4A{ zML$I-fPjn6gT7KxhWStgf}LM2TR+4Sb8o#qbgZu{1BIdxy{X&|k|?Of*dK+Bw|I;U zN@dzWqb5Sn&-c^ko6fr{IYs;UZipWhdLe8~j>wl_DC7C_DpD#6_~WCn_p$b57^_uH z4|C(+w7*9dS0st{to+E`=|3Wt@Y7EJ)IKrpAgiT>J;hFb;E^{+m@jmO<Tj6?g)kxK%IWzEi`*KJRnIA$;>y4P||Fh=zn}7np zJ#CRJ~sVnwNd$q5geWc%Fyi zJ%X1A3)4&7&&B5xXyHZ2bu4~ZlOM7W^fdP5y|2WKNOvmj$uTL*AFNIDw&L=iHJJR_ zFx}F4>_E(9=Yy)9b3r%rIU->5KL4DID^!$?E|amOI^{cHd;?he)g!>YLN{jzrzb^SgKa)l2+uk7FSsXJ01~>PZZl*DMdE zyO|YklSnUL@IJh`#`%B!A$+BuqtWRxa=N_7Ayq%RvoCT{0t~_Kcj;f` zJ9FnNRke9kL|@jARY1kk?FpEWU*B|&mr}oGQ7SA3KFW>s=3I<4v!pLxZn6>3q2HFD z2Ys$0@ALaj1(u8X4|7I$v_LScB4#x3wHH$=!*aH{S=c4TX;m%Jz7OZ_n zx%sxH2EEO;`}EO1Uww4u<+y(_T3*Q8`s)hCIC_I%foNrUR$#YAEg@j?erp@w#R5u* zzmMxs!=1ge)JCpPUxc1Tw+b3NGocdqIN(ErMJ8}fb07OW?#jI#X#Yt;+wL+4-$ujf zS>}Mgpcr@h0u7kb`TsLnES~=Bkr?9w_t+fhYunf!m$@3qkMCsO23YDpL__;gZ1qHao633hH7p0>aC6Gq=LwLkwb`wy97eco_OE{i zO*aH_G7O52)8lak{<%Pb&o6_q#YJ+W?ZeT_T0kY;-~Xm2M%GBhzAL}k&rxR>@@m4x`;QN( z;8gnSm;QVZ31 zO2%_FH32CzlN5z39~_%krwV6bZzLG+#JB?!+LzNk64^3uBJ_8n{V^tSZuE98iQ`We z(>e^K3uVP#3ls5key&CIrFgZp=iIA>XF+WMGj-cAZb|aUHKqGCl_s@gRXk*(Ljzu% zMe10xQ{c^W#LuwQ4O>7y+#7z$UW&MLRW!s@?*FRg z2xMvh2-tFxC#oO_<6a0Ti$+WT{6xp47-+w*N)mf#Qt?J${CKdP1C=E2^PKRV>5`md z_E99$gqwfe%*oXcUVP2T_~cdIzIx)8CD*EO|GsCzJJYPC|6tYxSyNe3(@(yoY0ce-^Ir}QE+}hhM8)sUf-KB`v@2g+ELYqr0hEML<<{@ZuoS_e}*BDN2}29Gi5gB)oOlCRdnVUqBORE+O)CKdKE zj2u}0T8hjGW<0JJ=9%ZDL(FCeohaaCDIKz14I&~-=2ye=K19G63KIp4ct4TUxwA@e z-Co0YV>wXY;%PAsQbwHGf-IYBnostd_<>%jr$iMEci_pDa#l@5Z?s8Pf6a$X;Lf0Q z^8JW6-JmjEgOTLs7amOV$ME zS4u{ggVObYH{<=yW5*W0NdOR{cUQo0LyBv7unMQA;aR8(C}X5h2~mhR(x=wxvCD{T}?pe`L$;!y*C}JSK~6W;)xmVHTnG9vGP)(_{~9@7%>|SU$$(~I0|G+%a*6k zl;x0S#zTsvW7uRwoxzG!a60g-`23zx28<}qgSDA=)$PsQACb%&v8>xI)ADshWp~7v zwnHfzdTD=Egf4V(+!p9YdE`8fb)tBUf!AkoNppvY(qgQJ-drlqtm#+Q88HbGwxlMElnv*NLy*c>N2 zijmCoUrML)zud2q_j+&nwNo_YnxBy|{_2;zl61r(Z|^DwrNhY35V#(RsTyx{gPq({ z(Ad-RldcWoU%6@h%0Rkk`Niq!SON^SC^~c}k17Z2eGT+m$m{vehRzeG8&X}eb|KMm zJm^u0@Jn%nLTQclTGdyLeOfST7SEX=kcd;Px_JNKdg6s)P>;FZf>9QJjK8P4ml33^ zilEB^mT#vzJ&S>Xl3eIXwL8h7X;^{w4YmpxYp6haIK`Y$C{0h_-c_2I2mo#+c|imXXBf5<(pg{b~Vox z*rq~1K3Q`;D_w`kNd6>ZYn~0La~p~wXtGvaA|iCO8B7B~TA%4P zX=7cey6u;_+YX{AJUVG*xd{m$kpjPbzDmP%&E%)Nj6YWGU3+{BCK+|eif+3Zq8=NhUxG+kXXxX*&=QcB8m98=GtwF z<#GHidZ|G`3QeMAYM@d&4FDZXP9G|nJCO?UUOjs-v|X@O>NyXWes+LAAzweftJwL7 znS=m!OG=_h98NXjF<-l6RTKjB#`3N*_E4$NvSx>&5%sOvipAL3haLm zIW>s7kWD*XH3UZr4A^g1@VbK`dR2Mdfo!u)UV|?h!n_!5mY}`X61n>rqb{1|*aP+^ z6(O09pN{hftv_(WEx!49c2PsorukI3Ip^p3tTzCaWOWmAVP5C84g-W!V?#p&Nb9W* zCG#PS@?D2=?K)mhZ9@x_TSjMnT4%@4FVTobs7FATeq}hlRQE_*HD}dS7rF|!k>%5u%P@g3y;pv$;nYGd*%O?&s;Es{?0)&3Xy>6K_Iv=pL_1v z(F^hhz`$LO`dN94aXakCH*enX7OlL_rrKH#uNv5Bem@a0UBv~3s4ERxr zRGg`~Y_wM}IoE+iY-o^i{CtcVF%JPr4#0zyDjI#1Y&?0fw{8DcRj(jR#u*{cAi8+B*022lhqP$x{AY#Lfd$m&XK-YXk~{tVLfWBqX3v=N1vgyF^k- z8!--uzN5$%6J27VzzcQ)q9ui3V``v+m-xvC4z*Uqj$OC_xQ$kBmT#JI0wbMzw;0672u=as?F%uO>7o!8Rmhdh0i2!^!dVsMAX<1(lrqrD@yr?b(m^*RO}; zIwW;d2T7nJ74Dd^-xhn3t3YnGO8-y}j48Vq#!`;nm!082c?Uavf4c#dpSa z>GaddC~QuSj$Ex+bz><{_Mdg-BRY0rthob>bD zFG2M>%OT@6rUWduZ45ec=#XpXajm!$)71y-IE*5aM&Qvk0=`3;8o^48^*Q{ot74t; zdun+)Gq9N2?=cD?=x}P52Z_u_u#epWj^+Pp?7HKr?%#JqA%yJgWR!6vl8%u*BV;5a zWJI=%Lnt#sX4$Jqj=jf0vX6|cILM6bJtBU0Pd(4?`^WeBy?&p+IL7NU-tYUq?(4p< z>+_s~^K$AV1yT#p?1ABw0WOLJ-NNMk9*|}WqiY8iQMbO+l00&i1P#L^%uXtSYLr)g zFJDnGdiVuej+o6zsQkOQQy;Y&xh+^11fS8R`Q|*E@BL))gM=vB#S7Or4kPIA z=D!}nm`SB`5a`v6w%>BQ!UX*NdY>OZP(wHM^nOhOJ97VT&5@mf*!dhvtQAKicjwOw zZvUZ}{tBiE)in^|lm3#Ow}D($F7&*Xa|~2^5Wx;tCA>#GRw9^@>#OCjj()uap65O4 zhEr5cwS$d!OSIJGQmq8wtqzppS{h=ALy-%*j{3ZX`L?rZ|~Ux-!9+K1N*c||1-MTS$uck|7{qPETtcA|Kl648SdE(6waQx7oBrNxF= z2F?Ycyrix36TS6lSERsHkXbyG%lIQir#nNHRDffxgoX^ul6dVs^N%iCK!(Emfh-_`2B- z>x@UPTGV#uSdb1yCMSc;dI3P_0kVWy#N}UaZ6iM zGYXDZuQ*@$zfQe#lAN~a1vG}^H_md#C~3jVvtF=Ym5j^1j*MzZfBrWYfTT}Gpr6AT zGKLz_bng2T(eN48aJ}%aUx+^~F7fo~(+?j$obId^QHwHe?s_^iKN)-mW<682bJo@; zn>q$(KYcCTucqKsTN>UPwRSo(QdQ*}F5Jc1}BPD)*FEIuBa7N@n^rjN&H7aK2@J|BSLe;^X|xDL zJ{rw~(G1$Phe?g94~AY|Ug1n)qN1Ybhr<@@vqZ_re;pC*A4v@l_G>p&s z=LI&HZ{;nk+ZrjoLwbo37^=7}#qd4SUb(>Il$8xK{N3J)V)&+_o`9YWj4-=rXab#?X4n~S4zcv=w6AKTk^mjUtEv^xEu zeCg)zhuOF2%=!6BB?{4eg*5|F|Bx8dA=~rh(g%C<=#&%$C9Ktq{m+S6*%2>N8pZZT z_F$+2&w2j3*8%gYfPiBo>HgV+CExHFy)NzC3-Y1$4HOhiYP&OyfYe-9##*aw$jI5giCR4%7%7g*<`YS40nd!oTks@lEY;?@` zV{+Q9t*wuCTP~@ps=B#%i7jb+txKwOEGLePoIN}QBPUaF@!X!UQh)_NHzKKoZ3VZ8 zzPW{X;$>h0^m64a{hP-y9?W7W!HXAVYANGux1(0k2;CB>(m@>0IBHHI;Ly z)A;z$Gke6v3bdt9>rM_x(?tlM!oy2Mx^{m2coMM|g9GnLFy?Sxxe#stW|K)K=+*Tb zMdbIQ7*};vbutI+bG6a;-Rc7*sBXQ{&XHx4)6mwAjf`}J`O4>~!RYX~x9>Az*_-8Jh%Ik~ zU!h*2;Py_Ue@D!R{Jt`Ucb@ctV01-6F6NIXTv&r37Z}SZvP+c(!!GsYjXG zIo`Vyfuq%~*z6*GeSNtw20AJ#|Cujez5s&*<`9pEK|>P}kxppu63crpfWN1w$6>6- zUFzzS-u$}5V1JNxT~HQro+E1z@Z7HbG5-tAYQ0vCI>B>OfQovUk%)Z4I0=crJiKLK zY}`{=vCC(01M9Lk7&$S=_VIJVPsSdt`}bKo%UOQ!$|5FNaOd~;r=z0-tvs#30|jU2 zO)zdjpe3cG8s4dAXy@u_xoQDG2SHGv|J`EqB!HZkj#HoQgwyLxkyx3T5wahzhrD5} z!zzh%oF*8K*tcAX#CCQXR=e<;oWJPH%E~I`gg*ji2U}3eLNt=q4FIbH&;qRx@CB04 z1GEeYI%$f7>JK(=(@Ib1LWRRrWK@*;V~UeJAcgJ#J0Y0B^2O8~{#fwXUW}9QuGODe zS^1i0fK02D?wk%UE}_Z13Id9k0k&f`xf;32SANnNvwOnv(@a$q-Cgu$E}mMIEF!{*TcAyUC}A^^8v;p->Fz~q$<|H??WX;e6+W> zSSv^S`gbswx_kTfZF_tEVbBy!RB8Irb8>Ken`{ap*o8snU+$UUMmBZnJTR#@E&Y>B zTp^pCAtIvS=UDFzqptPz~S%ICQuE0UcONs({njzXXiV2?pRsP!!vn# ziRJFiG9lvzKlt5XWI5=W03Uve7gEmu34J8|NS3IP-W_NZd^glD0$?oWv3>tIIpKN+ zYJVgf_Jp4wULzl@Ko9|PImR|NHo}eoV3n&^Iu8`GWJb4WSq1s7t?UUD2<$cAd|sgvlOk)bm7e- zCMG6bTfls_9uxrFw&!}La`J0o1N44=tGu+dG?O(6_pzhB9duqtOLKF(2OC{eZ}~52 z8a`#eg87r-t@y;n#lb9bxX?7va|pISJlCZ$%sx=qd(hV41VBx?pPA&hE0 z!B(j%)a|((`rH8V6*>*|7$yI{b-*%)m5wv;FZl%3a1drEpvM-*AhO;}Z^zPnj>By7 z)1~$`YJ3t861@7nyu4v+0xTB0<}TI9wZBly=xzmt5Re7uZv-iovwcUqYB_}lZpD`+ zZCzV&)6IW~yKA=*_Aeg*LY4~-3-f{@64+a%>N-$#9sqd#vl+!bX?y4$g?Z%VTxPPJ)Mw( z^%%E=#1TY_w6ruwDk)6{A#_vLt(}LyyIzy*>3P^!2vRx$ zyvo$EW(ViZWL3*ymqqf7_ti?@e_qr1zjNo`g+|ufew-VevGlj~twAH~u>}z6c|%Je zq6ZHTZ*vLvOP9mQf8VFVNuWHEE>{00>TOazu7qrFBK4us1r$Z5J(Q&|@y9ZrApQg; zC)eEIPXu9Y1A-#U_(wfI?RDE~uuMt2`jtBJ{DBx0*N+}8!Ufg++{OWm#5{2_%nI(y z`QcX`xeo%^Xtvw7e^( z%`BR`hx;plQCFkfKfh7DrIvpY9z-6;MS+GlK@5C&4FM@;5kdo5G z^Aio7SPyJyXuvI#r^SfsLn9VlKxkF^12S%lyt3uD!4#w`-#OZ7U=jU&NU_k$jT3Ro z%*X&@BZsu0aizD}70{HNk3X#t3rnhPV0`@frKcZHOy2v0tsYd9>3~7BBLrE6dt^J# z%OiJRhqYyJKO8DD+uq(Lke|jvmV!WEP*4EAc=`9rm%$-TUNAs^5h7D;jy78N>E=A} zVA3}O3KWIwgQ3t;Q5gaECeP<5kq}3Lqy>$Ipm~;gP@cWY^a-G%iUiUsi9WZrDdNJ& zic?cr`1x-O(uIA5rVxlWf(uT`qd`-)P8SW}ta;4A&EZ%~#Xtx32_A3nqrSd7GEbnk z5m3>}z5^NNvrD~5waZexe)DB_Ywo{FCh`c9kg%|^VhhrSc$ld=W9@TOMpfMG*p0rV z{vTl~eeZC~v$MbEEKy$tZc6VvE{{~g#H}dUet!OjX)|%pgW0Z>mC@?*#EOSA?J>$i&PbLAjkQeP2M)#>Wn}ju z=a<0FlV45tSSF9pA^~CjZK%5J>{g)GN>rAYZ>g!Nxn?u`cWzFghSYZMTx4u4M@ogo z9%v-?VImD+Ln&k@2t_+PJA--c0Fi3ku6PZmKn@NS9wYliLKs$X5jZkwXTd`e@D3ri z{q-J!nB-(}t3ED2YbgD`dLM}uk<*z&x)k5)(}b=3$Yh(7wK60mM7rvkrOI0kz;kWf z1tn)0uJd~zdM2Vlm@oA@j2BN=%8AC<)3c_Ab6|AT!0s%Mg~hCoj}KU~ver8~I7nLj zy@VD(h4BesrktD{-0iRHKyL#4%W=(3N=iz!CLG24Sq{tb!lCr$Q|XKMIMk9wjT`VT zvg*pcd5dIyLLn*I1O0fJ5Ico~GQ@g8^0_4CW`qyK1Oli!IcQFC1;@Duu+r z#)*lUaSQPczyu@(6u8k^#2PQXBMOS>Zq5H1{W@q~s@6>Z`$J+}41k z<^TPG*+tiRhRi4KTk~3J7niP%bQB=i=faFux}oc)#--@meC1-vxu6JqG zBj?VYlaiK>u|%KBxR0u9qc!|rE~vb{=3Mpo^4pPX||CklJLuc5=%hEEn5|{xJX$ODYtThMt0{d-bb3b zabGC3`~^0b`2;=ZJcaxuVPDu-_S@u3zu(!gL;NWzT2U2MRcD&GsvOdu&;CcD1`A5+ z3W{EM_Mz3q)4G3XnSnQHxFR0!DX9&HYiYEYQ0^)OJ1tXz$jQIR0}~(FKbZH{!NCD# zJn`_@7!y5>lB0_Yb#M=^B7I-u*~Ibv{e5odu?Vj3;v4F(cLaq#FP%gKvdw(^b6^+8 zqpYOl6|CtZE@A*i4m_WqI<&_^{DPm)jZx{VtE)o|qp7Ls%4TL}HkfZTXpKgr8>#1) z02#i2@|?uPHDE=J;|~Eqb#S=yr7+|6v1>WbbG|QB(yA#7?>-t4-Pe#BT^n2?gB?pr z#=wAfP3>@xKi}5vVP$RoiqFG!FSu@T7-P}iM+Z19ABXSIpWcLZrU~XV+S}@TXv`P% z7BF5K{rxs-JYC2Wg@uKcm6ffpficq1&?qV{CS?*0qOMVYtI@{W*wSLucawRP*OZNr zkPuZJm2~y$)o=!pXRn~NcN@&s%z9}>_y<@PTY^7w+s3I!1!?&8anu3=QD4&nNCxOJ zmkJT=f`VRRz`}9VMUc^>g-M0rsSrzVm?xk zMN-n8rze>Ks>_tcL`Q=Q%D4CPR+aqr-M$7@&dv86H`XJ&l40u@SPk3lY=37Y>sGvW zc;F;uX<7dHvxczF;Oc4tQ~*(&-Zr>_m8ba2!pnNsIXSZm3XVMTrlFRP`jI@XR!4x!ER@9XiBuGu&<;iBZGgFUHNO$HJf&L6F_84j2M{F2b}iJ7)qBV zYE%hYSRI6=Pqcdv@~T!O~RF0XE7#}C5#nwK30C`swMq17xVvt z;Q-XpZw(E0D}$LUcVqN)b#?O`vZ8R~Eu|p=DJdz{)z$n6yc1j$bpv)*<1PD)7{TS-F4*Y7d?fBRUZdD(fdWMOKi(2x* zG@t@t@qGRL{Gx_=D=MqOA%vKxBVJ6Hot;-$7$GY9=rHA5+Dw+fp&^Z!dm5Z-TEAy z%H23SOj7Ak*4SlbYZ~+p^#HeSe)eDV9iQ$BFIuO-P&52j0c21xc276|J|>eXyuTl( zuzbGZhKLnGG5>6BN4=)>YyUV>1B?i9EloL{WH=M~ZXkmzHkR?|C}ax&K1iulm45sT zt2|CBK0Z5Zy}QI~tHtHZD&uQtXjml6G}qm|ykY3Q1^gFyqio2_$%oPJzk8b7#selu zM0ZIip)kO2m$P|!QP7=wxR9Fn`T*RV=IrwvbM<@Hvu=3zbmkEjJ&Lm{UYz(&! zS@Yw$?&D%>=di<9tdZCnO<`Q@M0|JRAnK}}`_wzzO^!70QMr@2!dRDqoTV<*sfE(A zfB&i!_ra)CZ}hctVbG(K;;Uit4B2BV5owAerrx3l^NGS_pDHRU+)$-bdVRUp3b$;Q zz_*7}&8rCGyo* zyx&(y2H3gd}X4`zyN$tq6xYLtLwG<%TbJEs(btU*h>>V zn&LsXkyF)+Bh{{Uf8fR&+Jng1sfM|{XQVYXba{pWdG)9Q@4DBoN28KGo6B#}d*JWi zEjA=x8soik<$H|IH`Xqx?%tKdS|+~ElSM4{iew#)H9l_Wg600sE`soCvPY%$ z;P}gzUzvXf5j+H6dZeotIQzf--X+c!-2)W}5QtyC=rRyo{5ml)0p%&g!=}sAny@gF zlam1w$Vt(_itGgLXFU{h3A6(Nl@5bpfqXcVfriEf|Z$tR< z`nsc}^Wg35JExO9EOmAQ?iuJN#K(UF!Z3yPi%frizeN`Zy#9&;YlqMka9j0}PrpFF z(cIC|0o{W%#Z*Rcgu~K}9FM!hhPZ-3ZC$>>mS`2LEC-6B=e~Dc&4sM%C}X#j{ugrm zEA>lX%vf_u!W7(+E(R^1g-hDr+Ok>oFy8$Hrw!Lb#qmtCb@R;F6N~5kh`nQyf35)= z_;m{I2P{+o-_KeHlA!tkzTxx@+W3EA8YdXIq7t_S1attzc6N~|@4qMaV~*&4n!V2#tww=u<(h5qx6wF!obiVF5SP{hto zPQVt=IuW*Ad)Ge?B}I%9px$NRfEE`YRUFyavX(F?WS8vR9I&#StuIRVNQU0vl1I&5 z#6oH4f9VGP2R3`ix;6PWJX}p(z2~j+tIOQn3rVNrTj$4pLly8pgyrYwcdI1i+2kL2 zu>K9eo{Qa7+9UVMeT=oDC zUd*IE-8_SJDJKXC?3n~Rq0oN?#DAgVje>aY0y4da;b*0U84xv%MhmEp2cueLKXq>n zU{N+1Nn8JMGkycr|FUX&hZlYtL0kUlsAilk1->}_tMWK`%r7X@Ia(>t{#VCdQC3wZ JPwM`&{{eV(x+wqv literal 0 HcmV?d00001 diff --git a/docs/screenshots/focused-toolkit/nodes2-start-focused-dark.png b/docs/screenshots/focused-toolkit/nodes2-start-focused-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f241258dd20232386771e7e964a5f54ccbb24ff9 GIT binary patch literal 81192 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

    c=!J3&Um+yhnQbgDGPu#v)>Akxx_$WY0gZOn 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

    CR{q?7Cmg2>n)rhQH*m#>vM0 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 literal 0 HcmV?d00001 diff --git a/prompt_manager.py b/prompt_manager.py index 90904c0..a0d9fce 100644 --- a/prompt_manager.py +++ b/prompt_manager.py @@ -281,3 +281,18 @@ class PromptManager(PromptManagerBase, ComfyNodeABC): combined = f"{text}|{prepend_text}|{append_text}|{category}|{tags}" return hashlib.sha256(combined.encode()).hexdigest() + + +class PromptManagerFocused(PromptManager): + """The editor-first UI uses the existing encoding and storage contract.""" + + @classmethod + def INPUT_TYPES(cls) -> InputTypeDict: + inputs = super().INPUT_TYPES() + for name in ("prepend_text", "append_text"): + kind, options = inputs["optional"][name] + inputs["optional"][name] = ( + kind, + {**options, "default": "", "forceInput": True}, + ) + return inputs diff --git a/tests/browser/focused-node.spec.mjs b/tests/browser/focused-node.spec.mjs new file mode 100644 index 0000000..e43476c --- /dev/null +++ b/tests/browser/focused-node.spec.mjs @@ -0,0 +1,244 @@ +import {readFileSync} from 'node:fs'; +import {test,expect} from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; +import {startCoverage,saveCoverage} from '../../tools/vendor/browser-coverage.mjs'; + +test.beforeEach(async({page,browserName})=>{ + await page.addInitScript(()=>Object.defineProperty(Crypto.prototype,'randomUUID',{value:undefined,configurable:true})); + await startCoverage(page,browserName); + page.focusedErrors=[];page.on('pageerror',error=>page.focusedErrors.push(error.message)); + await page.route('**/scripts/app.js',route=>route.fulfill({contentType:'text/javascript',body:'export const app=window.fixtureApp;'})); + await page.route('**/scripts/api.js',route=>route.fulfill({contentType:'text/javascript',body:'export const api={fileURL:path=>path,queuePrompt:async(...args)=>args};'})); + await page.route('**/extensions/promptmanager/prompt_manager.js',route=>route.fulfill({contentType:'text/javascript',body:readFileSync(new URL('../../web/comfy/prompt_manager.js',import.meta.url),'utf8')})); + await page.goto('/prompt_manager/test'); + await page.evaluate(async()=>{ + document.body.replaceChildren();document.body.style.setProperty('--bg-color','#222'); + window.fixtureApp={registerExtension(extension){this.extension=extension;},ui:{settings:new EventTarget()},graph:{setDirtyCanvas(){}},canvas:{}}; + await import('/extensions/promptmanager/prompt_manager.js'); + class Node { + constructor(){this.widgets=['text','category','tags','search_text'].map(name=>({name,type:'text',value:'',options:{},inputEl:document.createElement('textarea')}));this.inputs=['clip','prepend_text','append_text'].map(name=>({name,link:null}));this.properties={};this.size=[550,700];} + addWidget(type,name,value,callback,options){const widget={type,name,value,callback,options};this.widgets.push(widget);return widget;} + addDOMWidget(name,type,element){document.body.append(element);return {element};} + setSize(size){this.size=size;}setDirtyCanvas(){} + serialize(){return {widgets_values:this.widgets.map(widget=>widget.value),properties:{...this.properties}};} + configure(data){this.widgets.forEach((widget,index)=>{widget.value=data.widgets_values[index];});this.properties={...data.properties};} + } + await fixtureApp.extension.beforeRegisterNodeDef(Node,{name:'PromptManagerFocused'},fixtureApp); + window.node=new Node();node.onNodeCreated(); + }); + await expect(page.locator('.pm-focused')).toBeVisible(); +}); +test.afterEach(async({page,browserName})=>{await saveCoverage(page,browserName);expect(page.focusedErrors).toEqual([]);}); + +test('Focused previews before loading, keeps metadata optional and composes text',async({page})=>{ + await page.route('**/prompt_manager/recent?**',route=>route.fulfill({json:{success:true,results:[{id:1,text:'Library portrait',category:'Portrait',tags:['studio']}]}})); + await page.getByRole('textbox',{name:'Main prompt',exact:true}).fill('My draft'); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + await page.getByRole('button',{name:'Recent',exact:true}).click(); + await page.getByRole('button',{name:/Library portrait/}).click(); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toHaveValue('My draft'); + await page.getByRole('switch',{name:'Load metadata'}).uncheck(); + await page.getByRole('button',{name:'Use prompt',exact:true}).click(); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toHaveValue('Library portrait'); + await page.getByText('Composition · prepend / append',{exact:true}).click(); + await page.getByLabel('Prepend',{exact:true}).fill('trigger'); + await page.getByLabel('Append',{exact:true}).fill('detailed'); + await page.getByText('Composed text preview',{exact:true}).click(); + await expect(page.locator('[data-composed-preview]')).toHaveText('trigger Library portrait detailed'); + expect(await page.evaluate(()=>node.serialize().widgets_values.slice(0,6))).toEqual(['Library portrait','','','','trigger','detailed']); +}); + +test('Focused restores workflow values and disclosures and protects connected text',async({page})=>{ + await page.getByRole('textbox',{name:'Main prompt',exact:true}).fill('Saved draft'); + await page.getByText('Metadata · category / tags',{exact:true}).click(); + await page.getByLabel('Category',{exact:true}).fill('Saved category'); + await page.evaluate(()=>{const saved=node.serialize();node.configure(saved);}); + await expect(page.getByLabel('Category',{exact:true})).toBeVisible(); + await expect(page.getByLabel('Category',{exact:true})).toHaveValue('Saved category'); + await page.evaluate(()=>{node.inputs.push({name:'text',link:9});node.onConnectionsChange();}); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toBeHidden(); + await expect(page.getByText('Text is supplied by an upstream connection.',{exact:true})).toBeVisible(); + await page.evaluate(()=>{node.inputs.find(input=>input.name==='text').link=null;node.onConnectionsChange();}); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toHaveValue('Saved draft'); +}); + +test('Focused searches quoted tags with Enter and explicitly loads metadata', async ({page}) => { + let requested; + await page.route('**/prompt_manager/search?**', async route => { + requested = new URL(route.request().url()); + await route.fulfill({json:{success:true,results:[{id:7,text:'Selected fox',category:'Animals',tags:['film grain','fox']}]}}); + }); + await page.getByRole('textbox',{name:'Main prompt',exact:true}).fill('Preserved draft'); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + const query=page.getByRole('searchbox',{name:'Search saved prompts'}); + await query.fill('fox tag:"film grain"'); + await query.press('Enter'); + await page.getByRole('button',{name:/Selected fox/}).click(); + expect(requested.searchParams.get('text')).toBe('fox'); + expect(requested.searchParams.get('tags')).toBe('film grain'); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toHaveValue('Preserved draft'); + await page.getByRole('button',{name:'Use prompt',exact:true}).click(); + await page.getByText('Metadata · category / tags',{exact:true}).click(); + await expect(page.getByLabel('Category',{exact:true})).toHaveValue('Animals'); + await expect(page.getByLabel('Tags',{exact:true})).toHaveValue('film grain, fox'); + expect(await page.evaluate(()=>node.serialize().widgets_values.slice(0,4))).toEqual(['Selected fox','Animals','film grain, fox','fox tag:"film grain"']); +}); + +test('Focused reports empty queries, no results, and safely renders backend and HTTP errors', async ({page}) => { + let requests=0; + let mode='empty'; + const malicious=''; + await page.route('**/prompt_manager/search?**', async route => { + requests++; + if(mode==='http') return route.fulfill({status:503,body:'Unavailable'}); + await route.fulfill({json:mode==='error'?{success:false,error:malicious}:{success:true,results:[]}}); + }); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + const search=page.getByRole('button',{name:'Search',exact:true}); + await search.click(); + await expect(page.locator('.pm-editor-library [role="status"]')).toHaveText('Enter search text or tag:name.'); + expect(requests).toBe(0); + await page.getByRole('searchbox',{name:'Search saved prompts'}).fill('missing'); + await search.click(); + await expect(page.locator('.pm-editor-library [role="status"]')).toHaveText('No matching prompts.'); + await expect(page.locator('.pm-editor-result')).toHaveCount(0); + mode='error'; + await search.click(); + await expect(page.getByRole('alert')).toHaveText(`Could not load prompts: ${malicious}`); + await expect(page.locator('.pm-editor-library img')).toHaveCount(0); + expect(await page.evaluate(()=>window.focusedInjected)).toBeUndefined(); + mode='http'; + await search.click(); + await expect(page.getByRole('alert')).toContainText('HTTP 503'); + await page.getByRole('searchbox',{name:'Search saved prompts'}).fill(''); + await search.click(); + await expect(page.getByRole('alert')).toHaveCount(0); + await expect(page.locator('.pm-editor-library [role="status"]')).toHaveText('Enter search text or tag:name.'); + mode='empty'; + await page.getByRole('searchbox',{name:'Search saved prompts'}).fill('missing'); + await search.click(); + await expect(page.getByRole('alert')).toHaveCount(0); + await expect(page.locator('.pm-editor-library [role="status"]')).toHaveText('No matching prompts.'); +}); + +test('Focused treats saved prompt content and metadata as text', async ({page}) => { + const malicious=''; + await page.route('**/prompt_manager/recent?**',route=>route.fulfill({json:{success:true,results:[{id:8,text:malicious,category:'',tags:['']}]}})); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + await page.getByRole('button',{name:'Recent',exact:true}).click(); + await page.locator('.pm-editor-result').click(); + await expect(page.locator('.pm-editor-selection .pm-editor-preview')).toHaveText(malicious); + await expect(page.locator('.pm-editor-library img, .pm-editor-library svg, .pm-editor-library script')).toHaveCount(0); + await page.getByRole('button',{name:'Use prompt',exact:true}).click(); + await expect(page.getByRole('textbox',{name:'Main prompt',exact:true})).toHaveValue(malicious); + expect(await page.evaluate(()=>window.focusedInjected)).toBeUndefined(); +}); + +async function deferLibraryRequests(page) { + await page.evaluate(()=>{ + const originalFetch=window.fetch; + window.libraryRequests=[]; + window.fetch=(url,options)=>{ + if(!/\/prompt_manager\/(search|recent)\?/.test(String(url))) return originalFetch(url,options); + return new Promise(resolve=>window.libraryRequests.push({url:String(url),signal:options.signal,resolve})); + }; + window.completeLibraryRequest=(index,text)=>libraryRequests[index].resolve(new Response(JSON.stringify({success:true,results:[{id:index,text}]}),{status:200,headers:{'Content-Type':'application/json'}})); + }); +} + +test('Focused keeps the latest result when searches and recent requests overlap', async ({page}) => { + await deferLibraryRequests(page); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + await page.getByRole('searchbox',{name:'Search saved prompts'}).fill('older search'); + await page.getByRole('button',{name:'Search',exact:true}).click(); + await page.getByRole('button',{name:'Recent',exact:true}).click(); + expect(await page.evaluate(()=>libraryRequests[0].signal.aborted)).toBe(true); + await page.evaluate(()=>completeLibraryRequest(1,'Latest recent')); + await expect(page.locator('.pm-editor-result')).toHaveText('Latest recent'); + await page.evaluate(()=>completeLibraryRequest(0,'Stale search')); + await expect(page.locator('.pm-editor-result')).toHaveText('Latest recent'); + await page.getByRole('button',{name:'Recent',exact:true}).click(); + await page.getByRole('searchbox',{name:'Search saved prompts'}).fill('latest search'); + await page.getByRole('button',{name:'Search',exact:true}).click(); + expect(await page.evaluate(()=>libraryRequests[2].signal.aborted)).toBe(true); + await page.evaluate(()=>completeLibraryRequest(3,'Latest search')); + await expect(page.locator('.pm-editor-result')).toHaveText('Latest search'); + await page.evaluate(()=>completeLibraryRequest(2,'Stale recent')); + await expect(page.locator('.pm-editor-result')).toHaveText('Latest search'); +}); + +test('Focused removal aborts work and stops theme and control listeners', async ({page}) => { + await deferLibraryRequests(page); + await page.getByRole('button',{name:'Browse library',exact:true}).click(); + await page.getByRole('button',{name:'Recent',exact:true}).click(); + await expect(page.locator('.pm-focused')).toHaveAttribute('data-ca-theme','dark'); + const removed=await page.evaluate(()=>{ + node.onRemoved(); + document.body.style.setProperty('--bg-color','#ffffff'); + fixtureApp.ui.settings.dispatchEvent(new Event('Comfy.ColorPalette.change')); + return {requestAborted:libraryRequests[0].signal.aborted,scopeAborted:node._focusedScope.signal.aborted}; + }); + expect(removed).toEqual({requestAborted:true,scopeAborted:true}); + await page.evaluate(()=>completeLibraryRequest(0,'Late result after removal')); + await expect(page.locator('.pm-editor-result')).toHaveCount(0); + await expect(page.locator('.pm-focused')).toHaveAttribute('data-ca-theme','dark'); + await page.getByRole('button',{name:'Hide library',exact:true}).click(); + await expect(page.getByRole('button',{name:'Hide library',exact:true})).toBeVisible(); +}); + +test('Focused fields reflow with node width and follow live host themes', async ({page}) => { + await page.setViewportSize({width:1000,height:1000}); + await page.getByText('Composition · prepend / append',{exact:true}).click(); + await page.evaluate(()=>{node._focusedView.element.style.width='700px';node._focusedView.element.style.height='850px';}); + const prepend=page.getByLabel('Prepend',{exact:true}); + const append=page.getByLabel('Append',{exact:true}); + let first=await prepend.boundingBox(),second=await append.boundingBox(); + expect(Math.abs(first.y-second.y)).toBeLessThan(2); + expect(second.x).toBeGreaterThan(first.x+first.width); + await page.evaluate(()=>{node._focusedView.element.style.width='300px';}); + await expect.poll(async()=>{const a=await prepend.boundingBox(),b=await append.boundingBox();return b.y>a.y+a.height;}).toBe(true); + expect(await page.locator('.pm-focused').evaluate(element=>element.scrollWidth<=element.clientWidth+1)).toBe(true); + const dark=await prepend.evaluate(element=>getComputedStyle(element).backgroundColor); + await page.evaluate(()=>document.body.style.setProperty('--bg-color','#ffffff')); + await expect(page.locator('.pm-focused')).toHaveAttribute('data-ca-theme','light'); + await expect.poll(()=>prepend.evaluate(element=>getComputedStyle(element).backgroundColor)).not.toBe(dark); + await page.evaluate(()=>document.body.style.setProperty('--bg-color','#222222')); + await expect(page.locator('.pm-focused')).toHaveAttribute('data-ca-theme','dark'); + await expect.poll(()=>prepend.evaluate(element=>getComputedStyle(element).backgroundColor)).toBe(dark); +}); + +test('Focused composed preview preserves main prompt whitespace like queued execution', async ({page}) => { + await page.getByRole('textbox',{name:'Main prompt',exact:true}).fill(' draft '); + await page.getByText('Composition · prepend / append',{exact:true}).click(); + await page.getByLabel('Prepend',{exact:true}).fill(' trigger '); + await page.getByLabel('Append',{exact:true}).fill(' detail '); + await page.getByText('Composed text preview',{exact:true}).click(); + expect(await page.locator('[data-composed-preview]').textContent()).toBe('trigger draft detail'); +}); + +test('Focused exposes the visible text element for autocomplete and host extension listeners', async ({page}) => { + expect(await page.evaluate(()=>node.widgets.find(widget=>widget.name==='text').inputEl===document.querySelector('.pm-focused textarea'))).toBe(true); +}); + +test('Focused expands its main editor when the node gets taller',async({page})=>{ + await page.locator('.pm-focused').evaluate(element=>{element.style.width='550px';element.style.height='800px';}); + const editor=await page.getByRole('textbox',{name:'Main prompt',exact:true}).boundingBox(); + expect(editor.height).toBeGreaterThan(400); +}); + +test('Focused respects the existing Web UI display preference',async({page})=>{ + await page.route('**/prompt_manager/settings',route=>route.fulfill({json:{success:true,settings:{webui_display_mode:'newtab'}}})); + await page.evaluate(()=>{ + const Node=node.constructor;node.onRemoved();node._focusedView.element.remove();node=new Node();node.onNodeCreated(); + window.open=(...args)=>{window.openArgs=args;return {};}; + }); + await page.evaluate(()=>node._focusedSettingsReady); + await page.getByRole('button',{name:'Web UI ↗',exact:true}).click(); + expect(await page.evaluate(()=>window.openArgs)).toEqual(['/prompt_manager/web','_blank']); +}); + +test('Focused reports blocked Web UI popups without leaving the workflow',async({page})=>{ + await page.evaluate(()=>{window.open=()=>null;}); + await page.getByRole('button',{name:'Web UI ↗',exact:true}).click(); + await expect(page.locator('.pm-focused [role="alert"]')).toContainText('Allow popups'); + await expect(page.locator('.pm-focused')).toBeVisible(); +}); diff --git a/tests/comfyui/focused-node.spec.mjs b/tests/comfyui/focused-node.spec.mjs new file mode 100644 index 0000000..74f9203 --- /dev/null +++ b/tests/comfyui/focused-node.spec.mjs @@ -0,0 +1,211 @@ +import { test, expect } from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; +import { installHostHooks } from './host-fixture.mjs'; + +installHostHooks(test, ['PromptManager', 'PromptManagerText', 'PromptSearchList', 'PromptManagerFocused']); + +async function addFocused(page) { + return page.evaluate(async () => { + const { app } = await import('/scripts/app.js'); + const node = LiteGraph.createNode('PromptManagerFocused'); + if (!node) throw new Error('PromptManagerFocused must be registered by the real host'); + app.graph.add(node); + node.setSize([680, 1050]); + app.canvas.ds.scale = .8; + app.canvas.centerOnNode(node); + return node.id; + }); +} + +async function model(page, id) { + return page.evaluate(async id => { + const { app } = await import('/scripts/app.js'); + return Object.fromEntries(app.graph.getNodeById(id).widgets.map(widget => [widget.name, widget.value])); + }, id); +} + +async function seed(request, text, category = 'Focused host tests', tags = ['focused-host']) { + const response = await request.post('/prompt_manager/save', { data: { text, category, tags } }); + expect(response.ok()).toBe(true); + expect((await response.json()).success).toBe(true); +} + +async function browse(page, text) { + const root = page.locator('.pm-focused'); + await root.getByRole('button', { name: 'Browse library', exact: true }).click(); + await root.getByRole('button', { name: 'Recent', exact: true }).click(); + await root.locator('.pm-editor-results').getByRole('button').filter({ has: page.getByText(text, { exact: true }) }).click(); + return root; +} + +test('Focused definition preserves Classic encoding and exposes composition STRING sockets', async ({ request }) => { + const definitions = await (await request.get('/object_info')).json(); + const focused = definitions.PromptManagerFocused; + expect(focused).toBeDefined(); + expect(focused.display_name).toBe('Prompt Manager (Focused)'); + expect(focused.output).toEqual(definitions.PromptManager.output); + expect(focused.input.required).toEqual(definitions.PromptManager.input.required); + for (const name of ['prepend_text', 'append_text']) { + expect(focused.input.optional[name][0]).toBe('STRING'); + expect(focused.input.optional[name][1]).toMatchObject({ forceInput: true, default: '' }); + } +}); + +test('Focused preview, explicit load, composition, renderer changes and workflow reload preserve state', async ({ page, request }, testInfo) => { + const text = `Focused selected ${testInfo.project.name}`; + await seed(request, text); + const id = await addFocused(page); + const root = page.locator('.pm-focused'); + const editor = root.getByRole('textbox', { name: 'Main prompt', exact: true }); + await expect(root).toBeVisible(); + expect(await editor.evaluate(async (element, id) => { + const { app } = await import('/scripts/app.js'); + return app.graph.getNodeById(id).widgets.find(widget => widget.name === 'text').inputEl === element; + }, id)).toBe(true); + await editor.fill('Original editing text'); + await browse(page, text); + await expect(editor).toHaveValue('Original editing text'); + expect((await model(page, id)).text).toBe('Original editing text'); + await root.getByRole('button', { name: 'Use prompt', exact: true }).click(); + await expect(editor).toHaveValue(text); + await expect.poll(() => model(page, id)).toMatchObject({ text, category: 'Focused host tests', tags: 'focused-host' }); + await root.getByText('Composition · prepend / append', { exact: true }).click(); + await root.getByRole('textbox', { name: 'Prepend', exact: true }).fill('LoRA trigger'); + await root.getByRole('textbox', { name: 'Append', exact: true }).fill('high detail'); + await root.getByText('Composed text preview', { exact: true }).click(); + await expect(root).toContainText(`LoRA trigger ${text} high detail`); + for (const renderer of [!testInfo.project.metadata.initialRenderer, testInfo.project.metadata.initialRenderer]) { + await page.evaluate(async renderer => { + const { app } = await import('/scripts/app.js'); + await app.ui.settings.setSettingValue('Comfy.VueNodes.Enabled', renderer); + app.canvas.centerOnNode(app.graph._nodes[0]); + }, renderer); + await expect.poll(() => page.evaluate(() => LiteGraph.vueNodesMode)).toBe(renderer); + await expect(root).toHaveCount(1); + await expect(editor).toHaveValue(text); + } + const queued = await page.evaluate(async id => { + const { app } = await import('/scripts/app.js'); + const prompt = await app.graphToPrompt(); + await app.loadGraphData(app.graph.serialize()); + return prompt.output[String(id)].inputs; + }, id); + expect(queued).toMatchObject({ text, category: 'Focused host tests', tags: 'focused-host', prepend_text: 'LoRA trigger', append_text: 'high detail' }); + await expect(editor).toHaveValue(text); + await expect.poll(() => model(page, id)).toMatchObject({ text, prepend_text: 'LoRA trigger', append_text: 'high detail' }); + await page.screenshot({ path: testInfo.outputPath('focused-reloaded.png') }); + await page.evaluate(async id => { const { app } = await import('/scripts/app.js'); app.graph.remove(app.graph.getNodeById(id)); }, id); + await expect(root).toHaveCount(0); +}); + +test('Focused search preview respects metadata opt-out', async ({ page, request }, testInfo) => { + const text = `Focused search ${testInfo.project.name}`; + await seed(request, text, 'Incoming category', ['incoming-tag']); + const id = await addFocused(page); + const root = page.locator('.pm-focused'); + await root.getByText('Metadata · category / tags', { exact: true }).click(); + await root.getByRole('textbox', { name: 'Category', exact: true }).fill('Keep category'); + await root.getByRole('textbox', { name: 'Tags', exact: true }).fill('keep-tag'); + await root.getByRole('button', { name: 'Browse library', exact: true }).click(); + await root.getByRole('searchbox', { name: 'Search saved prompts', exact: true }).fill(text); + await root.getByRole('button', { name: 'Search', exact: true }).click(); + await root.locator('.pm-editor-results').getByRole('button').filter({ has: page.getByText(text, { exact: true }) }).click(); + await root.getByRole('switch', { name: 'Load metadata', exact: true }).uncheck(); + await root.getByRole('button', { name: 'Use prompt', exact: true }).click(); + await expect.poll(() => model(page, id)).toMatchObject({ text, category: 'Keep category', tags: 'keep-tag' }); +}); + +test('Focused connected STRING inputs remain linked through UI actions and reload', async ({ page, request }, testInfo) => { + const text = `Connected library ${testInfo.project.name}`; + await seed(request, text); + const id = await addFocused(page); + const root = page.locator('.pm-focused'); + await root.getByRole('textbox', { name: 'Main prompt', exact: true }).fill('Local main'); + await root.getByText('Composition · prepend / append', { exact: true }).click(); + await root.getByRole('textbox', { name: 'Prepend', exact: true }).fill('Local prepend'); + await root.getByRole('textbox', { name: 'Append', exact: true }).fill('Local append'); + await root.getByText('Composition · prepend / append', { exact: true }).click(); + const links = await page.evaluate(async id => { + const { app } = await import('/scripts/app.js'); + const { convertToInput } = await import('/extensions/core/widgetInputs.js'); + const target = app.graph.getNodeById(id); + convertToInput(target, target.widgets.find(widget => widget.name === 'text')); + const result = {}; + for (const name of ['text', 'prepend_text', 'append_text']) { + const source = LiteGraph.createNode('PrimitiveString'); + app.graph.add(source); + source.pos = [target.pos[0] - 360, target.pos[1] + Object.keys(result).length * 150]; + source.widgets.find(widget => widget.name === 'value').value = `Connected ${name}`; + const slot = target.inputs.findIndex(input => input.name === name); + if (slot < 0) throw new Error(`Missing ${name} input socket`); + source.connect(0, target, slot); + result[name] = [String(source.id), 0]; + } + app.canvas.centerOnNode(target); + return result; + }, id); + await browse(page, text); + await expect(root.getByRole('textbox', { name: 'Main prompt', exact: true })).toBeHidden(); + await expect(root.getByRole('button', { name: 'Use prompt', exact: true })).toBeDisabled(); + await root.getByText('Composition · prepend / append', { exact: true }).click(); + for (const name of ['Prepend', 'Append']) await expect(root.getByRole('textbox', { name, exact: true })).toBeHidden(); + const guardedValues = await model(page, id); + await root.locator('textarea, input').evaluateAll(inputs => { + for (const input of inputs) { + if (!input.hidden && !input.closest('[hidden]')) continue; + input.value = 'Attempt to replace upstream text'; + input.dispatchEvent(new Event('input', { bubbles: true })); + } + }); + expect(await model(page, id)).toMatchObject(guardedValues); + for (let reload = 0; reload < 2; reload++) { + const inputs = await page.evaluate(async ({ id, reload }) => { + const { app } = await import('/scripts/app.js'); + if (reload) await app.loadGraphData(app.graph.serialize()); + return (await app.graphToPrompt()).output[String(id)].inputs; + }, { id, reload }); + expect(inputs).toMatchObject(links); + } + await expect(root.getByRole('button', { name: 'Use prompt', exact: true, includeHidden: true })).toBeDisabled(); + const disconnected = await page.evaluate(async id => { + const { app } = await import('/scripts/app.js'); + const node = app.graph.getNodeById(id); + for (const name of ['text', 'prepend_text', 'append_text']) node.disconnectInput(node.inputs.findIndex(input => input.name === name)); + return (await app.graphToPrompt()).output[String(id)].inputs; + }, id); + expect(disconnected).toMatchObject({ text: 'Local main', prepend_text: 'Local prepend', append_text: 'Local append' }); + for (const [name, value] of [['Main prompt', 'Local main'], ['Prepend', 'Local prepend'], ['Append', 'Local append']]) { + const input = page.getByRole('textbox', { name, exact: true }); + await expect(input).toHaveCount(1); + await expect(input).toBeEditable(); + await expect(input).toHaveValue(value); + } + await page.screenshot({ path: testInfo.outputPath('focused-disconnected.png') }); +}); + +test('Focused follows actual ComfyUI light and dark palettes', async ({ page }, testInfo) => { + await addFocused(page); + for (const palette of ['light', 'dark']) { + await page.evaluate(async palette => { + const { app } = await import('/scripts/app.js'); + await app.ui.settings.setSettingValue('Comfy.ColorPalette', palette); + }, palette); + const root = page.locator('.pm-focused'); + await expect(root).toHaveAttribute('data-ca-theme', palette); + await expect(root.getByRole('button', { name: 'Browse library', exact: true })).toHaveCSS('background-color', 'rgb(8, 119, 187)'); + await page.screenshot({ path: testInfo.outputPath(`focused-${palette}.png`) }); + } +}); + +test('Focused Web UI button opens actual standalone pages', async ({ page }) => { + await addFocused(page); + const popupPromise = page.waitForEvent('popup'); + await page.locator('.pm-focused').getByRole('button', { name: 'Web UI ↗', exact: true }).click(); + const popup = await popupPromise; + await popup.waitForLoadState('domcontentloaded'); + await expect(popup).toHaveURL(/\/prompt_manager\/(web|admin)/); + await expect(popup.locator('body')).toContainText('Prompt'); + await expect(page.locator('.pm-focused').getByRole('status')).toHaveText('Web UI opened.'); + await popup.goto(new URL('/prompt_manager/gallery', page.url()).href); + await expect(popup.locator('#addPromptBtn')).toBeVisible(); + await popup.close(); +}); diff --git a/tests/comfyui/host-fixture.mjs b/tests/comfyui/host-fixture.mjs new file mode 100644 index 0000000..8246ad2 --- /dev/null +++ b/tests/comfyui/host-fixture.mjs @@ -0,0 +1,43 @@ +import { expect } from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; +import runtime from '../../tools/vendor/comfyui-runtime.json' with { type: 'json' }; + +export function installHostHooks(test, expectedTypes = ['PromptManager', 'PromptManagerText', 'PromptSearchList']) { + test.beforeEach(async ({ page, context, request }, testInfo) => { + const response = await request.get('/system_stats'); + expect(response.ok()).toBe(true); + const info = (await response.json()).system; + expect(info.comfyui_version).toBe(runtime.serverVersion); + expect(info.pytorch_version).toBe(`${runtime.torchVersion}+cpu`); + expect(info.required_frontend_version).toBe(runtime.frontendVersion); + expect(info.comfy_package_versions.find(item => item.name === 'comfyui-frontend-package')?.installed).toBe(runtime.frontendVersion); + await testInfo.attach('host-versions.json', { body: JSON.stringify(info, null, 2), contentType: 'application/json' }); + page.hostErrors = []; + page.on('pageerror', error => page.hostErrors.push(error.message)); + await context.route('**/*', async route => { + const request = route.request(); + const path = new URL(request.url()).pathname.replace(/^\/api\//, '/'); + if (path === '/settings' && request.method() === 'GET') { + const response = await route.fetch(); + return route.fulfill({ json: { ...await response.json(), + 'Comfy.VueNodes.Enabled': testInfo.project.metadata.initialRenderer, + 'Comfy.TutorialCompleted': true, 'Comfy.Workflow.Persist': false, + 'Comfy.Notification.ShowVersionUpdates': false } }); + } + if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method()) && !path.startsWith('/prompt_manager/')) return route.fulfill({ json: {} }); + return route.continue(); + }); + await page.goto('/', { waitUntil: 'domcontentloaded' }); + await expect(page.getByRole('status', { name: 'Loading ComfyUI' })).toBeHidden({ timeout: 30000 }); + await page.waitForFunction(async expectedTypes => { + const { app } = await import('/scripts/app.js'); + return !!app.graph && expectedTypes.every(name => globalThis.LiteGraph?.registered_node_types?.[name]); + }, expectedTypes); + await expect.poll(() => page.evaluate(() => LiteGraph.vueNodesMode)).toBe(testInfo.project.metadata.initialRenderer); + await page.evaluate(async () => { const { app } = await import('/scripts/app.js'); app.graph.clear(); }); + }); + + test.afterEach(async ({ page }) => { + expect(page.hostErrors).toEqual([]); + }); + +} diff --git a/tests/comfyui/prompt-manager.spec.mjs b/tests/comfyui/prompt-manager.spec.mjs index 3363131..07ae1ce 100644 --- a/tests/comfyui/prompt-manager.spec.mjs +++ b/tests/comfyui/prompt-manager.spec.mjs @@ -1,43 +1,7 @@ import { test, expect } from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; -import runtime from '../../tools/vendor/comfyui-runtime.json' with { type: 'json' }; +import { installHostHooks } from './host-fixture.mjs'; -test.beforeEach(async ({ page, context, request }, testInfo) => { - const response = await request.get('/system_stats'); - expect(response.ok()).toBe(true); - const info = (await response.json()).system; - expect(info.comfyui_version).toBe(runtime.serverVersion); - expect(info.pytorch_version).toBe(`${runtime.torchVersion}+cpu`); - expect(info.required_frontend_version).toBe(runtime.frontendVersion); - expect(info.comfy_package_versions.find(item => item.name === 'comfyui-frontend-package')?.installed).toBe(runtime.frontendVersion); - await testInfo.attach('host-versions.json', { body: JSON.stringify(info, null, 2), contentType: 'application/json' }); - page.hostErrors = []; - page.on('pageerror', error => page.hostErrors.push(error.message)); - await context.route('**/*', async route => { - const request = route.request(); - const path = new URL(request.url()).pathname.replace(/^\/api\//, '/'); - if (path === '/settings' && request.method() === 'GET') { - const response = await route.fetch(); - return route.fulfill({ json: { ...await response.json(), - 'Comfy.VueNodes.Enabled': testInfo.project.metadata.initialRenderer, - 'Comfy.TutorialCompleted': true, 'Comfy.Workflow.Persist': false, - 'Comfy.Notification.ShowVersionUpdates': false } }); - } - if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method()) && !path.startsWith('/prompt_manager/')) return route.fulfill({ json: {} }); - return route.continue(); - }); - await page.goto('/', { waitUntil: 'domcontentloaded' }); - await expect(page.getByRole('status', { name: 'Loading ComfyUI' })).toBeHidden({ timeout: 30000 }); - await page.waitForFunction(async () => { - const { app } = await import('/scripts/app.js'); - return !!app.graph && ['PromptManager', 'PromptManagerText', 'PromptSearchList'].every(name => globalThis.LiteGraph?.registered_node_types?.[name]); - }); - await expect.poll(() => page.evaluate(() => LiteGraph.vueNodesMode)).toBe(testInfo.project.metadata.initialRenderer); - await page.evaluate(async () => { const { app } = await import('/scripts/app.js'); app.graph.clear(); }); -}); - -test.afterEach(async ({ page }) => { - expect(page.hostErrors).toEqual([]); -}); +installHostHooks(test); for (const type of ['PromptManager', 'PromptManagerText']) { test(`${type} selects real database prompts and preserves text across renderers and reload`, async ({ page, request }, testInfo) => { diff --git a/tests/js/comfy-metadata.test.js b/tests/js/comfy-metadata.test.js index b634002..c895fbc 100644 --- a/tests/js/comfy-metadata.test.js +++ b/tests/js/comfy-metadata.test.js @@ -327,3 +327,37 @@ test("missing or empty metadata yields placeholders", () => { assert.equal(r.checkpoint, "Unknown"); assert.equal(extractGenerationParams(null).seed, "Unknown"); }); + + +test("Focused API metadata composes linked positive text and preserves negative role", () => { + const prompt = { + 1: { class_type: "KSampler", inputs: { positive: ["2", 0], negative: ["3", 0], model: ["4", 0] } }, + 2: { class_type: "PromptManagerFocused", inputs: { text: "a fox", prepend_text: ["5", 0], append_text: "8k" } }, + 3: { class_type: "PromptManagerFocused", inputs: { text: "blurry", prepend_text: "avoid" } }, + 4: { class_type: "CheckpointLoaderSimple", inputs: { ckpt_name: "model.safetensors" } }, + 5: { class_type: "PrimitiveString", inputs: { value: "lora trigger" } }, + }; + const result = extractGenerationParams({ prompt }); + assert.equal(result.positivePrompt, "lora trigger a fox 8k"); + assert.equal(result.negativePrompt, "avoid blurry"); +}); + +test("Focused workflow-only metadata recovers serialized fields and connected composition", () => { + const workflow = { + nodes: [ + { id: 1, type: "KSampler", inputs: [{ name: "positive", link: 1 }, { name: "negative", link: 2 }, { name: "model", link: 3 }] }, + { id: 2, type: "PromptManagerFocused", widgets_values: ["a fox", "animals", "fox", "ignored search", "stale widget", "8k"], inputs: [{ name: "prepend_text", link: 4 }] }, + { id: 3, type: "PromptManagerFocused", widgets_values: ["blurry", "negative", "bad", "ignored search", "avoid", "watermark"] }, + { id: 4, type: "UNETLoader", widgets_values: ["model.safetensors", "default"] }, + { id: 5, type: "CLIPTextEncode", widgets_values: ["lora trigger"] }, + ], + links: [ + [1, 2, 0, 1, 0, "CONDITIONING"], [2, 3, 0, 1, 1, "CONDITIONING"], + [3, 4, 0, 1, 2, "MODEL"], [4, 5, 0, 2, 0, "STRING"], + ], + }; + const result = extractGenerationParams({ workflow }); + assert.equal(result.positivePrompt, "lora trigger a fox 8k"); + assert.equal(result.negativePrompt, "avoid blurry watermark"); + assert.equal(result.checkpoint, "model.safetensors"); +}); diff --git a/tests/test_focused_node.py b/tests/test_focused_node.py new file mode 100644 index 0000000..5e9a2ef --- /dev/null +++ b/tests/test_focused_node.py @@ -0,0 +1,61 @@ +"""Focused shares encoding and tracking while exposing composition sockets.""" + +import logging +import unittest +from unittest import mock + +from prompt_manager import PromptManager, PromptManagerFocused +from utils.prompt_graph import positive_prompt_nodes, run_prompt_nodes + + +class TestFocusedNode(unittest.TestCase): + def test_focused_keeps_the_execution_contract_and_visible_string_inputs(self): + self.assertTrue(issubclass(PromptManagerFocused, PromptManager)) + self.assertEqual(PromptManagerFocused.RETURN_TYPES, PromptManager.RETURN_TYPES) + self.assertEqual(PromptManagerFocused.FUNCTION, PromptManager.FUNCTION) + focused = PromptManagerFocused.INPUT_TYPES() + for name in ("prepend_text", "append_text"): + self.assertTrue(focused["optional"][name][1]["forceInput"]) + self.assertNotIn( + "forceInput", PromptManager.INPUT_TYPES()["optional"][name][1] + ) + self.assertEqual(focused["hidden"]["unique_id"], "UNIQUE_ID") + + def test_focused_encodes_composition_and_tracks_main_text_and_graph(self): + node = PromptManagerFocused.__new__(PromptManagerFocused) + node.logger = logging.getLogger("test.focused") + node.comfyui_integration = mock.Mock() + node._inject_lora_trigger_words = lambda text: text + node._track_prompt_execution = mock.Mock(return_value=42) + clip = mock.Mock() + graph = {"1": {"class_type": "PromptManagerFocused", "inputs": {"text": "cat"}}} + conditioning, text = node.encode_prompt( + clip, + "cat", + prepend_text="trigger", + append_text="detailed", + prompt=graph, + unique_id="1", + ) + self.assertEqual(text, "trigger cat detailed") + clip.tokenize.assert_called_once_with(text) + self.assertIs(conditioning, clip.encode_from_tokens_scheduled.return_value) + tracked = node._track_prompt_execution.call_args.kwargs + self.assertEqual(tracked["text"], "cat") + self.assertEqual(tracked["prompt_graph"], graph) + + def test_focused_is_traced_as_positive_and_not_as_the_negative_run(self): + graph = { + "1": {"class_type": "PromptManagerFocused", "inputs": {"text": "cat"}}, + "2": {"class_type": "PromptManagerFocused", "inputs": {"text": "blur"}}, + "3": { + "class_type": "KSampler", + "inputs": { + "model": ["4", 0], + "positive": ["1", 0], + "negative": ["2", 0], + }, + }, + } + self.assertEqual(positive_prompt_nodes(graph), ["1"]) + self.assertEqual(run_prompt_nodes(graph), ["1"]) diff --git a/tests/test_init_package.py b/tests/test_init_package.py index b10870a..4360b8d 100644 --- a/tests/test_init_package.py +++ b/tests/test_init_package.py @@ -135,7 +135,12 @@ class TestPackageWiring(PackageTestCase): def test_nodes_are_registered(self): self.assertEqual( sorted(self.package.NODE_CLASS_MAPPINGS), - ["PromptManager", "PromptManagerText", "PromptSearchList"], + [ + "PromptManager", + "PromptManagerFocused", + "PromptManagerText", + "PromptSearchList", + ], ) def test_db_factory_returns_the_shared_database(self): diff --git a/tests/test_prompt_graph.py b/tests/test_prompt_graph.py index 730e72d..9b910ea 100644 --- a/tests/test_prompt_graph.py +++ b/tests/test_prompt_graph.py @@ -54,6 +54,19 @@ class TestPositivePromptNodes(unittest.TestCase): } self.assertEqual(positive_prompt_nodes(graph), ["134"]) + def test_focused_nodes_preserve_positive_roles_and_samplerless_fallback(self): + graph = { + "1": {"class_type": "PromptManagerFocused", "inputs": {"text": "cat"}}, + "2": {"class_type": "PromptManagerFocused", "inputs": {"text": "blur"}}, + "5": ksampler("1", "2"), + } + self.assertEqual(positive_prompt_nodes(graph), ["1"]) + self.assertEqual(run_prompt_nodes(graph), ["1"]) + graph["1"] = {"class_type": "CLIPTextEncode", "inputs": {"text": "cat"}} + self.assertEqual(run_prompt_nodes(graph), []) + del graph["5"] + self.assertEqual(run_prompt_nodes(graph), ["2"]) + def test_negative_only_prompt_manager_is_never_positive(self): graph = { "176": pm("blurry"), diff --git a/tests/test_usage_tracking.py b/tests/test_usage_tracking.py index 152ca91..3caf60d 100644 --- a/tests/test_usage_tracking.py +++ b/tests/test_usage_tracking.py @@ -126,6 +126,16 @@ class TestQueueHook(DbTestCase): self.assertEqual(self._runs(positive), 1) self.assertEqual(self._runs(negative), 0) + def test_focused_queued_runs_count_only_positive_even_when_cached(self): + positive, negative = self._save("a cat"), self._save("blurry") + graph = workflow() + for node_id in ("134", "176"): + graph[node_id]["class_type"] = "PromptManagerFocused" + self._queue(graph) + self._queue(graph) + self.assertEqual(self._runs(positive), 2) + self.assertEqual(self._runs(negative), 0) + def test_requeue_counts_again_even_when_comfyui_skips_the_cached_node(self): positive = self._save("a cat") self._queue(workflow()) diff --git a/tools/vendor/frontend-coverage-baseline.json b/tools/vendor/frontend-coverage-baseline.json index b767fa1..617b6f4 100644 --- a/tools/vendor/frontend-coverage-baseline.json +++ b/tools/vendor/frontend-coverage-baseline.json @@ -112,5 +112,17 @@ "branches": 96, "functions": 98, "statements": 98 + }, + "focused-node.js": { + "lines": 95, + "branches": 73, + "functions": 87, + "statements": 95 + }, + "prompt-library.js": { + "lines": 98, + "branches": 86, + "functions": 98, + "statements": 98 } } diff --git a/utils/prompt_graph.py b/utils/prompt_graph.py index a9b853d..cf3096a 100644 --- a/utils/prompt_graph.py +++ b/utils/prompt_graph.py @@ -11,7 +11,9 @@ link-tracing rules of web/js/comfy-metadata.js. import re from typing import Any, Dict, List, Optional -PROMPT_MANAGER_TYPES = frozenset({"PromptManager", "PromptManagerText"}) +PROMPT_MANAGER_TYPES = frozenset( + {"PromptManager", "PromptManagerText", "PromptManagerFocused"} +) # Upper bound on nodes expanded per graph; queued and embedded graphs are untrusted MAX_VISITS = 500 @@ -92,7 +94,7 @@ def has_sampler(graph: Any) -> bool: def positive_prompt_nodes(graph: Any) -> List[str]: - """Ids of PromptManager/PromptManagerText nodes that feed a positive input. + """Ids of PromptManager family nodes that feed a positive input. Ordered by discovery, each id once. Malformed graphs yield an empty list. """ diff --git a/web/comfy/prompt_manager.js b/web/comfy/prompt_manager.js index cf6f972..b92acda 100644 --- a/web/comfy/prompt_manager.js +++ b/web/comfy/prompt_manager.js @@ -3,6 +3,8 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; const { installClassicControls } = await import(api.fileURL('/prompt_manager/js/classic-node.js')); +const { installFocusedNode } = await import(api.fileURL('/prompt_manager/js/focused-node.js')); +const promptManagerTypes = new Set(['PromptManager', 'PromptManagerText', 'PromptManagerFocused']); // ============================================================================ // Top Bar Button Integration (similar to rgthree-comfy approach) @@ -197,7 +199,7 @@ function syncPromptManagerWidgets() { const nodes = graph._nodes || graph.nodes || []; for (const node of nodes) { - if (node.type === "PromptManager" || node.type === "PromptManagerText") { + if (promptManagerTypes.has(node.type)) { if (node.widgets && node.widgets.length > 0) { if (!node.widgets_values) { node.widgets_values = []; @@ -257,7 +259,7 @@ app.registerExtension({ if (graph && output) { const nodes = graph._nodes || graph.nodes || []; for (const node of nodes) { - if ((node.type === "PromptManager" || node.type === "PromptManagerText") && output[node.id]) { + if (promptManagerTypes.has(node.type) && output[node.id]) { const outputNode = output[node.id]; // Skip if text input is connected to another node (value is a link reference array) @@ -290,6 +292,10 @@ app.registerExtension({ }, async beforeRegisterNodeDef(nodeType, nodeData, app) { + if (nodeData.name === 'PromptManagerFocused') { + installFocusedNode(nodeType, app, api, parseSearchQuery); + return; + } if (nodeData.name === "PromptManager" || nodeData.name === "PromptManagerText") { // Store original methods const onNodeCreated = nodeType.prototype.onNodeCreated; diff --git a/web/js/comfy-metadata.js b/web/js/comfy-metadata.js index 6c748a0..04945f9 100644 --- a/web/js/comfy-metadata.js +++ b/web/js/comfy-metadata.js @@ -235,6 +235,7 @@ CLIPTextEncode: ["text"], PromptManager: PROMPT_MANAGER_WIDGETS, PromptManagerText: PROMPT_MANAGER_WIDGETS, + PromptManagerFocused: PROMPT_MANAGER_WIDGETS, CheckpointLoader: ["config_name", "ckpt_name"], UNETLoader: ["unet_name", "weight_dtype"], }; diff --git a/web/js/focused-node.js b/web/js/focused-node.js new file mode 100644 index 0000000..13c1262 --- /dev/null +++ b/web/js/focused-node.js @@ -0,0 +1,150 @@ +import {createScope, createButton, createField, mountTheme} from './shared/toolkit/core.js'; +import {createPromptLibrary} from './prompt-library.js'; + +const names = ['text', 'category', 'tags', 'search_text', 'prepend_text', 'append_text']; +let nextEditorId = 0; + +function loadStyles() { + const href = new URL('./prompt-editor.css', import.meta.url).href; + if ([...document.querySelectorAll('link[rel="stylesheet"]')].some(link => link.href === href)) return; + const link = document.createElement('link'); Object.assign(link, {rel:'stylesheet', href}); document.head.append(link); +} + +export function installFocusedNode(nodeType, app, api, parseQuery) { + const prototype = nodeType.prototype; + const created = prototype.onNodeCreated; + const removed = prototype.onRemoved; + const configure = prototype.configure; + const serialize = prototype.serialize; + const connections = prototype.onConnectionsChange; + prototype.onNodeCreated = function (...args) { + created?.apply(this, args); + const scope = createScope(); this._focusedScope = scope; + const editorId = `pm-focused-${++nextEditorId}`; + this.properties ||= {}; + const widgets = new Map(); + for (const name of names) { + let widget = this.widgets?.find(item => item.name === name); + if (!widget) widget = this.addWidget('text', name, '', () => {}, {}); + widget.hidden = true; widget.type = 'hidden'; widget.computeSize = () => [0, -4]; + widgets.set(name, widget); + } + const element = document.createElement('div'); element.className = 'ca-tools pm-focused'; + element.setAttribute('aria-label','Focused prompt editor'); + loadStyles(); mountTheme(element, app.ui?.settings, scope); + const toolbar = document.createElement('div'); toolbar.className = 'pm-editor-row pm-editor-toolbar'; + const title = document.createElement('strong'); title.textContent = 'Prompt Manager'; + const browse = createButton('Browse library','ca-primary'); browse.setAttribute('aria-expanded','false'); + const web = createButton('Web UI ↗'); toolbar.append(title, browse, web); + let webDisplayMode = 'popup'; + this._focusedSettingsReady = fetch(api.fileURL('/prompt_manager/settings'),{signal:scope.signal}) + .then(response => response.ok ? response.json() : null) + .then(data => { + const mode = data?.settings?.webui_display_mode; + if (!scope.signal.aborted && data?.success && ['popup','newtab'].includes(mode)) webDisplayMode = mode; + }).catch(() => {}); + const textWidget = widgets.get('text'); + const nativeInput = textWidget.inputEl; + const inputDescriptor = Object.getOwnPropertyDescriptor(textWidget,'inputEl'); + const main = document.createElement('textarea'); main.rows = 6; main.spellcheck = nativeInput?.spellcheck ?? false; + // ComfyUI owns widget.element; inputEl exposes our visible editor to extensions. + Object.defineProperty(textWidget,'inputEl',{configurable:true,writable:true,value:main}); + scope.cleanup(() => { + if (inputDescriptor) Object.defineProperty(textWidget,'inputEl',inputDescriptor); + else delete textWidget.inputEl; + }); + const mainField = createField('Main prompt', main, `${editorId}-text`); + const connected = document.createElement('p'); connected.className = 'pm-editor-status'; connected.textContent = 'Text is supplied by an upstream connection.'; + const controls = new Map([['text', main]]); + const details = new Map(); + element.append(toolbar, mainField, connected); + function disclosure(key, label) { + const section = document.createElement('details'); section.className = 'pm-editor-details'; + const summary = document.createElement('summary'); summary.textContent = label; section.append(summary); element.append(section); details.set(key,section); + scope.listen(section, 'toggle', () => { + if (!scope.signal.aborted) thisNode.properties.focusedUI = snapshot(); + }); + return section; + } + const thisNode = this; + const composition = disclosure('composition','Composition · prepend / append'); + const metadata = disclosure('metadata','Metadata · category / tags'); + for (const [section, fields] of [[composition,[['prepend_text','Prepend'],['append_text','Append']]],[metadata,[['category','Category'],['tags','Tags']]]]) { + const grid = document.createElement('div'); grid.className = 'pm-editor-fields'; + for (const [name,label] of fields) { + const input = document.createElement('input'); input.type = 'text'; input.setAttribute('aria-label',label); controls.set(name,input); + const field = createField(label,input,`${editorId}-${name}`); + const note = document.createElement('span'); note.className = 'pm-editor-connection'; note.textContent = 'Supplied by an upstream connection.'; note.hidden = true; + field.append(note); input._connectionNote = note; grid.append(field); + } + section.append(grid); + } + const composed = disclosure('preview','Composed text preview'); + const preview = document.createElement('p'); preview.className = 'pm-editor-preview'; preview.dataset.composedPreview = ''; composed.append(preview); + const footer = document.createElement('p'); footer.className = 'pm-editor-status'; footer.setAttribute('role','status'); footer.textContent = 'Main prompt is saved when this node runs.'; + function isConnected(name) { return thisNode.inputs?.some(input => input.name === name && input.link != null); } + function value(name) { return String(widgets.get(name)?.value ?? ''); } + function write(name, text) { + if (isConnected(name)) return; + const widget = widgets.get(name); widget.value = text; + if (widget.inputEl) widget.inputEl.value = text; + const index = thisNode.widgets.indexOf(widget); + if (thisNode.widgets_values) thisNode.widgets_values[index] = text; + widget.callback?.(text, app.canvas, thisNode); + thisNode.setDirtyCanvas(true,true); app.graph?.setDirtyCanvas(true,true); + } + function render() { + mainField.hidden = Boolean(isConnected('text')); connected.hidden = !isConnected('text'); + controls.forEach((input,name) => { + input.value = value(name); + if (name !== 'text') { + input.hidden = Boolean(isConnected(name)); + input._connectionNote.hidden = !isConnected(name); + } + }); + preview.textContent = ['prepend_text','text','append_text'].map(name => isConnected(name) ? `[${name} supplied by connection]` : name === 'text' ? value(name) : value(name).trim()).filter(Boolean).join(' '); + library.refreshAvailability(); + } + const library = createPromptLibrary({scope,api,parseQuery,isConnected:() => isConnected('text'), onQuery:text => write('search_text',text), onUse:(prompt,includeMetadata) => { + if (isConnected('text')) return; + write('text',prompt.text); + if (includeMetadata) { + write('category',prompt.category || ''); + write('tags',Array.isArray(prompt.tags) ? prompt.tags.join(', ') : prompt.tags || ''); + } + render(); footer.setAttribute('role','status'); footer.textContent = 'Loaded prompt. Saved when this node runs.'; main.focus(); + }}); + element.append(library.element,footer); + function snapshot() { + return {libraryOpen:!library.element.hidden,...Object.fromEntries([...details].map(([name,section]) => [name,section.open]))}; + } + function restore() { + const state = thisNode.properties.focusedUI || {}; + details.forEach((section,name) => {section.open = Boolean(state[name]);}); + library.element.hidden = !state.libraryOpen; browse.textContent = state.libraryOpen ? 'Hide library' : 'Browse library'; browse.setAttribute('aria-expanded', String(Boolean(state.libraryOpen))); + library.setQuery(value('search_text')); render(); + } + controls.forEach((input,name) => scope.listen(input,'input',() => {write(name,input.value);render();footer.setAttribute('role','status');footer.textContent='Main prompt is saved when this node runs.';})); + scope.listen(browse,'click',() => { + library.element.hidden = !library.element.hidden; + browse.textContent = library.element.hidden ? 'Browse library' : 'Hide library'; browse.setAttribute('aria-expanded',String(!library.element.hidden)); + this.properties.focusedUI = snapshot(); if (!library.element.hidden) library.focus(); + }); + scope.listen(web,'click',() => { + const url = api.fileURL('/prompt_manager/web'); + const opened = webDisplayMode === 'newtab' ? window.open(url,'_blank') : window.open(url,'_blank','width=1200,height=800,scrollbars=yes,resizable=yes'); + footer.setAttribute('role',opened ? 'status' : 'alert'); + footer.textContent = opened ? 'Web UI opened.' : 'Allow popups to open Web UI, then try again.'; + }); + this._focusedView = {element,render,restore,snapshot}; + this.addDOMWidget('prompt_manager_focused_ui','div',element,{serialize:false, hideOnZoom:false, getMinHeight:() => 360}); + this.size = [550,650]; this.setSize(this.size); restore(); + }; + prototype.configure = function (...args) { const result = configure?.apply(this,args); this._focusedView?.restore(); return result; }; + prototype.serialize = function (...args) { + if (this._focusedView) this.properties.focusedUI = this._focusedView.snapshot(); + return serialize?.apply(this,args); + }; + prototype.onConnectionsChange = function (...args) { const result = connections?.apply(this,args); this._focusedView?.render(); return result; }; + prototype.onRemoved = function (...args) { this._focusedScope?.dispose(); return removed?.apply(this,args); }; +} diff --git a/web/js/prompt-editor.css b/web/js/prompt-editor.css new file mode 100644 index 0000000..befa9c4 --- /dev/null +++ b/web/js/prompt-editor.css @@ -0,0 +1,27 @@ +.pm-focused { inline-size: 100%; block-size: 100%; min-block-size: 0; padding: 12px; display: flex; flex-direction: column; gap: 10px; overflow: auto; container: pm-editor / inline-size; border-radius: 5px; } +.pm-focused [hidden] { display: none !important; } +.pm-editor-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } +.pm-editor-toolbar > strong { margin-inline-end: auto; font-weight: 500; } +.pm-focused .ca-field-label { align-self: flex-start; margin-inline: 0; text-align: start; } +.pm-focused > .ca-field { display: flex; flex: 1; min-block-size: 180px; flex-direction: column; align-items: stretch; gap: 5px; text-align: start; } +.pm-focused textarea { flex: 1; inline-size: 100%; min-block-size: 160px; resize: vertical; line-height: 1.65; } +.pm-editor-details { border-block-end: 1px solid var(--ca-line); padding-block: 5px; } +.pm-editor-details > summary { color: var(--ca-muted); cursor: pointer; } +.pm-editor-fields { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; padding-block: 10px; } +.pm-editor-fields .ca-field { display: flex; flex-direction: column; align-items: stretch; gap: 5px; text-align: start; } +.pm-editor-fields input { inline-size: 100%; } +.pm-editor-preview { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; padding: 10px; border-radius: 5px; background: var(--ca-field); } +.pm-editor-status, .pm-editor-connection { color: var(--ca-muted); font-size: 12px; margin: 0; overflow-wrap: anywhere; } +.pm-editor-error { color: var(--ca-error-text); background: var(--ca-error-bg); padding: 8px; border-radius: 5px; } +.pm-editor-library { display: grid; gap: 10px; border-block-start: 1px solid var(--ca-line); padding-block-start: 12px; } +.pm-editor-library h3 { font: inherit; font-weight: 500; margin: 0; } +.pm-editor-query { display: flex; gap: 6px; flex-wrap: wrap; } +.pm-editor-query input { flex: 1; inline-size: 100%; min-inline-size: 100px; } +.pm-editor-results { display: grid; gap: 6px; max-block-size: 300px; overflow: auto; } +.pm-focused button.pm-editor-result { flex-direction: column; align-items: stretch; text-align: start; white-space: normal; overflow-wrap: anywhere; } +.pm-editor-result[aria-pressed="true"] { border-color: var(--ca-accent); box-shadow: inset 3px 0 var(--ca-accent); } +.pm-editor-result-meta { color: var(--ca-muted); font-size: 11px; } +.pm-editor-result > span:first-child { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-clamp: 2; overflow: hidden; } +.pm-editor-selection { display: grid; gap: 10px; } +.pm-editor-selection .pm-editor-row { justify-content: space-between; } +@container pm-editor (inline-size > 420px) { .pm-editor-fields { grid-template-columns: repeat(2,minmax(0,1fr)); } } diff --git a/web/js/prompt-library.js b/web/js/prompt-library.js new file mode 100644 index 0000000..cdcbeda --- /dev/null +++ b/web/js/prompt-library.js @@ -0,0 +1,79 @@ +import {createScope, createButton, createSwitch} from './shared/toolkit/core.js'; +let nextLibraryId = 0; + +export function createPromptLibrary({scope, api, parseQuery, onUse, isConnected, onQuery}) { + const element = document.createElement('section'); + element.className = 'pm-editor-library'; + element.setAttribute('aria-label', 'Prompt library'); + element.hidden = true; + const heading = document.createElement('h3'); heading.textContent = 'Prompt library'; + const queryRow = document.createElement('div'); queryRow.className = 'pm-editor-query'; + const query = document.createElement('input'); query.type = 'search'; query.placeholder = 'Search text or tag:portrait'; query.setAttribute('aria-label', 'Search saved prompts'); + const search = createButton('Search', 'ca-primary'); + const recent = createButton('Recent'); + queryRow.append(query, search, recent); + const status = document.createElement('p'); status.className = 'pm-editor-status'; status.setAttribute('role', 'status'); status.textContent = 'Search or browse recent prompts.'; + const results = document.createElement('div'); results.className = 'pm-editor-results'; + const preview = document.createElement('section'); preview.className = 'pm-editor-selection'; preview.hidden = true; + const previewText = document.createElement('p'); previewText.className = 'pm-editor-preview'; + const actions = document.createElement('div'); actions.className = 'pm-editor-row'; + const includeMetadata = createSwitch('Load metadata', '', `pm-load-metadata-${++nextLibraryId}`); + const use = createButton('Use prompt', 'ca-primary'); use.disabled = true; + actions.append(includeMetadata, use); preview.append(previewText, actions); + element.append(heading, queryRow, status, results, preview); + let selected = null; + let request = null; + let sequence = 0; + let rows = createScope(); + scope.cleanup(() => { sequence++; request?.abort(); rows.dispose(); }); + function refreshAvailability() { use.disabled = !selected || isConnected(); } + async function load(recentOnly = false) { + request?.abort(); request = new AbortController(); + const current = ++sequence; + selected = null; preview.hidden = true; refreshAvailability(); + rows.dispose(); rows = createScope(); results.replaceChildren(); + const {text, tags} = parseQuery(query.value); + status.classList.remove('pm-editor-error'); status.setAttribute('role', 'status'); + if (!recentOnly && !text && !tags.length) { status.textContent = 'Enter search text or tag:name.'; return; } + const params = new URLSearchParams(recentOnly ? {limit:'20', sort:'last_used_desc'} : {limit:'50'}); + if (!recentOnly) { + if (text) params.set('text', text); + if (tags.length) params.set('tags', tags.join(',')); + } + status.textContent = 'Loading prompts…'; + try { + const response = await fetch(api.fileURL(`/prompt_manager/${recentOnly ? 'recent' : 'search'}?${params}`), {signal:request.signal}); + if (!response.ok) throw new Error(`HTTP ${response.status}: ${response.statusText}`); + const data = await response.json(); + if (scope.signal.aborted || current !== sequence) return; + if (!data.success) throw new Error(data.error || 'Could not load prompts'); + const found = data.results || []; + status.textContent = found.length ? `${found.length} ${found.length === 1 ? 'prompt' : 'prompts'}` : 'No matching prompts.'; + found.forEach(item => { + const button = createButton('', 'pm-editor-result'); button.setAttribute('aria-pressed','false'); + const text = document.createElement('span'); text.textContent = item.text; + const metadata = document.createElement('span'); metadata.className = 'pm-editor-result-meta'; + metadata.textContent = [item.category, Array.isArray(item.tags) ? item.tags.join(', ') : item.tags, item.rating ? `${item.rating}/5` : ''].filter(Boolean).join(' · '); + button.append(text, metadata); + rows.listen(button, 'click', () => { + selected = item; previewText.textContent = item.text; preview.hidden = false; + results.querySelectorAll('button').forEach(row => row.setAttribute('aria-pressed', String(row === button))); + status.textContent = 'Previewing selection. Editor unchanged.'; refreshAvailability(); + }); + results.append(button); + }); + } catch (error) { + if (scope.signal.aborted || current !== sequence || request.signal.aborted) return; + status.classList.add('pm-editor-error'); status.setAttribute('role','alert'); status.textContent = `Could not load prompts: ${error.message}`; + } + } + scope.listen(search, 'click', () => load()); + scope.listen(recent, 'click', () => load(true)); + scope.listen(query, 'input', () => onQuery(query.value)); + scope.listen(query, 'keydown', event => { if (event.key === 'Enter') { event.preventDefault(); load(); } }); + scope.listen(use, 'click', () => { + if (!selected || isConnected()) return; + onUse(selected, includeMetadata.querySelector('input').checked); + }); + return {element, focus:() => query.focus(), refreshAvailability, setQuery(value) { query.value = value || ''; }}; +}