detached e726e59

omnibox: refactor into reusable component; add find-in-page mode with Ctrl/Cmd+F, yellow highlights, match list; expose WebView.OpenFind/FindQuery/CloseFind; inject shared script via UCM

commit
e726e59546dea6bdffb46449278447e8d63bd653
author
bamen · · 2025-09-09 17:44 UTC
committer
bamen · · 2025-09-09 21:02 UTC
parent
1ef46d7
signature
unsigned
227 files · +283 -56
A .gocache/00/0047a9d584e5144ecef12a54a4aa8f174d120776091055bdf8cda9a85415b95a-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/02/0228e8c8f89db1a322d617e46969cef886b9a0ebea8b462907df092f9339a73c-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/02/02faf5e3c407988071a39b470723e529e8084e4a265c965985150284ad2203ac-a +1 -0
@@ -0,0 +1,1 @@
1+v1 02faf5e3c407988071a39b470723e529e8084e4a265c965985150284ad2203ac 0bf891398d3c1895e6375e5bba5f01ddf577a45df1ed6b0aa346efce376564dd 1022 1757505228110655597
@@ -0,0 +1,1 @@
1+v1 02faf5e3c407988071a39b470723e529e8084e4a265c965985150284ad2203ac 0bf891398d3c1895e6375e5bba5f01ddf577a45df1ed6b0aa346efce376564dd 1022 1757505228110655597
A .gocache/05/051ec468e69a3d1c9bdfa1a44f00a1d2f7cf552e534a7e41283ead49e363d4d9-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/05/055ab80ea9267c26987793c2e740372d321db9de9a0d75a6744224bbe9c87d64-a +1 -0
@@ -0,0 +1,1 @@
1+v1 055ab80ea9267c26987793c2e740372d321db9de9a0d75a6744224bbe9c87d64 f763c5f0634d0bb362ff579f4998f86b61fbcde8f0ff94f88794162becc00599 2553 1757505228121337203
@@ -0,0 +1,1 @@
1+v1 055ab80ea9267c26987793c2e740372d321db9de9a0d75a6744224bbe9c87d64 f763c5f0634d0bb362ff579f4998f86b61fbcde8f0ff94f88794162becc00599 2553 1757505228121337203
A .gocache/05/05aaa1f492d0e714419ebfee4cbf5e52b7cd6f53f5e475fe8902f58a4fa2b09e-a +1 -0
@@ -0,0 +1,1 @@
1+v1 05aaa1f492d0e714419ebfee4cbf5e52b7cd6f53f5e475fe8902f58a4fa2b09e 794f4ce12971b12aa3424cd507137ced88762520be253f69c460d72227003bbe 920 1757505228170564282
@@ -0,0 +1,1 @@
1+v1 05aaa1f492d0e714419ebfee4cbf5e52b7cd6f53f5e475fe8902f58a4fa2b09e 794f4ce12971b12aa3424cd507137ced88762520be253f69c460d72227003bbe 920 1757505228170564282
A .gocache/07/076781abab46e47f33401714dcc6b4f700f2a73369529916413c136fb8306282-a +1 -0
@@ -0,0 +1,1 @@
1+v1 076781abab46e47f33401714dcc6b4f700f2a73369529916413c136fb8306282 ff39147e564c56e09a27e785e4b8f146682969072a3793f9ebdc83c1158b2206 550 1757505228124891352
@@ -0,0 +1,1 @@
1+v1 076781abab46e47f33401714dcc6b4f700f2a73369529916413c136fb8306282 ff39147e564c56e09a27e785e4b8f146682969072a3793f9ebdc83c1158b2206 550 1757505228124891352
A .gocache/07/07cad2051b00ce88dc1196fb62b596900419a51dfd8df099bb13161c60819991-a +1 -0
@@ -0,0 +1,1 @@
1+v1 07cad2051b00ce88dc1196fb62b596900419a51dfd8df099bb13161c60819991 217226baaa38ad0467a34700141ea746cb9945b4d1732de9f25f7648b80bcfc8 3147 1757505228123925428
@@ -0,0 +1,1 @@
1+v1 07cad2051b00ce88dc1196fb62b596900419a51dfd8df099bb13161c60819991 217226baaa38ad0467a34700141ea746cb9945b4d1732de9f25f7648b80bcfc8 3147 1757505228123925428
A .gocache/08/08e429ab1fa2a843c2c0e6ff6f6eb95cad31dfc1255113b1de46d24b99249b03-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/08/08f2370b5afd5ac38ae85121dad1c4ee2072c8c0531ea2ba5136d15abcc42e5a-a +1 -0
@@ -0,0 +1,1 @@
1+v1 08f2370b5afd5ac38ae85121dad1c4ee2072c8c0531ea2ba5136d15abcc42e5a b1dab65338479783f5fd1e00d59236f3881d49bf4faff7c16acda11e61fb176b 4362 1757505228108065832
@@ -0,0 +1,1 @@
1+v1 08f2370b5afd5ac38ae85121dad1c4ee2072c8c0531ea2ba5136d15abcc42e5a b1dab65338479783f5fd1e00d59236f3881d49bf4faff7c16acda11e61fb176b 4362 1757505228108065832
A .gocache/0b/0bf891398d3c1895e6375e5bba5f01ddf577a45df1ed6b0aa346efce376564dd-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/0c/0c9c6cbdf874d8718ecd0499a8baeff3e1c9c0bc56573ae83614dadf899821e8-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/0c/0c9fa99bb3f81431ee9ce34aa86369e2cda0906285789b5a983fd38dbc990d83-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/0c/0cc2ed0972cdb55d78b979a0e1f85f211e6fad7b8bf285ac3286c4442beb4635-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/0d/0d3b3269ce8d006ea9f51527c8542adf7d476fbbe4e80f884c650756c50814d3-a +1 -0
@@ -0,0 +1,1 @@
1+v1 0d3b3269ce8d006ea9f51527c8542adf7d476fbbe4e80f884c650756c50814d3 565ca3c621529f56607581ec02fa97ec2cdb88a53c092d43541a2c851dec995a 940 1757505228116677381
@@ -0,0 +1,1 @@
1+v1 0d3b3269ce8d006ea9f51527c8542adf7d476fbbe4e80f884c650756c50814d3 565ca3c621529f56607581ec02fa97ec2cdb88a53c092d43541a2c851dec995a 940 1757505228116677381
A .gocache/10/10d3926d1a17376c8b18d1c253d3edd603e97d65ee2fdc85b552fcc34e0b570d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 10d3926d1a17376c8b18d1c253d3edd603e97d65ee2fdc85b552fcc34e0b570d 5f35a2fd839f1d018328dae4f39b13287e32fc81d1b7c0745c498fa6b8f82082 1577 1757505228109225715
@@ -0,0 +1,1 @@
1+v1 10d3926d1a17376c8b18d1c253d3edd603e97d65ee2fdc85b552fcc34e0b570d 5f35a2fd839f1d018328dae4f39b13287e32fc81d1b7c0745c498fa6b8f82082 1577 1757505228109225715
A .gocache/11/110565c9b12f437b075fd2e6df2846d1d9e4520615865a050a36c34af8cf62e9-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/11/111733fd5e75a9e33c6305a02a8024690e038f13226e83835a4efa14cb4aae9d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/11/11184ffa4b8eb1b4722f93e00d8001a58b0aa8c5ff7a636a7e332bc27bf801ee-a +1 -0
@@ -0,0 +1,1 @@
1+v1 11184ffa4b8eb1b4722f93e00d8001a58b0aa8c5ff7a636a7e332bc27bf801ee f7e4c782e436216181620589231287b177b9d2552e85b5070153eb743c8b35cc 2890 1757505228123281102
@@ -0,0 +1,1 @@
1+v1 11184ffa4b8eb1b4722f93e00d8001a58b0aa8c5ff7a636a7e332bc27bf801ee f7e4c782e436216181620589231287b177b9d2552e85b5070153eb743c8b35cc 2890 1757505228123281102
A .gocache/14/144174ecfd1cc09c3b3661403946420b6a5646695fe25cf9d4057825bbd8126c-a +1 -0
@@ -0,0 +1,1 @@
1+v1 144174ecfd1cc09c3b3661403946420b6a5646695fe25cf9d4057825bbd8126c 616a72bbba0b377869eebb9044f5e420e82c8e2e28262b41e11c2a2ca5015682 2045 1757505228110384778
@@ -0,0 +1,1 @@
1+v1 144174ecfd1cc09c3b3661403946420b6a5646695fe25cf9d4057825bbd8126c 616a72bbba0b377869eebb9044f5e420e82c8e2e28262b41e11c2a2ca5015682 2045 1757505228110384778
A .gocache/14/14998696dd8fe32a3b12d71b3685b0cdf53f1a5e322ef5f8c18a2c465c9678f4-a +1 -0
@@ -0,0 +1,1 @@
1+v1 14998696dd8fe32a3b12d71b3685b0cdf53f1a5e322ef5f8c18a2c465c9678f4 0c9c6cbdf874d8718ecd0499a8baeff3e1c9c0bc56573ae83614dadf899821e8 725 1757505228134601405
@@ -0,0 +1,1 @@
1+v1 14998696dd8fe32a3b12d71b3685b0cdf53f1a5e322ef5f8c18a2c465c9678f4 0c9c6cbdf874d8718ecd0499a8baeff3e1c9c0bc56573ae83614dadf899821e8 725 1757505228134601405
A .gocache/17/17d1f48f999e70c60d9049526e315faee2c205e8ea02b8333718bc9f8116cb5c-a +1 -0
@@ -0,0 +1,1 @@
1+v1 17d1f48f999e70c60d9049526e315faee2c205e8ea02b8333718bc9f8116cb5c e89bb40829ad4367145cf510d33026365b8aeec64b8c50974e5301bdc5a5c333 10715 1757505228124269976
@@ -0,0 +1,1 @@
1+v1 17d1f48f999e70c60d9049526e315faee2c205e8ea02b8333718bc9f8116cb5c e89bb40829ad4367145cf510d33026365b8aeec64b8c50974e5301bdc5a5c333 10715 1757505228124269976
A .gocache/1b/1b8edadabd81131211320adfb2f373622e287b0b422b5a19668d5c2ce393bc62-a +1 -0
@@ -0,0 +1,1 @@
1+v1 1b8edadabd81131211320adfb2f373622e287b0b422b5a19668d5c2ce393bc62 edc65f612fe5192477fc3539a264e1896f771a239b74e7f34ab62e9bdd0cd63e 2666 1757505228122266678
@@ -0,0 +1,1 @@
1+v1 1b8edadabd81131211320adfb2f373622e287b0b422b5a19668d5c2ce393bc62 edc65f612fe5192477fc3539a264e1896f771a239b74e7f34ab62e9bdd0cd63e 2666 1757505228122266678
A .gocache/1c/1c71d47c1bce9bb3ef02c485e362b4330293e9b18a8bde97ed13c3eba4cac851-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/1c/1cdcf394c3f49537d449d65c2c0e6e602e3b6d7d5db55c37c77d719192c05ac7-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/1e/1ebae4c8e1d8448770bfc6c130367447076dd7ce4b0bac58ac987d962a2c64b2-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/1f/1f7e877e8d08ca5f94b877e662f7789c97b95fafe1bfa824959739311a05bb26-a +1 -0
@@ -0,0 +1,1 @@
1+v1 1f7e877e8d08ca5f94b877e662f7789c97b95fafe1bfa824959739311a05bb26 b0cdf7c7b50a97273b91ecc01a826a6d011935375064cf5ae6c9bb6ce06928a9 526 1757505228117638865
@@ -0,0 +1,1 @@
1+v1 1f7e877e8d08ca5f94b877e662f7789c97b95fafe1bfa824959739311a05bb26 b0cdf7c7b50a97273b91ecc01a826a6d011935375064cf5ae6c9bb6ce06928a9 526 1757505228117638865
A .gocache/20/20ea81bf0563c6cf49bb34a416512c9e5fe098c25190e9901abcfbff0294a651-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/21/217226baaa38ad0467a34700141ea746cb9945b4d1732de9f25f7648b80bcfc8-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/22/2293db70ae4189c4a53fd8073c6e362764b6ccdbdac1db8c8595bb2cd6256db0-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/23/2313d6e263ad1a7222ab6a205f3a8e9450d5591fa26ff9fd2ee182939347c2d0-a +1 -0
@@ -0,0 +1,1 @@
1+v1 2313d6e263ad1a7222ab6a205f3a8e9450d5591fa26ff9fd2ee182939347c2d0 86f7dc9e6dc6becc415eac189766dab68a1028143574dc0092edfed8246aeb39 1820 1757505228114709523
@@ -0,0 +1,1 @@
1+v1 2313d6e263ad1a7222ab6a205f3a8e9450d5591fa26ff9fd2ee182939347c2d0 86f7dc9e6dc6becc415eac189766dab68a1028143574dc0092edfed8246aeb39 1820 1757505228114709523
A .gocache/23/23b08ebe03229a69828c500156d576489428e93be027d36003a51d4068796937-a +1 -0
@@ -0,0 +1,1 @@
1+v1 23b08ebe03229a69828c500156d576489428e93be027d36003a51d4068796937 6cda23936a95b07c776e055cc999110e2371aa4daed74760296cd847a910525c 444 1757505228106708120
@@ -0,0 +1,1 @@
1+v1 23b08ebe03229a69828c500156d576489428e93be027d36003a51d4068796937 6cda23936a95b07c776e055cc999110e2371aa4daed74760296cd847a910525c 444 1757505228106708120
A .gocache/24/247c625d3204aa4e409de52434286f9678304868ab6424d5c97d05c547399e6e-a +1 -0
@@ -0,0 +1,1 @@
1+v1 247c625d3204aa4e409de52434286f9678304868ab6424d5c97d05c547399e6e 1c71d47c1bce9bb3ef02c485e362b4330293e9b18a8bde97ed13c3eba4cac851 6549 1757505228125865826
@@ -0,0 +1,1 @@
1+v1 247c625d3204aa4e409de52434286f9678304868ab6424d5c97d05c547399e6e 1c71d47c1bce9bb3ef02c485e362b4330293e9b18a8bde97ed13c3eba4cac851 6549 1757505228125865826
A .gocache/25/251d6e952883f2366f884e8efdb4e3e45cc5459a74abaf1372f97aa34649959d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 251d6e952883f2366f884e8efdb4e3e45cc5459a74abaf1372f97aa34649959d b0e55ed25f5c5d075a228075e993a38661836d6cd93f89cd248e14bff3f9d644 1283 1757505228119450534
@@ -0,0 +1,1 @@
1+v1 251d6e952883f2366f884e8efdb4e3e45cc5459a74abaf1372f97aa34649959d b0e55ed25f5c5d075a228075e993a38661836d6cd93f89cd248e14bff3f9d644 1283 1757505228119450534
A .gocache/25/25252f3aa143afe21d566228004bf90d7f9333d879bb19c52ddb46dc8f5365d9-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/26/26a12eb9135e64a48fd01dadde8846f80c514844b84b13f16e7ef8d401013627-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/28/280cce5683a8d1add7f26adfd48cfd1e4a5b7f5f4843cc7ac8c3883c355dc8f9-a +1 -0
@@ -0,0 +1,1 @@
1+v1 280cce5683a8d1add7f26adfd48cfd1e4a5b7f5f4843cc7ac8c3883c355dc8f9 ee575944483fa0b726c8cc709aef6b17ec3219c863f2fed9550bec75838aaf2b 611 1757505228118394521
@@ -0,0 +1,1 @@
1+v1 280cce5683a8d1add7f26adfd48cfd1e4a5b7f5f4843cc7ac8c3883c355dc8f9 ee575944483fa0b726c8cc709aef6b17ec3219c863f2fed9550bec75838aaf2b 611 1757505228118394521
A .gocache/29/297e847b296397b2985bcf9bd494c94400e4420159cec64a8acc2bc3e3fe9ce0-a +1 -0
@@ -0,0 +1,1 @@
1+v1 297e847b296397b2985bcf9bd494c94400e4420159cec64a8acc2bc3e3fe9ce0 f6060cd2cb84196f324d65bb025e416e605dadae8a7e1ba789f554fe58a29c55 356 1757505228116863640
@@ -0,0 +1,1 @@
1+v1 297e847b296397b2985bcf9bd494c94400e4420159cec64a8acc2bc3e3fe9ce0 f6060cd2cb84196f324d65bb025e416e605dadae8a7e1ba789f554fe58a29c55 356 1757505228116863640
A .gocache/2e/2e7390a069448e92bcceee8403d820a3f8f0be04b263917d51dacc203e83d6a2-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/31/311a0d9f407c3acbabfb8bae62e6d962a0f89b7ce7de3c8eb23b7f651a61e002-a +1 -0
@@ -0,0 +1,1 @@
1+v1 311a0d9f407c3acbabfb8bae62e6d962a0f89b7ce7de3c8eb23b7f651a61e002 61ec3ef3a19b33bb19bfbf59fa05c1e7e726e70ffb3f796cfa486f540b59d95b 2146 1757505228120904256
@@ -0,0 +1,1 @@
1+v1 311a0d9f407c3acbabfb8bae62e6d962a0f89b7ce7de3c8eb23b7f651a61e002 61ec3ef3a19b33bb19bfbf59fa05c1e7e726e70ffb3f796cfa486f540b59d95b 2146 1757505228120904256
A .gocache/32/322aca18a13d9037c5ca3dfb2ad5e23e043e844044bcd4b902b31f0cba8cf349-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/34/345d69c99b4f98af6e0d47af3c4a94e58e96a6298faaba6b9cc58727592978cb-a +1 -0
@@ -0,0 +1,1 @@
1+v1 345d69c99b4f98af6e0d47af3c4a94e58e96a6298faaba6b9cc58727592978cb 96a2fc230afe948f2d45aba4c86d68c40ec47fd342cb60ac1151437f1713c50e 213 1757505228169878276
@@ -0,0 +1,1 @@
1+v1 345d69c99b4f98af6e0d47af3c4a94e58e96a6298faaba6b9cc58727592978cb 96a2fc230afe948f2d45aba4c86d68c40ec47fd342cb60ac1151437f1713c50e 213 1757505228169878276
A .gocache/34/349b018eb94830cfaa3206cbe95a3c132ddcff69d5e517d7f5ccba4acd987a24-a +1 -0
@@ -0,0 +1,1 @@
1+v1 349b018eb94830cfaa3206cbe95a3c132ddcff69d5e517d7f5ccba4acd987a24 54c50e880b9e08830f0b47a94e010e1f27753f759b249c0f14a7f41e9f657dd4 544 1757505228119020517
@@ -0,0 +1,1 @@
1+v1 349b018eb94830cfaa3206cbe95a3c132ddcff69d5e517d7f5ccba4acd987a24 54c50e880b9e08830f0b47a94e010e1f27753f759b249c0f14a7f41e9f657dd4 544 1757505228119020517
A .gocache/35/3585cc5ac1767cb2cf0fb4c9b8ff9eea78aa8239e8db30658d8d103b51c367f4-a +1 -0
@@ -0,0 +1,1 @@
1+v1 3585cc5ac1767cb2cf0fb4c9b8ff9eea78aa8239e8db30658d8d103b51c367f4 dbaffc9d6a19f8abe07a2e6da64cbac2e6ac1c0a80dd69d3b317d6c61f25f06d 10049 1757505228130250381
@@ -0,0 +1,1 @@
1+v1 3585cc5ac1767cb2cf0fb4c9b8ff9eea78aa8239e8db30658d8d103b51c367f4 dbaffc9d6a19f8abe07a2e6da64cbac2e6ac1c0a80dd69d3b317d6c61f25f06d 10049 1757505228130250381
A .gocache/35/35be7940d977ce9f0436b364d1fd2f82818ef9be36d673cdc53d62bdb5832378-a +1 -0
@@ -0,0 +1,1 @@
1+v1 35be7940d977ce9f0436b364d1fd2f82818ef9be36d673cdc53d62bdb5832378 6d064fdfe9b949ef24ffcfdb2a5a99b82e236e245eb4368cf093dc1d98b5d867 2285 1757505228134089718
@@ -0,0 +1,1 @@
1+v1 35be7940d977ce9f0436b364d1fd2f82818ef9be36d673cdc53d62bdb5832378 6d064fdfe9b949ef24ffcfdb2a5a99b82e236e245eb4368cf093dc1d98b5d867 2285 1757505228134089718
A .gocache/37/3788e698b2d63d35590835a09c1a67e832b265d3fc0d8b040d6fb79921789e1a-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/38/38dbd4d723e36f22dd91bf6c66e95e6bee27c6316ecde8ae167d754cbcd1dbea-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/38/38ff25bcceba20a07ce7bbdd8ef46b2401292e463672d8ea2715ecdea0f04b15-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/3c/3c8e5eeb55d2e81972bad1ffa59fcabc56fe65ee13be3c69a742e6a28a3d481e-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/3f/3f6cc7a2283ad4e96925cca86bef462f8fa580aca1e9255e071f518144795dab-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/3f/3fa667ccf1be47383d3a3a506a3de8cfa8699ea976adebe15313e15335457085-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/3f/3fbe49d7fec63b227f0de74c4156615d6dde8341a207fc8dc04f1890e0c01ade-a +1 -0
@@ -0,0 +1,1 @@
1+v1 3fbe49d7fec63b227f0de74c4156615d6dde8341a207fc8dc04f1890e0c01ade 59d6c060c189759486aa223a825cb0eb6001be6a3a2bbc6b73ee2f46e1a3f49d 1280 1757505228123317731
@@ -0,0 +1,1 @@
1+v1 3fbe49d7fec63b227f0de74c4156615d6dde8341a207fc8dc04f1890e0c01ade 59d6c060c189759486aa223a825cb0eb6001be6a3a2bbc6b73ee2f46e1a3f49d 1280 1757505228123317731
A .gocache/40/40e879c7fb27182cff4750133a0d6c9e9d003c4f2414b012ecde057d466f10d9-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/42/422bce29fe0c9756d189096d5002fc154692d311ebc892b9521b29089ca61a9c-a +1 -0
@@ -0,0 +1,1 @@
1+v1 422bce29fe0c9756d189096d5002fc154692d311ebc892b9521b29089ca61a9c 907e55d399c6bb3ccd60b74a3ef01fe5c95f29266db766a07c17e4ec2574c083 1600 1757505228113153012
@@ -0,0 +1,1 @@
1+v1 422bce29fe0c9756d189096d5002fc154692d311ebc892b9521b29089ca61a9c 907e55d399c6bb3ccd60b74a3ef01fe5c95f29266db766a07c17e4ec2574c083 1600 1757505228113153012
A .gocache/43/43bad77b9a51a399cacda456ceecee827117023c8086bb8e274978076dc57c8d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/44/440167a88c8b11795a31ddfedf7f94840dd74f6afe224f57343962a10a2b8766-a +1 -0
@@ -0,0 +1,1 @@
1+v1 440167a88c8b11795a31ddfedf7f94840dd74f6afe224f57343962a10a2b8766 45d5cd970948159f2b417b7684346aae85bec9ba376e258bf465879dff2ede63 5164 1757505228118610639
@@ -0,0 +1,1 @@
1+v1 440167a88c8b11795a31ddfedf7f94840dd74f6afe224f57343962a10a2b8766 45d5cd970948159f2b417b7684346aae85bec9ba376e258bf465879dff2ede63 5164 1757505228118610639
A .gocache/44/4427157598d437973f382bc8ead2e441792137b8d5f788c343afad5552385510-a +1 -0
@@ -0,0 +1,1 @@
1+v1 4427157598d437973f382bc8ead2e441792137b8d5f788c343afad5552385510 98acef255e1a1cac551a00fcd8f22760d1020a2b26503a11e90af60a8601e696 1227 1757505228111974609
@@ -0,0 +1,1 @@
1+v1 4427157598d437973f382bc8ead2e441792137b8d5f788c343afad5552385510 98acef255e1a1cac551a00fcd8f22760d1020a2b26503a11e90af60a8601e696 1227 1757505228111974609
A .gocache/45/45d5cd970948159f2b417b7684346aae85bec9ba376e258bf465879dff2ede63-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/46/460b262975707ebc2bf11bc1eb7f64aae20aeee089fa9a532e83ee387b42b153-a +1 -0
@@ -0,0 +1,1 @@
1+v1 460b262975707ebc2bf11bc1eb7f64aae20aeee089fa9a532e83ee387b42b153 5fb26c7459dea2ae6720d82582b199cfdc7e1cb8330a26f46c587083af250a85 2833 1757505228112479816
@@ -0,0 +1,1 @@
1+v1 460b262975707ebc2bf11bc1eb7f64aae20aeee089fa9a532e83ee387b42b153 5fb26c7459dea2ae6720d82582b199cfdc7e1cb8330a26f46c587083af250a85 2833 1757505228112479816
A .gocache/4a/4a7ee1eaae2452ab7761edb90e830988e6b957f8d141101cca7197725990d4ab-a +1 -0
@@ -0,0 +1,1 @@
1+v1 4a7ee1eaae2452ab7761edb90e830988e6b957f8d141101cca7197725990d4ab 1cdcf394c3f49537d449d65c2c0e6e602e3b6d7d5db55c37c77d719192c05ac7 1607 1757505228105911865
@@ -0,0 +1,1 @@
1+v1 4a7ee1eaae2452ab7761edb90e830988e6b957f8d141101cca7197725990d4ab 1cdcf394c3f49537d449d65c2c0e6e602e3b6d7d5db55c37c77d719192c05ac7 1607 1757505228105911865
A .gocache/4e/4ea8f71aa629179dcc37be86a8d85bb6eaf90850f41cb72e8e5d9cd11f822218-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/4f/4f078d3bf58e6c275dba41867c40147262e93466b45f1bf168854eff0ca5dd1d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/50/5038c8da4394a42d7c0a59282b7fb3795523c5454af16a40f963e918c9bbd2ab-a +1 -0
@@ -0,0 +1,1 @@
1+v1 5038c8da4394a42d7c0a59282b7fb3795523c5454af16a40f963e918c9bbd2ab 20ea81bf0563c6cf49bb34a416512c9e5fe098c25190e9901abcfbff0294a651 260 1757505228120991745
@@ -0,0 +1,1 @@
1+v1 5038c8da4394a42d7c0a59282b7fb3795523c5454af16a40f963e918c9bbd2ab 20ea81bf0563c6cf49bb34a416512c9e5fe098c25190e9901abcfbff0294a651 260 1757505228120991745
A .gocache/50/50778ba1457e3c49ec29e2d62274a564b54b5731d871e6f207e1b2ecbb2b8e4b-a +1 -0
@@ -0,0 +1,1 @@
1+v1 50778ba1457e3c49ec29e2d62274a564b54b5731d871e6f207e1b2ecbb2b8e4b 26a12eb9135e64a48fd01dadde8846f80c514844b84b13f16e7ef8d401013627 32115 1757505228130927717
@@ -0,0 +1,1 @@
1+v1 50778ba1457e3c49ec29e2d62274a564b54b5731d871e6f207e1b2ecbb2b8e4b 26a12eb9135e64a48fd01dadde8846f80c514844b84b13f16e7ef8d401013627 32115 1757505228130927717
A .gocache/50/50874b1e31086247727adeff783b69b709e3d849c2cde43378b06158371a5567-a +1 -0
@@ -0,0 +1,1 @@
1+v1 50874b1e31086247727adeff783b69b709e3d849c2cde43378b06158371a5567 5d502a0aeae97c72ff2a281d1d42ae6ed2b94034e58baf147f66f629fb6d90bc 2640 1757505228122983153
@@ -0,0 +1,1 @@
1+v1 50874b1e31086247727adeff783b69b709e3d849c2cde43378b06158371a5567 5d502a0aeae97c72ff2a281d1d42ae6ed2b94034e58baf147f66f629fb6d90bc 2640 1757505228122983153
A .gocache/50/50fd77047059e82529c27d30f937f49a67214d4f553f9bc3d5dcbb5a5f08bba4-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/51/513fd5eec562511950a9be533f932d50591dc003fcdd85dd25b27e749a34727f-a +1 -0
@@ -0,0 +1,1 @@
1+v1 513fd5eec562511950a9be533f932d50591dc003fcdd85dd25b27e749a34727f 7c6665011dd43766ca072668b8fb68acad273e2952d1ea96a7b6a15aaecca573 899 1757505228115677507
@@ -0,0 +1,1 @@
1+v1 513fd5eec562511950a9be533f932d50591dc003fcdd85dd25b27e749a34727f 7c6665011dd43766ca072668b8fb68acad273e2952d1ea96a7b6a15aaecca573 899 1757505228115677507
A .gocache/53/5302bdf843dacbee53c112bf54aff4a57c908f1cc1f5fb5dae64f6f48b53dfa1-a +1 -0
@@ -0,0 +1,1 @@
1+v1 5302bdf843dacbee53c112bf54aff4a57c908f1cc1f5fb5dae64f6f48b53dfa1 b6b20549db8db84aed956ca9627cbb7a358b7f00ba49304c5cb63c25ef5e9c94 47087 1757505228132962594
@@ -0,0 +1,1 @@
1+v1 5302bdf843dacbee53c112bf54aff4a57c908f1cc1f5fb5dae64f6f48b53dfa1 b6b20549db8db84aed956ca9627cbb7a358b7f00ba49304c5cb63c25ef5e9c94 47087 1757505228132962594
A .gocache/53/53f9c9511294e431b587c228d7ee68afc22c9be04c28d704b384d3e79d6ac6ae-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/54/546465ed11f1e0a3dbb0d61dd2021b4760f89f63bad7398b861f44abfe2d77cd-a +1 -0
@@ -0,0 +1,1 @@
1+v1 546465ed11f1e0a3dbb0d61dd2021b4760f89f63bad7398b861f44abfe2d77cd 2e7390a069448e92bcceee8403d820a3f8f0be04b263917d51dacc203e83d6a2 1379 1757505228117175208
@@ -0,0 +1,1 @@
1+v1 546465ed11f1e0a3dbb0d61dd2021b4760f89f63bad7398b861f44abfe2d77cd 2e7390a069448e92bcceee8403d820a3f8f0be04b263917d51dacc203e83d6a2 1379 1757505228117175208
A .gocache/54/54c50e880b9e08830f0b47a94e010e1f27753f759b249c0f14a7f41e9f657dd4-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/56/565ca3c621529f56607581ec02fa97ec2cdb88a53c092d43541a2c851dec995a-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/56/56a3b7bd82c15eddf68c5795dcd89261066f0e64b542f79d207affda881dc9c5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 56a3b7bd82c15eddf68c5795dcd89261066f0e64b542f79d207affda881dc9c5 110565c9b12f437b075fd2e6df2846d1d9e4520615865a050a36c34af8cf62e9 3231 1757505228120941976
@@ -0,0 +1,1 @@
1+v1 56a3b7bd82c15eddf68c5795dcd89261066f0e64b542f79d207affda881dc9c5 110565c9b12f437b075fd2e6df2846d1d9e4520615865a050a36c34af8cf62e9 3231 1757505228120941976
A .gocache/56/56e6a51653f2207ae2de540b8e72e47073c38247374fce78f7bc8be3f1f1b706-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/58/58397441fd42818e16e573870733c15eec2776861a79bbbc971046b1457c61ba-a +1 -0
@@ -0,0 +1,1 @@
1+v1 58397441fd42818e16e573870733c15eec2776861a79bbbc971046b1457c61ba 62681189671f295f9d265f7b3ecaca8622669986c36b79aa349c73085ab18b0b 1906 1757505228115942855
@@ -0,0 +1,1 @@
1+v1 58397441fd42818e16e573870733c15eec2776861a79bbbc971046b1457c61ba 62681189671f295f9d265f7b3ecaca8622669986c36b79aa349c73085ab18b0b 1906 1757505228115942855
A .gocache/59/59d6c060c189759486aa223a825cb0eb6001be6a3a2bbc6b73ee2f46e1a3f49d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/5b/5b343b0edf64c763abeec654aa60e73f9d0122da7675bd43af89fe05e241aa6e-a +1 -0
@@ -0,0 +1,1 @@
1+v1 5b343b0edf64c763abeec654aa60e73f9d0122da7675bd43af89fe05e241aa6e 659ff469f81e3e34cf6be4bd983ef5954b6e8ea1fba8edd716f7026e58ccc39c 707 1757505228122419357
@@ -0,0 +1,1 @@
1+v1 5b343b0edf64c763abeec654aa60e73f9d0122da7675bd43af89fe05e241aa6e 659ff469f81e3e34cf6be4bd983ef5954b6e8ea1fba8edd716f7026e58ccc39c 707 1757505228122419357
A .gocache/5c/5c2d19050b03ebd8a2fe2114715d07d54a582c22253f25573f448f8218403a6a-a +1 -0
@@ -0,0 +1,1 @@
1+v1 5c2d19050b03ebd8a2fe2114715d07d54a582c22253f25573f448f8218403a6a 6d4a91a958d61a2bcf9c6d17a4c62f752b267814c495af46af25cfb45d30f181 1798 1757505228110898585
@@ -0,0 +1,1 @@
1+v1 5c2d19050b03ebd8a2fe2114715d07d54a582c22253f25573f448f8218403a6a 6d4a91a958d61a2bcf9c6d17a4c62f752b267814c495af46af25cfb45d30f181 1798 1757505228110898585
A .gocache/5c/5c50b7caf82a0ffa5c4ed93ea5bc070895bed23400d0f33babc284342a8f7cf2-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/5d/5d502a0aeae97c72ff2a281d1d42ae6ed2b94034e58baf147f66f629fb6d90bc-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/5f/5f35a2fd839f1d018328dae4f39b13287e32fc81d1b7c0745c498fa6b8f82082-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/5f/5fb26c7459dea2ae6720d82582b199cfdc7e1cb8330a26f46c587083af250a85-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/5f/5ff957e3466c3a6d27acb49c24426a78e53fc5dea38953e588541d19a52ce305-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/60/607ece0c5a0eae9ef15a81ddcb9d1e152bb6e0b899c3f4533bdb16346fd64e63-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/61/616a72bbba0b377869eebb9044f5e420e82c8e2e28262b41e11c2a2ca5015682-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/61/61ec3ef3a19b33bb19bfbf59fa05c1e7e726e70ffb3f796cfa486f540b59d95b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/62/62681189671f295f9d265f7b3ecaca8622669986c36b79aa349c73085ab18b0b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/63/63e9b565c9b0b9da1017f9e268480d01459ab1609dec2352019347011de3e8f5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 63e9b565c9b0b9da1017f9e268480d01459ab1609dec2352019347011de3e8f5 7dc0d5503367e1f9bb024f6aec20f91a53dd4be8c644756e5334c97501aba37b 5252 1757505228124717823
@@ -0,0 +1,1 @@
1+v1 63e9b565c9b0b9da1017f9e268480d01459ab1609dec2352019347011de3e8f5 7dc0d5503367e1f9bb024f6aec20f91a53dd4be8c644756e5334c97501aba37b 5252 1757505228124717823
A .gocache/64/64583e79f8f3a3f9ffa77a0104458e26b057893cd06e558984e8746de41d4705-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/64/64772e52f3c9e59d9a56c100dcb3ab3283b9d3fd15c40cb3681d20775a03e296-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/65/659ff469f81e3e34cf6be4bd983ef5954b6e8ea1fba8edd716f7026e58ccc39c-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/68/689c45ed80dcec62b9dfea029447c7b8f6e3dd63b22434268dceca9c8f37ab27-a +1 -0
@@ -0,0 +1,1 @@
1+v1 689c45ed80dcec62b9dfea029447c7b8f6e3dd63b22434268dceca9c8f37ab27 111733fd5e75a9e33c6305a02a8024690e038f13226e83835a4efa14cb4aae9d 1425 1757505228122415907
@@ -0,0 +1,1 @@
1+v1 689c45ed80dcec62b9dfea029447c7b8f6e3dd63b22434268dceca9c8f37ab27 111733fd5e75a9e33c6305a02a8024690e038f13226e83835a4efa14cb4aae9d 1425 1757505228122415907
A .gocache/69/691ef5801437bd0dcbe2338e0b1a77bf987b907b8f1cb83d85af6c360478dae2-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6a/6a7c5daa77cf0136ce75a651f5631a05d4b86aa08e8f82b5dfa84e0426d562db-a +1 -0
@@ -0,0 +1,1 @@
1+v1 6a7c5daa77cf0136ce75a651f5631a05d4b86aa08e8f82b5dfa84e0426d562db e7f3031171da1b6e693e7697f28f45bf6e308ccf29d9cc08de58cbdb24a3431e 1242 1757505228108434880
@@ -0,0 +1,1 @@
1+v1 6a7c5daa77cf0136ce75a651f5631a05d4b86aa08e8f82b5dfa84e0426d562db e7f3031171da1b6e693e7697f28f45bf6e308ccf29d9cc08de58cbdb24a3431e 1242 1757505228108434880
A .gocache/6c/6c924fa6dee5bca7d9b032c7729bc48e04d180b4043449f4fe1e48fd7be34b6a-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6c/6cda23936a95b07c776e055cc999110e2371aa4daed74760296cd847a910525c-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6d/6d02c24276ef9cf3761b7a44821cf3dfb49e5a9190d03633ea48299742837445-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6d/6d064fdfe9b949ef24ffcfdb2a5a99b82e236e245eb4368cf093dc1d98b5d867-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6d/6d4a91a958d61a2bcf9c6d17a4c62f752b267814c495af46af25cfb45d30f181-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6d/6d55ed4dc39640c2e281b8cfd86c704af156f8311f61e50ba0d9f0511753d124-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/6e/6e67d6249e9b8a1c5074f65403c74b2a64cb23ca5b62d89a2e2243729b7c856a-a +1 -0
@@ -0,0 +1,1 @@
1+v1 6e67d6249e9b8a1c5074f65403c74b2a64cb23ca5b62d89a2e2243729b7c856a edf7bfe45e186c7d73eac5a90a537b0741151edc7043866d8b3a5aeb04458739 1230 1757505228120834306
@@ -0,0 +1,1 @@
1+v1 6e67d6249e9b8a1c5074f65403c74b2a64cb23ca5b62d89a2e2243729b7c856a edf7bfe45e186c7d73eac5a90a537b0741151edc7043866d8b3a5aeb04458739 1230 1757505228120834306
A .gocache/6f/6f3aeb4dce5cedf5f716a863908cd62e3e8d0c236dd018577b35d817c3ea414c-a +1 -0
@@ -0,0 +1,1 @@
1+v1 6f3aeb4dce5cedf5f716a863908cd62e3e8d0c236dd018577b35d817c3ea414c 959e7706b5e83f97491acbab07ee785f28b8e4df6e0eb28894efdd68ab9254c0 6238 1757505228117609095
@@ -0,0 +1,1 @@
1+v1 6f3aeb4dce5cedf5f716a863908cd62e3e8d0c236dd018577b35d817c3ea414c 959e7706b5e83f97491acbab07ee785f28b8e4df6e0eb28894efdd68ab9254c0 6238 1757505228117609095
A .gocache/6f/6fd3fa7535dab0603ab347a5f6b31ab6e762a02f13628a7aa11d87953503778d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 6fd3fa7535dab0603ab347a5f6b31ab6e762a02f13628a7aa11d87953503778d 9a826a75c8ba81e66f585e8f504cce921c06bdfa6fc625d04a0fd43d3666d54b 8392 1757505228170946439
@@ -0,0 +1,1 @@
1+v1 6fd3fa7535dab0603ab347a5f6b31ab6e762a02f13628a7aa11d87953503778d 9a826a75c8ba81e66f585e8f504cce921c06bdfa6fc625d04a0fd43d3666d54b 8392 1757505228170946439
A .gocache/70/701d0767331410859a6ae98da0d6b0b7cc6bb760162f97f4a30d548868b2be32-a +1 -0
@@ -0,0 +1,1 @@
1+v1 701d0767331410859a6ae98da0d6b0b7cc6bb760162f97f4a30d548868b2be32 43bad77b9a51a399cacda456ceecee827117023c8086bb8e274978076dc57c8d 1026 1757505228106190693
@@ -0,0 +1,1 @@
1+v1 701d0767331410859a6ae98da0d6b0b7cc6bb760162f97f4a30d548868b2be32 43bad77b9a51a399cacda456ceecee827117023c8086bb8e274978076dc57c8d 1026 1757505228106190693
A .gocache/70/704cec9fc818b572290aef4a36a39dabe7df68b1aadf73de9e77253196622c8e-a +1 -0
@@ -0,0 +1,1 @@
1+v1 704cec9fc818b572290aef4a36a39dabe7df68b1aadf73de9e77253196622c8e 9cb9480b1cc8282da65b00bc7fdf4413b83748d4bea6c2856c08dab73989b927 500 1757505228118200742
@@ -0,0 +1,1 @@
1+v1 704cec9fc818b572290aef4a36a39dabe7df68b1aadf73de9e77253196622c8e 9cb9480b1cc8282da65b00bc7fdf4413b83748d4bea6c2856c08dab73989b927 500 1757505228118200742
A .gocache/71/71afd02db5a30104e078fda5d62c487bd42c42d865b53f35e3762c9dd4262036-a +1 -0
@@ -0,0 +1,1 @@
1+v1 71afd02db5a30104e078fda5d62c487bd42c42d865b53f35e3762c9dd4262036 6d02c24276ef9cf3761b7a44821cf3dfb49e5a9190d03633ea48299742837445 481 1757505228108602029
@@ -0,0 +1,1 @@
1+v1 71afd02db5a30104e078fda5d62c487bd42c42d865b53f35e3762c9dd4262036 6d02c24276ef9cf3761b7a44821cf3dfb49e5a9190d03633ea48299742837445 481 1757505228108602029
A .gocache/72/72ad7e65f43accb0e96018c1369b8ca42adef754a9ee8daf5686c7fda67e1eb8-a +1 -0
@@ -0,0 +1,1 @@
1+v1 72ad7e65f43accb0e96018c1369b8ca42adef754a9ee8daf5686c7fda67e1eb8 2293db70ae4189c4a53fd8073c6e362764b6ccdbdac1db8c8595bb2cd6256db0 636 1757505228125605878
@@ -0,0 +1,1 @@
1+v1 72ad7e65f43accb0e96018c1369b8ca42adef754a9ee8daf5686c7fda67e1eb8 2293db70ae4189c4a53fd8073c6e362764b6ccdbdac1db8c8595bb2cd6256db0 636 1757505228125605878
A .gocache/72/72c949a9f5af5823a19186e04d0a1372649e751515765d0a2f3071e86c227f97-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/73/738f21f3473efc58f2be7a77faed952f5ef11ce279d6ca6627a7a95de19396d1-a +1 -0
@@ -0,0 +1,1 @@
1+v1 738f21f3473efc58f2be7a77faed952f5ef11ce279d6ca6627a7a95de19396d1 ebd90b69af4d09dfb083753e429597db1c380a47c575af2c6570732024dda924 2484 1757505228170817660
@@ -0,0 +1,1 @@
1+v1 738f21f3473efc58f2be7a77faed952f5ef11ce279d6ca6627a7a95de19396d1 ebd90b69af4d09dfb083753e429597db1c380a47c575af2c6570732024dda924 2484 1757505228170817660
A .gocache/76/76ebee382ce4dce1c068b5f0459ddeb1e5717552f206a406e2098f579b029e72-a +1 -0
@@ -0,0 +1,1 @@
1+v1 76ebee382ce4dce1c068b5f0459ddeb1e5717552f206a406e2098f579b029e72 5c50b7caf82a0ffa5c4ed93ea5bc070895bed23400d0f33babc284342a8f7cf2 7765 1757505228120321809
@@ -0,0 +1,1 @@
1+v1 76ebee382ce4dce1c068b5f0459ddeb1e5717552f206a406e2098f579b029e72 5c50b7caf82a0ffa5c4ed93ea5bc070895bed23400d0f33babc284342a8f7cf2 7765 1757505228120321809
A .gocache/77/775691fea80ed46dc293311f9a115c3584e0cdb63a55711d5ff4caf18e6bb5a7-a +1 -0
@@ -0,0 +1,1 @@
1+v1 775691fea80ed46dc293311f9a115c3584e0cdb63a55711d5ff4caf18e6bb5a7 b2b07dbfe469cb23f4cd07119a296c4095d21a94fe2c0060bf1a5dbc4ebab7cb 599 1757505228120294339
@@ -0,0 +1,1 @@
1+v1 775691fea80ed46dc293311f9a115c3584e0cdb63a55711d5ff4caf18e6bb5a7 b2b07dbfe469cb23f4cd07119a296c4095d21a94fe2c0060bf1a5dbc4ebab7cb 599 1757505228120294339
A .gocache/77/77f5329fdb511ad70acec61a079b821c5b2f8aa42d1b9407d25d34d3df8dbc32-a +1 -0
@@ -0,0 +1,1 @@
1+v1 77f5329fdb511ad70acec61a079b821c5b2f8aa42d1b9407d25d34d3df8dbc32 1ebae4c8e1d8448770bfc6c130367447076dd7ce4b0bac58ac987d962a2c64b2 1008 1757505228113181542
@@ -0,0 +1,1 @@
1+v1 77f5329fdb511ad70acec61a079b821c5b2f8aa42d1b9407d25d34d3df8dbc32 1ebae4c8e1d8448770bfc6c130367447076dd7ce4b0bac58ac987d962a2c64b2 1008 1757505228113181542
A .gocache/79/794f4ce12971b12aa3424cd507137ced88762520be253f69c460d72227003bbe-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/7a/7a226b3f33e49ac84653dc69319d350d91d2a440cd8aaec88294d3ded0f4fa44-a +1 -0
@@ -0,0 +1,1 @@
1+v1 7a226b3f33e49ac84653dc69319d350d91d2a440cd8aaec88294d3ded0f4fa44 25252f3aa143afe21d566228004bf90d7f9333d879bb19c52ddb46dc8f5365d9 527 1757505228131218415
@@ -0,0 +1,1 @@
1+v1 7a226b3f33e49ac84653dc69319d350d91d2a440cd8aaec88294d3ded0f4fa44 25252f3aa143afe21d566228004bf90d7f9333d879bb19c52ddb46dc8f5365d9 527 1757505228131218415
A .gocache/7a/7a3264a50238aca98da337aee7dc033696338b37cefc83ec0ec5763222cced6b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/7b/7bc049fc310f7ae3ca92404b5abb912337064dd9c79c7891398a8eaa3ee44f33-a +1 -0
@@ -0,0 +1,1 @@
1+v1 7bc049fc310f7ae3ca92404b5abb912337064dd9c79c7891398a8eaa3ee44f33 c30c7406e98f2b98b3e0d2e9bdad052573865dd01ac197bbf000000e00d4f781 219 1757505228133459311
@@ -0,0 +1,1 @@
1+v1 7bc049fc310f7ae3ca92404b5abb912337064dd9c79c7891398a8eaa3ee44f33 c30c7406e98f2b98b3e0d2e9bdad052573865dd01ac197bbf000000e00d4f781 219 1757505228133459311
A .gocache/7c/7c6665011dd43766ca072668b8fb68acad273e2952d1ea96a7b6a15aaecca573-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/7d/7dc0d5503367e1f9bb024f6aec20f91a53dd4be8c644756e5334c97501aba37b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/81/81017f3c258a60e089ed717a484aefeeccf543da9b381b9e38530b05c08baa8e-a +1 -0
@@ -0,0 +1,1 @@
1+v1 81017f3c258a60e089ed717a484aefeeccf543da9b381b9e38530b05c08baa8e 0228e8c8f89db1a322d617e46969cef886b9a0ebea8b462907df092f9339a73c 251 1757505228121911360
@@ -0,0 +1,1 @@
1+v1 81017f3c258a60e089ed717a484aefeeccf543da9b381b9e38530b05c08baa8e 0228e8c8f89db1a322d617e46969cef886b9a0ebea8b462907df092f9339a73c 251 1757505228121911360
A .gocache/82/826a8d3e04f3f62b2b29fcd7478d49f1f6c0bd4dbb51abf04a42c207361fb373-a +1 -0
@@ -0,0 +1,1 @@
1+v1 826a8d3e04f3f62b2b29fcd7478d49f1f6c0bd4dbb51abf04a42c207361fb373 906621c567a77eb8fc4bd3e86c5d2269358ade00d806fd30ff875835fc1f02a6 2945 1757505228120247740
@@ -0,0 +1,1 @@
1+v1 826a8d3e04f3f62b2b29fcd7478d49f1f6c0bd4dbb51abf04a42c207361fb373 906621c567a77eb8fc4bd3e86c5d2269358ade00d806fd30ff875835fc1f02a6 2945 1757505228120247740
A .gocache/86/86f7dc9e6dc6becc415eac189766dab68a1028143574dc0092edfed8246aeb39-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/88/88c291f2c247d09a1bd1a9e7ce9919b75ac357b0caabd0f65da740dfd0572772-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/8a/8ab5ca50ac2ef112f199fb36bb682c40d2ccb47f14d78b9569925e012f4b1e4d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 8ab5ca50ac2ef112f199fb36bb682c40d2ccb47f14d78b9569925e012f4b1e4d c8a06c5c7166faf9eacdf877d12e11f498558d8161b7bc2f8c43b08cb3e321e7 956 1757505228122769395
@@ -0,0 +1,1 @@
1+v1 8ab5ca50ac2ef112f199fb36bb682c40d2ccb47f14d78b9569925e012f4b1e4d c8a06c5c7166faf9eacdf877d12e11f498558d8161b7bc2f8c43b08cb3e321e7 956 1757505228122769395
A .gocache/8d/8dc65daefb8159be9a9bcd612d5ea9966a8ad0ca05321fdaec3441231eb8c131-a +1 -0
@@ -0,0 +1,1 @@
1+v1 8dc65daefb8159be9a9bcd612d5ea9966a8ad0ca05321fdaec3441231eb8c131 50fd77047059e82529c27d30f937f49a67214d4f553f9bc3d5dcbb5a5f08bba4 826 1757505228112097348
@@ -0,0 +1,1 @@
1+v1 8dc65daefb8159be9a9bcd612d5ea9966a8ad0ca05321fdaec3441231eb8c131 50fd77047059e82529c27d30f937f49a67214d4f553f9bc3d5dcbb5a5f08bba4 826 1757505228112097348
A .gocache/8d/8dcd3d5447ffd4b31b2405879c55583e8db02990525db4fc9c5ee11be4291870-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/8e/8e448f2c6906d0bd76f37a080ef301d2fa17a6c846f6ac1804c7ddb07f890b6d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/90/9023ecf3df3b1073fc7b9471998be5ee0cd15b737e577a5df514965360c2a0d7-a +1 -0
@@ -0,0 +1,1 @@
1+v1 9023ecf3df3b1073fc7b9471998be5ee0cd15b737e577a5df514965360c2a0d7 4ea8f71aa629179dcc37be86a8d85bb6eaf90850f41cb72e8e5d9cd11f822218 618 1757505228112777484
@@ -0,0 +1,1 @@
1+v1 9023ecf3df3b1073fc7b9471998be5ee0cd15b737e577a5df514965360c2a0d7 4ea8f71aa629179dcc37be86a8d85bb6eaf90850f41cb72e8e5d9cd11f822218 618 1757505228112777484
A .gocache/90/906621c567a77eb8fc4bd3e86c5d2269358ade00d806fd30ff875835fc1f02a6-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/90/907e55d399c6bb3ccd60b74a3ef01fe5c95f29266db766a07c17e4ec2574c083-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/91/9115a6364d4ba7cd8fc040db9b139c5f37e92675fcb4720b5c7db3c14062298b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/93/939d3ce03a9af43c5c5001bb473157ca888fbb714fa37abfb5719cf1044d0fc9-a +1 -0
@@ -0,0 +1,1 @@
1+v1 939d3ce03a9af43c5c5001bb473157ca888fbb714fa37abfb5719cf1044d0fc9 eed383dfac517bb38a921cfd945ffaee5b0a851f0edebb50e12f0c4cb90233e7 15466 1757505228126260624
@@ -0,0 +1,1 @@
1+v1 939d3ce03a9af43c5c5001bb473157ca888fbb714fa37abfb5719cf1044d0fc9 eed383dfac517bb38a921cfd945ffaee5b0a851f0edebb50e12f0c4cb90233e7 15466 1757505228126260624
A .gocache/94/944aa6e0c8ecdea610143895cabf0ae094bf30738b987a30adbfb9ed9925fe7d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 944aa6e0c8ecdea610143895cabf0ae094bf30738b987a30adbfb9ed9925fe7d 8dcd3d5447ffd4b31b2405879c55583e8db02990525db4fc9c5ee11be4291870 393 1757505228123906808
@@ -0,0 +1,1 @@
1+v1 944aa6e0c8ecdea610143895cabf0ae094bf30738b987a30adbfb9ed9925fe7d 8dcd3d5447ffd4b31b2405879c55583e8db02990525db4fc9c5ee11be4291870 393 1757505228123906808
A .gocache/95/959e7706b5e83f97491acbab07ee785f28b8e4df6e0eb28894efdd68ab9254c0-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/96/96a2fc230afe948f2d45aba4c86d68c40ec47fd342cb60ac1151437f1713c50e-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/97/9724484806fca16de6b789bd72df00466b2fdb981037ad80004284bb6b15fcf9-a +1 -0
@@ -0,0 +1,1 @@
1+v1 9724484806fca16de6b789bd72df00466b2fdb981037ad80004284bb6b15fcf9 3788e698b2d63d35590835a09c1a67e832b265d3fc0d8b040d6fb79921789e1a 414 1757505228170002595
@@ -0,0 +1,1 @@
1+v1 9724484806fca16de6b789bd72df00466b2fdb981037ad80004284bb6b15fcf9 3788e698b2d63d35590835a09c1a67e832b265d3fc0d8b040d6fb79921789e1a 414 1757505228170002595
A .gocache/98/98008025876333837b7f968679e79e0e2faca6162f7164ececd5ca7f3d0ea304-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/98/98acef255e1a1cac551a00fcd8f22760d1020a2b26503a11e90af60a8601e696-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/9a/9a826a75c8ba81e66f585e8f504cce921c06bdfa6fc625d04a0fd43d3666d54b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/9c/9cb9480b1cc8282da65b00bc7fdf4413b83748d4bea6c2856c08dab73989b927-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/9d/9dce38579d7af3cd81b7252aeead640c36097c56098d7c7efada7eee0287d344-a +1 -0
@@ -0,0 +1,1 @@
1+v1 9dce38579d7af3cd81b7252aeead640c36097c56098d7c7efada7eee0287d344 38dbd4d723e36f22dd91bf6c66e95e6bee27c6316ecde8ae167d754cbcd1dbea 3445 1757505228113207501
@@ -0,0 +1,1 @@
1+v1 9dce38579d7af3cd81b7252aeead640c36097c56098d7c7efada7eee0287d344 38dbd4d723e36f22dd91bf6c66e95e6bee27c6316ecde8ae167d754cbcd1dbea 3445 1757505228113207501
A .gocache/9e/9e1bee65f89a698fc16682af3859e63594ace3bb1c3359dd69f54430b6acb1ab-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/9e/9ed75d7c7beff44a85448bbf19fb61b6ae6d65cc5870f81544be9c96801acc87-a +1 -0
@@ -0,0 +1,1 @@
1+v1 9ed75d7c7beff44a85448bbf19fb61b6ae6d65cc5870f81544be9c96801acc87 0c9fa99bb3f81431ee9ce34aa86369e2cda0906285789b5a983fd38dbc990d83 878 1757505228116259303
@@ -0,0 +1,1 @@
1+v1 9ed75d7c7beff44a85448bbf19fb61b6ae6d65cc5870f81544be9c96801acc87 0c9fa99bb3f81431ee9ce34aa86369e2cda0906285789b5a983fd38dbc990d83 878 1757505228116259303
A .gocache/README +4 -0
@@ -0,0 +1,4 @@
1+This directory holds cached build artifacts from the Go build system.
2+Run "go clean -cache" if the directory is getting too large.
3+Run "go clean -fuzzcache" to delete the fuzz cache.
4+See go.dev to learn more about Go.
@@ -0,0 +1,4 @@
1+This directory holds cached build artifacts from the Go build system.
2+Run "go clean -cache" if the directory is getting too large.
3+Run "go clean -fuzzcache" to delete the fuzz cache.
4+See go.dev to learn more about Go.
A .gocache/a1/a13a244e9dcd487b322542fa9a90a3f933b6eccad99782cda750b86e5f3dff24-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a13a244e9dcd487b322542fa9a90a3f933b6eccad99782cda750b86e5f3dff24 6d55ed4dc39640c2e281b8cfd86c704af156f8311f61e50ba0d9f0511753d124 2043 1757505228107069958
@@ -0,0 +1,1 @@
1+v1 a13a244e9dcd487b322542fa9a90a3f933b6eccad99782cda750b86e5f3dff24 6d55ed4dc39640c2e281b8cfd86c704af156f8311f61e50ba0d9f0511753d124 2043 1757505228107069958
A .gocache/a1/a1b27a06dde351088cd231bbd80a6a8b250718636a86ebc5e8285f7171134a5f-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/a2/a2caba3a9c4b4537ab111b8ad1089e6f0112f4bf8753a27ec8b626cf37cd0b98-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a2caba3a9c4b4537ab111b8ad1089e6f0112f4bf8753a27ec8b626cf37cd0b98 b57217dcc6c08aac6f3d5fb44571617a0e80065b14128f937b9eb23fc80431f4 3850 1757505228119373455
@@ -0,0 +1,1 @@
1+v1 a2caba3a9c4b4537ab111b8ad1089e6f0112f4bf8753a27ec8b626cf37cd0b98 b57217dcc6c08aac6f3d5fb44571617a0e80065b14128f937b9eb23fc80431f4 3850 1757505228119373455
A .gocache/a4/a4dc5836de75edef6a404405e9bb795f03b1b9b8efda4b283f03dbc7020653bf-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a4dc5836de75edef6a404405e9bb795f03b1b9b8efda4b283f03dbc7020653bf 322aca18a13d9037c5ca3dfb2ad5e23e043e844044bcd4b902b31f0cba8cf349 6657 1757505228172633789
@@ -0,0 +1,1 @@
1+v1 a4dc5836de75edef6a404405e9bb795f03b1b9b8efda4b283f03dbc7020653bf 322aca18a13d9037c5ca3dfb2ad5e23e043e844044bcd4b902b31f0cba8cf349 6657 1757505228172633789
A .gocache/a6/a6a23ddaea785edbc09e23b3f05eb32f2f6cce9bb0941083971fc5263ed6e2aa-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a6a23ddaea785edbc09e23b3f05eb32f2f6cce9bb0941083971fc5263ed6e2aa a1b27a06dde351088cd231bbd80a6a8b250718636a86ebc5e8285f7171134a5f 201 1757505228113198262
@@ -0,0 +1,1 @@
1+v1 a6a23ddaea785edbc09e23b3f05eb32f2f6cce9bb0941083971fc5263ed6e2aa a1b27a06dde351088cd231bbd80a6a8b250718636a86ebc5e8285f7171134a5f 201 1757505228113198262
A .gocache/a6/a6e4b20af7e88c7a3dce929c1c60824edf21471b00ca30ef0cb8ad0e8267465a-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a6e4b20af7e88c7a3dce929c1c60824edf21471b00ca30ef0cb8ad0e8267465a fb79486f7be9e36ed1a596979552b8323f04f1f30058e4029a9215d36467805b 1966 1757505228134399416
@@ -0,0 +1,1 @@
1+v1 a6e4b20af7e88c7a3dce929c1c60824edf21471b00ca30ef0cb8ad0e8267465a fb79486f7be9e36ed1a596979552b8323f04f1f30058e4029a9215d36467805b 1966 1757505228134399416
A .gocache/a7/a7d59222dc41a292de350d90f8f88514337193f3d55e010d06176a75fcfdc670-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a7d59222dc41a292de350d90f8f88514337193f3d55e010d06176a75fcfdc670 feacab6b52fac3c0fcd374772deae6715e78fd07572e643cf7020241f64336c8 876 1757505228109481014
@@ -0,0 +1,1 @@
1+v1 a7d59222dc41a292de350d90f8f88514337193f3d55e010d06176a75fcfdc670 feacab6b52fac3c0fcd374772deae6715e78fd07572e643cf7020241f64336c8 876 1757505228109481014
A .gocache/a9/a9f269d578f2686ebdaec9b790dd7dbdaede9c151de01f65f04bdaacc2325706-a +1 -0
@@ -0,0 +1,1 @@
1+v1 a9f269d578f2686ebdaec9b790dd7dbdaede9c151de01f65f04bdaacc2325706 bbfd895bb5730f374b2df2f05f6d5349be3c4924c8d1cb511edff053a1be494d 2829 1757505228124700753
@@ -0,0 +1,1 @@
1+v1 a9f269d578f2686ebdaec9b790dd7dbdaede9c151de01f65f04bdaacc2325706 bbfd895bb5730f374b2df2f05f6d5349be3c4924c8d1cb511edff053a1be494d 2829 1757505228124700753
A .gocache/aa/aa0d15458dfc9017252f7c2b10919738bee16caeb9e6f90432ad971701d45511-a +1 -0
@@ -0,0 +1,1 @@
1+v1 aa0d15458dfc9017252f7c2b10919738bee16caeb9e6f90432ad971701d45511 607ece0c5a0eae9ef15a81ddcb9d1e152bb6e0b899c3f4533bdb16346fd64e63 4936 1757505228121531512
@@ -0,0 +1,1 @@
1+v1 aa0d15458dfc9017252f7c2b10919738bee16caeb9e6f90432ad971701d45511 607ece0c5a0eae9ef15a81ddcb9d1e152bb6e0b899c3f4533bdb16346fd64e63 4936 1757505228121531512
A .gocache/ae/ae653d24c539bdae5c8f769c3a5388dc13d6cc251f3f59b16d528e3d9ce4f747-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b0/b048905a3a0336d2828cbe9e7b0064a04fb924166d4f1304a811dc79c31604f5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b048905a3a0336d2828cbe9e7b0064a04fb924166d4f1304a811dc79c31604f5 cbf7be661fa5a442439113ff23eba22ec97b0ae9ad44ab9720673f35e92b915c 531 1757505228125452459
@@ -0,0 +1,1 @@
1+v1 b048905a3a0336d2828cbe9e7b0064a04fb924166d4f1304a811dc79c31604f5 cbf7be661fa5a442439113ff23eba22ec97b0ae9ad44ab9720673f35e92b915c 531 1757505228125452459
A .gocache/b0/b0cdf7c7b50a97273b91ecc01a826a6d011935375064cf5ae6c9bb6ce06928a9-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b0/b0d42e5d6d659f4ccb71ac2d1d74475c51a3930785015359ed78cca1739f7e21-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b0d42e5d6d659f4ccb71ac2d1d74475c51a3930785015359ed78cca1739f7e21 53f9c9511294e431b587c228d7ee68afc22c9be04c28d704b384d3e79d6ac6ae 116398 1757505228168858672
@@ -0,0 +1,1 @@
1+v1 b0d42e5d6d659f4ccb71ac2d1d74475c51a3930785015359ed78cca1739f7e21 53f9c9511294e431b587c228d7ee68afc22c9be04c28d704b384d3e79d6ac6ae 116398 1757505228168858672
A .gocache/b0/b0e55ed25f5c5d075a228075e993a38661836d6cd93f89cd248e14bff3f9d644-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b1/b1dab65338479783f5fd1e00d59236f3881d49bf4faff7c16acda11e61fb176b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b2/b2b07dbfe469cb23f4cd07119a296c4095d21a94fe2c0060bf1a5dbc4ebab7cb-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b4/b416d915bcf1ebaa91d218a9abe4e1f1da1cb87a1d3491560194c13d7f2d2091-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b416d915bcf1ebaa91d218a9abe4e1f1da1cb87a1d3491560194c13d7f2d2091 7a3264a50238aca98da337aee7dc033696338b37cefc83ec0ec5763222cced6b 2262 1757505228115185550
@@ -0,0 +1,1 @@
1+v1 b416d915bcf1ebaa91d218a9abe4e1f1da1cb87a1d3491560194c13d7f2d2091 7a3264a50238aca98da337aee7dc033696338b37cefc83ec0ec5763222cced6b 2262 1757505228115185550
A .gocache/b5/b57217dcc6c08aac6f3d5fb44571617a0e80065b14128f937b9eb23fc80431f4-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b5/b5c57c80f3b1e60f37bd8856d7c0c514546fcf7dc52dfb45330bc2ab2d8db3f8-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b5/b5c81ab25920a83970adcd5ed2625dacdc288a809c2c99831789b9fb6db7c1f2-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b5c81ab25920a83970adcd5ed2625dacdc288a809c2c99831789b9fb6db7c1f2 5ff957e3466c3a6d27acb49c24426a78e53fc5dea38953e588541d19a52ce305 646 1757505228114470904
@@ -0,0 +1,1 @@
1+v1 b5c81ab25920a83970adcd5ed2625dacdc288a809c2c99831789b9fb6db7c1f2 5ff957e3466c3a6d27acb49c24426a78e53fc5dea38953e588541d19a52ce305 646 1757505228114470904
A .gocache/b6/b689974287276de33356526edc3db557af5c3dfa130ee1a83d937e414fb637ad-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b689974287276de33356526edc3db557af5c3dfa130ee1a83d937e414fb637ad 9e1bee65f89a698fc16682af3859e63594ace3bb1c3359dd69f54430b6acb1ab 255 1757505228169874186
@@ -0,0 +1,1 @@
1+v1 b689974287276de33356526edc3db557af5c3dfa130ee1a83d937e414fb637ad 9e1bee65f89a698fc16682af3859e63594ace3bb1c3359dd69f54430b6acb1ab 255 1757505228169874186
A .gocache/b6/b6b20549db8db84aed956ca9627cbb7a358b7f00ba49304c5cb63c25ef5e9c94-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/b7/b764a6849b4d91cb5c419aead3e6e5687c10d558f8068c6ba6834429df38a907-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b764a6849b4d91cb5c419aead3e6e5687c10d558f8068c6ba6834429df38a907 4f078d3bf58e6c275dba41867c40147262e93466b45f1bf168854eff0ca5dd1d 344 1757505228121254404
@@ -0,0 +1,1 @@
1+v1 b764a6849b4d91cb5c419aead3e6e5687c10d558f8068c6ba6834429df38a907 4f078d3bf58e6c275dba41867c40147262e93466b45f1bf168854eff0ca5dd1d 344 1757505228121254404
A .gocache/b9/b9871ab0bd364239e55d5d5add063f913ee62120668dc81e4a497df89c903b2f-a +1 -0
@@ -0,0 +1,1 @@
1+v1 b9871ab0bd364239e55d5d5add063f913ee62120668dc81e4a497df89c903b2f 691ef5801437bd0dcbe2338e0b1a77bf987b907b8f1cb83d85af6c360478dae2 2190 1757505228115152570
@@ -0,0 +1,1 @@
1+v1 b9871ab0bd364239e55d5d5add063f913ee62120668dc81e4a497df89c903b2f 691ef5801437bd0dcbe2338e0b1a77bf987b907b8f1cb83d85af6c360478dae2 2190 1757505228115152570
A .gocache/ba/ba7e4620130fa0e0db79d7237258722abb19addc12a527b2034c6289973684d5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ba7e4620130fa0e0db79d7237258722abb19addc12a527b2034c6289973684d5 08e429ab1fa2a843c2c0e6ff6f6eb95cad31dfc1255113b1de46d24b99249b03 1284 1757505228170508482
@@ -0,0 +1,1 @@
1+v1 ba7e4620130fa0e0db79d7237258722abb19addc12a527b2034c6289973684d5 08e429ab1fa2a843c2c0e6ff6f6eb95cad31dfc1255113b1de46d24b99249b03 1284 1757505228170508482
A .gocache/bb/bbfd895bb5730f374b2df2f05f6d5349be3c4924c8d1cb511edff053a1be494d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/bd/bdb6602382ff98fba683d3ac4af9eb9b2b29fa690d309d76d1e7a0639695eee2-a +1 -0
@@ -0,0 +1,1 @@
1+v1 bdb6602382ff98fba683d3ac4af9eb9b2b29fa690d309d76d1e7a0639695eee2 9115a6364d4ba7cd8fc040db9b139c5f37e92675fcb4720b5c7db3c14062298b 10605 1757505228127433737
@@ -0,0 +1,1 @@
1+v1 bdb6602382ff98fba683d3ac4af9eb9b2b29fa690d309d76d1e7a0639695eee2 9115a6364d4ba7cd8fc040db9b139c5f37e92675fcb4720b5c7db3c14062298b 10605 1757505228127433737
A .gocache/be/be213c99864c16375070600d291de999d7c817e055f6585c2de24d295711e081-a +1 -0
@@ -0,0 +1,1 @@
1+v1 be213c99864c16375070600d291de999d7c817e055f6585c2de24d295711e081 3fa667ccf1be47383d3a3a506a3de8cfa8699ea976adebe15313e15335457085 876 1757505228118481190
@@ -0,0 +1,1 @@
1+v1 be213c99864c16375070600d291de999d7c817e055f6585c2de24d295711e081 3fa667ccf1be47383d3a3a506a3de8cfa8699ea976adebe15313e15335457085 876 1757505228118481190
A .gocache/c3/c30c7406e98f2b98b3e0d2e9bdad052573865dd01ac197bbf000000e00d4f781-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/c5/c575cf40054b88bc030666e0a33e2b33edd2de7915729f6d1bdc38de373018a0-a +1 -0
@@ -0,0 +1,1 @@
1+v1 c575cf40054b88bc030666e0a33e2b33edd2de7915729f6d1bdc38de373018a0 c88702391c2ac9123439000c3f66a6cacaef342c8dc16bc61f6bdaa10b8052e6 7148 1757505228116332333
@@ -0,0 +1,1 @@
1+v1 c575cf40054b88bc030666e0a33e2b33edd2de7915729f6d1bdc38de373018a0 c88702391c2ac9123439000c3f66a6cacaef342c8dc16bc61f6bdaa10b8052e6 7148 1757505228116332333
A .gocache/c7/c77b301469425c87d47542c1fa30db4e3d12cd4e2afa4e245efb044d48d0dd37-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/c8/c88702391c2ac9123439000c3f66a6cacaef342c8dc16bc61f6bdaa10b8052e6-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/c8/c8a06c5c7166faf9eacdf877d12e11f498558d8161b7bc2f8c43b08cb3e321e7-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/c9/c95b824301f1448afe44b47e42d52efaea94fd98a8c02222607336ff9f355b8c-a +1 -0
@@ -0,0 +1,1 @@
1+v1 c95b824301f1448afe44b47e42d52efaea94fd98a8c02222607336ff9f355b8c 3f6cc7a2283ad4e96925cca86bef462f8fa580aca1e9255e071f518144795dab 599 1757505228133601841
@@ -0,0 +1,1 @@
1+v1 c95b824301f1448afe44b47e42d52efaea94fd98a8c02222607336ff9f355b8c 3f6cc7a2283ad4e96925cca86bef462f8fa580aca1e9255e071f518144795dab 599 1757505228133601841
A .gocache/c9/c9839be84e9bb86a17fe98efba3cf7f901fa1dc3fb59aa23373335e2b0c3bb25-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ca/ca15e799f327642a7aa6bfa59e44685c67cecd55c5caf41d18a41f8b1814b309-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ca15e799f327642a7aa6bfa59e44685c67cecd55c5caf41d18a41f8b1814b309 c9839be84e9bb86a17fe98efba3cf7f901fa1dc3fb59aa23373335e2b0c3bb25 3577 1757505228123455911
@@ -0,0 +1,1 @@
1+v1 ca15e799f327642a7aa6bfa59e44685c67cecd55c5caf41d18a41f8b1814b309 c9839be84e9bb86a17fe98efba3cf7f901fa1dc3fb59aa23373335e2b0c3bb25 3577 1757505228123455911
A .gocache/cb/cbf7be661fa5a442439113ff23eba22ec97b0ae9ad44ab9720673f35e92b915c-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/cc/cc3425368b8e31af7b52683f90f1bd27efc1d1a704aa5b3d8860cb21ee88bbae-a +1 -0
@@ -0,0 +1,1 @@
1+v1 cc3425368b8e31af7b52683f90f1bd27efc1d1a704aa5b3d8860cb21ee88bbae 6c924fa6dee5bca7d9b032c7729bc48e04d180b4043449f4fe1e48fd7be34b6a 265 1757505228122111289
@@ -0,0 +1,1 @@
1+v1 cc3425368b8e31af7b52683f90f1bd27efc1d1a704aa5b3d8860cb21ee88bbae 6c924fa6dee5bca7d9b032c7729bc48e04d180b4043449f4fe1e48fd7be34b6a 265 1757505228122111289
A .gocache/cd/cd8f2b192d521f4671a0571c4552dd7345f27ec30917ad119030b625ad4dfb81-a +1 -0
@@ -0,0 +1,1 @@
1+v1 cd8f2b192d521f4671a0571c4552dd7345f27ec30917ad119030b625ad4dfb81 f600df48c9dc7e974e4250635007af0e09123f8c63f8ca34cc0907bdafcb52ef 2959 1757505228110971125
@@ -0,0 +1,1 @@
1+v1 cd8f2b192d521f4671a0571c4552dd7345f27ec30917ad119030b625ad4dfb81 f600df48c9dc7e974e4250635007af0e09123f8c63f8ca34cc0907bdafcb52ef 2959 1757505228110971125
A .gocache/ce/ced9b549ccd96c9d6811e58d638cee0c5e6cf3f827d23dd79f39a50beca518ee-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ced9b549ccd96c9d6811e58d638cee0c5e6cf3f827d23dd79f39a50beca518ee 56e6a51653f2207ae2de540b8e72e47073c38247374fce78f7bc8be3f1f1b706 199 1757505228111270903
@@ -0,0 +1,1 @@
1+v1 ced9b549ccd96c9d6811e58d638cee0c5e6cf3f827d23dd79f39a50beca518ee 56e6a51653f2207ae2de540b8e72e47073c38247374fce78f7bc8be3f1f1b706 199 1757505228111270903
A .gocache/cf/cff216f4146523cbe9c2e621e8e3cc6722a60cf1acd9974580e0585861db51d1-a +1 -0
@@ -0,0 +1,1 @@
1+v1 cff216f4146523cbe9c2e621e8e3cc6722a60cf1acd9974580e0585861db51d1 051ec468e69a3d1c9bdfa1a44f00a1d2f7cf552e534a7e41283ead49e363d4d9 6444 1757505228113826658
@@ -0,0 +1,1 @@
1+v1 cff216f4146523cbe9c2e621e8e3cc6722a60cf1acd9974580e0585861db51d1 051ec468e69a3d1c9bdfa1a44f00a1d2f7cf552e534a7e41283ead49e363d4d9 6444 1757505228113826658
A .gocache/d2/d29f0f90b0e316b00f7ec7765634e7b15b657d16f00a5212cd2a871f775a3bba-a +1 -0
@@ -0,0 +1,1 @@
1+v1 d29f0f90b0e316b00f7ec7765634e7b15b657d16f00a5212cd2a871f775a3bba 40e879c7fb27182cff4750133a0d6c9e9d003c4f2414b012ecde057d466f10d9 46724 1757505228185719212
@@ -0,0 +1,1 @@
1+v1 d29f0f90b0e316b00f7ec7765634e7b15b657d16f00a5212cd2a871f775a3bba 40e879c7fb27182cff4750133a0d6c9e9d003c4f2414b012ecde057d466f10d9 46724 1757505228185719212
A .gocache/db/db2c7fd5d7b388b73e60ffd18c1ebdd01bc8c533b23d61af9e30289e7601de25-a +1 -0
@@ -0,0 +1,1 @@
1+v1 db2c7fd5d7b388b73e60ffd18c1ebdd01bc8c533b23d61af9e30289e7601de25 ae653d24c539bdae5c8f769c3a5388dc13d6cc251f3f59b16d528e3d9ce4f747 3177 1757505228111328803
@@ -0,0 +1,1 @@
1+v1 db2c7fd5d7b388b73e60ffd18c1ebdd01bc8c533b23d61af9e30289e7601de25 ae653d24c539bdae5c8f769c3a5388dc13d6cc251f3f59b16d528e3d9ce4f747 3177 1757505228111328803
A .gocache/db/db54042ea30f7f6041577fd497a62c271bc56e038470f5023baebcd2828d179d-a +1 -0
@@ -0,0 +1,1 @@
1+v1 db54042ea30f7f6041577fd497a62c271bc56e038470f5023baebcd2828d179d 3c8e5eeb55d2e81972bad1ffa59fcabc56fe65ee13be3c69a742e6a28a3d481e 8535 1757505228194246421
@@ -0,0 +1,1 @@
1+v1 db54042ea30f7f6041577fd497a62c271bc56e038470f5023baebcd2828d179d 3c8e5eeb55d2e81972bad1ffa59fcabc56fe65ee13be3c69a742e6a28a3d481e 8535 1757505228194246421
A .gocache/db/dbaffc9d6a19f8abe07a2e6da64cbac2e6ac1c0a80dd69d3b317d6c61f25f06d-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/dd/dd2c60f188857ad9e2b9791849f2c894c5a413cd0f2027e390e3fa1572d26188-a +1 -0
@@ -0,0 +1,1 @@
1+v1 dd2c60f188857ad9e2b9791849f2c894c5a413cd0f2027e390e3fa1572d26188 0cc2ed0972cdb55d78b979a0e1f85f211e6fad7b8bf285ac3286c4442beb4635 361 1757505228133453292
@@ -0,0 +1,1 @@
1+v1 dd2c60f188857ad9e2b9791849f2c894c5a413cd0f2027e390e3fa1572d26188 0cc2ed0972cdb55d78b979a0e1f85f211e6fad7b8bf285ac3286c4442beb4635 361 1757505228133453292
A .gocache/dd/ddcfd66905db4babc1de74ae5fba74f3a4c1131c5002296e8696dd04457c8627-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ddcfd66905db4babc1de74ae5fba74f3a4c1131c5002296e8696dd04457c8627 e9c65f35b1a37484836541f2a4b81ff6acba5d5137dd736de5367c4965675b21 1787 1757505228108925487
@@ -0,0 +1,1 @@
1+v1 ddcfd66905db4babc1de74ae5fba74f3a4c1131c5002296e8696dd04457c8627 e9c65f35b1a37484836541f2a4b81ff6acba5d5137dd736de5367c4965675b21 1787 1757505228108925487
A .gocache/e2/e24d80e816e14d81759514ef9ff542d077344d3a3ecd17ccf1063a855adc988b-a +1 -0
@@ -0,0 +1,1 @@
1+v1 e24d80e816e14d81759514ef9ff542d077344d3a3ecd17ccf1063a855adc988b 64772e52f3c9e59d9a56c100dcb3ab3283b9d3fd15c40cb3681d20775a03e296 755 1757505228115927485
@@ -0,0 +1,1 @@
1+v1 e24d80e816e14d81759514ef9ff542d077344d3a3ecd17ccf1063a855adc988b 64772e52f3c9e59d9a56c100dcb3ab3283b9d3fd15c40cb3681d20775a03e296 755 1757505228115927485
A .gocache/e2/e2a50fb4a7d45829e16611554e9b5f979a7bad85a2b2850fdfe848cb04c89e54-a +1 -0
@@ -0,0 +1,1 @@
1+v1 e2a50fb4a7d45829e16611554e9b5f979a7bad85a2b2850fdfe848cb04c89e54 72c949a9f5af5823a19186e04d0a1372649e751515765d0a2f3071e86c227f97 847 1757505228120558198
@@ -0,0 +1,1 @@
1+v1 e2a50fb4a7d45829e16611554e9b5f979a7bad85a2b2850fdfe848cb04c89e54 72c949a9f5af5823a19186e04d0a1372649e751515765d0a2f3071e86c227f97 847 1757505228120558198
A .gocache/e3/e3ef2d4fdd056e2e637b1ac1a1a4dbfab39733a9387eb2aa2063f1b90a63e412-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/e6/e614d0f753c9c6d1d5814e68c35ac195a0b70872747d5dd51fed5b644c4031e5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 e614d0f753c9c6d1d5814e68c35ac195a0b70872747d5dd51fed5b644c4031e5 b5c57c80f3b1e60f37bd8856d7c0c514546fcf7dc52dfb45330bc2ab2d8db3f8 3391 1757505228123938038
@@ -0,0 +1,1 @@
1+v1 e614d0f753c9c6d1d5814e68c35ac195a0b70872747d5dd51fed5b644c4031e5 b5c57c80f3b1e60f37bd8856d7c0c514546fcf7dc52dfb45330bc2ab2d8db3f8 3391 1757505228123938038
A .gocache/e6/e61f23676808285ff3e4243b264f1976022f70deb93947dd441e5f96ce475848-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/e7/e7f3031171da1b6e693e7697f28f45bf6e308ccf29d9cc08de58cbdb24a3431e-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/e8/e89bb40829ad4367145cf510d33026365b8aeec64b8c50974e5301bdc5a5c333-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/e9/e91b6968b39df2d8604d3af439a708378891719364b2bbeebae63198141ac1e5-a +1 -0
@@ -0,0 +1,1 @@
1+v1 e91b6968b39df2d8604d3af439a708378891719364b2bbeebae63198141ac1e5 0047a9d584e5144ecef12a54a4aa8f174d120776091055bdf8cda9a85415b95a 1466 1757505228106537751
@@ -0,0 +1,1 @@
1+v1 e91b6968b39df2d8604d3af439a708378891719364b2bbeebae63198141ac1e5 0047a9d584e5144ecef12a54a4aa8f174d120776091055bdf8cda9a85415b95a 1466 1757505228106537751
A .gocache/e9/e9c65f35b1a37484836541f2a4b81ff6acba5d5137dd736de5367c4965675b21-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/eb/ebd90b69af4d09dfb083753e429597db1c380a47c575af2c6570732024dda924-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ed/edc65f612fe5192477fc3539a264e1896f771a239b74e7f34ab62e9bdd0cd63e-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ed/edf7bfe45e186c7d73eac5a90a537b0741151edc7043866d8b3a5aeb04458739-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ee/ee1693291cb61dfee0e82f1b2a45c02a7db032aa19b325b576c7b1cb6fc19b34-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ee1693291cb61dfee0e82f1b2a45c02a7db032aa19b325b576c7b1cb6fc19b34 38ff25bcceba20a07ce7bbdd8ef46b2401292e463672d8ea2715ecdea0f04b15 830 1757505228110352358
@@ -0,0 +1,1 @@
1+v1 ee1693291cb61dfee0e82f1b2a45c02a7db032aa19b325b576c7b1cb6fc19b34 38ff25bcceba20a07ce7bbdd8ef46b2401292e463672d8ea2715ecdea0f04b15 830 1757505228110352358
A .gocache/ee/ee575944483fa0b726c8cc709aef6b17ec3219c863f2fed9550bec75838aaf2b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ee/eed383dfac517bb38a921cfd945ffaee5b0a851f0edebb50e12f0c4cb90233e7-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ef/ef419860b1f07bf8007a01b89a67ce17e78f75c24bc85163f33f384998c77ca9-a +1 -0
@@ -0,0 +1,1 @@
1+v1 ef419860b1f07bf8007a01b89a67ce17e78f75c24bc85163f33f384998c77ca9 c77b301469425c87d47542c1fa30db4e3d12cd4e2afa4e245efb044d48d0dd37 5242 1757505228124114047
@@ -0,0 +1,1 @@
1+v1 ef419860b1f07bf8007a01b89a67ce17e78f75c24bc85163f33f384998c77ca9 c77b301469425c87d47542c1fa30db4e3d12cd4e2afa4e245efb044d48d0dd37 5242 1757505228124114047
A .gocache/f4/f411dab9d9f96805e27cc65d7b42ad62bdded3de0110cd14426faeacf0fc4324-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f411dab9d9f96805e27cc65d7b42ad62bdded3de0110cd14426faeacf0fc4324 8e448f2c6906d0bd76f37a080ef301d2fa17a6c846f6ac1804c7ddb07f890b6d 1602 1757505228122600696
@@ -0,0 +1,1 @@
1+v1 f411dab9d9f96805e27cc65d7b42ad62bdded3de0110cd14426faeacf0fc4324 8e448f2c6906d0bd76f37a080ef301d2fa17a6c846f6ac1804c7ddb07f890b6d 1602 1757505228122600696
A .gocache/f5/f5c7ea43236c4616c0b232a6e0bb180cb32d0e59d04dd7c740a24e052f1cd4fd-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f5c7ea43236c4616c0b232a6e0bb180cb32d0e59d04dd7c740a24e052f1cd4fd e61f23676808285ff3e4243b264f1976022f70deb93947dd441e5f96ce475848 549 1757505228123951898
@@ -0,0 +1,1 @@
1+v1 f5c7ea43236c4616c0b232a6e0bb180cb32d0e59d04dd7c740a24e052f1cd4fd e61f23676808285ff3e4243b264f1976022f70deb93947dd441e5f96ce475848 549 1757505228123951898
A .gocache/f5/f5f725be6f5b2a9bbaaa45a374ad9ded22bc634bf8ccf443f41f00626c834fc0-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f5f725be6f5b2a9bbaaa45a374ad9ded22bc634bf8ccf443f41f00626c834fc0 e3ef2d4fdd056e2e637b1ac1a1a4dbfab39733a9387eb2aa2063f1b90a63e412 369 1757505228120316859
@@ -0,0 +1,1 @@
1+v1 f5f725be6f5b2a9bbaaa45a374ad9ded22bc634bf8ccf443f41f00626c834fc0 e3ef2d4fdd056e2e637b1ac1a1a4dbfab39733a9387eb2aa2063f1b90a63e412 369 1757505228120316859
A .gocache/f6/f600df48c9dc7e974e4250635007af0e09123f8c63f8ca34cc0907bdafcb52ef-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/f6/f6060cd2cb84196f324d65bb025e416e605dadae8a7e1ba789f554fe58a29c55-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/f6/f67e43df66e20560fde905f8c282d6db696fc78611662617e8e3cce1bc8b9adb-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f67e43df66e20560fde905f8c282d6db696fc78611662617e8e3cce1bc8b9adb 98008025876333837b7f968679e79e0e2faca6162f7164ececd5ca7f3d0ea304 2300 1757505228112765374
@@ -0,0 +1,1 @@
1+v1 f67e43df66e20560fde905f8c282d6db696fc78611662617e8e3cce1bc8b9adb 98008025876333837b7f968679e79e0e2faca6162f7164ececd5ca7f3d0ea304 2300 1757505228112765374
A .gocache/f6/f6b8ea32e5b2ec7ac68bf8900a0ce0de6f90ea6afcee9aba70b517a7ffaa36ef-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f6b8ea32e5b2ec7ac68bf8900a0ce0de6f90ea6afcee9aba70b517a7ffaa36ef 64583e79f8f3a3f9ffa77a0104458e26b057893cd06e558984e8746de41d4705 327 1757505228170021775
@@ -0,0 +1,1 @@
1+v1 f6b8ea32e5b2ec7ac68bf8900a0ce0de6f90ea6afcee9aba70b517a7ffaa36ef 64583e79f8f3a3f9ffa77a0104458e26b057893cd06e558984e8746de41d4705 327 1757505228170021775
A .gocache/f7/f7351907f6b247c9be619191dc6f3bf1fbe15d4e90570cea5d3e71f1df21c458-a +1 -0
@@ -0,0 +1,1 @@
1+v1 f7351907f6b247c9be619191dc6f3bf1fbe15d4e90570cea5d3e71f1df21c458 88c291f2c247d09a1bd1a9e7ce9919b75ac357b0caabd0f65da740dfd0572772 1728 1757505228123289662
@@ -0,0 +1,1 @@
1+v1 f7351907f6b247c9be619191dc6f3bf1fbe15d4e90570cea5d3e71f1df21c458 88c291f2c247d09a1bd1a9e7ce9919b75ac357b0caabd0f65da740dfd0572772 1728 1757505228123289662
A .gocache/f7/f763c5f0634d0bb362ff579f4998f86b61fbcde8f0ff94f88794162becc00599-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/f7/f7e4c782e436216181620589231287b177b9d2552e85b5070153eb743c8b35cc-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/fb/fb79486f7be9e36ed1a596979552b8323f04f1f30058e4029a9215d36467805b-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/fe/feacab6b52fac3c0fcd374772deae6715e78fd07572e643cf7020241f64336c8-d +0 -0 binary file: no text diff

binary file: no text diff

A .gocache/ff/ff39147e564c56e09a27e785e4b8f146682969072a3793f9ebdc83c1158b2206-d +0 -0 binary file: no text diff

binary file: no text diff

A .gomod/cache/download/github.com/fsnotify/fsnotify/@v/v1.9.0.lock +0 -0

no textual change.

A .gomod/cache/download/github.com/golang/mock/@v/v1.6.0.lock +0 -0

no textual change.

A .gomod/cache/download/github.com/ncruces/go-sqlite3/@v/v0.29.0.lock +0 -0

no textual change.

A .gomod/cache/download/github.com/spf13/cobra/@v/v1.10.1.lock +0 -0

no textual change.

A .gomod/cache/download/github.com/spf13/viper/@v/v1.21.0.lock +0 -0

no textual change.

A pkg/webkit/find.go +35 -0
@@ -0,0 +1,35 @@
1+package webkit
2+
3+import (
4+ "fmt"
5+ "strconv"
6+)
7+
8+// OpenFind opens the in-page find overlay (reusing omnibox) with an optional initial query.
9+func (w *WebView) OpenFind(initial string) error {
10+ if w == nil {
11+ return ErrNotImplemented
12+ }
13+ quoted := strconv.Quote(initial)
14+ js := fmt.Sprintf("window.__dumber_find_open && window.__dumber_find_open(%s)", quoted)
15+ return w.InjectScript(js)
16+}
17+
18+// FindQuery sets or updates the current find query and applies highlighting.
19+func (w *WebView) FindQuery(q string) error {
20+ if w == nil {
21+ return ErrNotImplemented
22+ }
23+ quoted := strconv.Quote(q)
24+ js := fmt.Sprintf("window.__dumber_find_query && window.__dumber_find_query(%s)", quoted)
25+ return w.InjectScript(js)
26+}
27+
28+// CloseFind closes the find overlay and clears highlights.
29+func (w *WebView) CloseFind() error {
30+ if w == nil {
31+ return ErrNotImplemented
32+ }
33+ return w.InjectScript("window.__dumber_find_close && window.__dumber_find_close()")
34+}
35+
@@ -0,0 +1,35 @@
1+package webkit
2+
3+import (
4+ "fmt"
5+ "strconv"
6+)
7+
8+// OpenFind opens the in-page find overlay (reusing omnibox) with an optional initial query.
9+func (w *WebView) OpenFind(initial string) error {
10+ if w == nil {
11+ return ErrNotImplemented
12+ }
13+ quoted := strconv.Quote(initial)
14+ js := fmt.Sprintf("window.__dumber_find_open && window.__dumber_find_open(%s)", quoted)
15+ return w.InjectScript(js)
16+}
17+
18+// FindQuery sets or updates the current find query and applies highlighting.
19+func (w *WebView) FindQuery(q string) error {
20+ if w == nil {
21+ return ErrNotImplemented
22+ }
23+ quoted := strconv.Quote(q)
24+ js := fmt.Sprintf("window.__dumber_find_query && window.__dumber_find_query(%s)", quoted)
25+ return w.InjectScript(js)
26+}
27+
28+// CloseFind closes the find overlay and clears highlights.
29+func (w *WebView) CloseFind() error {
30+ if w == nil {
31+ return ErrNotImplemented
32+ }
33+ return w.InjectScript("window.__dumber_find_close && window.__dumber_find_close()")
34+}
35+
M pkg/webkit/ucm_js.go +133 -25
@@ -3,26 +3,38 @@
33 package webkit
44
55 // ucmOmniboxScript is injected at document-start via WebKit UserContentManager.
6-// It renders a minimal overlay with an input and a suggestions list, handles
7-// Ctrl+L to toggle, Enter to navigate, and posts search queries to native.
6+// It provides a reusable overlay component with two modes:
7+// - "omnibox": navigation/search suggestions (Ctrl/Cmd+L)
8+// - "find": in-page find with yellow highlights and match list (Ctrl/Cmd+F)
89 const ucmOmniboxScript = `(() => {
910 try {
1011 if (window.__dumber_omnibox_loaded) return; // idempotent
1112 window.__dumber_omnibox_loaded = true;
1213
14+ const MAX_MATCHES = 2000;
1315 const H = {
1416 el: null,
1517 input: null,
1618 list: null,
1719 visible: false,
20+ mode: 'omnibox', // 'omnibox' | 'find'
1821 suggestions: [],
22+ matches: [], // {el, context}
23+ selectedIndex: -1,
1924 debounceTimer: 0,
20- post(msg){ try { window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.dumber && window.webkit.messageHandlers.dumber.postMessage(JSON.stringify(msg)); } catch(_){} },
25+ highlightNodes: [],
26+ post(msg){ try { window.webkit?.messageHandlers?.dumber?.postMessage(JSON.stringify(msg)); } catch(_){} },
2127 render(){
2228 if (!H.el) H.mount();
2329 H.el.style.display = H.visible ? 'block' : 'none';
24- if (H.visible) H.input.focus();
30+ if (!H.visible) return;
31+ H.input.placeholder = H.mode === 'find' ? 'Find in page…' : 'Type URL or search…';
32+ H.input.focus();
2533 },
34+ setMode(m){ H.mode = m === 'find' ? 'find' : 'omnibox'; H.selectedIndex = -1; H.paintList(); },
35+ open(mode, initial){ H.setMode(mode||'omnibox'); H.toggle(true); if (typeof initial==='string') { H.input.value = initial; H.onInput(); } },
36+ close(){ if (H.mode==='find') H.clearHighlights(); H.toggle(false); },
37+ toggle(v){ H.visible = (typeof v==='boolean')? v : !H.visible; H.render(); },
2638 mount(){
2739 const root = document.createElement('div');
2840 root.id = 'dumber-omnibox-root';
@@ -35,52 +47,148 @@ const ucmOmniboxScript = `(() => {
3547 input.style.cssText = 'width:100%;padding:10px 12px;border-radius:6px;border:1px solid #555;background:#121212;color:#eee;font-size:16px;outline:none;';
3648 const list = document.createElement('div');
3749 list.style.cssText = 'margin-top:8px;max-height:50vh;overflow:auto;border-top:1px solid #333;';
50+ const style = document.createElement('style');
51+ style.textContent = '.dumber-find-highlight{background:#ffeb3b;color:#000;padding:0 1px;border-radius:2px;box-shadow:0 0 0 1px #c8b900 inset}';
52+ document.documentElement.appendChild(style);
3853 box.appendChild(input); box.appendChild(list); root.appendChild(box); document.documentElement.appendChild(root);
3954 input.addEventListener('keydown', (e)=>{
40- if (e.key === 'Escape'){ H.toggle(false); }
41- else if (e.key === 'Enter'){
55+ if (e.key === 'Escape'){ H.close(); }
56+ else if (H.mode==='omnibox' && e.key === 'Enter'){
4257 const pick = H.suggestions && H.suggestions[H.selectedIndex|0];
4358 const v = (pick && pick.url) || input.value || '';
4459 if (v) H.post({type:'navigate', url:v});
4560 H.toggle(false);
61+ } else if (H.mode==='find' && e.key === 'Enter'){
62+ e.preventDefault(); H.jump(1);
63+ } else if (H.mode==='find' && e.key === 'Enter' && e.shiftKey){
64+ e.preventDefault(); H.jump(-1);
4665 } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp'){
4766 e.preventDefault();
48- const n = H.suggestions.length;
67+ const n = (H.mode==='find'? H.matches.length : H.suggestions.length);
4968 if (n){
5069 H.selectedIndex = (H.selectedIndex||0) + (e.key==='ArrowDown'?1:-1);
5170 if (H.selectedIndex<0) H.selectedIndex = n-1; if (H.selectedIndex>=n) H.selectedIndex = 0;
5271 H.paintList();
72+ H.revealSelection();
5373 }
5474 }
5575 });
56- input.addEventListener('input', ()=>{
76+ input.addEventListener('input', ()=> H.onInput());
77+ H.el = root; H.input = input; H.list = list; H.selectedIndex = -1; H.paintList();
78+ },
79+ onInput(){
80+ const q = H.input.value || '';
81+ if (H.mode === 'omnibox'){
5782 clearTimeout(H.debounceTimer);
58- const q = input.value;
5983 H.debounceTimer = setTimeout(()=> H.post({type:'query', q, limit:10}), 120);
60- });
61- H.el = root; H.input = input; H.list = list; H.selectedIndex = -1; H.paintList();
84+ } else {
85+ H.find(q);
86+ }
6287 },
6388 paintList(){
64- const list = H.list; if (!list) return;
65- list.textContent = '';
66- H.suggestions.forEach((s, i)=>{
67- const item = document.createElement('div');
68- item.style.cssText = 'padding:8px 10px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');
69- const url = document.createElement('div'); url.textContent = s.url || ''; url.style.cssText = 'flex:1;color:#9ad;word-break:break-all;';
70- const title = document.createElement('div'); title.textContent = s.title || ''; title.style.cssText = 'flex:1;color:#ccc;opacity:.9;';
71- item.appendChild(title); item.appendChild(url);
72- item.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });
73- list.appendChild(item);
89+ const list = H.list; if (!list) return; list.textContent = '';
90+ if (H.mode==='omnibox'){
91+ H.suggestions.forEach((s, i)=>{
92+ const item = document.createElement('div');
93+ item.style.cssText = 'padding:8px 10px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');
94+ const url = document.createElement('div'); url.textContent = s.url || ''; url.style.cssText = 'flex:1;color:#9ad;word-break:break-all;';
95+ const title = document.createElement('div'); title.textContent = s.title || ''; title.style.cssText = 'flex:1;color:#ccc;opacity:.9;';
96+ item.appendChild(title); item.appendChild(url);
97+ item.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });
98+ list.appendChild(item);
99+ });
100+ } else {
101+ const total = H.matches.length;
102+ const header = document.createElement('div');
103+ header.textContent = total ? total + ' matches' : 'No matches';
104+ header.style.cssText = 'padding:6px 10px;color:#bbb;font-size:12px;border-bottom:1px solid #2a2a2a;';
105+ list.appendChild(header);
106+ H.matches.forEach((m, i)=>{
107+ const item = document.createElement('div');
108+ item.style.cssText = 'padding:8px 10px;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');
109+ const ctx = document.createElement('div'); ctx.textContent = m.context || ''; ctx.style.cssText = 'color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;';
110+ item.appendChild(ctx);
111+ item.addEventListener('click',()=>{ H.selectedIndex=i; H.revealSelection(); H.paintList(); });
112+ list.appendChild(item);
113+ });
114+ }
115+ },
116+ setSuggestions(arr){ H.suggestions = Array.isArray(arr)? arr: []; H.selectedIndex = -1; H.paintList(); },
117+ // FIND MODE IMPLEMENTATION
118+ clearHighlights(){
119+ try {
120+ H.highlightNodes.forEach(({span, text})=>{
121+ const p = span.parentNode; if (!p) return; p.replaceChild(text, span); p.normalize();
122+ });
123+ } catch(_){}
124+ H.highlightNodes = [];
125+ H.matches = [];
126+ H.selectedIndex = -1;
127+ H.paintList();
128+ },
129+ find(q){
130+ H.clearHighlights();
131+ q = (q||'').trim(); if (!q) return;
132+ const body = document.body; if (!body) return;
133+ const root = document.getElementById('dumber-omnibox-root');
134+ const walker = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, {
135+ acceptNode(node){
136+ if (!node.nodeValue || !node.nodeValue.trim()) return NodeFilter.FILTER_REJECT;
137+ let el = node.parentElement; if (!el) return NodeFilter.FILTER_REJECT;
138+ if (root && root.contains(el)) return NodeFilter.FILTER_REJECT;
139+ const name = el.tagName; if (name==='SCRIPT'||name==='STYLE'||name==='NOSCRIPT') return NodeFilter.FILTER_REJECT;
140+ if (getComputedStyle(el).visibility==='hidden' || getComputedStyle(el).display==='none') return NodeFilter.FILTER_REJECT;
141+ return NodeFilter.FILTER_ACCEPT;
142+ }
74143 });
144+ const lc = q.toLowerCase();
145+ while (walker.nextNode()){
146+ const text = walker.currentNode;
147+ let s = text.nodeValue; let i = 0;
148+ while (s && (i = s.toLowerCase().indexOf(lc)) !== -1) {
149+ const before = document.createTextNode(s.slice(0, i));
150+ const match = document.createTextNode(s.slice(i, i+q.length));
151+ const afterVal = s.slice(i+q.length);
152+ const span = document.createElement('span'); span.className = 'dumber-find-highlight'; span.appendChild(match);
153+ const parent = text.parentNode; if (!parent) break;
154+ parent.insertBefore(before, text);
155+ parent.insertBefore(span, text);
156+ text.nodeValue = afterVal;
157+ H.highlightNodes.push({span, text: match});
158+ const context = (before.nodeValue.slice(-30) + match.nodeValue + afterVal.slice(0, 30)).replace(/\s+/g,' ').trim();
159+ H.matches.push({el: span, context});
160+ if (H.matches.length >= MAX_MATCHES) break;
161+ s = afterVal;
162+ }
163+ if (H.matches.length >= MAX_MATCHES) break;
164+ }
165+ H.selectedIndex = H.matches.length ? 0 : -1;
166+ H.paintList();
167+ H.revealSelection();
75168 },
76- toggle(v){ H.visible = (typeof v==='boolean')? v : !H.visible; H.render(); },
77- setSuggestions(arr){ H.suggestions = Array.isArray(arr)? arr: []; H.selectedIndex = -1; H.paintList(); }
169+ revealSelection(){
170+ const m = H.matches[H.selectedIndex|0]; if (!m) return;
171+ try { m.el.scrollIntoView({block:'center', inline:'nearest'}); } catch(_){ m.el.scrollIntoView(); }
172+ },
173+ jump(delta){
174+ const n = H.matches.length; if (!n) return;
175+ H.selectedIndex = ((H.selectedIndex||0) + delta) % n; if (H.selectedIndex<0) H.selectedIndex = n-1;
176+ H.paintList(); H.revealSelection();
177+ }
78178 };
179+
180+ // Keyboard hooks
79181 window.addEventListener('keydown', (e)=>{
80- if ((e.ctrlKey||e.metaKey) && (e.key==='l' || e.key==='L')) { e.preventDefault(); H.toggle(true); }
182+ const mod = (e.ctrlKey||e.metaKey);
183+ if (mod && (e.key==='l' || e.key==='L')) { e.preventDefault(); H.open('omnibox'); }
184+ if (mod && (e.key==='f' || e.key==='F')) { e.preventDefault(); H.open('find'); }
81185 }, true);
82- // Allow native side to update suggestions or toggle
186+
187+ // Public API for native
83188 window.__dumber_setSuggestions = (arr)=> H.setSuggestions(arr);
84189 window.__dumber_toggle = ()=> H.toggle();
190+ window.__dumber_find_open = (q)=> H.open('find', q||'');
191+ window.__dumber_find_close = ()=> H.close();
192+ window.__dumber_find_query = (q)=> { if (H.mode!=='find') H.setMode('find'); if (!H.visible) H.toggle(true); H.input.value = q||''; H.find(q||''); };
85193 } catch (e) { /* no-op */ }
86194 })();`
@@ -3,26 +3,38 @@
3 package webkit3 package webkit
4 4
5 // ucmOmniboxScript is injected at document-start via WebKit UserContentManager.5 // ucmOmniboxScript is injected at document-start via WebKit UserContentManager.
6-// It renders a minimal overlay with an input and a suggestions list, handles6+// It provides a reusable overlay component with two modes:
7-// Ctrl+L to toggle, Enter to navigate, and posts search queries to native.7+// - "omnibox": navigation/search suggestions (Ctrl/Cmd+L)
8+// - "find": in-page find with yellow highlights and match list (Ctrl/Cmd+F)
8 const ucmOmniboxScript = `(() => {9 const ucmOmniboxScript = `(() => {
9 try {10 try {
10 if (window.__dumber_omnibox_loaded) return; // idempotent11 if (window.__dumber_omnibox_loaded) return; // idempotent
11 window.__dumber_omnibox_loaded = true;12 window.__dumber_omnibox_loaded = true;
12 13
14+ const MAX_MATCHES = 2000;
13 const H = {15 const H = {
14 el: null,16 el: null,
15 input: null,17 input: null,
16 list: null,18 list: null,
17 visible: false,19 visible: false,
20+ mode: 'omnibox', // 'omnibox' | 'find'
18 suggestions: [],21 suggestions: [],
22+ matches: [], // {el, context}
23+ selectedIndex: -1,
19 debounceTimer: 0,24 debounceTimer: 0,
20- post(msg){ try { window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.dumber && window.webkit.messageHandlers.dumber.postMessage(JSON.stringify(msg)); } catch(_){} },25+ highlightNodes: [],
26+ post(msg){ try { window.webkit?.messageHandlers?.dumber?.postMessage(JSON.stringify(msg)); } catch(_){} },
21 render(){27 render(){
22 if (!H.el) H.mount();28 if (!H.el) H.mount();
23 H.el.style.display = H.visible ? 'block' : 'none';29 H.el.style.display = H.visible ? 'block' : 'none';
24- if (H.visible) H.input.focus();30+ if (!H.visible) return;
31+ H.input.placeholder = H.mode === 'find' ? 'Find in page…' : 'Type URL or search…';
32+ H.input.focus();
25 },33 },
34+ setMode(m){ H.mode = m === 'find' ? 'find' : 'omnibox'; H.selectedIndex = -1; H.paintList(); },
35+ open(mode, initial){ H.setMode(mode||'omnibox'); H.toggle(true); if (typeof initial==='string') { H.input.value = initial; H.onInput(); } },
36+ close(){ if (H.mode==='find') H.clearHighlights(); H.toggle(false); },
37+ toggle(v){ H.visible = (typeof v==='boolean')? v : !H.visible; H.render(); },
26 mount(){38 mount(){
27 const root = document.createElement('div');39 const root = document.createElement('div');
28 root.id = 'dumber-omnibox-root';40 root.id = 'dumber-omnibox-root';
@@ -35,52 +47,148 @@ const ucmOmniboxScript = `(() => {
35 input.style.cssText = 'width:100%;padding:10px 12px;border-radius:6px;border:1px solid #555;background:#121212;color:#eee;font-size:16px;outline:none;';47 input.style.cssText = 'width:100%;padding:10px 12px;border-radius:6px;border:1px solid #555;background:#121212;color:#eee;font-size:16px;outline:none;';
36 const list = document.createElement('div');48 const list = document.createElement('div');
37 list.style.cssText = 'margin-top:8px;max-height:50vh;overflow:auto;border-top:1px solid #333;';49 list.style.cssText = 'margin-top:8px;max-height:50vh;overflow:auto;border-top:1px solid #333;';
50+ const style = document.createElement('style');
51+ style.textContent = '.dumber-find-highlight{background:#ffeb3b;color:#000;padding:0 1px;border-radius:2px;box-shadow:0 0 0 1px #c8b900 inset}';
52+ document.documentElement.appendChild(style);
38 box.appendChild(input); box.appendChild(list); root.appendChild(box); document.documentElement.appendChild(root);53 box.appendChild(input); box.appendChild(list); root.appendChild(box); document.documentElement.appendChild(root);
39 input.addEventListener('keydown', (e)=>{54 input.addEventListener('keydown', (e)=>{
40- if (e.key === 'Escape'){ H.toggle(false); }55+ if (e.key === 'Escape'){ H.close(); }
41- else if (e.key === 'Enter'){56+ else if (H.mode==='omnibox' && e.key === 'Enter'){
42 const pick = H.suggestions && H.suggestions[H.selectedIndex|0];57 const pick = H.suggestions && H.suggestions[H.selectedIndex|0];
43 const v = (pick && pick.url) || input.value || '';58 const v = (pick && pick.url) || input.value || '';
44 if (v) H.post({type:'navigate', url:v});59 if (v) H.post({type:'navigate', url:v});
45 H.toggle(false);60 H.toggle(false);
61+ } else if (H.mode==='find' && e.key === 'Enter'){
62+ e.preventDefault(); H.jump(1);
63+ } else if (H.mode==='find' && e.key === 'Enter' && e.shiftKey){
64+ e.preventDefault(); H.jump(-1);
46 } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp'){65 } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp'){
47 e.preventDefault();66 e.preventDefault();
48- const n = H.suggestions.length;67+ const n = (H.mode==='find'? H.matches.length : H.suggestions.length);
49 if (n){68 if (n){
50 H.selectedIndex = (H.selectedIndex||0) + (e.key==='ArrowDown'?1:-1);69 H.selectedIndex = (H.selectedIndex||0) + (e.key==='ArrowDown'?1:-1);
51 if (H.selectedIndex<0) H.selectedIndex = n-1; if (H.selectedIndex>=n) H.selectedIndex = 0;70 if (H.selectedIndex<0) H.selectedIndex = n-1; if (H.selectedIndex>=n) H.selectedIndex = 0;
52 H.paintList();71 H.paintList();
72+ H.revealSelection();
53 }73 }
54 }74 }
55 });75 });
56- input.addEventListener('input', ()=>{76+ input.addEventListener('input', ()=> H.onInput());
77+ H.el = root; H.input = input; H.list = list; H.selectedIndex = -1; H.paintList();
78+ },
79+ onInput(){
80+ const q = H.input.value || '';
81+ if (H.mode === 'omnibox'){
57 clearTimeout(H.debounceTimer);82 clearTimeout(H.debounceTimer);
58- const q = input.value;
59 H.debounceTimer = setTimeout(()=> H.post({type:'query', q, limit:10}), 120);83 H.debounceTimer = setTimeout(()=> H.post({type:'query', q, limit:10}), 120);
60- });84+ } else {
61- H.el = root; H.input = input; H.list = list; H.selectedIndex = -1; H.paintList();85+ H.find(q);
86+ }
62 },87 },
63 paintList(){88 paintList(){
64- const list = H.list; if (!list) return;89+ const list = H.list; if (!list) return; list.textContent = '';
65- list.textContent = '';90+ if (H.mode==='omnibox'){
66- H.suggestions.forEach((s, i)=>{91+ H.suggestions.forEach((s, i)=>{
67- const item = document.createElement('div');92+ const item = document.createElement('div');
68- item.style.cssText = 'padding:8px 10px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');93+ item.style.cssText = 'padding:8px 10px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');
69- const url = document.createElement('div'); url.textContent = s.url || ''; url.style.cssText = 'flex:1;color:#9ad;word-break:break-all;';94+ const url = document.createElement('div'); url.textContent = s.url || ''; url.style.cssText = 'flex:1;color:#9ad;word-break:break-all;';
70- const title = document.createElement('div'); title.textContent = s.title || ''; title.style.cssText = 'flex:1;color:#ccc;opacity:.9;';95+ const title = document.createElement('div'); title.textContent = s.title || ''; title.style.cssText = 'flex:1;color:#ccc;opacity:.9;';
71- item.appendChild(title); item.appendChild(url);96+ item.appendChild(title); item.appendChild(url);
72- item.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });97+ item.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });
73- list.appendChild(item);98+ list.appendChild(item);
99+ });
100+ } else {
101+ const total = H.matches.length;
102+ const header = document.createElement('div');
103+ header.textContent = total ? total + ' matches' : 'No matches';
104+ header.style.cssText = 'padding:6px 10px;color:#bbb;font-size:12px;border-bottom:1px solid #2a2a2a;';
105+ list.appendChild(header);
106+ H.matches.forEach((m, i)=>{
107+ const item = document.createElement('div');
108+ item.style.cssText = 'padding:8px 10px;cursor:pointer;border-bottom:1px solid #2a2a2a;'+(i===H.selectedIndex?'background:#0a0a0a;':'');
109+ const ctx = document.createElement('div'); ctx.textContent = m.context || ''; ctx.style.cssText = 'color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;';
110+ item.appendChild(ctx);
111+ item.addEventListener('click',()=>{ H.selectedIndex=i; H.revealSelection(); H.paintList(); });
112+ list.appendChild(item);
113+ });
114+ }
115+ },
116+ setSuggestions(arr){ H.suggestions = Array.isArray(arr)? arr: []; H.selectedIndex = -1; H.paintList(); },
117+ // FIND MODE IMPLEMENTATION
118+ clearHighlights(){
119+ try {
120+ H.highlightNodes.forEach(({span, text})=>{
121+ const p = span.parentNode; if (!p) return; p.replaceChild(text, span); p.normalize();
122+ });
123+ } catch(_){}
124+ H.highlightNodes = [];
125+ H.matches = [];
126+ H.selectedIndex = -1;
127+ H.paintList();
128+ },
129+ find(q){
130+ H.clearHighlights();
131+ q = (q||'').trim(); if (!q) return;
132+ const body = document.body; if (!body) return;
133+ const root = document.getElementById('dumber-omnibox-root');
134+ const walker = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, {
135+ acceptNode(node){
136+ if (!node.nodeValue || !node.nodeValue.trim()) return NodeFilter.FILTER_REJECT;
137+ let el = node.parentElement; if (!el) return NodeFilter.FILTER_REJECT;
138+ if (root && root.contains(el)) return NodeFilter.FILTER_REJECT;
139+ const name = el.tagName; if (name==='SCRIPT'||name==='STYLE'||name==='NOSCRIPT') return NodeFilter.FILTER_REJECT;
140+ if (getComputedStyle(el).visibility==='hidden' || getComputedStyle(el).display==='none') return NodeFilter.FILTER_REJECT;
141+ return NodeFilter.FILTER_ACCEPT;
142+ }
74 });143 });
144+ const lc = q.toLowerCase();
145+ while (walker.nextNode()){
146+ const text = walker.currentNode;
147+ let s = text.nodeValue; let i = 0;
148+ while (s && (i = s.toLowerCase().indexOf(lc)) !== -1) {
149+ const before = document.createTextNode(s.slice(0, i));
150+ const match = document.createTextNode(s.slice(i, i+q.length));
151+ const afterVal = s.slice(i+q.length);
152+ const span = document.createElement('span'); span.className = 'dumber-find-highlight'; span.appendChild(match);
153+ const parent = text.parentNode; if (!parent) break;
154+ parent.insertBefore(before, text);
155+ parent.insertBefore(span, text);
156+ text.nodeValue = afterVal;
157+ H.highlightNodes.push({span, text: match});
158+ const context = (before.nodeValue.slice(-30) + match.nodeValue + afterVal.slice(0, 30)).replace(/\s+/g,' ').trim();
159+ H.matches.push({el: span, context});
160+ if (H.matches.length >= MAX_MATCHES) break;
161+ s = afterVal;
162+ }
163+ if (H.matches.length >= MAX_MATCHES) break;
164+ }
165+ H.selectedIndex = H.matches.length ? 0 : -1;
166+ H.paintList();
167+ H.revealSelection();
75 },168 },
76- toggle(v){ H.visible = (typeof v==='boolean')? v : !H.visible; H.render(); },169+ revealSelection(){
77- setSuggestions(arr){ H.suggestions = Array.isArray(arr)? arr: []; H.selectedIndex = -1; H.paintList(); }170+ const m = H.matches[H.selectedIndex|0]; if (!m) return;
171+ try { m.el.scrollIntoView({block:'center', inline:'nearest'}); } catch(_){ m.el.scrollIntoView(); }
172+ },
173+ jump(delta){
174+ const n = H.matches.length; if (!n) return;
175+ H.selectedIndex = ((H.selectedIndex||0) + delta) % n; if (H.selectedIndex<0) H.selectedIndex = n-1;
176+ H.paintList(); H.revealSelection();
177+ }
78 };178 };
179+
180+ // Keyboard hooks
79 window.addEventListener('keydown', (e)=>{181 window.addEventListener('keydown', (e)=>{
80- if ((e.ctrlKey||e.metaKey) && (e.key==='l' || e.key==='L')) { e.preventDefault(); H.toggle(true); }182+ const mod = (e.ctrlKey||e.metaKey);
183+ if (mod && (e.key==='l' || e.key==='L')) { e.preventDefault(); H.open('omnibox'); }
184+ if (mod && (e.key==='f' || e.key==='F')) { e.preventDefault(); H.open('find'); }
81 }, true);185 }, true);
82- // Allow native side to update suggestions or toggle186+
187+ // Public API for native
83 window.__dumber_setSuggestions = (arr)=> H.setSuggestions(arr);188 window.__dumber_setSuggestions = (arr)=> H.setSuggestions(arr);
84 window.__dumber_toggle = ()=> H.toggle();189 window.__dumber_toggle = ()=> H.toggle();
190+ window.__dumber_find_open = (q)=> H.open('find', q||'');
191+ window.__dumber_find_close = ()=> H.close();
192+ window.__dumber_find_query = (q)=> { if (H.mode!=='find') H.setMode('find'); if (!H.visible) H.toggle(true); H.input.value = q||''; H.find(q||''); };
85 } catch (e) { /* no-op */ }193 } catch (e) { /* no-op */ }
86 })();`194 })();`
M pkg/webkit/webview_cgo.go +2 -31
@@ -336,35 +336,6 @@ func boolToInt(b bool) int {
336336 return 0
337337 }
338338
339-const omniboxDefaultScript = `(() => {
340- try {
341- if (window.__dumber_omnibox_loaded) return; window.__dumber_omnibox_loaded = true;
342- const H = { el:null,input:null,list:null,visible:false,suggestions:[],debounceTimer:0,
343- post(m){ try{ window.webkit?.messageHandlers?.dumber?.postMessage(JSON.stringify(m)); }catch(_){} },
344- render(){ if(!this.el) this.mount(); this.el.style.display=this.visible?'block':'none'; if(this.visible) this.input.focus(); },
345- mount(){ const r=document.createElement('div'); r.style.cssText='position:fixed;inset:0;z-index:2147483647;display:none;';
346- const b=document.createElement('div'); b.style.cssText='max-width:720px;margin:8vh auto;padding:10px 12px;background:#16181a;color:#e6e6e6;border:1px solid #2a2e33;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.55);backdrop-filter:saturate(120%) blur(2px);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,\"Helvetica Neue\",Arial,sans-serif;';
347- const i=document.createElement('input'); i.type='text'; i.placeholder='Type URL or search…'; i.style.cssText='display:block;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:8px;border:1px solid #3a3f45;background:#0f1113;color:#e6e6e6;font-size:15px;outline:none;';
348- const l=document.createElement('div'); l.style.cssText='margin-top:10px;max-height:52vh;overflow:auto;border-top:1px solid #2a2e33;';
349- b.appendChild(i); b.appendChild(l); r.appendChild(b); document.documentElement.appendChild(r);
350- i.addEventListener('keydown', (e)=>{ if(e.key==='Escape'){H.toggle(false);} else if(e.key==='Enter'){ const pick=H.suggestions[H.selectedIndex|0]; const v=(pick&&pick.url)||i.value||''; if(v) H.post({type:'navigate', url:v}); H.toggle(false);} else if(e.key==='ArrowDown' || e.key==='ArrowUp'){ e.preventDefault(); const n=H.suggestions.length; if(n){ H.selectedIndex=(H.selectedIndex||0)+(e.key==='ArrowDown'?1:-1); if(H.selectedIndex<0)H.selectedIndex=n-1; if(H.selectedIndex>=n)H.selectedIndex=0; H.paintList(); } } });
351- i.addEventListener('input', ()=>{ clearTimeout(H.debounceTimer); const q=i.value; H.debounceTimer=setTimeout(()=>H.post({type:'query', q, limit:10}), 120); });
352- this.el=r; this.input=i; this.list=l; this.selectedIndex=-1; this.paintList(); },
353- paintList(){ const l=this.list; if(!l) return; l.textContent=''; this.suggestions.forEach((s,i)=>{ const it=document.createElement('div'); it.style.cssText='padding:10px 12px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #252a2f;'+(i===this.selectedIndex?'background:#0c0f12;':'');
354- const icon=document.createElement('img'); icon.src=s.favicon||''; icon.width=18; icon.height=18; icon.loading='lazy'; icon.style.cssText='flex:0 0 18px;width:18px;height:18px;border-radius:4px;opacity:.95;'; icon.onerror=()=>{ icon.style.display='none'; };
355- const url=document.createElement('div'); url.textContent=s.url||''; url.style.cssText='flex:1;min-width:0;color:#cfe6ff;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;';
356- it.appendChild(icon); it.appendChild(url);
357- it.addEventListener('mouseenter',()=>{ H.selectedIndex=i; H.paintList(); });
358- it.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });
359- l.appendChild(it);
360- }); },
361- toggle(v){ this.visible=(typeof v==='boolean')?v:!this.visible; this.render(); }, setSuggestions(a){ this.suggestions=Array.isArray(a)?a:[]; this.selectedIndex=-1; this.paintList(); }
362- };
363- window.addEventListener('keydown', (e)=>{ if((e.ctrlKey||e.metaKey) && (e.key==='l'||e.key==='L')){ e.preventDefault(); H.toggle(true); } }, true);
364- window.__dumber_setSuggestions = (a)=> H.setSuggestions(a);
365- window.__dumber_toggle = ()=> H.toggle();
366- } catch(_){}
367-})();`
368339
369340 type nativeView struct {
370341 win *C.GtkWidget
@@ -872,8 +843,8 @@ func (w *WebView) enableUserContentManager() {
872843 C.webkit_user_script_unref(schemeScript)
873844 }
874845
875- // Add user script at document-start
876- src := C.CString(omniboxDefaultScript)
846+ // Add user script at document-start (omnibox/find reusable component)
847+ src := C.CString(ucmOmniboxScript)
877848 defer C.free(unsafe.Pointer(src))
878849 script := C.webkit_user_script_new((*C.gchar)(src), C.WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, C.WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START, nil, nil)
879850 if script != nil {
@@ -336,35 +336,6 @@ func boolToInt(b bool) int {
336 return 0336 return 0
337 }337 }
338 338
339-const omniboxDefaultScript = `(() => {
340- try {
341- if (window.__dumber_omnibox_loaded) return; window.__dumber_omnibox_loaded = true;
342- const H = { el:null,input:null,list:null,visible:false,suggestions:[],debounceTimer:0,
343- post(m){ try{ window.webkit?.messageHandlers?.dumber?.postMessage(JSON.stringify(m)); }catch(_){} },
344- render(){ if(!this.el) this.mount(); this.el.style.display=this.visible?'block':'none'; if(this.visible) this.input.focus(); },
345- mount(){ const r=document.createElement('div'); r.style.cssText='position:fixed;inset:0;z-index:2147483647;display:none;';
346- const b=document.createElement('div'); b.style.cssText='max-width:720px;margin:8vh auto;padding:10px 12px;background:#16181a;color:#e6e6e6;border:1px solid #2a2e33;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.55);backdrop-filter:saturate(120%) blur(2px);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,\"Helvetica Neue\",Arial,sans-serif;';
347- const i=document.createElement('input'); i.type='text'; i.placeholder='Type URL or search…'; i.style.cssText='display:block;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:8px;border:1px solid #3a3f45;background:#0f1113;color:#e6e6e6;font-size:15px;outline:none;';
348- const l=document.createElement('div'); l.style.cssText='margin-top:10px;max-height:52vh;overflow:auto;border-top:1px solid #2a2e33;';
349- b.appendChild(i); b.appendChild(l); r.appendChild(b); document.documentElement.appendChild(r);
350- i.addEventListener('keydown', (e)=>{ if(e.key==='Escape'){H.toggle(false);} else if(e.key==='Enter'){ const pick=H.suggestions[H.selectedIndex|0]; const v=(pick&&pick.url)||i.value||''; if(v) H.post({type:'navigate', url:v}); H.toggle(false);} else if(e.key==='ArrowDown' || e.key==='ArrowUp'){ e.preventDefault(); const n=H.suggestions.length; if(n){ H.selectedIndex=(H.selectedIndex||0)+(e.key==='ArrowDown'?1:-1); if(H.selectedIndex<0)H.selectedIndex=n-1; if(H.selectedIndex>=n)H.selectedIndex=0; H.paintList(); } } });
351- i.addEventListener('input', ()=>{ clearTimeout(H.debounceTimer); const q=i.value; H.debounceTimer=setTimeout(()=>H.post({type:'query', q, limit:10}), 120); });
352- this.el=r; this.input=i; this.list=l; this.selectedIndex=-1; this.paintList(); },
353- paintList(){ const l=this.list; if(!l) return; l.textContent=''; this.suggestions.forEach((s,i)=>{ const it=document.createElement('div'); it.style.cssText='padding:10px 12px;display:flex;gap:10px;align-items:center;cursor:pointer;border-bottom:1px solid #252a2f;'+(i===this.selectedIndex?'background:#0c0f12;':'');
354- const icon=document.createElement('img'); icon.src=s.favicon||''; icon.width=18; icon.height=18; icon.loading='lazy'; icon.style.cssText='flex:0 0 18px;width:18px;height:18px;border-radius:4px;opacity:.95;'; icon.onerror=()=>{ icon.style.display='none'; };
355- const url=document.createElement('div'); url.textContent=s.url||''; url.style.cssText='flex:1;min-width:0;color:#cfe6ff;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;';
356- it.appendChild(icon); it.appendChild(url);
357- it.addEventListener('mouseenter',()=>{ H.selectedIndex=i; H.paintList(); });
358- it.addEventListener('click',()=>{ H.post({type:'navigate', url:s.url}); H.toggle(false); });
359- l.appendChild(it);
360- }); },
361- toggle(v){ this.visible=(typeof v==='boolean')?v:!this.visible; this.render(); }, setSuggestions(a){ this.suggestions=Array.isArray(a)?a:[]; this.selectedIndex=-1; this.paintList(); }
362- };
363- window.addEventListener('keydown', (e)=>{ if((e.ctrlKey||e.metaKey) && (e.key==='l'||e.key==='L')){ e.preventDefault(); H.toggle(true); } }, true);
364- window.__dumber_setSuggestions = (a)=> H.setSuggestions(a);
365- window.__dumber_toggle = ()=> H.toggle();
366- } catch(_){}
367-})();`
368 339
369 type nativeView struct {340 type nativeView struct {
370 win *C.GtkWidget341 win *C.GtkWidget
@@ -872,8 +843,8 @@ func (w *WebView) enableUserContentManager() {
872 C.webkit_user_script_unref(schemeScript)843 C.webkit_user_script_unref(schemeScript)
873 }844 }
874 845
875- // Add user script at document-start846+ // Add user script at document-start (omnibox/find reusable component)
876- src := C.CString(omniboxDefaultScript)847+ src := C.CString(ucmOmniboxScript)
877 defer C.free(unsafe.Pointer(src))848 defer C.free(unsafe.Pointer(src))
878 script := C.webkit_user_script_new((*C.gchar)(src), C.WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, C.WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START, nil, nil)849 script := C.webkit_user_script_new((*C.gchar)(src), C.WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, C.WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START, nil, nil)
879 if script != nil {850 if script != nil {

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close