From ec96873f6a2e0122ba10f47075b7d355bcca48b5 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Tue, 23 Jan 2018 23:31:44 -0500 Subject: [PATCH 1/4] fix #2233 - smoothed coloring and hover data for nonuniform bricks --- src/traces/heatmap/calc.js | 20 ++- src/traces/heatmap/hover.js | 40 +++--- src/traces/heatmap/plot.js | 125 +++++++++++------- .../heatmap_contour_irregular_bricks.png | Bin 0 -> 86886 bytes .../heatmap_contour_irregular_bricks.json | 32 +++++ test/jasmine/tests/heatmap_test.js | 43 +++++- 6 files changed, 182 insertions(+), 78 deletions(-) create mode 100644 test/image/baselines/heatmap_contour_irregular_bricks.png create mode 100644 test/image/mocks/heatmap_contour_irregular_bricks.json diff --git a/src/traces/heatmap/calc.js b/src/traces/heatmap/calc.js index c3b21f96070..ca8bba0e20c 100644 --- a/src/traces/heatmap/calc.js +++ b/src/traces/heatmap/calc.js @@ -115,11 +115,11 @@ module.exports = function calc(gd, trace) { } // create arrays of brick boundaries, to be used by autorange and heatmap.plot - var xlen = maxRowLength(z), - xIn = trace.xtype === 'scaled' ? '' : x, - xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa), - yIn = trace.ytype === 'scaled' ? '' : y, - yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya); + var xlen = maxRowLength(z); + var xIn = trace.xtype === 'scaled' ? '' : x; + var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa); + var yIn = trace.ytype === 'scaled' ? '' : y; + var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya); // handled in gl2d convert step if(!isGL2D) { @@ -127,7 +127,15 @@ module.exports = function calc(gd, trace) { Axes.expand(ya, yArray); } - var cd0 = {x: xArray, y: yArray, z: z, text: trace.text}; + var cd0 = { + x: xArray, + y: yArray, + z: z, + text: trace.text + }; + + if(xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn; + if(yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn; if(isHist) { cd0.xRanges = binned.xRanges; diff --git a/src/traces/heatmap/hover.js b/src/traces/heatmap/hover.js index 704c93a3718..7fc667616ac 100644 --- a/src/traces/heatmap/hover.js +++ b/src/traces/heatmap/hover.js @@ -19,22 +19,22 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay // never let a heatmap override another type as closest point if(pointData.distance < MAXDIST) return; - var cd0 = pointData.cd[0], - trace = cd0.trace, - xa = pointData.xa, - ya = pointData.ya, - x = cd0.x, - y = cd0.y, - z = cd0.z, - zmask = cd0.zmask, - range = [trace.zmin, trace.zmax], - zhoverformat = trace.zhoverformat, - x2 = x, - y2 = y, - xl, - yl, - nx, - ny; + var cd0 = pointData.cd[0]; + var trace = cd0.trace; + var xa = pointData.xa; + var ya = pointData.ya; + var x = cd0.x; + var y = cd0.y; + var z = cd0.z; + var xc = cd0.xCenter; + var yc = cd0.yCenter; + var zmask = cd0.zmask; + var range = [trace.zmin, trace.zmax]; + var zhoverformat = trace.zhoverformat; + var x2 = x; + var y2 = y; + + var xl, yl, nx, ny; if(pointData.index !== false) { try { @@ -86,11 +86,11 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay yl = y[ny]; } else { - xl = (x[nx] + x[nx + 1]) / 2; - yl = (y[ny] + y[ny + 1]) / 2; + xl = xc ? xc[nx] : ((x[nx] + x[nx + 1]) / 2); + yl = yc ? yc[ny] : ((y[ny] + y[ny + 1]) / 2); if(trace.zsmooth) { - x0 = x1 = (x0 + x1) / 2; - y0 = y1 = (y0 + y1) / 2; + x0 = x1 = xa.c2p(xl); + y0 = y1 = ya.c2p(yl); } } diff --git a/src/traces/heatmap/plot.js b/src/traces/heatmap/plot.js index df8585c90e7..7f0640869ed 100644 --- a/src/traces/heatmap/plot.js +++ b/src/traces/heatmap/plot.js @@ -25,14 +25,14 @@ module.exports = function(gd, plotinfo, cdheatmaps) { } }; -// From http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/ function plotOne(gd, plotinfo, cd) { - var trace = cd[0].trace, - uid = trace.uid, - xa = plotinfo.xaxis, - ya = plotinfo.yaxis, - fullLayout = gd._fullLayout, - id = 'hm' + uid; + var cd0 = cd[0]; + var trace = cd0.trace; + var uid = trace.uid; + var xa = plotinfo.xaxis; + var ya = plotinfo.yaxis; + var fullLayout = gd._fullLayout; + var id = 'hm' + uid; // in case this used to be a contour map fullLayout._paper.selectAll('.contour' + uid).remove(); @@ -45,23 +45,21 @@ function plotOne(gd, plotinfo, cd) { return; } - var z = cd[0].z, - x = cd[0].x, - y = cd[0].y, - isContour = Registry.traceIs(trace, 'contour'), - zsmooth = isContour ? 'best' : trace.zsmooth, - - // get z dims - m = z.length, - n = maxRowLength(z), - xrev = false, - left, - right, - temp, - yrev = false, - top, - bottom, - i; + var z = cd0.z; + var x = cd0.x; + var y = cd0.y; + var xc = cd0.xCenter; + var yc = cd0.yCenter; + var isContour = Registry.traceIs(trace, 'contour'); + var zsmooth = isContour ? 'best' : trace.zsmooth; + + // get z dims + var m = z.length; + var n = maxRowLength(z); + var xrev = false; + var yrev = false; + + var left, right, temp, top, bottom, i; // TODO: if there are multiple overlapping categorical heatmaps, // or if we allow category sorting, then the categories may not be @@ -113,11 +111,10 @@ function plotOne(gd, plotinfo, cd) { // for contours with heatmap fill, we generate the boundaries based on // brick centers but then use the brick edges for drawing the bricks if(isContour) { - // TODO: for 'best' smoothing, we really should use the given brick - // centers as well as brick bounds in calculating values, in case of - // nonuniform brick sizes - x = cd[0].xfill; - y = cd[0].yfill; + xc = x; + yc = y; + x = cd0.xfill; + y = cd0.yfill; } // make an image that goes at most half a screen off either side, to keep @@ -201,15 +198,15 @@ function plotOne(gd, plotinfo, cd) { // get interpolated bin value. Returns {bin0:closest bin, frac:fractional dist to next, bin1:next bin} function findInterp(pixel, pixArray) { - var maxbin = pixArray.length - 2, - bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxbin), - pix0 = pixArray[bin], - pix1 = pixArray[bin + 1], - interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxbin), - bin0 = Math.round(interp), - frac = Math.abs(interp - bin0); - - if(!interp || interp === maxbin || !frac) { + var maxBin = pixArray.length - 2; + var bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxBin); + var pix0 = pixArray[bin]; + var pix1 = pixArray[bin + 1]; + var interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxBin); + var bin0 = Math.round(interp); + var frac = Math.abs(interp - bin0); + + if(!interp || interp === maxBin || !frac) { return { bin0: bin0, bin1: bin0, @@ -223,6 +220,36 @@ function plotOne(gd, plotinfo, cd) { }; } + function findInterpFromCenters(pixel, centerPixArray) { + // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0}; + var maxBin = centerPixArray.length - 1; + // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0}; + + var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin); + var pix0 = centerPixArray[bin]; + var pix1 = centerPixArray[bin + 1]; + var frac = ((pixel - pix0) / (pix1 - pix0)) || 0; + if(frac <= 0) { + return { + bin0: bin, + bin1: bin, + frac: 0 + }; + } + if(frac < 0.5) { + return { + bin0: bin, + bin1: bin + 1, + frac: frac + }; + } + return { + bin0: bin + 1, + bin1: bin, + frac: 1 - frac + }; + } + // build the pixel map brick-by-brick // cruise through z-matrix row-by-row // build a brick at each z-matrix value @@ -303,24 +330,26 @@ function plotOne(gd, plotinfo, cd) { } if(zsmooth === 'best') { - var xPixArray = new Array(x.length), - yPixArray = new Array(y.length), - xinterpArray = new Array(imageWidth), - yinterp, - r0, - r1; + var xForPx = xc || x; + var yForPx = yc || y; + var xPixArray = new Array(xForPx.length); + var yPixArray = new Array(yForPx.length); + var xinterpArray = new Array(imageWidth); + var findInterpX = xc ? findInterpFromCenters : findInterp; + var findInterpY = yc ? findInterpFromCenters : findInterp; + var yinterp, r0, r1; // first make arrays of x and y pixel locations of brick boundaries - for(i = 0; i < x.length; i++) xPixArray[i] = Math.round(xa.c2p(x[i]) - left); - for(i = 0; i < y.length; i++) yPixArray[i] = Math.round(ya.c2p(y[i]) - top); + for(i = 0; i < xForPx.length; i++) xPixArray[i] = Math.round(xa.c2p(xForPx[i]) - left); + for(i = 0; i < yForPx.length; i++) yPixArray[i] = Math.round(ya.c2p(yForPx[i]) - top); // then make arrays of interpolations // (bin0=closest, bin1=next, frac=fractional dist.) - for(i = 0; i < imageWidth; i++) xinterpArray[i] = findInterp(i, xPixArray); + for(i = 0; i < imageWidth; i++) xinterpArray[i] = findInterpX(i, xPixArray); // now do the interpolations and fill the png for(j = 0; j < imageHeight; j++) { - yinterp = findInterp(j, yPixArray); + yinterp = findInterpY(j, yPixArray); r0 = z[yinterp.bin0]; r1 = z[yinterp.bin1]; for(i = 0; i < imageWidth; i++, pxIndex += 4) { diff --git a/test/image/baselines/heatmap_contour_irregular_bricks.png b/test/image/baselines/heatmap_contour_irregular_bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..84a3a9ccb85d57599370d2403d65c84898580998 GIT binary patch literal 86886 zcmeFZbyr-?(=NP+!Ck}PgL@c)1|1|w2oAyBJ-EXV+zCkt5Zon5f(3#@fIxyWs7r@#!|E-lv>NE!K&BeS*pfw zbJul*_59vBoB1YOL2d!=K`5&*U_2wlv?7&rbyG`8y5HE@-t4{(n0LqQt=eDbqiLCGnx5!rfTv zG8F!YF8+3f3SXo6PyPHeSV#st6iDVPU6=j8x`F}>L;s<&|CVL#1qhUsp~%fj{2!|R zuX%$AebN6fy+Lh|s$P3x|MboO(f)sTg?t{5i!FM|z z$3IxTUAHt0o3H~ezAZA(eVlb^6Q5^T`sBOheh-yYR44;X(q98mlkRRVMDvdhQ?U>Q*WEU) z!4?*bM()1^PIpWmng#%-6a7FR=C!;%jg8AcLT!qySw7~2k6->b8if=f@j>x9%Wp+e z1!K@eN6?m%N#1)-olzy87TIs!2SvFuk)w4}#!9_3-We~aPlhB9!u-akrZg25u`<18 z>^!>ggw(2xTW;@Cxb&ohA8r;ik7s6Q?Uvd@JUY$ z*bI5enG<273;X^_v&qPYptar}57>m z>K%WtjJq7Id>kYn1wQ+0bgyWI42N|CLCx3=?5o{Hh7zcNKX(E2Qa^xJ}3G|A^04gxkr z6aGva`z)gs2LvSg^ZOoKUU#!fNaf4LAMXI-f-VcY85hW%Szg0)nkwLsl20W@d$~Jc za{onBzO|H)s2wZeySRg`?W?SKi-e~U68A@m4)jbqMxO8a@`C3*r|j0}TzhG118=;V zP6kCYhs+QljbP-?9tpmi3Vu3drLFz`q@j_$vh=5>FyVPMi!=P)Hgx!^fvq_1~q`APTlYubQADGn|!kA&|v;ofVL z1}>gi${8*{Q+ZDthXNCj!#)c2K;0p4yF|NN=LybjSPYtN zoLcRPcV7_LB&=IrSiQQvI|$BJyO6y=9YXK-Klvq;=|Cas^~wD{nuPVb*u~k|Ydh|u zrmk+nH*q3jgTTy2^0I>fv-<39_N{EW-~y2tPNL-f*Ym8S!x77c2id6()v_$^Ig-sL z$KOx3cXvG&=$hrnidCl;7;8D{Zl-%THzXgPwp=Xudt7f7i(U+kQ(#E(_%#0c^>ITi zA2S;~XA*ceaWB43ud6D4_Rc-=;coF^-Z#Q~cY3**z@_;pVoYTvlS(qEIsYn&UWVbI zF@PRTYNCkF?07o8k{dlr0ulAXXCIr7q~eaXe+)26A}xXVm! zbkNm+i3qv?!7_pf+k)T*01kz486l7OYz7OAzIlyYv^@kC8^dU;movouPG9whjG&t~ z?tU34QO%Z6*}z)`({PDQttLt?@V+t~?})m}ez>B0pma5cbQWj0#eh*^$3fR)*`v%K z3|Ams(`vN1?uJv!Li1|?J}%DR@$F70s)7VGY6v7Q5vE-E_%M9epmzj!Ie3DF?6^u0 z_F>XjhlgDRV{{Lf^75K!00ILN4D(79Ucu~TyBf>BUxV<-(|Bq*;`d439}%#6(aCYf z1wwktUskx8R^;TgH%7KyPgG&bJ&efH?QJGhH=yA>8VW|z8 z3EtResML9mkTy1)hxZ-xZNb4C>2JzW@`(YAF7MfTrv%sVRW=vo^3$gRcFiKSp)7HluKjuM z#X=-RJh&(HqC4f#=dAT}R(Vun4H4De?%GI}hd)0OF*kwaZC`~F;WLt)J)=1cFb$=T zX#%AHg4A%p2k?W`z@(3MR{}fy^8wT$(X8-N&0>+WZh;PH&q?@2U;S@@>A80X>$Yff zB0@YvUWzkI6%ZaYF*4e7z?{Ede7Ffts6=4F(e}yWd<|7ufaISyblx=TLys0%n{^;e z9enZLI8zbz@^}ciQdkXAzMpBUVoJ8;Kupn~sQ11H6f#6PqggA3U=<4;?l?s>ANO;r zd^@SD3j9?H7Oc(nQB}tu4E2xqCLDU%7Iaszf%IQP9&5pY0-W#f@?=5ITwU2Ssnb)seupLc~!>puK-CI*H&Mi+^LXV1a|KM30>a-repZ=h|6~D0)YjT^{b`Z)6Ws6puzWp)4^xk6N4@2VJO&6AMxOM9y)TL_p;hov6edcP<=WhZ15J; z0jhQ^T1Fq>h_+K$he`rGykgXzf`yo_90_<>t?Uvr7B}!28V}UCF+D_S6fRTNI3UWB z5{nJs^XzE{&!qiDpSt>w)bLkyyqG}W`ufT(WVnNm{v*=)wbVg+&b!;3g> z#86BTgrfJ5w|4bib2rSbg!MuB<()9+L0av@T~UGK=wR9SYKv@Ppu?73#ITiq9EXNm zjKW?MouaeEN8ybg2E+qKXa+S4g$W(vMM&cAYOS`AVV1taqOA`(zC>5%ElYHe z(j^f?FOrJ5GwU`j5XOeXC=*74+Uew)e>q(puj8jq_ebQ$Jpedx+S7Ig{y2qJ`k%PV zw1?>>FnTHk@W=E;hfGn9`g^cXJ6qMUPa!rGHsgz#xOb)Dx9aE1Mk;MhsE?UQk|kcZ zECTvTAbzU0c7ok5Q<92}*PXz&c<#s$hBd?&*MEF`td@rPHnahMLo@#YK>!CeTl+Wz zl|DnJsjK3e8=CaGm!d?7R8tflLNNvw$T7AYC`#GeigdO$R0Xp^E2(f0lnMlZUXP#P z6X16~nn2G9pY#!|_7p&*9t6*MrV6Qw8^G>|L=VLF9K>`ES<0&6>xxZFBeNJi#C@5Qwe_COj(f#CUo{FH2?#=@?V_LDWpqHH_fzY z(IIgrVfoPR5HMz(1LW7A2qHPdhJGF1HhD)8vB!PxQfzpYcnjzm1E_?v<2{C&VMBWc!az{ z&WM$7S|FyhQmgzdGc+i~>gCnb5-@;j=8P%Y6|wpz7Ie@xSz&->=JmA-vx*Od%D6BG zj#~Zj*l0W85n3ng=W<6^i|hh%P~<&kK8jiwN%(Z&Z9*X7Vj{OTK~(8`6hbj2>&G9O zRMi3VF>&X5Zpfz3#!odKu`bLyY2U*rC=<~I3L>76UrY!=0y#-_gBbjSmD&BD%(j0^ z&ql)Ft)LZ9Cbng+mDV@&ZQPb&mNa8B?bb3z1bLRMPju2-8)u*MLox8{TsnBTKRv;6 zrSfAV(oGFywA!Sl!v2C3^O%g7V!&ROrYDZOl#Hj|m4lOf=IO ziz0rBPJk()`D2}fbm)b&yb90^h+&EUuH$}!MhF0>sJJTlcFto@UZz^hz%tx{jqx+oJ%!C9E@B>CK zGE8T+XpUZ>%q_8pkiYTIzH-IXL|ekR5+eXERQ0Gd>g2vj+y@thcq8ZG$@QIdhe z6xoHDI0LXjp30?$&m_HyzI0w=WFx>7QC#zDpI-WC=TUl)e1vHC0Xw!=|6%+Li&+X; z23`-&P=Ah)2aaxGgjZ3GWnf%tADGsYmTPLpU08w!aydL1Rly67D%npvqgdmX*#Pz4 zPKz#gF|Ev`F0c#O`douvd|UK3K7)d(ZYGYgE*lStn9FGD%TK0t!Y5N1_k8e^z^@-T zTIm`YFv&nUWq3o-cGT=(2!L`&WSpPet{wrx=y-brOD5nwjIMsPHXy5ek@N&2J{CZiA6 zIQgg&J+b?kqUbOk%F}-x+@~dEoLx zU9k2(KHqGxi#*55t-jSusZ>EK`H2paLUP9|L{*1tLiKuN^Qix!UFJfP%@v2 z@gn^i9Eh)6Bwivqu0q)BoP_=y7#$e`l-$MJglUR+llW!%ti!Vi8_Gu4!xcyLlRC`O zD9&<)57LCl`TBl1mp+aka`Ba}grL(ji3vB6RC<|E20v8_6JIWq$O}~lUG7s1g(@>D zP7VLE{xY-l<)h{o2=RB3Zn>(_uul`zD0avkngN)d zAxn4Ct(cwRNhV+!3O?H-y~smH26F7^HUK83ISh#qO89PxqE1zm(BmFXO&CVUP)kHr zNq0dY$JXp3Hn>C?JUCf14MK4oCpR&55;9fP`5Ly82$KuL zUTy^Sf%=4N*)F>RJKDjfRJr;-Do1hhAcZdn!6LxxdfWqXYc6mAbQf!gYlf6eg5r$! zH-PH&HXWN%AK=KrnXzDM{s_GGC$NnaB7&j#$ZWDK(1)2y%Wp=2NClLuJUo#+*s$l{ zSUxjFBbjZ9EeRW88XOk`h7qoWUOGc^HdBf4QGt-pfDCOeChYm}Q*%Ljh$##~hA@@% zDA45tB1ok@O_^*^pe1yjAuwWW*lV-UH%T-{ILjH9-vCYs1aY@_TxdJ?2QM7Th< z=F|QPb?#72AdCsLa%8xyr~Prys9mc?K`^rCYox;UAO;|n=_(0IJv4^8fDVYZqvp`U zQq8*D6E3o<9zuqeK`7&8-UK(G%_G_+zJSEiqUE|+0}Q6L3rTH2>UG2MAs`Hz=+gwF z9%Df@K!k=huRUtn*+_EGA@sIN{k!iK0O|0Q|{Fsc#|PRD9EB3`Dr_J{Dvk zXH<^lN2j*g3!_mY3s7LBrcA#d)rm5py@^$M4gx^9_U-kKrJTTFH-O%3d+3L<2K$ou zg9!$JhM1+rto~t*p^JYx*#=RDGa@vJ*Vx_hT0y8h@?{x}XnD==CUdt03 zGrNa=Kpp$hdBghGor^-b`peC>&J&d;vK2{*c=F6e)cTY?-{Vu7sm?Y}71VP!HxV5>;z+u) z6*B+xE%G-Z&Sl8Xgjznk>HUiUhD&fDJ)%VKXWRegwmmfep3YnG?+5v zP7T(7(c3v6k)4eyyL>WC`PZD2694kUt441`{>^aDYau&x_On?3^6xnZAeGHTcMvnK z_%AUxi~bt!7!~ISX5{+(r$B4@NJ9R~N2fsLKi?vM0~gXpMqM8lbQ`(;HD@RtQky?| zzcG0JTg;|XWM}iIJ^fbyp7YiJTblp3H2+_+8sTx$={g5;Bu8oFakwPav{yfSJ77|0 zPxhDWtM%H`-=3FkgD&SL)BO_I=GtNc}w6!YI^R8S5_^3{Pivx`NF zZ&}neHQ%B`RVDBE@hF~z;fwCV{*tf;E-ml(n@?0IdCg^;ir=pOx7j{XLv9K1(VE(S z*;mM|n(4-1W~kI1Ftcz1iuX2xiUa=yRvm2YS!6JJ zaQUNa2A)Wqd>7Rempy+VB#iVeeY76p{$_2JOK5_PF3?fWi6xiteKc< zuFbsd#jSVj9kK6=m>X&V2W&EOGLZ+I*z2+LJyF}6giItKtuhmmE$XGg8noE@7N1%; zr>^%o=7e?X8LmEi3(eGp#U7f2cik7KYrAmNy*h7}wieB{S1oZecV69+#oMpO1EZdj zxAiE#?a|b>VkRRe*U;3&5fErlbJyhabY9$-vcX=W@pTC66x&$$o-1d!#D?))j~&Xv$(`SY|53WC?Y?Ysa3?VQ3yH2|;f(M7 z&uPbK$VZ0J!D<>!_^F=Vs{4#N4#JYH0Z?d0{6>#2IiBxP24r_U7?z&_Olj80Jw@?e z;x;f3SSu~g%CpH1OmS|z^V*(maM2+9CxgMm?L5(*O{LNVD*2reAyvlZR-fpcFGuN< z&fEW~Mfer_ruq_OsPH?G%)r6UUXZ-Pu)%kWn&E+>AOd0*we{cd+TNX$67@d#<5kn5 z@+hi-s@MpRiD*wNY}pxxSfpbTTqCR2!^h!_{HZM|Nh{qUjs2}*gf zEKgC!%#1+F&dKf-l(G`+N_4h4@m56COHF>mYa_V$g2ecp@H95nO^>G^nJT8H;8$Kx zt2L_&F5S3`+W0F#?$AKdj#r!DQ{Hw67-@eT_O^};KU*iKr`O;{89Gc)d3uLwRC2DIgORAyHV}*X+}Eh5LA=m6f@FGgm9$V?P-a-aVZXU)fGeJh7f`9h2Zg zUvyktu2GFe`id;|1Ls7*54GnY!oN-2kpW`%MD7d~{>0H~?a-368q`OoV<<&KLo>s6 z`7@1g%YX64*zpaJv_bxbkjuI6a?&_Xhf$eL5li3E%=8-WxyvRlv~qL4rCiATUF+rc zJr6gxYtZ@D*vFY!Bet#0%>u7mmxF@&Zx@&3blNtY{LDB^yv7V;(+QzOUgd^K*c4M8 z7)P|gfh#+7dn6wNuZ&g!T#ljPc?P#Ruj`4Bo0%L|;O4IQ3^T_Yd2)~@?|IbZB_7os znc}Ky?6yFty@13YRizKDGMO|qL<@;fT+X#0QJbQlpdIDkJ3X%gFS@*2Y^2_wZ1E_h zIz4f6)Y)SMl5>+$p#Rk<1R33YvN!<1*GtL+U%_@wfQF41cc?&&k;oY299F*gmV-yC z#s6ae**fCQlZ#-qpp=wh3=9Hc=<5e3Cz}0(%*@I+Rr_{Na;>>6Ut+{=Rts`YSHG1r z@)k5jwZbo9D^B0GFRP?b2=u!sia?6fRMCO;J0>E^vKcG7t47+FVREDE4z}I;wYdw< zwL($z+5~0k*=I)iIFCmlqtE7zStlE0kY=ThGdIG|o#>*1M74**nVX{&S&u4-y*RwKu-%Z3M{NLQ?S`wEW+#>Mp#4FG3}m zfhcyK!Qq5*)hC36RuEPk?(p!t(&pxI5bHcxc+=_98mxj z31%X8WWf7l8FxGG_SlEUQG}eFTvJ(D0FP2@^#yjd=Z+w`93@py_BoVFduRqohW!EzFma_bKpWqPK#u znHdZ)uUl!Ut3L;G^i#9h**ST)cVGP;l@s;acRPy%BHI=256zgK5`>C(G*?$gp%YZ* zc7)nvw%1$jyu?sQ|7dXAt2fpDBs9gVN)t>Jbns~b=bSKNdGI9t6*lhyg(%zkQ+8;& zm@l?xZNo@UJQZULG~p2~f(3_Q`?resL&!v^ov9}`Qt-k?XLJ0m6D)+K&kY(J^`G{{ zQSSKs5SgHUx8Hi>Tvk%jH!EUYV-6(6w=vxBNQ&vFli%Xhu)TlFuz&2!Q_jMrxr+m^f-0npx9SB z;ME23NE$0sKiE7d>o^EaRv2I@KXw_lnu_-ObuE4U7s|gX#^=VjZyoLJa=~<8cizkHjF7?d zs=U{-2fj+uE5|$Tb!Sm$4QasF*RA+1`%Eb{MEms0(O_Tf#;mWGz(Qi|U-!qQm@*V- z^WS=duUZ-$mgXfZoO@13CCbBcpG|C~S|sML52R@L`};dWQvUpcB@ZjBMxGr+!5+IW zN`*$M+xenZ7#|7F-?~WlX^$~%bmY4eb`gFlMAm62G<)Q#yifc@p}DFjy3Bv!Es8U_ ztY=;I*{l9GfY+*<2a|2=u<1g>y5o6~+24fbyPwW_v%Q9UH-Ae6kXi51rH;@oWFdt} zJdLQJ!^YsnYY>#6ZKmiK0~s3jB{f__16N^7wQxc8HvU2Pt;NAY;Gj7IAic0Tq+1}Z zFyh5sl8p%BQj-l6`7KvVk`<{}ynU$^=h6^BBll_^34(5jf--wRTSr^CO-Qg_%>wBL z@e65cGUDicnatfWWBRPV-$6tIEyx}zW99iD&2&QF^kP z<3dgU4ks2R#q3Rc@=~y#BGK9Q?@$pDZw-0Y$>nLOz02Rr_o!cGLkMcVdm=u^Y00C= zcb^?f(Ff6fWbF~ju>ggaprQO)^*`TT<^psz#Svu~FGa>cLi~bb^%2(gj*ebMC<&D& zVsWydx6UtE$@2;w%p{Qsycxb#{qDP)vqGdNFkGE0V|%dBqSfZgI5FkYk1LyuOOJCp zg|Xi`ME*_gK29%7sP!DHHR9#n^+j=hf>?}k&=s0@YJVsO4cloQ{3nci?*OtC6`qWe zH$%^e`BdbfDrl-y{w0WMXy!7&b_fmrq#5UbpFL^(jM#7qFJ2)6K6c(li-&^)jA#Zx z_Wi4kOmC4I(_d+Ptc}v&ej5WxHzr;nCTt*p%?#bj*5ubTE+UK$hXC$tNA&*l1DS4O z{--`rQvLbfpgy$|&1`9lMI>L%_`bNm487470!64k2ppO*rIp>+!A z6IvrV+Z<)3m3d$cg5gQ0_*y4}wf4vxme&KT@ zU68QT@1}6ddZ(HQv!~iN(VObP%Kk>{NBe9`$u5z{V>UFZoFBOJj6_8dxBGy>j8y`Z5#yVKh1J94uIo3w?#^LsVBaOQM{Ud@ZSW;NHJ&$yDf!;gvLtL z^E19oR+*@p+->V*QYS5UMHU+dc?$!8+kp}Y@k&Piw~vG@1l?UM3>BT^B5B$beUj{0 zsed2_3$CHA{({WvJAY1d*!kY9Dz{VS_{`)MfEDE8u;UT$IyM{+OAUQ<0F|c~%;0>S zF_D4y6L$HQ`vX;9{q^!q%rP+~e@Qy}l-39Wv|elF0CxI4x^(LyCPzPwiEB?~`Mndf zT(;9Jc`6qGLAy0$A0b@y_;~6pKwk7XrxI%DbRR; z1+gYWmF?p61*to4%k##6qDX%qM~n>Td-eR(*2k}=UH|QpL zL{(Avy+X9VTb{4)4NP)0;v+on(<*=QBIdvVdt(nlhrPW$gO3>O8B5VTHz#MlLuF$` z0ul$bEVp0Ypuq1>r43+B+jWesxm|L`f&QaDLyREiPGKHXdIR-?_t(^>8hYx|;KMd* z&4m=g&c<{D(UQWt&~$^@(!xUIV}^!pB+d~>VY*VP#rsE4@2 z)8Pd!t)a3Ex{jukQ~WB??`GeRCv>?l{1(EOGpi8@?(VoL?$66EO4kGp2YzYiX*J{G zU8g;a+uOEleaqu>qtACHD~cyydcS$$5Xj$xN2o}VyaHzxCUVjLCGlejiwn9vQNx<) zGx}pN9g47}jUe-ZaV_gT0!BJNC8NHh700%{{<&(me*C@l0=#}ZVDn`I^dnMGVv!PA zvWI)n=W2t4kX7u%GaZAdjDL=x;%Sk(z|$UxGO)L@0hoTm8YZV++}4IjnReae!<-}O z@EDg>grh#xQC!mNh`Z2%|_Ytl4LM zTBMMF;l{Bd83%X@0FAH)+9ZEk3Ai`}Q9!TQAc+bbe{0kyQ=6@B9_EbD(#Mu`x3`n;sEF*99%wzRY~p7P^tsf_Yn*$Z83 z@rV`-vx6uybo2gdiZg2iC$uC?i>KIfey6)qG7b*5n@Lj0LmfKPR2L%XJoEgFs$sYT zjDd^EHwoe0mvZ!>a2blfp*~PnB$hP?%-2dpC?)B{*+->YNpOUFp7vZsl zU$egCA?Z(UdPzW>p9Ly5@;>XSf%*26+B-Sra(@(xJb{~I6z=Xd&ANPf#kK1F;LmhN zKr8p`dtt3t{KuQz-M5Y?QME_Q`_f29>GA0%9~zv2Sql$v$QTPxeh0AFqb3V&zR7xL z3suAwGzL>!cw92N8euWwqU-|1y2#ix=CDXsS`9{7Le|*%yo=m*J1qbxoyVNgl;JSna;s5eS2o=h!Y{?xNm=@!|0Lku0MZM)IH5(z zzLrCQ@+QRk$=3-EQtOV0aeG0d9kK}zjE%JACbZWFA41-*qsp|DmcFkSs8_ep?z_H1E3=lJO2*K+{>?}@)T!a~#DN5Vr8B}Grv))#J&OD?xCisqr zGA6u~nK~Jw*WUN2$jY8r5IEJ7{glZ}b#?U3l`7Sj{FA385l~q9-QMzwMq&q$p$S_? zUsA3=n+KG) zh1^>7(@acWUJ$=6)H;=;xMKobQd=8UFHkG|&>&cg3h$f^YmdQWUH3*S3Cn@{_?fpn z`6PuGlA&Ys6DDAONk}OX5VfkU-)2TqVbJ!b`VZbWF77pc$7U+d27}6{q+a%Oy|8vB z0)~1o%Jp~}z8GY=FgD!a4vi}`9kgCNWcmS;?x-_ByoNkUtbykpD~&<*+r2*b3` z*w}L3sz`(z2k)&f(IV@QeU+vcL8-F-^>_D(3nw``O(P>EviD%SvzP{H+PA7fBL4Kc ze;o;<1#%V1Gd?3@Yj1WKa0EA*q1Qqx4l<{5dv2IT1W^f`Xz=taPaMI9|#N2^jSOB>_K&@{Af{pd1-#d zQ_Q>L)*%jr0u`OTJu@n2*W=)RYETjz)~Xa^YGJtdHock|bj3SMP$u0IKR~huTxb_itVmmFigxDcR<05r^T}0&qA+ zp(mFho7qw>(7hQK02=|AVZ$1MXEjgdZ}02dhP5{~9>MRA6Ys{$Z#l3!Vtfe!sH9(0 zS13LKQ=k7iX&e)XiQQKLm@v*H-Ib*{t_Kmd1V$Yt97@r~UNn{jOHw}hnjC>kt03c0 zZrhtMU+by_cAA+}z>9Z2=A&YpvdN4Aqwm0@@=~J=Nxb5?c^D}Lxk6cRQ?kI%0e1tB$BtfQsK*{d*(lyLe>t&_x zGj5eUzqysKBZPVA3#U8FHMBEt$D9a>eab_dCAhrw#jDd70=*S6(W%vrW}MGH>0zXd z-`I3Utslh1aFo%AyiVcCq#Gn>hhBGA{66`se`i}XxJI3H+#PEc7eI^w)yL?kL?z+J z#^y36221$#+H-#Jjw;KI!AAQ+asMNzXNQ*mrx#d^7S{YGCraf7Mt-+3(N6yX5uC(` z2PbMed9S74t|#Fl@+$54AuLCJk8Yc7E`b%m#6kGTrQ<&ySs-lSnu4s#X>wEr3l`hX zVE|97yg4R*_$;>Fy3?IK0-`5~0JjZIT0|I}(G%*L)s;m4-TyJg@brbdHw?o|I+RO& zFFNffEf`ual_mw|wA~!Gr<5p2zdqf5cJ{G;|l_)9d>KPK)O z9Ycw#OJtuz#x{w%Y=3Tw%rpekRp_@Q2s(L9m6%fJMB0S6;&f>?LGwVW)KQm1p&%kz zEujE5KM`v^B=N@B z&#tm9A$EKAeFM|GF|%`WYB({x?`!l}NkwBw`bXUrQBjtU0E1IApwN?9uh*VRf(Bm! zx_1@s-r!EA$p;rjKEA{wlAPQe_SFjrZd?76S!o~3ZQ4yGj^`MsersteOZNsB*OV@q zI80Ly&u=y=$2ud7DrjD9M3jpLU-usK;E*h;JF}OBQyUY@ms6K@J*ZeFihH-8i}BXm z8c6;{p>bY!f7S&`isAeYCLZGi;LgDs6^%=NEVt^@n9%6?-qWlwM7PsP9v~|! z8WYk`QvE3?@MgF`k)*V`TC%0Vk)p1y?%P6=g3p%=oPBXTj- zpA8-Zjl>+4^NHW(L8?%WC9TcPw~~^m9%Ye?6fVEt`YeMdM+Qh&@r|G{P%r?poW{!D zJAU#_DMY*(Uq#^2pz36!JtLK)7EBMi91nFVs9p7Ct)MhA*syPpBD3UT^vG4eQ)4al zf7}_-$V+VNLnSR2=7mRO{Ki9yiNDGIDB^H%pehzal=73$s<~X6{zh+QI5>hvm;vbK z%0RUj*yrBs^_dfSErb3LrcqI1KMXL>i&rm}!lS8QMFX^4QNs4! zrj+7&DPDUEN(WW5vJR6@MS=b;Yx``&Q6)NBmDz50VWzPSqU=&Jh4bdidW?|-xmYA} zn)1C~elAxW_AUpzl!Ql*+l4k5;j)omg;y6(S$?PmK#N zjAn;H-x7#XTy%-YXAO1C-Via$skH?K+D-Joe+*$SQ3I<+M0Q2Gx0*2UD1g-G`&>Pi zLhovQS1HBk21*yDie0`QrF|@Ij!EEtU8I)yY`o_wO>hr^xX~HQq;ZJVUTIIN4+Bp+rCp{Vx@4g zs>sCio75ZHS*1X9LwedI2pR~AGi#3|?C9Pj6DX1#?7Q+bqF$Oe=SJhLfkJgoi|fcV z!rU{bOyr#q0$R-Wj&L-_pU*?wQQN1NnLc}W57A)Zv3w=}f%hwk{($Z+b=-6_sSJkB z$n=N|%}`&zz*()mvbaFq*P5tjub-vUz8zkQn>akH{3xTg8GtLx1@M{8v89XIaaHKn zrKGeLOQ)UgjEFIO-WWZQ32=^Z#ouSYaIqGC$K6k*f#d)+i(eEC4yyQV7`dFe;Dm); zzaMU~fRUET|Kx88uyX%1@|c@D7nz)Uak3D=h>JeM%S)1QD6zOgCMEGRj?sF|Uuhwy z#os$zjGII3qUU1`26VIs2T?GuCr_gr6o*_A!NDlLNWv=DsSYMeg|AXoxZV9% z-@2Fe>yNc=?1IR#J634kE^}kiP}Ni!Y@9YT=(7$|&S^0-17kQ3TYJyd7N3KX zgyS;^KgqXD6ivj+tRWP96@xi=*gb+?zI)X4poCrewS=dx_Ml)gA#;4LHB|rhVb*S= zvL)+iwa%X%6t(4w1*b>lN^x5S3d+q2g4-ncT^(tZAwqL{fa~vm&%qb^)-+mFSwA+| zX{d16N1&r^!6xYg@gL)DNKiVPB%Z0U zNtA$+VvxEn_2kB?9ys`@z9!^)^ioNd^=FoH?4!py^WVHF2#Le&T?y)42)ccwd{Ujy za`ZVks|qf3D1Pk!ya_pW>0>~izC6I_I!(YszQokJmDdLpZA=tO6xxV&e;H}`3T2Fb zU&{4I?~;f}=~$vO)3DHRbe=~(YHAh(H^Xwc@h5J;b04mqOO$-^&BNqSh|*{i3em#n z^hU~D2Wy&&qfECCH*jJO$sVc|nKu;yA3w0L4eS|W^DDqY3L+2iu;e{40JuG@`j?m>tKLD;cCToFE1TGF7~rJg#h>=rA^JL=ex7=@!YeepX=UI>WkPJxU&j0c!eE5ccg!55AUUp zbDbS~Rq|4cHhRK;V3xH@;i9F@ZY^$U`p6<;Yz>RicB69sbpOkR-APK3tqUff?yB@> zVqZzeg*4&mks&fX24p0bM={3o)FFyXuSxn@xSp68QBo3AHqKwx5o(Szu##Aam0Taf zya@}MgHRfZMm^#Vh^;@Eu0;8AyGGVRJ^9B5ptq)_BN*uPXy)ctuJzn`WFh#eyD^w@ zyac4m9T#gmx|UY!dE#g9;=nJqcfH0Wbn9>~_K$6NG&(JwU?QDVbs5^E*P&j7>dTn8 zf`)`gxbjMDIuMc5-&VrZsS89wpIS|X1x0dgx>uqV&LK3Wc`XcH!dPN>luXPZ2718U z^m_+4hlxyJrN0K3LuMGf51+mn>}G2r*hgU1DWzvj}XFy z3-=%TH8{4XKGyTsjinUf&&&LMQ@RDexEGzERTUC=K;`3#<|OlHq|u#7;9xZ`GeLA32wtLqiEbRS(Y92`K!sl#E9^DrB-GocOc9OQ{-NhWQ`1}oO` zet78%J=yT}g-RH9t4id-WxynpA68G68T*$Ql>T=uK+kYTC`RqtiRlAWh|tRDp>)?5 zeq0!j5rE9xM|UqXv7+V0P) z?Aj3^3jJRl%YVxu^k6bY%kdb5{zG}v6&{y|a*SeZyeIO>^Fq0iT`oCs)o5U8VO!zM z0_K2$FzR2^30PEo1NbuW`|87TaCs&D13^-M~ID=M4CMF5jt(OY4J+D8(uYd0mb^HK`L3$6elMdlkepkt%2RM@Xa zwv3IZNa#_s{4Avb3eRg#)GTF_ERIhedcJ0febu?4ThsaY#ZwE0vL6MVJn?)Uu3$Tk zN5uZB*;t167OTE^?}S-i{g&?ap~<@-K#!G6_>{lg6*0Qw@-zSLW(thIxEyv@>lQW&F!PjG_$ZK68a`BYw0rx*tgOXd3HCY-?PEOV|1fu!?lMFjf z(PFw8*8JsRi5VAT2i&u$>7r|&hPQ>8<30@>pC;28Z}PFYJ3Q705*IX|7-pBynAN$1f^wjnAcCDp#N7Nb<(DRI&o%S#q zxKH1E0v2is;S8UJL=SiPm#wVDk;4W8G^M6^RE@w7w5t(U{ zmn8^bzjR!-EMts*%`g$-#T>SY=;*32ge}t&?SpthvNs0dCceF#2l7qGcyol;LxntB zJ$3Bj;y`te36$jXg9h+@RgM8o$#rsWeDXLNgV0!o7}gaha*GW~6DdmRnb01a z;1txz7n-PWdEslOT&BGGiU^&grDd$MN!Qr;`4vO!QI@c5d2?-)iik5MvW{(R2PcIE z_s5q6he90EEm|AM?8F3kvtTu`;Dd>Q!Yt)3pJjN+bD_xzO`=7s?W`vTc|l^BvK!$) z(|y0bO=>m&Ud9CNE>!l<4DDc{*(D8|K7k{PB;@@s_6o1@cG8L&7QlJFpx?5L{WwqT ze=^Oql)t5{cRmDl7|AAb)1VT?IB_=k0Kw5Hr`rsrYrh=t>m*nmi1Sh!%@@%yS_ zs}DwU@^pb7CB~RPz!^{s)SAMM8(zQD&BqmO$n28aqZf@&yNH{vmbdUNe7POiyt|cD z5?>Rd@z^5f2rJv)n)}J^9umcEdcN0TdL+$dW^|PGHfQV$=>7iQXMeua>r{HJ=ob3@ zqh&jfx`d&&$9%!v`&jD6_*1JyduUju-QmQ0E_D3kxVjj32lH;?QObO%oF6mC&YcKG zpB0m@*Yf&oZqaBNxVYTk{I5w9r=)4?1!z14wcMw=W!>9_D7xh*|aHuqo zGe!K-X@p-PjD60y7t1ZE;3M(+7k|SaOVC=RuyB&3+%ok2hArL)JbHV zFNJSbC0TGc%aH#HA;XM=f1?$_?6KNKQnxUfn`QeT(#qSycu!hBd2lJh)Pxbf@u6fS zSpljjD9b5@AI)7XixB}G66iM|c}Mi-#O#-L^dN!j9^Jr&HKuOg0P#=TJPLrz`svq* zZoEFRkYrmFb*`ZTkw#h+w9>b=a#&`2-rp-mN<@S##y=s(* z%a=pK<9*6w)>TDb`Af#$F)e;vW!rXb4>|M@(p}OeT|=iR zNSCB^cXukC(y4TJBPHD+9Yc4+(0p^<&-ea?GxuZd+ghs?+4sYKLnwRt{(PV!CLld7 z2~&6R8h@U=U8ofZBGvs!dlWufUfl`lCb-1zMXsUw!%B34rp&x`*Lk*YX7-!MsaIOJ z#)#rtQyL)>lS(}|RGo;34{KS$B2kVT2CXPz|nkSHops9LzaC z2m`4gJ8p}7blCxS^|@}&Qge4t8*l6ByvML~kh2dlSWJMRi%2V>m{on$kp4r zxJ-MAy+zMOI=t&N$k-lsZWb;d6KVLT&#m1llhu97+KHTh$5cPS@OZ^8yUBQ|jM ziQxSCg)CxEkNfqfb+_FuNJ3Qtj@)mDb-B)sbbevM0+HGrj23}8C#1bFY`5)md!$gW zEbu?Q6o-94s;Ogt7NxnaXQ+e=&uXFSbdCtE8;v2iJZMZRKjsYs(>z2vFw8vYF49VZH1HhZji&m3H{eLR z%uR1i*PNbvN+oyXe_+kd?so7jTmMES?UrMFU(*)}BJ$0bz?07Eb^}GedUykzZyDGhH%4#vgqB?B4#0p$(7Loy6 zjt^l-HlD0wi5-BEWn;yBdB)Q?qhBBAB(1Gi&fY(J+a+YYu9A|N1or-+g;#mTW;1nK zoGSQEa8QHgZJDnIM}d6P9rf({RMn(vl}uDw8FR)5FPhGaf_D4x<>1E; z)e(l^C#7R(FucC})U|lSq&N0B*tlsMZmHcPju>qgHhqy=l^7OehGpjZpT1ww0G( zuY%q@s;gCY^=HRdJS$F}wqy8(5KevjEQXMR)`WfTY=w?1>JKWL*9&0DK+O#<`=2cq zxF6h3L{nyq5w*DVew^N4))9ECzo- zdcdV{oN&<#k;oPNcVW&WYhyzyRnR&@M zuDv(gwX1=k!7BhABJJ7!p{W;yW0`{P332E9Tv4@t{8AOM>AE( zc5H^e-0WY>{B}zJzDs1mKgL+Go*|6J;!cxBqvQ%JEG9v?X5u!EkT8o+B*Iy;|1b*} zax#mFw;sD#p&=4@7WMHAKczn6Qf-aeuki0>m@DNrLIC4ATlAB(3JGMOjhm0O7?e*2xsMq}O6+jx8U=%L3T231)kod1cM}eID z^dBcHspTS=g^i^chjwt<=e(n|4~T$88vo5LUSauO#n4S24yEcf1O(3e$lfZAfZdYv zKdcSCo>2uZj|%dBT9dQL<~!%~16Xy#hFaUwuZ4jQ?Q^2#VWTFucYt13Bsn;GHBq2i z9z*4RIJe1f1}PzOdrPX_b{&QEqCeC@a353X9r=%r1fKa?C;1N+n_Ij0PZ2JX`ZWMo zL_mQ!9ZI?C#-SHw50sfHyAKF9g=pQ2eg!;u-T{7LX3u7kAq=@>tFOlZq#I+R2-phb zD7>T*;$2rff#PR=lkik!YYG7BSL`~}_eTQUjyYc<#XN0^qc1(Um&M%gkr+Pxp2+q& zcz9qDm3PLk3sa$HO&OdlU%tdtdI0eOZY(2l{W6Z7{-Q%xC z3;x$~4D)JNR$YEgJP5#RoiZQyvzJ zy_8m`vFQNMN`t2f{eGoUHK%C&NdSn@h|*jAkuP!ci1~^syCvCxQ7y0h+Pu(o9lN+k z?KDZ~daw*e74QEi!2+$Zex7Hf;^4o@h6Z(WjAriUrmthy)5f6; zUM}3DT#2j8r^4gy7lRmjPP9mTJ&kolc{hz9+7!OOG7+4od7IT>#-sLUe92&wm7<8l z4%iJ7gQJpSKjEX+b^;`p#00=ns~S4QH3*P@cfI}meTaYp_5FrHJ9f20V1^j2o{B#` z$RU#9e^b2A1Nb7fTt+Vct^l7mO4CzQf>ukq@u!Hz1VQSEQ4e$ncY02Nwxp~e)WFy8 zyA7fZwVrR2q_FyZq(#G*46Yo2bcIp;uV%A}?{d>W=8r9}_v~^A8G^KEaanthh0_=E z1XmJ=(7)?(Ahz9}F8tif@`V?@+;Qo#H2`DRPjToGj+@KxtTXb?3n8bk#xt7QVJmTo z8VBQD)qAORiWv+;)ix7`@IH7Q;WX6xL7Hg47|sf3y=+DAzbNFRFhl?d&3z^`Hi#u4t`YcVX);y!XZYc5nDN>3wX`>&xRzLG!w) zY{!`&ikBY7K5uhWop=9pS33>MPlwK8T5vzW_ zkE@$O{z&TZQv(nhxoIx8pXKsApncZ;=Fjk*D_w&UT{b5-1=ytbZUn9$jQ};TU+nKp z?;!Hyvfti!5$f1xsq4U!?oMoqZQX2kX zK~I<$?HG2I0>XCWE~@}@y5PY zM?JtwMucd^TF`}HSByFg8SKy1UE&Ba3<9neugQ6g4v->3fplwp>!>|#`=@k8n`U_s zk>?|`i$Mr&2V>K=HaLsqQ7avh4{%A%=)2lzL8)+^T2-7vO41AH-R$EUN&6{5U%qlB zg&RPy({E*fdxlyY2nY2q*{JUJ#S*<=EN^fr&Xljf%+T(wq3O1uy)ELZge_6R`OckZ z;8NiKb0}FZ?_A!TpjX$6#It%yNajT5f#$@eZ8q3A`$y8jerS!2O|y@WkB$^k-IT&{ zn!r)F3_wAVwub>6p*Uwr6mdp8u;5WEAVC)a>>IzSR!@kHSwW$Mz+Cd$r?#K@}PA;r?5E3dn6a>*d_Og%_PjBj~t~`i&BN*xxTA z54dedyY>FW^zatxJj}dL5nsBcl`m^3CbYuf~gJ)f*{9+Wc$pn(>X`jZ=Ht2lU9lvBWYkLsS0lsMftY!9O~pEVL0U zWz`Ymqe(;)+)q#P{)WfoKZ61SIg_K$ z?(no$(>f*I|F=!9P&kN3dLRqL?l|}fqcCP>WALNfIPDPfRw#!=sb0OQkdsTMdtD`~ zD=Hhgl=d1YECu=~u-Yx8CJ6=Q{RL9d=xaO~Of3HX(6i`gWWkkX-N)!a{ZenqMVq@M zeI(FaI0scYXuasm>d-S+TR~n zeI&;r$BdhsnvC@-VlKPiUEjE)EcHh3Li4p&(R;PjKoRCk7ISsc@UhyKT05iOhf^55 zh!mDhoZ6mK;5pXlhYDhKe!!bU*o;K&tP53s$iZ28q_PbFClVo%6@96eJ@z%I59R*0 z^)l7l-Y~7O=7Qt8iNVOT#|`N{&AEA$n+)FF_rIssWOVU(^bF14^`qOV^FBY@69&(xJhlSh5u*E$LV%Qv zxIGcdTU?xd6(aWYT(n=VO-g=Fw>iMw9UAj z#oP0-m(H@1xrg=k52pYiCW6pC<5O#K8$h*N5D+ha9>G=-l~Nh^I;b3xSqhaR4;V%& zp59jOJg5ZXp1*8fe7jZe*Z+8d@=Jic8VT3_w1mgJuj4#*u31_ z#JT!WgU!nEJQ9{f^@f0*IN`290QU>VZJETv?F{gdFamI&81DgzC_D}4DS~MziY-tn zI7!R2bT9T3YV|fZqN$Nz(;=3RE%~nJN$8a@(Y|QA@qMB2X;AGydFicIz9|TkLm2M4 zDu>W9k+46l7 zFH<7ee_fNDE_!<8?c%&2$}j_{Hgd>PuJ?zhcuYwX8H3xdw3_6 z0hZiOZ&;9=l(KA`-pLdSj#+qfFsM@WvRh1k!N3_!^l^-IZn{+sT9EPAH*p=rRxoaz z1x#FNOJA&th)ehCHuQ!N-^2~(6#G3v+l@7wTy()85zaFQ)Z^2iI9XJWL_X<{UT7t4 z=2S6cTv>bLdX~idQ9^N|5Bh5xRI4K)SbPWs4ga|tF1Hz`3S_Pu$l|9?v~o~`Oz%Bt zWn(-ftDEd}DAV5{y~rPBq3@Z8h5q|HTU!kvB*xPB#xfDPSiuz7{l0747m&jb`C}z5 zobrP54xGxuJ#1|F;7BVE%yR_juX}Qt(B^)gyO(M3=<8Wm>MH1;V4M4wXYjKR*!u9N zgE(#kI?TZeg3OGVRyl1oBk8 zF=TVK(-g<_sBtu^Hp2FVd+dR%x2$qV=(hKweEj_vj?!l~@L>*U*5Wvd?=}evFMV>s zqK7v8IiJN^E!gcg8VB3|Qhk$c6noUAppdR~u?f(=H~K z&;jk^yg-mzPx*6Gkd~W1e3UR1k3!dhcr?lZPC9#gN&-vwd+GM(P2Z}Wm)!|ZyKVQ7 z!a#`dIjn*(^bNF6eWMn#JHz`${(BDsfsEBs@pzKzx~h^%Si;c+te$F7S3Y{h1 zg&IAsVIHRnD;x-Al{m6Eh)-rRC4``iOql27!kGUeSeS7id$-Y;8FA`V3`m&)aa70_ zk4qh2kZ0#Cm+@u<>Ry6)OLQKAit%}yAQ-J38WJHSu$u-!K%V*qPe!dAF)bGPBHJwev_I%c|Su7OsX%Rh!sB6uO$sVbFVW%GR0x~D(K5}i~8?^Ha zr&-xA8Zum>R|T2kW0eki2O0&uVl9JoWZ}DE&7MCKt+!g2uv$mRe@P&W9=6be3L_{2 zcxRsS8v_!Im2!Z8+v)jA6-FHABHih@^_oPnL)I&ffCZ?icwW66|uj(h`uJ3tL zJ#x7)l=3f5y%i)=+b?G~T6)ZL_iS6VeO=p%5AJ{bzw1ftqAA*6gLN1vlnbx+Nixpz z>qETvx2RI7A4i;mp*J@K|Ij#Oha{`#z)iejxSm|NpW1Cg(yBsn<`-E&3Mikofn+It z5Q-#ET>}bmQJ5xIjOSHrdw{@${yY~CQgsri{a7GAD#cl}mibI87QMBEBtIeDe^=Q* zal#liP6Ag*sCZVHDBf|SY87($QxCRfF!(~*!7)Sn|5yNVlfF{bo5*`RA{Sck^CF8q zvv=NM9;fIFIg%ieCxUqgoB7R_v;`sJ+-e2NenT+_YHm3(DN0M z-PK9SFj2-bxABQIs(ACiih4h{y=<)Qdp$2st4|dIEA?APyu#rDA8DTzMM3!*Q#y%W zpn`$|nhYU3q49ugUJtwYNEH_D8#L4G-CYDr?KMl?*DACPRdnLNI|26)t*W2TGspG9 zFkz%)ef~<0w*l$og|zAokQ5Hk6lc7S*~e%CZNEN207H2RFqFiHfDG_3`l0&E z);h*p&q7~)MILS~NAr;{;CmfL5@=S)`U<6tR3z{$z`fSP>M+8=fDj3 z0&e9Tneqj@BIttM9ktx>JCc@R?sMRgpuG}#N=nL1ugnnjhal?rt!qnKP<6+eItc}4 zwR2g?n2qcspt8)lcMJl{OR(>#yFpH{RPH- zt~CM_@33td&%p&aaUu; zR6X~C4y+Uml6}ZU+XpPF*K^dO_4y7;^F$wkhpc0m6(AjMG%a|+5U*bk8nPdRNL3(0 z*7HcYiqP9vGn0*U99;h2XXWbE)b;4H^)^uCNf8~B!Yww`Xn>~&_ECpY_3;PLCQj1= z=y4T&k81Y49Y21qKiZ0Wni<>^xTrNQKYJPCxf!9~-l+d(Lqrk7E-Jj&fGZfh>PaF1L zFm+#&K1xFYbYJ{BWan=D`}a(UZf|qn(Y`OJgHe<+Ici%|;ue}H))RrHRV7N0>YH|@-XbpN~V|DlNg z{Cir;+d9V1)biL6NBM5qkH1$`a@Vi-vE>qoANz>0D(t?pYRh`2pi@J5#qJL%C)ZFS zRBK}e;MK>r+u>z-CS|oe#ndg#;b<2W0SdCd0m z^78rHBALm~WIK=K#>YCDWD!$1v*j;w1|(Hz{*-@AWH8cg>gn5vc%zb*B6_Jm>cQPv z9_}KHa%k-3lmj*0sUZ=v^(7a5T@~4Q%J+&8oRSuou}#yc`x;B&{mX?Bh(ns3<@RWs z(QNb`fqHn3-t%1t91Rv)syAX>SnXW|J?Ed$paXjz%VuS<(|6tvDGQd+v$gyS7B`Mn z=QOBPJ7G8>@U#_e;I@;f=UoSpI14lDFRR(&*=H|%l+?YKNNu>UK|?phgEK#N(XHML zn!C>4b+1RKt}nux2-cOfePt_P1ANvYEPVgk^{;}|?4kDzc(0U@Pxbaf?aDn~L4?X` zLl^od*h$MmTaq8V3U#NeT?d|jYy7OCbJM{);e4Rc#*#y70OEcZwg1U6^3u3J@TcQ} z`V?GvTr*vup3qWNhPT!vTrESc%g~JZ8d{k11yAE4xgN<3(NQt^-!oC?|jbu<^AmQ)2}0%s33FICIzAbCk~ zW9^KL{XUFN)gpT$6J|y9LvF1s`8Th(k8?A%vkt5+3lfIvoFa}U&_qO*T;N9i(ko5T z$?XcvHFD8J4Zvvzmz*;(D0%#Q)oya`TzfJ;B(Plz|A)Lg^)y{=XehKlhIg1RmxKDL zlk`{u0?|_N5`zbzNXTGdNV_+$^Bk7Eo#4g(w#dmoUKY%0AtMPHrV?N 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 z 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 z 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 z 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℘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 literal 0 HcmV?d00001 diff --git a/test/image/mocks/heatmap_contour_irregular_bricks.json b/test/image/mocks/heatmap_contour_irregular_bricks.json new file mode 100644 index 00000000000..b6a503f2318 --- /dev/null +++ b/test/image/mocks/heatmap_contour_irregular_bricks.json @@ -0,0 +1,32 @@ +{ + "data": [ + { + "x": [0, 10, 12], + "y": [10, 12, 0], + "z": [1, 2, 3], + "zsmooth": "best", + "type": "heatmap", + "colorscale": "Cividis", + "colorbar": {"x": 0.42} + }, + { + "x": [0, 10, 12], + "y": [10, 12, 0], + "z": [1, 2, 3], + "contours": {"coloring": "heatmap"}, + "line": {"color": "#fff"}, + "colorscale": "Cividis", + "type": "contour", + "xaxis": "x2", + "yaxis": "y2" + } + ], + "layout": { + "title": "heatmap and contour map with irregular bricks", + "xaxis": {"domain": [0, 0.4]}, + "xaxis2": {"domain": [0.6, 1]}, + "yaxis2": {"anchor": "x2"}, + "height": 400, + "width": 800 + } +} diff --git a/test/jasmine/tests/heatmap_test.js b/test/jasmine/tests/heatmap_test.js index 1f0afd929c0..30da55e7423 100644 --- a/test/jasmine/tests/heatmap_test.js +++ b/test/jasmine/tests/heatmap_test.js @@ -594,10 +594,10 @@ describe('heatmap hover', function() { } function assertLabels(hoverPoint, xLabel, yLabel, zLabel, text) { - expect(hoverPoint.xLabelVal).toEqual(xLabel, 'have correct x label'); - expect(hoverPoint.yLabelVal).toEqual(yLabel, 'have correct y label'); - expect(hoverPoint.zLabelVal).toEqual(zLabel, 'have correct z label'); - expect(hoverPoint.text).toEqual(text, 'have correct text label'); + expect(hoverPoint.xLabelVal).toBe(xLabel, 'have correct x label'); + expect(hoverPoint.yLabelVal).toBe(yLabel, 'have correct y label'); + expect(hoverPoint.zLabelVal).toBe(zLabel, 'have correct z label'); + expect(hoverPoint.text).toBe(text, 'have correct text label'); } describe('for `heatmap_multi-trace`', function() { @@ -662,4 +662,39 @@ describe('heatmap hover', function() { }); }); + + describe('nonuniform bricks', function() { + + beforeAll(function(done) { + gd = createGraphDiv(); + + var mock = require('@mocks/heatmap_contour_irregular_bricks.json'); + var mockCopy = Lib.extendDeep({}, mock); + + Plotly.plot(gd, mockCopy.data, mockCopy.layout).then(done); + }); + + afterAll(destroyGraphDiv); + + function checkData() { + var pt = _hover(gd, -4, 6)[0]; + assertLabels(pt, 0, 10, 1); + + pt = _hover(gd, 10.5, 12.5)[0]; + assertLabels(pt, 10, 12, 2); + + pt = _hover(gd, 11.5, 4)[0]; + assertLabels(pt, 12, 0, 3); + } + + it('gives data positions, not brick centers', function(done) { + checkData(); + + Plotly.restyle(gd, {zsmooth: 'none'}, [0]) + .then(checkData) + .catch(failTest) + .then(done); + }); + + }); }); From 4060ec7b7eb18bec124d7f70e2a4ba679d4f2709 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 24 Jan 2018 09:49:20 -0500 Subject: [PATCH 2/4] pull out some pure functions from heatmap/plot for easier reasoning --- src/traces/heatmap/plot.js | 122 ++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/src/traces/heatmap/plot.js b/src/traces/heatmap/plot.js index 7f0640869ed..19f5170c522 100644 --- a/src/traces/heatmap/plot.js +++ b/src/traces/heatmap/plot.js @@ -196,60 +196,6 @@ function plotOne(gd, plotinfo, cd) { }; } - // get interpolated bin value. Returns {bin0:closest bin, frac:fractional dist to next, bin1:next bin} - function findInterp(pixel, pixArray) { - var maxBin = pixArray.length - 2; - var bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxBin); - var pix0 = pixArray[bin]; - var pix1 = pixArray[bin + 1]; - var interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxBin); - var bin0 = Math.round(interp); - var frac = Math.abs(interp - bin0); - - if(!interp || interp === maxBin || !frac) { - return { - bin0: bin0, - bin1: bin0, - frac: 0 - }; - } - return { - bin0: bin0, - frac: frac, - bin1: Math.round(bin0 + frac / (interp - bin0)) - }; - } - - function findInterpFromCenters(pixel, centerPixArray) { - // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0}; - var maxBin = centerPixArray.length - 1; - // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0}; - - var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin); - var pix0 = centerPixArray[bin]; - var pix1 = centerPixArray[bin + 1]; - var frac = ((pixel - pix0) / (pix1 - pix0)) || 0; - if(frac <= 0) { - return { - bin0: bin, - bin1: bin, - frac: 0 - }; - } - if(frac < 0.5) { - return { - bin0: bin, - bin1: bin + 1, - frac: frac - }; - } - return { - bin0: bin + 1, - bin1: bin, - frac: 1 - frac - }; - } - // build the pixel map brick-by-brick // cruise through z-matrix row-by-row // build a brick at each z-matrix value @@ -281,13 +227,6 @@ function plotOne(gd, plotinfo, cd) { return [0, 0, 0, 0]; } - function putColor(pixels, pxIndex, c) { - pixels[pxIndex] = c[0]; - pixels[pxIndex + 1] = c[1]; - pixels[pxIndex + 2] = c[2]; - pixels[pxIndex + 3] = Math.round(c[3] * 255); - } - function interpColor(r0, r1, xinterp, yinterp) { var z00 = r0[xinterp.bin0]; if(z00 === undefined) return setColor(undefined, 1); @@ -444,3 +383,64 @@ function plotOne(gd, plotinfo, cd) { image3.exit().remove(); } + +// get interpolated bin value. Returns {bin0:closest bin, frac:fractional dist to next, bin1:next bin} +function findInterp(pixel, pixArray) { + var maxBin = pixArray.length - 2; + var bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxBin); + var pix0 = pixArray[bin]; + var pix1 = pixArray[bin + 1]; + var interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxBin); + var bin0 = Math.round(interp); + var frac = Math.abs(interp - bin0); + + if(!interp || interp === maxBin || !frac) { + return { + bin0: bin0, + bin1: bin0, + frac: 0 + }; + } + return { + bin0: bin0, + frac: frac, + bin1: Math.round(bin0 + frac / (interp - bin0)) + }; +} + +function findInterpFromCenters(pixel, centerPixArray) { + // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0}; + var maxBin = centerPixArray.length - 1; + // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0}; + + var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin); + var pix0 = centerPixArray[bin]; + var pix1 = centerPixArray[bin + 1]; + var frac = ((pixel - pix0) / (pix1 - pix0)) || 0; + if(frac <= 0) { + return { + bin0: bin, + bin1: bin, + frac: 0 + }; + } + if(frac < 0.5) { + return { + bin0: bin, + bin1: bin + 1, + frac: frac + }; + } + return { + bin0: bin + 1, + bin1: bin, + frac: 1 - frac + }; +} + +function putColor(pixels, pxIndex, c) { + pixels[pxIndex] = c[0]; + pixels[pxIndex + 1] = c[1]; + pixels[pxIndex + 2] = c[2]; + pixels[pxIndex + 3] = Math.round(c[3] * 255); +} From 7a67f6ffc643c9ad8ca055c8691555fc0364a022 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 24 Jan 2018 10:12:43 -0500 Subject: [PATCH 3/4] update contour_heatmap_coloring baseline --- .../baselines/contour_heatmap_coloring.png | Bin 43835 -> 43844 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/contour_heatmap_coloring.png b/test/image/baselines/contour_heatmap_coloring.png index dd408d1120adab1d2af4562b4d7784c64a72469b..0e2a7370fcba5dac9dc878abe1ee86880cd99c66 100644 GIT binary patch literal 43844 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 From 3581c87fbe9b151162dc854992a963aa3599702d Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 24 Jan 2018 14:24:03 -0500 Subject: [PATCH 4/4] :hocho: commented-out code --- src/traces/heatmap/plot.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/traces/heatmap/plot.js b/src/traces/heatmap/plot.js index 19f5170c522..00212e4bd5e 100644 --- a/src/traces/heatmap/plot.js +++ b/src/traces/heatmap/plot.js @@ -409,10 +409,7 @@ function findInterp(pixel, pixArray) { } function findInterpFromCenters(pixel, centerPixArray) { - // if(pixel <= centerPixArray[0]) return {bin0: 0, bin1: 0, frac: 0}; var maxBin = centerPixArray.length - 1; - // if(pixel >= centerPixArray[lastCenter]) return {bin0: lastCenter, bin1: lastCenter, frac: 0}; - var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin); var pix0 = centerPixArray[bin]; var pix1 = centerPixArray[bin + 1];