From dcaa7e7db888f76f078479dc9b746ea74b5197b4 Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Sun, 28 May 2023 10:34:08 +1200 Subject: [PATCH 1/9] Test --- README.md | 16 ++++++++++++++-- demo/src/App.tsx | 1 + demo/src/data.tsx | 2 +- image/logo192.png | Bin 0 -> 29506 bytes image/screenshot.png | Bin 0 -> 129445 bytes src/JsonEditor.tsx | 8 ++++---- 6 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 image/logo192.png create mode 100644 image/screenshot.png diff --git a/README.md b/README.md index 6647f39d..e1011982 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,19 @@ ## A React component for editing or viewing JSON/object data - +screenshot + +**json-edit-react** is a simple, yet highly-customisable, React component for editing or viewing JSON + data in the browser. Features include: + + - Edit individual values, or whole objects as JSON text + - Fine-grained control over which elements can be edited, deleted, or added to + - Customisable UI, through simple, pre-defined [themes](#theme-link), or fine-grained CSS overrides + - self-contained -- constructed with HTML/CSS, so no dependance on external UI libraries + + + +screenshot + -**json-edit-react** is a self-con \ No newline at end of file diff --git a/demo/src/App.tsx b/demo/src/App.tsx index ce981687..ee079322 100644 --- a/demo/src/App.tsx +++ b/demo/src/App.tsx @@ -207,6 +207,7 @@ function App() { showArrayIndices={showIndices} maxWidth={650} className="block-shadow" + stringTruncate={50} /> diff --git a/demo/src/data.tsx b/demo/src/data.tsx index 92deb8d1..d287c496 100644 --- a/demo/src/data.tsx +++ b/demo/src/data.tsx @@ -62,7 +62,7 @@ const data = { ), - restrictEdit: ({ value }) => typeof value === 'object' && value !== null, + // restrictEdit: ({ value }) => typeof value === 'object' && value !== null, restrictDelete: ({ value }) => typeof value === 'object' && value !== null, restrictAdd: ({ value }) => !Array.isArray(value), collapse: 1, diff --git a/image/logo192.png b/image/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..db9c12b3b803f05461968501fcfeddfbc471f3f5 GIT binary patch literal 29506 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 a=kAv;-lerjh2J1TbTkbw7hiO^^M3$UYJlkg literal 0 HcmV?d00001 diff --git a/image/screenshot.png b/image/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c84878308c157716c9659aa39dfc9c7f36e387cc GIT binary patch literal 129445 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

fu?s1wz&bMDE{EJ!aTd z!ak^-CmZM9+f-BFoJ-v~q&4I7sS9{a?WE0qGzU6|+VHpgi#9~*-!erOI?_>Xc%wyb zU7Zpo`KhoVU*z>I;GaXs7O5#<2~Qv5`l^@f>0X>(c`y&qeo&1xuye}w;^q{l;mJA2 zkm=?psAzN+(rBFE6g)+;5ai6DAbOWfHQ+*hQi>a8p1|-n?vFP<^-lyiKEmukfZu)} z&$R^RGJ%f~%8fCs)$xdpe`=%T+!Ap&Sz}>1*$lHXYJ+CQV;7wfIdH5L2qny-vF(e7 zCXGRZ8zWT>nz5qiBwpQND0AyRrOEq3%h^bNLnFVMU=PKT^?an-tCf4mVtI z^$|S>)Dv9vcJrNS7sOB*Ml3i%?>ivNNLGAs@y@S|z3nGw6Eb zR5Vi9d2AFY0LWZe92sQks?FFG&mzyzsIChF6GpEN&q$tadu&~hO@bSKp_!4+eJSt$NaS^Pg#>WC-^om7VL zIqrI&*wa&kp+o*e1+4pC5N_@KS7H8VcB)~0Cs?ArInvQC==3Z6PH8WQGlp!y!a#5z z?6sY~91y3!9@X={FkLk>qdfjZ(FcK~ab)ioXE{dU!1#+3$|t*W(wMXx0-b({vlU=#2g0?JuE==YJQD09ZJcE5zS5(8XaJ=u*(5&d_^kmXDs1 zNQ6l{N%HLeF6q0n?B9P0R zpL)V$_lRky$#=V*=O^5Tt3?;B2Fn&Hmh{;3>+y1Py98>mb>~3(KrV1HG2TK}Res^Ve@Dz03c3*jF+hL4O0DRhUuA8;hWD->r4DuP z><#P;?7*YX(icGd&)?@43}ORXx+Ry+oqx{$?=dxl;}1M*mJ|Myn*8q>*QbMT&)`@8 z_oX?Y1ebUI|G4UlF5ufX(gV2vb+T<9;0<;CKdz(i47efcDL4fFz2JYo*avUXlF+|b z=AVoFf8(IrI3QX1iv118>-0=(aXO7o&utcn3Uyja1YgvBGQR67TAGwZ0tk9x?r{Y4 zvNC(K4WAba&oTaU3oPn_+ogHi>*$RYv>wE6?99|Dx$MuEMoESf#e)HTkJs58qiNs! zN_*)`vzw|tw&dGY2p@q1i&poL&_%sG*~P0WPYu)A3AH{zL#5~7Q07i%(-+3Xz_3$4 zR;>H~*n7*Us@t~fS8$<((kVzc($XO!-QAtiA>AMi(kZ3V-Q6M5NSCB^cgK6K`_k)v zp8a+2Z~Gm?F>tH_Yps8saU660W~J2}dq`-g!UZ27^2M;4%H+;1J^%Oa+Xu?$Wt|pF zzK;k(A|et1jW{oLVt*EeXIy+P3x6*~vOl=fDP83Wa!w$m zq@-~!ZDH=g!;>d50=4p;jPrA5h`hg2 zt+h6ddPUZl)!~!BkC<;9xQDU^g0hp71WI+9!+VWDO!6uKcSVCGQvua%qjM>=&%d&= zGJXcc=WvdrJdT?@Vov+@JRwAr4{&(*28^{RzX1Rg8lo~dyi#M-pCJ8m#0;?hAtq9I z(M;IE;A=2sfA=sOPUnL{A}5}xFqOr$|C4wNPRWu6xaUjOlGijen^rjLG4bi{GPc%Z zOj{i&RMtIemCTh2s9$QZOMXZJb+~vSU(=XJc@qSZODR*N0B2C4JCdk$`?cAq5Kvr4 zuiuZl8O}${ukF^0{XSpQ^&)+4KJ~g}-VS!;6hve90i`&EQu5N=duNiKO+RSyt%(di zyQQ4WG%8W@ojS{j`_lA3!)+6^{p8%LTgyM+b`-mstE*bb-{AC~E+d@CQ}*sHufslv z67r%Q<-P5$nCp7E=-Bu=z<^PM!&bOJCgT5vim~1eyS?pLe}4!Cp#j^-(+3}*Ozi_izRU(1t-3Pa!?wpI`z-Ub zAIUC30?CAVXkj`9Kfexe0a1cxOd=4YaNWI9Q--l9+Fs%?k%4Nb3*QWt#0XsKOQ~@k zA05g6?%=}sGY4hifT8r1bkF!sDw$Q5|JtDCyJEH3h?GeLJ_Q`oYHg46YKI2z=7k5d z)weM^w9C&6CE7e85fLhbuRtRWv<7oI@*~QsiMZ^ugcktSIotVQ0o!#F2f8UQQY-Hu z#izq5n~{~Qz($=@c@^D;zK_P7G+@2hqAkqT;g4JRpH@wDK9dtu0T8`w5O!|4GvzOo z8wL&DFws~88o(gS2g-q;sOQSEF8uT4&*@NIUlXD4_-_OfNl73?Op}n1*dMJ3`}+LE z=!Q}=5D*bZD_=!i&cBT^AkYg5;U{PynPo}`U$oHUGF>k~$_8J)9Y8U^KzxNi<{ z?YG-#L?&h9WLm-Nh8F@MiW__6-@%6+I`Y2TnSXvkaGp?f$FtR6eI;I~f|!u8;jtSR zTt-FsbANj3Ne|ty6Nhv3HWw*lHK1`$basJJ^BE*Ly1f1 z2UwudZ)@m6gA@7)`chj#8>2B+;sc-N#ug1RXntf-R$ay{fGjKHQ8+4dsrS*Svo#J| zqcwqB$4$V9;QOd7{%~k}N_O5(D{|VX@VUFIEox9^T{GlE38-4o#WJ`%GVuqa?v&n7 zH@?#y^p$Hr7)Z5W?fI(W0sJclLn<4<9)SsuumfTCJM2Vt%g+YzPD#*>Q7G)T|1$>E znSvv~2xqcjFFWXw-x{?E)@pu{_{@iul$7E~P8fr%m6Jw<30LY-hWkDj8-r9Rbd?y! zECWENUYE;H&nC{Hf@+}rE3o%~19Gz(VeK6xRixkwX^s9*DF`AQ`x?GKsdkf24Jrz} z^Sk|VFm$ul2U8?{Vd28d>rNo+JnIPT-9C)FVoZe{Q`d3ml#{5T>;9#8*9D3|-EV0v z_*9WpYTqgwv_A1L9E;fX2;h*gF{N&qTR`VUHW_(&0i=adADLPIAecZj5eMC6l?%bF zt#Emwy(dqe6uj3%bre(MYfCDQWw?$y*x1NbVPc{b!t6wR!YQcb1Lw7ahxNAK?N`%3 z8j?e6a5@(5yymYRE@(-AfqF)pEh-^MEpl^`3I#2CYumO!d&ZW_Z`U2S(2TJV&5M0; zIs#j2Xf%TS)MN-9oX}}@ze1)XRhTt$kv2mB(zW{P{0`iJZjI&4xAYm_qwnOmpe`VH zl|;#=7%O-{$FhY>5hPs(K#V z5Iz8Q>KbTgDddPV;hWDlR0rsObY*)=sn#I&v1}v&Rt1lE2_W!*Zn3Wm!IN~ii0dse zG{T7%gc%6-74^?X3YMaf=nq>;mUfc;85rsS8Qs57%w)uA6dW=I;o*w}MqLH~YL&Br zj+H;5#5)bFpFE?gA5dv=hrduI^}OV?70@=YL8@$h z*8PkKA!+pOujH|rN>gLdwxOlt8|)u2T;lq3XwyJXpdW^Kl1jQ%6l|O8($=;yoWaOy zI;1r0GZBDBCX)AokI00ZNxx%CPparFgteu`W}!(vIV}(05&-)6TGmrAoGL}eiA)uQ zjN(p5Z^e)a?uYA&Wd_ZUZ<^wy^TPX(Qw5mx*`CO>;}W%mrl{fqWTr8voMsqEdvZ3z z@|gLd>X5X))ZbExKq=Vp@Ro}zt$om4G|QwrKpNh0!{#K%eSLx;iAo>tovaBfc~SW0 zNb2F-7#v;d6tndQmQt;@S{Qz0slVeC0$3#RF4McT;}T$@?PH?|gd7&b{|+6`mc;SR zcr2v^nqxWaw4H3n(WuoM;09INV1j{i_P>*BV%2R9e_JbDePFkVg|}J^`uG_|{5DN` z?577q@j<;Jm006?i6&f|5Dtcp2U^hBYs!svBlddVyXNLi!FBgvb`gw+m*|m3>_>Jv zjFq?@t1n|+L}OgBo=}SB3w!&O!jP(y=(9cTKtdpW?k-2HUg^Ko)$MuM{L|YaFKB|% zay`h1-Bkf^mgs}78k+9`M1|G?=G)Zo=s!D&Q842QxnW$a+$&(9oh)WhHwQ&BpSv<; ziWPQN)jz)@h#dhOKSk~B90~XlM7u{AF~BQ;OA2EGf?J%F9Ib>cN9P>AA61JV^gH*f zXuO82%(hM=jMquyk(l3BrtjNdgT03^)xN!9+VFi`;@Ghb5sW8&tJlWGL55C{QGWap z@+Pi8Ic-A^`(1u9X;KDS#GGw}2rS)gqJm!tCIlsBh5(^a*O1~d0%`kh-Y4ZJMeJ%k z5-W?5r(cGc$li;Ha;AT}jYisFU{SxAZ(QqD zL`OU4cF1-SAi5NMR!K_k|JZXSgevY!8)Of3*jZa%WD*?RXSlB8r52zjO>eYo_a^uV z=mt-poc`W3zKyy!r&!Us5mh3*#3W9ps$X{+q~u771G%%4CG)LU{LZOl4%;AXMS0Am zlGyZm^gC+H_;2-r91WW4j|dH}j3IH`8i~omINgyOK987rGE-iD9i+p4k0djvhF5u> z%yjXX^>vZ}Nho$#n4@1*TPV^u5$1mmAxgjvlvl(UN7eI)OojXlzdvUB-Cshej-XG^ z9MY+}5A*m*4@gogn1u}a#p#=8u78pSeci$8->wwm+A0kj5e)Af{Pfuqr#&WZ z7OGw1@Cmp}uB6x*-ETmr&f>JI_Mu#JSX4HJM3?cZcQeza{9A?Tgu-v`Vk)y4J?Vq~ z*#VJZ=MA)$$A=_sjqOwJrm-^*ZR)0npdBe4pcr5)sFYnr={^!y))DYPJbGw(O-=;+ z=tAIDZy4#4gYz@047R&W+bQA&S+?U^_Xxjw3>KZp`XPO%YfrkdgX~$UJ zVP&y8h9@z*r#vsJ4~{ZtdWWU{72ok|2br>dh+WNJoCo65UoEV@)2p&Q#=~pTV~Q%CLOxmWb<$Voa5i zNFPr6J{42Txaso#3Cs2=gzi{BQ_ocr>q!dLY4Yklnnp#w;U(5zFdWSE9CpGr;_YEUcHCU45W&Ss+j~rt0Eyi9L z5^p)gOdb}lFDH{RaotcXc$A*qKVRoR{ZK^UlRT677KiCFtzAm|BCM_iK`1GfL_Jbc zm(R!6$A^guUgMH?(~D-E<&MD0aP1jB+_yKoj9*hkw;WymW@S2q2h$cuy~g70qnkIo zZ_r8E3YB8~;Epxp>URu)h{(K?vq~38y`U-@C{ms)6N=stHWI{3l>>HF3oJp*DH;l} zY+HIdC;qG2CA0q&71bmbf2SEC+_&x$k|U9{t3l;2AAo?4P7qQ|HE3&HgKT3yA9!WK zFBQF{=;LgjE;olHAI7YYV?IxVhdg+g*v`qsEPAPIY5R2fk*E!4I)~-7T!8$<58q~j zrC;IvOTneNd3n^nz4$R_h`#$5zKg~noAgw39PR!&DtmAlBm=oBY{SoXBrU)E`b)|e zuF8V|VbP{P)ehg+Q0*@n=fe6Ggvkt)2Atsx+I2dF>_G1vo9F3VVVDQlrWg0OCVq*5 zp?SWX-akOeap>yvxTG=Gm1R##7o^BWFD)%$+O$u(>D-1kr(v#&kNzd9H;2)N2{dP{JmV}P{@N%gG7=?!9W_GzhJ3}7VzI}c^u}s7R9VoI>9{R?OU3!OghL(`4aP{882+1~V@Mf} z5bIz#&B_2*%BytuW4mPbW409IfxnLn&>w_@ixiDEK0}3&1m9(Te!f_8DXmhZ%^1DG z*b}hX*eIkZkR)&v_qWd3Mg}dyby+MCi?ziF_^k_s!7I>uig^v|mFpMk~&5qgZS7zF?HF8-E^jbOp>le|P>7yR!VK>xEu z16}#8N!t?qua~0`!1prpOY9=~Gsyn)Ha@waKzbO*(Qfx|B@+4{0ZQmmBj}(9{cqaD z|NY|s-=6WT5P_95&U%81A9YiVbv3I!DZ_O#O5$Qo`JT%f4Hw51tKh@od?6h0a^9!kI@k zFxDmS?b*V23emn+I4e2-Zs@Kng^+fpl0K-D)M8+S7m=P3CZt~7hFhG7cTDu#>;K>; zqtiSmP-s%8`aS!SO4Q_2%;unl75mGdIfY7_T(c(XD*dPIG6<>$s~sh0-4+AsbhVfk zzuN0+_}gvx&NsE0(;DS`FbgKS8b1HfZd_R``@x6#R0viF6#qN=b(x4FAx&vMbd*Gz zy5_VYQ>FNMeSB{OC2AVzxWi%hRtFjmC@k+^lhL`CXpL_6OLtfE$dKNvQ757tFnyK@ zZUm?u3TaFl;%Bc`tWp_*_G2IazWL=TuvauRp1q>^EfoaB+FiyjqgOgMd(n7RZ%cmS z;Abu2JL|%F2;@7P;bcHRRDo{YuT8GB$fJbe>kN+d>4_1Q3dz_+z0G2mS}xKPL2&)2 z3NW#Wm^#aVkC>uN7%rqkgty>!E@kDR(uDoykcg8lm8iPUznaFH1ha=b-Yp2PC_vuX z^$b)?aG-N6nixCi14J=Hv}lO!udl>cCe)(mNH4sbBZr!tU# zbJhnIm9fFW@W7beWHg+vJ*@JZ+i5o`?v=X2@rE-4th}XV5tI%hk;p*rHH+gWD_Me# znmv0F_mlB~>WWS|QNxC@%;i_}Z}*;wpJWQl-#OM!OLckZiB}j?WBuuHx@wi+dei5A ze6uoT(Bfup@swN{N{gGDwc*eWsUZEVc-c(OnfW7)?`!Jl2{uwyaIhoeUe211?D}fY zNs@F@X!UkhNDybpLY0aH-=t!n6TbQDXk2IE8Wb-fYqJL)1G4 z!Zs*$G`0J;GzB~!`w3|pu+GZtAP}_uHXIUfQD~2$H!Z-&x!&_pr^&fJ9dUxiVIp}L-1J5V6t68({_tke7zHNv?#pNf)H(x}@{Tud!=)UKQ z`Ml8Z7&n_?+qLU0X&!T9eTZs4ICT&c(Bf**mGO9p?n>jO3@KMt(wup1mq_&`?sCeC zVJ)2?W*gG~d5}*wyn0ciYg^dfYm7GJ%}bN%LDS(h&EqEtiEUImBZ8gmmHU(XY?NX8 zl5Y~|9`@v=tf?qpIG$jlM6J-LN1@YaM5V$Z;$2<$E+>~t-p<6vkjd(Ny5n$js`x$P zdhi}C@I3!k!w~2Fnc~Bp>x*0?lz552Y9DH?+yH`PeyN+ixTu@l;@A89wacamcOKs^ z6AGy(bTVjo0(lGic0n(wY4fGGL^$^H)^>U4=jq0qmP7m=MN%dE!S|b zB3YR`7SV6_SIWk!c*nl0^n~R4i?WH5PirMSgz8KXT{J7ejimTx)>9#W(Y;p+_Uv5i z$VSa3OcbmuPN6MQ{?wVUL{t|*7@`=0;x2M#pJ6G33lmu zcSKH^BA>!{;$&uPtmr^ami)KxS}13 zc|2>TT!;4pfCLj3=W0?G=T%kvVm2R3SL_lcBSd#kM8WVfx8j3Pt`Z!Cax1qbg`^gJ zKQOr3YpBVXP9na2Y<#u9VPN5`St{H{D?BEu-taYRaie@%%vomfmw3yEaCYDE7W>=^ zQr~8r2yZ@dbOv3C$#AZB8zw`YSNpZ;aTd89UBY-k|}}{vK{6yp8FES_9m@R!J-3}UdzsLV%FE}Ztb{b5B+ppfM%h}umILz z(Len&E>GOH*zuG2MA~<6s&3|<-I>IgFr3Aj=XOssQrsri+nWtzr|hjCGrp=`)HYHS zssoeOpiDB*Q!M>c@9z(6j`m?7wztsT>Pw)fyHr@rl_kp8Zme46#wwq;WZ{ zQ_Y`tJTd$^_85hi7>Z$UYcd0yMf>wz_4Y3Bk#E9oSikFxdeM`)9Sa(|x5WVuDDG!_ z-{XO#Nk9mqQz?>L1Iw2W8?{z&d%t%CWdfBX$VZ}Y=(~l(!V$ZU=g+{rVyK~$cMV+GY zM>dodlZX?{7bTD5i)m{yti^VZ-l4Zxmi%hME$(9`dA_TMC!$33I3hYlrLTPE_or76 z4WF{b?j~0>MKBUR<2_?%qZ=cD?G(Ct-kNpjNj?iYmi732;&hWqNz;tZ{Vvu7k+ zXJZ70YsKS+&9BD_NqPy1Zd8Bmv@RQcVgYKlwqmgG`W2e^$sHd?TVSc4$*xuM-^aN*^DwOVAWjVnw9_ ziELlAS}RL^ulSQ#29sGuuik@h@lZ$Z@@Tds_=jV>9S3^VzGf=%w8}BhpPMK&h%11G zsqyB|#+vC~S_`~=Y}A@-2linN0WhlrzsW3h%5ekH?YCm$Ur~HyjWj`9*BM3fx~+O;Jtp5m)UT_8v z2)4Z<2BBdT?*hpmJ_m;Is9+s_C(029QBv zZ?Otzs`pw?7iBt^m5T+XCRCgWlC-jg1-e9qd(!2#oB=nlYC3s7S%-Lq`4d@&{QA)ROg8CU|@-D+KsUI!pXt z8lDqBO17!k9zN3rU4-)YItvL*Z_=t``>)pcS}CMcGPN7WE-&e@0F#*%$TlR6ZDvB|Fhod#^S|nEIm-hPHw<6De)VI#g4*yL%R8su zKei%iH+|Id*o_4#7=VU)fjg-bho-#T^Tvrrt?Y|{|0V*Z3Mi^5B?7QoEXb_f5+1EE zmVDcl4GV{u=RP2x8ZO~116*5_P_jUSU&hm0zTIq4DnV2+9za-um}sWQ6sZz3mE;W; zu5K2U$J9!d{hEY8T6&(gvgm|z?B@lhjUozday+mKnvohP`m76CGVZ;Y;ObpgDwIQU zmz}H=0j* zv-}YWmJht&^s2wO0;d9AyKU2W{df5l28I3nFm3;Cqkc)}2XIygpr*SI&5RN3AHiAe z0&2v)Kq1eycvT}{!8ES|jWA3iq8kz(LjwaybSRj_b8j*9B(icZFJ0a}A|@RJZRImk ztTS<43S5xC%6oS@CW1#Q@Kx8}KR~f69cX5(iVWIT5prb3f;Ue={AAt<5NJq(;`w+z zA)dq=Qj85;Ru$~1GQ^KqkprpVuy)cs(b976sVvw`b#>43Xb|8%&tS0>Q}Irt0N zj0|vB`J<-7(Jht^DPG57!`PkfAfTUZfV_3x;=oy>O6v3e#+0fHbMn2@(H43M0qTu) zuGvQRfODa|NqR;hF_x{3Ki+~dom$c!&gNEQ_Zn2r-sMP)To;G4 zob>h@SFW8_Fe@arWYJUsJ;+u>ffu<%AaLF@wTS{hkiy9+vwfjGSq|M%jy1(O&9pHF-5 zLB#4R6!jx)qW^Wu@idsJ5-Jz1Y7m{Qq#$OJ^T+)(b6)%6!`JJl;_7)up$^!NljI$lIxRIIm06?Q?rBxb~ApdmJs~1%B&u*+#bB0Cv}tgmHfMp z3gSG=Y9rn}k@X^-l31&^SN_TQ_6!ES;?yf0`*&>5M+? zt0}F(fwDpl=#fU}>)aX)L*&lHE^tg(7{; z-^}22z*px7v3cq(U}GUI){Sg;@zzVw1JJYucrdN){nzjJrH$b(%$O-44{A^g9_yp{O zdzua+$c7)mmY}016&a33_1WSqX$H!{D;QOH_)F9_2YBRuCgy7ZQ&g@Z*EIA^jw7U;NP~sF#{r&D zxp!@$9UxlH*n(3hCGne2*~vH!Lh$3UC-3pyt)y437D#(>vi8FCs9q))dp=)?J7uc_ zIXen@4W2;`%^_9r@SYEks^pC?f6U5^NuRB!@*8CM7c;)e6Z~);_ln-JJV^LOY)h*M z^5Cno<&E<}SjVrv*1u?=NBBuBd`O4pIrhvyP`4SVQ%5rHa z-t7k?#TBibz_d`86nf7nSfo{)?re1ONVZ|Y!ln%K-Mc6hIqWtb0@vTn%kJ7mFS@Z@ zs+svlMFD~F*ES1UOI6yS4^qt?Gw5sk&FQH%ZQBzEi>U>+L;?A+9BKOVDkkOOC`DBy z_)4;p>aEzb$NMiA-<1SXTH&f)+-2;^Yz|y}w@C5ady#O8Pdi&xth9ZRUO&BF-xAA? z*ndX&b#EpLbH3li_$iC?GfyGwE}_Ct{o9_mnxTcSXxL24J5M+8$wkwf*b8kuvjbRi z-+l#G7=v@h1NSNGJPGmXMNY>PSxqx%@^byBMvK!61*xzd43yX)B@6T@qm6a>h9`LD7x}-J4ZdCtjZ?qy72BIp z)bQmz@qQyV-9%Fm;^+86{7gTgF?h$y@aaNxW(?)At&$bfhvILzax5QAU02rP)e z>Ocv|VY&=NgJ;k~vtDS*Z#jQQ97ioL$R)lpm~vZ4=j7Mz?Pg!=15McGJsVf_JA!-i z1ktIu+uXm|U#(a7h=ute_6uAOcXHM9Y!8MZ~$#(s`u zlnPFfyQCpUQ*b2Kh0ku(ZVTCd9@KCem>wWCPD&n8io3s0LK-CDm#o@jSaT0&!a)*h zgR%Ot-+$x$;tClFelH??-RK$jbEYLS`8%g9rSj7odP7sGJj; zC;fb69zgsCQn?h@hcimAI|J=)i=cu!bj%+As|nDmoY)_m{vva+EXOf@6${RhoY3u2 zaq1;|@9i^pnz$W43B(C=+WKRhxaq@8^!t7SGND&0MBAR1h2=l|U&dk2$ZJ0QBo(4a zZq@fw{Who=Q>(;f*!pB~6pKQ4OE1jbT8o>pQPe@D{7!yJwa^#hv|Z?VR!Yrvf)(dq zmBOuIa#PrGyQ;}B+zA;(?#2?p-Nq5W zGaZ75mtD$wl)W6u0};9`Jy{*U5I=w^L|w}uid}WiEEZ{BrQ2TAt=67ujoO`V6v2oN zv74d>J@|bWBm@^8P<6HO?)2bKM7NFiX(L3wob_Jo!!q=Me;%eB0+wWXO+Z-K&vVd3 zwuwQ*2Z3BewQg+}E0e`MXgXCbXeQVQg&6CY1O!E?ZG*0p8|umezhvt2_i%aNvJPJj z!iqb6TBFDKLGW3w@U)MdMyaw~m`{`;;yoSiNXpbqk;e7WMz)md9$kfULy`1m>dJbBlb&YEk~pC%as zr?t_uL8rW!l)cx*udv5Hgat3BPYQ$11SSopF`%T%5^Ph3g`ICRf={V$f7X*)W^o2w z$&AqS=2<phkf{vm&T>bqR`Xt}!(WlGFHq5gyNpQ&7P|<&N$7)K6hK z;xM>>TcW09JllnvQl`AmA#RUDTcYZG?XrJhj9zUPuf>C9zRTw;0!npp`efy0V0Svc zsFCWuhg9k4_o!_eams@JJK_7>Vwp>I)$+Osu=5n$kdCV>L#>X{V-V83KO>4$h&;z` zMPwTk?&fl;LDuF}C!M;pTwNx2jy6yzFeF+#v|6_0Gi|P66!r>h$k%p(%^mN4uf2~A z^VKm16pCeTITeputghvJu!u9-?9p#m)T(nowopBR^FK>jW&y_W? z#DMFu8KuZMDKgj8aq~nAp{GoVIi>Q{a7KcbmoT|(^rIts`JpWYZV{Np$imMEO24*H zqy2>jSdnTxYlCr^Q#? zeAA=2f+438gmWSA=n+PsxX@cAM5Vm1ca)ymqwM&=AM#i3c;)cFx{6B*U@Oh=y|?>+ z8xb18n%d>!W^L?`9_UZ6Q4(4c$E3pl1M&IeW;pHlAx={7vrkXq~h^Vsr=i&Hi( z=c_;=ofaCdO4Hbw0DDQZR;^>Xct3>-J?o&9@Fsi3d&GKjDnsj@e59%G9L~u3xJzX5 zVK-uFqgUBJvQ9yB2EzZ|L~~$*wfvyZ0Qx!j2=5!-u3PfbJ={AB8SdP}n z=)2aul|LGcKVE&P{fJ}S-u(gH`**_NdFbU@!ciog_!ml zs|iVOil14Gt1%45gX^%W6uZAV{!rg%K4#ih^=dzs-DQQ|ZDPY;eTo$vuT6 ziq~x_30ePm*?b@hU~q_LAxel52!%l5XVKBo_P~=tqgs->I+W&ga}6ZAJwWQ54SaPp z=UZYV-57*~3?U&Q3czOC3kstTFru>q!Q4|-$^oVu1k4TT7lOt|7lZm*zl|DZ3R$(?q$>n|DRG?C4tDg_}vCse> zVE%XoC~hiOfD9K0q-N7PiuO0>R)C`watn4__NSZj^-lC=3TaRW4*#|KLGH4HKYS&jMBt7QMDd zK`P|LYQVT)^jZ}l|J4EZ+AfWdY6`*NkzwO1i@K z(G^-Jm%G!j9?h~)@O0d)G2Wjs-iQL+T*n>16NAn&{@`(}~K{-9GIgV|P$SRePiQtQ|{P1zQSlP4_ zl)v+p&u=iO5SV`dO#TJp7a17|_(p9E|A~SC$B@$pxUw|Bf#g-u!1U4W?rch#U*!e= z-Kk=4;=#TVHmo7wBv$}?$Zs8Y*cA}w9t$i6f)hIcyVP{Go&vS2{pL@FI_j>^_vn5^ z5~&(&04r3?H{n>(*DQ;x2(SjTv+!3JhZJl@L(fCS4n)2WzEj$`!zPUF;nCM<-Bnaa z+^9T_{%KQ(nnLW^+R`}7nkOypT8H>D-;w`ceP$-~5GcO8kuO1Dl3oM^1{Q?ewm#ga z3>f9fX7E?oEb>o~s<6Faw@fNJ16Dp);A^2EAu-Ej(}abMm;ya)WjaDNEOh{W)fU|c zvTW)%@DBbH$VEa~aV#1FyNIo{7+(DOfog3WxgI&m1j&Pmr{%59w{g2uKx6;nR*c3> zx&Diek=?B@64K4t;zoE=3%z6>wVcQk*?)&x0#L15Mx|6Ch1q})C*V>5<(OP+zr{zl zPfsDSnZT}{-w$ofF}B`*yTv%QKS86zQyUSepdiMk*B}SL!LPL5Ak;Stn8~((Eo1;% z7@Z*$5U#dhhcU-Hd1eJ$fvcLt;z?i8Sl~9vnybyiTCjt?goYA*y8Zb3*%L0oe!ym zXNpOw!QrZ%F4w*W$4Z_z>nevIaj);}5Z+`cwT9O`J_{RsoE5Xq8XZM#f4Hlhd^5!r z(qgYj%tXqdrMhR&7#!}=zxz+d0x>JJf;39?wc1M4?KEBt zA&<>cslGL~4U5S~KC)e9ORi$kDps2=ywyANQ}`yppk6^iqqRR5Ij1{OHudD>-&0xD z6QMzH)0jag4rVH1VOZdpt3*@5!g~Dpv2sGJm~y?S3_0hP7rb#i7gXg8>F8l=pXJKlp1J6({urZHZ0&;yB^_owyO zp5(n|4LY_ku9ezfI^Ef{MhD_dO5Tw1L}-`e@^`d?W0c*K<8$xiQmI)cFX=e8wA0@|S-LB^CwHyg+j=JO3h|Mvk1Kiv-?x=XPZj#Hi|K0Q9)6GA_J1Iq=!Uij&UboLqXpFky%agBy5Cvhzm_D4+r@CMhrS zX3UwvLP1$l8T{JwL0JAj2;B#)@zvBhT@Js{)?%X`esTfM1SLGDz;qBmH17mFmLvea zC%0Au>GDUwFuFQkE4Yo72Pgb0za~z8~7wEfQ-uv23$_tFCdsl*wIi@U;qGDP>I#feg=dT+i|7T8hl6O^5*Z= zeRN@vf#}Yo&oft3e?O{?vpVM;!(LCP%o%xm5MsZw5j(H-onm9>9YgOAZ=t*zg0o^< z@gJ6dS3gYv!tbBhEXN;l1Fr}Bu#w?ifXuXo0uNs{lU$wQU+vQ-4Sc}Zm*T|wnOv5f zrfH}%`C!`zUC1aKNebx2XM$-{A{=yfb(YG~_!=!J7q`k$x(XgMA74FC1ccJ7Fx5&; zc71IAv{ZD(`Qek8G?~}4SVPm&{IW7ucZj5!_w^gj&M3z}x4i)Hoqvs8iiRkVFqsY! zT-}}wE7NPnx?<{$MoI&XRAZxlGCfTBhYcBD3|4f?`)R46rfIps&@c|8juOTRjbcs@;M|UH`?nyZ(8KsL0Q)lIT&<02v*A0g z-RA%g`8*^zST0Awwx$Gx<`D3Es7;hp5r50fREAK}fBRf8l_iehx*UK5;ZeM~y6Oce zt#L0bD7V^Or0uEU_IUm%2+mPnTp)5r3=R(CFzWdx=c@~gPI*Rgr-*|hUDYF1EpbhW ze>|FoV|3;lc3g&CQ0;+6gmBnTvtfv_)-%I-rTXDBzbC)hK~U4@gHHb;5Bji#fzwrV5vi4pJ^W&46p|AMR?;>)V*$9 zGYZD@f^WRdXOo%*)9F3}%lCIT%J0=IElp*Dv9WM)OotRU@aT!lY&th7^n1JGHAHNz zKGqF6#vEwFz#Q$hihE(6&-#Rn&%OLeo`))(xXWzt4^av%`UJtE4^5)z9jr6F-Wd$f z8=xN0^qk@N2!%K{U9N=DzTN@rKSeCmI-DE{UC*=lCh$CO#KCYhil`CVC z7X-lA7+zqI-~Kg8#A#}%1=hi_)6-d>rU%XdgqY@RXG)b0#r8PxP@Jaz16;=htig}o z!sE5>5B4HR^X6%Ym+Nuc*`CH^+(o{Dwxen`7pyY>Z0-JrAa!4(l=7 zO9sW9a7FyV?D3Y|gtTUdcQWSd@*9RWp{?r}zI?=?*(0SLiW$+rLH!E)vA*HZea485 z&t0qlB4hwqO<*xSUi^38CPqvKZ4;7vo=d~hp!yiHvllix?R{1%P!h*x)JYYz!v1fi zL*N?9oFE$74S>X;sR5D_u>!CJrFC&g)98g!%dItc9FR0tg)1gpX03Rn1=;7u5wfOr~@a^12J*Zo=)rE*C7TQC9PcJyy9;p5S?`@iAOxsJ?X(R)12hbXz zv-^idMkapwLR`(m#vXlgaY04*=ZZij6V%{O2+z1VasT@o^kqx%a{8SYC-?t;`Tzd* z|NC?Dfb!_k!$a<~Ux9z=oV(gjJutuHc%i~0_zL*QVYu0hzAXy&Q-~uChQpM5D}aUt zc?*GH%Ei5*rKJ^qMJ(JE>O=jFwE5#{g4{dF0RP*K6vK%6=H~v1xPJFmUHeAX%1YM7 zeTst=R|;7{K|$_vCfM*tWNq;O^T!e_tZR}$oew&PJ_Hv=#0O39zdu4AVZeK#{Xbt7 zX)}g^zj%hlVf5c${qu*EAlCAKzWaYZ%cmcn$=4Q-*18A!$v!*qK=qn>e|Mql3N#|m z^MG8jM3-QR{^9aBiiEUuHs~~)FEqLO3{P^5HP)Fv)|PCh`Ya_LrEoZmS##sEcwP-%fUG;e-j{cCnt+P5xT z3wpj|cnXXx@Q{wA%i?PtOw>b!AGM zjzeD&vRmRh9xTjHlTW2DI!#OqW!I?J+<2Oj~78hNY zjyFU=eE!vh=+2C_WIFz2>oAq3;+2gp6WhZoV~QJpuNJsSMhpuc9N^L%!uo=}uYXxZ zhAK55RIE^#>-+fWDDVhtwd4Ts>}$jBXNhz8_)lPc+ZfsbI(%)s?Bi&mD&z0heB2j- z0+$w2gwo^~jK^5Mm$eU8aS2IA-1bo+OX$%`-;CWuy_U@SFye-*w5{oQ>)l9RUhhih zj+NZ5iqSf{o90@1$oE405d0Yz$aGIZu^flmo(SBAQ8e(pM_m|IhCh%I5fSafp6S_2 z5&!ZQ0vzFGalJ8XWD*#h3$ z%-buQBpXN={V^!9sO`-2!TZ02_omqayFrR2l<j;i+~9U8YlX(}Et zsj;*Mg8|P7<6z5$0Z(eYr6~L}ots^BP<0DMmJ_SJp4glK1?S5Xg zTWQoA!*CH|0pu0&8_+BhkF*93{z^LEN0eY5Qz|zQ?gQ~j1Qi^R6_D`ce}Q-hg^dTb z?HMk4Ew#af1_wtC52PViWLBiV{IQChlU{T71KA(XSMK-RtvyvanVnX;%GR4eiJGQz z&D>esH)9Iu2+{Tmu`2=ZoZ$L!*6$XX8WKc~eq1QpF2f^6P@6RwC!{|m^=*@pT*)WH z)L_xzeKYK=SE|J;+Ph&uQ+nBo`^u@_uQSY8OfXr%XlrNpd@xy{?m3=r8+=swIxCQ1 zUjwx+H5b>+6X2CZ>WjA$Is{L}C+V~q1k76y2s#EpE0*6NB#1u&kzQ)}%>(aOS=BY5 zDaZu$l`$Z+&qgmO`B>ir2pAG5e5a^v*1y!SQoKNcOi2eNHXRhBGy;F!f_3`ZQT>OF zqA3BIy^+iyhmwgwZ>5i?rw)Q~X+Uh4e15PfD=v<`Ax-@qEQd0o%73nc^Xm=pIBcFx z=}v`Fv$Ic{2SU&dD1o&5#YCy@Vo_htz}(B=t}Y?Bo#NU}@Gj9=h-r^e^lrfZbqo{& z=0iLDqe?*uEeCAWBL!}WZLyz*Kw0HmAnLI?217mn4%Ss3c?g79d<7VU|AZSZK3;-1 zK%`MA!iCD6&vUh{`EFOj7~cbQ&EyB(H%a(!!EBPJL^C&GK7l%n>qTQy;e4Ru2B75w z1$kgA_S$YmXpCEVvyd5-@ji7&yrgUVexV2O*xT61ZZd zI&|6U_G;!fK}M)@u8y|}yKk`e5!=i3n*;)9-YXXIFDB%&|HKNAyZ>beW51WlPsDZ96d*v;K%O|R+7cida4 zy(+B<>93SXI)B3DoaHT8*3Y|cuW$Y zCb#dV!U#@1N_B~wfrp{KhSn;Tqa9zrrq%>%)sLCx>Jit#(v21;FAAHz25!SF00QDM zC+$bW#_+rY7h7iTt34oTDK*v@ZirDA%H0YeLZtz2TiJ>5l>8B^HwUe`Kw&(m^znT- z9;*m#1v}O(g31mNh@yG{qNwI0Aeefxm}Q{wy_o$Ab^#TBm(zFJ7c&_lT^aaU)=mVP zE160FSSWs|7l=2>sCOe)6Ev;Af>KKIweiwSCo>-G_p|aJgt625)eBNS&H!DtTd?4M zz$b37OUpw2D5L{9HQ92uDkRiwTmu1W>KE1AC4~R zx?We=TLf~!2M2q#i`I(XKxRLKrkC=>I^BrfS4>hS>-l5NF}5Qw!2u__p@YkmbE%;u z^7cg1?YC$eHJ&zO>baC!S!csl368?n<}$|n?y2|g?qz2S-C^Gvc*RH3uJOZI?|v!6 z+8v&RIBcsTF_-c2g5H zFsiS6ETK>_MV1nk-PY&^gA#S-9_{E+B?hdTna5%K)9haK?g?P}F`p_)Q%cwW{P-jj zxIRVzn|*c2pB2_uc@A*Q`nTR*`Hevc37|jIe{0~nQCg0c$#8c_* zsS?TU)Di`)kg%MH*hii^D8YI!z)IeeY3PbBEF5JDa$%4X z_k9)c>54XaG>&O{!yE38e5GST7YU`l(IA5h{AtZ!WtokyBnq(Jus~49HeL5=ed|T9 zzlNC6hu@aN&v9_>R&U}eue>zaR?=P==&9@0qVBl(iNYZvLnmstl^-t5PCyXNrCobt z=jJmCGr}vIycrzyE>(^RH4vj^GljEcBeCV2zBl_z1bKNQ+EbB1xQ_|Ync*oRyt8a* za6ds9iHJPtdM;sR?<|z~5xBqEop6T`RUvt|gJ9AvGeZiUw+8^m%i9<|nSKN`A`=tR z=_bxjUoX{p1h8U0BTgOJz%G zF1>EB6No+X-IHjjxZptRPEu<_G|o(fWG1ErM9qPDvIPqw{P;F}iHiBLQrjgS$CP4) zv8eSZt3N>?ksK6at~@Am5b@?tRY)U}-bun2v`7~@TVONdFbmYJK_Sa)xIGR=nG@?- z@uYGl!@n~?-( z^X3x;*s`gp49?KOe|L(>Vq+b5zf3ukV5FLr!wzv(H$Cvg#z{+I{3NXK+rVA5%&rYu z_@iF@H&gKlHuN0!;8oB@RI=5oRHelfT&T%D^82%(E`y9Jn>PvxlUG-|NogS3H^QYs z)NkSBMPHKQ?6_1iO~aDidExuPkvyX`)@RA${xM@TdzDt*1~UnzhYbX3xpKi%NAC7J zvQxY*l6VX|Z&WldBEGz4z-_{aPPT~UuhhL4cSJu*YsE8 zqU4`_ldjJbVele9?!iv-%&6IQCtq`_y0D1O<|%HBw?={l{wL&Y}u@dKwy%4SCMuxy>MeY2Pm7Zp#AGWlih+Mi1GaVXF%%j#aS_tOd z@DD8h)Mx@3JS846bBGlv}3xi5s_mHQjTmkmCeT8iGE8 z6iAVp!-Dw2v)7=rTf!D^2vQ@MohK3<&FRgy7^(+mCQ%bNldql3zjQ?7nzPy29!oo6 zRx37*7c4!Xwy7J!mX4W-wc%TI{pjKBaP*wYhI~{u{hrNFf9riBc@;UNs7fVFK5)}nw0-*`gA5e+nmG{=1BX62_GWW43`+HQ$L)w>UE?GLSHKHAg? ze_44cB;fd+6SsUkVgv80IWJuWLJSrs)R~^UmX9P_Y@{LXU1Fx>ljdV;jyB+)aww3$ zAL37qL7IkLeC|4JAMz%P%5sba#~v@20Ec0zb~U~F-Lb#s?yXh!Ji>*?l!44=9ST{| zjJ#jlxLm^VO7*LeqFHMEeMpZc2}AOuQiFymwv--g2zvazl4&VJS*Rnu+FlFCx$SjVB7GTPEk>8IXFt~JIx?+cZRZGQ<-twHIZ)DiI}??ygrID-0e zdGO~u?Og|J7AYTf`B;_qga?!`!zZi+YK$3_p&8x=&4{eEO-SzjJ&=PdTg;22aag7o~;cJ7E%@O}H z>{n$!_Y(_SPBHPf;{-c&pCR^P3%HMS8OymzONGtxgJd+-W%54N4fx zq^4ku2x#WVP+lm*Y4sKge-b2C^#O?}N_tEvHSN0v6C`RVr9dI0a7%2ZcJb%*?KBOK zbK^DAkOJYOIp^jOiDCPum;Al#--f!-eFSc6ro2`q();}hSvegS@`a(sz1>)B>k~$T z{TqW#G98pNRy@mYgt`{vo8BdlZUUs2DkL>GRP8F|d&oT6P~v;-5}PqJ7VrK1vXnEsaIEW*y{4NmUUKJ+6nvu(jomTr-xH! zPIC|TsG9)!O)lGSNw}YPLFWeY!6=6Dgtt%-uq<3}Z8Keek7AlNkDaEO! zM>u<>AKYHjgLH~$fsY6@`by6e+uErp?vF4F91BIJZVYreD^W>;jS8Xit+Ji(2g<^~ zt(+T*KfxY_E!oF_tiaw-`7(pef;4(~H%8{xDfJiLB$JMN^_=iiskQL3%F_B(@Ug?~ z6=UyMsD0z+Vw_WV*)xYq60n6ADBBerYk)y$bgGBS{L`!~PC8fYzK@0ri9^a!7p{FY z+TWxQzX+_K6~2GigBqv23DS`$GfI>8*wCC3`5w>P_j)woiglyWfd0NZ`fEyOc)bHU zbvlo3`W;S`n>9&dU1|J>s{Z_5cSPe=Ocd8w>2gOV0%#VCCZ$Lsy)}Qf=tw#lVbOKM zN#vU`iPPeUN{RrVtk#{Z63ezEjn|=z)K9O3-bZ!ZbUY1l`Po5z^K;poK5Y5VgM_41 z;|3CU#C@gfB!3)|&q;d{1JdBx9q_Uh*?1F*)+bqEjNN6OcsAY_b_$FIqmAC4f*4z@ zUdNLb2K{%K$$OG!ETd$BhdV6=B$X&+Gcu{@?NRblT4^H?v0& zhEm6;XY~s6_qva{%~KN!ZtyLRE}ylyza1`IPAc$p?(ECk?Q!n^?d`)bpUMHvYHb@- z)0LP)6z-8(Zgy|C-Y_bsYg0dI@ybVz(tqAwp`$hx-ohF6?Kd7^!S%Ytl|IO^tCIBz z`P|Mp>3K#IP@q@O;^oD%{ji!4+<}v!2Uidp^sPIF+Gxf}k@tkjxOpV1zJLUXl%Ktn zEYDasRj24wFC|`lCw&VGO!vdRrqC%oNi5JbQBf)e-{Xup@ib*T*;IE_6$y=Sjb#xo zTN8B8s#M=T$(BeFUf_bDpg{;fH;Z|Bf)I~aFcQZIK?c13?d9S}^A}haRx#cJ6>X2G z(TU(%WVHhDnZD%u_BSG|ZS|&jr7uBsWc}7?RM}wP?YN^+Meb$4aX4?&J8QhpTZn?n z^mA`Q>dV8s?$${Rl3&_Z%WAOhVh7J1$v@E#+Z(56Jx@T(k{zl;5L-T0imd@X`#xzzSmwg zUaYB+Dz4-qlM1q7tEorJKuqzS0K-8jw3ZTB)tIA?UV-U;9>_`T(IaQ&XMn33&WA=8 z=y8+Y)}nM>b6nHI$%R+YM`)Iw`t3w>wNpaodmpV6wpCDOx-d>NEeKU=oF+e@DX1&C zbP7T;cG6`1Ef-T9mzFLPk#Jwn;}2ppFWl#Ai#l7z7259*uIkgJK|lOr6Bw%JIy1@7 zvV~-PSD<#*_70opBPBMy4KtT=%#nLrwQDcbz2LQwNv^&R)VY71_vw0b-}tgsP&z$& zI^8<~_86G$V$6l9F@LJ3B*JcH{!E?i80)E1k)-BpwVBvzv+Fyf;6PIs0n6}7%kTPO zVQhKu?xeSu;lm$g-cM;8R@z?rd=lV6=W~aPM5Lmcfp4Jzs2PC;Poty6pq5O{A^Dcm#Ntul+MvWT zLtCVw#`iq5wDfK;vrrLz2vLwNGFH456Z|}iAmKF}xrk5XfVGxq1vaSh z0EDB6q<(F0{${KwvF{{v)s-89w%`E9)52YzzCXYQ|E7sTQ*cpLMKVcQ)?w4 z?0;EdlW3KW5rSov)bb4a(ZLt$$*V7Mg&OUG#~w|onH$wkUFCIbJK&IyeUThcs{yTN~@7L zlb?>p^;uHWdbh44_32x;H(|TJI>vjx$l81;z379)7zvTRU7tzs6nxP_;hp`!556!CX5ticSM zn3ID@<|mwj34gMzPwR%@z5uHP?SzCXL^6cYM$xaP=PaXV7kdGfhQZhr;I#HrA`1JY zW1HB8$gneLZ;l2I4&q16GBQJwvrUg5bNXsV zMiS|S-Z;WfJ)9myXwR2N;|@|RjkDg8v$JI1H;djj+;vGxm08?3S338$i@;mcAy-{c z^uZg`@?Oz^sMXoHQk1fsy}`>(6_WjtZ^HWEx(Xykj@w9&T{N+2FO~+46I2*CT1{O2 z3Kh=%?G&F$iFYUj5W4E7xoVydo68$r3C|W1=ea9?a%4KO(1J~4i`E1?1Gwn?K*HOXux%XnfxLOEOu7K^jpe zOV^>OP+jmj$4%(Vim=evInmnepaM1Lu7Q5;(UL#nv=%D2BH-X^Yj#f_%#VuPCarQf znwHhR4xv$8t@JsxGFo0_LJ&Dh#>8!bGIW(Biy;Lc+TRRQ<7L`Ub;u!Q#VUdFLI+=B z*fbX3HOw6+D+8BAid9e6J_tE?zvR^S;%`l7Z|SO?!5u;#oYaKz(w7#TE^fC;<{|F) zkzQ~?1??ya@;xOwgbjjLejm$T8leh;5Ge%nzr23%b&xe+uGUCKFBbl^up^M22OGKq zWqO%nQ)s{TX=3d00a>%6SbA}N+)({oe{zHg`us>gUMxmyguwmskwHgx)X&unS}an$ zTpR*%mE7&MBC_AqT{hQg$BhSB&jgKc@|oISI!YqiSs#5+7AqjWE3El}w!BuUvZdLLo27^*6wDJw4QN zSwXxQj!+g)mr_!Sc(Oi({oEW5iy#!1R^=n?(I(rX2MB#ojNpB9Ew}|#QXhAufI$56 zXI*t>&lrnK{4P!Nt31#nP^9B??uZ59Z}!BL@dPRq(c7)YH7I{Ib|Ak=oS#+Gu7R-} zA)^7odJ*rBU2ZvISZ4dZP)-HRz-TGU6r6?pxbBmmJ%xhr@L`hvG#_||>gviikc^7c zUIdyxZv?6#K@GD|YX{Uwsue?An6iG@dbpM)Xcw7tCzOz<^n6(=%-Cc!cHJ<(bY z#M_Lky3cQUs8bJuJLoQjGKY#}45EqX38$$wzPrCAD{$@aslX}%d~B;C95hyZl4!-PfLM#`A&L9Z;)Q`dy{ito)1zf^ z%qYEEM`1m9`|=rFX2VOi`Q&6;k(q18GE`U1hwXi%?K6#{Rs^}ki>P4&U#va?bICfk z2$n1JBVI(@gbj*l63|xV#L+0cIZ?k_QWrWTLV|o3PuDBD8DPBYh56}m)B&kRA@4dw zp~Et0A??W+3#%EbU)5!f=g&!A4F6i6YM`lB*&Gdgn&7s*#Mj4%q4ul~vIS}{ zIl);0x`&?wi~m+k7Wm@>kWKZnQlE@Hj=ZxRtzh>lB^Zr3R4L%Y+xGteBr!8^a$f5M zB}Nd8f&~*c=KL>PG643&^Hj8DX8)l>V5-oH-jQrM0;{Z`8SZ2&voU;qKgqrkV?bY^ z-3|@>#B|c{{fA2N6NK!p`_bMdS}e@K_!ErD*F^mO@h!6gPX-7HtZ%ia8vM6gN`)KY z$K5Qy5W1%2!B`=@{Y~o5WA1m1W^4W`6#s!(pkUN_%KKlKrJEG?W~MF?F!Qg|IN}!R zAS0XQO%JP4FF8*C3%oS5fuB!pZA<*`n?U(D1Etmyl(7sCq7RkAd3$wR>yRn@g8}~l znO6+W(AM!#2jBnx`2YNY1b7XU-jDX7O630rX>Jh=Uho25k*p_O|1bQe83yGB{{T6i z-yi+|f;Ru>MgISHxsZI4bJ4#1!}E)e@)&yJLkcWbqw<_lddbPj@*rOhCdefq95GIVrwws$d2tuBuL?%#)J0he^Wvnap$?emJrzkMw7#U*IO|GkJZoSP{0 z;`i4)58mQlj*NB!ug~@I#rnl{9!Km~fD!)H+0xSToUMyxqk<e~z!fI0wWhE$dXON+9PhltC+_wg9n zERXm@DgL4EYXe6>@pN(U528MQK({QbpdgrUgwVn!8a(-_K^$XJz_-sfzmp6l6G`LZ z;v^?zny)12r%C%vKqk+A6$q137~yoim^=RW;VhYg4c5|9ewWE05w!8eF|j@gN6{7S z_DcN4tM61QwB8Ld8ydxme|Nr*v3NVMMEFS}cwm8b@2gcqf05LL!9%y)W%ffg9d){KJdsU)alhvI`ak*_@Ywld@W+G?c4Y z2jmgO;M<;rhQ_w!_>?L+O~78VOry=V2?UuvJi_dnk7rR)lrxq-Wi$Bx&57P+-B|od z&qF9g{bh|Ub(*lN@<0`cn2Q1(0u) z9WQ^S0<^Kbts6kn}vwV`Zq#-jV!EAenIB2)Dv;nRc~5a8}J`{v=Oa>nQlcr-`=Ilkx>wZodFIq!L& zgd|7be$fuV8c^|wESYybu0Eh#X1_k{V&TgAX9l`HF!u?0yaEL?2BG%GjR>|VXdwD5 z7*R*4kR9r0Nn=ln!+38Og(chDn|yn9u-X*^mChBFL+V@dr9R923;W?;xshpl!l-Tx zAzD#WG|_`li>T7SQ(v-2@>SG-#4+U(-HNh>p_Ev6%?y8LNF1InMpG7-tg0@tsH7`B zegE)FQVR84I)iLPg_;uZCvtdz1BKZEXseEX@!8VIrO;{;*t%}>*{W=t{m@52DC0*L zfWu$_S}81}T`=yp#t4&2F_}kVDTBWRmprO6}E zf28zbbwZOI$F7uO{_&IerPqK*;_GlrN)vLfVsl((tcSw_T|0V2p?Ocaul8!@sC64W zzO3716x4w7ozKc#fmJk=l*MFbZg|fZBDUzTFuhpe8^2-^Tcs2&==P{KA$dZ1^aLLU zqYh7kPb3WXMZmAX$ZUQh;&ob~XUTnR_U5DR;DFmJF$-|dZv}x>cI!yQ?a3rL>aXXC z`l`=h*xG~R@M2-cRton5y6*1h{69kRQ|RG#cpXs~VwD^yof93V+fR8N_-rc69!AlM zr*Ai$7&PE+KI(1**xHgHk&P&bL~$@9#)KJxQWT}yo-oI3q6iqbEWFHQi-$m3|QLY?Lk z!y?E`u{r8tJmD9{?=clwwK9NaU{QB4Ap92=D8>wb4{GImH;t4rAA{W>DU~n@;zeyN z(vXyDCwRHy-ASqAt-6FMgJ+rRH#wLB_o6E*S(cC7_y+J1Vc*l8-*n>mny zZI{FN!OEmZm|qQJ>!&4jb#*ADOVwEHbPl6~lZttQ<5)XGS2Ed;&TOF*-5(*6RLk4Z2IWyGVvB*IH*g?c1na)7+MBEWY#VHc&{Z8rdXBI+=R}E zx!;UI@DrGBt!?s1UbE^Tpk<2SfR)p#+vMXdd80U2jOKvW@|{~;&R?IPq(IWBqo;{s z)jAEC!3D=URr$uC+MSVX+(EXY*%*_mh%np;7_-d=WNZ&_cYMmAUu8qn!2BQ@5v=86 zIqbm=Fa$Cv5W@26Gc6N|1xdVEH=-(j_BS9MkS+;`06rHs1Y*62V9Q|6JDA*2eXib5 z{|@Ul06Xj7Wc#2<3aDtBF}_v&BidsK!JB?88M;Y;Z{mRA}d3Pt5Pn( z*ToZuC3#)5uZlMyX-^(Y<;m%G{Z7ul#V>-s``~Y4wToy6)LW9QE%@j@h+D5+WYwJz zLxC7$OwBJ6!iQM7c*ay@2~4aC-1#qR9dbulRi7qtW`b1bZlBco3}P6oF}IO}sRz9< z&lzSsW8#<_fc~R6vC4Ib(hfFMzNt< zq||I}s;ZzVjLyPkQ1s*{<=gK@JWpAfD_(}^MpxB*waQ3q4uP!PM1dJFQ2%+ZOJ@ceCnzat68lNoRnUu^KlhXRn zB!Tk4A0~@jX~^bOXx@wM9**+w#+t`-JbNH)Rgs6q@I5sn7%3%aBsa`cG>>AgDCr!9 zNaD3zz(PEZqD=Y3+{81v+otiP$7bxCp;q9i=Pk-} zx;?cT0t6%w9WG`Dot8i_5ItHg-8(#enqA^fbJ*D6oc!zJc~>~H`IsW_UK9zVK3xbg zb89p^Dy{MP&&Yb5qR4A(Ir9<`sX0r$)u*t82Vj9lq3gN>p3_uNODogKBtkX8$uZ{^ z*c7_Qs@T&=#W$esijI+XwQTdm+3Fn&1DgkX{?l52gCP_hNSGfwsH z$MML5v&~NkBGqZl_RNx=X*^7d@F#!dR2Z<=nP13`(0dPbnt09bdI!!4TlI|@zKM2> zfri>fK|?G9TZ715AHmPb8ktou_Zrl*cDNDTXfAXSSs!Hzg$x6C9@Ezez6e#dIg7tt zYH4qm+F71eiVJdd3&z%=(n|>%J1!YSg<`o9qOTK;Nil_ABGd1noJc^9p$P+uU;fGG zys+r;m9&6PE|oXfZfO*2J$NmgOxLnb!b}ce=A>oduS|@Mqw!dyOL+wmCZEXk6FKPP zfrh9|cyah*B`}Z$;d}}&;FXm#|7_1#vF<|hT%84O2kVMvfe<}1>mey*#dw)*$V)Cv zXFcAfvom-AsEB0BzFq1sEX}#4c&7;_#YV#(t2-n-gkE^(E zdP6kaE=2nDorocOI1*{3Ib`0K2OA;E)u3c})Y2|5V~wh^{oKKS9HK|W&dDTMAc<0g z@Gvd~HoF<72PSHtDj8~$)RX@GUGqMZo^%rBkHG{Z%!oNbhS}l=@!9Pk2LWDa=snzj zj1s-9nflQ+DB3Y}cG2{v?}CP^n=1k=>zrMHYO0bUelqI<;rG*D`Wr{j4O%^nyHH&% z>hT7auw{?Rot$a41cqv#xzmUp0@K+>@BJ<}-x;HZE6q+|nEc@aT)y4|8Tlw$b) z&Pr(LMBohGm)C)>?NmhgPksKgRyITZXVGPw(~QWR1QCz$@#XW7fY-RJbn;m#+xYbSp`x zKPSGVMsm)1;mN(s)r+R!35G{1V4rt+BXqFGvUv*m(!I_;5IqfpJUk)M!FnUCbbeF!`HJ15MMCws)7FXuo&=8&*EQ>3@ z1p4->y=$15pC_`Sx}XncUv?=LQw|YS*CUO=PJUyAMQCmbS8=t~Yhd~3AW97YTe;MO z61N;dwA;ITb_soV4ce+JjSy9`1X8#evl+EP3@+)W!HLYz-*e>km=izz81jZlaE^5P zHNrOLFiy!1u~o&z$TFb`PHXT`g$_28LV(VlC+gQZR;(AYgt5 zwmxZsP{#pQGN_V|U;RT>kII)zWu{n=Os#=OE`8`jHIH9@$8HL*T$oWeomy*79nwqi zg-o?Hb*p1}PSY;>W%IZ^PME95k)h2JR^9ZWop{#19a!(M(2gzX;wG<^@~KwX+;$M0 zJg?=z`gQYYMR@5kv`=2zJO-<|1bh*#_1I6I!r-l%GVYJcjafro5{mnvPxJqz$kZKT~5;Ju^qXvY2{dT9w~zO8C%U zGrPqbK8Q9z&aGijYcy1=%(y}b6PW*ja!L>)j+lOn921JEJf+hB1uAn;Iv3;w6~NYG z#1cgv3BYa2`dF7~ZhL?FaQFuhW|L4)=yJE5tiV*SxjokHDIz1r*!h?4me*W_eSow? zOTdqNeGP!1WP!VJ?e}KT71WW-N-1oGLh#_* zV_8~{(yuxdjE$e2N^|_^k1<*lAMYz63sKKus9MZE!HOxo8{7!b>&vsMfvxv7P>2t` z>K#JsYH&at1yWL>MgS|?+vEpEeb&qO@t1m(df$i?an=*VzEnlJqVJF==(2Vu^TTLJ z3`-`Y?7`I-ZNVOw*BVRpJ__?J_AC<1^lHO``0G(`c&i<$t~?U6fV5r$6MqkLvTNjh z-W*y?FCRO6^gHI)cgYD{jDBK4cOLeI!N*{KC8Q-B{5bv?u^yANY-d6V<21gR&O}2p zWA+*sX=D$$mrqch&8QcV#NO=BF@3{tJDV*+Vb7W&=B|i2L>M`4yCokJ?itzbA^OGb zA$m$~keEOkN`h)uvcBh*qLDM(9OsU?H_H@keQjplo zcMgVcyd)n{eCZ)9o#js(d_5!4Ko9qLNk!?%$109vl8*IdB=~hjeZWp55tJ7x`bRFt zOaD-xP!r!DwG;O!fy0IEXHB&}@fembnAsz@Z~514w*iq}J%2xCM2s+c@hq$@JkfzE z)Fto|@9O-hS~phX=$u7Mb_mPiae+K%5luS=-`PZmowVf7d*NhM!kI{;L^5Fv56_tU zqbAPxj*4YOJY_US8zMfz;=`%o$uHJ(M=;dM(Y@C>JGz zt-L}i+YA|(n{k$Cgz6B2)%)Y13TY7Oi~fxLLj6&I2sDf?$KzXFva379mG(D2s4dl6Lzk zCIu#@J&6ybWZEA5Xx_iGoV#2temL3ijp5%wl^ivFyM9jZrMf58LcxTxc1fcC(K80r zPp%H@lQ8E2V$6-dXUYGgf}nv{I2AR7LSW!W(GR)3pOAv7HYBe8zpmp7Ae6S^VA66! z1Zlxf2;NYfd)x{8!8T0Lsn#?f)JmmkFZgeCe7mg<2fk!=oo_LO-6=p8>P{Jql)xSgi|LukUUn(4GIs*AZ zkzRkQW(-HdE%BU$h?cb0KHrO%^jkYYcDo51yg?xld|PVQ+&*v9DQGeq>DAP z**IIe1D+^b!xlO4K*XR!Ko?gwNM0QVYtk~oz}vcY=GzhP7+`?*ft)NskfNPt=S6Gd zxoos~cQf*%6fjO#rn9tD<=C{g8rn*7;2HN>a0O*E3LlA7IrC|L7Lm~DyfZq z)&!pT`XsO)KK@^Dwrb6GP*tO=k?+XM0Rt=y{1tPz>yMp(^H{OAReLDmXOAQ65v`hO z2i#`>Z}1PO?qdH^4r^a;YRbpp=}aEb<>FK=!jo}bSBZTvg-stTSKc$ch(y4#yRNg7 zY0aNfz2ki?1^DK5-aO!$4(3J(bwB*acpVQ?J$Q6CvPe;l`W!S&Oxh3u{q{sU8F`BT zbUTa?rUL~XA(C7TheV+LqGO36S~X_#SLsub5(wlYzE)*u4v-O^IB#g+U}OJq;C%cM zS%6Je=1e^1eP)vNU80EfsW=7-*>0mRFn zwB(Dv7LA(}B5p7(>vIBB@Umi7Y;n#`Q4|VMx`&1rtHNpm%c*Sh=|O) zl5dewEZE?@I1EObPG;QYKgL3FPXpN>#d!-8tTYdTmlWVZ?NTRA6EnbLV3**E9JbZXl(PI+joli#!biCgw z__v+qzslwy8+g8dHjL6F3j*k?DwpDqiO)_3g0JX-}rI(rcA=AB4;9igq^U;_=k7D>%k^eE8%0 z7`00ywT&W#Swan?K3k8m3(5(ox&ECRGjDwK=n=F!cWKG=wL6IV!8TVJxRs|4S3bU- zda^#-Bt8S8FZj&TZwULE=8fc z);iFnAJzKVCW47QcCz1^;Ho*-cbM$vH*2=mEqxbf5*ViHQTL@jqkKe5^0%>uno^gDcZe@kN8v)H5%JcUzQ6IWO};ldigA5rID_jWBeMM z-C2&z|G{;wbCc@Ayf=NHX%V9zomr1sVt!|eELQcOQ39;4#*YdX*LuvJWny-5c=nzv zv#-|Lhf@-qwknRI+z(ds7ar_n?(5$XOyyefSh!H>I1n*p8lTAIK&;$z-@GCTVikA@ zrEd0gzWg1%w!i&gLD*!k_BqB6?a!<-Prd~y{`nQwTFk4_k@pE}B_cmiDygEh^Ue?f zepYB5Kjk~>bWffuVi??jbygU>`Y{Y-lx zt&$J>Ar0HPrE($-jjRM6X6bS#1~Xh%T14CeGB4=j#l#T90r#^S29W2H-g{16$)O?R zM7?+rk1zt_BMO1>*9mN#b%`k`6vVF%OOBc5b$%98_xT1 zAeD~$BTiOb%!1nmWh!ci7*|^>72bL(;j?ecn%5$wvN_ZuThx~~J{XkIvV4lnol(bn zzQ334QF$crq>etZu9}1T`qD->NsWBG$&-apzI%_R;6JoiN1)yOz&f zBrC+`UYZw?`Jo;Up8ZC~PVswxE5R6Q-yYiwqD}c4R5`CQ9S~E)@Nl`OEcX=lXZt+V$|eheb?W0eTfVAjeO2C274lda*DAvanwF( z6t|Y{pb1Eg34Gz*<*~h%G12d;9%=E0j48s#Iqq$VBTGbajfs$mFMG%JZmvCyBE2U0 zC>jAj+nPGt*a;W^^XxQ*Dw!vC;g{~ctgSocq@xr(A6q%b#}sX;(haH;@CQFiS}E|~ zE4Ced5e2_neqOC!pnCS9lihs)+DdXS8Yczm2Bmz}4qKvu+BRLeC@Lu>5F6CkrbT?u zF>eB?diO!$P~QzV(6u*4@(EfjAVVqFXL6U>j#X7_t`NF?{w=DLZ}-{9e9ZFt#Ysyh z{*oU|M4r#nPA!G0l6sJj+p&njEt~A^C^r?|$0UeZt8`zEMINbNXOjsNg#Oal%KObG zEx;0z@K9x)K2EbIh1girA$E*TSia;lzt4r|N2uGcsP^#X7416JeQexX+~Vi)J)hl^ zTiJi*wG(5lAMU(cU(nk7-fnIFLNWY1Cj-R(d~l~^W)ZPMR{6rsw29L(1c_XKFtvn_ zQ$7?bDINDUrrRMQiB-wl7+8`c+xuUIlsG@36XEjW(4k_TU!sG~l-BBjxHY4jGBbMVN zqe%FpUzziwuWss9frm{Ie-BYR(q((~l@Ka)_WYqx+|8Ds7XsUIS z<@QV9up#?P{`=+jC}vQwYKlukyKS2d36()=84ht$PCP&;8=pCyNADEMH>^+)g?_Vn z-LY{Z$lalHkL zHU~%x!wk_P^jD1AwW~BjAk_H{#6eBtlFpU!ni(Foy=hxp3|$zdeY!TsLTq{hTz+cV zY)_v(^D)+bn6dlf8LQF+N;ody;7^WvFImq9PBdO#)yeVa*B&ly>{BOAMpfTczf5U( zPK10dK5KpGIT$hTo=NY9+YzV=VS?)Ka=T2$22DSed~i|?KUTBU-AuVKE{>hWLC9P z|1Eeydzd&rbv%`5Iwf-G!$DUnKK~Tw-PgMYhBjM^7(l(WlDo6dt`bcwCR#H!gB@;n zp2$eK@9ncH{@G#}G0FGYi?oR6O|UnST#wB81 zgXNS*8v85wE;g!Y--%4{CnDNDXJ-D4=PtV@kFODfi(S-b{f$Cre>>YxEZ(1){p#8K zf)LFzIu|VIzFC4vp?`EVCK8 z!%|6q|Id8w+aLSGCt}ixG!)k3!MI)_xBE<^AEJ*S=pksAl-nR$S&%Ex<_hfkN*x1l zS^-N}2*BshhAj}ByLWFfou42F(~L4fvusO80Urv9O-hyjK~KV}wXIUFW2&E0cG}L( z?x^j`p|wpjN4s*4I_d5;H3%d8H07N6@obdp8ddn0yS2jBM}k#v{0e@ljM$R3GC=e6 z_%ijP%<&cb>>0&D@c7ee43rQR-@tV2&HLfJfo)!>?i8bVU3Cmq{*Lp<$@16k?)BoxTc~9cAGu&7Wo1gN+~2|Ff%{kGu3AU#e`GzNy$Ued6{yY&|M!M#h%J zO%ieWi1{scAcwlk@=iF{?6XrG8;WDUCxWf6nb(xFp{|+!98zDbs(p_IgsOY0gkLPL z4{1C<9S|Tg%L>-V+4^8!8_`MCcS~*+7gU!_sM@O z-Ud@24m+)L-p#jyO)cE-25B<|AWdn1Vrv}4Tr%zb+yuJ;Igl*$^Ig@Y&MeAr-On}& zvzkHQ@WP;Syf-iJsfVz3RAQ;^zvQ2n;uCuQW51kLUT6i(i%hr`AzYZv?|!pfUGiz= zGRgif2DqIWahWo^V`>W?@x|Nh0So>T5@9i}-b_;Bs5aj7CL^l6qiNasbuO*`ms4dQ zHWgnC1wSbK6?3CoK1MJAtB$zZiH?(5ru9kcnK}7p@VCY!4QV*`?K+uDuTlFlcINYy zW^Ysq&j{n#{2u~?d(6@tOq15vd-v;`(J#dATk$>%+ZJnnVBzXaVDTv(4)cv*H? z;pETL#jfZYgXn$WnCU)H5x+{X1p|QB`pTjebZ}*6y7(?}0QpK3L;bT()T+b>8~>jeV|Dqr9xJHB&*Xf4w!Z zw2JB~xAmnMXb&rXagSjaH@7d~8=!1N)H5Hy@5ucvs+8#Q-SW-Cd&e|n!se))wC?@6 zeeZ#i3x$|;ZL^D81GZ}JhlH|M-roF5_rk*4O)dfnx_#VVSoCquBVVe#eOAe_Ix;V) zZc4GW+UxA)ulS_tJq}4Ve?VpJ&kkZ0SfF_45(i|yf0h)v((9@|7#Tk_fXeO)(vOH7 zeBqV8A4HZJ8hkJQ#ip>C+oxSutj1SxU%0Z|Vjoa25Dts#tAad`hxB&a(}LE&f9-eG z%g54xc34*YAnM5nuDoZUV=}jl^mJ%C#E~UgRHE_f_@(5pjns!iC|1>?C!}wG$ttsn z{$CSB$n~mGhzY%ZSU6= zoc5*`a&ULhm)UbvUKmT`#l7!Q?^YnsmWMKSLTrMy|Wh+MOx*+lT zy?m^BwBun<2W$&2umoOPXlXk)3xvNJ8py*@{szLdCN|v4*(-U-n7d_-2>EK<7JtzY zz_PRO_UPzUS>3n&0785?|M78`(RC{r?qk+;_N8fA@S$>63K36+P=G+GYPZwzH)wbXim)#cWEOvxG3 zHa~oH`p52D@S?LaSsF6A^tdgGav=Jo>L;;^ZO)|x+Aw%ty*JC<*`zc6)MTn&{%OtT>KP&?{{Ld{EraUX zmbTGAAS@ukC0HQ1lR$7=IKkZ|cpzACmjr?Z2*H8}cXv++1b26LcZWOHK4<6b^HzO- z?*0DVw~C@xtvT12WA^CL-J|>IZo}zs613cBe#F9a9+$KQZo2dsic)?Yp(XL&Kjjxr zx@=4m0I^Zv4~qnh>z4tSe@R%nY0h7rU}X&*!1ZQhdqzanE7XKBBe_qL5Amb8Cq(w^ zEcQ%kkTSc!cs=Gf{!SRNTlJ;6i5{pPgcN7rqLC2uRZ>D!Qsc`|#R`s5<*Rvy_uGvs zwc`xrU!XajjgeUL5QMtp({Bw_7)=-TA6zewW=C!-2%Aos`~!_c_JXY+;VLo52lGHe zEyrw9^G-bt6Pd64X@Go96)b$J{9{DG9j+{tq|D zF#f(k=o>@ZtU1=SeD+esLQJ-tw@mK$=#*@{CvpBd3n>PU5f_Y%dGT}{+bLGEx%ezt zrL~Pu&Bnnr395t>eI_ zO1!bdNmG|q@fI+xnr~7W8sYc6%-x5Qp^J)lPM)}vUYZiNF<$H7aR-xSRXeY1#INsY zNyN71oviW`i3!&D!&^ZnkZujm#|-@10mD<+;-{XozQ#t&266nCSZZ67m4tEANy# zSv?zZG6x#t74jVRRxIkly-#Ti;2cMLcFkfOt&i+S_T^r{zTUw}lr{U44PzGHb-e^Ya; zcUXt&VAheXi=J-9VQ=d-7nd8UBO?fBS`&=+#^2;mEzqf?y=O=$QcdH&PLRa#-s*`h4_ zx)-~M;ya-JycfqV0lD5~$@&>&mb+$THmPl|OESQD2sgXSQ$JP7*`d^YTbimj%ZM}y zI52@bo*s)!%Y%nJzB(=bArsnw0Aaj2Cz4=_WVV+s<2L>2Gr3H$XIScO;|RjD@ z@6POu*X3pIaDY*eXT?KAoXqUGEhu#9wvigJ^8J_Cx1rT;F-t3hY3nFZ(sA&2XpC*D z{aQ~daCbaSm`Fqteg;WE4vJ(W$3DCxz{}>R9I$xd)g&9~jWqMxoP4cO^Q~HAsx^wS zIN5;H@qt_vvAvF-n#~P9If3?*MpW0tc-tTjf$_2Ul$I0(^2G`73ab^0qozLM`iK`6 z*jO1!{7lnz!ekDS*`H;qcA&Nj3(UTfe6ACQPEp_3!7SuH}`)hUj zG6d?vN^MdVNYWs#98=4Oq<^P-xLP0Qas;s=8kCKXdp`gAV|7zxlOD7Dj+@9fS_oJ1 z(7XU+S^e#M_j!Usi z0$CJZNZ57e)sB}GD9e06LSgrMWBl{z7C_dfXECR;}+|D1>Q#Wch1x_@YO&k_TU zY9Md`Y@N5Y$e5;CDi>Vp#wg@`(!mJuUpC)4=d8N9eN8r`Ts%~lZH?O{Oo)ijAoPTq zsjBxglZ2Fm!{D`p;by_MnP?FP#Aq%=T)D~q?K6{Iu8$9$krC>q*>+udnh)hC?JFLx zoADDdCkAdmz8$cp1Y389=Um7aY~AYd@-loYhmZ;XZpG_bZhf(V@Dpm`QM!=3t! z_vqyDGvcFScTo*LpJ#<*4Xz4HON1Evu3Bvg%~dxKeJl#XSkmyw<+Z~@l!&S@PfsC> z+P>U4{!=JqOA$fD{((93-+WL9nZ(EUr1K?a9Z4ur7)_clIQ45uaH)t zTKX6TIlZK8Ev`R8j7L@UXpo9-?Zxf+o^%-AhVh6+H6ci(97(1hh5N<{skEQSiIbf%UX^1-;FZ%Ej@aB(STK97bi;gf z;l9Dqq(<=NAsbI+i(yN^K2FaiaYSgwu*7SB9W{)kJEL5(NzTNk5RMY6m#!Z_w4ntT zHpjBGXZ-e+pY4A{*&tJ|hoe_$1(y{v}cg4PLm9)Yw=nuW3E?4!Q-6l_0qoC zQqV_-vy_yLmQV9^8dnCIbEqQf9$OSZ@lkx2P|JQegykl`Xb8jS-`>e`=6zBhQ89?P<%`>OJw^(Kur(2Euo0{R8O1H z*0tersd(9S0j|S%Xy8kqirs7D&(SBj20x>yo?HqQMQW*9d&H`6M>$3VFZm*`@KTZ# z_F_i#_j#UlGewOGBU1Wke@)%xuI#w*2(WVDaNfLCpS=RV$`cQVScPf#TuJ!3_n9fL zbvHBIxo|Fr@1@?7hL&9gnuv<(`$gaD7|O;b|3A|OSptLHDuC$c>8j~ z9jt{*`15lBfgnWiy4s|P=eDON;ddJ`?He2%9I1D<5hmwWr&0h(_Qk~z^8R14%Zw3{ z3b8RRabb+{%*SLK`Khk0eR7g2VtGT(uW<45KPTu}q&x@JQ*8C-cs*&UNG8LT^WThC zf07)C3G|*Dzh%9VC9}1k;3tjejbPp_x%ia>C!`6<*GsWDNs%-cCYU(!aMxU=_k|h} zEQ(X+ioiEVah2xV9)3{8>}7=aeXqk)BO*#jXmTnf6o)lYtnO;Th?_eni96|eCGxtw zJ_sMN31FGdUR3fnU5ISU#nG#$9N^M3e|QpAli4`askpj@{amWQ=-MCaY`5aMdET@6 z1c*Tk{%oxvE~Bm@D8PIb3@Zxy+t<+SrBjxiy3aB)rlx*pq$64bDRD? z^_rt)=VP8)yVM>VqeM=p@REFutD-$Qd)GIED+`I72n5{5w|m>32J6&mhks>}XU_}W z5(=C>2IuqS#oy{L;cE$fYihXS(BXsD2w%O0f~>plQ5P51O9uRY#g?Gk50u2|UzBh& zTqP9XO3SuVp|wpF-U%JAG36K8<0X|b(d&;oO|>aJZ_!aqRp1AiFV|E?o(a%yf=U+pu4*h z)9yhxu-;4~+hMwr1Zm-hW}Gz|=H?crCn>h2yw+=QKw&o=5(*qyh2X-8l?CY^*h}9keWoum=0Onb}yuzo@(Xs z;pQoHJ15!8XF+tPn*EiQ-c(`SZH<0V#Br!e(h?z%=Joj3PQoRqabz9jzN7@BOAe`9E%@p@H>-FwbR!~U}GRwqE^ z(Zr(w{O*`#2M$_&kAS4pen+qY7hq66zV@(UV+1=Acse?|3WrUlcwT4bBtF+6o_mlo zGicw>Z^qw`hSa1WP!+Z(6cljo&YqO_P(Qn4?c8-#LarHfDLAHaap-(3#qIc+mNqbt z|FrJ-H}e>)uPr96H7q6h*>kYBDJCw+L2|?MFJHbuK`*fHpvZ18=!m&P4GOt)DGz@#l3u_L7#AMwKSrJBnKCN@u zG-OwYNAO3*&jKZ^ryAX>MJW}KMYmRu9hgq@HkIdjZ^b|yIL;f?TBS|9v&z~%!lx(S z=|}xGwi?rNlCMsC*z=xy_689ZlxOakVRejM+eC+t@Yuu2%%tqN4u~#-MsapzmKtY^ zH%*B3$Q>_&wkW=S0Luti4ZbLfOSv#>JpPw^G>XrF!0r&Vzcr?rdBwt&Xa$=RA2;@lojL$5JV9Cuz z?kju-;y?Hipk%;1E)Bf28GT8-%94_SJ8wXVYS0aW*H^MxTmy97TddGHWqA$yJYa%K z9b>3p9Ij|H^`)~vkh@{6b}o-q-dXJIe*4XiLP}M0 zDSKj#hMx1yb^pdn@MVRKr3QE0RA82 z(b@e@5~_#%>3#eB=UU6(rfWR*3DYzCb|Fz|DJm*bv^WvkL1|dJemYVs`brT}{<^$o5si24?DQm?fWiul2i7ddFrhndo>HD zi-!)CCcZF$KiwDOXC6L#POY5%^@+BU?#rKLF;xQ7QWyHh3Z-46 ztr=dqmF>oN$;jb~Q@P733Xnj&W6pt}niO;<_fGlyuaZlHgFnTn@9z`LM-IuQP~stn z&gsit)0}4$1s!gA?!FGH3(c9U>95e7?2``)x|mGCGwojgJoD+jqj7=@F16`zg-HqN zP?Q|CkQN?385+EJ1gqBJ^xT%ltj>ze_2bC)$Rm+qi78#t-It_Fwzu^KP1UtFZ29MQ z*uO__sx|L?y&Nt+V&;{+WN8?pcu3dK{^r<{r+SZ<=Q8v4f!fYoIQ_ZD%W1Z$&*`W% zN-g?=-31-^*$Quu`?jpo?>~(O+rq<>z2Ss|K&fBZUxy}Z%G8o5!T4qd62H9WQK_tVRBp~cgSrsq3&g{YD*v3Y1ldzTU& z)nLVciTFrqZP!!wGY$r)^4E&B^h&J@P)tIx`YX4y@^+&7fNa zYnS^C8HRT;x+5YKe=ydOOA{8#%(=Psq$5kiGtsG~)VLMxoW74SIoi+P?9uO(=W2V0 zU2MEVJSWCwn;q%B$vWcj+af>9Mw4^c{QAJ1?pP}?C!dl%p;5fLuFbvj=_O}@6=$E& z1B4xl2XF?YEPPMk$!rsR>QN!-NL?g|2-mb1m)DWrwYGWemh^{3{cCjQ`{JbrdY<$+ z8d8m!9=q$0lb?z=HhqDo7t1@pq})5F!l`%p)Prh06=o6sEw|ogo1Dc!hh#J>q<(C8 zQIn;6?NCZ&Wa9FQq}~4q*VSc0REdy`gAEM@qMuU0*;_w!zeWR{N(PLXD#Pe}wSAXdpN_SPKJZ0%Cpe|e z(SOW9b~KgMbMk76qoYDlLT>HVPKBrWx#=XjK0byQ9NdWE+@lbqF2i^2CD$vBN}*bc zNrU!`0@*ieD8aa;rldukrdtja+{sR%ZVK^jh+{b-r}G-drNqV`9zbenz--Tn@heae zW|F~d{idB?1U#zC_sO}QqERVxDks(|ZZ5>dU=p}wm^PMo)tX+%OR>huCuxh)<_N#U z#c;L4o*vjII{#*=t?)4h=d{c*`!rJ8Y^XM+Ii~-r&gYF_g!sOPjjN1*=Xi{nR#%WW zbTocsp^yqMh4*?p)?tfiSm34VRkQFaZ`^Mo*Kg^5NqRi$dTK;m$z4_68nylu5FZ~T z3?H8ZA0c6Ep&ukL2FON^to`UYH;@qN^+ zlJkgy>}Z(!?40Ywmu^V?Z9owY_nWU(nsvuD^LUCoUng1n#}P#pZr5bE=WNq>lJuPyj+9v?j4HNK-f}&O zu_k^DrZaE4lu&XMWS8W)y?oMW&SKY1{7Ui-L?$`|4$#57Ph_`nR!s88Fn+*G|2*%W&S1|EOl`5-NBoPGCzN477sxNo3 zrqZ~ZV87GtOzV|op8hk3QxISAC!q!j{>%e73|o1442(T)=C`0gw$k}7oGGPvtobfu-*4txXs1@O!jOyItN$o$RSgM+6Z!yQ=EDO7Kkdg43E|+A zCCHlLmrgc^E1Y(%SX8igG>XAxUD>(~~%P#>{cL z&Cq`cTLLq%1P29&!taEBSV30Qp_Vf>5#ph&+%@z`pnt$$YQ5HB+ei&Q{1p& z!j&^H-n*i2iMeqK#OlE`5$=7`vISU(o1MGnzp|$~-!36e@m~qiy}A%GLk;{E-mY*o z)@)3a(5J`bgoYluetFrhi{Qth!(an-VOV~oJ69i#f=4eZYj!W?FNLt4o#28GI8h9+ zpAN#a(GNb^*gifb^L|0?It+XkVTp2?2{VP)bhan)v&Cl_pQE~2N#V)8;f3oD32c1u z+4t@pupQ?3_68DTTlc!0&nj)Je7NX(vioK^Qu2o6{rDOsNRL#`A9k+#*FzxId){oH z1~d7!Gv0P|)lqTm)QkP>omSq(m*q`ZFOzn83}zAvShHsE&38Jog(3tjEUb+Lo0ByT zBsAjhy7e;8`C;(<-uTV)XRuzzw2VDhu`2qyzJd47xFiYpF~k?Czlx`{tt^TOt#7x2GgedAOgXAz&36nNThOJZi za?ec`l>)zs!iI{g__6)p5!5m|KihP-M-SEM3)tPVCN`%kI#a#|z=YO1OlT#R3QG%t zu8nA<0y40^Qo5%sS`~qyFN@JBi9RldW*k9<`;N#^=?E5a^ABh+VY3ff!(G(p)O~Y! z^0i+;QyQgb7ESiNyE`PUdtF2Uw&s*-@a5Zzx&VJy5ttrY_-(a0(GYYLQ;vwB?q>Xx zD5}PwvS5Blu(I7l^5^M(m(%uC97V-`<=o_veHZQYr9s}<_)5r+enL7j4UGM#mk(we zq9_wGxm2c!thurU76ri6kHKnkg|mZB0O3>*;37OXDzYTUEVs*>O}c8|b4Q?ga!svp z!iiRzUy$ZkBL zyNcH?3$v3Fvt~B8zu*a9n~kPyyCA#2YvExFCH-(-{)ch%_KaDgjhU%^zi=7iSsAJC zJtq#8*5P;<7o;26WdVUUtcDxz+Q$mS84Kp|0czXVX zjmIB}D!Sa`ZQt&3Nlh6}9cNxG1mQTvLgGRYz{3W?zUFhg7;pjez%RFw{129%L?41ZLRKPP}?}P$R6WdqE7R03cDL4il|Bm{(1H~d^W|BY=4}*~n zeEVlKiH176x9Gq=B~KcyRY8*{;cO=lnyB$6L@b6w_Joxz(8L&V-Oh1piq;bMt^3UHJTEHbDhiSHd(e$sUfCn8g z1LZfzp1kqouZ03@_1E81DKH&{23leSu$F)R8bW~Dat@_&d-#uWAHaXY^6`0r!-DcJ zD*WpO9>DFBKY&}*T@IT2*NFfA?~@9a_HkQC3$WDxjQhV+{tqc0ApF0k@(lHtxMV3h ziL*Su4|$wq&4zGWj;3z$HO&%@XnA`2Gw3SCjjNPQcR0E{C1OrAIi^M^IXH3KMVZ92 zBAc)ASB_Idd6j%y?rOcpXGwcx8iijYadevEF=)rZQ*70^M?SHdFC-e@Y!PHIArbr4 zLRX`=?JwS#MGLc|h%4`S3`UY3?|)=Uq1XaA-HaNh~T7qVk*7sk%LVUVA@l z9jRBdEQ($0-swDCHMZPkcHo6Y%G#Z(riq@A@3aAN~XbJIxo+-R*qrgM6%yW#s) zFP%jX->j#Oj}HS(e0&wydIX0~R$@8HdIfTxHb94T4(;huBMCxoJ4)38jlnhhzPe3X zILzitGae2b!?0dvr7AvuLDp|w62~e>{Pl?9Zp55p#X7%1}rZR;jf!0Xc=Kpl_t2hev}O3nSy_7?5p~ zDHW}BtmC+3372|OE}Ha7#b)Oo6Zb^9Ovmly5nM!tGX=@jo2V6y%?MwdIV0PqIAQ1p zCXW_$Lz;%?xLcU#Hfa;J9!x57-V3^}=1ozr?cCx)uUVe!I$o$J0@V=vNc0Q}B+|o2 z$g&7<>R4~!FtM>kbnBfmfmc}(6jI2sU2L(4tg@b!0>vY~5pX`n#CW2mG}7(HYm&*5?R62@ zS9GJKhexaNCB8>b_Kr#-@eeHBP(OIR;t^W4($$7sc>*TLPsm_ z{ne%Gj0c=`O0=gfbo9^Ef>03G<{iS*KV~NJf-Em_E_V8FOmOensDi9BbTWKUMvod$ zRxz-tk?tFfgJ~7Vv6pF&P3thOO>!hVhg7}~B#o*v2ukR3Ao!snF?$38je`D!qYedL z9LoiCafOvVE(-?LJunjlCZ+0~cFFMwr(U@nya6U-BnLzPI8jnp(O!NA2PR_H*S6gz8XH7vzLt9La%0RdNsn@1c z>^w~u{B;f9M6(UX!EVdyX$Xj;){GRWy1{da+q5#*)bVLpntAzq-)dE8zh`7>*EMtp zICtf!cDi#6opKqFM@47Ooufj&8{$&XRycCfd-pF}G+iP~q`c;L)adP#YAzB#IYecA zPQ67n;@NJfwiI0Cv~Yhqz!$Mi>9)p_j|5KA*%=<{mZAL4reCkW1!kt0?HNs=&YGg!*!*Eqbq^Ba;wBcHWuN= zKG~=0cp}=#=DAHq+msn5G=gb<<1JF$UC;p46C|0lY%rf@?7KX(bi}j z>6*4j)%OF=JZ?8?M2X5WmwCmwHTbkZjh8&lrnzlPnvyCcuOhlCYQ~p5rQ-ml!*1Lc zN7FoQ&azHihUchbrgB%<M9p7AS*@81y=-(7472 zUrAe~SB^O#eJ#%=jX!pub3!zx_;)P;9^>QjvnTZvT-8^UQ81O(K)sjY6_c|N~~t`!+)S@ z%#3&Z{#{EpCubs~@NHahR2;pG=aQVl%vLe&?#O#h)1aK+e1%lX)RZqjXL@sODdk9ItrV)Q{5D|^M}hmRQa^FJXz9B6k(07yKfD)W?&7teX@cL8yB3_Hj>q7- zYQT3l*&Lbay`^deF&SI=!AaE=<*Cic8!p7L0_js4532sqD+va&sQJ&{Z@)nx2aM4< zg9`Cex-*AJR5#{RmSM6hgblash<@Wes*y)jWW<_r zxTSe2B?_2z%*0#6eMuNb7Yw?WHY{MnE`>*7Ia>{!avr9nwCbVVcYrW)3jXTo!0dX6 z;VOm9n!c$sn&%O{?wpYuXO0&`9=}8UUJyk}6LXgy%khV_c;JxON3b2>4@AYVg#$VQ zA1V<|wqS*zR-^;EJji~XU3#)AaQo^yW1yj592IhWb>x<$4flR=f7Rip+}W7j%hz|r zcuF2m)~l~jTS~|=UNcdF){3vm1x5Gb7Ri<1a0QZQdq3R8bo#AkS)S);k>Q9(;hXM= z=PLH?_>FcP4x0@zmCdcRCk+i;s({ON>t5(eE5i0k9-@lgH%lCPOiR7QO|6P|{R#59 zEg5&yA&xD5L(<|G&=soB+ode?sTYpaY&opX&gq2xGAf?3QBLpLnJZ==;&8t$vy=~zk5D^~&kLEq>QgWW6jKz9&Ho~v;Q zTh*oXTmI>XxyOTA(XhRE1@>a8RexplQt{h1TZ@ykbCn;(U)t7=nkd9X7*@KFs00Nt z@E9bhAubR=LUaP!SD@l%^be5svKd5^{2gSe*Ipg8;p;1?j3kky6jn|XA&9P>s$8yq zZJuc_zE!+s)y=$TP-z-Y(k&`{SrU`-o+_>iojop~!;?x+_sgzgVVwN#dwaSX>k!L+ z+oxl*>7**R7?1HWCbiyhQy5GW^6;27G-w_!!l_&?K93=7NZLk&U;1SGX#Vy{#P0JY zs^{=zb3}?QNbcD|=w(oh%QZLrp!J1NR+m}*O+~*sB0}t_@$Y^-#PM7c`^}x;{?&Z; zPjXqTOtQRU@4D?qYHNLRj!vXi^e*7O(If}%KYh<)l98dYn{vtPk)#f1kjr@7Fmu!R zR+dmi3w4o=(z&I*f%*6y1Y%EKbA}5{ohH_y4I0Q(sL!t|Gy+yXr@a|E>2-yo9Y|7w z!^wuC7630B^}5Tx0>zg(i+Ohmc2N)#tV)7nzE12&CQO_)O3jzz$;MXnudaDaqmr12 zW|JG3g*P;j%^< ztm-S*_sGbwoC~lS1dL3|h4<=WEuMJEPm9i84zf_^W(kZU$!C<*`vneD7W&YRUNGme zZHe^G@@6-59}b4obbRh=)XxY;pLy9?e;j4hR{@{)eS)!UQ{o+C(f9XOQ>rnb^WbX( ztGieu3J~AYsV!{AZ}R4U9_G|Mk|ZA_`!E3&?pp#G;t?XzJrp|O^HEz*7FehG0r*J| z;f#=Fl6X{c;dWl}gF49cwB&Iv%0tKyB9h32c77fevrmT0?+pWbRyLSgt1dQQuWy*z zk3WAZiAiO^kt(lX!e)-&b!p!!6-jVW=cStH^8Sv{L$r{9H7Ot z#M9e{a33Kapn~Qr=RF-wH&D0V9OUV#6llEsXko8g3gm8vB{%)-lECD*f}RA2)q`gQ zOp=;Gki7X17U&74lbe@L_+_F!m*ve&S@zx@>2ju)r(w-8Ro~p(!+ld^r_NbO;su18 zOndwE=#F=`ST;tg?N>6{5D<6?Q#4NrsH|`Nt&y{@5|wO+omAXgWfH<`Kl*T$UU>4{ zU!RvHjRpj&`j1_yB3dC~Ip2v%n1)Aa4yi9qR##Lz%8e{Gep1N1e=;zu&a4!+leN+L z5rpEd-4sU!vT!i~{3BcoE<#x}ALgqYkcs?OIwB~&+m-KQ+d3aI^vs;6oq;EQpoN%+ z`@0qsfyZ~1k5wvpa;VQ~Z=%%g_=KS=fe>^TIv`+JNHiQ!5k6CvcwE}Kf!5T-JKNzZVQ5d;m`B_`8vKXzEXlbly{hbg z$0*gN3z9C5WB2ML>C01qDmYgweR@|2sv&!YIBuWY zQ;^j>JiIRgfOpv}dN|d0N*}9ZjJL;sqJQdYB$!yNJ$!|kL{p$tWybZfdBBEfL~gE} zlB`0mqXAziNs&~OF@Q~;IqCJf*PYfJrwSBO{>4gUs(V93tSct__dZiPyg!PzrTS2E zv;PA^rhV67AFku$bqBZHPGgp(Tt!24-)zRSP_{||cwEvg`Djv-EcdZlM9~O4+?>vl z>1+NCE$h049HaKT{*{a51X`^dH9Z8s^gBI9hv(XAM|ZM@CWd(${Ja$Vnp)glXJ0!& zv_=%swF!2p#}_B?M1VuWm?$?xe?r0&HPn`63;-Gx4H>bLl@-Ey-qBPg;I-wub>ZAFEyO~j^kR-`zdSKzC+{Wiaz ze<3zgN=Y`M@^<=|WQC#O>)-|d@EpPvYn1)&nx;4k=laQlH>fJ4? z9R=A}bjz%7xh!2}OtKx(O;h$2Al?XkCc%M{#ohE>PF@-XMc-NmwDOdBa|<{Y*y*Pi zF=vecPjFRO9@lzng(^901%z+xbg`JEe<4f{F-Ot&*~1j_2OtN)S^5t@K+vd^g+cqzyfMlkM+yOBgoU&WYpB3 zlD+R->!>Y{LhzWRNIg$54?n%Xd_7l!?&o@s-742AvEE2m9->;r%#nX3civHjzlWEq zS*#?dXkC#7jX^-buXEQyuX|>8rKP3610mL^jVWSo>Zpkk<_&OGJkNfi1U*>OzWyyp zH~pr&loz-XoDLtE2OS^Y_2w(m@>(`5% zptWi5K-yT#q;xI5TM@%~swi=u2rwAd1xyl$AUc|Hg1T<9vG8c$)68C3G;?_>Pzm?$ z{FT@VDV>n+)i?B&Hk?9B#=3rvyS&NlWr-7$+Rxk77kty z#yF^tFm)fmQ6MMsxqfx=4v;3lF#t$8^WUEdM(QdZk%nff+K3Plf;yLr)a#VpZV-b~ z*E%*;>N;oXzuwxMr{@QxueRpj8PEB0UuOtjE~o{&>VIpP3Bxgxh3ZU{$oLI;sK<~D zl||Cw-QaKik@Rp1tnmy^o;Mw)YaKKGWv89Cf&qQMfh5VPC^` zExK*TMi4!uXU|EV2%0Jm1WlElY=URvFKy?!3-F+5$cqRL z35i53b5$%i?X_d%V`cq%cP==cAnlszgJE3Z{@{SJU@^l+RZol8R?k0Y%KL*k(&h&* z!}R>}sFF?m(&Ga&6@`MM5}$?H&xOd4ODb;%^|}blt05A%aZi=hYbXi^HYM}+P0IXW z?dbeBj&Jo$;swZ%Ion5y|xPs&}tLcwYyYH8QfevIHMUe4?!$F*+=ZcD#0z96WR*Rh>DE zJ$Ye}tis4R^UCYKAdQWowP>;0Rig2b0CDtfMoe~MO{347=k!+?8f?Mj$;2X5tte8z zE4!m=jF{S(ub{yX_M~SIk8_O+v!tr+_$){UL;TfKOPtUZ7r(qXZB(jEP+t6waXJ+N zwB5!eR^@j0OVk22`7mv`X5lnJ0*CkK^W@;vn0HZp)x$+UUYb3H_m0L=u7kmXfG&1* zo^aoeWGDk07nzQt1mnWS`6@)WD5~6$AI0$z*`L4XK-iIZ<>+Zm9piM z0y*Q#qZ?GA2cOh=^|tcF9dp^Y9-^3A9;q+j275+cbv07pa1d`*_;?%8;c@k|eCHZ{ z#ugjaN5VkEHim#8*li$SWEz^)!=Qell=ZngDUGBq_=X+wDj=J0%Vtt(YLtqDTCHc~3k!rIj2?q&h zd<^3F)3HKEsmW^9D(&lpuLQzxRNPLuQT7ES$BPr0t#z6tk=pt;#)NZBk3q)cdTbaf#R;-e*!^_H~Km05(!`>d+y@h<8r>5ho%Goswy7H)_OA5gsE zq{0pl5I%z-?;#sW0;i&IRRy{q)zuVBc0<3&uh)iD3r<}i5K=1WMR_iy!0~-qo0zBU zZ6>{n=MN&4Gznd)*}&k{?12vizA(-o*mDoWvhE=)Fm$rT|B4g5fIdft+6XXbSm zrIc2kpZ|DmcTM$Y@V$FX%hcJxZl~d0V&*%%MKd+#@2{Ra*iceI^s{->p24?ZydgYk)XX5qn|J?8XU93P}qLb?X2XVfHI?UL*qQoeoB&HS#_>xb)3XcgnXkKVMY_eOq;ga(?@YBzZ3CRv zvY*7YoG^$%suJk%=}O!l!XngyZL62M5_gR{@_aOY=X7;+GSghfb`e9Xxsq|gDmphL z7M%7y_C|-~kP8?Xjr6Ip1Hdi)Bj89Z2GoZlr6SsY1wH@w=6{B2|Nldc!9xTN%W0uf zvp!A6iT+|T{!<0ckn=Cd{|Ry@!;ZAW5*WMA$i8sP)I(d2+e~A-`ZXAB)>`ilpRxWY znEhiI#PnRQAZfSE&q4efYbOWiZ_We3G!X9lN%kE%Sz@6&G-2cIj``$4PmfGI>-znO z+#5t;F< z4W0UPNkf6xV5Fw>Q{V&hvm zcz3RlS6gs@U$R94m-b$uy!|Kv!i@(Tiz3T^=CK3b-GJr=9~%4`P4|zM1CZ| z$a}nzW+Mk9FHTPm!k0rsr(@Rx3HUjW(j5ib2-AQsqrSHmC?YQKDcyO6`gCoy{k!Qb;BD~5&lq|o+# ze^`OXUeNv7iWgYmUVTEVlTi$C;nN$j)IXRGYZyvH7U@y%5iz)w%%=91?r(txy#w#H zlJZ>YKnUK(^HmCm^)#J(vY4jBi?u+hpUt+4*n#l(qWw9Fe6k0_bH#F6JpB98f2f6oDcP7TM?gS;r>*lH3P+Er zFtfxD!`l800fAxl4o)ydum6w}M!X+EfC7mSB30i%cY+Up0sH><=KuSon@-5Pa=jIo zlByF0h;X_Z6*?4DI^>rGBo=O@t?nNh6$dq_YMFffDFmR#AS%e_HMop4!*!wE3^H>P%s42 zzmKofx`X zII;Bh{cK*b}+Bpi} zb{5cWvCI7t2jD})M<5ZLKc{!Q!@(^cJ%>L0&&3~fFsA=7dCl+=AHzzUBYl5e<{YGf z2mE9DM&K3?%O9azdnpOkgUY}36+?;@8|kfXoKoFF|D!N~eAy=h@`Yr1<4AAkb{{f3 z@BC#dEKMwUplDQ3!Bzp89i8Ss!vfHaJdhs8?E_41woJP`>^1k8QnIqD)4x)6vcrgE z;o5@pT)F;;YuG|r!h{UJm-XnCd5Y(2wzciv7^#@YX9 z8WEX2f0$f@JXz#E89{bPT1#<^1Ph4CZreZ#w zZVlL=uIG;bH%ZX|N#|aMG4Ho^3EpR|w>PC$r5h!vRTz)qoD%-mYR$m_g1o;6R~rF1 z=Mv*P+<%sG0SAmC_jBhq`liDA;ge_QSyPGy&>UJ=hSA@Nj%*IM2CNeDg7Vzz*NX`cE3__YC7HC3}PjT zQ2<(6#BIv|;qIil5Hr!%%x~%KbgNtJQc_ZVYWKnNf@v|KTW0@*70h6i+&Q$@+}_{i z{DwySxm4r+Hfd_O<(x*dAwcGju>?N!17l`!a(TUM>>WsH2!hh<^7zq5Gf2yyZiu5h zS;~7MqSh5y{;;32MCsce@euV&i}{P4q&f3Z~+I^AHu^vyn*2+nRsfD{`>3ifO}Ja`J(>wHNaPVOaqHQ z{;3&Y>Vyf5QMIw~>>t}6_Vxc&Qp-`=-kfOGefcJd+!?zGy0u0{i>Z`bAXHk+{0J(v zwNmZu>~vV|!krAXTkVQyZf<@@wDPdh%-D43Yl>QT^3^qd*1(rH^w`A0s`Sy>U#Z|d zeIC?7{#wB|EP#&gL5r>l2w#k7Vk;%OlcExyt4nP?y%8OYT19Xd5IxQ#7nQ;l+Ie_2hyImqPi%_ z$b3MVu1flzv(&$VDOw`eeriFzPRxxxJr zcz}YP1`hzhe=RmlCZHe_AImNrMd!aV@AJ@Vx&9k<66L2fTDi(VqEF?N0a`e+EKZQpUO0jX7bJUQ!v-}purO53|RxB4vp z{%pI8D(v431qEgJ@vwasXcM$aNUsVsya&)81EyRrz&o z3Id`?mq7_q0)ljdq~sx`1f;vA8x;u!={RtZZVuhep-Z~!P}1Es5Arj<_nrB!nYrel znQ!>>;hg>Kvt#YG?{%+r-@b$KBfxwx16w&m?q$?+4jKUlJsD@gi2^`@SkH@X#tI~t z1&B0hz=D|2^o7<~vrxQW@;pmsis?-HkfN`C)@#UZvl||eDCmt??A(kKkZ~*W8D8A= zZu1JhHb*<8UKCXVIxVgH^Q&y{)S_SP=!;0?VPTtRT}N&z?bjmv@8843Ouzp^4Nw<| z>$1Cp&}T8rG+uJl^Yk*cp|`*D_Gy*{`|1K9m3}SPz$MH3QmG|d_!9=qP&)6`Bnkm` z+~_-6#w96$MU@Iv1@2&WLVmBp{1upVs+MmyWm=7x)S~V?6T#_^sq}{=|FQD3F95T_ zYnU-vmsq{K-4PyBY}h2w|3P9x*C^00!SgbPN;ZxLEC(nbxGcpO`B|)r2N6kt*)2j( zfJpiyf#V19by(0O^@_I`Y*uoh8g}@H?(%2^Xh(iKj%SHcVl%FT;X=C!pxNGkcjECW zyu;=P$CCZ2`-ND^UDE2ydwgRx*}u<`nQL1-F~7Avt^KO{RqvMs5!XY~l*b%as~wJM zes2*9fWiPShhs+mby<5V4zf+3FdgX-{uVH zDzA{rC5xe-0)mqUY=GGNV3snSxXMcL?kLwK@GL5uHfXieey%eN5PI^PGEibRvar=Zt&Bt9F-dhPL&%`6R4R4iZr0h`dy?UpK2X-_`8qI~X&3p? z>7d?k=gkcaSZ%A|x+gUP9;f%eM6*U5ie4=f7zG01f7(vcA`s6TaoRy@mpzAbE0 z1QfH|0N53ywWhSn&y1w?X&_yjqXoiZT=2U)fJQxKcg5k>3?o=0RT4i7P%^g!L!iq} z3N?W2dZ58}N;HN3V))_4ggDWmvc#l7vjjwiEC7`hXAgE^IbNLUT)G)cTo6peB^32s zlbisk8tot|CMK!KNeOaYP$puJpLbxAg8V2F<_KiB1OcV(4fxL>M0_qv3_Pr?;XwJt zynr_rF&$h-VKWkvk{wIdy#{uyFWCF&G%JgDC2ND`)4J0bqn@jDJ`m7FMPJ)1|JS*+ zQr((*DWbai21w}4Q7bYA^qDJ@q8PO;?G-Xzzc+qlL56u=T~JdOpHs#sg9_?(sZAl@ zZB0k>pIlRzh3JSA>;Y+CU4*x^JNo5nMRCNf5q>g}9r=;181Qu(ONIh26=~_uJ&rBs zYL=vdSbNaRYR6B7u}wlBMMK$7PEN3)$3)!kUV#~UHHwX2(m(CO4GaN_8Dx0yEFG1M zC}+P;1xnf(7wx)XAcPpbbNUJQxm{=3f$kTXajyiCH%=jmz%=8VpUL=g3yS3m(%?Ek z_ILG_PZYXwwIIi~rXzX85j65b7J(tu=C#T3Z|xo*qw!Ef00NwghClW2&W@v-__5mM zc(3*kt|6%Q44mqnxg;#iRmucVT3i*0S9x4cOeq!l6mo2L24p+Y%X~VX0;)&^`1yUu zPyS-s49|J_9%WaPz~r8uhj(YLQYH?dg6^$4XagU*ZCT{3AVRu)2N}5?|Gp)zReozW zMOVmsL?$!>ub_Z$2G7Y_Fo;Dc&IAmmdEdPMdBPuGr*n`JI~mzeOo@Epx$E~7dyy*3 z&T&dk1ga_Vg!276=aZVZdr<)YxC6R6?#~En9LZ6m*mDl;!WdlA9@^7zw44!eSdTt6 zfYfa+8(g8Vlft_Z$5NK3UAIcI8HskI>h|s6-=Q4~+7p-H#&jb<#igIsf9=O)MNtp* zWmRkwm1@8%J)LA!WG#cY2(A7nS3u$GewhE-LVnRW3~{bk;3{0Lp`oEar*kq`$Qkkx zsjNM8EOPfVUuzkEEGWV4;LE9GT`Nf%t)5uMFTZ&E8vUr{yOdq2;qgax#KBrCvrM0E zYRS;64?7+JkBqbJC~KG6HujWOchnyqU$Z4#4mL%c6dab8RHP!FQM!}o;ORM)9_hKY!aVZvYfrzHbn{Ku>gv)^8ym{Qifau)t~9&s`P1PAY3XI zvP~}bKgvGt4VwKtCT^h~vjcN8L*ki!z|TRR6oaa*uIeVr#=NK^m_Nnm**%g5=u+T{ zUldR`H&e^aM71cs>(V)369@HkKEoD&qnrNLlGGD_B#$YM-#r%Zj;WnZB727f^|?Vp zT~d(=hUZurM}hxWxMw{^*CFS7v!kH4_RoRcL3qnn8)>fNLqzN#IR1S~lkTrh1|t4T zuto!*&$}-y8Ot=l#dL)06ZQNUJ(6IDja2c35h!Oh!)r3g#*pyQW82rRazMK0^-1S? zohSv}*V*a zni_=3@AYoT43rZQ$X;>S<4nzLK6ec)Ipqbtb8hU^hK-rTQZJ9EuvO@sxt2CLiozMU z&nY2c!?0FJsc|zFXxbSk0i2@wQ70@pE=iyOiXdJHhh=loS92D;n&+e8j49G@Xn%ZE zuq6t(MT;!wAYI+0$*$nu5-N~ew}b{E)GvPv393Yc2-^?0x#H*5$FmqK&`^2#ad$C8 zETTh+yBtpjFC?Z>$jAQ3=Eh5(eGD9&ZhCQ3Nl|4Vx{tKMWdqy(TM7!hl$u~CM82&W z|G|yT(n>dR?Q#Xd=+@!o+JZ3!=q9Gz3<;*fd}Rsoux8MH(-Qj|e(+xY?L24r&|M7W z4u516p5;pNg898j1`Yk8>H^J;@k6`s0f}+1v5VdHTP+-dmS8!@0vi4@DXQDn{jn4~ znJM+wN+`6Xh=SzseDs1dl(>X!d05t7CJA#hBXez?eDbEG8i$LPj*624Cwed5 zA|%<1jc^N@snD0xJB%AHTi7Mswcs=NZK0AQ5)Et)bk=>+K=+)8t)tJRPL=ZU!J$%o zOnfN@Dk=jypl%DSM62tIdhU*cgq0lyiDBJk0F!o>Aab+*aNB|;f(_u|b2CsK8TGaf z#C`#<934=F5vJBPK~{w4wI5`>Svo0qKXa&1BLb!6x+fYUBz}-zY%kqyj#GIysxuPf zfAoI#E;IEs+oU=;x5WRfkxGtttaRjITr$zl(}Zpx+wr$O)gF0LHl<7Wcv=!KpxSFJ z4Udm@+$m{2NUKA?Do$0eHW(C);qs{1X-B{i!&NkG)%oNhz1=SkT)5d*PcxXhD~qB; zGZiRJ-fltg)F^#~nw{q}#+7njg-qgoGP-fqt3LzhR1|tfm3?bG>~@h&suvR}SS8*4 zl{UR*n&GF2yQwwVo^sGVm(VEm;qc0?Zu4+Air{sgdVVA#-|)KW32^b{okQ;TSEp-G z=D25Q)InL{Bl--nI9tZuSHQlhr44f~%o#_&#nq6ea?YP#oj0kP zz4vKmxGxY2dTn(E+YtsS@zKl_7=Au&H`06Cr-~)wkJImu0OSm`fl8WH=hhtb_`OXVIH zE+?NWZnN>cDPm!@`rew2B&l0O%boy-Raq{7tZ-OtQNW{4&8sFddj3XQaoHoSc06}) zsvjoTU4H}1c!93{_LVt~yuD2tlJYX3Y6HN1NCG&$YxNA;wY(tg&;25JX{HucKRU(% zYuMo*ftnnqYuj{?AI1in)(qLj^-wl}!kKzTB9k7{_NsB4x|7j!F>AQA@`BdvbZa?2 z=#ncJ=!(XhL=SJxLtHo82T-g#R#D169p&Y7gy%a86pzdsbtU%JRTMp9FSoLC*=t@d z37);luB`tAK$*wevyX@D9q}+ z9_}T!^Q=<$aa8F;5C4%`vs%yhr5KBGDj3l*!%;7>nbt8I3?&1!MJloU%w=2Jt2H}T z5w?iB5rx2`)bHI%@aph3_!i?j4O?xdX}+$_Ur^%h(JaQC6Sc~KWwf7b<`KNm`e05x zylnFufvUY`x0bce%+)wj@6^j%I(^cyfPal8I`PE?=NKQMy?uOsEwy{*RB9)lCulu4 zG%*9pG#MFkiF-m;OvSO}ikpFMvwau*Y)5~D*XDsT`%5@12(}bv=wQi?X=SSAduYZF zCNBUX@Bl=J!C|36TktVQ5+`Mmu${hsiuoN-7uWeSE9=%qZ{nJp{?^h49>>WbX}-a^mYXpe*PVf@5zo*xB%41`N} zXJZE3jpaMj`thvL1_43mHiqR5c7lb37i{ycVL1DcsP4wmK881i3B=NhpS>#Qr8GHm_6rCI=q5dq2lRM@X8X`M7{AyI+5Ad)BwBq4rMpW$CaIBI^D)v-e?54iLa)u65 zU-^xd%Sr3;TGs@1-YuLNVG&)SUtvk$cIrLj-Gth8w&WUH=S15~{j?)L4hxejd4ml= zk&V_c4jR}QzmgM$O4&uh{4#hSHljE4}BiC#4?NO6a8=P}V_AZ=jPa#11%JXR36hx{|rw#^Ip z#}E!f%NaP-^Yo*xEUf=qD@n)`31^|t`Z2da)8qG8(#q`!>G{8>FAK9;tke9AWCxLb zeb$JoLOAy!H?>{QcR+Bb?DI_${4Kfh@u-@v@-gg zQIs)|NrE1Lsho|EMSlo**b<3P8kDMBlppOMQw-*Kgk$yzs@w$fY=wcKC`b7AeN@gE zL0{`{-5njFOVS>y4K~c~GufMIqvb)0Pq3d2kM+Q7#UJybT>qe6Y5*!Y(eoqu54fh+ z0DwJmqO(2wHDxzg=>Pxl-FL>PQvIov zm4YQK^1N8Rbb6+a>7y@_V$3X7mO>_P1U>eT#2TT0;`yJi=>|_VN$Jl16R1=~L_fg4 z4-m99S?-B{ces8H?hyfObU#2ml$M;_=UV+KOSK@WQ+y@e{;~0r5A?_P5WTVS{+n%> zVSWVh-(1#}M z+Ye>2pG=c%I*`_IJKg$tSKj+ycI^q(_H;FJvGodbrR_nidL*3)47l+dFLeR(QuPmH=oaJ>s+`18~~O^HRk;%!JRWvLN1U+1YM7w*M5`tt1Ktpy!FrRp$es z#y0LQAAwLFp0ESQv?!x0E|#QSrDMgXrMinsTYsSF%TH+HpOcj7Z;Uj`f|5%^WU}1m z{buFb^HdjS`qw!Rb{0l^dqJ|%iV6yYXXoocwst0fx|%|YWPNMcK6;#=aFkT~Afxra zKXOQUrBkU?{0ciuyNKJ~xKFxfs|{DnnbUgKE3ZxL%Om-Z_we62_f)=}t4H*~1v9dl z^uso@)b1D1zz551^qy(gR!W#=asK#%H6P1bE5!MQ9-0@pvE^(vr1BtQj~1_UNfe^xgg+E zl6yoBY|k}iTFumsQ}HZTPt@xan{CBQoJ+k=NR7JlU?wP#kg>niVqzgBq=Lo=3V^=- zpWA8UIkG=Y)RO}pkKOS+OasJ}CGFTef>oH_loaY)RZXp&u)aX~Qgwji!RaV+SVjus zkZ!9~oarO@X%4(6fh$rQF*R?56e1xGW53-zbsyy7&Pq!+xUwvclAIYvI0VEFf=HYf zu;CGR%vQ3YwMjsS<)$&v(2|F;Wr9+MAspm&JMV-0PSAEt`{)R}5|_|dGe^YYQqt1; z(`3LYPH^Rim!`c*0o3d3j6THVG1glRQJBC3TcsrG(8g&lWT>YgS9hK z&-0fJ4L$Y*xzm>(k}_3!>_;;Oftl(~ln3K|)bx3(yl-k;luz#rX2`$4yg1TUlL2&O z06pD~K4tD)UI(PBi=&xEC+;l95mBaFm+?p_C<=4DBDnL)_&{dRia8`r29OO2GqgL* z3*F9oSmv)16hOf6Y$7!$&*Xm&|JA8E!ozM@lG)iw!}kJe!zx^y9#}A|6&qvcs+UL} z-G}PtcYA1s{(^o9BcqaR-9Awl@i?r1l@D?f>Z&CriZKN$o$gLOQ_hkD@}TVKTd^^> zQ(}|#)FgRnEyoH|uT#w3&knIaxhvxw1*@oV?%Wf>o)gxEl+OUgQrUWkHH#qZ%T0<_I#WA`m|KD$2sNGZ=KZ2Y z)R$e~O%9JAkGnb&Vw+p_vS0Bw%tM>jMxecYhL8&?0!FQz`BETzDLYJZ>OH}8AUW+? zE{rR2k#WUhyg0<&;1>{_IM6r_;j;5py`?J2`_OWj-l)}vQa3D>IcKrpJtt3qhLm{^ zJ}xeWOl1yV(}o_l?&VOz(WcyMJJpQ*SN&8Dv&;Aizg*A3Ab}_9 zwMV&jo`PGOUc>!M3T;z(TeZ(3@@uL?^-XZO*(u@eHL0+=J6a)gux#|npioMwjyBE7 zS|Gq7HSnaC6d#}R2xrcY(j-~EKuzI23i?77eLr5yIenA{01;GL&mk6M%)_$pM82-W z>uc?`mb<0ZFw1T;<7EGV%N87ij3y{9`kk2&OYbJW4mTwG74~f`hjYB;MR3H&wyNIo zUFGa{eR-dRms9*f5FVBUd54VB@@6G>@uH;N>MZ9;F3msp>DpMI9}h38?_96nQCSW}NF zF4_kmD5_{!V1*H7vMHX(+biTVq2F#U<=g_9*C6dq2i2a6xu?$PVGe}9p!ge7&ADEP zJh?{|*x217`-zRZI18U)Po%Y-=8)C!LHnckX*qgwfZzKIF`inKIA7^D+lW2RV$|T$ zG135FYS(kXM^LPBaU|#6(Fapc#Q{}0A}qG<(}_L`&Am9C0m`m``-(1K3&KmmcEZ?%kH(tkuZt(pZvQVNO~eqqWD!#^=) zb^CAZgoLKaaqk+n4^Qa0!Asjw?yk6CRNBis=1Y3PEaeVcesNvpK*lcaYg5x(w+KE+ zh`dy?xg55vOxNtz*?X$hAQw7(-(N*6+*p?W&2XM39qIg`ZB>axm2E>U`uhBAPO-^| zmdn2LML^SpE;4*fi|<|C6Qhzl2R9xx|0YG~FbGmg?PR4hXj9qCBe%^w_W&CK)-snT1ucMR>1L~h_wAG&ioy%L$L zs4;mY&~ydY5l%?6Ib^ELBc$VUTUlq*GrLc)}yB^Z-NTN^^+*KF1&@z}E zLa`HH0fZep{Xpj!(8_2uUag_gYUd(uv2!9QS;2Rm#AXljbv#QYxN@VYE~6h~WNr$D zc(74+%MU)OLS?`EH}{mXYmP3v@LUag`xmEZ1_z)bv#R&KfV-jC{?vL_wI^w-tW%ka z)UnJ40m>SV6yt9t1g-hjU3Xx@nkMk=28?$PfQvKXykl=|jt0-{uj{f*Kp(zl;eV`06r_=6oPW2&nh>vj+K!uRm z!QHuXO2*W|<&5Tt&0!X<@eN!Z*r44pdYW|frLMK*%IFu=S}*4!@b*qi_;IUkNM}?+ z;YSU0ce#eTvq|0%fcXmS*p8GX=mnjJDAR{<7f&XM6rt&g$$7!|26A{@)xw`ChoT&A zN`xqr(E zP_EC~`3sqTjr*D^{4nqGWlhhTgciH1;wm#ok^Jr#-omY0XIRz`6fRw?tolz$N7wFO zu0iWMth4CjII|SA!b*%KtCQKTTFJkhrAhCq-P-1%_i*Y(JG5%EfLj+P>&SIZMqATwG;yhGcAMcLq=o=MPexIOqm$8ODakOXZ z0LkHWe*naAdV7HY#dFHY)z!jfzfXKmX$fExX1GIZ$CGFr2Gn;M-@J-4>O}@g9|1+K z=IL%w>V*0HbaSyLe-85b_{jK(QTk6uNwfa>HFGKv?4}o(UELqTjdF;cNl_qQi|%59 zOBN|#h)*}ih5dICYC2tKojlEo0=#C4OghHa7&O9x!3wIr?k&ePx3Yct4kG-wYy;|q;V(m}rxRbYz5`ZX%$S`ca~It1eT+3Hd@ z{z!?Q1h$NRcbKC}%J~NXNzdl|yjPNHEY@Kc8Kh2%DizcfIsKw{;506J3q3LV6%dV= zH+qzIa8|wyaosIOh%2mY*qE!KTSuofpT^ucIDTmNW6x?c#}|Eb0zB=u~c_EaMg@Th*rYw&mv$X5TszTIIqLrhCnjy?ov6|?GC<)v(7M=GS+ zwm@&u00?jznvc*|3cJ%rM4%B_b?Fz+$xPuEy#Ke-z_@4ajD5+0(I9{FK zyC+y?2hCT@lZ~{VNzp9Hcd(pr1%cVY zwQnllFz8mJj&bMo0=yjAo5;#93Wu<3?-EUc&9b?#DH}Hc>-tfr*0>xfG+EfHc2BOO z)l<=%OIgx!sS7Guc?zVaX{uzu^Y!{3I~lzt^Nk(WKz%+j+YUtbn6k`$VE)AZ-PGOd zlW}21RsW7#I}w^T)5bIdY}NlEZcRAd=^YQQzzFI}N%`;rNjHo`c8LxtU`9NK*&xGt zZ>fWBx9t+0-kh@$=j@$z#Uvxa^8gk$C_fFA@!`5_Vs={#GSUZh&hi`B@fVA#oyCS# zXmiiH9?p;1gM~R61HjFzBhZAYi$^Sm_xUc%H=sFUXnq!Sb;;Yi1{;=De2m62mZQs0 zsQdImW5bXk*|c0fJ=!_|!G_h+mEw4QS=P)r>8wfBU!kiztN>!-C*Z!N9WEYwI#+(< ztr#%3+Qjn9s#YYZw6$|wu?OioZ?}&)xHy|!l0Wbvfyg>EQ6_SFWV#p7hcYSpk)296 zI8uO^nDi?q15lN{695qQGv14Nm5ZIIV`i6SsiH!OxFXnX$Cj}FBN+Db4EmYAswBOT zlfBQ?{BC&4)Ur2)+m39XqX?{L%byz)hr9 zksRfk@MB&0;%M9q^~?~hd*MQZzA`2CiyZ7_bsbmQ*l{%8T6W*#>(;IghvVWHC=sjp z-TCCucK2fmwtRF@ps}>%sp;_9J1cM`Kz@^@s`v4dd4DXx{!n+|$z`xi((!nVe|HwA z2t%2_Or|Q#x|rTFurO9f$+c2|Bd&C7I-Nk^Itcym2)6LuF046HLPiYS|AUk zRU+~1CZhNobVfwvbvC2xiiY=S=Bv6UKrs7?3zF%lg{e?EeFU>mDc)#)z%7lW3VtYi zySeq&(|-U^Ilx-dJO%Oy2(inbt#8z69nj^fS3%&ojQ!0iJXIpXg5}0?ZW-!8UgZ!} zAyrbr_!ZMoo>l}3-z6$rHtC`;>v!dUz!M-(p$(mq_co#|)z>FP#zlpNDO_O*(SuLC zy+V*I1HPetD!-_RqjxptrD0u=sZ0?TzdN2kU7B*lLSjyK%vxAy^G zSFb!t>7TCO5M#F`0c)zomGcAdAJFW^F@69*=#3BZXz+g?3OB4>Ac5dd3isblw*Xyd z@}-l!i45GddkX=2oj4ZJ6d?QSZunol%NRt%TOMk{D=QrIk*c-k52hy4Qkz}>BsKjU zIMB7LS|5_-s*NcrTdQ9HD+K~TM|No%|3Wjz+P)^%Vi3`yqTXo~k^g%-EG2-s^KL49 zyJ9O@rNgYl{m3<-R%0hno%=PJ65fC0{l5hoK|!BB&ApnLj&D&_n?fME#7utwm{}M* zuq1*2@c-_XYO}IiQ20MZN)ePxYDtxR8N%-8tIPIw0yUQ{mBv5U3|k(-zo3OOw)nYx za$gIKA#W#4UW6cq$%W^uQ)o!v!YZHpOxRf$VUP1xcZ?mxuI`+Y} zyTHG-qP>itq@~_WIWW+sv}9!JP7L5O%RsT@7e4~x$WE!43Xk{{GK;pm{iDI1>Iy>Y|eXi7ehr8Ko`GvEwCTG5gE|@h~3=_Y!CSQ zj9K9qm>exlSI*4SZfo%({e6Adpge8-PeiQTd@R4V954gl=)EJ6VT8dK5>{430y?JV zT-&Fun@qLxtpj6Z5P-Q$hz;ll`$QAX-N%WQTHO&{Ga`?8YRviu;ZxT+{kCP<(s0sQZ;eVwC@ z8wk}55eed3-FBKyTN{}Cz3KpyScp`J0>kaC!BTww;F$0e<%Op=r_pN4=m}}($&)|t z1BNXJp&(3mH^+Hru&5VPj>~wzZ2tR;nLw+9cdZc@GhM8vBE4QCGJlOsM!Mjk*J$4e zVcEfzHWmkT3JY3u*?7RJp@f z)#D7OKEa+#0=guJSX?yT>AQ8Oo0Egtx0z)QFvhO z?};2#0j6m3qMpL0FR6KDUsDrEfi}B(IKySFB8Jf1|1+F;v|riC3^i@+bFM~& z?=A&s_Xer4q@`8-J%k2#fkok8SIr4=zHEMK>wd+-B(r)&MJ4d}s-^{2HHrJ`N;H?_ zOSeNcigxqkvt7=)=;Z!?Ss3aBSPA=wEg+Bp$D=P|ZuvXOqlE@*xBM@TNC|o^%UOIk zs(QVass3)8;(MXjXlV^c3xxGj3RLTK*=#diJW#uD&-lmqk;!>_(<8jlZ~OXVlZ1pq zd>^KxS4X-G5@2W{cGtgPTmSm&7zUOn6wg>qaQ&Qt=k(O!qL7c9CpkHJp3bv?@b}RQ zm1t zpx=As+d~9|zR!_Ie@+HtJK)I@>8;j3`||uJ% { - if (typeof collapse === 'boolean') return () => collapse - if (typeof collapse === 'number') return ({ level }) => level >= collapse - return collapse +const getFilterMethod = (propValue: boolean | number | FilterMethod): FilterMethod => { + if (typeof propValue === 'boolean') return () => propValue + if (typeof propValue === 'number') return ({ level }) => level >= propValue + return propValue } export default JsonEditor From e9a32de87516f65cf7d96f3926c996bfdcac0965 Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Sun, 28 May 2023 10:35:21 +1200 Subject: [PATCH 2/9] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e1011982..3e9a9409 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,9 @@ ## A React component for editing or viewing JSON/object data -screenshot +screenshot -**json-edit-react** is a simple, yet highly-customisable, React component for editing or viewing JSON - data in the browser. Features include: +Features include: - Edit individual values, or whole objects as JSON text - Fine-grained control over which elements can be edited, deleted, or added to From e54215c2e3e0025a2e1700459bb28f0522081d51 Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Sun, 28 May 2023 22:17:59 +1200 Subject: [PATCH 3/9] First draft up to "Props" --- README.md | 70 +++++++++++++++++++++++++++++++++++++++---- demo/src/App.tsx | 2 +- image/screenshot.png | Bin 129445 -> 113426 bytes src/JsonEditor.tsx | 2 +- src/types.ts | 4 +-- 5 files changed, 68 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3e9a9409..f17785d3 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,77 @@ # json-edit-react -## A React component for editing or viewing JSON/object data +screenshot + +A React component for editing
or viewing JSON/object data -screenshot Features include: - - Edit individual values, or whole objects as JSON text - - Fine-grained control over which elements can be edited, deleted, or added to - - Customisable UI, through simple, pre-defined [themes](#theme-link), or fine-grained CSS overrides + - edit individual values, or whole objects as JSON text + - fine-grained control over which elements can be edited, deleted, or added to + - customisable UI, through simple, pre-defined [themes](#theme-link), or specific CSS overrides - self-contained -- constructed with HTML/CSS, so no dependance on external UI libraries - +**[Explore the Demo](https://carlosnz.github.io/fig-tree-evaluator/)** screenshot +## Installation + +`npm i json-edit-react` + +or + +`yarn add json-edit-react` + +## Implementation + +```js +import { JsonEditor } from 'json-edit-react' + +// In your React components: + + +``` + +## Usage + +**(for end user)** + +It's pretty self explanatory (click the "edit" icon to edit, etc.), but there are a few not-so-obvious ways of interacting with the editor: + +- Double-click a value to edit it +- When editing a string, use `Cmd/Ctrl/Shift-Enter` to add a new line (`Enter` submits the value) +- It's the opposite when editing a full object/array node (which you do by clicking "edit" on an object or array value) -- `Enter` for new line, and `Cmd/Ctrl/Shift-Enter` for submit +- `Escape` to cancel editing +- When clicking the "clipboard" icon, holding down `Cmd/Ctrl` will copy the *path* to the selected node rather than its value + +## Props overview + +The only *required* value is `data`. +| prop | type | default | description | +| ------------------ | ----------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | `object`\|`array` | `{}` | The data to be displayed / edited | +| `rootName` | `string` | `"data"` | The name for the base object to display in the editor | +| `onUpdate` | `Function` | | A function to run every time a value is **updated** (edit, delete *or* add) in the editor. See [Update methods](#update-methods). | +| `onUpdate` | `UpdateMethod` | | A function to run every time a value is **edited**. | +| `onDelete` | `UpdateMethod` | | A function to run every time a value is **deleted**. | +| `onAdd` | `UpdateMethod` | | A function to run every time a new property is **added**. | +| `enableClipboard` | `boolean`\|`CopyMethod` | `true` | Whether or not to enable the "Copy to clipboard" button in the UI. If a Function is provided, `true` is assumed and this function will be run whenever an item is copied. | +| `theme` | `string`\|`ThemeObject` | `"default"` | Either the name of one of the built-in themes, or an object specifying some or all theme properties. See [Themes](#themes). | +| `className` | `string` | | Name of a CSS class to apply to the component. In most cases, specifying `theme` properties will be more straightforward. | +| `icons` | `{[iconName]: JSX.Element, ... }` | `{}` | If you want to replace the built-in icons with your own, specify them here. See [Themes](#themes). | | +| `indent` | `number` | `4` | Specify the amount of indentation for each level of nesting in the data object. | +| `collapse` | `boolean`\|`number`\|`FilterMethod` | `false` | Defines which nodes of the JSON tree will be displayed open in the UI on load. If `boolean`, it'll be either all or none. If a `number` specifies a nesting depth after which nodes will be closed. For more fine control a function can be provided -- See [Filter methods](#filter-methods) | +| `restrictEdit` | `boolean`\|`FilterMethod` | `false` | If `false`, no editing is permitted. A function can be provided for more specificity -- See [Filter methods](#filter-methods) | +| `restrictDelete` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for deletion | +| `restrictAdd` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for adding new properties | +| `keySort` | `boolean`\|`CompareFunction` | `false` | If `true`, object keys will be ordered (using default JS `.sort()`). A [compare function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) can also be provided to define sorting behaviour. | +| `showArrayIndices` | `boolean` | `true` | Whether or not to display numeric indices as keys of Array values. | +| `defaultValue` | `any` | `null` | When a new property is added, it is initialised with this value. | +| `minWidth` | `number`\|`string` (CSS value) | `250` | Minimum width for the editor container. | +| `maxWidth` | `number`\|`string` (CSS value) | `600` | Maximum width for the editor container. | +| `stringTruncate` | `number` | `250` | String values longer than this many characters will be displayed truncated (with `...`). The full string will always be visible when editing. | +| `translations` | `LocalisedStrings` object | {} | UI strings (such as error messages) can be translated by passing an object containing localised string values (there are only a few). See [Localisation](#localisation) | diff --git a/demo/src/App.tsx b/demo/src/App.tsx index ee079322..7fd7413b 100644 --- a/demo/src/App.tsx +++ b/demo/src/App.tsx @@ -207,7 +207,7 @@ function App() { showArrayIndices={showIndices} maxWidth={650} className="block-shadow" - stringTruncate={50} + stringTruncate={80} /> diff --git a/image/screenshot.png b/image/screenshot.png index c84878308c157716c9659aa39dfc9c7f36e387cc..7d07167730628f61e394a08ed22e3df0fd9a4338 100644 GIT binary patch literal 113426 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�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%0A^P=8> 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

fu?s1wz&bMDE{EJ!aTd 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 = ({ enableClipboard = true, theme = 'default', icons, - className, indent = 4, collapse = false, restrictEdit = false, @@ -33,6 +32,7 @@ const Editor: React.FC = ({ maxWidth = 600, stringTruncate = 250, translations = {}, + className, }) => { const [data, setData] = useState(srcData) const { styles, setTheme, setIcons } = useTheme() diff --git a/src/types.ts b/src/types.ts index e3141cba..64c8515a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -6,7 +6,7 @@ export const ERROR_DISPLAY_TIME = 2500 // ms export interface JsonEditorProps { data: object - schema?: object + // schema?: object rootName?: string onUpdate?: UpdateMethod onEdit?: UpdateMethod @@ -18,7 +18,7 @@ export interface JsonEditorProps { className?: string indent?: number collapse?: boolean | number | FilterMethod - showCount?: boolean | FilterMethod + // showCount?: boolean | FilterMethod restrictEdit?: boolean | FilterMethod restrictDelete?: boolean | FilterMethod restrictAdd?: boolean | FilterMethod From a20a21ca17523f5e2e0d8b1b6ff8afd300373deb Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Mon, 29 May 2023 00:42:54 +1200 Subject: [PATCH 4/9] Initial draft complete! --- README.md | 312 ++++++++++++++++++++++++++++++++---- image/theme_edit_after.png | Bin 0 -> 6940 bytes image/theme_edit_before.png | Bin 0 -> 6892 bytes src/ValueNodeWrapper.tsx | 2 +- src/types.ts | 2 +- 5 files changed, 287 insertions(+), 29 deletions(-) create mode 100644 image/theme_edit_after.png create mode 100644 image/theme_edit_before.png diff --git a/README.md b/README.md index f17785d3..2de5ed23 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,39 @@ screenshot -A React component for editing
or viewing JSON/object data +A React component for editing for viewing JSON/object data Features include: - edit individual values, or whole objects as JSON text - fine-grained control over which elements can be edited, deleted, or added to - - customisable UI, through simple, pre-defined [themes](#theme-link), or specific CSS overrides + - customisable UI, through simple, pre-defined [themes](#themes), or specific CSS overrides - self-contained -- constructed with HTML/CSS, so no dependance on external UI libraries -**[Explore the Demo](https://carlosnz.github.io/fig-tree-evaluator/)** +**[Explore the Demo](https://carlosnz.github.io/json-edit-react/)** screenshot +- [Installation](#installation) +- [Implementation](#implementation) +- [Usage](#usage) +- [Props overview](#props-overview) +- [Update functions](#update-functions) + - [Copy function](#copy-function) +- [Filter functions](#filter-functions) + - [Examples](#examples) +- [Themes](#themes) + - [Fragments](#fragments) + - [A note about sizing and scaling](#a-note-about-sizing-and-scaling) + - [Icons](#icons) +- [Localisation](#localisation) +- [Undo functionality](#undo-functionality) +- [Issues, suggestions?](#issues-suggestions) +- [Roadmap](#roadmap) +- [Changelog](#changelog) + + ## Installation `npm i json-edit-react` @@ -50,28 +69,267 @@ It's pretty self explanatory (click the "edit" icon to edit, etc.), but there ar The only *required* value is `data`. -| prop | type | default | description | -| ------------------ | ----------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | `object`\|`array` | `{}` | The data to be displayed / edited | -| `rootName` | `string` | `"data"` | The name for the base object to display in the editor | -| `onUpdate` | `Function` | | A function to run every time a value is **updated** (edit, delete *or* add) in the editor. See [Update methods](#update-methods). | -| `onUpdate` | `UpdateMethod` | | A function to run every time a value is **edited**. | -| `onDelete` | `UpdateMethod` | | A function to run every time a value is **deleted**. | -| `onAdd` | `UpdateMethod` | | A function to run every time a new property is **added**. | -| `enableClipboard` | `boolean`\|`CopyMethod` | `true` | Whether or not to enable the "Copy to clipboard" button in the UI. If a Function is provided, `true` is assumed and this function will be run whenever an item is copied. | -| `theme` | `string`\|`ThemeObject` | `"default"` | Either the name of one of the built-in themes, or an object specifying some or all theme properties. See [Themes](#themes). | -| `className` | `string` | | Name of a CSS class to apply to the component. In most cases, specifying `theme` properties will be more straightforward. | -| `icons` | `{[iconName]: JSX.Element, ... }` | `{}` | If you want to replace the built-in icons with your own, specify them here. See [Themes](#themes). | | -| `indent` | `number` | `4` | Specify the amount of indentation for each level of nesting in the data object. | -| `collapse` | `boolean`\|`number`\|`FilterMethod` | `false` | Defines which nodes of the JSON tree will be displayed open in the UI on load. If `boolean`, it'll be either all or none. If a `number` specifies a nesting depth after which nodes will be closed. For more fine control a function can be provided -- See [Filter methods](#filter-methods) | -| `restrictEdit` | `boolean`\|`FilterMethod` | `false` | If `false`, no editing is permitted. A function can be provided for more specificity -- See [Filter methods](#filter-methods) | -| `restrictDelete` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for deletion | -| `restrictAdd` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for adding new properties | -| `keySort` | `boolean`\|`CompareFunction` | `false` | If `true`, object keys will be ordered (using default JS `.sort()`). A [compare function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) can also be provided to define sorting behaviour. | -| `showArrayIndices` | `boolean` | `true` | Whether or not to display numeric indices as keys of Array values. | -| `defaultValue` | `any` | `null` | When a new property is added, it is initialised with this value. | -| `minWidth` | `number`\|`string` (CSS value) | `250` | Minimum width for the editor container. | -| `maxWidth` | `number`\|`string` (CSS value) | `600` | Maximum width for the editor container. | -| `stringTruncate` | `number` | `250` | String values longer than this many characters will be displayed truncated (with `...`). The full string will always be visible when editing. | -| `translations` | `LocalisedStrings` object | {} | UI strings (such as error messages) can be translated by passing an object containing localised string values (there are only a few). See [Localisation](#localisation) | +| prop | type | default | description | +| ------------------ | ------------------------------------------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | `object`\|`array` | `{ }` | The data to be displayed / edited | +| `rootName` | `string` | `"data"` | A name to display in the editor as the root of the data object. | +| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **updated** (edit, delete *or* add) in the editor. See [Update functions](#update-functions). | +| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **edited**. | +| `onDelete` | `UpdateFunction` | | A function to run whenever a value is **deleted**. | +| `onAdd` | `UpdateFunction` | | A function to run whenever a new property is **added**. | +| `enableClipboard` | `boolean`\|`CopyFunction` | `true` | Whether or not to enable the "Copy to clipboard" button in the UI. If a function is provided, `true` is assumed and this function will be run whenever an item is copied. | +| `indent` | `number` | `4` | Specify the amount of indentation for each level of nesting in the displayed data. | +| `collapse` | `boolean`\|`number`\|`FilterFunction` | `false` | Defines which nodes of the JSON tree will be displayed open in the UI on load. If `boolean`, it'll be either all or none. A `number` specifies a nesting depth after which nodes will be closed. For more fine control a function can be provided -- see [Filter functions](#filter-functions). | +| `restrictEdit` | `boolean`\|`FilterMethod` | `false` | If `false`, no editing is permitted. A function can be provided for more specificity -- see [Filter functions](#filter-functions) | +| `restrictDelete` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for deletion | +| `restrictAdd` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for adding new properties | +| `keySort` | `boolean`\|`CompareFunction` | `false` | If `true`, object keys will be ordered (using default JS `.sort()`). A [compare function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) can also be provided to define sorting behaviour. | +| `showArrayIndices` | `boolean` | `true` | Whether or not to display numeric indices as keys of Array values. | +| `defaultValue` | `any` | `null` | When a new property is added, it is initialised with this value. | +| `stringTruncate` | `number` | `250` | String values longer than this many characters will be displayed truncated (with `...`). The full string will always be visible when editing. | +| `translations` | `LocalisedStrings` object | `{ }` | UI strings (such as error messages) can be translated by passing an object containing localised string values (there are only a few). See [Localisation](#localisation) | +| `theme` | `string`\|`ThemeObject`\|`[string, ThemeObject]` | `"default"` | Either the name of one of the built-in themes, or an object specifying some or all theme properties. See [Themes](#themes). | +| `className` | `string` | | Name of a CSS class to apply to the component. In most cases, specifying `theme` properties will be more straightforward. | +| `icons` | `{[iconName]: JSX.Element, ... }` | `{ }` | If you want to replace the built-in icons with your own, specify them here. See [Themes](#themes). | | +| `minWidth` | `number`\|`string` (CSS value) | `250` | Minimum width for the editor container. | +| `maxWidth` | `number`\|`string` (CSS value) | `600` | Maximum width for the editor container. | + +## Update functions + +A callback to be executed whenever a data update (edit, delete or add) occurs can be provided. You might wish to use this to update some state, or make an API call, for example. If you want the same function for all updates, then just the `onUpdate` prop is sufficient. However, should you require something different for editing, deletion and addition, then you can provide separate Update functions via the `onEdit`, `onDelete` and `onAdd` props. + +The function will receive the following object as a parameter: + +```js +{ + newData, // data state after update + currentData, // data state before update + newValue, // the new value of the property being updated + currentValue, // the current value of the property being updated + name, // name of the property being updated + path // full path to the property being updated, as an array of property keys (e.g. [ "user", "friends", 1, "name" ] ) + // (equivalent to "user.friends[1].name") +} +``` + +The function needn't return anything, but if it returns `false`, it will be considered an error, in which case an error message will displayed in the UI and the internal data state won't actually be updated. If the return value is a `string`, this will be the error message displayed. + +### Copy function + +A similar callback is executed whenever an item is copied to the clipboard (if passed to the `enableClipboard` prop), but with a different input parameter: + +```js + key: // name of the property being copied + path: // path to the property + value: // the value copied to the clipboard (Note: this value will be serialised to a string) + type: // Either "path" or "value" depending on whether "Cmd/Ctrl" was pressed +``` + +Since there is very little user feedback on clicking "Copy", a good idea would be to present some kind of notification in this callback. + +## Filter functions + +You can control which nodes of the data structure can be edited, deleted, or added to by passing Filter methods. These will be called on each property in the data and the attribute will be enforced depending on whether the function returns `true` or `false` (`true` means *cannot* be edited). + +The function receives the following object: +```js +{ + key, // name of the property + path, // path to the property (as an array of property keys) + level, // depth of the property (with 0 being the root) + value, // value of the property + size // if a collection (object, array), the number of items (null for non-collections) +} +``` + +A Filter function is available for the `collapse` prop as well, so you can have your data appear with deeply-nested collections opened up, while collapsing everything else, for example. + +### Examples + +- A good case would be ensure your root node is not editable: + +```js +// in props +restrictEdit = { ({ level }) => level === 0 } +``` + +- Don't let the `id` field be edited: + +```js +restrictEdit = { ({ key }) => key === "id" } // You'd probably want to include this in `restrictDelete` as well +``` + +- Only individual properties can be deleted, not objects or arrays: + +```js +restrictDelete = { ({ size }) => size !== null } +``` + +- The only collections that can have new items added are the "address" object and the "users" array: +```js +restrictAdd = { ({ key }) => key !== "address" && key !== "users" } // "Adding" is irrelevant for non-collection nodes +``` + +## Themes + +There are a small selection of built-in themes (as seen in the [Demo app](https://carlosnz.github.io/json-edit-react/)). In order to use one of these, just pass the name into the `theme` prop (although realistically, these are more to showcase the capabilities rather than legitimate use! -- I'm open to better built-in themes, so feel free to [create an issue](https://github.com/CarlosNZ/json-edit-react/issues) with suggestions). The available themes are: +- `default` +- `githubDark` +- `githubLight` +- `monoDark` +- `monoLight` +- `candyWrapper` +- `psychedelic` + +However, you can pass in your own theme object, or part thereof. The theme structure is as follows (this is the "default" theme definition): + +```js +{ + displayName: 'Default', + fragments: { edit: 'rgb(42, 161, 152)' }, + styles: { + container: { + backgroundColor: '#f6f6f6', + fontFamily: 'monospace', + }, + property: '#292929', + bracket: { color: 'rgb(0, 43, 54)', fontWeight: 'bold' }, + itemCount: { color: 'rgba(0, 0, 0, 0.3)', fontStyle: 'italic' }, + string: 'rgb(203, 75, 22)', + number: 'rgb(38, 139, 210)', + boolean: 'green', + null: { color: 'rgb(220, 50, 47)', fontVariant: 'small-caps', fontWeight: 'bold' }, + input: ['#292929', { fontSize: '90%' }], + inputHighlight: '#b3d8ff', + error: { fontSize: '0.8em', color: 'red', fontWeight: 'bold' }, + iconCollection: 'rgb(0, 43, 54)', + iconEdit: 'edit', + iconDelete: 'rgb(203, 75, 22)', + iconAdd: 'edit', + iconCopy: 'rgb(38, 139, 210)', + iconOk: 'green', + iconCancel: 'rgb(203, 75, 22)', + }, +} + +``` + +The `styles` property is the main one to focus on. Each key (`property`, `bracket`, `itemCount`) refers to a part of the UI. The value for each key is *either* a `string`, in which case it is interpreted as the colour (or background colour in the case of `container` and `inputHighlight`), *or* a full CSS style object for fine-grained definition. You only need to provide properties you wish override —— all unspecified ones will fallback to either the default theme, or another theme that you specify as the "base". + +For example, if you want to use the "githubDark" theme, but just change a couple of small things, you'd specify something like this: + +```js +// in props +theme={[ + 'githubDark', + { + iconEdit: 'grey', + boolean: { color: 'red', fontStyle: 'italic', fontWeight: 'bold', fontSize: '80%' }, + }, + ]} +``` + +Which would change the "Edit" icon and boolean values from this: + +![Github Dark theme original](image/theme_edit_before.png) + +into this: + +![Github Dark theme modified](image/theme_edit_after.png) + +Or you could create your own theme from scratch and overwrite the whole theme object. + +So, to summarise, the `theme` prop can take *either*: + +- a theme name e.g. `"candyWrapper"` +- a theme object: + - can be structured as above with `fragments`, `styles`, `displayName` etc., or just the `styles` part (at the root level) +- a theme name *and* an override object in an array, i.e. `[ ", {...overrides }]` + +You can play round with live editing of the themes in the [Demo app](https://carlosnz.github.io/json-edit-react/) by selecting "Edit this theme!" from the "Demo data" selector. +### Fragments + +The `fragments` property above is just convenience to allow repeated style "fragments" to be defined ones and referred to using an alias. For example, if you wanted all your icons to be blue and slightly larger and spaced out, you might define a fragment like so: +```js +fragments: { iconAdjust: { color: "blue", fontSize: "110%", marginRight: "0.6em" }} +``` + +Then in the theme object, just use: +```js +{ + ..., + iconEdit: "iconAdjust", + iconDelete: "iconAdjust", + iconAdd: "iconAdjust", + iconCopy: "iconAdjust", +} +``` + +Then when you want to tweak it later, you only need to update it in one place! + +Fragments can also be mixed with additional properties, and even other fragments, like so: +```js +iconEdit: [ "iconAdjust", "anotherFragment", { marginLeft: "1em" } ] +``` + +### A note about sizing and scaling + +Within the JsonEditor component, all sizing and spacing is done in `em`s, never `px`. This makes scaling a lot easier — just change the font-size of the main container (either via the `className` prop or in the `container` prop of the theme) (or its parent), and watch the *whole* component scale accordingly. + +### Icons + +The default icons can be replaced, but you need to provide them as React/HTML elements. Just define any or all of them within the `icons` prop, keyed as follows: + +```js + icons={{ + add: + edit: + delete: + copy: + ok: + cancel: + chevron: +}} +``` + +The Icon components will need to have their own styles defined, as the theme styles *won't* be added to the custom elements. + +## Localisation + +Localise your implementation by passing in a `translations` object to replace the default strings. The keys and default (English) values are as follows: +```js +{ + ITEM_SINGLE: '{{count}} item', + ITEMS_MULTIPLE: '{{count}} items', + KEY_NEW: 'Enter new key', + ERROR_KEY_EXISTS: 'Key already exists', + ERROR_INVALID_JSON: 'Invalid JSON', + ERROR_UPDATE: 'Update unsuccessful', + ERROR_DELETE: 'Delete unsuccessful', + ERROR_ADD: 'Adding node unsuccessful', +} + +``` + +## Undo functionality + +Even though Undo/Redo functionality is probably important for editing JSON in the browser, this is not built-in to the component, for two main reasons: +- It would involve too much additional UI and I didn't want this component becoming opinionated about how it should look and feel beyond the essentials (which are mostly customisable/style-able anyway) +- It is quite straightforward to implement using existing libraries. I've used **[use-undo](https://github.com/homerchen19/use-undo)** in the [Demo](https://carlosnz.github.io/json-edit-react/), which is working very well. + +## Issues, suggestions? + +Please open an issue: https://github.com/CarlosNZ/json-edit-react/issues + +## Roadmap + +The main features I'd like to introduce are: + +1. **JSON Schema validatio**n. We can currently specify a reasonable degree of control over what can be edited using [Filter functions](#filter-functions) with the restriction props, but I'd like to go a step further and be able to pass in a [JSON Schema](https://json-schema.org/) and have the data be automatically validated against it. This would allow control over data types and prevent missing properties, something that is not currently possible. +2. **Visibility filter function** -- *hide* properties from the UI completely based on a Filter function. This should arguably be done outside the component though (filter the data upstream), so would be less of a priority (though it would be fairly simple to implement, so 🤷‍♂️) +3. **Search** -- allow the user to narrow the list of visible keys with a simple search input. This would be useful for very large data objects, but is possibly getting a bit too much in terms of opinionated UI, so would need to ensure it can be styled easily. Perhaps it would be better if the "Search" input was handled outside this package, and we just accepted a "search" string prop? + + +## Changelog +- **0.9.0**: Initial release \ No newline at end of file diff --git a/image/theme_edit_after.png b/image/theme_edit_after.png new file mode 100644 index 0000000000000000000000000000000000000000..31686123dbcd18d35833be8eb80211e55f7d54fb GIT binary patch literal 6940 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 = ({ }) } - const filterProps = { key: name, path, level: path.length, value: data, size: 1 } + const filterProps = { key: name, path, level: path.length, value: data, size: null } const canEdit = !restrictEditFilter(filterProps) const canDelete = !restrictDeleteFilter(filterProps) diff --git a/src/types.ts b/src/types.ts index 64c8515a..fa9d7ceb 100644 --- a/src/types.ts +++ b/src/types.ts @@ -72,7 +72,7 @@ export type FilterMethod = (input: { path: CollectionKey[] level: number value: unknown - size: number + size: number | null }) => boolean export type CopyType = 'path' | 'value' From 41c8d0b1216508b7b4718521614a37f212278ead Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Mon, 29 May 2023 07:33:52 +1200 Subject: [PATCH 5/9] Memoise "canEdit" etc. --- src/CollectionNode.tsx | 8 ++++---- src/ValueNodeWrapper.tsx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/CollectionNode.tsx b/src/CollectionNode.tsx index fcc8d3af..1c6d244a 100644 --- a/src/CollectionNode.tsx +++ b/src/CollectionNode.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState, useMemo } from 'react' import { ValueNodeWrapper } from './ValueNodeWrapper' import { EditButtons, InputButtons } from './ButtonPanels' import { CollectionNodeProps, ERROR_DISPLAY_TIME, ErrorString } from './types' @@ -108,9 +108,9 @@ export const CollectionNode: React.FC = ({ data, path, name setStringifiedValue(JSON.stringify(data, null, 2)) } - const canEdit = !restrictEditFilter(filterProps) - const canDelete = !restrictDeleteFilter(filterProps) - const canAdd = !restrictAddFilter(filterProps) + const canEdit = useMemo(() => !restrictEditFilter(filterProps), [filterProps]) + const canDelete = useMemo(() => !restrictDeleteFilter(filterProps), [filterProps]) + const canAdd = useMemo(() => !restrictAddFilter(filterProps), [filterProps]) const showLabel = showArrayIndices || !(typeof path.slice(-1)[0] === 'number') diff --git a/src/ValueNodeWrapper.tsx b/src/ValueNodeWrapper.tsx index ad4042c4..c9637330 100644 --- a/src/ValueNodeWrapper.tsx +++ b/src/ValueNodeWrapper.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState, useMemo } from 'react' import { StringValue, NumberValue, @@ -93,8 +93,8 @@ export const ValueNodeWrapper: React.FC = ({ const filterProps = { key: name, path, level: path.length, value: data, size: null } - const canEdit = !restrictEditFilter(filterProps) - const canDelete = !restrictDeleteFilter(filterProps) + const canEdit = useMemo(() => !restrictEditFilter(filterProps), [filterProps]) + const canDelete = useMemo(() => !restrictDeleteFilter(filterProps), [filterProps]) const inputProps = { value, From f7d56dd81fb2e3667a4a1743d16420372ae0e4c9 Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Mon, 29 May 2023 09:32:47 +1200 Subject: [PATCH 6/9] Proof read, small tweaks --- README.md | 101 +++++++++++++++++++++---------------------- demo/src/App.tsx | 8 ++-- src/ButtonPanels.tsx | 8 ++-- src/JsonEditor.tsx | 22 +++++----- src/localisation.ts | 4 +- src/theme/themes.ts | 2 +- src/types.ts | 58 ++++++++++++------------- 7 files changed, 101 insertions(+), 102 deletions(-) diff --git a/README.md b/README.md index 2de5ed23..4d3b8a2e 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,14 @@ screenshot -A React component for editing for viewing JSON/object data - +A [React](https://github.com/facebook/react) component for editing for viewing JSON/object data Features include: - edit individual values, or whole objects as JSON text - fine-grained control over which elements can be edited, deleted, or added to - customisable UI, through simple, pre-defined [themes](#themes), or specific CSS overrides - - self-contained -- constructed with HTML/CSS, so no dependance on external UI libraries + - self-contained — constructed with HTML/CSS, so no dependance on external UI libraries **[Explore the Demo](https://carlosnz.github.io/json-edit-react/)** @@ -30,7 +29,7 @@ Features include: - [Icons](#icons) - [Localisation](#localisation) - [Undo functionality](#undo-functionality) -- [Issues, suggestions?](#issues-suggestions) +- [Issues, bugs, suggestions?](#issues-bugs-suggestions) - [Roadmap](#roadmap) - [Changelog](#changelog) @@ -61,7 +60,7 @@ It's pretty self explanatory (click the "edit" icon to edit, etc.), but there ar - Double-click a value to edit it - When editing a string, use `Cmd/Ctrl/Shift-Enter` to add a new line (`Enter` submits the value) -- It's the opposite when editing a full object/array node (which you do by clicking "edit" on an object or array value) -- `Enter` for new line, and `Cmd/Ctrl/Shift-Enter` for submit +- It's the opposite when editing a full object/array node (which you do by clicking "edit" on an object or array value) — `Enter` for new line, and `Cmd/Ctrl/Shift-Enter` for submit - `Escape` to cancel editing - When clicking the "clipboard" icon, holding down `Cmd/Ctrl` will copy the *path* to the selected node rather than its value @@ -69,30 +68,30 @@ It's pretty self explanatory (click the "edit" icon to edit, etc.), but there ar The only *required* value is `data`. -| prop | type | default | description | -| ------------------ | ------------------------------------------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | `object`\|`array` | `{ }` | The data to be displayed / edited | -| `rootName` | `string` | `"data"` | A name to display in the editor as the root of the data object. | -| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **updated** (edit, delete *or* add) in the editor. See [Update functions](#update-functions). | -| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **edited**. | -| `onDelete` | `UpdateFunction` | | A function to run whenever a value is **deleted**. | -| `onAdd` | `UpdateFunction` | | A function to run whenever a new property is **added**. | -| `enableClipboard` | `boolean`\|`CopyFunction` | `true` | Whether or not to enable the "Copy to clipboard" button in the UI. If a function is provided, `true` is assumed and this function will be run whenever an item is copied. | -| `indent` | `number` | `4` | Specify the amount of indentation for each level of nesting in the displayed data. | -| `collapse` | `boolean`\|`number`\|`FilterFunction` | `false` | Defines which nodes of the JSON tree will be displayed open in the UI on load. If `boolean`, it'll be either all or none. A `number` specifies a nesting depth after which nodes will be closed. For more fine control a function can be provided -- see [Filter functions](#filter-functions). | -| `restrictEdit` | `boolean`\|`FilterMethod` | `false` | If `false`, no editing is permitted. A function can be provided for more specificity -- see [Filter functions](#filter-functions) | -| `restrictDelete` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for deletion | -| `restrictAdd` | `boolean`\|`FilterMethod` | `false` | As with `restrictEdit` but for adding new properties | -| `keySort` | `boolean`\|`CompareFunction` | `false` | If `true`, object keys will be ordered (using default JS `.sort()`). A [compare function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) can also be provided to define sorting behaviour. | -| `showArrayIndices` | `boolean` | `true` | Whether or not to display numeric indices as keys of Array values. | -| `defaultValue` | `any` | `null` | When a new property is added, it is initialised with this value. | -| `stringTruncate` | `number` | `250` | String values longer than this many characters will be displayed truncated (with `...`). The full string will always be visible when editing. | -| `translations` | `LocalisedStrings` object | `{ }` | UI strings (such as error messages) can be translated by passing an object containing localised string values (there are only a few). See [Localisation](#localisation) | -| `theme` | `string`\|`ThemeObject`\|`[string, ThemeObject]` | `"default"` | Either the name of one of the built-in themes, or an object specifying some or all theme properties. See [Themes](#themes). | -| `className` | `string` | | Name of a CSS class to apply to the component. In most cases, specifying `theme` properties will be more straightforward. | -| `icons` | `{[iconName]: JSX.Element, ... }` | `{ }` | If you want to replace the built-in icons with your own, specify them here. See [Themes](#themes). | | -| `minWidth` | `number`\|`string` (CSS value) | `250` | Minimum width for the editor container. | -| `maxWidth` | `number`\|`string` (CSS value) | `600` | Maximum width for the editor container. | +| prop | type | default | description | +| ------------------ | -------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | `object\|array` | | The data to be displayed / edited | +| `rootName` | `string` | `"data"` | A name to display in the editor as the root of the data object. | +| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **updated** (edit, delete *or* add) in the editor. See [Update functions](#update-functions). | +| `onUpdate` | `UpdateFunction` | | A function to run whenever a value is **edited**. | +| `onDelete` | `UpdateFunction` | | A function to run whenever a value is **deleted**. | +| `onAdd` | `UpdateFunction` | | A function to run whenever a new property is **added**. | +| `enableClipboard` | `boolean\|CopyFunction` | `true` | Whether or not to enable the "Copy to clipboard" button in the UI. If a function is provided, `true` is assumed and this function will be run whenever an item is copied. | +| `indent` | `number` | `4` | Specify the amount of indentation for each level of nesting in the displayed data. | +| `collapse` | `boolean\|number\|FilterFunction` | `false` | Defines which nodes of the JSON tree will be displayed "opened" in the UI on load. If `boolean`, it'll be either all or none. A `number` specifies a nesting depth after which nodes will be closed. For more fine control a function can be provided — see [Filter functions](#filter-functions). | +| `restrictEdit` | `boolean\|FilterFunction` | `false` | If `false`, no editing is permitted. A function can be provided for more specificity — see [Filter functions](#filter-functions) | +| `restrictDelete` | `boolean\|FilterFunction` | `false` | As with `restrictEdit` but for deletion | +| `restrictAdd` | `boolean\|FilterFunction` | `false` | As with `restrictEdit` but for adding new properties | +| `keySort` | `boolean\|CompareFunction` | `false` | If `true`, object keys will be ordered (using default JS `.sort()`). A [compare function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) can also be provided to define sorting behaviour. | +| `showArrayIndices` | `boolean` | `true` | Whether or not to display the index (as a property key) for array elements. | +| `defaultValue` | `any` | `null` | When a new property is added, it is initialised with this value. | +| `stringTruncate` | `number` | `250` | String values longer than this many characters will be displayed truncated (with `...`). The full string will always be visible when editing. | +| `translations` | `LocalisedStrings` object | `{ }` | UI strings (such as error messages) can be translated by passing an object containing localised string values (there are only a few). See [Localisation](#localisation) | +| `theme` | `string\|ThemeObject\|[string, ThemeObject]` | `"default"` | Either the name of one of the built-in themes, or an object specifying some or all theme properties. See [Themes](#themes). | +| `className` | `string` | | Name of a CSS class to apply to the component. In most cases, specifying `theme` properties will be more straightforward. | +| `icons` | `{[iconName]: JSX.Element, ... }` | `{ }` | Replace the built-in icons by specifying them here. See [Themes](#themes). | | +| `minWidth` | `number\|string` (CSS value) | `250` | Minimum width for the editor container. | +| `maxWidth` | `number\|string` (CSS value) | `600` | Maximum width for the editor container. | ## Update functions @@ -125,11 +124,11 @@ A similar callback is executed whenever an item is copied to the clipboard (if p type: // Either "path" or "value" depending on whether "Cmd/Ctrl" was pressed ``` -Since there is very little user feedback on clicking "Copy", a good idea would be to present some kind of notification in this callback. +Since there is very little user feedback when clicking "Copy", a good idea would be to present some kind of notification in this callback. ## Filter functions -You can control which nodes of the data structure can be edited, deleted, or added to by passing Filter methods. These will be called on each property in the data and the attribute will be enforced depending on whether the function returns `true` or `false` (`true` means *cannot* be edited). +You can control which nodes of the data structure can be edited, deleted, or added to by passing Filter functions. These will be called on each property in the data and the attribute will be enforced depending on whether the function returns `true` or `false` (`true` means *cannot* be edited). The function receives the following object: ```js @@ -146,7 +145,7 @@ A Filter function is available for the `collapse` prop as well, so you can have ### Examples -- A good case would be ensure your root node is not editable: +- A good case would be ensure your root node is not directly editable: ```js // in props @@ -172,7 +171,7 @@ restrictAdd = { ({ key }) => key !== "address" && key !== "users" } // "Adding" ## Themes -There are a small selection of built-in themes (as seen in the [Demo app](https://carlosnz.github.io/json-edit-react/)). In order to use one of these, just pass the name into the `theme` prop (although realistically, these are more to showcase the capabilities rather than legitimate use! -- I'm open to better built-in themes, so feel free to [create an issue](https://github.com/CarlosNZ/json-edit-react/issues) with suggestions). The available themes are: +There are a small selection of built-in themes (as seen in the [Demo app](https://carlosnz.github.io/json-edit-react/)). In order to use one of these, just pass the name into the `theme` prop (although realistically, these exist more to showcase the capabilities — I'm open to better built-in themes, so feel free to [create an issue](https://github.com/CarlosNZ/json-edit-react/issues) with suggestions). The available themes are: - `default` - `githubDark` - `githubLight` @@ -214,19 +213,19 @@ However, you can pass in your own theme object, or part thereof. The theme struc ``` -The `styles` property is the main one to focus on. Each key (`property`, `bracket`, `itemCount`) refers to a part of the UI. The value for each key is *either* a `string`, in which case it is interpreted as the colour (or background colour in the case of `container` and `inputHighlight`), *or* a full CSS style object for fine-grained definition. You only need to provide properties you wish override —— all unspecified ones will fallback to either the default theme, or another theme that you specify as the "base". +The `styles` property is the main one to focus on. Each key (`property`, `bracket`, `itemCount`) refers to a part of the UI. The value for each key is *either* a `string`, in which case it is interpreted as the colour (or background colour in the case of `container` and `inputHighlight`), *or* a full CSS style object for fine-grained definition. You only need to provide properties you wish to override —— all unspecified ones will fallback to either the default theme, or another theme that you specify as the "base". For example, if you want to use the "githubDark" theme, but just change a couple of small things, you'd specify something like this: ```js // in props theme={[ - 'githubDark', - { - iconEdit: 'grey', - boolean: { color: 'red', fontStyle: 'italic', fontWeight: 'bold', fontSize: '80%' }, - }, - ]} + 'githubDark', + { + iconEdit: 'grey', + boolean: { color: 'red', fontStyle: 'italic', fontWeight: 'bold', fontSize: '80%' }, + }, + ]} ``` Which would change the "Edit" icon and boolean values from this: @@ -244,12 +243,12 @@ So, to summarise, the `theme` prop can take *either*: - a theme name e.g. `"candyWrapper"` - a theme object: - can be structured as above with `fragments`, `styles`, `displayName` etc., or just the `styles` part (at the root level) -- a theme name *and* an override object in an array, i.e. `[ ", {...overrides }]` +- a theme name *and* an override object in an array, i.e. `[ ", {...overrides } ]` You can play round with live editing of the themes in the [Demo app](https://carlosnz.github.io/json-edit-react/) by selecting "Edit this theme!" from the "Demo data" selector. ### Fragments -The `fragments` property above is just convenience to allow repeated style "fragments" to be defined ones and referred to using an alias. For example, if you wanted all your icons to be blue and slightly larger and spaced out, you might define a fragment like so: +The `fragments` property above is just convenience to allow repeated style "fragments" to be defined once and referred to using an alias. For example, if you wanted all your icons to be blue and slightly larger and spaced out, you might define a fragment like so: ```js fragments: { iconAdjust: { color: "blue", fontSize: "110%", marginRight: "0.6em" }} ``` @@ -265,7 +264,7 @@ Then in the theme object, just use: } ``` -Then when you want to tweak it later, you only need to update it in one place! +Then, when you want to tweak it later, you only need to update it in one place! Fragments can also be mixed with additional properties, and even other fragments, like so: ```js @@ -274,7 +273,7 @@ iconEdit: [ "iconAdjust", "anotherFragment", { marginLeft: "1em" } ] ### A note about sizing and scaling -Within the JsonEditor component, all sizing and spacing is done in `em`s, never `px`. This makes scaling a lot easier — just change the font-size of the main container (either via the `className` prop or in the `container` prop of the theme) (or its parent), and watch the *whole* component scale accordingly. +Internally, all sizing and spacing is done in `em`s, never `px`. This makes scaling a lot easier — just change the font-size of the main container (either via the `className` prop or in the `container` prop of the theme) (or its parent), and watch the *whole* component scale accordingly. ### Icons @@ -313,11 +312,11 @@ Localise your implementation by passing in a `translations` object to replace th ## Undo functionality -Even though Undo/Redo functionality is probably important for editing JSON in the browser, this is not built-in to the component, for two main reasons: -- It would involve too much additional UI and I didn't want this component becoming opinionated about how it should look and feel beyond the essentials (which are mostly customisable/style-able anyway) -- It is quite straightforward to implement using existing libraries. I've used **[use-undo](https://github.com/homerchen19/use-undo)** in the [Demo](https://carlosnz.github.io/json-edit-react/), which is working very well. +Even though Undo/Redo functionality is probably desirable in most cases, this is not built in to the component, for two main reasons: +1. It would involve too much additional UI and I didn't want this component becoming opinionated about how it should look and feel beyond the essentials (which are mostly customisable/style-able anyway) +2. It is quite straightforward to implement using existing libraries. I've used **[use-undo](https://github.com/homerchen19/use-undo)** in the [Demo](https://carlosnz.github.io/json-edit-react/), which is working very well. -## Issues, suggestions? +## Issues, bugs, suggestions? Please open an issue: https://github.com/CarlosNZ/json-edit-react/issues @@ -325,9 +324,9 @@ Please open an issue: https://github.com/CarlosNZ/json-edit-react/issues The main features I'd like to introduce are: -1. **JSON Schema validatio**n. We can currently specify a reasonable degree of control over what can be edited using [Filter functions](#filter-functions) with the restriction props, but I'd like to go a step further and be able to pass in a [JSON Schema](https://json-schema.org/) and have the data be automatically validated against it. This would allow control over data types and prevent missing properties, something that is not currently possible. -2. **Visibility filter function** -- *hide* properties from the UI completely based on a Filter function. This should arguably be done outside the component though (filter the data upstream), so would be less of a priority (though it would be fairly simple to implement, so 🤷‍♂️) -3. **Search** -- allow the user to narrow the list of visible keys with a simple search input. This would be useful for very large data objects, but is possibly getting a bit too much in terms of opinionated UI, so would need to ensure it can be styled easily. Perhaps it would be better if the "Search" input was handled outside this package, and we just accepted a "search" string prop? +1. **JSON Schema validation**. We can currently specify a reasonable degree of control over what can be edited using [Filter functions](#filter-functions) with the restriction props, but I'd like to go a step further and be able to pass in a [JSON Schema](https://json-schema.org/) and have the data be automatically validated against it. This would allow control over data types and prevent missing properties, something that is not currently possible. +2. **Visibility filter function** — *hide* properties from the UI completely based on a Filter function. This should arguably be done outside the component though (filter the data upstream), so would be less of a priority (though it would be fairly simple to implement, so 🤷‍♂️) +3. **Search** — allow the user to narrow the list of visible keys with a simple search input. This would be useful for very large data objects, but is possibly getting a bit too much in terms of opinionated UI, so would need to ensure it can be styled easily. Perhaps it would be better if the "Search" input was handled outside this package, and we just accepted a "search" string prop? ## Changelog diff --git a/demo/src/App.tsx b/demo/src/App.tsx index 7fd7413b..b474899e 100644 --- a/demo/src/App.tsx +++ b/demo/src/App.tsx @@ -34,7 +34,7 @@ import { ArrowBackIcon, ArrowForwardIcon } from '@chakra-ui/icons' import demoData from './data' import { useDatabase } from './useDatabase' import './style.css' -import { FilterMethod } from './json-edit-react/src/types' +import { FilterFunction } from './json-edit-react/src/types' function App() { const [selectedData, setSelectedData] = useState('basic') @@ -75,19 +75,19 @@ function App() { } }, [selectedData, reset]) - const restrictEdit: FilterMethod | boolean = (() => { + const restrictEdit: FilterFunction | boolean = (() => { const customRestrictor = demoData[selectedData]?.restrictEdit if (customRestrictor) return (input) => !allowEdit || customRestrictor(input) return !allowEdit })() - const restrictDelete: FilterMethod | boolean = (() => { + const restrictDelete: FilterFunction | boolean = (() => { const customRestrictor = demoData[selectedData]?.restrictDelete if (customRestrictor) return (input) => !allowDelete || customRestrictor(input) return !allowDelete })() - const restrictAdd: FilterMethod | boolean = (() => { + const restrictAdd: FilterFunction | boolean = (() => { const customRestrictor = demoData[selectedData]?.restrictAdd if (customRestrictor) return (input) => !allowAdd || customRestrictor(input) return !allowAdd diff --git a/src/ButtonPanels.tsx b/src/ButtonPanels.tsx index 16358d76..f743d802 100644 --- a/src/ButtonPanels.tsx +++ b/src/ButtonPanels.tsx @@ -1,20 +1,20 @@ import React, { useEffect, useState } from 'react' import { Icon } from './Icons' import { useTheme } from './theme' -import { TranslateMethod } from './localisation' -import { CollectionDataType, CollectionKey, CopyMethod, CopyType } from './types' +import { TranslateFunction } from './localisation' +import { CollectionDataType, CollectionKey, CopyFunction, CopyType } from './types' import './style.css' interface EditButtonProps { startEdit?: () => void handleDelete?: () => void - enableClipboard: boolean | CopyMethod + enableClipboard: boolean | CopyFunction handleAdd?: (newKey: string) => void type?: CollectionDataType data: unknown path: CollectionKey[] name: CollectionKey - translate: TranslateMethod + translate: TranslateFunction } export const EditButtons: React.FC = ({ diff --git a/src/JsonEditor.tsx b/src/JsonEditor.tsx index e8c834ce..cc1dca34 100644 --- a/src/JsonEditor.tsx +++ b/src/JsonEditor.tsx @@ -4,9 +4,9 @@ import extract from 'object-property-extractor' import clone from 'just-clone' import { useWindowSize } from '@react-hookz/web' import { CollectionNode, isCollection } from './CollectionNode' -import { CollectionData, JsonEditorProps, FilterMethod, OnChangeMethod } from './types' +import { CollectionData, JsonEditorProps, FilterFunction, OnChangeFunction } from './types' import { useTheme, ThemeProvider } from './theme' -import { getTranslateMethod } from './localisation' +import { getTranslateFunction } from './localisation' import './style.css' const Editor: React.FC = ({ @@ -36,8 +36,8 @@ const Editor: React.FC = ({ }) => { const [data, setData] = useState(srcData) const { styles, setTheme, setIcons } = useTheme() - const collapseFilter = useCallback(getFilterMethod(collapse), [collapse]) - const translate = useCallback(getTranslateMethod(translations), [translations]) + const collapseFilter = useCallback(getFilterFunction(collapse), [collapse]) + const translate = useCallback(getTranslateFunction(translations), [translations]) useEffect(() => { setData(srcData) @@ -52,7 +52,7 @@ const Editor: React.FC = ({ // So component can't overflow the current viewport const maximumWidth = Math.min(maxWidth, width - 10) - const onEdit: OnChangeMethod = async (value, path) => { + const onEdit: OnChangeFunction = async (value, path) => { const { currentData, newData, currentValue, newValue } = updateDataObject( data, path, @@ -74,7 +74,7 @@ const Editor: React.FC = ({ } else setData(newData) } - const onDelete: OnChangeMethod = async (value, path) => { + const onDelete: OnChangeFunction = async (value, path) => { const { currentData, newData, currentValue, newValue } = updateDataObject( data, path, @@ -96,7 +96,7 @@ const Editor: React.FC = ({ } else setData(newData) } - const onAdd: OnChangeMethod = async (value, path) => { + const onAdd: OnChangeFunction = async (value, path) => { const { currentData, newData, currentValue, newValue } = updateDataObject( data, path, @@ -118,9 +118,9 @@ const Editor: React.FC = ({ } else setData(newData) } - const restrictEditFilter = getFilterMethod(restrictEdit) - const restrictDeleteFilter = getFilterMethod(restrictDelete) - const restrictAddFilter = getFilterMethod(restrictAdd) + const restrictEditFilter = getFilterFunction(restrictEdit) + const restrictDeleteFilter = getFilterFunction(restrictDelete) + const restrictAddFilter = getFilterFunction(restrictAdd) const otherProps = { name: rootName, @@ -184,7 +184,7 @@ const updateDataObject = ( } } -const getFilterMethod = (propValue: boolean | number | FilterMethod): FilterMethod => { +const getFilterFunction = (propValue: boolean | number | FilterFunction): FilterFunction => { if (typeof propValue === 'boolean') return () => propValue if (typeof propValue === 'number') return ({ level }) => level >= propValue return propValue diff --git a/src/localisation.ts b/src/localisation.ts index 990be5ea..b1099ae2 100644 --- a/src/localisation.ts +++ b/src/localisation.ts @@ -10,7 +10,7 @@ const localisedStrings = { } export type LocalisedStrings = typeof localisedStrings -export type TranslateMethod = (key: keyof LocalisedStrings, count?: number) => string +export type TranslateFunction = (key: keyof LocalisedStrings, count?: number) => string const translate = ( translations: Partial, @@ -21,6 +21,6 @@ const translate = ( return count === undefined ? string : string?.replace('{{count}}', String(count)) } -export const getTranslateMethod = +export const getTranslateFunction = (translations: Partial) => (key: keyof LocalisedStrings, count?: number) => translate(translations, key, count) diff --git a/src/theme/themes.ts b/src/theme/themes.ts index 7532f6c6..142b6470 100644 --- a/src/theme/themes.ts +++ b/src/theme/themes.ts @@ -295,7 +295,7 @@ export type CompiledStyles = Record export type ThemeName = keyof typeof themes -// Value(s) passed to "setTheme" method +// Value(s) passed to "setTheme" function export type ThemeInput = | ThemeName | Theme diff --git a/src/types.ts b/src/types.ts index fa9d7ceb..93eacd2d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,5 +1,5 @@ import { ThemeInput } from './theme' -import { LocalisedStrings, TranslateMethod } from './localisation' +import { LocalisedStrings, TranslateFunction } from './localisation' import React from 'react' export const ERROR_DISPLAY_TIME = 2500 // ms @@ -8,22 +8,22 @@ export interface JsonEditorProps { data: object // schema?: object rootName?: string - onUpdate?: UpdateMethod - onEdit?: UpdateMethod - onDelete?: UpdateMethod - onAdd?: UpdateMethod - enableClipboard?: boolean | CopyMethod + onUpdate?: UpdateFunction + onEdit?: UpdateFunction + onDelete?: UpdateFunction + onAdd?: UpdateFunction + enableClipboard?: boolean | CopyFunction theme?: ThemeInput icons?: IconReplacements className?: string indent?: number - collapse?: boolean | number | FilterMethod - // showCount?: boolean | FilterMethod - restrictEdit?: boolean | FilterMethod - restrictDelete?: boolean | FilterMethod - restrictAdd?: boolean | FilterMethod - restrictKeyEdit?: boolean | FilterMethod - keySort?: boolean | CompareMethod + collapse?: boolean | number | FilterFunction + // showCount?: boolean | FilterFunction + restrictEdit?: boolean | FilterFunction + restrictDelete?: boolean | FilterFunction + restrictAdd?: boolean | FilterFunction + restrictKeyEdit?: boolean | FilterFunction + keySort?: boolean | CompareFunction showArrayIndices?: boolean defaultValue?: unknown minWidth?: string | number @@ -55,10 +55,10 @@ export interface IconReplacements { } /** - * METHODS + * FUNCTIONS */ -export type UpdateMethod = (props: { +export type UpdateFunction = (props: { newData: object currentData: object newValue: unknown @@ -67,7 +67,7 @@ export type UpdateMethod = (props: { path: CollectionKey[] }) => void | ErrorString | false -export type FilterMethod = (input: { +export type FilterFunction = (input: { key: CollectionKey path: CollectionKey[] level: number @@ -76,17 +76,17 @@ export type FilterMethod = (input: { }) => boolean export type CopyType = 'path' | 'value' -export type CopyMethod = (input: { +export type CopyFunction = (input: { key: CollectionKey path: CollectionKey[] value: unknown type: CopyType }) => void -export type CompareMethod = (a: string, b: string) => number +export type CompareFunction = (a: string, b: string) => number // Internal update -export type OnChangeMethod = (value: unknown, path: (string | number)[]) => Promise +export type OnChangeFunction = (value: unknown, path: (string | number)[]) => Promise /** * NODES @@ -96,23 +96,23 @@ interface BaseNodeProps { data: unknown path: CollectionKey[] name: CollectionKey - onEdit: OnChangeMethod - onDelete: OnChangeMethod - enableClipboard: boolean | CopyMethod - restrictEditFilter: FilterMethod - restrictDeleteFilter: FilterMethod - restrictAddFilter: FilterMethod + onEdit: OnChangeFunction + onDelete: OnChangeFunction + enableClipboard: boolean | CopyFunction + restrictEditFilter: FilterFunction + restrictDeleteFilter: FilterFunction + restrictAddFilter: FilterFunction showArrayIndices: boolean stringTruncate: number indent: number - translate: TranslateMethod + translate: TranslateFunction } export interface CollectionNodeProps extends BaseNodeProps { data: CollectionData - collapseFilter: FilterMethod - onAdd: OnChangeMethod - keySort: boolean | CompareMethod + collapseFilter: FilterFunction + onAdd: OnChangeFunction + keySort: boolean | CompareFunction defaultValue: unknown } From e9ff9b6e1a902ebcfcd3dbd89a48ae67709d59f8 Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Mon, 29 May 2023 11:19:11 +1200 Subject: [PATCH 7/9] Delete logo_500.png --- demo/src/image/logo_500.png | Bin 11189 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 demo/src/image/logo_500.png diff --git a/demo/src/image/logo_500.png b/demo/src/image/logo_500.png deleted file mode 100644 index 7380f358d7541c3360221751d12728a0703be43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11189 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 Date: Mon, 29 May 2023 14:08:46 +1200 Subject: [PATCH 8/9] Rename some variables, improve Readme --- README.md | 6 +++--- demo/src/App.tsx | 20 ++++++++++---------- demo/src/data.tsx | 4 ++-- demo/src/useDatabase.ts | 8 ++++---- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4d3b8a2e..7b944c11 100644 --- a/README.md +++ b/README.md @@ -313,8 +313,8 @@ Localise your implementation by passing in a `translations` object to replace th ## Undo functionality Even though Undo/Redo functionality is probably desirable in most cases, this is not built in to the component, for two main reasons: -1. It would involve too much additional UI and I didn't want this component becoming opinionated about how it should look and feel beyond the essentials (which are mostly customisable/style-able anyway) -2. It is quite straightforward to implement using existing libraries. I've used **[use-undo](https://github.com/homerchen19/use-undo)** in the [Demo](https://carlosnz.github.io/json-edit-react/), which is working very well. +1. It would involve too much additional UI and I didn't want this component becoming opinionated about the look and feel beyond the essentials (which are mostly customisable/style-able anyway) +2. It is quite straightforward to implement using existing libraries. I've used **[use-undo](https://github.com/homerchen19/use-undo)** in the [Demo](https://carlosnz.github.io/json-edit-react/), which is working well. ## Issues, bugs, suggestions? @@ -324,7 +324,7 @@ Please open an issue: https://github.com/CarlosNZ/json-edit-react/issues The main features I'd like to introduce are: -1. **JSON Schema validation**. We can currently specify a reasonable degree of control over what can be edited using [Filter functions](#filter-functions) with the restriction props, but I'd like to go a step further and be able to pass in a [JSON Schema](https://json-schema.org/) and have the data be automatically validated against it. This would allow control over data types and prevent missing properties, something that is not currently possible. +1. **JSON Schema validation**. We can currently specify a reasonable degree of control over what can be edited using [Filter functions](#filter-functions) with the restriction props, but I'd like to go a step further and be able to pass in a [JSON Schema](https://json-schema.org/) and have the data be automatically validated against it, with the results reflected in the UI. This would allow control over data types and prevent missing properties, something that is not currently possible. 2. **Visibility filter function** — *hide* properties from the UI completely based on a Filter function. This should arguably be done outside the component though (filter the data upstream), so would be less of a priority (though it would be fairly simple to implement, so 🤷‍♂️) 3. **Search** — allow the user to narrow the list of visible keys with a simple search input. This would be useful for very large data objects, but is possibly getting a bit too much in terms of opinionated UI, so would need to ensure it can be styled easily. Perhaps it would be better if the "Search" input was handled outside this package, and we just accepted a "search" string prop? diff --git a/demo/src/App.tsx b/demo/src/App.tsx index b474899e..2f2ba158 100644 --- a/demo/src/App.tsx +++ b/demo/src/App.tsx @@ -53,7 +53,7 @@ function App() { const previousThemeName = useRef('') // Used when resetting after theme editing const toast = useToast() - const { guestbook, updateGuestbook } = useDatabase() + const { liveData, updateLiveData } = useDatabase() const [{ present: data }, { set: setData, reset, undo, redo, canUndo, canRedo }] = useUndo( demoData[selectedData].data @@ -63,10 +63,10 @@ function App() { switch (selectedData) { case 'editTheme': return - case 'liveGuestbook': - setCollapseLevel(demoData.liveGuestbook.collapse) - if (!guestbook) reset({ 'Oops!': "We couldn't load this data, sorry " }) - else reset(guestbook) + case 'liveData': + setCollapseLevel(demoData.liveData.collapse) + if (!liveData) reset({ 'Oops!': "We couldn't load this data, sorry " }) + else reset(liveData) return default: const newData = demoData[selectedData] @@ -115,9 +115,9 @@ function App() { case 'editTheme': reset(themes[previousThemeName.current]) return - case 'liveGuestbook': + case 'liveData': setIsSaving(true) - await updateGuestbook(data) + await updateLiveData(data) setIsSaving(false) toast({ title: 'Whoosh!', @@ -126,7 +126,7 @@ function App() { duration: 5000, isClosable: true, }) - console.log(guestbook) + console.log(liveData) reset(data) return default: @@ -239,13 +239,13 @@ function App() { diff --git a/demo/src/data.tsx b/demo/src/data.tsx index d287c496..c3ae211e 100644 --- a/demo/src/data.tsx +++ b/demo/src/data.tsx @@ -1768,8 +1768,8 @@ const data = { 'editor.formatOnSave': true, }, }, - liveGuestbook: { - name: '📖 Live Guestbook', + liveData: { + name: '📖 Live Data (from database)', description: ( Let's try a little experiment. You can save this JSON object to a live database, so feel diff --git a/demo/src/useDatabase.ts b/demo/src/useDatabase.ts index e3151af4..e6446423 100644 --- a/demo/src/useDatabase.ts +++ b/demo/src/useDatabase.ts @@ -9,12 +9,12 @@ const db = getFirestore(firebaseApp) export const useDatabase = () => { const [value, loading, error] = useDocument( - doc(getFirestore(firebaseApp), 'json-edit-react', 'guestbook') + doc(getFirestore(firebaseApp), 'json-edit-react', 'live_json_data') ) - const updateGuestbook = async (data) => { - await setDoc(doc(db, 'json-edit-react', 'guestbook'), data, { merge: true }) + const updateLiveData = async (data) => { + await setDoc(doc(db, 'json-edit-react', 'live_json_data'), data, { merge: true }) } - return { guestbook: value?.data(), loading, error, updateGuestbook } + return { liveData: value?.data(), loading, error, updateLiveData } } From ae276250340542b4968de405336119cbd2d8e77c Mon Sep 17 00:00:00 2001 From: Carl Smith <5456533+CarlosNZ@users.noreply.github.com> Date: Mon, 29 May 2023 16:44:09 +1200 Subject: [PATCH 9/9] Final tweaks to docs --- README.md | 32 ++++++++++++++++---------------- package.json | 3 +-- src/JsonEditor.tsx | 7 +------ yarn.lock | 12 ------------ 4 files changed, 18 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 7b944c11..a49b23e0 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ screenshot -A [React](https://github.com/facebook/react) component for editing for viewing JSON/object data +A [React](https://github.com/facebook/react) component for editing or viewing JSON/object data Features include: @@ -48,7 +48,7 @@ or import { JsonEditor } from 'json-edit-react' // In your React components: - + ``` @@ -106,12 +106,12 @@ The function will receive the following object as a parameter: newValue, // the new value of the property being updated currentValue, // the current value of the property being updated name, // name of the property being updated - path // full path to the property being updated, as an array of property keys (e.g. [ "user", "friends", 1, "name" ] ) - // (equivalent to "user.friends[1].name") + path // full path to the property being updated, as an array of property keys + // (e.g. [ "user", "friends", 1, "name" ] ) (equivalent to "user.friends[1].name") } ``` -The function needn't return anything, but if it returns `false`, it will be considered an error, in which case an error message will displayed in the UI and the internal data state won't actually be updated. If the return value is a `string`, this will be the error message displayed. +The function needn't return anything, but if it returns `false`, it will be considered an error, in which case an error message will displayed in the UI and the internal data state won't actually be updated. If the return value is a `string`, this will be the error message displayed (i.e. you can define your own error messages for updates). ### Copy function @@ -155,7 +155,8 @@ restrictEdit = { ({ level }) => level === 0 } - Don't let the `id` field be edited: ```js -restrictEdit = { ({ key }) => key === "id" } // You'd probably want to include this in `restrictDelete` as well +restrictEdit = { ({ key }) => key === "id" } +// You'd probably want to include this in `restrictDelete` as well ``` - Only individual properties can be deleted, not objects or arrays: @@ -166,12 +167,13 @@ restrictDelete = { ({ size }) => size !== null } - The only collections that can have new items added are the "address" object and the "users" array: ```js -restrictAdd = { ({ key }) => key !== "address" && key !== "users" } // "Adding" is irrelevant for non-collection nodes +restrictAdd = { ({ key }) => key !== "address" && key !== "users" } +// "Adding" is irrelevant for non-collection nodes ``` ## Themes -There are a small selection of built-in themes (as seen in the [Demo app](https://carlosnz.github.io/json-edit-react/)). In order to use one of these, just pass the name into the `theme` prop (although realistically, these exist more to showcase the capabilities — I'm open to better built-in themes, so feel free to [create an issue](https://github.com/CarlosNZ/json-edit-react/issues) with suggestions). The available themes are: +There is a small selection of built-in themes (as seen in the [Demo app](https://carlosnz.github.io/json-edit-react/)). In order to use one of these, just pass the name into the `theme` prop (although realistically, these exist more to showcase the capabilities — I'm open to better built-in themes, so feel free to [create an issue](https://github.com/CarlosNZ/json-edit-react/issues) with suggestions). The available themes are: - `default` - `githubDark` - `githubLight` @@ -228,13 +230,10 @@ theme={[ ]} ``` -Which would change the "Edit" icon and boolean values from this: - -![Github Dark theme original](image/theme_edit_before.png) - -into this: - -![Github Dark theme modified](image/theme_edit_after.png) +Which would change the "Edit" icon and boolean values from this: +Github Dark theme original +into this: +Github Dark theme modified Or you could create your own theme from scratch and overwrite the whole theme object. @@ -246,9 +245,10 @@ So, to summarise, the `theme` prop can take *either*: - a theme name *and* an override object in an array, i.e. `[ ", {...overrides } ]` You can play round with live editing of the themes in the [Demo app](https://carlosnz.github.io/json-edit-react/) by selecting "Edit this theme!" from the "Demo data" selector. + ### Fragments -The `fragments` property above is just convenience to allow repeated style "fragments" to be defined once and referred to using an alias. For example, if you wanted all your icons to be blue and slightly larger and spaced out, you might define a fragment like so: +The `fragments` property above is just a convenience to allow repeated style "fragments" to be defined once and referred to using an alias. For example, if you wanted all your icons to be blue and slightly larger and spaced out, you might define a fragment like so: ```js fragments: { iconAdjust: { color: "blue", fontSize: "110%", marginRight: "0.6em" }} ``` diff --git a/package.json b/package.json index 3487f220..cd9f345d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "json-edit-react", "version": "0.9.0", - "description": "React component for editing/viewing JSON/object data", + "description": "React component for editing or viewing JSON/object data", "main": "build/index.cjs.js", "module": "build/index.esm.js", "types": "build/index.d.ts", @@ -23,7 +23,6 @@ "react-dom": "^18.2.0" }, "dependencies": { - "@react-hookz/web": "^23.0.0", "just-clone": "^6.2.0", "object-property-assigner": "^1.0.1", "object-property-extractor": "^1.0.6", diff --git a/src/JsonEditor.tsx b/src/JsonEditor.tsx index cc1dca34..3c93fcbf 100644 --- a/src/JsonEditor.tsx +++ b/src/JsonEditor.tsx @@ -2,7 +2,6 @@ import React, { useCallback, useEffect, useState } from 'react' import assign from 'object-property-assigner' import extract from 'object-property-extractor' import clone from 'just-clone' -import { useWindowSize } from '@react-hookz/web' import { CollectionNode, isCollection } from './CollectionNode' import { CollectionData, JsonEditorProps, FilterFunction, OnChangeFunction } from './types' import { useTheme, ThemeProvider } from './theme' @@ -48,10 +47,6 @@ const Editor: React.FC = ({ if (icons) setIcons(icons) }, [theme, icons]) - const { width } = useWindowSize() - // So component can't overflow the current viewport - const maximumWidth = Math.min(maxWidth, width - 10) - const onEdit: OnChangeFunction = async (value, path) => { const { currentData, newData, currentValue, newValue } = updateDataObject( data, @@ -145,7 +140,7 @@ const Editor: React.FC = ({ return (
{isCollection(data) && }
diff --git a/yarn.lock b/yarn.lock index 796cf99b..1690bbaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -105,18 +105,6 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@react-hookz/deep-equal@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@react-hookz/deep-equal/-/deep-equal-1.0.4.tgz#68a71f36cbc88724b3ce6f4036183778b6e7f282" - integrity sha512-N56fTrAPUDz/R423pag+n6TXWbvlBZDtTehaGFjK0InmN+V2OFWLE/WmORhmn6Ce7dlwH5+tQN1LJFw3ngTJVg== - -"@react-hookz/web@^23.0.0": - version "23.0.0" - resolved "https://registry.yarnpkg.com/@react-hookz/web/-/web-23.0.0.tgz#d0470de7f9ec4f6eaedd2c13b9fb474d8f3a0d09" - integrity sha512-diBtlo17CJtZJ/Yb8veri7hZL7QPnqNZ+IAMHWWSb//nq+Z3XDHaXcozH7cyvMZj4gYwQeY/L/H4298etHxu1Q== - dependencies: - "@react-hookz/deep-equal" "^1.0.4" - "@rollup/plugin-typescript@^11.1.1": version "11.1.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz#258663a7aa6b51390dd39ae6e5502f2c4b2807cb"

TCvzy^~KiX=VsRlG>J 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 z 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