From 47a21c6e30eef91db503a5a183d5c8cf558aaa56 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sun, 15 May 2022 14:05:05 +0930 Subject: [PATCH 1/4] Clamp path coordinates Fixes https://gitlab.freedesktop.org/poppler/poppler/-/issues/1250 --- src/cairo-default-context.c | 26 ++++++++++++++++---------- src/cairo-fixed-private.h | 16 ++++++++++++++++ 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/cairo-default-context.c b/src/cairo-default-context.c index 567c5d4d5..87370cdc7 100644 --- a/src/cairo-default-context.c +++ b/src/cairo-default-context.c @@ -713,10 +713,12 @@ _cairo_default_context_move_to (void *abstract_cr, double x, double y) { cairo_default_context_t *cr = abstract_cr; cairo_fixed_t x_fixed, y_fixed; + double width; _cairo_gstate_user_to_backend (cr->gstate, &x, &y); - x_fixed = _cairo_fixed_from_double (x); - y_fixed = _cairo_fixed_from_double (y); + width = _cairo_gstate_get_line_width (cr->gstate); + x_fixed = _cairo_fixed_from_double_clamped (x, width); + y_fixed = _cairo_fixed_from_double_clamped (y, width); return _cairo_path_fixed_move_to (cr->path, x_fixed, y_fixed); } @@ -726,10 +728,12 @@ _cairo_default_context_line_to (void *abstract_cr, double x, double y) { cairo_default_context_t *cr = abstract_cr; cairo_fixed_t x_fixed, y_fixed; + double width; _cairo_gstate_user_to_backend (cr->gstate, &x, &y); - x_fixed = _cairo_fixed_from_double (x); - y_fixed = _cairo_fixed_from_double (y); + width = _cairo_gstate_get_line_width (cr->gstate); + x_fixed = _cairo_fixed_from_double_clamped (x, width); + y_fixed = _cairo_fixed_from_double_clamped (y, width); return _cairo_path_fixed_line_to (cr->path, x_fixed, y_fixed); } @@ -744,19 +748,21 @@ _cairo_default_context_curve_to (void *abstract_cr, cairo_fixed_t x1_fixed, y1_fixed; cairo_fixed_t x2_fixed, y2_fixed; cairo_fixed_t x3_fixed, y3_fixed; + double width; _cairo_gstate_user_to_backend (cr->gstate, &x1, &y1); _cairo_gstate_user_to_backend (cr->gstate, &x2, &y2); _cairo_gstate_user_to_backend (cr->gstate, &x3, &y3); + width = _cairo_gstate_get_line_width (cr->gstate); - x1_fixed = _cairo_fixed_from_double (x1); - y1_fixed = _cairo_fixed_from_double (y1); + x1_fixed = _cairo_fixed_from_double_clamped (x1, width); + y1_fixed = _cairo_fixed_from_double_clamped (y1, width); - x2_fixed = _cairo_fixed_from_double (x2); - y2_fixed = _cairo_fixed_from_double (y2); + x2_fixed = _cairo_fixed_from_double_clamped (x2, width); + y2_fixed = _cairo_fixed_from_double_clamped (y2, width); - x3_fixed = _cairo_fixed_from_double (x3); - y3_fixed = _cairo_fixed_from_double (y3); + x3_fixed = _cairo_fixed_from_double_clamped (x3, width); + y3_fixed = _cairo_fixed_from_double_clamped (y3, width); return _cairo_path_fixed_curve_to (cr->path, x1_fixed, y1_fixed, diff --git a/src/cairo-fixed-private.h b/src/cairo-fixed-private.h index 5f9ce684c..2259f113b 100644 --- a/src/cairo-fixed-private.h +++ b/src/cairo-fixed-private.h @@ -53,6 +53,11 @@ #define CAIRO_FIXED_ONE_DOUBLE ((double)(1 << CAIRO_FIXED_FRAC_BITS)) #define CAIRO_FIXED_EPSILON ((cairo_fixed_t)(1)) +#define CAIRO_FIXED_MAX INT32_MAX /* Maximum fixed point value */ +#define CAIRO_FIXED_MIN INT32_MIN /* Minimum fixed point value */ +#define CAIRO_FIXED_MAX_DOUBLE (((double) CAIRO_FIXED_MAX) / CAIRO_FIXED_ONE_DOUBLE) +#define CAIRO_FIXED_MIN_DOUBLE (((double) CAIRO_FIXED_MIN) / CAIRO_FIXED_ONE_DOUBLE) + #define CAIRO_FIXED_ERROR_DOUBLE (1. / (2 * CAIRO_FIXED_ONE_DOUBLE)) #define CAIRO_FIXED_FRAC_MASK ((cairo_fixed_t)(((cairo_fixed_unsigned_t)(-1)) >> (CAIRO_FIXED_BITS - CAIRO_FIXED_FRAC_BITS))) @@ -128,6 +133,17 @@ _cairo_fixed_from_double (double d) # error See cairo-fixed-private.h for details. #endif +static inline cairo_fixed_t +_cairo_fixed_from_double_clamped (double d, double tolerance) +{ + if (d > CAIRO_FIXED_MAX_DOUBLE - tolerance) + d = CAIRO_FIXED_MAX_DOUBLE - tolerance; + else if (d < CAIRO_FIXED_MIN_DOUBLE + tolerance) + d = CAIRO_FIXED_MIN_DOUBLE + tolerance; + + return _cairo_fixed_from_double (d); +} + static inline cairo_fixed_t _cairo_fixed_from_26_6 (uint32_t i) { From e7da8451f8e85007abddf349bd2aa74a0791f728 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sat, 28 May 2022 16:13:21 +0930 Subject: [PATCH 2/4] Update long-lines test --- test/long-lines.c | 9 ++++++--- test/reference/long-lines.base.argb32.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.base.rgb24.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.mask.argb32.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.mask.rgb24.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.pdf.ref.png | Bin 0 -> 206 bytes test/reference/long-lines.ps.xfail.png | Bin 0 -> 204 bytes test/reference/long-lines.ref.png | Bin 0 -> 224 bytes test/reference/long-lines.traps.argb32.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.traps.rgb24.ref.png | Bin 201 -> 0 bytes test/reference/long-lines.xcb-window&.ref.png | Bin 0 -> 238 bytes test/reference/long-lines.xcb-window.ref.png | Bin 0 -> 238 bytes test/reference/long-lines.xcb.ref.png | Bin 0 -> 238 bytes test/reference/long-lines.xlib-window.ref.png | Bin 0 -> 238 bytes test/reference/long-lines.xlib.ref.png | Bin 0 -> 238 bytes 15 files changed, 6 insertions(+), 3 deletions(-) delete mode 100644 test/reference/long-lines.base.argb32.ref.png delete mode 100644 test/reference/long-lines.base.rgb24.ref.png delete mode 100644 test/reference/long-lines.mask.argb32.ref.png delete mode 100644 test/reference/long-lines.mask.rgb24.ref.png create mode 100644 test/reference/long-lines.pdf.ref.png create mode 100644 test/reference/long-lines.ps.xfail.png create mode 100644 test/reference/long-lines.ref.png delete mode 100644 test/reference/long-lines.traps.argb32.ref.png delete mode 100644 test/reference/long-lines.traps.rgb24.ref.png create mode 100644 test/reference/long-lines.xcb-window&.ref.png create mode 100644 test/reference/long-lines.xcb-window.ref.png create mode 100644 test/reference/long-lines.xcb.ref.png create mode 100644 test/reference/long-lines.xlib-window.ref.png create mode 100644 test/reference/long-lines.xlib.ref.png diff --git a/test/long-lines.c b/test/long-lines.c index 69b64e9c4..ff28edbd8 100644 --- a/test/long-lines.c +++ b/test/long-lines.c @@ -29,6 +29,9 @@ #define LINE_WIDTH 1. #define SIZE 10 #define LINE_NBR 6 +#define WIDTH (SIZE * (LINE_NBR + 1)) +#define HEIGHT (SIZE * (LINE_NBR + 1)) + struct { double length; @@ -66,8 +69,8 @@ draw (cairo_t *cr, int width, int height) } /* This should display a perfect vertically centered black line */ - cairo_move_to (cr, 0.5, -1e100); - cairo_line_to (cr, pos, 1e100); + cairo_move_to (cr, -1e100, HEIGHT/2); + cairo_line_to (cr, 1e100, HEIGHT/2); cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_stroke (cr); @@ -80,6 +83,6 @@ CAIRO_TEST (long_lines, "\nLong lines are not drawn due to the limitations of the internal 16.16 fixed-point coordinates", "stroke, stress", /* keywords */ NULL, /* requirements */ - SIZE * (LINE_NBR + 1), SIZE * (LINE_NBR + 1), + WIDTH, HEIGHT, NULL, draw) diff --git a/test/reference/long-lines.base.argb32.ref.png b/test/reference/long-lines.base.argb32.ref.png deleted file mode 100644 index fe91163124061f36b71cc789b06f12f3dc70c1b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt`5o-U3d z8I5mmZWKIhz{BEr;O}>za0RWnv$n=z{3jv(yiI)m<(W5k=IC$V{`tL; z%TyH&&wxn_R2)5Y)RhkE)4%caKYZ?lYt_Qo-U3d z8I5mmZsa}ez{BEr=x_OwM=!YIxaL%}&iry9A^F_B**9NX^;ut^cYXKeyK`;t|9fP- zUU{WMP~#FNPu59XDxw}*6G9YF1u7DS4xBt(earo?JQi6L<@*H9COQPB?zj(h41=eu KpUXO@geCy}_e&7~ literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.ref.png b/test/reference/long-lines.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6e96743460be29fb9ab368671e5eec432b7074e8 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt^rJzX3_ zG8*6BG~{b=;9$Mj|M9^c8GnV@H+pAYXPWJ!vv%gmMOyE05Zdtz$ri#3-I-~N4C-oO6G)Km3a83Y)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_OJzX3_ zG8*6BJjlsn$is5*;zmx3==As93CB0=Z(Fxs$8o>y^Eo2MmGuTQCx6e3_BGPnomwXS z|CG`cPZl-787>Jzjkp;HH-Fz}vy#8;)t92(@&9)GTC??6-mB)RR(tQfn{L0ZuYM~7 dK_h^s*Ux<=_ceO6BQwys44$rjF6*2UngD4`R-pg@ literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.xcb-window.ref.png b/test/reference/long-lines.xcb-window.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae94477a72bdf6a74438f80b2f41acea13ee8356 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_OJzX3_ zG8*6BJjlsn$is5*;zmx3==As93CB0=Z(Fxs$8o>y^Eo2MmGuTQCx6e3_BGPnomwXS z|CG`cPZl-787>Jzjkp;HH-Fz}vy#8;)t92(@&9)GTC??6-mB)RR(tQfn{L0ZuYM~7 dK_h^s*Ux<=_ceO6BQwys44$rjF6*2UngD4`R-pg@ literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.xcb.ref.png b/test/reference/long-lines.xcb.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae94477a72bdf6a74438f80b2f41acea13ee8356 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_OJzX3_ zG8*6BJjlsn$is5*;zmx3==As93CB0=Z(Fxs$8o>y^Eo2MmGuTQCx6e3_BGPnomwXS z|CG`cPZl-787>Jzjkp;HH-Fz}vy#8;)t92(@&9)GTC??6-mB)RR(tQfn{L0ZuYM~7 dK_h^s*Ux<=_ceO6BQwys44$rjF6*2UngD4`R-pg@ literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.xlib-window.ref.png b/test/reference/long-lines.xlib-window.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae94477a72bdf6a74438f80b2f41acea13ee8356 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_OJzX3_ zG8*6BJjlsn$is5*;zmx3==As93CB0=Z(Fxs$8o>y^Eo2MmGuTQCx6e3_BGPnomwXS z|CG`cPZl-787>Jzjkp;HH-Fz}vy#8;)t92(@&9)GTC??6-mB)RR(tQfn{L0ZuYM~7 dK_h^s*Ux<=_ceO6BQwys44$rjF6*2UngD4`R-pg@ literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.xlib.ref.png b/test/reference/long-lines.xlib.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae94477a72bdf6a74438f80b2f41acea13ee8356 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_OJzX3_ zG8*6BJjlsn$is5*;zmx3==As93CB0=Z(Fxs$8o>y^Eo2MmGuTQCx6e3_BGPnomwXS z|CG`cPZl-787>Jzjkp;HH-Fz}vy#8;)t92(@&9)GTC??6-mB)RR(tQfn{L0ZuYM~7 dK_h^s*Ux<=_ceO6BQwys44$rjF6*2UngD4`R-pg@ literal 0 HcmV?d00001 From 1aa53f2ed45397505c926e5e98239eb5c863e92e Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sat, 28 May 2022 16:55:07 +0930 Subject: [PATCH 3/4] big-trap test works --- test/reference/big-trap.base.argb32.ref.png | Bin 319 -> 0 bytes test/reference/big-trap.base.rgb24.ref.png | Bin 319 -> 0 bytes test/reference/big-trap.mask.argb32.ref.png | Bin 319 -> 0 bytes test/reference/big-trap.mask.rgb24.ref.png | Bin 319 -> 0 bytes test/reference/big-trap.ref.png | Bin 0 -> 318 bytes test/reference/big-trap.traps.argb32.ref.png | Bin 319 -> 0 bytes test/reference/big-trap.traps.rgb24.ref.png | Bin 319 -> 0 bytes 7 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test/reference/big-trap.base.argb32.ref.png delete mode 100644 test/reference/big-trap.base.rgb24.ref.png delete mode 100644 test/reference/big-trap.mask.argb32.ref.png delete mode 100644 test/reference/big-trap.mask.rgb24.ref.png create mode 100644 test/reference/big-trap.ref.png delete mode 100644 test/reference/big-trap.traps.argb32.ref.png delete mode 100644 test/reference/big-trap.traps.rgb24.ref.png diff --git a/test/reference/big-trap.base.argb32.ref.png b/test/reference/big-trap.base.argb32.ref.png deleted file mode 100644 index c0975c9b5fdae5e10613a1ef3c756fc3dfa82e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^DIm7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%_1JAi&}ne#ZW(G1I|+8tkF>|MHwY7xntV+|TbBtp&9O;Bd!0KI6|%`*eS- eaTtQ|0o$9o%%@y^?@a}IpTX1B&t;ucLK6TBU4lyh literal 0 HcmV?d00001 diff --git a/test/reference/big-trap.traps.argb32.ref.png b/test/reference/big-trap.traps.argb32.ref.png deleted file mode 100644 index c0975c9b5fdae5e10613a1ef3c756fc3dfa82e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^DIm7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu% Date: Sat, 28 May 2022 17:31:58 +0930 Subject: [PATCH 4/4] Update huge-linear and huge-radial pdf ref images pdf output is correct but the poppler rendering is incorrect --- .gitlab-ci/ignore-pdf-argb32.txt | 2 ++ .gitlab-ci/ignore-pdf-rgb24.txt | 2 ++ test/reference/huge-linear.pdf.ref.png | Bin 1640 -> 0 bytes test/reference/huge-linear.pdf.xfail.png | Bin 0 -> 1416 bytes test/reference/huge-radial.pdf.ref.png | Bin 47469 -> 0 bytes test/reference/huge-radial.pdf.xfail.png | Bin 0 -> 1416 bytes 6 files changed, 4 insertions(+) delete mode 100644 test/reference/huge-linear.pdf.ref.png create mode 100644 test/reference/huge-linear.pdf.xfail.png delete mode 100644 test/reference/huge-radial.pdf.ref.png create mode 100644 test/reference/huge-radial.pdf.xfail.png diff --git a/.gitlab-ci/ignore-pdf-argb32.txt b/.gitlab-ci/ignore-pdf-argb32.txt index cea0d4256..b3be4e9ae 100644 --- a/.gitlab-ci/ignore-pdf-argb32.txt +++ b/.gitlab-ci/ignore-pdf-argb32.txt @@ -13,6 +13,8 @@ ft-show-glyphs-positioning ft-text-vertical-layout-type1 ft-text-vertical-layout-type3 halo-transform +huge-linear +huge-radial linear-gradient-reflect mask overlapping-glyphs diff --git a/.gitlab-ci/ignore-pdf-rgb24.txt b/.gitlab-ci/ignore-pdf-rgb24.txt index 380d37710..d0e31a95d 100644 --- a/.gitlab-ci/ignore-pdf-rgb24.txt +++ b/.gitlab-ci/ignore-pdf-rgb24.txt @@ -23,6 +23,8 @@ ft-text-vertical-layout-type3 gradient-zero-stops gradient-zero-stops-mask halo-transform +huge-linear +huge-radial image-surface-source linear-gradient-one-stop linear-gradient-reflect diff --git a/test/reference/huge-linear.pdf.ref.png b/test/reference/huge-linear.pdf.ref.png deleted file mode 100644 index cdafafa24450d02fcbb4c398e370cecc120490ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 zcmaJ?Ye-XJ7=F)YHCN`c{-kIdQ5i&tEq_#AS=zd27k^ktv}D!_jj$wKWToqUzH`1~R>U~$obSAQzvuRTt6QF*7h{e$ z6H$zFkz*y1p@>LXYclXk*R}q!{55+0k~{}R@HunKf0!2%osR6n9VfysTegnMHaYGz zZ2A&gaHRO&?%=okAL?H(*zbDNRuid7qQdY?f2Kki8{S*VUA-oUf^C_D3Vn8(ZRDB% zB$-@m4;p;a<40LT=T}h2#|hd)$z-QrEb%~>wpR!dE* zPm?v|{#Pj~ZgST$f1JUB_RDNh;wtOiS4*|;xb-T&Dprs7+OOwoH)x&IPQKDyQ&wZW z#T!UJ>LybsV-hQ0qp8Djj+$=FGG=w>Pm8iHwVSgVbGR1QWG19@0j3w&6%`LsRixqp zrD#;ig1CSZ9Ra6eeT>)6`wdf`lcT<^V|;y^CVA}<7DI2sjk+JlMk@kev&G=+xiXGC z<*cT-LF)xa6ji)L##TMMoh;2#&JPo*34I|z;N)Uc*0GJe!Cn>`Z-lP!0~TD(P=p%d z?I8`I4x^pPg`Z|q5IoQka`o(Db0CvYrIa6z|7mPrCbNTwGqo%H)5q=tDWbt(eLY?5 zNB#vxjfYGG`nUEnS6w}zU6#jk+-y+J2u~!JYHeqM2M}62ISvp3aR^1gj(^xF>mk1Y z_B)xhra+a65W0mG2fJ|Kw@e{d&j)Naa?Rt~NqiNv_ifFg-#L4A-fI%~Y%B_B*Qy0e>P5*bD;(#!ytBI4o2$?ct$B+kP!CVoE>pd<{%t z{&M(*<2WZUN;nB{<{{7GoM;|zSU$odM5Zrc`fv)-wUyOXhr4dBdhm(7A*gD^N@D(w z*hobo5%Pnu%IWTY%(V3wSF$hq@Q49|D67UO!dpQu_A50F8e0;g-;R$9W$<4IITz+T JF6FG-^9v+yAHo0t diff --git a/test/reference/huge-linear.pdf.xfail.png b/test/reference/huge-linear.pdf.xfail.png new file mode 100644 index 0000000000000000000000000000000000000000..db4cf2e9bb2330233b3b1b1243581e4a8876d990 GIT binary patch literal 1416 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V2tBn0*YMQ`i&b%u_bxCyDbP0l+XkK>Pmav literal 0 HcmV?d00001 diff --git a/test/reference/huge-radial.pdf.ref.png b/test/reference/huge-radial.pdf.ref.png deleted file mode 100644 index 8aa088b441e0bdca025b0d5b996799988c93e3a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47469 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

CAks4o!cKv kU}@nk_Ym(bj1K=GZTD<97xV~3fB-)!F?rECVZ-462XzsC=>Px# diff --git a/test/reference/huge-radial.pdf.xfail.png b/test/reference/huge-radial.pdf.xfail.png new file mode 100644 index 0000000000000000000000000000000000000000..db4cf2e9bb2330233b3b1b1243581e4a8876d990 GIT binary patch literal 1416 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V2tBn0*YMQ`i&b%u_bxCyDbP0l+XkK>Pmav literal 0 HcmV?d00001