From 6060c2c3ac0839aab8107ddf5925f3c92dc60915 Mon Sep 17 00:00:00 2001 From: djiang-jq Date: Tue, 6 Oct 2026 21:44:55 -0700 Subject: [PATCH] feat(third_party): add Workday plugin --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../workday/.cursor-plugin/plugin.json | 36 +++++++++++ third_party/workday/CHANGELOG.md | 10 +++ third_party/workday/LICENSE | 21 +++++++ third_party/workday/README.md | 59 ++++++++++++++++++ third_party/workday/assets/logo.png | Bin 0 -> 11611 bytes 7 files changed, 132 insertions(+) create mode 100644 third_party/workday/.cursor-plugin/plugin.json create mode 100644 third_party/workday/CHANGELOG.md create mode 100644 third_party/workday/LICENSE create mode 100644 third_party/workday/README.md create mode 100644 third_party/workday/assets/logo.png diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 891bcc8f6..1ecaffa74 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -512,6 +512,11 @@ "name": "quickbooks-online", "source": "third_party/quickbooks-online", "description": "Read invoices, bills, expenses, customers, accounts, and financial reports." + }, + { + "name": "workday", + "source": "third_party/workday", + "description": "Look up workers, organizations, time off, payroll, and recruiting data in Workday." } ] } diff --git a/README.md b/README.md index 0ba8f6e95..ce4be85ff 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `x-money` | [X Money](third_party/x-money/) | Cursor | Integrations | Use your X Money Card, send money to users on X, manage your finances, view your balance and browse through your transaction history. | | `shopify-store` | [Shopify](third_party/shopify-store/) | Cursor | Integrations | Connect your Shopify store so Grok can answer questions about products, orders, customers, inventory, and sales. | | `quickbooks-online` | [QuickBooks Online](third_party/quickbooks-online/) | Cursor | Integrations | Read invoices, bills, expenses, customers, accounts, and financial reports. | +| `workday` | [Workday](third_party/workday/) | Cursor | Integrations | Look up workers, organizations, time off, payroll, and recruiting data in Workday. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/workday/.cursor-plugin/plugin.json b/third_party/workday/.cursor-plugin/plugin.json new file mode 100644 index 000000000..d962f735c --- /dev/null +++ b/third_party/workday/.cursor-plugin/plugin.json @@ -0,0 +1,36 @@ +{ + "name": "workday", + "displayName": "Workday", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.19.0" + }, + "description": "Look up workers, organizations, time off, payroll, and recruiting data in Workday.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins/tree/main/third_party/workday", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "workday", + "hris", + "hr", + "human resources", + "people", + "employees", + "payroll", + "time off", + "recruiting", + "mcp" + ], + "category": "integrations", + "tags": [ + "workday", + "hris", + "hr", + "mcp" + ] +} diff --git a/third_party/workday/CHANGELOG.md b/third_party/workday/CHANGELOG.md new file mode 100644 index 000000000..cf213c3c8 --- /dev/null +++ b/third_party/workday/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `workday` plugin, the opt-in for the Workday MCP server that Cursor hosts and credentials. +- Carries no MCP server definition: the server is Cursor-side, so installing the plugin is the whole configuration. +- Auth is Cursor-managed OAuth against Workday, authorized per tenant. +- Logo: Workday's official mark, from the `Workday` GitHub organization. diff --git a/third_party/workday/LICENSE b/third_party/workday/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/workday/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/workday/README.md b/third_party/workday/README.md new file mode 100644 index 000000000..25b8ad7f2 --- /dev/null +++ b/third_party/workday/README.md @@ -0,0 +1,59 @@ +# Workday + +Cursor plugin that connects agents to [Workday](https://www.workday.com) — the cloud platform for HR, payroll, and finance — through a [Model Context Protocol](https://modelcontextprotocol.io/) server that Cursor hosts and credentials. + +Read a tenant's people data: workers and their profiles, supervisory organizations, time off and leave, pay groups and pay slips, job postings and candidates, and custom reports through Workday Query Language (WQL). + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Workday**. +3. Click **Install**, then sign in to Workday when Cursor prompts you. + +Or run `/add-plugin workday` in chat. + +## MCP + +This plugin ships no `mcp.json`, and that is deliberate. + +Every other connector in this repository either points at a vendor's hosted endpoint or runs a package locally over stdio, so it carries its own server definition. Workday does not: Cursor runs the server, and the plugin exists only as the opt-in that turns it on for your account. Installing the plugin is what makes the server available; there is no command to run, no endpoint to reach, and no API key or client secret to paste. + +One consequence worth knowing: because the server is not declared here, you will not find it in a local `mcp.json` and you cannot point another MCP client at it. It is reachable from Cursor only. + +## Before you connect + +Nothing to prepare on the Cursor side. Cursor owns the OAuth client, so you do not need a Workday API client or integration system user of your own. + +You will be asked to sign in to your Workday tenant. Authorization is per tenant — connect once per tenant you want agents to reach. If your organization restricts which applications may use Workday's API, a Workday administrator may need to approve the connection first. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Workers | Worker and employee profiles, compensation, and benefits | +| Organizations | Organizations, supervisory organizations, and their members | +| Time off | Absence balances, time-off entries, and leaves of absence | +| Time tracking | Time clock events and worker time totals | +| Payroll | Pay groups, pay components, pay slips, and payroll inputs | +| Recruiting | Job postings, prospects, and interviews | +| Reporting | WQL data sources and queries, and custom object definitions | + +The server is the source of truth for tool names and schemas. + +## Notes + +- Access follows whatever the signed-in Workday user can see. Workday's security groups still apply, so the connector cannot reach workers, compensation, or pay data that user has no access to. +- Workday data is often sensitive. Connect with an account whose access matches what you intend agents to read. +- Disconnecting is two independent steps: uninstalling the plugin stops Cursor from offering the server, and revoking the connection in Workday ends Cursor's access to your data. + +## Docs + +- Workday: https://www.workday.com +- Workday Query Language: https://doc.workday.com +- Model Context Protocol: https://modelcontextprotocol.io + +Logo is Workday's official mark, from the `Workday` GitHub organization. + +## License + +MIT diff --git a/third_party/workday/assets/logo.png b/third_party/workday/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..02fbcccf90fd414f3ae791bf26aaafd666aaed42 GIT binary patch literal 11611 zcmbVy2T)T{*X>OKLXXtY1JXMJf`D|9E+_~h(z`Ti(g_ecNRTQbO*%-I-n)WS5tQDM z4$@m*zIik6&6_v>%s>BRZqCfPcjw%@@7`;#y-uQZv>%fa(GvjxK&qyy{1i8K{O5q- z}W5I6#j1-j{RO4 zl2?AB??lxye1=ckK3G-z+Ei=VaDEW_X7&C9yXlVA4!>wsBCYfX?_{Q3X;?5j90>)p z%3CzQe%mTnvNg~5qI%J5VJ4vQ=1R7WnAF2SKg)FTLE-R&M+i%j`;K|sMZZZa&AT7d@U*JEEzFGKS@eT@VFi!S znY@a~icl0ef(81q0fqu8$O*gS!MuZYFsAO3ph5!Gm#~Hj5Ws$yc7O+L{8yqu0-`6b zh;Q+_rmBOpql^{(Y64JS;C7|FYeuUL>7Fx#Fm+4=({^&M)-c3hyq}ncIQ$~|slZ%u zBp5}Z&4~(Hr-8&o%hL$p(WIiNo6ZGK&q$rlz)PgFTawf1Mm-li;W>a=ZVG}DD!-u=^6B3;l7sQ z0%7KqNcvciCZ1iAi&-V*PKT&jf98gw9Oa_o-vZP!l_-A<%!m#C>jICb7QXoGLB9;N z$PhB_LA&{f0ChB(fSphTbRF50J2`;^l}>|DGlDF2Re4z^jP|)gHuw$Uy=1W;Je!)0;;+&`Xh^O&DI?drHf}7FI zE89xBKyn2Aq6tmv<1&);-vZ(^PuB=90Xc}9yMmWL>^SoY=tE5JbddqW4G-!kYlrw2 z+0{gl;?>Clq_q&eSQzy?Fq821E7GEZbra%G!p#qE-LFvCyF_4HXEjvseB~C0!NqH; zZtquS1rqIS#>@u%)xOi&PJ?#6ky~6V(Y^5q``f?onhQm#d;J3ct z8TilBtdAhi&o#MSPM_7*uY%l_0wc`=2{pB-GS3ff~5ZH}+azH2eFb?a??DZP~ zXFgi`2TnrC97}G7ny$8|7xIo>-$m*9gvi>-T?-0g(QW=$CUU_Z+DvpV0C-gnzy72sPk_VViw5i|eYcshUe$0Aw&ySC!bk&*zlMg`YUI9;%W^B82ag0FqIJJWs7{JJIRH2CDZ4MFz>bs zqP9Wx&hBC!pq@Z=WIcy=40h>VUKtdQ&BDL^i!miz3TBnb>#m*R1n+PLAkX{}$Ds=w zsfkI@Z)(6&;;+Cf(n>B_r_6&vSFoMT?>X}F&OBXYJ(Rtjai9V?8dRW31^vcDh7J1U zHh24+wEjfGkAvfmL7z7|`tVUp&SrV!jzz?X-HmUOK>RDWrbcA?*NPlT6rs?-O?>d} zMSbEgVQpD3%z(@9LM}T1tArZtedrdo6CPWinvhH-uOOn@OOGizk>91kSjWj5agw~D zy)5wV3g{QCEQgrQT?G?A^!GeO86*J|E@wIf!fSXw`>FB^hu%+}Q#fcrKjGPu9b^xQ zceCdEY*|a#wdD$k0DSKonU#`k%*NvV1;}`VD8+Msr;ot{L+1r2{)Xs*aT}csm+P7j zd}dsxAn7CN%DPlku!(k;n1q2+EwnMv+SEUAl>CNoV3&oo{j-(A5nO)w`r+g3fWI{5 zZjy6RA5Mz8@W!_{PVMJZFme0KvWGie0}J1XD8|pl^GaUoeTDh#Z#HBUj};yNNJRlC zJV6CCG?p}HmXk0{UhbdFKuJA2HR1bEpsT|oH6kbA&0XQy?znH>?Ped8mrvX}UD_a4 z8=sM{_u_{((~0)t)Xf~sYYn*7*UY{ILH+(Nbdp`u!-UNgLf-pX1uFQ`Y%c7AcuJno zdvX)PI*_)yyQObYOunE2%?`4P<;AL_K$O@V*lod9{`msKMJv7Uzi3xN24cxe=OImI9$jW-Y(5%y9PR`3HGt2OH@MbJKbE!LND=k3C3 zd(4@GJon;BsO%*K!^BeE^3d!Rcpxr0Dn(&o@T&3PH7{2Vo0noqi~@oTb?*-O=i zt%7jWknw0dmSVNlbXo9~fc6rx5zKHABz?^`{SVtUV>VXlv0W@b?k*faw`Kbhl~aQn zbZR-|yjcw%on&oOTW*UX)GdMe?W)-=1f|8ll{tL|TRPOCd!W-67@O)_Z`OkOY6LmZ zq6YrBv=JSDS}Tbk>w3Zy-#Vr@8vpQHm}!d2hl(ztD}mX9)n8cB%fA~J!Hf!7hc_t? z=stfQ&AioIP46}PLM=bkwqwj!E9AH+8X2o3QP!_`-YGA4ON==o&sV;Pmyq|JmNJbv zJ!uAEsix*uYAHrX+F|3Bb8dWPC(i+3=R*ZJ(c}(+W!^!e>oI%4j=kXZ^WUTDVpIg# z_zDj7sM|>wP(+NMOYC!97+wg;&Xno9Ye!bYLUFfKxeMOudD8=L8l})C<;CYn=;gs% zAIA9JfS+$7mRH&B8c2_;3LE1(#4NcWT6p6R&AwEic5ke$D5_y)NAc2@46u<2)8 zq7q;t5c5`!%&q_Ng@&s2QmRe{iXQyp47u680BY%M_%Z(H-@@|3K#>t~2R#%nCHXoC zZ)bGhJ0vEd20feGe!@ChA4GUBc|07|wGAXlW61{|vaFdSRkX>{iSm3jd;8zc|W?J^*FTkTIn|K z5sCRfLgal*!;w3cp(9{>?G-QoHT>8ayh~baXFTkw(&=ui>u196D<-4%bY*LY{k`$`HAX;HAluc zC@h?jX71UqS}AbDq0{AAX>${*sagR|GS)Xo@afFL3&IGMA4G~Lte)HQ3#Y#a#2H-3 zdI^O|t*%T_W$mN))lQ^eutexgvX%q69P{gKG5# zOLg)4*Oe{7A=##18@`pzfqrLXm1XR{M64Ey$y>!(!x{`vXsFuQ$mPH!QK8z=vi0Y{S3dbKf?S<)_gAuO*c zy5j0*8Al_SX{Y$jw%8fa9TQi#^xQmMes)dhp8kB^{)V9#}^?YpX zC?4TbLR@2G!hubU4I2ku53jseAj0tZw-_iw0jvedKzS|qs`96(Nq4WSMo^uO1y;Iq z0R$p_=Nv?fwn&BrLVhFqsH56D46D40-=M#b+GAhhAy)KTu5d)0X=AEZj}660AWo%k ztssOh~?e2>38H|oR!xVZu1W*rUDQtA$H*u~wcq0LO5C)5yCTuF}JYDn!| zqFC#+ymo6s6$7fc+WB5Z!-j=}W0mZUGok9>%V0Igd~!GG(0TAO_4PDIhnW6k3mU8kn=LRAei^{j@-X(^syHO-f+!%GhD zmphfaEg;u|UQG>k^d-lbI$t*5lj9iQOc$XkS4cb-HZl~zFx$(5P(_xSmR~M8Z-xBT zW8xYV-d4SO-OBeG-VsikXeNv2G%bAR|MqJC?WXR3a$yvtM(>Rvpim~xMJMMJMFCIT z4t9tQwjVn167JhqD{j28j8&LOD{`iL`7(_=;ImCj2)6^Xl2=&W*0=e zzq6e78A|lC5s`rw@gmh?g;b$%RlN&FgcXekL{uVac zH;Mav64DUq`{Ik8&A-xkuTfEar~>=!q~(`#mk(u6k_+W|@b2_OhrD!hZOO&+a-Dtd z1fI0U=a~EGDyn6d&{KsiO9(Oc5y<_!YfPU-BDC*o({O;LxQ)f#Ld4_wM(UCR z4$ZJp1cU?n@aC@frcirm_ZM3QCiRAQ3mNmN=Un25E?U_`j^n|UpEzv7D;f{-1=e16crDA6v5Y6*Fyqc58s`m!^SV~tx;Ds{qp<4{gB*&+VsXSl2K&ON%zqVs+2w{w+oyW zvtsxW6Tz*IhY#-e{C3r&5@frfRUy?40?@5SUz0VwvoxiUm)_OK#H(WRla9c0o|MA#Fn-h#*q!0@td(?T}BlZW) z1h4r0i0JXv2M{ac;UxBMz-sC2Ma~;WhwY`QWo4P)S(Jq%mS%P&f`z#Y0Ou?){B2l1 z`P-$O85=0Cl9qNoyVg!5q!S|&URfzbmbKV*r+!j@_H6O6Chfy%n0}bDVu`{VQBP%- z=8-sLoDp#-$ExPI$(|_!Wns{>${fN@^x8J=nC7Q`6^14(lfd^DB?>l|bRHyIu6pl%a zLuQJzR-a;pj5EThCwqbA{k~Q@O)kKaq%r2+*sM;tJklx>Cp?8`8^y7C&_7Qfv<7+07EALh-R8V zCroP0*fd%P39}fD?La7PyjUSMr!#xoWDCRjY4MHp%6fRq3#^PYm+$4{QLpF<50yQF z0sVi5{STZ?5eG)AWUeTg6s_=2cuM_) z*p>5Y%*0^u4{#Ycd`jBA z;t zFRJBWNeaFCVw65ni>kffFg1E zXZf0*5*o{;rZor9(g%zJIF_^KIm95mYJAfdFN*E|FVN&m9>`<&2IyRDoI^5M@ zLD;4RlyJAqrB0uUNXydO+LVA%eJ9vFi9%ERs?sw+z{|0uf3;R<-4%cS34s@jtkb}- z#E9E7z?GJ}-E^p)SZP8`a<04*yKvo@)lC7#P}+N5P*AN~)4fMh5=J3<2d1Iz1^)tp zQTIUTr#V_2!1wXnq2YF{)Gp1R@yKVZR8l(}=tKK=yNYX+HaD4DO1_AAQK5nE)bi}l zegJd4M*Sxxn1XPTg<2rZuktd$j1>1IBp`3itK2d?!zn#bg;2I1sv%Glmxe?HFT}wo_Uj zgS-tB*@D-ex#$iSSWYfGdGa8UPNgLAe}enp_B7P$x~(Fr685Nnl{I2>^#dpe%W%ld z4Zbx~#u|vf#A~8CTB~s8eq@wBgV|KUcQ*C#cr%H7F4s78o1SsHbP#3o%2`2?(Ek?c zH9rp2$I!0N)cQ6Go>lZA#>b7P-{ujAcCUn6MScCW7vZ2&1@1!>DJdi(QQ||UWP><8 zM$A+H(ZDbTZ}4zuYSh`QR;9Ge!wAdxb)pNQxq$A?z2*Ula0@D7y1}6BrauQ?{pu@1 z9zRykpFL}klnS=wy6T#;_*$%=@=6B28KFo^c|mC`SV~gdD(ZgU z-ZPdtbBB%4LOCweX`NtMf0-zzESkxImfAul*&yUPttt#oWIte%#(W1}8a0qO)e$st*wEQ#u+AO-rUHmQqNijFPFQ0ByH71s5*ntT#$AzB&Y9FP++UlFlH5$Bmx)i40}|2Up;x*uMu4K`4ytc_>{%jSId8MRrvaf>?B%llWdeo;m zjNAU=sTjVHZC{uyc^&$WV(+FHSMXoumxaUMM5I!0m_PDN5EO^y-nMx}4EH`y$Smhe zG+}hwS4tmtm^-=%mWQqN`YchY@)gUW)?mOLf4s6X0R>^iI8#IyB6Kikv8#7b($)Ca zM8;fPuLe1>0G z9PR(nK8dg_jP3f~L~%<(%-&&4JV;@tKX=cZ072EiuQ$qzwy0yUcnUY2cc)04Fp;#N zBKk{gn)DSAh+8u_p^PlzJ+8~2Mx>(q^er^ zY`5(#b|PD)WyM%X3OmpvD6H`86=8@1#0%XUZukT{Q1({cx~s1ziMIckK8)?J?Z-62 zijBGVd!2sHFMB5w47)?p@Z)E~>Yi9-}GF{S|)dQ?ptI z6QtW{+CTbi{s0Ulh{oP(6s`XZO^DFWPkRdoHgqZFnEPWKzj74!&Qpc8NWy zCFWsdNH4`Cf8f;q5w-M!jp+1fRa25-&n6)GW^0qaXEo{VaQQOBJS~YpoVA6_$$}7b zB_{|iEH;(O#-(9eR0&GA2&98HQ{*4HP<#&F2djai*I&zT1Cg}lC9B!am@cs z_3OnF*}0;Mjfg(imX!?FsN46)q?5*215(~E%;bjeaaqte-QfGc0MBC!(-QtJWUNY! z(TUcpgA{EvjH=k%@0d=umt?H^+jArw*&B1OYF%n?k87}yR-+dn=u-4| ziE)iJcaympR5j~ z$TcZK&OmT5CK@~CIoQxujYIRUN@we^@;Gk7KA?Ug_?fLx_A@=5hSRW`N_An>e6WVh zjfl#P2Is1y;j3Puq1>AU%mI;=ZGOz9Qq{wmzdAV7jQY&wSFtcvq_dB!h_PeXM}RRd zhGd)z^G||0mZ2DMjs1yRPQ-Ra*Sg!$&(27u1C<;ACD%3|K1ey?+E;{qroMQBr~9%| zEQ3V$Bef=xhSnoi-c;%XD<3BFJ2;H4*x7Axkm1NZ!6uBUNiyLl`O=C!k#@EpeVYaC z9RJS(&ej~?HI6(9L(%@NS3L?7Qzd;*A1?%)lTb0`KRMS#^z^OsGEayNe$sitJHG2? zu^~WuupLQkp}6K}|3n&?bro8{@zxg6z?)0CrH!DqHNhU0s;w73rv&`kz=w_WW^M=$ z)RrU`0n*}>0i*OWFBC}-qWxan^CgN{ar$J`NTvDNhOzVATd$dLDZwO>W~IjOZ|j0q zn|j@?7fk0C2n%0g6@t)!Y!IMtjaS6|jdrAxFq?ciz{#O_`D-XiB?Q+PXnT>WD29jW z42;Z0Jh41jUQ6?|c#$R%blCNxQLZA4D!nhAf{NOzo267bNksA!QD0x7t11lv|8<(auOl7Dr% zule-tR>@NV+pZMqwW4xEw`XS?4A?9`$7mv2b1loTz2tb1_wD4$k{{$wb^Rx)_?!g3 z@FaO#`ZJkU>zVJReG}g+WkEgnS_`VcgM&oM>3MJtX2*wv@jAI;8L@!{Z(*+jx?P(yL`tD8$W&s6kEIsQ zpOenMYOM{>aM|^(lHu)dqjWsIuWBnhuf{XI8c4WN9D`Xu^#vc93@d6B$eGm7*+`f@ zhwrba&{)>}@*%v#CDnvK#*0?mDizw5{Z=a1gSh2STqqqRuBziXRUc5M!YeK1ReYo- zdxqbe{cON0HHyb{nu#~8^=kG}#vUETAy$eY`QT0Kzh5ec#xZ?zrlEOAl<{r-mkOmf z=I;cjveAk>1-93c{4EMk8%`M?d>M3C;0_jo_gv~Hv)y5@`=HaL^w62B&ZQ*ciNP3u z=3V4m4h0SiMLcxdZ-w~g1-=`hzT~c2-W$4=e-B3yeXjIYBikxX>D!@>3eTWBV_f$_ zO%!+FR46+?mM4Kx;@6;-^JL>M9>p}vrZ~vHqu@|=n#@AuhI1ZH=x~)f2O*kIJ?Xu! zi{;?TK58cCFul@dIga-sfP4>Twz>{KC;QgYPppr4V^6w|j~CK0f7f<&Lau8i$fH4y zn8wypsfHVxUzn7;X*C#q57*H28Y>v>p~&NmJC`V10n|5p7L&Ot^G%TVN28K#?w^?N z^HGZ9IM%HvEg@lMZeuhga*rZb#M@Z=_%t3}`e;XLH0m#1&=3cx@k%suJ^bm<=YoW( zicyV&x_k@a>%88c)az@_wIi)=B!Jvz^G1sZL4d}SiHG%HC}=(A1anmB!K$=txLDB> z9F$NdUH-PkZ>(r_mNVfhnUq%3&Ycg#4_T7*zPq)k`gRisuR5Vp)jd78{hceb>kr&= z2@E(3JXwwfY_VM}j$#r?QEybqP6$-lz(7~PW1jnB26U9PJqW6>Mc0?)!{l*G9wV6Y zNLBsGMKyQxiLL3mtSPoXOz9s!FuMneQ7(0dxTt6^gqupNe7i2P4r zFuYdR(SHuFA&3=uAtQle!8*|5+5w66Y!|RFsrUA&%`IbTN>BsneKhbi8y7;4bvxN! zQU64#-YFiW6!qS!_p>Z1W|_O6B^2q&$A>BIzVQ)&E%9lj_lNB=Y%l%mGvU_c{C0hA zP_cy5f2w{L?$6fZWTN3*yrozBR_Qmv>~~ROMDEq1=REiDGkN8tWQ+Hi7x|(|AorIY zA%r}+36KQBer+m2i} z4LjmN`ns6ZurJ#eDwz3|Pvs6D;U(g6YXc)MiliBPxLK3=P{+6IINgw;uWJW?h}zBI ze9wt5;o~QB)xXN}*gGY%xaLH>w@6STkTZ$T)PBsu(XO1z^ZhYPSV^hYA~-8yuXFe1 zb7etJy7%vZr)xYy-@2o>ER^u?wC)%(FkQ7%W0bV{N`+fhK_(T!dA8Wt&%%64gWz;n3a2QtWOgz;Tv9Q z>t6r*$=Qp}V@FY)UwPf%=4F4a_Yxco=T$%IzQuYYLY_9HJEZ2+<&I*Gbsmn2F`If! z{o(}riu7%e4+xRavOu3ZIF97%f>E0%P$#tU2i1zDu!`OlaDH=8?PceiPF!EB*S+!Y z<1gFBtL9oH!}jw&<|8LOb}mrIBr@!&F{`r^H5c?3Hr;Nt79#FLUr-9;;G^UTrNX|cJTbTCHel?kGa zMrfcVvU<7Ku)Uh%nP?k2tC?ejnS0<>q?W*8jSoc_&ibsaA%kqTu8K@HXeVl=N|Cd@ z;!bh=wO!%4>@)gnhIBqH5g8tiv_rQOt`BZOF4HVE3}#T~me&H~GMB{7!_*~xi-(d` zmXtz}G?)UWX15^4A&*XH$g3Q~VX`+j#(4YSL&8rehW7~$llX=Bg!%8=-N$5N#&dBu zRkB=i+H=(iRN@q8&%x9!DRrI{TaAyl|L7AAQ+l?@F{@BaxdI)}UvemA0lqGdmf(-# zG`*cLVhS%JHdZL>64|TzYKmLv9$MpMqb|-9C$nq&;y}U;48UBP+g1d&d)`@rQ?0N}R8gG$(E?Xe7MM1AXCdutdrZFP%Wm>hMt|GHyWz!0}^}~1dWlG2*`ttMvrEK>aQ40E7*A>}+ zwk{^m;y5mTv&sEgl#Q7XTxe?jz;bGPX!&F#+D8dMvcccFyo}ljv)3W@n&ctF!;w+_ ze7vGB#%`0MKjdqrYpd#@6DD$uQcrwi!*@Oo7B9Aa`mvmDKNm;5P7UJb7!?aIsRsKW zyqaNd8DDp5?kElDE zMk^}7gzw9|JDY1K#Px~F$k`SOI{1B4#wPGl(F86q`k8|$o?yL%3R*#S!8$t<9H@z1 zWpk7Jx9el|%VTHzsJ=Ao;f`@J=A4TfTdx(D_8XF6(syid*kARZ`iw;56SLmi!#3C3 z3%7LDv;`6UUb5!%cYqFkp)H&!y(9f6EGCt+=PTmf!(1x;{EO+PHnK3E7b#Rwwf|_b z(_h;u=QafU0?QE)H(KlL#x^Q}&$+CN-;WO z66Qj+E&yT|i&L=FG+mQ$1!X50n!pj3qhbL!Yo9o?b4UKs{mTUIJGRi3HKxo|CLsUY do3PhGR