Thu Jul 17 22:40:05 UTC 2025 I: starting to build ble.sh/unstable/arm64 on jenkins on '2025-07-17 22:39' Thu Jul 17 22:40:05 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/arm64_1/86934/console.log Thu Jul 17 22:40:05 UTC 2025 I: Downloading source for unstable/ble.sh=0.4.0~git20250321.d4c812b-1 --2025-07-17 22:40:05-- http://deb.debian.org/debian/pool/main/b/ble.sh/ble.sh_0.4.0%7egit20250321.d4c812b-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 1747 (1.7K) [text/prs.lines.tag] Saving to: ‘ble.sh_0.4.0~git20250321.d4c812b-1.dsc’ 0K . 100% 198M=0s 2025-07-17 22:40:05 (198 MB/s) - ‘ble.sh_0.4.0~git20250321.d4c812b-1.dsc’ saved [1747/1747] Thu Jul 17 22:40:05 UTC 2025 I: ble.sh_0.4.0~git20250321.d4c812b-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: ble.sh Binary: ble.sh, ble.sh-airline-themes Architecture: all Version: 0.4.0~git20250321.d4c812b-1 Maintainer: Eric Long Homepage: https://github.com/akinomyoga/ble.sh Standards-Version: 4.7.2 Vcs-Browser: https://salsa.debian.org/debian/ble.sh Vcs-Git: https://salsa.debian.org/debian/ble.sh.git Build-Depends: debhelper-compat (= 13), gawk, procps, less Package-List: ble.sh deb utils optional arch=all ble.sh-airline-themes deb utils optional arch=all Checksums-Sha1: 0373503ffd256fc13102012ef11ec44b482697f2 110532 ble.sh_0.4.0~git20250321.d4c812b.orig-contrib.tar.xz 07260813710f510bcaa4507382a48d48a12d7043 2007436 ble.sh_0.4.0~git20250321.d4c812b.orig.tar.xz ec73a72a00dcf5560b62a0c77d736cd3eb2489ce 4528 ble.sh_0.4.0~git20250321.d4c812b-1.debian.tar.xz Checksums-Sha256: 2fca5c447e473a1422e61c3159fe091db686569fb15c612540a37f7baf474208 110532 ble.sh_0.4.0~git20250321.d4c812b.orig-contrib.tar.xz 3b40298e6585fabfa5567213f60fa4e24478b50cbe669e5443997058e9056b3d 2007436 ble.sh_0.4.0~git20250321.d4c812b.orig.tar.xz cd6218562ec89d7bbec0c85d70f18203625c8ff5bef16bd896c9edfff90b7ffe 4528 ble.sh_0.4.0~git20250321.d4c812b-1.debian.tar.xz Files: f9a1a770fcdb6b61937b2093a3e74449 110532 ble.sh_0.4.0~git20250321.d4c812b.orig-contrib.tar.xz d4c0d1a5e54fd212e8387d74813ec2a2 2007436 ble.sh_0.4.0~git20250321.d4c812b.orig.tar.xz 805502858f11856abc98097c09d2c4e1 4528 ble.sh_0.4.0~git20250321.d4c812b-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQScTWEJ927Sl0a/hB7sV97Kb1Pv6QUCZ+5SMgAKCRDsV97Kb1Pv 6X2tAQC9pLKztsrfD489nNetpoFRC6c75kjww2fiKN5l+yIb1QEAj/7x/KZ/cCHt SjL5DHF0cuQHdXCN2Vz/Pkl6+HpyjAM= =8WCr -----END PGP SIGNATURE----- Thu Jul 17 22:40:05 UTC 2025 I: Checking whether the package is not for us Thu Jul 17 22:40:05 UTC 2025 I: Starting 1st build on remote node codethink03-arm64.debian.net. Thu Jul 17 22:40:05 UTC 2025 I: Preparing to do remote build '1' on codethink03-arm64.debian.net. Thu Jul 17 22:42:12 UTC 2025 I: Deleting $TMPDIR on codethink03-arm64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Wed Aug 19 17:03:07 -12 2026 I: pbuilder-time-stamp: 1787202187 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ble.sh_0.4.0~git20250321.d4c812b-1.dsc] I: copying [./ble.sh_0.4.0~git20250321.d4c812b.orig-contrib.tar.xz] I: copying [./ble.sh_0.4.0~git20250321.d4c812b.orig.tar.xz] I: copying [./ble.sh_0.4.0~git20250321.d4c812b-1.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./ble.sh_0.4.0~git20250321.d4c812b-1.dsc: no acceptable signature found dpkg-source: info: extracting ble.sh in ble.sh-0.4.0~git20250321.d4c812b dpkg-source: info: unpacking ble.sh_0.4.0~git20250321.d4c812b.orig.tar.xz dpkg-source: info: unpacking ble.sh_0.4.0~git20250321.d4c812b.orig-contrib.tar.xz dpkg-source: info: unpacking ble.sh_0.4.0~git20250321.d4c812b-1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying remove-git.patch dpkg-source: info: applying fix-check.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/685446/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='arm64' IFS=' ' INVOCATION_ID='9aae024de96e4134b50aae76436c50ca' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='685446' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.pD8k5tG6/pbuilderrc_ra3L --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.pD8k5tG6/b1 --logfile b1/build.log ble.sh_0.4.0~git20250321.d4c812b-1.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.4:3128' I: uname -a Linux codethink03-arm64 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/685446/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: arm64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), gawk, procps, less dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19963 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on gawk; however: Package gawk is not installed. pbuilder-satisfydepends-dummy depends on procps; however: Package procps is not installed. pbuilder-satisfydepends-dummy depends on less; however: Package less is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gawk{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} less{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libfile-stripnondeterminism-perl{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libproc2-0{a} libreadline8t64{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2{a} m4{a} man-db{a} po-debconf{a} procps{a} readline-common{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl linux-sysctl-defaults lynx psmisc wget 0 packages upgraded, 35 newly installed, 0 to remove and 0 not upgraded. Need to get 13.0 MB of archives. After unpacking 53.4 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main arm64 readline-common all 8.2-6 [69.4 kB] Get: 2 http://deb.debian.org/debian unstable/main arm64 libreadline8t64 arm64 8.2-6 [159 kB] Get: 3 http://deb.debian.org/debian unstable/main arm64 gawk arm64 1:5.3.2-1 [731 kB] Get: 4 http://deb.debian.org/debian unstable/main arm64 less arm64 668-1 [156 kB] Get: 5 http://deb.debian.org/debian unstable/main arm64 libproc2-0 arm64 2:4.0.4-8 [63.0 kB] Get: 6 http://deb.debian.org/debian unstable/main arm64 procps arm64 2:4.0.4-8 [873 kB] Get: 7 http://deb.debian.org/debian unstable/main arm64 sensible-utils all 0.0.25 [25.0 kB] Get: 8 http://deb.debian.org/debian unstable/main arm64 libmagic-mgc arm64 1:5.46-5 [338 kB] Get: 9 http://deb.debian.org/debian unstable/main arm64 libmagic1t64 arm64 1:5.46-5 [103 kB] Get: 10 http://deb.debian.org/debian unstable/main arm64 file arm64 1:5.46-5 [43.7 kB] Get: 11 http://deb.debian.org/debian unstable/main arm64 gettext-base arm64 0.23.1-2 [241 kB] Get: 12 http://deb.debian.org/debian unstable/main arm64 libuchardet0 arm64 0.0.8-1+b2 [69.2 kB] Get: 13 http://deb.debian.org/debian unstable/main arm64 groff-base arm64 1.23.0-9 [1130 kB] Get: 14 http://deb.debian.org/debian unstable/main arm64 bsdextrautils arm64 2.41-5 [93.8 kB] Get: 15 http://deb.debian.org/debian unstable/main arm64 libpipeline1 arm64 1.5.8-1 [40.2 kB] Get: 16 http://deb.debian.org/debian unstable/main arm64 man-db arm64 2.13.1-1 [1453 kB] Get: 17 http://deb.debian.org/debian unstable/main arm64 m4 arm64 1.4.19-8 [285 kB] Get: 18 http://deb.debian.org/debian unstable/main arm64 autoconf all 2.72-3.1 [494 kB] Get: 19 http://deb.debian.org/debian unstable/main arm64 autotools-dev all 20240727.1 [60.2 kB] Get: 20 http://deb.debian.org/debian unstable/main arm64 automake all 1:1.17-4 [862 kB] Get: 21 http://deb.debian.org/debian unstable/main arm64 autopoint all 0.23.1-2 [770 kB] Get: 22 http://deb.debian.org/debian unstable/main arm64 libdebhelper-perl all 13.24.2 [90.9 kB] Get: 23 http://deb.debian.org/debian unstable/main arm64 libtool all 2.5.4-4 [539 kB] Get: 24 http://deb.debian.org/debian unstable/main arm64 dh-autoreconf all 20 [17.1 kB] Get: 25 http://deb.debian.org/debian unstable/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 26 http://deb.debian.org/debian unstable/main arm64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 27 http://deb.debian.org/debian unstable/main arm64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 28 http://deb.debian.org/debian unstable/main arm64 libelf1t64 arm64 0.192-4 [189 kB] Get: 29 http://deb.debian.org/debian unstable/main arm64 dwz arm64 0.15-1+b1 [102 kB] Get: 30 http://deb.debian.org/debian unstable/main arm64 libunistring5 arm64 1.3-2 [453 kB] Get: 31 http://deb.debian.org/debian unstable/main arm64 libxml2 arm64 2.12.7+dfsg+really2.9.14-1 [629 kB] Get: 32 http://deb.debian.org/debian unstable/main arm64 gettext arm64 0.23.1-2 [1611 kB] Get: 33 http://deb.debian.org/debian unstable/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 34 http://deb.debian.org/debian unstable/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 35 http://deb.debian.org/debian unstable/main arm64 debhelper all 13.24.2 [919 kB] Fetched 13.0 MB in 0s (88.0 MB/s) Preconfiguring packages ... Selecting previously unselected package readline-common. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19963 files and directories currently installed.) Preparing to unpack .../readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:arm64. Preparing to unpack .../libreadline8t64_8.2-6_arm64.deb ... Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:arm64 (8.2-6) ... Setting up readline-common (8.2-6) ... Setting up libreadline8t64:arm64 (8.2-6) ... Selecting previously unselected package gawk. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19995 files and directories currently installed.) Preparing to unpack .../00-gawk_1%3a5.3.2-1_arm64.deb ... Unpacking gawk (1:5.3.2-1) ... Selecting previously unselected package less. Preparing to unpack .../01-less_668-1_arm64.deb ... Unpacking less (668-1) ... Selecting previously unselected package libproc2-0:arm64. Preparing to unpack .../02-libproc2-0_2%3a4.0.4-8_arm64.deb ... Unpacking libproc2-0:arm64 (2:4.0.4-8) ... Selecting previously unselected package procps. Preparing to unpack .../03-procps_2%3a4.0.4-8_arm64.deb ... Unpacking procps (2:4.0.4-8) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../04-sensible-utils_0.0.25_all.deb ... Unpacking sensible-utils (0.0.25) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../05-libmagic-mgc_1%3a5.46-5_arm64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:arm64. Preparing to unpack .../06-libmagic1t64_1%3a5.46-5_arm64.deb ... Unpacking libmagic1t64:arm64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../07-file_1%3a5.46-5_arm64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../08-gettext-base_0.23.1-2_arm64.deb ... Unpacking gettext-base (0.23.1-2) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../09-libuchardet0_0.0.8-1+b2_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../10-groff-base_1.23.0-9_arm64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../11-bsdextrautils_2.41-5_arm64.deb ... Unpacking bsdextrautils (2.41-5) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../12-libpipeline1_1.5.8-1_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../13-man-db_2.13.1-1_arm64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../14-m4_1.4.19-8_arm64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../15-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../16-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../17-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../18-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../19-libdebhelper-perl_13.24.2_all.deb ... Unpacking libdebhelper-perl (13.24.2) ... Selecting previously unselected package libtool. Preparing to unpack .../20-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../21-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../22-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../23-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../24-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:arm64. Preparing to unpack .../25-libelf1t64_0.192-4_arm64.deb ... Unpacking libelf1t64:arm64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../26-dwz_0.15-1+b1_arm64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:arm64. Preparing to unpack .../27-libunistring5_1.3-2_arm64.deb ... Unpacking libunistring5:arm64 (1.3-2) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../28-libxml2_2.12.7+dfsg+really2.9.14-1_arm64.deb ... Unpacking libxml2:arm64 (2.12.7+dfsg+really2.9.14-1) ... Selecting previously unselected package gettext. Preparing to unpack .../29-gettext_0.23.1-2_arm64.deb ... Unpacking gettext (0.23.1-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../30-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../31-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../32-debhelper_13.24.2_all.deb ... Unpacking debhelper (13.24.2) ... Setting up libpipeline1:arm64 (1.5.8-1) ... Setting up bsdextrautils (2.41-5) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up gawk (1:5.3.2-1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.24.2) ... Setting up libmagic1t64:arm64 (1:5.46-5) ... Setting up less (668-1) ... Setting up gettext-base (0.23.1-2) ... Setting up m4 (1.4.19-8) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:arm64 (0.192-4) ... Setting up autotools-dev (20240727.1) ... Setting up libproc2-0:arm64 (2:4.0.4-8) ... Setting up libunistring5:arm64 (1.3-2) ... Setting up autopoint (0.23.1-2) ... Setting up autoconf (2.72-3.1) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.25) ... Setting up libuchardet0:arm64 (0.0.8-1+b2) ... Setting up procps (2:4.0.4-8) ... Setting up libxml2:arm64 (2.12.7+dfsg+really2.9.14-1) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up gettext (0.23.1-2) ... Setting up libtool (2.5.4-4) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up groff-base (1.23.0-9) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up debhelper (13.24.2) ... Processing triggers for libc-bin (2.41-10) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ble.sh_0.4.0~git20250321.d4c812b-1_source.changes dpkg-buildpackage: info: source package ble.sh dpkg-buildpackage: info: source version 0.4.0~git20250321.d4c812b-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Eric Long dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 debian/rules clean dh clean dh_auto_clean make -j12 clean make[1]: Entering directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' rm -rf out/ble.sh out/lib/keymap.emacs.sh out/lib/keymap.vi.sh out/lib/keymap.vi_digraph.sh out/lib/keymap.vi_digraph.txt out/lib/init-term.sh out/lib/init-bind.sh out/lib/init-cmap.sh out/lib/init-msys1.sh out/lib/core-complete.sh out/lib/core-syntax.sh out/lib/core-test.sh out/lib/core-cmdspec.sh out/lib/core-debug.sh out/lib/core-edit.ignoreeof-messages.txt out/lib/core-decode.emacs-rlfunc.txt out/lib/core-decode.vi_imap-rlfunc.txt out/lib/core-decode.vi_nmap-rlfunc.txt out/lib/vim-surround.sh out/lib/vim-arpeggio.sh out/lib/vim-airline.sh out/lib/test-bash.sh out/lib/test-main.sh out/lib/test-util.sh out/lib/test-canvas.sh out/lib/test-decode.sh out/lib/test-edit.sh out/lib/test-syntax.sh out/lib/test-complete.sh out/lib/test-keymap.vi.sh out/lib/util.bgproc.sh out/lib/benchmark.ksh out/contrib/colorglass.bash out/contrib/histdb.bash out/contrib/prompt-defer.bash out/contrib/prompt-elapsed.bash out/contrib/prompt-git.bash out/contrib/prompt-vim-mode.bash out/contrib/airline/alduin.bash out/contrib/airline/angr.bash out/contrib/airline/apprentice.bash out/contrib/airline/atomic.bash out/contrib/airline/ayu_dark.bash out/contrib/airline/ayu_light.bash out/contrib/airline/ayu_mirage.bash out/contrib/airline/badwolf.bash out/contrib/airline/base16.bash out/contrib/airline/base16_3024.bash out/contrib/airline/base16_adwaita.bash out/contrib/airline/base16_apathy.bash out/contrib/airline/base16_ashes.bash out/contrib/airline/base16_atelier_cave.bash out/contrib/airline/base16_atelier_cave_light.bash out/contrib/airline/base16_atelier_dune.bash out/contrib/airline/base16_atelier_dune_light.bash out/contrib/airline/base16_atelier_estuary.bash out/contrib/airline/base16_atelier_estuary_light.bash out/contrib/airline/base16_atelier_forest.bash out/contrib/airline/base16_atelier_forest_light.bash out/contrib/airline/base16_atelier_heath.bash out/contrib/airline/base16_atelier_heath_light.bash out/contrib/airline/base16_atelier_lakeside.bash out/contrib/airline/base16_atelier_lakeside_light.bash out/contrib/airline/base16_atelier_plateau.bash out/contrib/airline/base16_atelier_plateau_light.bash out/contrib/airline/base16_atelier_savanna.bash out/contrib/airline/base16_atelier_savanna_light.bash out/contrib/airline/base16_atelier_seaside.bash out/contrib/airline/base16_atelier_seaside_light.bash out/contrib/airline/base16_atelier_sulphurpool.bash out/contrib/airline/base16_atelier_sulphurpool_light.bash out/contrib/airline/base16_atelierdune.bash out/contrib/airline/base16_atelierforest.bash out/contrib/airline/base16_atelierheath.bash out/contrib/airline/base16_atelierlakeside.bash out/contrib/airline/base16_atelierseaside.bash out/contrib/airline/base16_atlas.bash out/contrib/airline/base16_bespin.bash out/contrib/airline/base16_black_metal.bash out/contrib/airline/base16_black_metal_bathory.bash out/contrib/airline/base16_black_metal_burzum.bash out/contrib/airline/base16_black_metal_dark_funeral.bash out/contrib/airline/base16_black_metal_gorgoroth.bash out/contrib/airline/base16_black_metal_immortal.bash out/contrib/airline/base16_black_metal_khold.bash out/contrib/airline/base16_black_metal_marduk.bash out/contrib/airline/base16_black_metal_mayhem.bash out/contrib/airline/base16_black_metal_nile.bash out/contrib/airline/base16_black_metal_venom.bash out/contrib/airline/base16_brewer.bash out/contrib/airline/base16_bright.bash out/contrib/airline/base16_brogrammer.bash out/contrib/airline/base16_brushtrees.bash out/contrib/airline/base16_brushtrees_dark.bash out/contrib/airline/base16_chalk.bash out/contrib/airline/base16_circus.bash out/contrib/airline/base16_classic.bash out/contrib/airline/base16_classic_dark.bash out/contrib/airline/base16_classic_light.bash out/contrib/airline/base16_codeschool.bash out/contrib/airline/base16_colors.bash out/contrib/airline/base16_cupcake.bash out/contrib/airline/base16_cupertino.bash out/contrib/airline/base16_darktooth.bash out/contrib/airline/base16_decaf.bash out/contrib/airline/base16_default.bash out/contrib/airline/base16_default_dark.bash out/contrib/airline/base16_default_light.bash out/contrib/airline/base16_dracula.bash out/contrib/airline/base16_edge_dark.bash out/contrib/airline/base16_edge_light.bash out/contrib/airline/base16_eighties.bash out/contrib/airline/base16_embers.bash out/contrib/airline/base16_espresso.bash out/contrib/airline/base16_flat.bash out/contrib/airline/base16_framer.bash out/contrib/airline/base16_fruit_soda.bash out/contrib/airline/base16_gigavolt.bash out/contrib/airline/base16_github.bash out/contrib/airline/base16_google.bash out/contrib/airline/base16_google_dark.bash out/contrib/airline/base16_google_light.bash out/contrib/airline/base16_grayscale.bash out/contrib/airline/base16_grayscale_dark.bash out/contrib/airline/base16_grayscale_light.bash out/contrib/airline/base16_greenscreen.bash out/contrib/airline/base16_gruvbox_dark_hard.bash out/contrib/airline/base16_gruvbox_dark_medium.bash out/contrib/airline/base16_gruvbox_dark_pale.bash out/contrib/airline/base16_gruvbox_dark_soft.bash out/contrib/airline/base16_gruvbox_light_hard.bash out/contrib/airline/base16_gruvbox_light_medium.bash out/contrib/airline/base16_gruvbox_light_soft.bash out/contrib/airline/base16_harmonic16.bash out/contrib/airline/base16_harmonic_dark.bash out/contrib/airline/base16_harmonic_light.bash out/contrib/airline/base16_heetch.bash out/contrib/airline/base16_heetch_light.bash out/contrib/airline/base16_helios.bash out/contrib/airline/base16_hopscotch.bash out/contrib/airline/base16_horizon_dark.bash out/contrib/airline/base16_horizon_light.bash out/contrib/airline/base16_horizon_terminal_dark.bash out/contrib/airline/base16_horizon_terminal_light.bash out/contrib/airline/base16_ia_dark.bash out/contrib/airline/base16_ia_light.bash out/contrib/airline/base16_icy.bash out/contrib/airline/base16_irblack.bash out/contrib/airline/base16_isotope.bash out/contrib/airline/base16_londontube.bash out/contrib/airline/base16_macintosh.bash out/contrib/airline/base16_marrakesh.bash out/contrib/airline/base16_materia.bash out/contrib/airline/base16_material.bash out/contrib/airline/base16_material_darker.bash out/contrib/airline/base16_material_lighter.bash out/contrib/airline/base16_material_palenight.bash out/contrib/airline/base16_material_vivid.bash out/contrib/airline/base16_mellow_purple.bash out/contrib/airline/base16_mexico_light.bash out/contrib/airline/base16_mocha.bash out/contrib/airline/base16_monokai.bash out/contrib/airline/base16_nord.bash out/contrib/airline/base16_nova.bash out/contrib/airline/base16_ocean.bash out/contrib/airline/base16_oceanicnext.bash out/contrib/airline/base16_one_light.bash out/contrib/airline/base16_onedark.bash out/contrib/airline/base16_outrun_dark.bash out/contrib/airline/base16_papercolor_dark.bash out/contrib/airline/base16_papercolor_light.bash out/contrib/airline/base16_paraiso.bash out/contrib/airline/base16_phd.bash out/contrib/airline/base16_pico.bash out/contrib/airline/base16_pop.bash out/contrib/airline/base16_porple.bash out/contrib/airline/base16_railscasts.bash out/contrib/airline/base16_rebecca.bash out/contrib/airline/base16_sandcastle.bash out/contrib/airline/base16_seti.bash out/contrib/airline/base16_shapeshifter.bash out/contrib/airline/base16_shell.bash out/contrib/airline/base16_snazzy.bash out/contrib/airline/base16_solarflare.bash out/contrib/airline/base16_solarized.bash out/contrib/airline/base16_solarized_dark.bash out/contrib/airline/base16_solarized_light.bash out/contrib/airline/base16_spacemacs.bash out/contrib/airline/base16_summerfruit.bash out/contrib/airline/base16_summerfruit_dark.bash out/contrib/airline/base16_summerfruit_light.bash out/contrib/airline/base16_synth_midnight_dark.bash out/contrib/airline/base16_tomorrow.bash out/contrib/airline/base16_tomorrow_night.bash out/contrib/airline/base16_tomorrow_night_eighties.bash out/contrib/airline/base16_tube.bash out/contrib/airline/base16_twilight.bash out/contrib/airline/base16_unikitty_dark.bash out/contrib/airline/base16_unikitty_light.bash out/contrib/airline/base16_vim.bash out/contrib/airline/base16_woodland.bash out/contrib/airline/base16_xcode_dusk.bash out/contrib/airline/base16_zenburn.bash out/contrib/airline/base16color.bash out/contrib/airline/behelit.bash out/contrib/airline/biogoo.bash out/contrib/airline/blood_red.bash out/contrib/airline/bubblegum.bash out/contrib/airline/cobalt2.bash out/contrib/airline/cool.bash out/contrib/airline/cyberpunk.bash out/contrib/airline/dark.bash out/contrib/airline/dark_minimal.bash out/contrib/airline/desertink.bash out/contrib/airline/deus.bash out/contrib/airline/distinguished.bash out/contrib/airline/durant.bash out/contrib/airline/fairyfloss.bash out/contrib/airline/fruit_punch.bash out/contrib/airline/google_dark.bash out/contrib/airline/google_light.bash out/contrib/airline/hybrid.bash out/contrib/airline/hybridline.bash out/contrib/airline/jellybeans.bash out/contrib/airline/jet.bash out/contrib/airline/kalisi.bash out/contrib/airline/kolor.bash out/contrib/airline/laederon.bash out/contrib/airline/landscape.bash out/contrib/airline/lessnoise.bash out/contrib/airline/light.bash out/contrib/airline/lighthaus.bash out/contrib/airline/lucius.bash out/contrib/airline/luna.bash out/contrib/airline/minimalist.bash out/contrib/airline/molokai.bash out/contrib/airline/monochrome.bash out/contrib/airline/murmur.bash out/contrib/airline/night_owl.bash out/contrib/airline/nord_minimal.bash out/contrib/airline/onedark.bash out/contrib/airline/ouo.bash out/contrib/airline/owo.bash out/contrib/airline/papercolor.bash out/contrib/airline/peaksea.bash out/contrib/airline/powerlineish.bash out/contrib/airline/qwq.bash out/contrib/airline/raven.bash out/contrib/airline/ravenpower.bash out/contrib/airline/seagull.bash out/contrib/airline/selenized.bash out/contrib/airline/selenized_bw.bash out/contrib/airline/seoul256.bash out/contrib/airline/serene.bash out/contrib/airline/sierra.bash out/contrib/airline/silver.bash out/contrib/airline/simple.bash out/contrib/airline/soda.bash out/contrib/airline/sol.bash out/contrib/airline/solarized.bash out/contrib/airline/solarized_flood.bash out/contrib/airline/supernova.bash out/contrib/airline/term.bash out/contrib/airline/term_light.bash out/contrib/airline/tomorrow.bash out/contrib/airline/transparent.bash out/contrib/airline/ubaryd.bash out/contrib/airline/understated.bash out/contrib/airline/violet.bash out/contrib/airline/wombat.bash out/contrib/airline/xtermlight.bash out/contrib/airline/zenburn.bash out/contrib/config/execmark.bash out/contrib/config/github265-prompt-path-level-colors.bash out/contrib/config/github288-filter-sabbrev-completion.bash out/contrib/config/github296-named-execmark.bash out/contrib/config/github302-perlre-server.bash out/contrib/config/github481-elapsed-mark-without-command.bash out/contrib/config/github483-elapsed-mark-on-error.bash out/contrib/config/github499-append-to-last-modified.bash out/contrib/integration/bash-completion.bash out/contrib/integration/bash-preexec.bash out/contrib/integration/fzf-completion.bash out/contrib/integration/fzf-git.bash out/contrib/integration/fzf-initialize.bash out/contrib/integration/fzf-key-bindings.bash out/contrib/integration/fzf-menu.bash out/contrib/integration/fzf.common.bash out/contrib/integration/nix-completion.bash out/contrib/integration/skim-completion.bash out/contrib/integration/skim-initialize.bash out/contrib/integration/skim-key-bindings.bash out/contrib/integration/zoxide.bash out/contrib/layer/pattern.bash out/contrib/layer/sample.RandomColor.bash out/contrib/layer/sample.RandomColor2.bash out/contrib/layer/sample.adapter.bash out/contrib/scheme/base16.bash out/contrib/scheme/catppuccin_mocha.bash out/contrib/scheme/default.bash out/contrib/syntax/edit.named-command.bash out/contrib/colorglass.base16.dat out/contrib/bash-preexec.bash out/contrib/fzf-completion.bash out/contrib/fzf-git.bash out/contrib/fzf-initialize.bash out/contrib/fzf-key-bindings.bash out/doc/README.md out/doc/README-ja_JP.md out/doc/CONTRIBUTING.md out/doc/ChangeLog.md out/doc/Release.md out/doc/contrib/README-ja.md out/doc/contrib/README.md out/doc/contrib/colorglass.md out/doc/contrib/prompt.md out/doc/contrib/integration/fzf.md out/licenses/LICENSE.md out/licenses/contrib/LICENSE out/ble.dep make[1]: Leaving directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' dh_clean rm -f debian/debhelper-build-stamp rm -rf debian/.debhelper/ rm -f -- debian/ble.sh.substvars debian/ble.sh-airline-themes.substvars debian/files rm -fr -- debian/ble.sh/ debian/tmp/ debian/ble.sh-airline-themes/ find . \( \( \ \( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o -type f -a \ \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \ -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \ -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \ -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \ \) -exec rm -f {} + \) -o \ \( -type d -a \( -name autom4te.cache -o -name __pycache__ \) -prune -exec rm -rf {} + \) \) debian/rules binary dh binary dh_update_autotools_config dh_autoreconf dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' dh_auto_build -- FULLVER=0.4.0~git20250321.d4c812b-1 make -j12 "INSTALL=install --strip-program=true" FULLVER=0.4.0\~git20250321.d4c812b-1 make[2]: Entering directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' mkdir -p out mkdir -p out/lib /usr/bin/gawk -f make/mwg_pp.awk lib/benchmark.ksh > out/lib/benchmark.ksh mkdir -p out/contrib mkdir -p out/contrib/airline mkdir -p out/contrib/config mkdir -p out/contrib/integration mkdir -p out/contrib/layer mkdir -p out/contrib/scheme mkdir -p out/contrib/syntax ln -sf integration/bash-preexec.bash out/contrib/bash-preexec.bash ln -sf integration/fzf-completion.bash out/contrib/fzf-completion.bash ln -sf integration/fzf-git.bash out/contrib/fzf-git.bash ln -sf integration/fzf-initialize.bash out/contrib/fzf-initialize.bash ln -sf integration/fzf-key-bindings.bash out/contrib/fzf-key-bindings.bash mkdir -p out/doc mkdir -p out/doc/contrib mkdir -p out/doc/contrib/integration mkdir -p out/licenses mkdir -p out/licenses/contrib DEPENDENCIES_PHONY=1 DEPENDENCIES_OUTPUT="out/ble.dep" DEPENDENCIES_TARGET="out/ble.sh" \ FULLVER=0.4.0~git20250321.d4c812b-1 \ BLE_GIT_COMMIT_ID="unknown" \ BLE_GIT_BRANCH="unknown" \ BUILD_GIT_VERSION="unknown" \ BUILD_MAKE_VERSION="GNU Make 4.4.1" \ BUILD_GAWK_VERSION="GNU Awk 5.3.2, API 4.0, PMA Avon 8-g1, (GNU MPFR 4.2.2, GNU MP 6.3.0)" \ /usr/bin/gawk -f make/mwg_pp.awk ble.pp >/dev/null cp lib/keymap.emacs.sh out/lib/keymap.emacs.sh cp lib/keymap.vi.sh out/lib/keymap.vi.sh cp lib/keymap.vi_digraph.sh out/lib/keymap.vi_digraph.sh cp lib/keymap.vi_digraph.txt out/lib/keymap.vi_digraph.txt cp lib/init-term.sh out/lib/init-term.sh cp lib/init-bind.sh out/lib/init-bind.sh cp lib/init-cmap.sh out/lib/init-cmap.sh /usr/bin/gawk -f make/mwg_pp.awk lib/init-msys1.sh > out/lib/init-msys1.sh cp lib/core-complete.sh out/lib/core-complete.sh /usr/bin/gawk -f make/mwg_pp.awk lib/core-syntax.sh > out/lib/core-syntax.sh cp lib/core-test.sh out/lib/core-test.sh cp lib/core-cmdspec.sh out/lib/core-cmdspec.sh cp lib/core-debug.sh out/lib/core-debug.sh cp lib/core-edit.ignoreeof-messages.txt out/lib/core-edit.ignoreeof-messages.txt cp lib/core-decode.emacs-rlfunc.txt out/lib/core-decode.emacs-rlfunc.txt cp lib/core-decode.vi_imap-rlfunc.txt out/lib/core-decode.vi_imap-rlfunc.txt cp lib/core-decode.vi_nmap-rlfunc.txt out/lib/core-decode.vi_nmap-rlfunc.txt cp lib/vim-surround.sh out/lib/vim-surround.sh cp lib/vim-arpeggio.sh out/lib/vim-arpeggio.sh cp lib/vim-airline.sh out/lib/vim-airline.sh cp lib/test-bash.sh out/lib/test-bash.sh cp lib/test-main.sh out/lib/test-main.sh cp lib/test-util.sh out/lib/test-util.sh /usr/bin/gawk -f make/mwg_pp.awk lib/test-canvas.sh > out/lib/test-canvas.sh cp lib/test-decode.sh out/lib/test-decode.sh cp lib/test-edit.sh out/lib/test-edit.sh cp lib/test-syntax.sh out/lib/test-syntax.sh cp lib/test-complete.sh out/lib/test-complete.sh cp lib/test-keymap.vi.sh out/lib/test-keymap.vi.sh cp lib/util.bgproc.sh out/lib/util.bgproc.sh cp contrib/colorglass.bash out/contrib/colorglass.bash cp contrib/histdb.bash out/contrib/histdb.bash cp contrib/prompt-defer.bash out/contrib/prompt-defer.bash cp contrib/prompt-elapsed.bash out/contrib/prompt-elapsed.bash cp contrib/prompt-git.bash out/contrib/prompt-git.bash cp contrib/prompt-vim-mode.bash out/contrib/prompt-vim-mode.bash cp contrib/airline/alduin.bash out/contrib/airline/alduin.bash cp contrib/airline/angr.bash out/contrib/airline/angr.bash cp contrib/airline/apprentice.bash out/contrib/airline/apprentice.bash cp contrib/airline/atomic.bash out/contrib/airline/atomic.bash cp contrib/airline/ayu_dark.bash out/contrib/airline/ayu_dark.bash cp contrib/airline/ayu_light.bash out/contrib/airline/ayu_light.bash cp contrib/airline/ayu_mirage.bash out/contrib/airline/ayu_mirage.bash cp contrib/airline/badwolf.bash out/contrib/airline/badwolf.bash cp contrib/airline/base16.bash out/contrib/airline/base16.bash cp contrib/airline/base16_3024.bash out/contrib/airline/base16_3024.bash cp contrib/airline/base16_adwaita.bash out/contrib/airline/base16_adwaita.bash cp contrib/airline/base16_apathy.bash out/contrib/airline/base16_apathy.bash cp contrib/airline/base16_ashes.bash out/contrib/airline/base16_ashes.bash cp contrib/airline/base16_atelier_cave.bash out/contrib/airline/base16_atelier_cave.bash cp contrib/airline/base16_atelier_cave_light.bash out/contrib/airline/base16_atelier_cave_light.bash cp contrib/airline/base16_atelier_dune.bash out/contrib/airline/base16_atelier_dune.bash cp contrib/airline/base16_atelier_dune_light.bash out/contrib/airline/base16_atelier_dune_light.bash cp contrib/airline/base16_atelier_estuary.bash out/contrib/airline/base16_atelier_estuary.bash cp contrib/airline/base16_atelier_estuary_light.bash out/contrib/airline/base16_atelier_estuary_light.bash cp contrib/airline/base16_atelier_forest.bash out/contrib/airline/base16_atelier_forest.bash cp contrib/airline/base16_atelier_forest_light.bash out/contrib/airline/base16_atelier_forest_light.bash cp contrib/airline/base16_atelier_heath.bash out/contrib/airline/base16_atelier_heath.bash cp contrib/airline/base16_atelier_heath_light.bash out/contrib/airline/base16_atelier_heath_light.bash cp contrib/airline/base16_atelier_lakeside.bash out/contrib/airline/base16_atelier_lakeside.bash cp contrib/airline/base16_atelier_lakeside_light.bash out/contrib/airline/base16_atelier_lakeside_light.bash cp contrib/airline/base16_atelier_plateau.bash out/contrib/airline/base16_atelier_plateau.bash cp contrib/airline/base16_atelier_plateau_light.bash out/contrib/airline/base16_atelier_plateau_light.bash cp contrib/airline/base16_atelier_savanna.bash out/contrib/airline/base16_atelier_savanna.bash cp contrib/airline/base16_atelier_savanna_light.bash out/contrib/airline/base16_atelier_savanna_light.bash cp contrib/airline/base16_atelier_seaside.bash out/contrib/airline/base16_atelier_seaside.bash cp contrib/airline/base16_atelier_seaside_light.bash out/contrib/airline/base16_atelier_seaside_light.bash cp contrib/airline/base16_atelier_sulphurpool.bash out/contrib/airline/base16_atelier_sulphurpool.bash cp contrib/airline/base16_atelier_sulphurpool_light.bash out/contrib/airline/base16_atelier_sulphurpool_light.bash cp contrib/airline/base16_atelierdune.bash out/contrib/airline/base16_atelierdune.bash cp contrib/airline/base16_atelierforest.bash out/contrib/airline/base16_atelierforest.bash cp contrib/airline/base16_atelierheath.bash out/contrib/airline/base16_atelierheath.bash cp contrib/airline/base16_atelierlakeside.bash out/contrib/airline/base16_atelierlakeside.bash cp contrib/airline/base16_atelierseaside.bash out/contrib/airline/base16_atelierseaside.bash cp contrib/airline/base16_atlas.bash out/contrib/airline/base16_atlas.bash cp contrib/airline/base16_bespin.bash out/contrib/airline/base16_bespin.bash cp contrib/airline/base16_black_metal.bash out/contrib/airline/base16_black_metal.bash cp contrib/airline/base16_black_metal_bathory.bash out/contrib/airline/base16_black_metal_bathory.bash cp contrib/airline/base16_black_metal_burzum.bash out/contrib/airline/base16_black_metal_burzum.bash cp contrib/airline/base16_black_metal_dark_funeral.bash out/contrib/airline/base16_black_metal_dark_funeral.bash cp contrib/airline/base16_black_metal_gorgoroth.bash out/contrib/airline/base16_black_metal_gorgoroth.bash cp contrib/airline/base16_black_metal_immortal.bash out/contrib/airline/base16_black_metal_immortal.bash cp contrib/airline/base16_black_metal_khold.bash out/contrib/airline/base16_black_metal_khold.bash cp contrib/airline/base16_black_metal_marduk.bash out/contrib/airline/base16_black_metal_marduk.bash cp contrib/airline/base16_black_metal_mayhem.bash out/contrib/airline/base16_black_metal_mayhem.bash cp contrib/airline/base16_black_metal_nile.bash out/contrib/airline/base16_black_metal_nile.bash cp contrib/airline/base16_black_metal_venom.bash out/contrib/airline/base16_black_metal_venom.bash cp contrib/airline/base16_brewer.bash out/contrib/airline/base16_brewer.bash cp contrib/airline/base16_bright.bash out/contrib/airline/base16_bright.bash cp contrib/airline/base16_brogrammer.bash out/contrib/airline/base16_brogrammer.bash cp contrib/airline/base16_brushtrees.bash out/contrib/airline/base16_brushtrees.bash cp contrib/airline/base16_brushtrees_dark.bash out/contrib/airline/base16_brushtrees_dark.bash cp contrib/airline/base16_chalk.bash out/contrib/airline/base16_chalk.bash cp contrib/airline/base16_circus.bash out/contrib/airline/base16_circus.bash cp contrib/airline/base16_classic.bash out/contrib/airline/base16_classic.bash cp contrib/airline/base16_classic_dark.bash out/contrib/airline/base16_classic_dark.bash cp contrib/airline/base16_classic_light.bash out/contrib/airline/base16_classic_light.bash cp contrib/airline/base16_codeschool.bash out/contrib/airline/base16_codeschool.bash cp contrib/airline/base16_colors.bash out/contrib/airline/base16_colors.bash cp contrib/airline/base16_cupcake.bash out/contrib/airline/base16_cupcake.bash cp contrib/airline/base16_cupertino.bash out/contrib/airline/base16_cupertino.bash cp contrib/airline/base16_darktooth.bash out/contrib/airline/base16_darktooth.bash cp contrib/airline/base16_decaf.bash out/contrib/airline/base16_decaf.bash cp contrib/airline/base16_default.bash out/contrib/airline/base16_default.bash cp contrib/airline/base16_default_dark.bash out/contrib/airline/base16_default_dark.bash cp contrib/airline/base16_default_light.bash out/contrib/airline/base16_default_light.bash cp contrib/airline/base16_dracula.bash out/contrib/airline/base16_dracula.bash cp contrib/airline/base16_edge_dark.bash out/contrib/airline/base16_edge_dark.bash cp contrib/airline/base16_edge_light.bash out/contrib/airline/base16_edge_light.bash cp contrib/airline/base16_eighties.bash out/contrib/airline/base16_eighties.bash cp contrib/airline/base16_embers.bash out/contrib/airline/base16_embers.bash cp contrib/airline/base16_espresso.bash out/contrib/airline/base16_espresso.bash cp contrib/airline/base16_flat.bash out/contrib/airline/base16_flat.bash cp contrib/airline/base16_framer.bash out/contrib/airline/base16_framer.bash cp contrib/airline/base16_fruit_soda.bash out/contrib/airline/base16_fruit_soda.bash cp contrib/airline/base16_gigavolt.bash out/contrib/airline/base16_gigavolt.bash cp contrib/airline/base16_github.bash out/contrib/airline/base16_github.bash cp contrib/airline/base16_google.bash out/contrib/airline/base16_google.bash cp contrib/airline/base16_google_dark.bash out/contrib/airline/base16_google_dark.bash cp contrib/airline/base16_google_light.bash out/contrib/airline/base16_google_light.bash cp contrib/airline/base16_grayscale.bash out/contrib/airline/base16_grayscale.bash cp contrib/airline/base16_grayscale_dark.bash out/contrib/airline/base16_grayscale_dark.bash cp contrib/airline/base16_grayscale_light.bash out/contrib/airline/base16_grayscale_light.bash cp contrib/airline/base16_greenscreen.bash out/contrib/airline/base16_greenscreen.bash cp contrib/airline/base16_gruvbox_dark_hard.bash out/contrib/airline/base16_gruvbox_dark_hard.bash cp contrib/airline/base16_gruvbox_dark_medium.bash out/contrib/airline/base16_gruvbox_dark_medium.bash cp contrib/airline/base16_gruvbox_dark_pale.bash out/contrib/airline/base16_gruvbox_dark_pale.bash cp contrib/airline/base16_gruvbox_dark_soft.bash out/contrib/airline/base16_gruvbox_dark_soft.bash cp contrib/airline/base16_gruvbox_light_hard.bash out/contrib/airline/base16_gruvbox_light_hard.bash cp contrib/airline/base16_gruvbox_light_medium.bash out/contrib/airline/base16_gruvbox_light_medium.bash cp contrib/airline/base16_gruvbox_light_soft.bash out/contrib/airline/base16_gruvbox_light_soft.bash cp contrib/airline/base16_harmonic16.bash out/contrib/airline/base16_harmonic16.bash cp contrib/airline/base16_harmonic_dark.bash out/contrib/airline/base16_harmonic_dark.bash cp contrib/airline/base16_harmonic_light.bash out/contrib/airline/base16_harmonic_light.bash cp contrib/airline/base16_heetch.bash out/contrib/airline/base16_heetch.bash cp contrib/airline/base16_heetch_light.bash out/contrib/airline/base16_heetch_light.bash cp contrib/airline/base16_helios.bash out/contrib/airline/base16_helios.bash cp contrib/airline/base16_hopscotch.bash out/contrib/airline/base16_hopscotch.bash cp contrib/airline/base16_horizon_dark.bash out/contrib/airline/base16_horizon_dark.bash cp contrib/airline/base16_horizon_light.bash out/contrib/airline/base16_horizon_light.bash cp contrib/airline/base16_horizon_terminal_dark.bash out/contrib/airline/base16_horizon_terminal_dark.bash cp contrib/airline/base16_horizon_terminal_light.bash out/contrib/airline/base16_horizon_terminal_light.bash cp contrib/airline/base16_ia_dark.bash out/contrib/airline/base16_ia_dark.bash cp contrib/airline/base16_ia_light.bash out/contrib/airline/base16_ia_light.bash cp contrib/airline/base16_icy.bash out/contrib/airline/base16_icy.bash cp contrib/airline/base16_irblack.bash out/contrib/airline/base16_irblack.bash cp contrib/airline/base16_isotope.bash out/contrib/airline/base16_isotope.bash cp contrib/airline/base16_londontube.bash out/contrib/airline/base16_londontube.bash cp contrib/airline/base16_macintosh.bash out/contrib/airline/base16_macintosh.bash cp contrib/airline/base16_marrakesh.bash out/contrib/airline/base16_marrakesh.bash cp contrib/airline/base16_materia.bash out/contrib/airline/base16_materia.bash cp contrib/airline/base16_material.bash out/contrib/airline/base16_material.bash cp contrib/airline/base16_material_darker.bash out/contrib/airline/base16_material_darker.bash cp contrib/airline/base16_material_lighter.bash out/contrib/airline/base16_material_lighter.bash cp contrib/airline/base16_material_palenight.bash out/contrib/airline/base16_material_palenight.bash cp contrib/airline/base16_material_vivid.bash out/contrib/airline/base16_material_vivid.bash cp contrib/airline/base16_mellow_purple.bash out/contrib/airline/base16_mellow_purple.bash cp contrib/airline/base16_mexico_light.bash out/contrib/airline/base16_mexico_light.bash cp contrib/airline/base16_mocha.bash out/contrib/airline/base16_mocha.bash cp contrib/airline/base16_monokai.bash out/contrib/airline/base16_monokai.bash cp contrib/airline/base16_nord.bash out/contrib/airline/base16_nord.bash cp contrib/airline/base16_nova.bash out/contrib/airline/base16_nova.bash cp contrib/airline/base16_ocean.bash out/contrib/airline/base16_ocean.bash cp contrib/airline/base16_oceanicnext.bash out/contrib/airline/base16_oceanicnext.bash cp contrib/airline/base16_one_light.bash out/contrib/airline/base16_one_light.bash cp contrib/airline/base16_onedark.bash out/contrib/airline/base16_onedark.bash cp contrib/airline/base16_outrun_dark.bash out/contrib/airline/base16_outrun_dark.bash cp contrib/airline/base16_papercolor_dark.bash out/contrib/airline/base16_papercolor_dark.bash cp contrib/airline/base16_papercolor_light.bash out/contrib/airline/base16_papercolor_light.bash cp contrib/airline/base16_paraiso.bash out/contrib/airline/base16_paraiso.bash cp contrib/airline/base16_phd.bash out/contrib/airline/base16_phd.bash cp contrib/airline/base16_pico.bash out/contrib/airline/base16_pico.bash cp contrib/airline/base16_pop.bash out/contrib/airline/base16_pop.bash cp contrib/airline/base16_porple.bash out/contrib/airline/base16_porple.bash cp contrib/airline/base16_railscasts.bash out/contrib/airline/base16_railscasts.bash cp contrib/airline/base16_rebecca.bash out/contrib/airline/base16_rebecca.bash cp contrib/airline/base16_sandcastle.bash out/contrib/airline/base16_sandcastle.bash cp contrib/airline/base16_seti.bash out/contrib/airline/base16_seti.bash cp contrib/airline/base16_shapeshifter.bash out/contrib/airline/base16_shapeshifter.bash cp contrib/airline/base16_shell.bash out/contrib/airline/base16_shell.bash cp contrib/airline/base16_snazzy.bash out/contrib/airline/base16_snazzy.bash cp contrib/airline/base16_solarflare.bash out/contrib/airline/base16_solarflare.bash cp contrib/airline/base16_solarized.bash out/contrib/airline/base16_solarized.bash cp contrib/airline/base16_solarized_dark.bash out/contrib/airline/base16_solarized_dark.bash cp contrib/airline/base16_solarized_light.bash out/contrib/airline/base16_solarized_light.bash cp contrib/airline/base16_spacemacs.bash out/contrib/airline/base16_spacemacs.bash cp contrib/airline/base16_summerfruit.bash out/contrib/airline/base16_summerfruit.bash cp contrib/airline/base16_summerfruit_dark.bash out/contrib/airline/base16_summerfruit_dark.bash cp contrib/airline/base16_summerfruit_light.bash out/contrib/airline/base16_summerfruit_light.bash cp contrib/airline/base16_synth_midnight_dark.bash out/contrib/airline/base16_synth_midnight_dark.bash cp contrib/airline/base16_tomorrow.bash out/contrib/airline/base16_tomorrow.bash cp contrib/airline/base16_tomorrow_night.bash out/contrib/airline/base16_tomorrow_night.bash cp contrib/airline/base16_tomorrow_night_eighties.bash out/contrib/airline/base16_tomorrow_night_eighties.bash cp contrib/airline/base16_tube.bash out/contrib/airline/base16_tube.bash cp contrib/airline/base16_twilight.bash out/contrib/airline/base16_twilight.bash cp contrib/airline/base16_unikitty_dark.bash out/contrib/airline/base16_unikitty_dark.bash cp contrib/airline/base16_unikitty_light.bash out/contrib/airline/base16_unikitty_light.bash cp contrib/airline/base16_vim.bash out/contrib/airline/base16_vim.bash cp contrib/airline/base16_woodland.bash out/contrib/airline/base16_woodland.bash cp contrib/airline/base16_xcode_dusk.bash out/contrib/airline/base16_xcode_dusk.bash cp contrib/airline/base16_zenburn.bash out/contrib/airline/base16_zenburn.bash cp contrib/airline/base16color.bash out/contrib/airline/base16color.bash cp contrib/airline/behelit.bash out/contrib/airline/behelit.bash cp contrib/airline/biogoo.bash out/contrib/airline/biogoo.bash cp contrib/airline/blood_red.bash out/contrib/airline/blood_red.bash cp contrib/airline/bubblegum.bash out/contrib/airline/bubblegum.bash cp contrib/airline/cobalt2.bash out/contrib/airline/cobalt2.bash cp contrib/airline/cool.bash out/contrib/airline/cool.bash cp contrib/airline/cyberpunk.bash out/contrib/airline/cyberpunk.bash cp contrib/airline/dark.bash out/contrib/airline/dark.bash cp contrib/airline/dark_minimal.bash out/contrib/airline/dark_minimal.bash cp contrib/airline/desertink.bash out/contrib/airline/desertink.bash cp contrib/airline/deus.bash out/contrib/airline/deus.bash cp contrib/airline/distinguished.bash out/contrib/airline/distinguished.bash cp contrib/airline/durant.bash out/contrib/airline/durant.bash cp contrib/airline/fairyfloss.bash out/contrib/airline/fairyfloss.bash cp contrib/airline/fruit_punch.bash out/contrib/airline/fruit_punch.bash cp contrib/airline/google_dark.bash out/contrib/airline/google_dark.bash cp contrib/airline/google_light.bash out/contrib/airline/google_light.bash cp contrib/airline/hybrid.bash out/contrib/airline/hybrid.bash cp contrib/airline/hybridline.bash out/contrib/airline/hybridline.bash cp contrib/airline/jellybeans.bash out/contrib/airline/jellybeans.bash cp contrib/airline/jet.bash out/contrib/airline/jet.bash cp contrib/airline/kalisi.bash out/contrib/airline/kalisi.bash cp contrib/airline/kolor.bash out/contrib/airline/kolor.bash cp contrib/airline/laederon.bash out/contrib/airline/laederon.bash cp contrib/airline/landscape.bash out/contrib/airline/landscape.bash cp contrib/airline/lessnoise.bash out/contrib/airline/lessnoise.bash cp contrib/airline/light.bash out/contrib/airline/light.bash cp contrib/airline/lighthaus.bash out/contrib/airline/lighthaus.bash cp contrib/airline/lucius.bash out/contrib/airline/lucius.bash cp contrib/airline/luna.bash out/contrib/airline/luna.bash cp contrib/airline/minimalist.bash out/contrib/airline/minimalist.bash cp contrib/airline/molokai.bash out/contrib/airline/molokai.bash cp contrib/airline/monochrome.bash out/contrib/airline/monochrome.bash cp contrib/airline/murmur.bash out/contrib/airline/murmur.bash cp contrib/airline/night_owl.bash out/contrib/airline/night_owl.bash cp contrib/airline/nord_minimal.bash out/contrib/airline/nord_minimal.bash cp contrib/airline/onedark.bash out/contrib/airline/onedark.bash cp contrib/airline/ouo.bash out/contrib/airline/ouo.bash cp contrib/airline/owo.bash out/contrib/airline/owo.bash cp contrib/airline/papercolor.bash out/contrib/airline/papercolor.bash cp contrib/airline/peaksea.bash out/contrib/airline/peaksea.bash cp contrib/airline/powerlineish.bash out/contrib/airline/powerlineish.bash cp contrib/airline/qwq.bash out/contrib/airline/qwq.bash cp contrib/airline/raven.bash out/contrib/airline/raven.bash cp contrib/airline/ravenpower.bash out/contrib/airline/ravenpower.bash cp contrib/airline/seagull.bash out/contrib/airline/seagull.bash cp contrib/airline/selenized.bash out/contrib/airline/selenized.bash cp contrib/airline/selenized_bw.bash out/contrib/airline/selenized_bw.bash cp contrib/airline/seoul256.bash out/contrib/airline/seoul256.bash cp contrib/airline/serene.bash out/contrib/airline/serene.bash cp contrib/airline/sierra.bash out/contrib/airline/sierra.bash cp contrib/airline/silver.bash out/contrib/airline/silver.bash cp contrib/airline/simple.bash out/contrib/airline/simple.bash cp contrib/airline/soda.bash out/contrib/airline/soda.bash cp contrib/airline/sol.bash out/contrib/airline/sol.bash cp contrib/airline/solarized.bash out/contrib/airline/solarized.bash cp contrib/airline/solarized_flood.bash out/contrib/airline/solarized_flood.bash cp contrib/airline/supernova.bash out/contrib/airline/supernova.bash cp contrib/airline/term.bash out/contrib/airline/term.bash cp contrib/airline/term_light.bash out/contrib/airline/term_light.bash cp contrib/airline/tomorrow.bash out/contrib/airline/tomorrow.bash cp contrib/airline/transparent.bash out/contrib/airline/transparent.bash cp contrib/airline/ubaryd.bash out/contrib/airline/ubaryd.bash cp contrib/airline/understated.bash out/contrib/airline/understated.bash cp contrib/airline/violet.bash out/contrib/airline/violet.bash cp contrib/airline/wombat.bash out/contrib/airline/wombat.bash cp contrib/airline/xtermlight.bash out/contrib/airline/xtermlight.bash cp contrib/airline/zenburn.bash out/contrib/airline/zenburn.bash cp contrib/config/execmark.bash out/contrib/config/execmark.bash cp contrib/config/github265-prompt-path-level-colors.bash out/contrib/config/github265-prompt-path-level-colors.bash cp contrib/config/github288-filter-sabbrev-completion.bash out/contrib/config/github288-filter-sabbrev-completion.bash cp contrib/config/github296-named-execmark.bash out/contrib/config/github296-named-execmark.bash cp contrib/config/github302-perlre-server.bash out/contrib/config/github302-perlre-server.bash cp contrib/config/github481-elapsed-mark-without-command.bash out/contrib/config/github481-elapsed-mark-without-command.bash cp contrib/config/github483-elapsed-mark-on-error.bash out/contrib/config/github483-elapsed-mark-on-error.bash cp contrib/config/github499-append-to-last-modified.bash out/contrib/config/github499-append-to-last-modified.bash cp contrib/integration/bash-completion.bash out/contrib/integration/bash-completion.bash cp contrib/integration/bash-preexec.bash out/contrib/integration/bash-preexec.bash cp contrib/integration/fzf-completion.bash out/contrib/integration/fzf-completion.bash cp contrib/integration/fzf-git.bash out/contrib/integration/fzf-git.bash cp contrib/integration/fzf-initialize.bash out/contrib/integration/fzf-initialize.bash cp contrib/integration/fzf-key-bindings.bash out/contrib/integration/fzf-key-bindings.bash cp contrib/integration/fzf-menu.bash out/contrib/integration/fzf-menu.bash cp contrib/integration/fzf.common.bash out/contrib/integration/fzf.common.bash cp contrib/integration/nix-completion.bash out/contrib/integration/nix-completion.bash cp contrib/integration/skim-completion.bash out/contrib/integration/skim-completion.bash cp contrib/integration/skim-initialize.bash out/contrib/integration/skim-initialize.bash cp contrib/integration/skim-key-bindings.bash out/contrib/integration/skim-key-bindings.bash cp contrib/integration/zoxide.bash out/contrib/integration/zoxide.bash cp contrib/layer/pattern.bash out/contrib/layer/pattern.bash cp contrib/layer/sample.RandomColor.bash out/contrib/layer/sample.RandomColor.bash cp contrib/layer/sample.RandomColor2.bash out/contrib/layer/sample.RandomColor2.bash cp contrib/layer/sample.adapter.bash out/contrib/layer/sample.adapter.bash cp contrib/scheme/base16.bash out/contrib/scheme/base16.bash cp contrib/scheme/catppuccin_mocha.bash out/contrib/scheme/catppuccin_mocha.bash cp contrib/scheme/default.bash out/contrib/scheme/default.bash cp contrib/syntax/edit.named-command.bash out/contrib/syntax/edit.named-command.bash cp contrib/colorglass.base16.dat out/contrib/colorglass.base16.dat cp README.md out/doc/README.md cp README-ja_JP.md out/doc/README-ja_JP.md cp docs/CONTRIBUTING.md out/doc/CONTRIBUTING.md cp docs/ChangeLog.md out/doc/ChangeLog.md cp docs/Release.md out/doc/Release.md cp contrib/README-ja.md out/doc/contrib/README-ja.md cp contrib/README.md out/doc/contrib/README.md cp contrib/colorglass.md out/doc/contrib/colorglass.md cp contrib/prompt.md out/doc/contrib/prompt.md cp contrib/integration/fzf.md out/doc/contrib/integration/fzf.md cp LICENSE.md out/licenses/LICENSE.md cp contrib/LICENSE out/licenses/contrib/LICENSE make[2]: Leaving directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' make[1]: Leaving directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' dh_auto_test make -j12 check make[1]: Entering directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' bash make_command.sh check ble/term.sh: updating tput cache for TERM=unknown... ble/term.sh: updating tput cache for TERM=unknown... done MACHTYPE: aarch64-unknown-linux-gnu BLE_VERSION: 0.4.0~git20250321.d4c812b-1 BASH_VERSION: 5.2.37(1)-release locale: LANG=C LC_ALL= LC_COLLATE=C /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-bash.sh:156: a=あ ret=${#a} --- 688559.ret.expect 2026-08-20 05:03:44.292902818 +0000 +++ 688559.ret.result 2026-08-20 05:03:44.292902818 +0000 @@ -1 +1 @@ -1 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-bash.sh:321: ret=あ ret=${#ret[0]} --- 688577.ret.expect 2026-08-20 05:03:44.368902818 +0000 +++ 688577.ret.result 2026-08-20 05:03:44.368902818 +0000 @@ -1 +1 @@ -1 +3  97.2% [section] bash: 70/72 (2 fail, 0 crash, 0 skip) 100.0% [section] ble/main: 29/29 (0 fail, 0 crash, 0 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:808: ble/string#create-unicode-progress-bar 1 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.712902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.712902818 +0000 @@ -1 +1 @@ -▏ +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:809: ble/string#create-unicode-progress-bar 2 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.744902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.744902818 +0000 @@ -1 +1 @@ -▎ +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:810: ble/string#create-unicode-progress-bar 3 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.780902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.780902818 +0000 @@ -1 +1 @@ -▍ +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:811: ble/string#create-unicode-progress-bar 4 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.812902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.812902818 +0000 @@ -1 +1 @@ -▌ +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:812: ble/string#create-unicode-progress-bar 5 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.844902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.844902818 +0000 @@ -1 +1 @@ -▋ +5 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:813: ble/string#create-unicode-progress-bar 6 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.876902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.876902818 +0000 @@ -1 +1 @@ -▊ +6 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:814: ble/string#create-unicode-progress-bar 7 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.908902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.908902818 +0000 @@ -1 +1 @@ -▉ +7 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:815: ble/string#create-unicode-progress-bar 8 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.944902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.944902818 +0000 @@ -1 +1 @@ -█ +* /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:816: ble/string#create-unicode-progress-bar 9 24 3 --- 689035.ret.expect 2026-08-20 05:03:46.976902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:46.976902818 +0000 @@ -1 +1 @@ -█▏ +*1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:817: ble/string#create-unicode-progress-bar 15 24 3 --- 689035.ret.expect 2026-08-20 05:03:47.016902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.016902818 +0000 @@ -1 +1 @@ -█▉ +*7 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:818: ble/string#create-unicode-progress-bar 16 24 3 --- 689035.ret.expect 2026-08-20 05:03:47.044902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.044902818 +0000 @@ -1 +1 @@ -██ +** /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:819: ble/string#create-unicode-progress-bar 17 24 3 --- 689035.ret.expect 2026-08-20 05:03:47.056902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.056902818 +0000 @@ -1 +1 @@ -██▏ +**1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:820: ble/string#create-unicode-progress-bar 24 24 3 --- 689035.ret.expect 2026-08-20 05:03:47.076902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.076902818 +0000 @@ -1 +1 @@ -███ +*** /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:821: ble/string#create-unicode-progress-bar 0 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.096902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.096902818 +0000 @@ -1 +1 @@ -█ +* /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:822: ble/string#create-unicode-progress-bar 1 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.128902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.128902818 +0000 @@ -1 +1 @@ -▏▏ +11 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:823: ble/string#create-unicode-progress-bar 2 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.148902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.148902818 +0000 @@ -1 +1 @@ -▎▎ +22 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:824: ble/string#create-unicode-progress-bar 3 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.180902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.180902818 +0000 @@ -1 +1 @@ -▍▍ +33 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:825: ble/string#create-unicode-progress-bar 4 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.200902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.200902818 +0000 @@ -1 +1 @@ -▌▌ +44 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:826: ble/string#create-unicode-progress-bar 5 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.228902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.228902818 +0000 @@ -1 +1 @@ -▋▋ +55 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:827: ble/string#create-unicode-progress-bar 6 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.268902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.268902818 +0000 @@ -1 +1 @@ -▊▊ +66 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:828: ble/string#create-unicode-progress-bar 7 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.296902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.296902818 +0000 @@ -1 +1 @@ -▉▉ +77 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:829: ble/string#create-unicode-progress-bar 8 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.332902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.332902818 +0000 @@ -1 +1 @@ - █ + * /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:830: ble/string#create-unicode-progress-bar 9 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.368902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.368902818 +0000 @@ -1 +1 @@ - ▏▏ + 11 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:831: ble/string#create-unicode-progress-bar 15 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.400902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.400902818 +0000 @@ -1 +1 @@ - ▉▉ + 77 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:832: ble/string#create-unicode-progress-bar 16 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.436902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.436902818 +0000 @@ -1 +1 @@ - █ + * /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:833: ble/string#create-unicode-progress-bar 17 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.468902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.468902818 +0000 @@ -1 +1 @@ - ▏▏ + 11 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:834: ble/string#create-unicode-progress-bar 24 24 4 unlimited --- 689035.ret.expect 2026-08-20 05:03:47.500902818 +0000 +++ 689035.ret.result 2026-08-20 05:03:47.500902818 +0000 @@ -1 +1 @@ -█ +* /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:1999: ble/util/s2c μ --- 689817.ret.expect 2026-08-20 05:03:52.572902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.572902818 +0000 @@ -1 +1 @@ -956 +206 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2000: ble/util/c2s 956 --- 689817.ret.expect 2026-08-20 05:03:52.604902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.604902818 +0000 @@ -1 +1 @@ -μ +\u03BC /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2001: ble/util/s2c あ --- 689817.ret.expect 2026-08-20 05:03:52.636902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.636902818 +0000 @@ -1 +1 @@ -12354 +227 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2002: ble/util/c2s 12354 --- 689817.ret.expect 2026-08-20 05:03:52.672902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.672902818 +0000 @@ -1 +1 @@ -あ +\u3042 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2006: ble/util/s2c μν --- 689817.ret.expect 2026-08-20 05:03:52.708902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.708902818 +0000 @@ -1 +1 @@ -956 +206 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2007: ble/util/s2c あいう --- 689817.ret.expect 2026-08-20 05:03:52.740902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.740902818 +0000 @@ -1 +1 @@ -12354 +227 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2011: ble/util/c2s.cached 956 --- 689817.ret.expect 2026-08-20 05:03:52.776902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.776902818 +0000 @@ -1 +1 @@ -μ +\u03BC /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2012: ble/util/c2s.cached 12354 --- 689817.ret.expect 2026-08-20 05:03:52.808902818 +0000 +++ 689817.ret.result 2026-08-20 05:03:52.808902818 +0000 @@ -1 +1 @@ -あ +\u3042 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2039: ble/util/s2chars あいう; ret="${ret[*]}" --- 689849.ret.expect 2026-08-20 05:03:52.896902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:52.896902818 +0000 @@ -1 +1 @@ -12354 12356 12358 +227 129 130 227 129 132 227 129 134 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2040: ble/util/chars2s 12354 12356 12358 --- 689849.ret.expect 2026-08-20 05:03:52.928902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:52.928902818 +0000 @@ -1 +1 @@ -あいう +\u3042\u3044\u3046 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2045: ble/util/s2chars μ; ret="${ret[*]}" --- 689849.ret.expect 2026-08-20 05:03:52.964902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:52.964902818 +0000 @@ -1 +1 @@ -956 +206 188 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2046: ble/util/s2chars あ; ret="${ret[*]}" --- 689849.ret.expect 2026-08-20 05:03:52.996902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:52.996902818 +0000 @@ -1 +1 @@ -12354 +227 129 130 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2050: ble/util/chars2s 956 --- 689849.ret.expect 2026-08-20 05:03:53.032902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:53.032902818 +0000 @@ -1 +1 @@ -μ +\u03BC /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2051: ble/util/chars2s 12354 --- 689849.ret.expect 2026-08-20 05:03:53.064902818 +0000 +++ 689849.ret.result 2026-08-20 05:03:53.064902818 +0000 @@ -1 +1 @@ -あ +\u3042 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2060: ble/util/c2keyseq 956 --- 689869.ret.expect 2026-08-20 05:03:53.292902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.292902818 +0000 @@ -1 +1 @@ -μ +\u03BC /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2061: ble/util/chars2keyseq 956 --- 689869.ret.expect 2026-08-20 05:03:53.308902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.308902818 +0000 @@ -1 +1 @@ -μ +\u03BC /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2062: ble/util/keyseq2chars 'μ'; ret="${ret[*]}" --- 689869.ret.expect 2026-08-20 05:03:53.316902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.316902818 +0000 @@ -1 +1 @@ -956 +206 188 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2063: ble/util/chars2keyseq 98 956 99 --- 689869.ret.expect 2026-08-20 05:03:53.328902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.328902818 +0000 @@ -1 +1 @@ -bμc +b\u03BCc /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2064: ble/util/keyseq2chars 'bμc'; ret="${ret[*]}" --- 689869.ret.expect 2026-08-20 05:03:53.336902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.336902818 +0000 @@ -1 +1 @@ -98 956 99 +98 206 188 99 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2060: ble/util/c2keyseq 12354 --- 689869.ret.expect 2026-08-20 05:03:53.348902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.348902818 +0000 @@ -1 +1 @@ -あ +\u3042 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2061: ble/util/chars2keyseq 12354 --- 689869.ret.expect 2026-08-20 05:03:53.356902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.356902818 +0000 @@ -1 +1 @@ -あ +\u3042 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2062: ble/util/keyseq2chars 'あ'; ret="${ret[*]}" --- 689869.ret.expect 2026-08-20 05:03:53.384902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.384902818 +0000 @@ -1 +1 @@ -12354 +227 129 130 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2063: ble/util/chars2keyseq 98 12354 99 --- 689869.ret.expect 2026-08-20 05:03:53.396902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.396902818 +0000 @@ -1 +1 @@ -bあc +b\u3042c /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-util.sh:2064: ble/util/keyseq2chars 'bあc'; ret="${ret[*]}" --- 689869.ret.expect 2026-08-20 05:03:53.408902818 +0000 +++ 689869.ret.result 2026-08-20 05:03:53.408902818 +0000 @@ -1 +1 @@ -98 12354 99 +98 227 129 130 99  95.8% [section] ble/util: 1187/1238 (51 fail, 0 crash, 6 skip) 100.0% [section] ble/canvas: 36/36 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/canvas/trace (relative:confine:measure-bbox): 5/5 (0 fail, 0 crash, 12 skip) 100.0% [section] ble/canvas/trace (cfuncs): 17/17 (0 fail, 0 crash, 1 skip) 100.0% [section] ble/canvas/trace (justify): 2/2 (0 fail, 0 crash, 28 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:367: ble/canvas/trace-text "これは日本語の文章";ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:53.952902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:53.952902818 +0000 @@ -1,2 +1,3 @@ -2,2,これは -日本語の文章 +10,2,M-^A +M-^SM-^B +M-^LM-^A /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:369: ble/canvas/trace-text "これは日本語の文章" nonewline;ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:53.992902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:53.992902818 +0000 @@ -1 +1 @@ -2,2,これは 日本語の文章 +10,2,M-^A M-^SM-^B M-^LM-^A /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:373: ble/canvas/trace-text "これは日本";ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:54.040902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:54.040902818 +0000 @@ -1,2 +1,2 @@ -0,1,これは日本 - +10,2,M-^AM-^SM-^BM-^L +M-^AM-^W /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:375: ble/canvas/trace-text "これは日本";ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:54.068902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:54.068902818 +0000 @@ -1 +1,2 @@ -0,1,これは日本 +6,2,M-^AM-^SM-^BM-^L +M-^A /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:377: ble/canvas/trace-text "これは日本" nonewline;ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:54.096902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:54.096902818 +0000 @@ -1 +1 @@ -10,0,これは日本 +10,2,M-^AM-^SM-^BM-^L M-^AM-^W /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:379: ble/canvas/trace-text "これは日本" nonewline;ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:54.128902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:54.128902818 +0000 @@ -1 +1 @@ -0,1,これは日本 +6,2,M-^AM-^SM-^BM-^L M-^A /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:383: ble/canvas/trace-text "あ い う" external-sgr;ret="$x,$y,$ret" --- 690008.ret.expect 2026-08-20 05:03:54.172902818 +0000 +++ 690008.ret.result 2026-08-20 05:03:54.172902818 +0000 @@ -1 +1 @@ -10,0,あ^Jい^Jう +12,0,M-^AM-^B^J  36.3% [section] ble/canvas/trace-text: 4/11 (7 fail, 0 crash, 0 skip) 100.0% [section] ble/canvas/textmap: 5/5 (0 fail, 0 crash, 0 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary '\U0001F1E6\U0001F1FF\U0001F1E6\U0001F1FF' 2 --- 690053.ret.expect 2026-08-20 05:03:54.408902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.408902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary '\U0001F1E6\U0001F1FF\U0001F1E6\U0001F1FF' 4 --- 690053.ret.expect 2026-08-20 05:03:54.448902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.448902818 +0000 @@ -1 +1 @@ -2 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'B\U0001F1E6\U0001F1FF\U0001F1E6\U0001F1FF\U0001F1E6' 3 --- 690053.ret.expect 2026-08-20 05:03:54.504902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.504902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'D\U0001F1E6\U0001F1FF\U0001F1E6\U0001F1FF\U0001F1E6' 5 --- 690053.ret.expect 2026-08-20 05:03:54.536902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.536902818 +0000 @@ -1 +1 @@ -3 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'H\u0600\u0600\u0600\u0600\U0001F1E6\U0001F1FF' 7 --- 690053.ret.expect 2026-08-20 05:03:54.580902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.580902818 +0000 @@ -1 +1 @@ -1 +6 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'I\u0600\u0600\u0600\u0600\U0001F1E6\U0001F1FF' 6 --- 690053.ret.expect 2026-08-20 05:03:54.604902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.604902818 +0000 @@ -1 +1 @@ -1 +5 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'J\u0600\u0600\u0600\u0600\U0001F1E6\U0001F1FF' 7 --- 690053.ret.expect 2026-08-20 05:03:54.636902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.636902818 +0000 @@ -1 +1 @@ -5 +6 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary '\U0001F636\u200D\U0001F32B\uFE0F' 2 --- 690053.ret.expect 2026-08-20 05:03:54.668902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.668902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary '\U0001F636\u200D\U0001F32B\uFE0F' 3 --- 690053.ret.expect 2026-08-20 05:03:54.688902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.688902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary '\U0001F636\u200D\U0001F32B\uFE0F' 4 --- 690053.ret.expect 2026-08-20 05:03:54.704902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.704902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'b\U0001F636\u200D\U0001F32B\uFE0F' 3 --- 690053.ret.expect 2026-08-20 05:03:54.744902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.744902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'c\U0001F636\u200D\U0001F32B\uFE0F' 4 --- 690053.ret.expect 2026-08-20 05:03:54.776902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.776902818 +0000 @@ -1 +1 @@ -1 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'd\U0001F636\u200D\U0001F32B\uFE0F' 5 --- 690053.ret.expect 2026-08-20 05:03:54.812902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.812902818 +0000 @@ -1 +1 @@ -1 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'f\u200D\U0001F32B\uFE0F' 2 --- 690053.ret.expect 2026-08-20 05:03:54.848902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.848902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:486: ble/unicode/GraphemeCluster/find-previous-boundary 'h\u200D\U0001F32B\uFE0F' 4 --- 690053.ret.expect 2026-08-20 05:03:54.888902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.888902818 +0000 @@ -1 +1 @@ -2 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:524: ble/test:canvas/textmap $'@\u0308@' stderr; ble/textmap#get-index-at -v ret 1 0 --- 690053.ret.expect 2026-08-20 05:03:54.936902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.936902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:525: ble/test:canvas/textmap $'@\u0308\u0308@' stderr; ble/textmap#get-index-at -v ret 1 0 --- 690053.ret.expect 2026-08-20 05:03:54.976902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:54.976902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:526: ble/test:canvas/textmap $'@\u0308\u0308\u0308@' stderr; ble/textmap#get-index-at -v ret 1 0 --- 690053.ret.expect 2026-08-20 05:03:55.000902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:55.000902818 +0000 @@ -1 +1 @@ -4 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:529: ble/util/is-unicode-output --- 690053.exit.expect 2026-08-20 05:03:55.012902818 +0000 +++ 690053.exit.result 2026-08-20 05:03:55.012902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:531: code=; ble/unicode/GraphemeCluster/s2break-right "$c1" 0 code; ret=$code --- 690053.ret.expect 2026-08-20 05:03:55.024902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:55.024902818 +0000 @@ -1 +1 @@ -65039 +92 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:532: code=; ble/unicode/GraphemeCluster/s2break-left "$c1" "${#c1}" code; ret=$code --- 690053.ret.expect 2026-08-20 05:03:55.036902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:55.036902818 +0000 @@ -1 +1 @@ -65039 +70 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:534: code=; ble/unicode/GraphemeCluster/s2break-right "$c2" 0 code; ret=$code --- 690053.ret.expect 2026-08-20 05:03:55.044902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:55.044902818 +0000 @@ -1 +1 @@ -128721 +92 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:535: code=; ble/unicode/GraphemeCluster/s2break-left "$c2" "${#c2}" code; ret=$code --- 690053.ret.expect 2026-08-20 05:03:55.056902818 +0000 +++ 690053.ret.result 2026-08-20 05:03:55.056902818 +0000 @@ -1 +1 @@ -128721 +49  70.1% [section] ble/canvas/GraphemeCluster/c2break: 54/77 (23 fail, 0 crash, 0 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:03:55.152902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.152902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.192902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:03:55.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.256902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.300902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.300902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:03:55.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.356902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.396902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:03:55.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.444902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.468902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U200C' 2 --- 690175.ret.expect 2026-08-20 05:03:55.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.560902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.560902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:03:55.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.600902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:03:55.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.640902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.688902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:03:55.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.740902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.784902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:03:55.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.876902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:03:55.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:55.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.948902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:03:55.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:55.980902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:03:56.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.016902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.052902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:03:56.104902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.104902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.144902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:03:56.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.188902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.228902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.228902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:03:56.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.284902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.320902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:03:56.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.372902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.384902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.384902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:03:56.428902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.428902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.464902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0903' 2 --- 690175.ret.expect 2026-08-20 05:03:56.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.500902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:03:56.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.552902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:03:56.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.580902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.592902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:03:56.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.620902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.620902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:03:56.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.660902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.660902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:03:56.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.680902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.692902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:03:56.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.728902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0300' 2 --- 690175.ret.expect 2026-08-20 05:03:56.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.780902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:03:56.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.864902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:03:56.904902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.904902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:56.944902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.944902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0900' 2 --- 690175.ret.expect 2026-08-20 05:03:56.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:56.988902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.028902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:03:57.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.068902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:03:57.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.100902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.140902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U094D' 2 --- 690175.ret.expect 2026-08-20 05:03:57.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.184902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.224902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:03:57.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:03:57.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.296902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.332902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U200D' 2 --- 690175.ret.expect 2026-08-20 05:03:57.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.376902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.416902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:03:57.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.460902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:03:57.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.492902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.532902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:03:57.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.584902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.624902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.624902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:03:57.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.768902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U200C' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.804902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:03:57.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.920902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U0A03' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:57.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:57.960902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:03:58.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.184902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U0903' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.224902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:03:58.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.396902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U0300' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.436902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:03:58.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.480902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U0900' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.528902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:03:58.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.584902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U094D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.620902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.620902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000D\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:03:58.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.680902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000D\U0308\U200D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.720902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:03:58.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.920902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U200C' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:58.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:58.960902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:03:59.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.044902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U0A03' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.056902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:03:59.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.164902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U0903' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.204902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.204902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:03:59.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.380902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U0300' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.416902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:03:59.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.468902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U0900' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.504902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:03:59.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.556902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U094D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.592902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U000A\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:03:59.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.644902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U000A\U0308\U200D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.680902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:03:59.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.888902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U200C' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:03:59.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:03:59.932902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:00.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.048902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U0A03' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.088902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:00.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.284902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U0903' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.320902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:00.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.500902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U0300' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.532902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:00.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.584902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U0900' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.620902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.620902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:00.672902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.672902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U094D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.708902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.708902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0001\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:00.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.760902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0001\U0308\U200D' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.796902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:00.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.880902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:00.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.920902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:00.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:00.980902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.008902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:01.072902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.072902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.112902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:01.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.176902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.216902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:01.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.256902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.296902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:01.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.336902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:01.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.376902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.416902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:01.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.452902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.460902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:01.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.480902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.492902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:01.524902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.524902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.572902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:01.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:01.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.644902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.684902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:01.736902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.736902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.776902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:01.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.880902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:01.944902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.944902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:01.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:01.984902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:02.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.048902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:02.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.140902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.176902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:02.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.216902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.252902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:02.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:02.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.320902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.356902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:02.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.404902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.428902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.428902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:02.472902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.472902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.500902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:02.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.544902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.576902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.576902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:02.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.628902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.668902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.668902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:02.704902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.704902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:02.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.776902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:02.812902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.812902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.848902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.848902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:02.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.884902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:02.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.920902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:02.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.956902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:02.992902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:02.992902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.028902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:03.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.064902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.112902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:03.148902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.148902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:03.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.180902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.216902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:03.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.292902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:03.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.328902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:03.364902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.364902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.404902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200C\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:03.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.452902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200C\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.492902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:03.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.552902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.592902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:03.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.648902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.688902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:03.744902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.744902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.784902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:03.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.884902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:03.936902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.936902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:03.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.980902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:03.992902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:03.992902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:04.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.020902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.032902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:04.076902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.076902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.120902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:04.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.160902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.204902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.204902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:04.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.272902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:04.312902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.312902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.344902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:04.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.368902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:04.408902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.408902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.448902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:04.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.504902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.544902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:04.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.636902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.636902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:04.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.748902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.748902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:04.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.804902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.840902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:04.892902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.892902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:04.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.932902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:04.972902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:04.972902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.008902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:05.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.044902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:05.092902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.092902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.128902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:05.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.180902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.216902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:05.268902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.268902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.304902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:05.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.360902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.400902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:05.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.452902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.496902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:05.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.536902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.580902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:05.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:05.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.652902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.692902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:05.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.732902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.772902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.772902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:05.808902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.808902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:05.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.840902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.880902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:05.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.920902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:05.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.956902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:05.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:05.996902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:06.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.028902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.068902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:06.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.112902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.148902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.148902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:06.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.188902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:06.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.232902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.268902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.268902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:06.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.332902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.372902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:06.420902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.420902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.468902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:06.508902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.508902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.544902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:06.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.644902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:06.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:06.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.804902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.840902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:06.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.876902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:06.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.912902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:06.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.948902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:06.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:06.980902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.016902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:07.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.052902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:07.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.128902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.164902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:07.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.208902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.236902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:07.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.308902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:07.348902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.348902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.392902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.392902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:07.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.432902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:07.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.464902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.504902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:07.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.544902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.584902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:07.624902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.624902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.668902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.668902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:07.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.760902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:07.800902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.800902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.840902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:07.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.880902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:07.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.920902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:07.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:07.960902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.000902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.000902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:08.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.048902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:08.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.140902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.180902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:08.228902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.228902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.268902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.268902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:08.312902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.312902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.348902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.348902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:08.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.436902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:08.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.480902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:08.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.520902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.568902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.568902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:08.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.656902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:08.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.696902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.724902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.724902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:08.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.760902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.796902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:08.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.832902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.868902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.868902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:08.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.916902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:08.952902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.952902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:08.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:08.988902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.028902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:09.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.064902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.100902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:09.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.136902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.172902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:09.212902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.212902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.248902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.248902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:09.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:09.324902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.324902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.360902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:09.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.404902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.440902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:09.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.476902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:09.512902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.512902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.548902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.548902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:09.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.632902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.632902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:09.672902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.672902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:09.712902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.712902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.748902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.748902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:09.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.788902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:09.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.872902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:09.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.916902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:09.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.960902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:09.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:09.996902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.032902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0600\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:10.076902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.076902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0600\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.128902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:10.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.192902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.236902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:10.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.292902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.328902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:10.392902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.392902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.428902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.428902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:10.484902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.484902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:10.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.564902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.604902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.604902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:10.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:10.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.664902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.688902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:10.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.732902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.768902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:10.820902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.820902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.844902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.844902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:10.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.880902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:10.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.916902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:10.952902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.952902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:10.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:10.988902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.028902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:11.076902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.076902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.112902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:11.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.164902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.208902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:11.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.304902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:11.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.356902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.392902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.392902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:11.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.452902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.488902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:11.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.536902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.576902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.576902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:11.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:11.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.656902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.696902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:11.748902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.748902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.788902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:11.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.872902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:11.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.928902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:11.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:11.968902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:12.000902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.000902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.016902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:12.040902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.040902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.080902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:12.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.120902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:12.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.156902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.200902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:12.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.236902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.272902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:12.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.296902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:12.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.320902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.360902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:12.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.432902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:12.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.476902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:12.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.516902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.556902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:12.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.628902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:12.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.664902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:12.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.696902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.732902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0A03\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:12.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0A03\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:12.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.876902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:12.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.920902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:12.972902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:12.972902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.012902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:13.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.068902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.108902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:13.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.164902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.192902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:13.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.244902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.280902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:13.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.316902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:13.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.356902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.400902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:13.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.448902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.488902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:13.548902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.548902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.592902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:13.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.680902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:13.724902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.724902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:13.764902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.764902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.804902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:13.848902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.848902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.888902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:13.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.928902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:13.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:13.968902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:14.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.016902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.056902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:14.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.096902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.136902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:14.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.200902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.240902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.240902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:14.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.328902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:14.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.372902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.412902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.412902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:14.456902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.456902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.496902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:14.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.536902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.572902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:14.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.644902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:14.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.684902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:14.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.720902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.756902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.756902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:14.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.804902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.840902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:14.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:14.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.932902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:14.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:14.988902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.024902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.024902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:15.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.080902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.116902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:15.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.164902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.208902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:15.248902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.248902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:15.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.292902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.340902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.340902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:15.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.372902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.396902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:15.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.436902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:15.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.476902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.516902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:15.560902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.560902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.600902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:15.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.644902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:15.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.684902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.724902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.724902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:15.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.768902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.808902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.808902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:15.852902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.852902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:15.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.872902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.884902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:15.904902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.904902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.916902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:15.940902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.940902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:15.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:15.988902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:16.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.048902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:16.152902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.152902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.192902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:16.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.232902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.244902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:16.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.256902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.272902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:16.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.284902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:16.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.292902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.304902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:16.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.320902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.332902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:16.352902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.352902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.404902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:16.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.452902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.488902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:16.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.528902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:16.560902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.560902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.600902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:16.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.652902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.692902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:16.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.732902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.772902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.772902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:16.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.816902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.856902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:16.900902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.900902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.940902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.940902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:16.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.968902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:16.992902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:16.992902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:17.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.032902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.072902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.072902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:17.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.128902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.164902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:17.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.200902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.224902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:17.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.260902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:17.268902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.268902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.276902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.276902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:17.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.292902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.304902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:17.324902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.324902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.336902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:17.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.356902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.368902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:17.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.436902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:17.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.468902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.508902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.508902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:17.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.544902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:17.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.584902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.620902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.620902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:17.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.656902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.692902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:17.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.728902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:17.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.760902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.784902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:17.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.860902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.860902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:17.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:17.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.932902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:17.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:17.968902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:18.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.008902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.044902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:18.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.080902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:18.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.116902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.152902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.152902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1160\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:18.196902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.196902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1160\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.232902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:18.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.320902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:18.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.380902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.416902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:18.472902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.472902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.508902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.508902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:18.568902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.568902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.612902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.612902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:18.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.648902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.684902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:18.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:18.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.740902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.780902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:18.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.832902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.872902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:18.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.932902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:18.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:18.976902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:19.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.016902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.056902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:19.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.096902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:19.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.136902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.176902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:19.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.236902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.272902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:19.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.308902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.324902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.324902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:19.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.372902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.416902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:19.456902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.456902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.492902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:19.548902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.548902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.588902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.588902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:19.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.652902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.700902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:19.744902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.744902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.788902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:19.828902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.828902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:19.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.864902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:19.904902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.904902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:19.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:19.960902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.004902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:20.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.068902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.104902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.104902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:20.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.164902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.204902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.204902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:20.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.260902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.300902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.300902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:20.348902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.348902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.388902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.388902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:20.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.432902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:20.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.468902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.504902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:20.540902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.540902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.576902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.576902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:20.612902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.612902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:20.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.648902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.684902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:20.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.728902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.760902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:20.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.796902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:20.828902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.828902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.872902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:20.908902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.908902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:20.940902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.940902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:20.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:20.976902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:21.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.012902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.052902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U11A8\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:21.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.108902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U11A8\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.140902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:21.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.192902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.228902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.228902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:21.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.280902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.316902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:21.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.368902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.404902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:21.456902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.456902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.492902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:21.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.528902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.564902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:21.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:21.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.628902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.668902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.668902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:21.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.756902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.756902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:21.812902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.812902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.852902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.852902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:21.900902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.900902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:21.940902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.940902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:21.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:21.984902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:22.024902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.024902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.064902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:22.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.116902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.156902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:22.196902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.196902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.220902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:22.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.232902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.260902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:22.276902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.276902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.288902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:22.300902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.300902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.312902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.312902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:22.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.332902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.344902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:22.408902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.408902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.444902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:22.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.492902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:22.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.564902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:22.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.600902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.636902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.636902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:22.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.684902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.720902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:22.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.820902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.820902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:22.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.880902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:22.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.916902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:22.972902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:22.972902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.008902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:23.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.060902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.096902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:23.124902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.124902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:23.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.156902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.192902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:23.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.236902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.272902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:23.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.316902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:23.352902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.352902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.388902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.388902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:23.428902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.428902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.468902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:23.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.504902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:23.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.528902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.564902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:23.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.600902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.648902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:23.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.688902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:23.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.728902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.768902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:23.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.816902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.864902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:23.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.928902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:23.964902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:23.964902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:24.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.020902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.060902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:24.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.116902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.164902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:24.228902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.228902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.264902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:24.300902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.300902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.340902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.340902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:24.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.380902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:24.412902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.412902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.448902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:24.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.496902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.532902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:24.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.640902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:24.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.688902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.724902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.724902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:24.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.760902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:24.800902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.800902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.836902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.836902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:24.892902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.892902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:24.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.928902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:24.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:24.980902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.016902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:25.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.052902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:25.124902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.124902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.160902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:25.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.216902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.252902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:25.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.304902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.340902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.340902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:25.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.376902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.412902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.412902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:25.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.448902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:25.484902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.484902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.520902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:25.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.572902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.612902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.612902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:25.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.664902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.700902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:25.752902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.752902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.788902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:25.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.876902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:25.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:25.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.948902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:25.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:25.984902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:26.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.020902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.064902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:26.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.104902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.128902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:26.168902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.168902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:26.204902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.204902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.244902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:26.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.280902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.316902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:26.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.356902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:26.388902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.388902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.424902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.424902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:26.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.460902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.496902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:26.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.532902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:26.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.564902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.600902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:26.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.648902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.680902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:26.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.740902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.776902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:26.828902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.828902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.864902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:26.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.916902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:26.952902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:26.952902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:27.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.008902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.044902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:27.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.080902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.128902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:27.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.172902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:27.212902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.212902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.252902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:27.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.308902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.352902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.352902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:27.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.416902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.448902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:27.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.488902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.500902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:27.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:27.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.536902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.548902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.548902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:27.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.572902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.584902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.584902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:27.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.656902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:27.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:27.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.796902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.836902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.836902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:27.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.884902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:27.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.928902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:27.964902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:27.964902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.004902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:28.040902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.040902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:28.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.080902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.120902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:28.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.172902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.212902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.212902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:28.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.288902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:28.340902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.340902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.376902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:28.428902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.428902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.460902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:28.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.500902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.540902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.540902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:28.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.580902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:28.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.616902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.652902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:28.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:28.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:28.828902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.828902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.864902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:28.904902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.904902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:28.936902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.936902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:28.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:28.984902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:29.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.028902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.068902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:29.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.108902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.140902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:29.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.180902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:29.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.216902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.252902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0903\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:29.312902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.312902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0903\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.352902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.352902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:29.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.416902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.444902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:29.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.488902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.532902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:29.596902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.596902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.636902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.636902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:29.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.688902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.728902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:29.756902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.756902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.800902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.800902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:29.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.832902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:29.868902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.868902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:29.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.912902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:29.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:29.968902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.004902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:30.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.056902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.092902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.092902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:30.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.116902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.152902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.152902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:30.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.188902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:30.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.220902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.256902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:30.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.308902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.344902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:30.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.432902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:30.472902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.472902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.488902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:30.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.560902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.560902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:30.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.652902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:30.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:30.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.776902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:30.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.816902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.844902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.844902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:30.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:30.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.932902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:30.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:30.976902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.016902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:31.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.068902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.104902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.104902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:31.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.160902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.196902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.196902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:31.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.232902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.268902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.268902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:31.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.304902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:31.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.336902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.376902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:31.412902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.412902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.452902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:31.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.488902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:31.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.520902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.556902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:31.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.632902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.632902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:31.668902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.668902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:31.708902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.708902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.744902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.744902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:31.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.780902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.816902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:31.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.856902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:31.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.888902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:31.924902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.924902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0904\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:31.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:31.976902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0904\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.012902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:32.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.048902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.084902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.084902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:32.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.120902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.156902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:32.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.208902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.244902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:32.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.296902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.336902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:32.384902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.384902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.424902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.424902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:32.472902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.472902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.508902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.508902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:32.544902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.544902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:32.576902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.576902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.612902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.612902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:32.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.652902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.688902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:32.724902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.724902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.760902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:32.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.820902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.820902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:32.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.856902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.880902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.880902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:32.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.932902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:32.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:32.968902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:33.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.004902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:33.036902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.036902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.080902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:33.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.120902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.160902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:33.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.200902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.244902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:33.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.280902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.316902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:33.352902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.352902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.388902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.388902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:33.424902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.424902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.464902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:33.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.492902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:33.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.564902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.604902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.604902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:33.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.676902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.676902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:33.712902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.712902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.752902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.752902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:33.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.788902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:33.852902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.852902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.884902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:33.924902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.924902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:33.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.960902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:33.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:33.996902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:34.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.028902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.072902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.072902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:34.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.108902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.144902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:34.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.192902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.228902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.228902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:34.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.300902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.300902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:34.348902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.348902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.380902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:34.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.416902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.452902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:34.500902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.500902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.536902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:34.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.572902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.612902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.612902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:34.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.648902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.684902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:34.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.720902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:34.752902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.752902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.788902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:34.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.860902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.860902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:34.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:34.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.928902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:34.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:34.968902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:35.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.004902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.040902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.040902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:35.076902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.076902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:35.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.108902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.144902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:35.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.180902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.216902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:35.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:35.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.284902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.320902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:35.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.360902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.400902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0D4E\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:35.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.440902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0D4E\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.480902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:35.536902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.536902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.572902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:35.624902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.624902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.664902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:35.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.764902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.764902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:35.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.816902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.856902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:35.904902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.904902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:35.940902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.940902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:35.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:35.976902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:36.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.012902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.052902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:36.104902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.104902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.144902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:36.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.200902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.240902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.240902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:36.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.328902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:36.364902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.364902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:36.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.400902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.436902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:36.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.488902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:36.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.580902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.616902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:36.672902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.672902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.708902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.708902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:36.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.760902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.796902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:36.848902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.848902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.884902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.884902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:36.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.920902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:36.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.956902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:36.992902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:36.992902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:37.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.028902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.068902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:37.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.120902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.156902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:37.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.208902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.244902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:37.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.296902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.332902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:37.384902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.384902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.416902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:37.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.460902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.496902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:37.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.532902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:37.572902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.572902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.608902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:37.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.648902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.684902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:37.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.720902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:37.752902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.752902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.788902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:37.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.860902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.860902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:37.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:37.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.932902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:37.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:37.968902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:38.008902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.008902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.044902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:38.084902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.084902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:38.124902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.124902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.168902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.168902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:38.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.220902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.260902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:38.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.316902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.360902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:38.420902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.420902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.460902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.460902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:38.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.516902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.556902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:38.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.656902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:38.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.740902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:38.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.780902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:38.812902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.812902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.856902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:38.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:38.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:38.956902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:39.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.020902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.064902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:39.116902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.116902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.156902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:39.196902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.196902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:39.236902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.236902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.280902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:39.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.336902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.364902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.364902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:39.384902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.384902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.400902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:39.420902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.420902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.432902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:39.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.448902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.472902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.472902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:39.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.492902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.504902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:39.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.516902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:39.540902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.540902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:39.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.552902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.564902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:39.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.580902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.608902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:39.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.628902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.640902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:39.660902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.660902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.696902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:39.752902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.752902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.788902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:39.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.860902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.860902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:39.896902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.896902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:39.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.932902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:39.968902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:39.968902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:40.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.004902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.044902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.044902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:40.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.080902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:40.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.108902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.144902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:40.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.180902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.220902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:40.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.256902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:40.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.292902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.332902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:40.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.368902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.404902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:40.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.440902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:40.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.464902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.504902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U231A\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:40.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.552902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U231A\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.588902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.588902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:40.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.680902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:40.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.732902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.768902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:40.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.860902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.860902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:40.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:40.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.948902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:40.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:40.984902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.024902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.024902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:41.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.064902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:41.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.100902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.140902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:41.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.188902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.224902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:41.276902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.276902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.316902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:41.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.360902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.372902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:41.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:41.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.436902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.468902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:41.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.516902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.552902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:41.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.648902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:41.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.700902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.736902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.736902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:41.788902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.788902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:41.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.876902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.912902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:41.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.948902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:41.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:41.988902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:42.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.028902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:42.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.060902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.096902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:42.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.144902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.184902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:42.240902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.240902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.280902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:42.336902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.336902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.376902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:42.420902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.420902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.444902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:42.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.464902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.476902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:42.524902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.524902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:42.568902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.568902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.608902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:42.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.644902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.672902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.672902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:42.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.684902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:42.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.692902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.740902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:42.772902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.772902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.816902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:42.852902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.852902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:42.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.888902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.924902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.924902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:42.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.960902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:42.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:42.996902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:43.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.032902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:43.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.068902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.108902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0300\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:43.156902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.156902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0300\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.188902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:43.240902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.240902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.280902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:43.332902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.332902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.368902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:43.424902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.424902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.464902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.464902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:43.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.556902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:43.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.628902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:43.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.664902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:43.700902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.700902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.736902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.736902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:43.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.824902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:43.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.888902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:43.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.928902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:43.972902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:43.972902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.016902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:44.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.060902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:44.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.096902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.136902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:44.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.184902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.224902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:44.280902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.280902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.320902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.320902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:44.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.376902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.416902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:44.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.476902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.516902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:44.568902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.568902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.604902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.604902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:44.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.640902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.676902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.676902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:44.712902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.712902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:44.744902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.744902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.780902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:44.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.832902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.868902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.868902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:44.920902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.920902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:44.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:44.956902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:45.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.012902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.048902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:45.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.100902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.136902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:45.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.176902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.216902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:45.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:45.292902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.292902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.328902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:45.368902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.368902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.408902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.408902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:45.448902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.448902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:45.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.480902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.520902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:45.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.556902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.592902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:45.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.628902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:45.660902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.660902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.696902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:45.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.732902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.768902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:45.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.804902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:45.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.840902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.876902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0900\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:45.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0900\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:45.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:45.948902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:46.004902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.004902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.040902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.040902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:46.092902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.092902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.120902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:46.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.172902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.212902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.212902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:46.264902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.264902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.304902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.304902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:46.340902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.340902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.376902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:46.412902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.412902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:46.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.444902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.480902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:46.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.556902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:46.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.644902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.644902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:46.680902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.680902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.720902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.720902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:46.756902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.756902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:46.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.796902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.836902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.836902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:46.892902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.892902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:46.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.928902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:46.980902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:46.980902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.016902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:47.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.068902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.104902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.104902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:47.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.160902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.200902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.200902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:47.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.288902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:47.324902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.324902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.360902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:47.400902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.400902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:47.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.432902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.468902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:47.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.516902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.548902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.548902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:47.596902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.596902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.640902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.640902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:47.688902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.688902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.728902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:47.784902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.784902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.832902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:47.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.876902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:47.916902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.916902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:47.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.956902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:47.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:47.984902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.000902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.000902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:48.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.012902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.024902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.024902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:48.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.056902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:48.064902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.064902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.080902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:48.092902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.092902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.100902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.100902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:48.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.112902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:48.124902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.124902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.136902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:48.148902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.148902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.160902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:48.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.172902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:48.180902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.180902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.192902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.192902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U094D\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:48.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.208902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U094D\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.220902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:48.240902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.240902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.288902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:48.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.344902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.380902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:48.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.432902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.468902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:48.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.556902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:48.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.628902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:48.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.664902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:48.704902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.704902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.740902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.740902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:48.792902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.792902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.832902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.832902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:48.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.888902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:48.924902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.924902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:48.972902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:48.972902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.012902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.012902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:49.048902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.048902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:49.080902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.080902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.120902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.120902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:49.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.172902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.208902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:49.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.260902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.284902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:49.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.344902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.380902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.380902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:49.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.432902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.468902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:49.520902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.520902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.556902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:49.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.628902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.628902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:49.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.664902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:49.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.696902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.732902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:49.772902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.772902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.804902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:49.844902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.844902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.856902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:49.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.888902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:49.936902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.936902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:49.988902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:49.988902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.024902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.024902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:50.072902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.072902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.108902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:50.144902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.144902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:50.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.176902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.216902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:50.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.252902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.296902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.296902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:50.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.328902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:50.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.344902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.364902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.364902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:50.376902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.376902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.388902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.388902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:50.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.440902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:50.480902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.480902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.516902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:50.556902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.556902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.596902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.596902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:50.624902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.624902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:50.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.648902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.664902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.664902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U200D\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:50.684902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.684902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U200D\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.716902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:50.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.776902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.812902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.812902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U000D' 2 --- 690175.ret.expect 2026-08-20 05:04:50.864902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.864902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U000D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.892902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.892902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U000A' 2 --- 690175.ret.expect 2026-08-20 05:04:50.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.928902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U000A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:50.956902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:50.956902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0001' 2 --- 690175.ret.expect 2026-08-20 05:04:51.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.020902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0001' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.060902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:51.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.112902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.148902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.148902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U200C' 2 --- 690175.ret.expect 2026-08-20 05:04:51.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.184902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U200C' 3 --- 690175.ret.expect 2026-08-20 05:04:51.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.220902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U200C' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.256902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U1F1E6' 2 --- 690175.ret.expect 2026-08-20 05:04:51.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.308902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U1F1E6' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.348902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.348902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0600' 2 --- 690175.ret.expect 2026-08-20 05:04:51.404902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.404902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0600' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.440902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:51.496902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.496902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.532902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.532902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0A03' 2 --- 690175.ret.expect 2026-08-20 05:04:51.568902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.568902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0A03' 3 --- 690175.ret.expect 2026-08-20 05:04:51.600902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.600902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0A03' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.636902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.636902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:51.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.692902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.728902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U1160' 2 --- 690175.ret.expect 2026-08-20 05:04:51.780902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.780902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U1160' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.816902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U11A8' 2 --- 690175.ret.expect 2026-08-20 05:04:51.868902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.868902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U11A8' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.908902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.908902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\UAC00' 2 --- 690175.ret.expect 2026-08-20 05:04:51.964902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.964902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\UAC00' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:51.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:51.996902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\UAC01' 2 --- 690175.ret.expect 2026-08-20 05:04:52.052902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.052902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\UAC01' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.088902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.088902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:52.128902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.128902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.160902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.160902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0903' 2 --- 690175.ret.expect 2026-08-20 05:04:52.188902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.188902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0903' 3 --- 690175.ret.expect 2026-08-20 05:04:52.224902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.224902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0903' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.260902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.260902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0904' 2 --- 690175.ret.expect 2026-08-20 05:04:52.308902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.308902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0904' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.344902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.344902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0D4E' 2 --- 690175.ret.expect 2026-08-20 05:04:52.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0D4E' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.436902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.436902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0915' 2 --- 690175.ret.expect 2026-08-20 05:04:52.488902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.488902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0915' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.528902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.528902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U231A' 2 --- 690175.ret.expect 2026-08-20 05:04:52.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.580902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U231A' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.616902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:52.656902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.656902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.692902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.692902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0300' 2 --- 690175.ret.expect 2026-08-20 05:04:52.728902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.728902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0300' 3 --- 690175.ret.expect 2026-08-20 05:04:52.768902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.768902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0300' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.804902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.804902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:52.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.840902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.876902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0900' 2 --- 690175.ret.expect 2026-08-20 05:04:52.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0900' 3 --- 690175.ret.expect 2026-08-20 05:04:52.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.948902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0900' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:52.984902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:52.984902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:53.020902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.020902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.060902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.060902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U094D' 2 --- 690175.ret.expect 2026-08-20 05:04:53.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.096902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U094D' 3 --- 690175.ret.expect 2026-08-20 05:04:53.132902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.132902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U094D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.176902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.176902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:53.216902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.216902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.252902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.252902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:53.288902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.288902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U200D' 3 --- 690175.ret.expect 2026-08-20 05:04:53.324902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.324902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.360902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.360902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0378\U0308\U0378' 2 --- 690175.ret.expect 2026-08-20 05:04:53.408902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.408902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0378\U0308\U0378' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.444902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.444902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U0308' 2 --- 690175.ret.expect 2026-08-20 05:04:53.516902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.516902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U0308' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.564902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.564902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0020\U200D\U0646' 2 --- 690175.ret.expect 2026-08-20 05:04:53.608902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.608902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0020\U200D\U0646' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.648902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.648902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0646\U200D\U0020' 2 --- 690175.ret.expect 2026-08-20 05:04:53.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.696902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0646\U200D\U0020' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.732902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.732902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1100\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:53.772902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.772902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1100\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.816902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.816902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC00\U11A8\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:53.856902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.856902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC00\U11A8\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.888902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\UAC01\U11A8\U1100' 2 --- 690175.ret.expect 2026-08-20 05:04:53.936902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.936902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\UAC01\U11A8\U1100' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:53.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:53.976902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F1E6\U1F1E7\U1F1E8\U0062' 2 --- 690175.ret.expect 2026-08-20 05:04:54.028902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.028902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F1E6\U1F1E7\U1F1E8\U0062' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.068902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U1F1E7\U1F1E8\U0062' 3 --- 690175.ret.expect 2026-08-20 05:04:54.124902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.124902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U1F1E7\U1F1E8\U0062' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.164902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.164902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U1F1E7\U200D\U1F1E8\U0062' 3 --- 690175.ret.expect 2026-08-20 05:04:54.232902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.232902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U1F1E7\U200D\U1F1E8\U0062' 4 --- 690175.ret.expect 2026-08-20 05:04:54.272902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.272902818 +0000 @@ -1 +1 @@ -1 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U1F1E7\U200D\U1F1E8\U0062' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.316902818 +0000 @@ -1 +1 @@ -4 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U200D\U1F1E7\U1F1E8\U0062' 3 --- 690175.ret.expect 2026-08-20 05:04:54.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.372902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U200D\U1F1E7\U1F1E8\U0062' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.416902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.416902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U200D\U1F1E7\U1F1E8\U0062' 5 --- 690175.ret.expect 2026-08-20 05:04:54.452902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.452902818 +0000 @@ -1 +1 @@ -3 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U200D\U1F1E7\U1F1E8\U0062' 3 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.492902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.492902818 +0000 @@ -1 +1 @@ -5 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U1F1E7\U1F1E8\U1F1E9\U0062' 3 --- 690175.ret.expect 2026-08-20 05:04:54.540902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.540902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U1F1E7\U1F1E8\U1F1E9\U0062' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.580902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F1E6\U1F1E7\U1F1E8\U1F1E9\U0062' 5 --- 690175.ret.expect 2026-08-20 05:04:54.624902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.624902818 +0000 @@ -1 +1 @@ -3 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F1E6\U1F1E7\U1F1E8\U1F1E9\U0062' 3 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.668902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.668902818 +0000 @@ -1 +1 @@ -5 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U200D' 2 --- 690175.ret.expect 2026-08-20 05:04:54.716902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.716902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U200D' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.760902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.760902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U0308\U0062' 2 --- 690175.ret.expect 2026-08-20 05:04:54.796902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.796902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U0308\U0062' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.840902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U0903\U0062' 2 --- 690175.ret.expect 2026-08-20 05:04:54.888902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.888902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U0903\U0062' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:54.928902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.928902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U0600\U0062' 3 --- 690175.ret.expect 2026-08-20 05:04:54.976902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:54.976902818 +0000 @@ -1 +1 @@ -1 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U0600\U0062' 1 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.016902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.016902818 +0000 @@ -1 +1 @@ -3 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U1F476' 2 --- 690175.ret.expect 2026-08-20 05:04:55.056902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.056902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F476\U1F3FF\U1F476' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.096902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.096902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F3FF\U1F476' 2 --- 690175.ret.expect 2026-08-20 05:04:55.136902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.136902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F3FF\U1F476' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.172902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F3FF\U1F476\U200D\U1F6D1' 2 --- 690175.ret.expect 2026-08-20 05:04:55.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.208902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F3FF\U1F476\U200D\U1F6D1' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.248902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.248902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F3FF\U1F476\U200D\U1F6D1' 4 --- 690175.ret.expect 2026-08-20 05:04:55.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.284902818 +0000 @@ -1 +1 @@ -2 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U1F3FF\U1F476\U200D\U1F6D1' 5 --- 690175.ret.expect 2026-08-20 05:04:55.316902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.316902818 +0000 @@ -1 +1 @@ -2 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U1F3FF\U1F476\U200D\U1F6D1' 2 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.356902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.356902818 +0000 @@ -1 +1 @@ -5 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 2 --- 690175.ret.expect 2026-08-20 05:04:55.396902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.396902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 3 --- 690175.ret.expect 2026-08-20 05:04:55.432902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.432902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 4 --- 690175.ret.expect 2026-08-20 05:04:55.468902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.468902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 5 --- 690175.ret.expect 2026-08-20 05:04:55.504902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.504902818 +0000 @@ -1 +1 @@ -0 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 6 --- 690175.ret.expect 2026-08-20 05:04:55.540902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.540902818 +0000 @@ -1 +1 @@ -0 +5 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F476\U1F3FF\U0308\U200D\U1F476\U1F3FF' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.580902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.580902818 +0000 @@ -1 +1 @@ -6 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F6D1\U200D\U1F6D1' 2 --- 690175.ret.expect 2026-08-20 05:04:55.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.616902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U1F6D1\U200D\U1F6D1' 3 --- 690175.ret.expect 2026-08-20 05:04:55.652902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.652902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U1F6D1\U200D\U1F6D1' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.696902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U200D\U1F6D1' 2 --- 690175.ret.expect 2026-08-20 05:04:55.736902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.736902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U200D\U1F6D1' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.776902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U2701\U200D\U2701' 2 --- 690175.ret.expect 2026-08-20 05:04:55.824902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.824902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U2701\U200D\U2701' 3 --- 690175.ret.expect 2026-08-20 05:04:55.848902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.848902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U2701\U200D\U2701' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.876902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.876902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U200D\U2701' 2 --- 690175.ret.expect 2026-08-20 05:04:55.912902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.912902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U200D\U2701' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:55.948902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:55.948902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.000902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.000902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:56.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.032902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.068902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.068902818 +0000 @@ -1 +1 @@ -3 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.108902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.108902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:56.140902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.140902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 4 --- 690175.ret.expect 2026-08-20 05:04:56.172902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.172902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.208902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.208902818 +0000 @@ -1 +1 @@ -4 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U200D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.244902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.244902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U200D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:56.284902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.284902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U200D\U0924' 4 --- 690175.ret.expect 2026-08-20 05:04:56.328902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.328902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U200D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.372902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.372902818 +0000 @@ -1 +1 @@ -4 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U200D\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.408902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.408902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U200D\U094D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:56.440902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.440902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U200D\U094D\U0924' 4 --- 690175.ret.expect 2026-08-20 05:04:56.476902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.476902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U200D\U094D\U0924' 5 --- 690175.ret.expect 2026-08-20 05:04:56.512902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.512902818 +0000 @@ -1 +1 @@ -0 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U093C\U200D\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.552902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.552902818 +0000 @@ -1 +1 @@ -5 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U094D\U200D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.592902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.592902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U094D\U200D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:56.616902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.620902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U094D\U200D\U0924' 4 --- 690175.ret.expect 2026-08-20 05:04:56.660902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.660902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U093C\U094D\U200D\U0924' 5 --- 690175.ret.expect 2026-08-20 05:04:56.696902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.696902818 +0000 @@ -1 +1 @@ -0 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U093C\U094D\U200D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.736902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.736902818 +0000 @@ -1 +1 @@ -5 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924\U094D\U092F' 2 --- 690175.ret.expect 2026-08-20 05:04:56.776902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.776902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924\U094D\U092F' 3 --- 690175.ret.expect 2026-08-20 05:04:56.808902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.808902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924\U094D\U092F' 4 --- 690175.ret.expect 2026-08-20 05:04:56.840902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.840902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0924\U094D\U092F' 5 --- 690175.ret.expect 2026-08-20 05:04:56.872902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.872902818 +0000 @@ -1 +1 @@ -0 +4 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U0924\U094D\U092F' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.908902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.908902818 +0000 @@ -1 +1 @@ -5 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U0061' 2 --- 690175.ret.expect 2026-08-20 05:04:56.932902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.932902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U0061' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:56.960902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.960902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0061\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:56.996902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:56.996902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0061\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:57.032902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.032902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U003F\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:57.076902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.076902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U003F\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:57.112902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.112902818 +0000 @@ -1 +1 @@ -2 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 2 --- 690175.ret.expect 2026-08-20 05:04:57.152902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.152902818 +0000 @@ -1 +1 @@ -0 +1 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 3 --- 690175.ret.expect 2026-08-20 05:04:57.184902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.184902818 +0000 @@ -1 +1 @@ -0 +2 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:744: ble/unicode/GraphemeCluster/find-previous-boundary $'\U0915\U094D\U094D\U0924' 4 --- 690175.ret.expect 2026-08-20 05:04:57.220902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.220902818 +0000 @@ -1 +1 @@ -0 +3 /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-canvas.sh:747: ble/unicode/GraphemeCluster/match $'\U0915\U094D\U094D\U0924' 0 && ((ret=b+1+extend)) --- 690175.ret.expect 2026-08-20 05:04:57.256902818 +0000 +++ 690175.ret.result 2026-08-20 05:04:57.256902818 +0000 @@ -1 +1 @@ -4 +1  73.1% [section] ble/canvas/GraphemeCluster/c2break (GraphemeBreakTest.txt): 4231/5783 (1552 fail, 0 crash, 0 skip) 100.0% [section] ble/decode: 33/33 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/edit: 2/2 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/syntax: 22/22 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/complete: 7/7 (0 fail, 0 crash, 0 skip)  ble.sh: updating cache/keymap.vi_digraph...  ble.sh: generating "/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/cache.d/1111/decode.cmap.gdict.unknown.dump"... ble/lib/init-cmap.sh: updating key sequences... ble/lib/init-cmap.sh: updating key sequences... done ble.sh: initializing multi-character sequence binders...  ble.sh: initializing multi-character sequence binders... done ble.sh: updating cache/keymap.vi_digraph... done ble.sh: updating cache/keymap.vi... ble.sh: updating cache/keymap.vi... done ble.sh: updating cache/keymap.emacs... ble.sh: updating cache/keymap.emacs... done 100.0% [section] ble/keymap.vi/space: 2/2 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/cw: 30/30 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/search: 10/10 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/increment: 19/19 (0 fail, 0 crash, 0 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-keymap.vi.sh:182: macro/A1 i=0 str=123 keys=(q a A SP h e l l o @ESC q @ a) --- 688429.stdout.expect 2026-08-20 05:05:05.380902818 +0000 +++ 688429.stdout.result 2026-08-20 05:05:05.380902818 +0000 @@ -1 +1 @@ -123 hello hello[EOF] +123 hello hello\u07FC[EOF] --- 688429.ret.expect 2026-08-20 05:05:05.412902818 +0000 +++ 688429.ret.result 2026-08-20 05:05:05.412902818 +0000 @@ -1 +1 @@ -ind=14 +ind=21  0.0% [section] ble/keymap.vi/macro: 0/1 (1 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/surround: 7/7 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/txtobj_quote_xmap: 45/45 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/txtobj_block_omap: 41/41 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/txtobj_block_xmap: 145/145 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/txtobj_word_omap: 79/79 (0 fail, 0 crash, 0 skip) 100.0% [section] ble/keymap.vi/txtobj_word_xmap: 34/34 (0 fail, 0 crash, 0 skip) /build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/lib/test-keymap.vi.sh:650: op.2018-02-22/C i=3 str=^J1234567^J1あ2345^J12い345^J123う45^J1234え5^J keys=(C-v 4 j l d) --- 688429.stdout.expect 2026-08-20 05:05:09.912902818 +0000 +++ 688429.stdout.result 2026-08-20 05:05:09.912902818 +0000 @@ -1,7 +1,7 @@ 12567 -1 345 -12345 -12 45 +12345 +12 345 +1245 12え5 [EOF]  75.0% [section] ble/keymap.vi/op.2018-02-22: 3/4 (1 fail, 0 crash, 0 skip) ble.sh: The test log was saved to '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b/out/cache.d/1111/test.20260820.050344.log'. make[1]: *** [GNUmakefile:303: check] Error 1 make[1]: Leaving directory '/build/reproducible-path/ble.sh-0.4.0~git20250321.d4c812b' rm -fr -- /tmp/dh-xdg-rundir-JTauRcld dh_auto_test: error: make -j12 check returned exit code 2 make: *** [debian/rules:9: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/685446 and its subdirectories Thu Jul 17 22:42:13 UTC 2025 W: No second build log, what happened?