Browse Source

Initialize repo for e30 with current e29 packaging

Caleb Maclennan 1 năm trước cách đây
commit
feed85c27e

+ 412 - 0
.SRCINFO

@@ -0,0 +1,412 @@
+pkgbase = electron29
+	pkgdesc = Build cross platform desktop apps with web technologies
+	pkgver = 29.3.0
+	pkgrel = 1
+	url = https://electronjs.org
+	arch = x86_64
+	license = MIT
+	license = BSD-3-Clause
+	makedepends = clang
+	makedepends = git
+	makedepends = gn
+	makedepends = gperf
+	makedepends = harfbuzz-icu
+	makedepends = http-parser
+	makedepends = java-runtime-headless
+	makedepends = libnotify
+	makedepends = libva
+	makedepends = lld
+	makedepends = llvm
+	makedepends = ninja
+	makedepends = nodejs-lts-iron
+	makedepends = npm
+	makedepends = patchutils
+	makedepends = pciutils
+	makedepends = pipewire
+	makedepends = python
+	makedepends = python-httplib2
+	makedepends = python-pyparsing
+	makedepends = python-requests
+	makedepends = python-six
+	makedepends = rust
+	makedepends = qt5-base
+	makedepends = wget
+	makedepends = yarn
+	depends = c-ares
+	depends = gcc-libs
+	depends = glibc
+	depends = gtk3
+	depends = libgtk-3.so
+	depends = libevent
+	depends = libffi
+	depends = libffi.so
+	depends = libpulse
+	depends = libpulse.so
+	depends = nss
+	depends = zlib
+	depends = libz.so
+	depends = fontconfig
+	depends = libfontconfig.so
+	depends = libjpeg
+	depends = libjpeg.so
+	depends = icu
+	depends = libicui18n.so
+	depends = libicuuc.so
+	depends = dav1d
+	depends = libdav1d.so
+	depends = flac
+	depends = libFLAC.so
+	depends = libdrm
+	depends = libxml2
+	depends = libxml2.so
+	depends = libwebp
+	depends = libwebpdemux.so
+	depends = libwebpmux.so
+	depends = libwebp.so
+	depends = minizip
+	depends = opus
+	depends = libopus.so
+	depends = harfbuzz
+	depends = libharfbuzz.so
+	depends = libharfbuzz-subset.so
+	depends = libxslt
+	depends = libxslt.so
+	depends = libpng
+	depends = libpng16.so
+	depends = freetype2
+	depends = libfreetype.so
+	optdepends = kde-cli-tools: file deletion support (kioclient5)
+	optdepends = pipewire: WebRTC desktop sharing under Wayland
+	optdepends = qt5-base: enable Qt5 with --enable-features=AllowQt
+	optdepends = gtk4: for --gtk-version=4 (GTK4 IME might work better on Wayland)
+	optdepends = trash-cli: file deletion support (trash-put)
+	optdepends = xdg-utils: open URLs with desktop’s default (xdg-email, xdg-open)
+	options = !lto
+	source = git+https://github.com/electron/electron.git#tag=v29.3.0
+	source = https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/122-3/chromium-patches-122-3.tar.bz2
+	source = support-ICU-74-in-LazyTextBreakIterator.patch
+	source = drop-flag-unsupported-by-clang17.patch
+	source = use-system-libraries-in-node.patch
+	source = compiler-rt-adjust-paths.patch
+	source = default_app-icon.patch
+	source = electron-launcher.sh
+	source = electron.desktop
+	source = jinja-python-3.10.patch
+	source = makepkg-source-roller.py
+	source = chromium-mirror::git+https://github.com/chromium/chromium.git#tag=122.0.6261.156
+	source = chromium-mirror_third_party_nan::git+https://github.com/nodejs/nan.git#commit=e14bdcd1f72d62bca1d541b66da43130384ec213
+	source = chromium-mirror_third_party_electron_node::git+https://github.com/nodejs/node.git#tag=v20.9.0
+	source = chromium-mirror_third_party_engflow-reclient-configs::git+https://github.com/EngFlow/reclient-configs.git#commit=955335c30a752e9ef7bff375baab5e0819b6c00d
+	source = chromium-mirror_third_party_clang-format_script::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git#commit=e5337933f2951cacd3aeacd238ce4578163ca0b9
+	source = chromium-mirror_third_party_libc++_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git#commit=28aa23ffb4c7344914a5b4ac7169f12e5a12333f
+	source = chromium-mirror_third_party_libc++abi_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git#commit=9986707a5f2fc6d5d1ffa7f224a032bdd45c95fd
+	source = chromium-mirror_third_party_libunwind_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git#commit=f400fdb561d4416b59b8f8a33d8ec8b79da60495
+	source = chromium-mirror_chrome_test_data_perf_canvas_bench::git+https://chromium.googlesource.com/chromium/canvas_bench.git#commit=a7b40ea5ae0239517d78845a5fc9b12976bfc732
+	source = chromium-mirror_chrome_test_data_perf_frame_rate_content::git+https://chromium.googlesource.com/chromium/frame_rate/content.git#commit=c10272c88463efeef6bb19c9ec07c42bc8fe22b9
+	source = chromium-mirror_chrome_test_data_xr_webvr_info::git+https://chromium.googlesource.com/external/github.com/toji/webvr.info.git#commit=c58ae99b9ff9e2aa4c524633519570bf33536248
+	source = chromium-mirror_media_cdm_api::git+https://chromium.googlesource.com/chromium/cdm.git#commit=fef0b5aa1bd31efb88dfab804bdbe614f3d54f28
+	source = chromium-mirror_native_client::git+https://chromium.googlesource.com/native_client/src/native_client.git#commit=225f880e2de2a2d2b33fbdad55ca27eca3cdc103
+	source = chromium-mirror_net_third_party_quiche_src::git+https://quiche.googlesource.com/quiche.git#commit=0e39ce016ee1ec8271aa7216d547917c239db525
+	source = chromium-mirror_third_party_angle::git+https://chromium.googlesource.com/angle/angle.git#commit=f9bad5e27d61e2ab6a7504b1793be5aa14eb1414
+	source = chromium-mirror_third_party_anonymous_tokens_src::git+https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git#commit=d024f05b39e21bb2a0b8205a7ce72b1b185b84c2
+	source = chromium-mirror_third_party_content_analysis_sdk_src::git+https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git#commit=9a408736204513e0e95dd2ab3c08de0d95963efc
+	source = chromium-mirror_third_party_dav1d_libdav1d::git+https://chromium.googlesource.com/external/github.com/videolan/dav1d.git#commit=47107e384bd1dc25674acf04d000a8cdc6195234
+	source = chromium-mirror_third_party_dawn::git+https://dawn.googlesource.com/dawn.git#commit=6a6719ee09f1078356fdd31c69061e07b5c61c2d
+	source = chromium-mirror_third_party_highway_src::git+https://chromium.googlesource.com/external/github.com/google/highway.git#commit=8f20644eca693cfb74aa795b0006b6779c370e7a
+	source = chromium-mirror_third_party_google_benchmark_src::git+https://chromium.googlesource.com/external/github.com/google/benchmark.git#commit=b177433f3ee2513b1075140c723d73ab8901790f
+	source = chromium-mirror_third_party_boringssl_src::git+https://boringssl.googlesource.com/boringssl.git#commit=414f69504d30d0848b69f6453ea7fb5e88004cb4
+	source = chromium-mirror_third_party_breakpad_breakpad::git+https://chromium.googlesource.com/breakpad/breakpad.git#commit=62ecd463583d09eb7d15b1d410055f30b2c7bcb4
+	source = chromium-mirror_third_party_cast_core_public_src::git+https://chromium.googlesource.com/cast_core/public.git#commit=71f51fd6fa45fac73848f65421081edd723297cd
+	source = chromium-mirror_third_party_catapult::git+https://chromium.googlesource.com/catapult.git#commit=ab03292694695864b523636060e2a96b2c9b2df2
+	source = chromium-mirror_third_party_ced_src::git+https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git#commit=ba412eaaacd3186085babcd901679a48863c7dd5
+	source = chromium-mirror_third_party_chromium-variations::git+https://chromium.googlesource.com/chromium-variations.git#commit=d0dcd8802c22c1ac4a7d112782a4c75f0c6ca8ee
+	source = chromium-mirror_third_party_cld_3_src::git+https://chromium.googlesource.com/external/github.com/google/cld_3.git#commit=b48dc46512566f5a2d41118c8c1116c4f96dc661
+	source = chromium-mirror_third_party_colorama_src::git+https://chromium.googlesource.com/external/colorama.git#commit=3de9f013df4b470069d03d250224062e8cf15c49
+	source = chromium-mirror_third_party_cpu_features_src::git+https://chromium.googlesource.com/external/github.com/google/cpu_features.git#commit=936b9ab5515dead115606559502e3864958f7f6e
+	source = chromium-mirror_third_party_cpuinfo_src::git+https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git#commit=76cc10d627add77922dc24521b332a055a4d6d77
+	source = chromium-mirror_third_party_crc32c_src::git+https://chromium.googlesource.com/external/github.com/google/crc32c.git#commit=fa5ade41ee480003d9c5af6f43567ba22e4e17e6
+	source = chromium-mirror_third_party_cros_system_api::git+https://chromium.googlesource.com/chromiumos/platform2/system_api.git#commit=12d5e386005a211570cfdf9849d2fa6a3b38594b
+	source = chromium-mirror_third_party_crossbench::git+https://chromium.googlesource.com/crossbench.git#commit=1983b3f517da56c35c91296467458f71ad5b9340
+	source = chromium-mirror_third_party_depot_tools::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git#commit=6fc0c97ab284021b72e3bc962f7fa879ffcad65b
+	source = chromium-mirror_third_party_devtools-frontend_src::git+https://chromium.googlesource.com/devtools/devtools-frontend.git#commit=3fa1fc736f46022f45c7ba7d817d1df1519c55d7
+	source = chromium-mirror_third_party_dom_distiller_js_dist::git+https://chromium.googlesource.com/chromium/dom-distiller/dist.git#commit=199de96b345ada7c6e7e6ba3d2fa7a6911b8767d
+	source = chromium-mirror_third_party_eigen3_src::git+https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git#commit=454f89af9d6f3525b1df5f9ef9c86df58bf2d4d3
+	source = chromium-mirror_third_party_farmhash_src::git+https://chromium.googlesource.com/external/github.com/google/farmhash.git#commit=816a4ae622e964763ca0862d9dbd19324a1eaf45
+	source = chromium-mirror_third_party_ffmpeg::git+https://chromium.googlesource.com/chromium/third_party/ffmpeg.git#commit=17525de887d54b970ffdd421a0879c1db1952307
+	source = chromium-mirror_third_party_flac::git+https://chromium.googlesource.com/chromium/deps/flac.git#commit=689da3a7ed50af7448c3f1961d1791c7c1d9c85c
+	source = chromium-mirror_third_party_flatbuffers_src::git+https://chromium.googlesource.com/external/github.com/google/flatbuffers.git#commit=bcb9ef187628fe07514e57756d05e6a6296f7dc5
+	source = chromium-mirror_third_party_fontconfig_src::git+https://chromium.googlesource.com/external/fontconfig.git#commit=2fb3419a92156569bc1ec707401258c922cd0d99
+	source = chromium-mirror_third_party_fp16_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git#commit=0a92994d729ff76a58f692d3028ca1b64b145d91
+	source = chromium-mirror_third_party_gemmlowp_src::git+https://chromium.googlesource.com/external/github.com/google/gemmlowp.git#commit=13d57703abca3005d97b19df1f2db731607a7dc2
+	source = chromium-mirror_third_party_grpc_src::git+https://chromium.googlesource.com/external/github.com/grpc/grpc.git#commit=822dab21d9995c5cf942476b35ca12a1aa9d2737
+	source = chromium-mirror_third_party_freetype_src::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2.git#commit=57617782464411201ce7bbc93b086c1b4d7d84a5
+	source = chromium-mirror_third_party_freetype-testing_src::git+https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git#commit=7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f
+	source = chromium-mirror_third_party_fxdiv_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git#commit=63058eff77e11aa15bf531df5dd34395ec3017c8
+	source = chromium-mirror_third_party_harfbuzz-ng_src::git+https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git#commit=155015f4bec434ecc2f94621665844218f05ce51
+	source = chromium-mirror_third_party_emoji-segmenter_src::git+https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git#commit=9ba6d25d0d9313569665d4a9d2b34f0f39f9a50e
+	source = chromium-mirror_third_party_ots_src::git+https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git#commit=46bea9879127d0ff1c6601b078e2ce98e83fcd33
+	source = chromium-mirror_third_party_libgav1_src::git+https://chromium.googlesource.com/codecs/libgav1.git#commit=35fea10bfdb790cf131ae74a4ee346905f34dc3c
+	source = chromium-mirror_third_party_googletest_src::git+https://chromium.googlesource.com/external/github.com/google/googletest.git#commit=af29db7ec28d6df1c7f0f745186884091e602e07
+	source = chromium-mirror_third_party_hunspell_dictionaries::git+https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git#commit=41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e
+	source = chromium-mirror_third_party_icu::git+https://chromium.googlesource.com/chromium/deps/icu.git#commit=bad7ddbf921358177e56fd723c2f59f8041a370f
+	source = chromium-mirror_third_party_jsoncpp_source::git+https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git#commit=42e892d96e47b1f6e29844cc705e148ec4856448
+	source = chromium-mirror_third_party_leveldatabase_src::git+https://chromium.googlesource.com/external/leveldb.git#commit=068d5ee1a3ac40dabd00d211d5013af44be55bea
+	source = chromium-mirror_third_party_libFuzzer_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git#commit=758bd21f103a501b362b1ca46fa8fcb692eaa303
+	source = chromium-mirror_third_party_fuzztest_src::git+https://chromium.googlesource.com/external/github.com/google/fuzztest.git#commit=12e7428ab0847b1d1dc6c4b89203adfd1f16a1ad
+	source = chromium-mirror_third_party_libaddressinput_src::git+https://chromium.googlesource.com/external/libaddressinput.git#commit=e8712e415627f22d0b00ebee8db99547077f39bd
+	source = chromium-mirror_third_party_libaom_source_libaom::git+https://aomedia.googlesource.com/aom.git#commit=1a72ea323d65e46eb90d08d492c04891abb91926
+	source = chromium-mirror_third_party_libavif_src::git+https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git#commit=e170c9366090cdc389d5f47ee3c2d7db71d263bc
+	source = chromium-mirror_third_party_libavifinfo_src::git+https://aomedia.googlesource.com/libavifinfo.git#commit=b496868f7c3fd17dfeeecc0364fe37e19edd548a
+	source = chromium-mirror_third_party_nearby_src::git+https://chromium.googlesource.com/external/github.com/google/nearby-connections.git#commit=4bdb5000ee7919724530cf89d50969e7b0ed58a7
+	source = chromium-mirror_third_party_beto-core_src::git+https://beto-core.googlesource.com/beto-core.git#commit=4d202dab960a0b6a6e4757ab4393945aca5a09db
+	source = chromium-mirror_third_party_securemessage_src::git+https://chromium.googlesource.com/external/github.com/google/securemessage.git#commit=fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84
+	source = chromium-mirror_third_party_speedometer_v3.0::git+https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git#commit=2ee210ca20767c949c4ff29bdffa1138eb0501fe
+	source = chromium-mirror_third_party_ukey2_src::git+https://chromium.googlesource.com/external/github.com/google/ukey2.git#commit=0275885d8e6038c39b8a8ca55e75d1d4d1727f47
+	source = chromium-mirror_third_party_cros-components_src::git+https://chromium.googlesource.com/external/google3/cros_components.git#commit=ab7bdff32543991f52872c25cecf1f926702dfe3
+	source = chromium-mirror_third_party_libdrm_src::git+https://chromium.googlesource.com/chromiumos/third_party/libdrm.git#commit=98e1db501173303e58ef6a1def94ab7a2d84afc1
+	source = chromium-mirror_third_party_expat_src::git+https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git#commit=441f98d02deafd9b090aea568282b28f66a50e36
+	source = chromium-mirror_third_party_libipp_libipp::git+https://chromium.googlesource.com/chromiumos/platform2/libipp.git#commit=2209bb84a8e122dab7c02fe66cc61a7b42873d7f
+	source = chromium-mirror_third_party_libjpeg_turbo::git+https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git#commit=9b894306ec3b28cea46e84c32b56773a98c483da
+	source = chromium-mirror_third_party_liblouis_src::git+https://chromium.googlesource.com/external/liblouis-github.git#commit=9700847afb92cb35969bdfcbbfbbb74b9c7b3376
+	source = chromium-mirror_third_party_libphonenumber_dist::git+https://chromium.googlesource.com/external/libphonenumber.git#commit=140dfeb81b753388e8a672900fb7a971e9a0d362
+	source = chromium-mirror_third_party_libprotobuf-mutator_src::git+https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git#commit=a304ec48dcf15d942607032151f7e9ee504b5dcf
+	source = chromium-mirror_third_party_libsrtp::git+https://chromium.googlesource.com/chromium/deps/libsrtp.git#commit=5b7c744eb8310250ccc534f3f86a2015b3887a0a
+	source = chromium-mirror_third_party_libsync_src::git+https://chromium.googlesource.com/aosp/platform/system/core/libsync.git#commit=f4f4387b6bf2387efbcfd1453af4892e8982faf6
+	source = chromium-mirror_third_party_libvpx_source_libvpx::git+https://chromium.googlesource.com/webm/libvpx.git#commit=893c9f6d070cc3bd8503152480089673f57fdf76
+	source = chromium-mirror_third_party_libwebm_source::git+https://chromium.googlesource.com/webm/libwebm.git#commit=e4fbea0c9751ae8aa86629b197a28d8276a2b0da
+	source = chromium-mirror_third_party_libwebp_src::git+https://chromium.googlesource.com/webm/libwebp.git#commit=ca332209cb5567c9b249c86788cb2dbf8847e760
+	source = chromium-mirror_third_party_libyuv::git+https://chromium.googlesource.com/libyuv/libyuv.git#commit=04821d1e7d60845525e8db55c7bcd41ef5be9406
+	source = chromium-mirror_third_party_lss::git+https://chromium.googlesource.com/linux-syscall-support.git#commit=ce877209e11aa69dcfffbd53ef90ea1d07136521
+	source = chromium-mirror_third_party_material_color_utilities_src::git+https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git#commit=bec7bab60e6431201a82761ea4482b98b54c2af9
+	source = chromium-mirror_third_party_minigbm_src::git+https://chromium.googlesource.com/chromiumos/platform/minigbm.git#commit=3018207f4d89395cc271278fb9a6558b660885f5
+	source = chromium-mirror_third_party_nasm::git+https://chromium.googlesource.com/chromium/deps/nasm.git#commit=f477acb1049f5e043904b87b825c5915084a9a29
+	source = chromium-mirror_third_party_neon_2_sse_src::git+https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git#commit=a15b489e1222b2087007546b4912e21293ea86ff
+	source = chromium-mirror_third_party_openh264_src::git+https://chromium.googlesource.com/external/github.com/cisco/openh264.git#commit=09a4f3ec842a8932341b195c5b01e141c8a16eb7
+	source = chromium-mirror_third_party_openscreen_src::git+https://chromium.googlesource.com/openscreen.git#commit=b70c552bedf189fc238e98f8f69e6c30e7925207
+	source = chromium-mirror_third_party_openxr_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenXR-SDK.git#commit=95fe35ffb383710a6e0567e958ead9a3b66e930c
+	source = chromium-mirror_third_party_pdfium::git+https://pdfium.googlesource.com/pdfium.git#commit=4c4f9ab25dab142d7888f3258ab54df24b97b44f
+	source = chromium-mirror_third_party_perfetto::git+https://android.googlesource.com/platform/external/perfetto.git#commit=1e15d01da5d619ca617dcdd870efe3c35046a89c
+	source = chromium-mirror_third_party_pthreadpool_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git#commit=4fe0e1e183925bf8cfa6aae24237e724a96479b8
+	source = chromium-mirror_third_party_pyelftools::git+https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git#commit=19b3e610c86fcadb837d252c794cb5e8008826ae
+	source = chromium-mirror_third_party_quic_trace_src::git+https://chromium.googlesource.com/external/github.com/google/quic-trace.git#commit=caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc
+	source = chromium-mirror_third_party_pywebsocket3_src::git+https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git#commit=50602a14f1b6da17e0b619833a13addc6ea78bc2
+	source = chromium-mirror_third_party_re2_src::git+https://chromium.googlesource.com/external/github.com/google/re2.git#commit=826ad10e58a042faf57d7c329b0fd0a04b797e0b
+	source = chromium-mirror_third_party_ruy_src::git+https://chromium.googlesource.com/external/github.com/google/ruy.git#commit=cd7b92695b5d3f0c9ff65b865c2a1e19b99d766d
+	source = chromium-mirror_third_party_skia::git+https://skia.googlesource.com/skia.git#commit=8464f41cf051974e499be9caeab3243506e025c2
+	source = chromium-mirror_third_party_smhasher_src::git+https://chromium.googlesource.com/external/smhasher.git#commit=e87738e57558e0ec472b2fc3a643b838e5b6e88f
+	source = chromium-mirror_third_party_snappy_src::git+https://chromium.googlesource.com/external/github.com/google/snappy.git#commit=c9f9edf6d75bb065fa47468bf035e051a57bec7c
+	source = chromium-mirror_third_party_sqlite_src::git+https://chromium.googlesource.com/chromium/deps/sqlite.git#commit=a5270ae741714a5aad187ba8dcd8bddca39f791f
+	source = chromium-mirror_third_party_swiftshader::git+https://swiftshader.googlesource.com/SwiftShader.git#commit=2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f
+	source = chromium-mirror_third_party_text-fragments-polyfill_src::git+https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git#commit=c036420683f672d685e27415de0a5f5e85bdc23f
+	source = chromium-mirror_third_party_tflite_src::git+https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git#commit=296f1e3cce03308c7fd5cdc7a76fbc3e41ec5214
+	source = chromium-mirror_third_party_vulkan-deps::git+https://chromium.googlesource.com/vulkan-deps.git#commit=c00c99b8e979ca1b1eba221a60cb1e1d3b12f956
+	source = chromium-mirror_third_party_vulkan_memory_allocator::git+https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git#commit=56300b29fbfcc693ee6609ddad3fdd5b7a449a21
+	source = chromium-mirror_third_party_wayland_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git#commit=af7f44122127b86a8c74cb7432909180f4899eaa
+	source = chromium-mirror_third_party_wayland-protocols_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git#commit=681c33c8547d6aefe24455ba2bffe1c5ae11fee5
+	source = chromium-mirror_third_party_wayland-protocols_kde::git+https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git#commit=0b07950714b3a36c9b9f71fc025fc7783e82926e
+	source = chromium-mirror_third_party_wayland-protocols_gtk::git+https://chromium.googlesource.com/external/github.com/GNOME/gtk.git#commit=40ebed3a03aef096addc0af09fec4ec529d882a0
+	source = chromium-mirror_third_party_webdriver_pylib::git+https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git#commit=fc5e7e70c098bfb189a9a74746809ad3c5c34e04
+	source = chromium-mirror_third_party_webgl_src::git+https://chromium.googlesource.com/external/khronosgroup/webgl.git#commit=f4bf599a8b575df685c31d9c4729a70a04e377ed
+	source = chromium-mirror_third_party_webgpu-cts_src::git+https://chromium.googlesource.com/external/github.com/gpuweb/cts.git#commit=e082b08475761a2ba6a3349dfea72f704c8b68d4
+	source = chromium-mirror_third_party_webrtc::git+https://webrtc.googlesource.com/src.git#commit=6b419a0536b1a0ccfff3682f997c6f19bcbd9bd8
+	source = chromium-mirror_third_party_wuffs_src::git+https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git#commit=e3f919ccfe3ef542cfc983a82146070258fb57f8
+	source = chromium-mirror_third_party_weston_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git#commit=ccf29cb237c3ed09c5f370f35239c93d07abfdd7
+	source = chromium-mirror_third_party_xdg-utils::git+https://chromium.googlesource.com/chromium/deps/xdg-utils.git#commit=cb54d9db2e535ee4ef13cc91b65a1e2741a94a44
+	source = chromium-mirror_third_party_xnnpack_src::git+https://chromium.googlesource.com/external/github.com/google/XNNPACK.git#commit=a68aa0a24b0d3e1c75f2f7c0915b70121cee0470
+	source = chromium-mirror_tools_page_cycler_acid3::git+https://chromium.googlesource.com/chromium/deps/acid3.git#commit=a926d0a32e02c4c03ae95bb798e6c780e0e184ba
+	source = chromium-mirror_third_party_zstd_src::git+https://chromium.googlesource.com/external/github.com/facebook/zstd.git#commit=050fec5c378d676fede8b2171ec5e84f6afa1504
+	source = chromium-mirror_v8::git+https://chromium.googlesource.com/v8/v8.git#commit=ddb4756a90fb7d89dc789859f8b2a3639d8de125
+	source = chromium-mirror_third_party_angle_third_party_glmark2_src::git+https://chromium.googlesource.com/external/github.com/glmark2/glmark2.git#commit=ca8de51fedb70bace5351c6b002eb952c747e889
+	source = chromium-mirror_third_party_angle_third_party_rapidjson_src::git+https://chromium.googlesource.com/external/github.com/Tencent/rapidjson.git#commit=781a4e667d84aeedbeb8184b7b62425ea66ec59f
+	source = chromium-mirror_third_party_angle_third_party_VK-GL-CTS_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git#commit=0f6fd3de81102058dc2ae299af1ad5287d2145dd
+	source = chromium-mirror_third_party_dawn_buildtools::git+https://chromium.googlesource.com/chromium/src/buildtools.git#commit=48ab3bd053bfe2fef4635d7cb1861f8923167b96
+	source = chromium-mirror_third_party_dawn_build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=df6338f68f66357d27ea7f0354d50216c8c74473
+	source = chromium-mirror_third_party_dawn_tools_clang::git+https://chromium.googlesource.com/chromium/src/tools/clang.git#commit=419fc5706504be3cc8d17cc61bdc6b45226927e9
+	source = chromium-mirror_third_party_dawn_testing::git+https://chromium.googlesource.com/chromium/src/testing.git#commit=035a9b18047370df7403758b006e6c9696d6b84d
+	source = chromium-mirror_third_party_dawn_third_party_jinja2::git+https://chromium.googlesource.com/chromium/src/third_party/jinja2.git#commit=e2d024354e11cc6b041b0cff032d73f0c7e43a07
+	source = chromium-mirror_third_party_dawn_third_party_markupsafe::git+https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git#commit=0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794
+	source = chromium-mirror_third_party_dawn_third_party_glfw::git+https://chromium.googlesource.com/external/github.com/glfw/glfw.git#commit=62e175ef9fae75335575964c845a302447c012c7
+	source = chromium-mirror_third_party_dawn_third_party_zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=526382e41c9c5275dc329db4328b54e4f344a204
+	source = chromium-mirror_third_party_dawn_third_party_abseil-cpp::git+https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp.git#commit=4ef9b33175828ea46d091e7e5ec28259d39a8ba5
+	source = chromium-mirror_third_party_dawn_third_party_dxc::git+https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git#commit=701a2b1da0387ac6abf73bdbaf7864b9615db033
+	source = chromium-mirror_third_party_dawn_third_party_dxheaders::git+https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers.git#commit=980971e835876dc0cde415e8f9bc646e64667bf7
+	source = chromium-mirror_third_party_dawn_third_party_khronos_OpenGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry.git#commit=5bae8738b23d06968e7c3a41308568120943ae77
+	source = chromium-mirror_third_party_dawn_third_party_khronos_EGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry.git#commit=7dea2ed79187cd13f76183c4b9100159b9e3e071
+	source = chromium-mirror_third_party_dawn_third_party_protobuf::git+https://chromium.googlesource.com/chromium/src/third_party/protobuf.git#commit=41759e11ec427e29e1a72b9401d2af3f6e02d839
+	source = chromium-mirror_third_party_dawn_tools_protoc_wrapper::git+https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper.git#commit=b5ea227bd88235ab3ccda964d5f3819c4e2d8032
+	source = chromium-mirror_third_party_dawn_third_party_partition_alloc::git+https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git#commit=67fd2f86eef40b1357387e2b0fc1eaf3c67d6ed7
+	source = chromium-mirror_third_party_openscreen_src_third_party_tinycbor_src::git+https://chromium.googlesource.com/external/github.com/intel/tinycbor.git#commit=d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7
+	source = chromium-mirror_third_party_vulkan-deps_glslang_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git#commit=57d86ab763da7b2cd1e00ecec8aa697403a8fd20
+	source = chromium-mirror_third_party_vulkan-deps_spirv-cross_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git#commit=b82536766d1b81631b126d1ddbe49baf42929bd3
+	source = chromium-mirror_third_party_vulkan-deps_spirv-headers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git#commit=7b0309708da5126b89e4ce6f19835f36dc912f2f
+	source = chromium-mirror_third_party_vulkan-deps_spirv-tools_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git#commit=c96fe8b943564fbab3424219d924d21cac2e877a
+	source = chromium-mirror_third_party_vulkan-deps_vulkan-headers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git#commit=217e93c664ec6704ec2d8c36fa116c1a4a1e2d40
+	source = chromium-mirror_third_party_vulkan-deps_vulkan-loader_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git#commit=0b2b71306aebf1e11304b9f961f9a29ab0234756
+	source = chromium-mirror_third_party_vulkan-deps_vulkan-tools_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git#commit=7c6d640a5ca3ab73c1f42d22312f672b54babfaf
+	source = chromium-mirror_third_party_vulkan-deps_vulkan-utility-libraries_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git#commit=4cfc176e3242b4dbdfd3f6c5680c5d8f2cb7db45
+	source = chromium-mirror_third_party_vulkan-deps_vulkan-validation-layers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git#commit=d26b50b03815ff226e6df478b4ddc4b98d8deaee
+	sha256sums = 14613283f3e194a0636054f82a014a821656e4dcb439a3f26fb6a3adbf6171ac
+	sha256sums = 7916b80d801bcc5c23cb9dd1ae820d939af3ef640dbcb2a3c8d6780dcf6ba7a3
+	sha256sums = 8c256b2a9498a63706a6e7a55eadbeb8cc814be66a75e49aec3716c6be450c6c
+	sha256sums = 3bd35dab1ded5d9e1befa10d5c6c4555fe0a76d909fb724ac57d0bf10cb666c1
+	sha256sums = ff588a8a4fd2f79eb8a4f11cf1aa151298ffb895be566c57cc355d47f161f53f
+	sha256sums = b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961
+	sha256sums = dd2d248831dd4944d385ebf008426e66efe61d6fdf66f8932c963a12167947b4
+	sha256sums = b0ac3422a6ab04859b40d4d7c0fd5f703c893c9ec145c9894c468fbc0a4d457c
+	sha256sums = 4484200d90b76830b69eea3a471c103999a3ce86bb2c29e6c14c945bf4102bae
+	sha256sums = 55dbe71dbc1f3ab60bf1fa79f7aea7ef1fe76436b1d7df48728a1f8227d2134e
+	sha256sums = 3ae82375ba212c31fd4ba6f1fa4e2445eeca8eb8c952176131ad57c0258db224
+	sha256sums = 3de51be7a535e69910fb5d8c7c8efd4fef48df988128c182f476c1a56d40f8bd
+	sha256sums = 0b7a546ee6913c49519c10c293ac530ff381641a8a465fa2e184d6dbe0fb784d
+	sha256sums = 4781df343cf17fe7647c82219a26e39ca47e6a83d37ecd26ae5a5092a93bd965
+	sha256sums = 3522166c3ca75316a172b7cc4fe12bba9367e30fed16df8193ede2e236dca8c5
+	sha256sums = 1a1204e831ce56a1ea506037aae01417cf5157b5fb0e26a5e3310227ebd973cc
+	sha256sums = 273c7ae3bba146fa43ce73e98514026725245554f8888ca483f338051c6a9871
+	sha256sums = ee43d3902444954e8091b453d2150ef37ba64f05093d8c8910ec7dbabf7f93b3
+	sha256sums = 5d060fc2458decb3ad8c43c29de640d15772fcb6affe7ff79e9acc2d424f362a
+	sha256sums = 5abf726ce9e19c0b0e7818a7ced615a1a6d16f306e7315b9e6db53118c0669b5
+	sha256sums = 045eb27642ac8f49b52efec7c52bb6ea3c908552ffadc50449a23b27da7a4737
+	sha256sums = 8a8c21768a1f3764e6887cfc907dd857e9fc00a1269dd858e2ba98d70aef889d
+	sha256sums = a62dd76d5ebcae2e2302509f057d21c35ffd69549ee7cdac47b2a85616dcc9be
+	sha256sums = 666ab0ad02d7ca8e38f432310649a7ef3a20c70c4da1b09267dab398066d1618
+	sha256sums = de562fecf27132a60844f417ef8dfc54fd06d6e52fedb96cf1fc000b4d6cf216
+	sha256sums = 8c5cbc839e6e3f1832da9d68735390b22056cb0d2cf167677b4cc85991c55373
+	sha256sums = d604e4c22318c21645aea18069fffb70a33409ae47ad248462f5682160df3d19
+	sha256sums = 89a368f0652d857d38402d6f3c5cded3c1757230ab7abe01df850a7bf8359119
+	sha256sums = 14bc49da17d7be84a99e41d414723b0ad2f2f6193d91d63995d6acb1e3debfe0
+	sha256sums = 4f4d2eeda3cb9363d03f6be3edd0c2f8ffbf87526f83b723000613e6a09587e6
+	sha256sums = d6045d4ebf49f14b994e58fbd2a84f95ca43a23f627db19b20cbfad1a0f49016
+	sha256sums = 580078d0e6e5dfd1ae1f935978e04270012fb594ed4ce435bf98963d4541715a
+	sha256sums = c45a272506bb20e632fc7c36cc2bcabc51d5732f379772880ccdb7ea55c2a342
+	sha256sums = d27aeb74a01e92fdc4afc40a36c4dfa1b87f0ed041d01cf94c60598e8429d280
+	sha256sums = af24f30b90d5942ecb89b9e5f373de70ec16ce590788a03a8d21f714bbca7337
+	sha256sums = 853d9b67a6ee2ead94815ced150ae261b1386ce044d5e85db481e9aa999448f4
+	sha256sums = 8b97c25874c17644300d1cbe6ac1fceb705bf18297e27699ba20497fc47ae239
+	sha256sums = 68a96daf56308815f789ac68377ba242ef8fd7150a59ab5629bdd30c9daacb50
+	sha256sums = e6a28c25e3d93c9c37414149ff44ac7a1bbb4d8a167061f8ee9679dc065af1bb
+	sha256sums = 9e950d9f0bf7f0b52de6744de0922583b4b32281e87f0488c2d1cfc533665aa5
+	sha256sums = 6125206b56f365874ba812038dbcd4271f8a73235ab4d211c42b7fd2d636bbc8
+	sha256sums = fc391bdf81998185f93f1f40e0d29265d3374239159e003fe49a322033e1128a
+	sha256sums = 4f5fd6719234fbc67c517e20e2170db66d37455d69bec880624a0a0304a0e91c
+	sha256sums = 382e185133fa676fd4ec01d8cbdd005dd2daadf66ba9fef258b6a9109f7425c5
+	sha256sums = c978d8c0aa4f05774a64f1373ce6c31d4243f94eea9b01c0853363e0dba1c674
+	sha256sums = a02fed8c58a0454b851a86fc11501f1d31f123d36284377093efa7f7927d3daa
+	sha256sums = 7c33a69ac04526d86691c5baca38ce6c96bbe2c2e23288e01fb2b65f1bb23102
+	sha256sums = 47f3f3d044cc0658274833022db1e7695964b1da8f37cb905882d15457212fba
+	sha256sums = faba7f18b7a5f3f77c267473ff853d90f53e8940f039329fa2c76f3f7146c6b4
+	sha256sums = 6258126c4c354ccacd0ec5f9f82c6970d576359c7aba86e44277b459d1645325
+	sha256sums = 3fcead668775cf379eab0c9ed83b317d1baa25790e0a729205a9b2dbd68b88b3
+	sha256sums = cf96ae84ef29434dd20b0f2daca6013373dd6e47c87cde3aa03abce0500a9f03
+	sha256sums = e1f5935ff59c8fec646878794a789a20e7d23269ea1ea0b95774d25cad5f7038
+	sha256sums = aa491e99435618daed147fc1e7ff9038c11f9656fef2d21397fa0b0fb9cb5a98
+	sha256sums = 5d0c4f261d36707f926fa9ef9a39349f1cccac8ae6443a8f8571c1625eb90c41
+	sha256sums = 1a1e2859649a95beef8dba22e8c77735652a212bc88a9bb4dfe1458667dcabbc
+	sha256sums = 792d29bbb3fdcfdf21face515e6b9fba1a14ee7bdc82f0cff9620592925425c9
+	sha256sums = 0ca8652cf0d05035abe519c2f4c4cdffbd9032f1cbff7f85d85535fbfc48c484
+	sha256sums = 12081574c11ef21850e9d2cf62580216296a6b7af48f679e6c28e05a376d1f3d
+	sha256sums = 0f27ab5434870f31886d7c958ced4ff335a09a1080637fb50afdf95db19e3442
+	sha256sums = 0c7f1847c2a818019123e8d575833774d99fb5f0c36870517ebef9c036948cb7
+	sha256sums = 88cdf771889253831a8873b3234e80cd0b6604bd1fc31a93cff36fa9c2281159
+	sha256sums = af81f653b73270d4b8f9d1e92ecf39821498c08f4ca5c69872e39bac90b40083
+	sha256sums = dafb0e7267453bda1ecae862958ed72819f83ddb4c9469c4d14fa057b5ab1894
+	sha256sums = 409ee4de1d8d203c839118b398d508788cdd270ec9295b3c5375ac33f39c12af
+	sha256sums = 92fe0e99dea519a56b80321646b7b2b674564f4e8d036cbbf4d98e8588531720
+	sha256sums = d88e3663b3e3f4cd7765bc50ba172329001f2611aa798e79dd2eabb97b796fa7
+	sha256sums = 9f58ce3d45baf6796965aa79109af62c330f82b97d320bb5d7bbbdea0e579a92
+	sha256sums = 0debfc572068aeab2fa4e6e7ba45fc14a402fa735423cc9bbfc5ce94a8cd074d
+	sha256sums = 1a7d08a586c05f35cee816b3a6a4ad807f21d0d8cd04eb4024997b0e89737d2f
+	sha256sums = 5b972e6c8608370be3630ae4c2dc55180f46ca168c1ffdb9b5c366069442df50
+	sha256sums = 63e3cc92fb9b5b9181082eb8ba1574a11e4c36272d10930c4bd7610fed17308a
+	sha256sums = f2c195369475a96823b84aa6e7eefa244f6c0e612432daefc41b7dac54e2ec96
+	sha256sums = 226c637dc8bcee8e7343f36b4dab6574f131417392607d90d5f4c624feedbc81
+	sha256sums = 1578ca03e489a68b8c7b8372139b83637583462b66a9187b1b268ca4605b9d6f
+	sha256sums = d35ced39f3c8a14b2bfc809222d0913c13f22d9ad93bfff63038bcd31b824fc3
+	sha256sums = 5e773f290e8f079e841d694a35c4424c80147e58a5428e6bc8fe072635f6e605
+	sha256sums = 66b8f66432b1325861b5f411c71ec49fa171d9a0063bf958242ddde6ce09c12f
+	sha256sums = 2340563cc0c1f3d1327b7d5f91f6506a20ec4563e608d288e01f33e9338b33bb
+	sha256sums = 9c888babaaf59afc855d944e8b26ab573d5e80026dc3bc8dc64720b8f5bb27a2
+	sha256sums = 4115687220092dd375e0cd9e8c36415fa6f1de84de2527796ad69776e1258d8e
+	sha256sums = f90cb311a300832f764a36141fe4ffbda8d3303787bcc12805acc09066c7ba75
+	sha256sums = cc74c39e0133905a1f4f264590b44282df4231b73972e7a9708b311e46e00f88
+	sha256sums = fe2f23319ca61ecb2fac8e586ad71fe36ba340fd4f5c4d0372d0e119d5c264e0
+	sha256sums = 07db0f4f83ec397994c4ef55476ebd6d64c2bd734800ae2eccdb52c37d5b9ce5
+	sha256sums = 4070e77bf7afd9fb949067f63c3580d1f5badacfe4c2ab187129ba20446efd04
+	sha256sums = 9c8de69ad47af04565a89920c08f44694f97d7a16f8f23610e5beaf9f38cb71c
+	sha256sums = 25906418111df0d29db783092d94148e130592d722393ad4bd76809c6f63f9bd
+	sha256sums = 698e598c6f94a46eb9a26020a74d8904def28553157712af8afc3e809771ff25
+	sha256sums = 9341676174943fbc5268e023c3e572171289fc4748401723a6dcaef50f793dcd
+	sha256sums = 67fa63d57094af85997660e1a95ebfa448d3f7446635db4a1bb81e0f2b260f0a
+	sha256sums = 7b32c27a5513c451032132fe5dc724de23d3b0738a0609a96bd44deee1d46681
+	sha256sums = 9595fd0fb65cbd6a152411617d7564e1f43a76bccb19e19b855c64184d87e707
+	sha256sums = 33810d30dcd83520e16e0be2ddc1eec0dc2c3154f32c8d103c2988a43f7ada78
+	sha256sums = e475d42b746955422ff9e905354091d0b17cdb2c8989cc6beb6470e76a4aa1dd
+	sha256sums = 1252f10981671a61cdcd6c492bd7aa4b1556ddd0689ec22f1de715fdadf701d6
+	sha256sums = 9010695b87eef676b62ec429879972c135987dab6eb53b0a4edf1b5a7cb0bb8b
+	sha256sums = 3d55fa9e1d628aed3e127b6fb4d3dd47b7ada7b865f683f52e21a51043827479
+	sha256sums = d1c16289a7869f143d72e6d574d4f27f439fd2fd027064dcce1dd6a6aee75d00
+	sha256sums = 1f3ed3b9c74a3553539687d0797fd29e202e5c00dd465df443420bea36888e4d
+	sha256sums = 9dcca3fb5b28e14b6c6a03310280c2f8961a92904b879b72de8b92b12ff2fa33
+	sha256sums = 0c82b35ab74b47cb90e37dcffa27a341339567403aa59b7866bee77251878e13
+	sha256sums = 4af87c5435bb96a3ecf43ceaa7e6b13eb56d6956359cca7aea15ce5f3f616a8f
+	sha256sums = 5e18da3518ae79d2597968957b2ef055651b7a43167e92ffa12312a45b9e457a
+	sha256sums = d42b085e33a0961dcc74d9484e67bed481f6a626d9598b0e6d9bae54dd5205ba
+	sha256sums = 99995f0ca85ab0e85bd291e5336657df41409a48ca5439dcaf162d8b11ac0ec6
+	sha256sums = dc1206af7485794e1644097b08736e39c8fa50296e514561f8805c6d28b58925
+	sha256sums = 599bbbabf9e2dc2006dd9e3e9636c4f648360726173793bf6a5a5414698762c5
+	sha256sums = 96f9e6cf2ba2d124111b56b1871df1129d4c4ef04ab3220cb51ab3b03abcdc35
+	sha256sums = c3ec8eaf660cc3373be2daf6ecd6366a5527c10a5ff27b8a46f34c9028897e2e
+	sha256sums = ec2f05a712f762e4b45f841a635d0ae96d11d92643032275e46840f51c894379
+	sha256sums = 3624b28203c972ea54b490342be74fbd99d4b4748123f9e2837a54ca01c8b392
+	sha256sums = bd724ee01b93651b4ec6ba62ba64d23e153ea7100be760ccaee4a1e6e32787a6
+	sha256sums = f33b4bea7deb64cae0fc8566c6cbdec4f5fc4163798a42849ee8b8b5e4d4c5a1
+	sha256sums = 9e83c5fecd56471313baff063796f45b5dbcba364f27c1f4316a23c1adb4aad4
+	sha256sums = 108a67f21c2bdf2dbc4838f3ba32c992325a29cb62a14b377f8a04a9ad5b2b82
+	sha256sums = 2ffd9b7236c59d739fda5c7232f0a93fa2b4ce0f59bd8e77eb7456758b89a33e
+	sha256sums = adae2b5a0271575ff86fa740b18a5003c24548fa818ab453a03cca82634e41fc
+	sha256sums = 913fc3a85ae676025bafe63880c6413ffafe42495a04a52527ee914ee9ba3ae5
+	sha256sums = d1dd4f2b315dbc5fa072eda945a665e440595b206fc3118e320210a626e610d2
+	sha256sums = 3787099f99a88ca52e8add69ed9640f23e32dc5a67bebaee3384711469a1bf46
+	sha256sums = 1da28304d237ba934e76394107e46fed0e4120fd2b257f1c667c2d11b52d959b
+	sha256sums = a9a8839d08232091a0cd381f51380a0a6ebe841f5a8e50a6047aae7b8e34c681
+	sha256sums = 02696a90c7831e3fa903df105573c5f10f4934602fb0e90c846fb44213c40b27
+	sha256sums = d67105e55534b8ef8fa45c70b6bae7c65466ac3c714b7bb3d22a37ce6dbc0502
+	sha256sums = 21ca5d09a4697ec15ee17bc499818a6381d1b68e80818ede1c4b44591b0333ec
+	sha256sums = ea4c7e577d206db6e28fbe6ddecd0b765783aced2e6508366c0a32cd3c45bab9
+	sha256sums = 0c9106a2bef658f02b2312d081faad6ba8a72bbb5b4ee1cae7d0a95e4ef53f8f
+	sha256sums = 04a61e218b3a10ec3cf58e3fe12fb2ea23610f03889d19b31b8ccb3b078efd6e
+	sha256sums = 910bc5d9e7523ccd09506bafe3fac586db5106d8cc72d77e8457fdf8b43c225e
+	sha256sums = dff04374ecda48583f80905864a7b65bbae7f2f2f2210555b28a5be1b6a75321
+	sha256sums = 548c8cd89cf822c790e4703eff53756791450eba73d267a84f3bf3eedf60bef5
+	sha256sums = 0c95ccf608d553a8685e6e483651a5fe2137b990dc71577fe8c85e687ab6fcd8
+	sha256sums = c46ef780f1bd0b8e4329ad675e7905fcad585cf7bd9a733dc484d764b5e4b4de
+	sha256sums = e67cdb017c07a7ec72a06f1062dc2f124d97527869604575fe48610ff98b581a
+	sha256sums = 716cc81139f11a2b438802d37f245f885fc9a0c69ef429a11b156145c903a932
+	sha256sums = 155d1781c8493e7dd462b37d4c55fe7bce70996f00abf2f37d768552ee848b79
+	sha256sums = 50b51a692ecacfeac38be03baa0d9a4705249440b6e929f657cecb641d782d24
+	sha256sums = 95e6378a3dc22aa512d7cebcff8b3aa4bc4f60d4eec0af02665830a245b1d11c
+	sha256sums = 9186d31e4ef8c4370f02fb74bda131f2b28f3a296c3e7c967aa0e54ad2ddd11e
+	sha256sums = 902d9c00f2d8731693272cf94fe742beec6d7351eb2603c28c76b40eca58005b
+	sha256sums = b48490fbcdad8becc160f2dab2ee4a0f67327f1e9d9ddbd96e44150175c68ca9
+	sha256sums = 0b95ed21612b4f02e65643f2029d8ce5710f49dbe8b229350bbe643167a4b83b
+	sha256sums = 785f769c6c0d465f79038ec4f4c210025043285c345041667b122296c6b961e1
+	sha256sums = 149af77a3896e6a2a93383aa6c65e4a7cac0fe90abc909802afdd55f79a0faf5
+	sha256sums = 92901c0796ece4b4a5f184d8a4e7052fb8efcd221a4197cb0fc0735314a51360
+	sha256sums = d32084e3cd53addba2814ed78ae3d461e8492733b1d4313ebeb52cfe28dcfd42
+	sha256sums = f7f5d15365443cbd8137445c3aedf8ccd31c3402f72c0fa7c16e7bf1c7977139
+	sha256sums = f8627f5f3a7c119807afc9dc66ce7cb350f905fd1db7fb6b0077552974a07515
+	sha256sums = ac3f025aa27fec77b24b443df3a69750dc9bb070a40af5180d031b81e66e328c
+	sha256sums = 34158c2a53e1aecd50ed31b8473e45f4f785532b538774a294aacd29c10e928b
+	sha256sums = 8bd1361cf5c6e4e3336cad5b37c79dcc986a46b99e4ad7d679da146dd1fdb7fe
+	sha256sums = 4ef4e78fa0174bf25cc5d0373fe716e1b712a2a398c8d57ae32cadc132e44b86
+	sha256sums = 7d89448b9cccc0e2309ce34fef37ed85fd08fd2b030422e456fc531ebb1e8f80
+	sha256sums = 0e9843225d3a70c5927fee139be5a765fa79cc94ecdbe9c4cba4aedcbb2d04ed
+	sha256sums = b25bf2ad18901b838ca61be50a67fd07d2f4337c3d7bd10f5ccfc4c8a651f35b
+	sha256sums = d9919cf95e98b4e73f12658874853470554d3c747239863210c419ec3630847c
+	sha256sums = eef45ed3746a1b9a21d9c29c533d966b4e14d08f26d673d73ceb887c049dee3f
+	sha256sums = 101537863e56de7828b4d359f9bab3080a51700dc2b491c0638a0ece31aa445e
+	sha256sums = 7b73652db3fe11febc5e701ba5029454d410492d645d46b8ce3b7a536999e729
+	sha256sums = ef69f4552722a08de47a9d362604fc8536c6e2f0a47ba2e52f83cc93b5aceb5e
+	sha256sums = fd1acfdb2f9b90c6fe6e71ea7027ac7f8252c3665e612f5701d8140432f04b99
+	sha256sums = 6aa4b91b085540dc5ba0c53899fa2e4902b3d36d2473b2c294d92a26598ba6e8
+
+pkgname = electron29

+ 6 - 0
.nvchecker.toml

@@ -0,0 +1,6 @@
+[electron29]
+source = "github"
+github = "electron/electron"
+prefix = "v"
+include_regex = "v29\\.\\d+\\.\\d+"
+use_max_tag = true

+ 634 - 0
PKGBUILD

@@ -0,0 +1,634 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: loqs <bugs-archlinux@entropy-collector.net>
+# Contributor: kxxt <rsworktech@outlook.com>
+
+# https://releases.electronjs.org/
+# https://gitlab.com/Matt.Jolly/chromium-patches/-/tags
+
+# Note: source array can be synced with an Electron release after updating $pkgver with:
+# bash -c 'source PKGBUILD; _update_sources'
+
+pkgver=29.3.0
+_gcc_patches=122-3
+pkgrel=1
+_major_ver=${pkgver%%.*}
+pkgname="electron${_major_ver}"
+pkgdesc='Build cross platform desktop apps with web technologies'
+arch=(x86_64)
+url='https://electronjs.org'
+license=(MIT BSD-3-Clause)
+depends=(c-ares
+         gcc-libs # libgcc_s.so
+         glibc # libc.so libm.so
+         gtk3 libgtk-3.so
+         libevent
+         libffi libffi.so
+         libpulse libpulse.so
+         nss # libnss3.so
+         zlib libz.so)
+makedepends=(clang
+             git
+             gn
+             gperf
+             harfbuzz-icu
+             http-parser
+             java-runtime-headless
+             libnotify
+             libva
+             lld
+             llvm
+             ninja
+             # Electron ships a vendored nodejs. Meanwhile the npm dependency pulls in nodejs whith is Arch's freshest version.
+             # Pinning the closest LTS here makes the build environment more consistent with the vendored copy.
+             nodejs-lts-iron
+             npm
+             patchutils
+             pciutils
+             pipewire
+             python
+             python-httplib2
+             python-pyparsing
+             python-requests
+             python-six
+             rust
+             qt5-base
+             wget
+             yarn)
+optdepends=('kde-cli-tools: file deletion support (kioclient5)'
+            'pipewire: WebRTC desktop sharing under Wayland'
+            'qt5-base: enable Qt5 with --enable-features=AllowQt'
+            'gtk4: for --gtk-version=4 (GTK4 IME might work better on Wayland)'
+            'trash-cli: file deletion support (trash-put)'
+            'xdg-utils: open URLs with desktop’s default (xdg-email, xdg-open)')
+options=('!lto') # Electron adds its own flags for ThinLTO
+source=("git+https://github.com/electron/electron.git#tag=v$pkgver"
+        https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/$_gcc_patches/chromium-patches-$_gcc_patches.tar.bz2
+        # Chromium
+        support-ICU-74-in-LazyTextBreakIterator.patch
+        drop-flag-unsupported-by-clang17.patch
+        use-system-libraries-in-node.patch
+        compiler-rt-adjust-paths.patch
+        # Electron
+        default_app-icon.patch
+        electron-launcher.sh
+        electron.desktop
+        jinja-python-3.10.patch
+        makepkg-source-roller.py
+        # BEGIN managed sources
+        chromium-mirror::git+https://github.com/chromium/chromium.git#tag=122.0.6261.156
+        chromium-mirror_third_party_nan::git+https://github.com/nodejs/nan.git#commit=e14bdcd1f72d62bca1d541b66da43130384ec213
+        chromium-mirror_third_party_electron_node::git+https://github.com/nodejs/node.git#tag=v20.9.0
+        chromium-mirror_third_party_engflow-reclient-configs::git+https://github.com/EngFlow/reclient-configs.git#commit=955335c30a752e9ef7bff375baab5e0819b6c00d
+        chromium-mirror_third_party_clang-format_script::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git#commit=e5337933f2951cacd3aeacd238ce4578163ca0b9
+        chromium-mirror_third_party_libc++_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git#commit=28aa23ffb4c7344914a5b4ac7169f12e5a12333f
+        chromium-mirror_third_party_libc++abi_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git#commit=9986707a5f2fc6d5d1ffa7f224a032bdd45c95fd
+        chromium-mirror_third_party_libunwind_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git#commit=f400fdb561d4416b59b8f8a33d8ec8b79da60495
+        chromium-mirror_chrome_test_data_perf_canvas_bench::git+https://chromium.googlesource.com/chromium/canvas_bench.git#commit=a7b40ea5ae0239517d78845a5fc9b12976bfc732
+        chromium-mirror_chrome_test_data_perf_frame_rate_content::git+https://chromium.googlesource.com/chromium/frame_rate/content.git#commit=c10272c88463efeef6bb19c9ec07c42bc8fe22b9
+        chromium-mirror_chrome_test_data_xr_webvr_info::git+https://chromium.googlesource.com/external/github.com/toji/webvr.info.git#commit=c58ae99b9ff9e2aa4c524633519570bf33536248
+        chromium-mirror_media_cdm_api::git+https://chromium.googlesource.com/chromium/cdm.git#commit=fef0b5aa1bd31efb88dfab804bdbe614f3d54f28
+        chromium-mirror_native_client::git+https://chromium.googlesource.com/native_client/src/native_client.git#commit=225f880e2de2a2d2b33fbdad55ca27eca3cdc103
+        chromium-mirror_net_third_party_quiche_src::git+https://quiche.googlesource.com/quiche.git#commit=0e39ce016ee1ec8271aa7216d547917c239db525
+        chromium-mirror_third_party_angle::git+https://chromium.googlesource.com/angle/angle.git#commit=f9bad5e27d61e2ab6a7504b1793be5aa14eb1414
+        chromium-mirror_third_party_anonymous_tokens_src::git+https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git#commit=d024f05b39e21bb2a0b8205a7ce72b1b185b84c2
+        chromium-mirror_third_party_content_analysis_sdk_src::git+https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git#commit=9a408736204513e0e95dd2ab3c08de0d95963efc
+        chromium-mirror_third_party_dav1d_libdav1d::git+https://chromium.googlesource.com/external/github.com/videolan/dav1d.git#commit=47107e384bd1dc25674acf04d000a8cdc6195234
+        chromium-mirror_third_party_dawn::git+https://dawn.googlesource.com/dawn.git#commit=6a6719ee09f1078356fdd31c69061e07b5c61c2d
+        chromium-mirror_third_party_highway_src::git+https://chromium.googlesource.com/external/github.com/google/highway.git#commit=8f20644eca693cfb74aa795b0006b6779c370e7a
+        chromium-mirror_third_party_google_benchmark_src::git+https://chromium.googlesource.com/external/github.com/google/benchmark.git#commit=b177433f3ee2513b1075140c723d73ab8901790f
+        chromium-mirror_third_party_boringssl_src::git+https://boringssl.googlesource.com/boringssl.git#commit=414f69504d30d0848b69f6453ea7fb5e88004cb4
+        chromium-mirror_third_party_breakpad_breakpad::git+https://chromium.googlesource.com/breakpad/breakpad.git#commit=62ecd463583d09eb7d15b1d410055f30b2c7bcb4
+        chromium-mirror_third_party_cast_core_public_src::git+https://chromium.googlesource.com/cast_core/public.git#commit=71f51fd6fa45fac73848f65421081edd723297cd
+        chromium-mirror_third_party_catapult::git+https://chromium.googlesource.com/catapult.git#commit=ab03292694695864b523636060e2a96b2c9b2df2
+        chromium-mirror_third_party_ced_src::git+https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git#commit=ba412eaaacd3186085babcd901679a48863c7dd5
+        chromium-mirror_third_party_chromium-variations::git+https://chromium.googlesource.com/chromium-variations.git#commit=d0dcd8802c22c1ac4a7d112782a4c75f0c6ca8ee
+        chromium-mirror_third_party_cld_3_src::git+https://chromium.googlesource.com/external/github.com/google/cld_3.git#commit=b48dc46512566f5a2d41118c8c1116c4f96dc661
+        chromium-mirror_third_party_colorama_src::git+https://chromium.googlesource.com/external/colorama.git#commit=3de9f013df4b470069d03d250224062e8cf15c49
+        chromium-mirror_third_party_cpu_features_src::git+https://chromium.googlesource.com/external/github.com/google/cpu_features.git#commit=936b9ab5515dead115606559502e3864958f7f6e
+        chromium-mirror_third_party_cpuinfo_src::git+https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git#commit=76cc10d627add77922dc24521b332a055a4d6d77
+        chromium-mirror_third_party_crc32c_src::git+https://chromium.googlesource.com/external/github.com/google/crc32c.git#commit=fa5ade41ee480003d9c5af6f43567ba22e4e17e6
+        chromium-mirror_third_party_cros_system_api::git+https://chromium.googlesource.com/chromiumos/platform2/system_api.git#commit=12d5e386005a211570cfdf9849d2fa6a3b38594b
+        chromium-mirror_third_party_crossbench::git+https://chromium.googlesource.com/crossbench.git#commit=1983b3f517da56c35c91296467458f71ad5b9340
+        chromium-mirror_third_party_depot_tools::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git#commit=6fc0c97ab284021b72e3bc962f7fa879ffcad65b
+        chromium-mirror_third_party_devtools-frontend_src::git+https://chromium.googlesource.com/devtools/devtools-frontend.git#commit=3fa1fc736f46022f45c7ba7d817d1df1519c55d7
+        chromium-mirror_third_party_dom_distiller_js_dist::git+https://chromium.googlesource.com/chromium/dom-distiller/dist.git#commit=199de96b345ada7c6e7e6ba3d2fa7a6911b8767d
+        chromium-mirror_third_party_eigen3_src::git+https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git#commit=454f89af9d6f3525b1df5f9ef9c86df58bf2d4d3
+        chromium-mirror_third_party_farmhash_src::git+https://chromium.googlesource.com/external/github.com/google/farmhash.git#commit=816a4ae622e964763ca0862d9dbd19324a1eaf45
+        chromium-mirror_third_party_ffmpeg::git+https://chromium.googlesource.com/chromium/third_party/ffmpeg.git#commit=17525de887d54b970ffdd421a0879c1db1952307
+        chromium-mirror_third_party_flac::git+https://chromium.googlesource.com/chromium/deps/flac.git#commit=689da3a7ed50af7448c3f1961d1791c7c1d9c85c
+        chromium-mirror_third_party_flatbuffers_src::git+https://chromium.googlesource.com/external/github.com/google/flatbuffers.git#commit=bcb9ef187628fe07514e57756d05e6a6296f7dc5
+        chromium-mirror_third_party_fontconfig_src::git+https://chromium.googlesource.com/external/fontconfig.git#commit=2fb3419a92156569bc1ec707401258c922cd0d99
+        chromium-mirror_third_party_fp16_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git#commit=0a92994d729ff76a58f692d3028ca1b64b145d91
+        chromium-mirror_third_party_gemmlowp_src::git+https://chromium.googlesource.com/external/github.com/google/gemmlowp.git#commit=13d57703abca3005d97b19df1f2db731607a7dc2
+        chromium-mirror_third_party_grpc_src::git+https://chromium.googlesource.com/external/github.com/grpc/grpc.git#commit=822dab21d9995c5cf942476b35ca12a1aa9d2737
+        chromium-mirror_third_party_freetype_src::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2.git#commit=57617782464411201ce7bbc93b086c1b4d7d84a5
+        chromium-mirror_third_party_freetype-testing_src::git+https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git#commit=7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f
+        chromium-mirror_third_party_fxdiv_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git#commit=63058eff77e11aa15bf531df5dd34395ec3017c8
+        chromium-mirror_third_party_harfbuzz-ng_src::git+https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git#commit=155015f4bec434ecc2f94621665844218f05ce51
+        chromium-mirror_third_party_emoji-segmenter_src::git+https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git#commit=9ba6d25d0d9313569665d4a9d2b34f0f39f9a50e
+        chromium-mirror_third_party_ots_src::git+https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git#commit=46bea9879127d0ff1c6601b078e2ce98e83fcd33
+        chromium-mirror_third_party_libgav1_src::git+https://chromium.googlesource.com/codecs/libgav1.git#commit=35fea10bfdb790cf131ae74a4ee346905f34dc3c
+        chromium-mirror_third_party_googletest_src::git+https://chromium.googlesource.com/external/github.com/google/googletest.git#commit=af29db7ec28d6df1c7f0f745186884091e602e07
+        chromium-mirror_third_party_hunspell_dictionaries::git+https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git#commit=41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e
+        chromium-mirror_third_party_icu::git+https://chromium.googlesource.com/chromium/deps/icu.git#commit=bad7ddbf921358177e56fd723c2f59f8041a370f
+        chromium-mirror_third_party_jsoncpp_source::git+https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git#commit=42e892d96e47b1f6e29844cc705e148ec4856448
+        chromium-mirror_third_party_leveldatabase_src::git+https://chromium.googlesource.com/external/leveldb.git#commit=068d5ee1a3ac40dabd00d211d5013af44be55bea
+        chromium-mirror_third_party_libFuzzer_src::git+https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git#commit=758bd21f103a501b362b1ca46fa8fcb692eaa303
+        chromium-mirror_third_party_fuzztest_src::git+https://chromium.googlesource.com/external/github.com/google/fuzztest.git#commit=12e7428ab0847b1d1dc6c4b89203adfd1f16a1ad
+        chromium-mirror_third_party_libaddressinput_src::git+https://chromium.googlesource.com/external/libaddressinput.git#commit=e8712e415627f22d0b00ebee8db99547077f39bd
+        chromium-mirror_third_party_libaom_source_libaom::git+https://aomedia.googlesource.com/aom.git#commit=1a72ea323d65e46eb90d08d492c04891abb91926
+        chromium-mirror_third_party_libavif_src::git+https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git#commit=e170c9366090cdc389d5f47ee3c2d7db71d263bc
+        chromium-mirror_third_party_libavifinfo_src::git+https://aomedia.googlesource.com/libavifinfo.git#commit=b496868f7c3fd17dfeeecc0364fe37e19edd548a
+        chromium-mirror_third_party_nearby_src::git+https://chromium.googlesource.com/external/github.com/google/nearby-connections.git#commit=4bdb5000ee7919724530cf89d50969e7b0ed58a7
+        chromium-mirror_third_party_beto-core_src::git+https://beto-core.googlesource.com/beto-core.git#commit=4d202dab960a0b6a6e4757ab4393945aca5a09db
+        chromium-mirror_third_party_securemessage_src::git+https://chromium.googlesource.com/external/github.com/google/securemessage.git#commit=fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84
+        chromium-mirror_third_party_speedometer_v3.0::git+https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git#commit=2ee210ca20767c949c4ff29bdffa1138eb0501fe
+        chromium-mirror_third_party_ukey2_src::git+https://chromium.googlesource.com/external/github.com/google/ukey2.git#commit=0275885d8e6038c39b8a8ca55e75d1d4d1727f47
+        chromium-mirror_third_party_cros-components_src::git+https://chromium.googlesource.com/external/google3/cros_components.git#commit=ab7bdff32543991f52872c25cecf1f926702dfe3
+        chromium-mirror_third_party_libdrm_src::git+https://chromium.googlesource.com/chromiumos/third_party/libdrm.git#commit=98e1db501173303e58ef6a1def94ab7a2d84afc1
+        chromium-mirror_third_party_expat_src::git+https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git#commit=441f98d02deafd9b090aea568282b28f66a50e36
+        chromium-mirror_third_party_libipp_libipp::git+https://chromium.googlesource.com/chromiumos/platform2/libipp.git#commit=2209bb84a8e122dab7c02fe66cc61a7b42873d7f
+        chromium-mirror_third_party_libjpeg_turbo::git+https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git#commit=9b894306ec3b28cea46e84c32b56773a98c483da
+        chromium-mirror_third_party_liblouis_src::git+https://chromium.googlesource.com/external/liblouis-github.git#commit=9700847afb92cb35969bdfcbbfbbb74b9c7b3376
+        chromium-mirror_third_party_libphonenumber_dist::git+https://chromium.googlesource.com/external/libphonenumber.git#commit=140dfeb81b753388e8a672900fb7a971e9a0d362
+        chromium-mirror_third_party_libprotobuf-mutator_src::git+https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git#commit=a304ec48dcf15d942607032151f7e9ee504b5dcf
+        chromium-mirror_third_party_libsrtp::git+https://chromium.googlesource.com/chromium/deps/libsrtp.git#commit=5b7c744eb8310250ccc534f3f86a2015b3887a0a
+        chromium-mirror_third_party_libsync_src::git+https://chromium.googlesource.com/aosp/platform/system/core/libsync.git#commit=f4f4387b6bf2387efbcfd1453af4892e8982faf6
+        chromium-mirror_third_party_libvpx_source_libvpx::git+https://chromium.googlesource.com/webm/libvpx.git#commit=893c9f6d070cc3bd8503152480089673f57fdf76
+        chromium-mirror_third_party_libwebm_source::git+https://chromium.googlesource.com/webm/libwebm.git#commit=e4fbea0c9751ae8aa86629b197a28d8276a2b0da
+        chromium-mirror_third_party_libwebp_src::git+https://chromium.googlesource.com/webm/libwebp.git#commit=ca332209cb5567c9b249c86788cb2dbf8847e760
+        chromium-mirror_third_party_libyuv::git+https://chromium.googlesource.com/libyuv/libyuv.git#commit=04821d1e7d60845525e8db55c7bcd41ef5be9406
+        chromium-mirror_third_party_lss::git+https://chromium.googlesource.com/linux-syscall-support.git#commit=ce877209e11aa69dcfffbd53ef90ea1d07136521
+        chromium-mirror_third_party_material_color_utilities_src::git+https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git#commit=bec7bab60e6431201a82761ea4482b98b54c2af9
+        chromium-mirror_third_party_minigbm_src::git+https://chromium.googlesource.com/chromiumos/platform/minigbm.git#commit=3018207f4d89395cc271278fb9a6558b660885f5
+        chromium-mirror_third_party_nasm::git+https://chromium.googlesource.com/chromium/deps/nasm.git#commit=f477acb1049f5e043904b87b825c5915084a9a29
+        chromium-mirror_third_party_neon_2_sse_src::git+https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git#commit=a15b489e1222b2087007546b4912e21293ea86ff
+        chromium-mirror_third_party_openh264_src::git+https://chromium.googlesource.com/external/github.com/cisco/openh264.git#commit=09a4f3ec842a8932341b195c5b01e141c8a16eb7
+        chromium-mirror_third_party_openscreen_src::git+https://chromium.googlesource.com/openscreen.git#commit=b70c552bedf189fc238e98f8f69e6c30e7925207
+        chromium-mirror_third_party_openxr_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenXR-SDK.git#commit=95fe35ffb383710a6e0567e958ead9a3b66e930c
+        chromium-mirror_third_party_pdfium::git+https://pdfium.googlesource.com/pdfium.git#commit=4c4f9ab25dab142d7888f3258ab54df24b97b44f
+        chromium-mirror_third_party_perfetto::git+https://android.googlesource.com/platform/external/perfetto.git#commit=1e15d01da5d619ca617dcdd870efe3c35046a89c
+        chromium-mirror_third_party_pthreadpool_src::git+https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git#commit=4fe0e1e183925bf8cfa6aae24237e724a96479b8
+        chromium-mirror_third_party_pyelftools::git+https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git#commit=19b3e610c86fcadb837d252c794cb5e8008826ae
+        chromium-mirror_third_party_quic_trace_src::git+https://chromium.googlesource.com/external/github.com/google/quic-trace.git#commit=caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc
+        chromium-mirror_third_party_pywebsocket3_src::git+https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git#commit=50602a14f1b6da17e0b619833a13addc6ea78bc2
+        chromium-mirror_third_party_re2_src::git+https://chromium.googlesource.com/external/github.com/google/re2.git#commit=826ad10e58a042faf57d7c329b0fd0a04b797e0b
+        chromium-mirror_third_party_ruy_src::git+https://chromium.googlesource.com/external/github.com/google/ruy.git#commit=cd7b92695b5d3f0c9ff65b865c2a1e19b99d766d
+        chromium-mirror_third_party_skia::git+https://skia.googlesource.com/skia.git#commit=8464f41cf051974e499be9caeab3243506e025c2
+        chromium-mirror_third_party_smhasher_src::git+https://chromium.googlesource.com/external/smhasher.git#commit=e87738e57558e0ec472b2fc3a643b838e5b6e88f
+        chromium-mirror_third_party_snappy_src::git+https://chromium.googlesource.com/external/github.com/google/snappy.git#commit=c9f9edf6d75bb065fa47468bf035e051a57bec7c
+        chromium-mirror_third_party_sqlite_src::git+https://chromium.googlesource.com/chromium/deps/sqlite.git#commit=a5270ae741714a5aad187ba8dcd8bddca39f791f
+        chromium-mirror_third_party_swiftshader::git+https://swiftshader.googlesource.com/SwiftShader.git#commit=2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f
+        chromium-mirror_third_party_text-fragments-polyfill_src::git+https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git#commit=c036420683f672d685e27415de0a5f5e85bdc23f
+        chromium-mirror_third_party_tflite_src::git+https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git#commit=296f1e3cce03308c7fd5cdc7a76fbc3e41ec5214
+        chromium-mirror_third_party_vulkan-deps::git+https://chromium.googlesource.com/vulkan-deps.git#commit=c00c99b8e979ca1b1eba221a60cb1e1d3b12f956
+        chromium-mirror_third_party_vulkan_memory_allocator::git+https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git#commit=56300b29fbfcc693ee6609ddad3fdd5b7a449a21
+        chromium-mirror_third_party_wayland_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git#commit=af7f44122127b86a8c74cb7432909180f4899eaa
+        chromium-mirror_third_party_wayland-protocols_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git#commit=681c33c8547d6aefe24455ba2bffe1c5ae11fee5
+        chromium-mirror_third_party_wayland-protocols_kde::git+https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git#commit=0b07950714b3a36c9b9f71fc025fc7783e82926e
+        chromium-mirror_third_party_wayland-protocols_gtk::git+https://chromium.googlesource.com/external/github.com/GNOME/gtk.git#commit=40ebed3a03aef096addc0af09fec4ec529d882a0
+        chromium-mirror_third_party_webdriver_pylib::git+https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git#commit=fc5e7e70c098bfb189a9a74746809ad3c5c34e04
+        chromium-mirror_third_party_webgl_src::git+https://chromium.googlesource.com/external/khronosgroup/webgl.git#commit=f4bf599a8b575df685c31d9c4729a70a04e377ed
+        chromium-mirror_third_party_webgpu-cts_src::git+https://chromium.googlesource.com/external/github.com/gpuweb/cts.git#commit=e082b08475761a2ba6a3349dfea72f704c8b68d4
+        chromium-mirror_third_party_webrtc::git+https://webrtc.googlesource.com/src.git#commit=6b419a0536b1a0ccfff3682f997c6f19bcbd9bd8
+        chromium-mirror_third_party_wuffs_src::git+https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git#commit=e3f919ccfe3ef542cfc983a82146070258fb57f8
+        chromium-mirror_third_party_weston_src::git+https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git#commit=ccf29cb237c3ed09c5f370f35239c93d07abfdd7
+        chromium-mirror_third_party_xdg-utils::git+https://chromium.googlesource.com/chromium/deps/xdg-utils.git#commit=cb54d9db2e535ee4ef13cc91b65a1e2741a94a44
+        chromium-mirror_third_party_xnnpack_src::git+https://chromium.googlesource.com/external/github.com/google/XNNPACK.git#commit=a68aa0a24b0d3e1c75f2f7c0915b70121cee0470
+        chromium-mirror_tools_page_cycler_acid3::git+https://chromium.googlesource.com/chromium/deps/acid3.git#commit=a926d0a32e02c4c03ae95bb798e6c780e0e184ba
+        chromium-mirror_third_party_zstd_src::git+https://chromium.googlesource.com/external/github.com/facebook/zstd.git#commit=050fec5c378d676fede8b2171ec5e84f6afa1504
+        chromium-mirror_v8::git+https://chromium.googlesource.com/v8/v8.git#commit=ddb4756a90fb7d89dc789859f8b2a3639d8de125
+        chromium-mirror_third_party_angle_third_party_glmark2_src::git+https://chromium.googlesource.com/external/github.com/glmark2/glmark2.git#commit=ca8de51fedb70bace5351c6b002eb952c747e889
+        chromium-mirror_third_party_angle_third_party_rapidjson_src::git+https://chromium.googlesource.com/external/github.com/Tencent/rapidjson.git#commit=781a4e667d84aeedbeb8184b7b62425ea66ec59f
+        chromium-mirror_third_party_angle_third_party_VK-GL-CTS_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git#commit=0f6fd3de81102058dc2ae299af1ad5287d2145dd
+        chromium-mirror_third_party_dawn_buildtools::git+https://chromium.googlesource.com/chromium/src/buildtools.git#commit=48ab3bd053bfe2fef4635d7cb1861f8923167b96
+        chromium-mirror_third_party_dawn_build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=df6338f68f66357d27ea7f0354d50216c8c74473
+        chromium-mirror_third_party_dawn_tools_clang::git+https://chromium.googlesource.com/chromium/src/tools/clang.git#commit=419fc5706504be3cc8d17cc61bdc6b45226927e9
+        chromium-mirror_third_party_dawn_testing::git+https://chromium.googlesource.com/chromium/src/testing.git#commit=035a9b18047370df7403758b006e6c9696d6b84d
+        chromium-mirror_third_party_dawn_third_party_jinja2::git+https://chromium.googlesource.com/chromium/src/third_party/jinja2.git#commit=e2d024354e11cc6b041b0cff032d73f0c7e43a07
+        chromium-mirror_third_party_dawn_third_party_markupsafe::git+https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git#commit=0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794
+        chromium-mirror_third_party_dawn_third_party_glfw::git+https://chromium.googlesource.com/external/github.com/glfw/glfw.git#commit=62e175ef9fae75335575964c845a302447c012c7
+        chromium-mirror_third_party_dawn_third_party_zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=526382e41c9c5275dc329db4328b54e4f344a204
+        chromium-mirror_third_party_dawn_third_party_abseil-cpp::git+https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp.git#commit=4ef9b33175828ea46d091e7e5ec28259d39a8ba5
+        chromium-mirror_third_party_dawn_third_party_dxc::git+https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git#commit=701a2b1da0387ac6abf73bdbaf7864b9615db033
+        chromium-mirror_third_party_dawn_third_party_dxheaders::git+https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers.git#commit=980971e835876dc0cde415e8f9bc646e64667bf7
+        chromium-mirror_third_party_dawn_third_party_khronos_OpenGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry.git#commit=5bae8738b23d06968e7c3a41308568120943ae77
+        chromium-mirror_third_party_dawn_third_party_khronos_EGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry.git#commit=7dea2ed79187cd13f76183c4b9100159b9e3e071
+        chromium-mirror_third_party_dawn_third_party_protobuf::git+https://chromium.googlesource.com/chromium/src/third_party/protobuf.git#commit=41759e11ec427e29e1a72b9401d2af3f6e02d839
+        chromium-mirror_third_party_dawn_tools_protoc_wrapper::git+https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper.git#commit=b5ea227bd88235ab3ccda964d5f3819c4e2d8032
+        chromium-mirror_third_party_dawn_third_party_partition_alloc::git+https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git#commit=67fd2f86eef40b1357387e2b0fc1eaf3c67d6ed7
+        chromium-mirror_third_party_openscreen_src_third_party_tinycbor_src::git+https://chromium.googlesource.com/external/github.com/intel/tinycbor.git#commit=d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7
+        chromium-mirror_third_party_vulkan-deps_glslang_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git#commit=57d86ab763da7b2cd1e00ecec8aa697403a8fd20
+        chromium-mirror_third_party_vulkan-deps_spirv-cross_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git#commit=b82536766d1b81631b126d1ddbe49baf42929bd3
+        chromium-mirror_third_party_vulkan-deps_spirv-headers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git#commit=7b0309708da5126b89e4ce6f19835f36dc912f2f
+        chromium-mirror_third_party_vulkan-deps_spirv-tools_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git#commit=c96fe8b943564fbab3424219d924d21cac2e877a
+        chromium-mirror_third_party_vulkan-deps_vulkan-headers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git#commit=217e93c664ec6704ec2d8c36fa116c1a4a1e2d40
+        chromium-mirror_third_party_vulkan-deps_vulkan-loader_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git#commit=0b2b71306aebf1e11304b9f961f9a29ab0234756
+        chromium-mirror_third_party_vulkan-deps_vulkan-tools_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git#commit=7c6d640a5ca3ab73c1f42d22312f672b54babfaf
+        chromium-mirror_third_party_vulkan-deps_vulkan-utility-libraries_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git#commit=4cfc176e3242b4dbdfd3f6c5680c5d8f2cb7db45
+        chromium-mirror_third_party_vulkan-deps_vulkan-validation-layers_src::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git#commit=d26b50b03815ff226e6df478b4ddc4b98d8deaee
+        # END managed sources
+        )
+sha256sums=('14613283f3e194a0636054f82a014a821656e4dcb439a3f26fb6a3adbf6171ac'
+            '7916b80d801bcc5c23cb9dd1ae820d939af3ef640dbcb2a3c8d6780dcf6ba7a3'
+            '8c256b2a9498a63706a6e7a55eadbeb8cc814be66a75e49aec3716c6be450c6c'
+            '3bd35dab1ded5d9e1befa10d5c6c4555fe0a76d909fb724ac57d0bf10cb666c1'
+            'ff588a8a4fd2f79eb8a4f11cf1aa151298ffb895be566c57cc355d47f161f53f'
+            'b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961'
+            'dd2d248831dd4944d385ebf008426e66efe61d6fdf66f8932c963a12167947b4'
+            'b0ac3422a6ab04859b40d4d7c0fd5f703c893c9ec145c9894c468fbc0a4d457c'
+            '4484200d90b76830b69eea3a471c103999a3ce86bb2c29e6c14c945bf4102bae'
+            '55dbe71dbc1f3ab60bf1fa79f7aea7ef1fe76436b1d7df48728a1f8227d2134e'
+            '3ae82375ba212c31fd4ba6f1fa4e2445eeca8eb8c952176131ad57c0258db224'
+            '3de51be7a535e69910fb5d8c7c8efd4fef48df988128c182f476c1a56d40f8bd'
+            '0b7a546ee6913c49519c10c293ac530ff381641a8a465fa2e184d6dbe0fb784d'
+            '4781df343cf17fe7647c82219a26e39ca47e6a83d37ecd26ae5a5092a93bd965'
+            '3522166c3ca75316a172b7cc4fe12bba9367e30fed16df8193ede2e236dca8c5'
+            '1a1204e831ce56a1ea506037aae01417cf5157b5fb0e26a5e3310227ebd973cc'
+            '273c7ae3bba146fa43ce73e98514026725245554f8888ca483f338051c6a9871'
+            'ee43d3902444954e8091b453d2150ef37ba64f05093d8c8910ec7dbabf7f93b3'
+            '5d060fc2458decb3ad8c43c29de640d15772fcb6affe7ff79e9acc2d424f362a'
+            '5abf726ce9e19c0b0e7818a7ced615a1a6d16f306e7315b9e6db53118c0669b5'
+            '045eb27642ac8f49b52efec7c52bb6ea3c908552ffadc50449a23b27da7a4737'
+            '8a8c21768a1f3764e6887cfc907dd857e9fc00a1269dd858e2ba98d70aef889d'
+            'a62dd76d5ebcae2e2302509f057d21c35ffd69549ee7cdac47b2a85616dcc9be'
+            '666ab0ad02d7ca8e38f432310649a7ef3a20c70c4da1b09267dab398066d1618'
+            'de562fecf27132a60844f417ef8dfc54fd06d6e52fedb96cf1fc000b4d6cf216'
+            '8c5cbc839e6e3f1832da9d68735390b22056cb0d2cf167677b4cc85991c55373'
+            'd604e4c22318c21645aea18069fffb70a33409ae47ad248462f5682160df3d19'
+            '89a368f0652d857d38402d6f3c5cded3c1757230ab7abe01df850a7bf8359119'
+            '14bc49da17d7be84a99e41d414723b0ad2f2f6193d91d63995d6acb1e3debfe0'
+            '4f4d2eeda3cb9363d03f6be3edd0c2f8ffbf87526f83b723000613e6a09587e6'
+            'd6045d4ebf49f14b994e58fbd2a84f95ca43a23f627db19b20cbfad1a0f49016'
+            '580078d0e6e5dfd1ae1f935978e04270012fb594ed4ce435bf98963d4541715a'
+            'c45a272506bb20e632fc7c36cc2bcabc51d5732f379772880ccdb7ea55c2a342'
+            'd27aeb74a01e92fdc4afc40a36c4dfa1b87f0ed041d01cf94c60598e8429d280'
+            'af24f30b90d5942ecb89b9e5f373de70ec16ce590788a03a8d21f714bbca7337'
+            '853d9b67a6ee2ead94815ced150ae261b1386ce044d5e85db481e9aa999448f4'
+            '8b97c25874c17644300d1cbe6ac1fceb705bf18297e27699ba20497fc47ae239'
+            '68a96daf56308815f789ac68377ba242ef8fd7150a59ab5629bdd30c9daacb50'
+            'e6a28c25e3d93c9c37414149ff44ac7a1bbb4d8a167061f8ee9679dc065af1bb'
+            '9e950d9f0bf7f0b52de6744de0922583b4b32281e87f0488c2d1cfc533665aa5'
+            '6125206b56f365874ba812038dbcd4271f8a73235ab4d211c42b7fd2d636bbc8'
+            'fc391bdf81998185f93f1f40e0d29265d3374239159e003fe49a322033e1128a'
+            '4f5fd6719234fbc67c517e20e2170db66d37455d69bec880624a0a0304a0e91c'
+            '382e185133fa676fd4ec01d8cbdd005dd2daadf66ba9fef258b6a9109f7425c5'
+            'c978d8c0aa4f05774a64f1373ce6c31d4243f94eea9b01c0853363e0dba1c674'
+            'a02fed8c58a0454b851a86fc11501f1d31f123d36284377093efa7f7927d3daa'
+            '7c33a69ac04526d86691c5baca38ce6c96bbe2c2e23288e01fb2b65f1bb23102'
+            '47f3f3d044cc0658274833022db1e7695964b1da8f37cb905882d15457212fba'
+            'faba7f18b7a5f3f77c267473ff853d90f53e8940f039329fa2c76f3f7146c6b4'
+            '6258126c4c354ccacd0ec5f9f82c6970d576359c7aba86e44277b459d1645325'
+            '3fcead668775cf379eab0c9ed83b317d1baa25790e0a729205a9b2dbd68b88b3'
+            'cf96ae84ef29434dd20b0f2daca6013373dd6e47c87cde3aa03abce0500a9f03'
+            'e1f5935ff59c8fec646878794a789a20e7d23269ea1ea0b95774d25cad5f7038'
+            'aa491e99435618daed147fc1e7ff9038c11f9656fef2d21397fa0b0fb9cb5a98'
+            '5d0c4f261d36707f926fa9ef9a39349f1cccac8ae6443a8f8571c1625eb90c41'
+            '1a1e2859649a95beef8dba22e8c77735652a212bc88a9bb4dfe1458667dcabbc'
+            '792d29bbb3fdcfdf21face515e6b9fba1a14ee7bdc82f0cff9620592925425c9'
+            '0ca8652cf0d05035abe519c2f4c4cdffbd9032f1cbff7f85d85535fbfc48c484'
+            '12081574c11ef21850e9d2cf62580216296a6b7af48f679e6c28e05a376d1f3d'
+            '0f27ab5434870f31886d7c958ced4ff335a09a1080637fb50afdf95db19e3442'
+            '0c7f1847c2a818019123e8d575833774d99fb5f0c36870517ebef9c036948cb7'
+            '88cdf771889253831a8873b3234e80cd0b6604bd1fc31a93cff36fa9c2281159'
+            'af81f653b73270d4b8f9d1e92ecf39821498c08f4ca5c69872e39bac90b40083'
+            'dafb0e7267453bda1ecae862958ed72819f83ddb4c9469c4d14fa057b5ab1894'
+            '409ee4de1d8d203c839118b398d508788cdd270ec9295b3c5375ac33f39c12af'
+            '92fe0e99dea519a56b80321646b7b2b674564f4e8d036cbbf4d98e8588531720'
+            'd88e3663b3e3f4cd7765bc50ba172329001f2611aa798e79dd2eabb97b796fa7'
+            '9f58ce3d45baf6796965aa79109af62c330f82b97d320bb5d7bbbdea0e579a92'
+            '0debfc572068aeab2fa4e6e7ba45fc14a402fa735423cc9bbfc5ce94a8cd074d'
+            '1a7d08a586c05f35cee816b3a6a4ad807f21d0d8cd04eb4024997b0e89737d2f'
+            '5b972e6c8608370be3630ae4c2dc55180f46ca168c1ffdb9b5c366069442df50'
+            '63e3cc92fb9b5b9181082eb8ba1574a11e4c36272d10930c4bd7610fed17308a'
+            'f2c195369475a96823b84aa6e7eefa244f6c0e612432daefc41b7dac54e2ec96'
+            '226c637dc8bcee8e7343f36b4dab6574f131417392607d90d5f4c624feedbc81'
+            '1578ca03e489a68b8c7b8372139b83637583462b66a9187b1b268ca4605b9d6f'
+            'd35ced39f3c8a14b2bfc809222d0913c13f22d9ad93bfff63038bcd31b824fc3'
+            '5e773f290e8f079e841d694a35c4424c80147e58a5428e6bc8fe072635f6e605'
+            '66b8f66432b1325861b5f411c71ec49fa171d9a0063bf958242ddde6ce09c12f'
+            '2340563cc0c1f3d1327b7d5f91f6506a20ec4563e608d288e01f33e9338b33bb'
+            '9c888babaaf59afc855d944e8b26ab573d5e80026dc3bc8dc64720b8f5bb27a2'
+            '4115687220092dd375e0cd9e8c36415fa6f1de84de2527796ad69776e1258d8e'
+            'f90cb311a300832f764a36141fe4ffbda8d3303787bcc12805acc09066c7ba75'
+            'cc74c39e0133905a1f4f264590b44282df4231b73972e7a9708b311e46e00f88'
+            'fe2f23319ca61ecb2fac8e586ad71fe36ba340fd4f5c4d0372d0e119d5c264e0'
+            '07db0f4f83ec397994c4ef55476ebd6d64c2bd734800ae2eccdb52c37d5b9ce5'
+            '4070e77bf7afd9fb949067f63c3580d1f5badacfe4c2ab187129ba20446efd04'
+            '9c8de69ad47af04565a89920c08f44694f97d7a16f8f23610e5beaf9f38cb71c'
+            '25906418111df0d29db783092d94148e130592d722393ad4bd76809c6f63f9bd'
+            '698e598c6f94a46eb9a26020a74d8904def28553157712af8afc3e809771ff25'
+            '9341676174943fbc5268e023c3e572171289fc4748401723a6dcaef50f793dcd'
+            '67fa63d57094af85997660e1a95ebfa448d3f7446635db4a1bb81e0f2b260f0a'
+            '7b32c27a5513c451032132fe5dc724de23d3b0738a0609a96bd44deee1d46681'
+            '9595fd0fb65cbd6a152411617d7564e1f43a76bccb19e19b855c64184d87e707'
+            '33810d30dcd83520e16e0be2ddc1eec0dc2c3154f32c8d103c2988a43f7ada78'
+            'e475d42b746955422ff9e905354091d0b17cdb2c8989cc6beb6470e76a4aa1dd'
+            '1252f10981671a61cdcd6c492bd7aa4b1556ddd0689ec22f1de715fdadf701d6'
+            '9010695b87eef676b62ec429879972c135987dab6eb53b0a4edf1b5a7cb0bb8b'
+            '3d55fa9e1d628aed3e127b6fb4d3dd47b7ada7b865f683f52e21a51043827479'
+            'd1c16289a7869f143d72e6d574d4f27f439fd2fd027064dcce1dd6a6aee75d00'
+            '1f3ed3b9c74a3553539687d0797fd29e202e5c00dd465df443420bea36888e4d'
+            '9dcca3fb5b28e14b6c6a03310280c2f8961a92904b879b72de8b92b12ff2fa33'
+            '0c82b35ab74b47cb90e37dcffa27a341339567403aa59b7866bee77251878e13'
+            '4af87c5435bb96a3ecf43ceaa7e6b13eb56d6956359cca7aea15ce5f3f616a8f'
+            '5e18da3518ae79d2597968957b2ef055651b7a43167e92ffa12312a45b9e457a'
+            'd42b085e33a0961dcc74d9484e67bed481f6a626d9598b0e6d9bae54dd5205ba'
+            '99995f0ca85ab0e85bd291e5336657df41409a48ca5439dcaf162d8b11ac0ec6'
+            'dc1206af7485794e1644097b08736e39c8fa50296e514561f8805c6d28b58925'
+            '599bbbabf9e2dc2006dd9e3e9636c4f648360726173793bf6a5a5414698762c5'
+            '96f9e6cf2ba2d124111b56b1871df1129d4c4ef04ab3220cb51ab3b03abcdc35'
+            'c3ec8eaf660cc3373be2daf6ecd6366a5527c10a5ff27b8a46f34c9028897e2e'
+            'ec2f05a712f762e4b45f841a635d0ae96d11d92643032275e46840f51c894379'
+            '3624b28203c972ea54b490342be74fbd99d4b4748123f9e2837a54ca01c8b392'
+            'bd724ee01b93651b4ec6ba62ba64d23e153ea7100be760ccaee4a1e6e32787a6'
+            'f33b4bea7deb64cae0fc8566c6cbdec4f5fc4163798a42849ee8b8b5e4d4c5a1'
+            '9e83c5fecd56471313baff063796f45b5dbcba364f27c1f4316a23c1adb4aad4'
+            '108a67f21c2bdf2dbc4838f3ba32c992325a29cb62a14b377f8a04a9ad5b2b82'
+            '2ffd9b7236c59d739fda5c7232f0a93fa2b4ce0f59bd8e77eb7456758b89a33e'
+            'adae2b5a0271575ff86fa740b18a5003c24548fa818ab453a03cca82634e41fc'
+            '913fc3a85ae676025bafe63880c6413ffafe42495a04a52527ee914ee9ba3ae5'
+            'd1dd4f2b315dbc5fa072eda945a665e440595b206fc3118e320210a626e610d2'
+            '3787099f99a88ca52e8add69ed9640f23e32dc5a67bebaee3384711469a1bf46'
+            '1da28304d237ba934e76394107e46fed0e4120fd2b257f1c667c2d11b52d959b'
+            'a9a8839d08232091a0cd381f51380a0a6ebe841f5a8e50a6047aae7b8e34c681'
+            '02696a90c7831e3fa903df105573c5f10f4934602fb0e90c846fb44213c40b27'
+            'd67105e55534b8ef8fa45c70b6bae7c65466ac3c714b7bb3d22a37ce6dbc0502'
+            '21ca5d09a4697ec15ee17bc499818a6381d1b68e80818ede1c4b44591b0333ec'
+            'ea4c7e577d206db6e28fbe6ddecd0b765783aced2e6508366c0a32cd3c45bab9'
+            '0c9106a2bef658f02b2312d081faad6ba8a72bbb5b4ee1cae7d0a95e4ef53f8f'
+            '04a61e218b3a10ec3cf58e3fe12fb2ea23610f03889d19b31b8ccb3b078efd6e'
+            '910bc5d9e7523ccd09506bafe3fac586db5106d8cc72d77e8457fdf8b43c225e'
+            'dff04374ecda48583f80905864a7b65bbae7f2f2f2210555b28a5be1b6a75321'
+            '548c8cd89cf822c790e4703eff53756791450eba73d267a84f3bf3eedf60bef5'
+            '0c95ccf608d553a8685e6e483651a5fe2137b990dc71577fe8c85e687ab6fcd8'
+            'c46ef780f1bd0b8e4329ad675e7905fcad585cf7bd9a733dc484d764b5e4b4de'
+            'e67cdb017c07a7ec72a06f1062dc2f124d97527869604575fe48610ff98b581a'
+            '716cc81139f11a2b438802d37f245f885fc9a0c69ef429a11b156145c903a932'
+            '155d1781c8493e7dd462b37d4c55fe7bce70996f00abf2f37d768552ee848b79'
+            '50b51a692ecacfeac38be03baa0d9a4705249440b6e929f657cecb641d782d24'
+            '95e6378a3dc22aa512d7cebcff8b3aa4bc4f60d4eec0af02665830a245b1d11c'
+            '9186d31e4ef8c4370f02fb74bda131f2b28f3a296c3e7c967aa0e54ad2ddd11e'
+            '902d9c00f2d8731693272cf94fe742beec6d7351eb2603c28c76b40eca58005b'
+            'b48490fbcdad8becc160f2dab2ee4a0f67327f1e9d9ddbd96e44150175c68ca9'
+            '0b95ed21612b4f02e65643f2029d8ce5710f49dbe8b229350bbe643167a4b83b'
+            '785f769c6c0d465f79038ec4f4c210025043285c345041667b122296c6b961e1'
+            '149af77a3896e6a2a93383aa6c65e4a7cac0fe90abc909802afdd55f79a0faf5'
+            '92901c0796ece4b4a5f184d8a4e7052fb8efcd221a4197cb0fc0735314a51360'
+            'd32084e3cd53addba2814ed78ae3d461e8492733b1d4313ebeb52cfe28dcfd42'
+            'f7f5d15365443cbd8137445c3aedf8ccd31c3402f72c0fa7c16e7bf1c7977139'
+            'f8627f5f3a7c119807afc9dc66ce7cb350f905fd1db7fb6b0077552974a07515'
+            'ac3f025aa27fec77b24b443df3a69750dc9bb070a40af5180d031b81e66e328c'
+            '34158c2a53e1aecd50ed31b8473e45f4f785532b538774a294aacd29c10e928b'
+            '8bd1361cf5c6e4e3336cad5b37c79dcc986a46b99e4ad7d679da146dd1fdb7fe'
+            '4ef4e78fa0174bf25cc5d0373fe716e1b712a2a398c8d57ae32cadc132e44b86'
+            '7d89448b9cccc0e2309ce34fef37ed85fd08fd2b030422e456fc531ebb1e8f80'
+            '0e9843225d3a70c5927fee139be5a765fa79cc94ecdbe9c4cba4aedcbb2d04ed'
+            'b25bf2ad18901b838ca61be50a67fd07d2f4337c3d7bd10f5ccfc4c8a651f35b'
+            'd9919cf95e98b4e73f12658874853470554d3c747239863210c419ec3630847c'
+            'eef45ed3746a1b9a21d9c29c533d966b4e14d08f26d673d73ceb887c049dee3f'
+            '101537863e56de7828b4d359f9bab3080a51700dc2b491c0638a0ece31aa445e'
+            '7b73652db3fe11febc5e701ba5029454d410492d645d46b8ce3b7a536999e729'
+            'ef69f4552722a08de47a9d362604fc8536c6e2f0a47ba2e52f83cc93b5aceb5e'
+            'fd1acfdb2f9b90c6fe6e71ea7027ac7f8252c3665e612f5701d8140432f04b99'
+            '6aa4b91b085540dc5ba0c53899fa2e4902b3d36d2473b2c294d92a26598ba6e8')
+
+# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
+# Keys are the names in the above script; values are the dependencies in Arch
+# plus any so names that are provided + linked
+declare -gA _system_libs=(
+  # [brotli]=brotli
+  [dav1d]="dav1d libdav1d.so"
+  # [ffmpeg]="ffmpeg libavcodec.so libavcodec.so libavformat.so libavutil.so" # YouTube playback stopped working in Chromium 120
+  [flac]="flac libFLAC.so"
+  [fontconfig]="fontconfig libfontconfig.so"
+  [freetype]="freetype2 libfreetype.so"
+  [harfbuzz-ng]="harfbuzz libharfbuzz.so libharfbuzz-subset.so"
+  [icu]="icu libicui18n.so libicuuc.so"
+  # [jsoncpp]="jsoncpp libjsoncpp.so"  # needs libstdc++
+  # [libaom]=aom
+  # [libavif]=libavif # libavif.so libavutil.so # needs https://github.com/AOMediaCodec/libavif/commit/5410b23f76
+  [libdrm]=libdrm # libdrm.so
+  [libjpeg]="libjpeg libjpeg.so"
+  [libpng]="libpng libpng16.so"
+  # [libvpx]=libvpx
+  [libwebp]="libwebp libwebpdemux.so libwebpmux.so libwebp.so"
+  [libxml]="libxml2 libxml2.so"
+  [libxslt]="libxslt libxslt.so"
+  [opus]="opus libopus.so"
+  # [re2]="re2 libre2.so" # needs libstdc++
+  # [snappy]=snappy # libsnappy.so # needs libstdc++
+  # [woff2]="woff2 libwoff2dec.so" # needs libstdc++
+  [zlib]=minizip # libminizip.so
+)
+_unwanted_bundled_libs=(
+  $(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
+)
+depends+=(${_system_libs[@]})
+
+_update_sources() {
+  python makepkg-source-roller.py update "v$pkgver" "$pkgname"
+  updpkgsums
+}
+
+prepare() {
+  sed -i "s|@ELECTRON@|${pkgname}|" electron-launcher.sh
+  sed -i "s|@ELECTRON@|${pkgname}|" electron.desktop
+  sed -i "s|@ELECTRON_NAME@|Electron ${_major_ver}|" electron.desktop
+
+  cp -r chromium-mirror_third_party_depot_tools depot_tools
+  export PATH+=":$PWD/depot_tools" DEPOT_TOOLS_UPDATE=0
+  export VPYTHON_BYPASS='manually managed python not supported by chrome operations'
+
+  echo "Putting together electron sources"
+  # Generate gclient gn args file and prepare-electron-source-tree.sh
+  python makepkg-source-roller.py generate electron/DEPS $pkgname
+  rbash prepare-electron-source-tree.sh "$CARCH"
+  mv electron src/electron
+
+  echo "Running hooks..."
+  # depot_tools/gclient.py runhooks
+  src/build/landmines.py
+  src/build/util/lastchange.py -o src/build/util/LASTCHANGE
+  src/build/util/lastchange.py -m GPU_LISTS_VERSION \
+    --revision-id-only --header src/gpu/config/gpu_lists_version.h
+  src/build/util/lastchange.py -m SKIA_COMMIT_HASH \
+    -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h
+  src/build/util/lastchange.py \
+    -s src/third_party/dawn --revision src/gpu/webgpu/DAWN_VERSION
+  src/tools/update_pgo_profiles.py --target=linux update \
+    --gs-url-base=chromium-optimization-profiles/pgo_profiles
+  depot_tools/download_from_google_storage.py --no_resume --extract --no_auth \
+    --bucket chromium-nodejs -s src/third_party/node/node_modules.tar.gz.sha1
+
+  src/electron/script/apply_all_patches.py \
+      src/electron/patches/config.json
+
+  pushd src
+  pushd electron
+  yarn install --frozen-lockfile
+  popd
+
+  echo "Applying local patches..."
+
+  ## Upstream fixes
+
+  # https://crbug.com/893950
+  sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
+    third_party/blink/renderer/core/xml/*.cc \
+    third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
+    third_party/libxml/chromium/*.cc \
+    third_party/maldoca/src/maldoca/ole/oss_utils.h
+
+  patch -Np1 -i ../support-ICU-74-in-LazyTextBreakIterator.patch
+
+  # Drop compiler flag that needs newer clang
+  patch -Np1 -i ../drop-flag-unsupported-by-clang17.patch
+
+  # Allow libclang_rt.builtins from compiler-rt >= 16 to be used
+  patch -Np1 -i ../compiler-rt-adjust-paths.patch
+
+  # Fixes for building with libstdc++ instead of libc++
+  patch -Np1 -i ../chromium-patches-*/chromium-114-ruy-include.patch
+  patch -Np1 -i ../chromium-patches-*/chromium-117-material-color-include.patch
+
+  # Link to system tools required by the build
+  mkdir -p third_party/node/linux/node-linux-x64/bin
+  ln -sfn /usr/bin/node third_party/node/linux/node-linux-x64/bin/
+  mkdir -p third_party/jdk/current/bin
+  ln -sfn /usr/bin/java third_party/jdk/current/bin/
+  ln -sfn /usr/bin/clang-format buildtools/linux64
+
+  # Electron specific fixes
+  patch -Np1 -i "${srcdir}/jinja-python-3.10.patch" -d "third_party/electron_node/tools/inspector_protocol/jinja2"
+  patch -Np1 -i "${srcdir}/use-system-libraries-in-node.patch"
+  # patch -Np1 -i "${srcdir}/default_app-icon.patch"  # Icon from .desktop file
+
+  # Allow building against system libraries in official builds
+  echo "Patching Chromium for using system libraries..."
+  sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+    tools/generate_shim_headers/generate_shim_headers.py
+  # Remove bundled libraries for which we will use the system copies; this
+  # *should* do what the remove_bundled_libraries.py script does, with the
+  # added benefit of not having to list all the remaining libraries
+  local _lib
+  for _lib in ${_unwanted_bundled_libs[@]}; do
+    find "third_party/$_lib" -type f \
+      \! -path "third_party/$_lib/chromium/*" \
+      \! -path "third_party/$_lib/google/*" \
+      \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
+        \! -regex '.*\.\(gn\|gni\|isolate\)' \
+        -delete
+  done
+
+  ./build/linux/unbundle/replace_gn_files.py \
+    --system-libraries "${!_system_libs[@]}"
+}
+
+build() {
+  cd src
+
+  export CC=clang
+  export CXX=clang++
+  export AR=ar
+  export NM=nm
+
+  local _flags=(
+    'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+    'host_toolchain="//build/toolchain/linux/unbundle:default"'
+    'is_official_build=true' # implies is_cfi=true on x86_64
+    'symbol_level=0' # sufficient for backtraces on x86(_64)
+    'treat_warnings_as_errors=false'
+    'disable_fieldtrial_testing_config=true'
+    'blink_enable_generated_code_formatting=false'
+    'ffmpeg_branding="Chrome"'
+    'proprietary_codecs=true'
+    'rtc_use_pipewire=true'
+    'link_pulseaudio=true'
+    'use_custom_libcxx=true' # https://github.com/llvm/llvm-project/issues/61705
+    'use_sysroot=false'
+    'use_system_libffi=true'
+    'enable_hangout_services_extension=true'
+    'enable_widevine=false'
+    'enable_nacl=false'
+  )
+
+  if [[ -n ${_system_libs[icu]+set} ]]; then
+    _flags+=('icu_use_data_file=false')
+  fi
+
+  local _clang_version=$(
+    clang --version | grep -m1 version | sed 's/.* \([0-9]\+\).*/\1/')
+
+  _flags+=(
+    'clang_base_path="/usr"'
+    'clang_use_chrome_plugins=false'
+    "clang_version=\"$_clang_version\""
+    'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile
+  )
+
+  # Allow the use of nightly features with stable Rust compiler
+  # https://github.com/ungoogled-software/ungoogled-chromium/pull/2696#issuecomment-1918173198
+  export RUSTC_BOOTSTRAP=1
+
+  _flags+=(
+    'rust_sysroot_absolute="/usr"'
+    "rustc_version=\"$(rustc --version)\""
+  )
+
+  # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
+  CFLAGS+='   -Wno-builtin-macro-redefined'
+  CXXFLAGS+=' -Wno-builtin-macro-redefined'
+  CPPFLAGS+=' -D__DATE__=  -D__TIME__=  -D__TIMESTAMP__='
+
+  # Do not warn about unknown warning options
+  CFLAGS+='   -Wno-unknown-warning-option'
+  CXXFLAGS+=' -Wno-unknown-warning-option'
+
+  # Let Chromium set its own symbol level
+  CFLAGS=${CFLAGS/-g }
+  CXXFLAGS=${CXXFLAGS/-g }
+
+  # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123
+  CFLAGS=${CFLAGS/-fexceptions}
+  CFLAGS=${CFLAGS/-fcf-protection}
+  CXXFLAGS=${CXXFLAGS/-fexceptions}
+  CXXFLAGS=${CXXFLAGS/-fcf-protection}
+
+  # This appears to cause random segfaults when combined with ThinLTO
+  # https://bugs.archlinux.org/task/73518
+  CFLAGS=${CFLAGS/-fstack-clash-protection}
+  CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
+
+  # https://crbug.com/957519#c122
+  CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}
+
+  export CHROMIUM_BUILDTOOLS_PATH="${PWD}/buildtools"
+  gn gen out/Release \
+      --args="import(\"//electron/build/args/release.gn\") ${_flags[*]}"
+  ninja -C out/Release electron electron_dist_zip
+  # ninja -C out/Release third_party/electron_node:headers
+}
+
+package() {
+  install -dm755 "${pkgdir:?}/usr/lib/${pkgname}"
+  bsdtar -xf src/out/Release/dist.zip -C "${pkgdir}/usr/lib/${pkgname}"
+
+  chmod u+s "${pkgdir}/usr/lib/${pkgname}/chrome-sandbox"
+
+  install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
+  for l in "${pkgdir}/usr/lib/${pkgname}"/{LICENSE,LICENSES.chromium.html}; do
+    ln -s  \
+      "$(realpath --relative-to="${pkgdir}/usr/share/licenses/${pkgname}" "${l}")" \
+      "${pkgdir}/usr/share/licenses/${pkgname}"
+  done
+
+  install -Dm755 "${srcdir}/electron-launcher.sh" \
+    "${pkgdir}/usr/bin/${pkgname}"
+
+  # Install .desktop and icon file (see default_app-icon.patch)
+  install -Dm644 electron.desktop \
+    "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+  install -Dm644 src/electron/default_app/icon.png \
+          "${pkgdir}/usr/share/pixmaps/${pkgname}.png"  # hicolor has no 1024x1024
+}

+ 174 - 0
REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch

@@ -0,0 +1,174 @@
+From ce71348a09f6689dd01a68db64b172191d0182d8 Mon Sep 17 00:00:00 2001
+From: Andrey Kosyakov <caseq@chromium.org>
+Date: Thu, 21 Dec 2023 18:38:38 +0000
+Subject: [PATCH] [bindings] Use v8::Array::Iterate for converting script
+ wrappables
+
+This changes CreateIDLSequenceFromV8Array to use the new
+v8::Array::Iterate() operation.
+This speeds up the "execBundles" part of the microbenchmark
+at crbug.com/dawn/1858 by around 3x.
+This depends on crrev.com/c/4846594 landing (and rolling) first.
+
+This is a slight re-work of https://crrev.com/c/4847447/3,
+originally by jkummerow@chromium.org
+
+Bug: v8:14218, dawn:1858, 1511239
+Change-Id: Ia266556d05b4d53e6942e12609d1c08882b4ff0f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5132129
+Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
+Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1240236}
+---
+ .../bindings/core/v8/native_value_traits.h    |  6 ++
+ .../core/v8/native_value_traits_impl.h        | 91 ++++++++++++++++++-
+ 2 files changed, 95 insertions(+), 2 deletions(-)
+
+diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
+index 1e5a0790df6d..a5c28b37e945 100644
+--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
+@@ -84,6 +84,12 @@ struct NativeValueTraitsBase {
+       std::is_pointer_v<ImplType> ||
+       requires(ImplType value) { value.IsNull(); };
+ 
++  // This should only be true for certain subclasses of ScriptWrappable
++  // that satisfy the assumptions of CreateIDLSequenceFromV8ArraySlow() with
++  // regards to how NativeValue() is implemented for the underlying type.
++  static constexpr bool supports_scriptwrappable_specific_fast_array_iteration =
++      false;
++
+   template <typename... ExtraArgs>
+   static decltype(auto) ArgumentValue(v8::Isolate* isolate,
+                                       int argument_index,
+diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
+index 5011503dcf1c..f085b6e90516 100644
+--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
+@@ -1037,10 +1037,86 @@ CreateIDLSequenceFromV8ArraySlow(v8::Isolate* isolate,
+     return {};
+   }
+ 
+-  typename NativeValueTraits<IDLSequence<T>>::ImplType result;
++  using ResultType = typename NativeValueTraits<IDLSequence<T>>::ImplType;
++  ResultType result;
+   result.ReserveInitialCapacity(length);
+   v8::Local<v8::Context> current_context = isolate->GetCurrentContext();
+   v8::TryCatch try_block(isolate);
++
++  // Fast path -- we're creating a sequence of script wrappables, which can be
++  // done by directly getting underlying object as long as array types are
++  // homogeneous. With ScriptWrappables, we don't expect to enter JS during
++  // iteration, so we can rely on v8::Array::Iterate() which is much faster than
++  // iterating an array on the client side of the v8. Additionally, for most
++  // subsptyes of ScriptWrappables, we can speed up type checks (see more on
++  // that below next to supports_scriptwrappable_specific_fast_array_iteration
++  // check.
++  if constexpr (std::is_base_of_v<ScriptWrappable, T>) {
++    struct CallbackData {
++      STACK_ALLOCATED();
++
++     public:
++      v8::Isolate* isolate;
++      v8::TypecheckWitness witness;
++      ResultType& result;
++      ExceptionState& exception_state;
++      CallbackData(v8::Isolate* isolate,
++                   ResultType& result,
++                   ExceptionState& exception_state)
++          : isolate(isolate),
++            witness(isolate),
++            result(result),
++            exception_state(exception_state) {}
++    };
++
++    CallbackData callback_data(isolate, result, exception_state);
++    v8::Array::IterationCallback callback = [](uint32_t index,
++                                               v8::Local<v8::Value> v8_element,
++                                               void* data) {
++      CallbackData* callback_data = reinterpret_cast<CallbackData*>(data);
++      // 3.4. Initialize Si to the result of converting nextItem to an IDL value
++      //   of type T.
++      v8::TypecheckWitness& witness = callback_data->witness;
++      // We can speed up type check by taking advantage of V8's type witness,
++      // provided traits' NativeValue implementation doesn't have additional
++      // logic beyond checking the type and calling ToScriptWrappable().
++      if constexpr (
++          NativeValueTraits<
++              T>::supports_scriptwrappable_specific_fast_array_iteration) {
++        if (witness.Matches(v8_element)) {
++          auto&& value = ToScriptWrappable(v8_element.As<v8::Object>())
++                             ->template ToImpl<T>();
++          callback_data->result.push_back(std::move(value));
++          return v8::Array::CallbackResult::kContinue;
++        }
++      }
++      auto&& element = NativeValueTraits<T>::NativeValue(
++          callback_data->isolate, v8_element, callback_data->exception_state);
++      if (callback_data->exception_state.HadException()) {
++        // It doesn't matter whether we return `kException` or `kBreak` here,
++        // as that only affects the return value of `v8_array->Iterate()`,
++        // which we are ignoring.
++        return v8::Array::CallbackResult::kException;
++      }
++      if constexpr (
++          NativeValueTraits<
++              T>::supports_scriptwrappable_specific_fast_array_iteration) {
++        witness.Update(v8_element);
++      }
++      callback_data->result.push_back(std::move(element));
++      return v8::Array::CallbackResult::kContinue;
++    };
++    if (!v8_array->Iterate(current_context, callback, &callback_data)
++             .IsJust()) {
++      if (try_block.HasCaught()) {
++        exception_state.RethrowV8Exception(try_block.Exception());
++      }
++      DCHECK(exception_state.HadException());
++      return {};
++    }
++    return result;
++  }
++
+   // Array length may change if array is mutated during iteration.
+   for (uint32_t i = 0; i < v8_array->Length(); ++i) {
+     v8::Local<v8::Value> v8_element;
+@@ -1056,6 +1132,7 @@ CreateIDLSequenceFromV8ArraySlow(v8::Isolate* isolate,
+       return {};
+     result.push_back(std::move(element));
+   }
++
+   // 3.2. If next is false, then return an IDL sequence value of type
+   //   sequence<T> of length i, where the value of the element at index j is Sj.
+   return result;
+@@ -1398,6 +1475,7 @@ struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
+   }
+ };
+ 
++// Interface types
+ template <typename T>
+   requires std::derived_from<T, CallbackInterfaceBase>
+ struct NativeValueTraits<IDLNullable<T>>
+@@ -1470,12 +1548,21 @@ struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
+ template <typename T>
+   requires std::derived_from<T, ScriptWrappable>
+ struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++  // This signifies that CreateIDLSequenceFromV8ArraySlow() may apply
++  // certain optimization based on assumptions about `NativeValue()`
++  // implementation below. For subclasses of ScriptWrappable that have
++  // different implementation of NativeValue(), this should remain false.
++  static constexpr bool supports_scriptwrappable_specific_fast_array_iteration =
++      true;
++
+   static inline T* NativeValue(v8::Isolate* isolate,
+                                v8::Local<v8::Value> value,
+                                ExceptionState& exception_state) {
+     const WrapperTypeInfo* wrapper_type_info = T::GetStaticWrapperTypeInfo();
+-    if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value))
++    if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info,
++                                                     value)) {
+       return ToScriptWrappable(value.As<v8::Object>())->template ToImpl<T>();
++    }
+ 
+     bindings::NativeValueTraitsInterfaceNotOfType(wrapper_type_info,
+                                                   exception_state);

+ 32 - 0
compiler-rt-adjust-paths.patch

@@ -0,0 +1,32 @@
+diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn
+index d4de2e0cca0..57359c32121 100644
+--- a/build/config/clang/BUILD.gn
++++ b/build/config/clang/BUILD.gn
+@@ -130,12 +130,15 @@ template("clang_lib") {
+       } else if (is_linux || is_chromeos) {
+         if (current_cpu == "x64") {
+           _dir = "x86_64-unknown-linux-gnu"
++          _suffix = "-x86_64"
+         } else if (current_cpu == "x86") {
+           _dir = "i386-unknown-linux-gnu"
++          _suffix = "-i386"
+         } else if (current_cpu == "arm") {
+           _dir = "armv7-unknown-linux-gnueabihf"
+         } else if (current_cpu == "arm64") {
+           _dir = "aarch64-unknown-linux-gnu"
++          _suffix = "-aarch64"
+         } else {
+           assert(false)  # Unhandled cpu type
+         }
+@@ -166,6 +169,11 @@ template("clang_lib") {
+         assert(false)  # Unhandled target platform
+       }
+ 
++      # Bit of a hack to make this find builtins from compiler-rt >= 16
++      if (is_linux || is_chromeos) {
++        _dir = "linux"
++      }
++
+       _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
+       _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
+       libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]

+ 21 - 0
default_app-icon.patch

@@ -0,0 +1,21 @@
+--- a/electron/default_app/default_app.ts
++++ b/electron/default_app/default_app.ts
+@@ -60,7 +60,7 @@
+   };
+ 
+   if (process.platform === 'linux') {
+-    options.icon = path.join(__dirname, 'icon.png');
++    options.icon = '/usr/share/pixmaps/electron.png';
+   }
+ 
+   mainWindow = new BrowserWindow(options);
+--- a/electron/filenames.gni
++++ b/electron/filenames.gni
+@@ -6,7 +6,6 @@
+   ]
+ 
+   default_app_static_sources = [
+-    "default_app/icon.png",
+     "default_app/index.html",
+     "default_app/package.json",
+     "default_app/styles.css",

+ 29 - 0
drop-flag-unsupported-by-clang17.patch

@@ -0,0 +1,29 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 89b4755ac8b3..94b457385663 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -618,24 +618,6 @@ config("compiler") {
+       }
+     }
+ 
+-    # TODO(crbug.com/1488374): This causes binary size growth and potentially
+-    # other problems.
+-    # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version.
+-    if (default_toolchain != "//build/toolchain/cros:target" &&
+-        !llvm_android_mainline) {
+-      cflags += [
+-        "-mllvm",
+-        "-split-threshold-for-reg-with-hint=0",
+-      ]
+-      if (use_thin_lto && is_a_target_toolchain) {
+-        if (is_win) {
+-          ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
+-        } else {
+-          ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
+-        }
+-      }
+-    }
+-
+     # TODO(crbug.com/1235145): Investigate why/if this should be needed.
+     if (is_win) {
+       cflags += [ "/clang:-ffp-contract=off" ]

+ 20 - 0
electron-launcher.sh

@@ -0,0 +1,20 @@
+#!/usr/bin/bash
+
+set -euo pipefail
+
+name=@ELECTRON@
+flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/${name}-flags.conf"
+
+declare -a flags
+
+if [[ -f "${flags_file}" ]]; then
+    mapfile -t < "${flags_file}"
+fi
+
+for line in "${MAPFILE[@]}"; do
+    if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then
+        flags+=("${line}")
+    fi
+done
+
+exec /usr/lib/${name}/electron "${flags[@]}" "$@"

+ 7 - 0
electron.desktop

@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=@ELECTRON_NAME@
+Icon=@ELECTRON@
+Exec=@ELECTRON@ %u
+Categories=Development;GTK;
+StartupNotify=true

+ 22 - 0
jinja-python-3.10.patch

@@ -0,0 +1,22 @@
+--- a/runtime.py
++++ b/runtime.py
+@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta
+ 
+ # register the context as mapping if possible
+ try:
+-    from collections import Mapping
++    from collections.abc import Mapping
+     Mapping.register(Context)
+ except ImportError:
+     pass
+--- a/sandbox.py
++++ b/sandbox.py
+@@ -14,7 +14,7 @@
+ """
+ import types
+ import operator
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.environment import Environment
+ from jinja2.exceptions import SecurityError
+ from jinja2._compat import string_types, PY2

+ 375 - 0
makepkg-source-roller.py

@@ -0,0 +1,375 @@
+from collections import OrderedDict
+from importlib.util import spec_from_loader, module_from_spec
+from importlib.machinery import SourceFileLoader
+from tempfile import NamedTemporaryFile
+from heapq import heappush
+import sys
+import requests
+import base64
+import re
+import os
+
+
+def eprint(*args, **kwargs):
+    print(*args, file=sys.stderr, **kwargs)
+
+
+def fetch_deps(url, rev):
+    # Get the DEPS file from the given URL and revision
+    if "googlesource.com" in url:
+        response = requests.get(f"{url}/+/{rev}/DEPS?format=text")
+        response.raise_for_status()
+        return base64.b64decode(response.text).decode("utf-8")
+    elif url.startswith("https://github.com/"):
+        if url.endswith(".git"):
+            url = url[: -len(".git")]
+        response = requests.get(f"{url}/raw/{rev}/DEPS")
+        response.raise_for_status()
+        return response.text
+    else:
+        raise Exception(f"Unimplemented for URL {url}")
+
+
+class Str:
+    def __init__(self, s):
+        self.inner = s
+
+    def __str__(self):
+        return self.inner
+
+
+ignored_dep_prefix = [
+    # MacOS specific
+    "src/third_party/squirrel.mac",
+    # Unnecessary parts
+    "src/docs/website",
+]
+
+
+def parse_deps(path, prefix="", is_src=False, vars=None, reverse_map=None):
+    """
+    path: Path to the DEPS file
+    prefix: Prefix to add when using recursedeps
+    is_src: Whether the current DEPS file is the one from "src" repo
+    vars: Override variables when generating gclient gn args file
+    reverse_map: Map from url to path. Used for de-duplication
+    """
+    spec = spec_from_loader("deps", SourceFileLoader("deps", path))
+    deps_module = module_from_spec(spec)
+
+    def var_substitute(var_name):
+        return deps_module.vars[var_name]
+
+    deps_module.Var = var_substitute
+    deps_module.Str = Str
+
+    spec.loader.exec_module(deps_module)
+
+    for k in (
+        "checkout_win",
+        "checkout_mac",
+        "checkout_ios",
+        "checkout_chromeos",
+        "checkout_fuchsia",
+        "checkout_android",
+        "checkout_cxx_debugging_extension_deps",
+    ):
+        deps_module.vars[k] = False
+    deps_module.vars["checkout_linux"] = True
+    deps_module.vars["build_with_chromium"] = True
+    deps_module.vars["host_os"] = "linux"
+    use_relative_paths = (
+        hasattr(deps_module, "use_relative_paths") and deps_module.use_relative_paths
+    )
+
+    def url_and_revision(raw_url):
+        url = raw_url.format(**deps_module.vars)
+        url, rev = url.rsplit("@", 1)
+        if '.googlesource.com/' in url and not url.endswith(".git"):
+            # Unify url format by adding .git suffix (for de-duplication)
+            url += ".git"
+        return (url, rev)
+
+    def format_path(dep_name):
+        return dep_name if not use_relative_paths else f"{prefix}/{dep_name}"
+
+    real_deps = OrderedDict()
+    cipd_deps = {}
+    reverse_map = reverse_map or {}
+
+    def add_dep(dep_name, raw_url):
+        path = format_path(dep_name)
+        for ignored_prefix in ignored_dep_prefix:
+            if path.startswith(ignored_prefix):
+                eprint(f"Ignoring {path}")
+                return
+        url, rev = url_and_revision(raw_url)
+        real_deps[path] = (url, rev)
+        # Add to reverse map for de-duplication, use a heap to make sure the shortest path is chosen
+        heappush(reverse_map.setdefault(url, []), (len(path), path))
+
+    for dep_name, dep_value in deps_module.deps.items():
+        if isinstance(dep_value, dict):
+            if "dep_type" in dep_value:
+                if dep_value["dep_type"] == "cipd":
+                    cipd_deps[format_path(dep_name)] = dep_value["packages"]
+                else:
+                    raise Exception(f"Unknown DEP {dep_name} = {dep_value}")
+            else:
+                if "condition" in dep_value and not eval(
+                    dep_value["condition"], vars, deps_module.vars
+                ):
+                    eprint(
+                        f"Skipping {format_path(dep_name)} because of unmet condition {dep_value['condition']}"
+                    )
+                    continue
+                add_dep(dep_name, dep_value["url"])
+        elif isinstance(dep_value, str):
+            add_dep(dep_name, dep_value)
+        else:
+            raise Exception(f"Unknown DEP {dep_name} = {dep_value}")
+
+    gclient_gn_args = {}
+    vars = vars or {}
+
+    if is_src and hasattr(deps_module, "gclient_gn_args"):
+        for arg in deps_module.gclient_gn_args:
+            # electron vars overwrites chromium vars
+            gclient_gn_args[arg] = (deps_module.vars | vars).get(arg)
+
+    if hasattr(deps_module, "recursedeps"):
+        for dep in deps_module.recursedeps:
+            if dep not in real_deps:
+                eprint(f"Skipping recursive DEP {dep} as it's not found in deps dict")
+                continue
+            eprint(f"Fetching recursedep {dep}")
+            deps_text = fetch_deps(*real_deps[dep])
+            with NamedTemporaryFile(mode="w", delete=True) as f:
+                f.write(deps_text)
+                f.flush()
+                dep_deps, dep_gclient_gn_args, dep_cipd_deps, _ = parse_deps(
+                    f.name,
+                    format_path(dep),
+                    dep == "src",
+                    deps_module.vars | vars,
+                    reverse_map,
+                )
+                real_deps.update(dep_deps)
+                gclient_gn_args.update(dep_gclient_gn_args)
+                cipd_deps.update(dep_cipd_deps)
+    return real_deps, gclient_gn_args, cipd_deps, reverse_map
+
+
+repos_with_changed_url = {
+    "https://chromium.googlesource.com/chromium/llvm-project/compiler-rt/lib/fuzzer.git",
+    "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf.git",
+}
+
+
+def get_source_path(path, url, pkgname, reverse_map):
+    """returns the source path and whether it's deduplicated or not"""
+    deduplicated = False
+    if len(reverse_map[url]) > 1:
+        # Deduplicate, choose the shortest path
+        shortest = reverse_map[url][0][1]
+        if path != shortest:
+            eprint(f"Deduplicate:  {path} -> {shortest}")
+            deduplicated = True
+        path = shortest
+    flattened = path.replace("/", "_")
+    result = re.sub("^src", "chromium-mirror", flattened)
+    if url in repos_with_changed_url:
+        # To make makepkg happy when using SRCDEST
+        result += f"_{pkgname}"
+    return result, deduplicated
+
+
+def generate_fragment(rev):
+    if "." in rev:
+        # Treat revisions that contain dot as tags
+        return f"tag={rev}"
+    else:
+        return f"commit={rev}"
+
+
+preferred_url_map = {
+    # Replace with github mirror
+    "https://chromium.googlesource.com/chromium/src.git": "https://github.com/chromium/chromium.git",
+}
+
+
+def get_preferred_url(url):
+    preferred_url = preferred_url_map.get(url)
+    return preferred_url or url
+
+
+def generate_source_list(deps, indent, extra_sources, pkgname, reverse_map):
+    for path, (url, rev) in deps.items():
+        source_path, deduplicated = get_source_path(path, url, pkgname, reverse_map)
+        if deduplicated:
+            # Skip the duplicated source
+            continue
+        yield f"{indent}{source_path}::git+{get_preferred_url(url)}#{generate_fragment(rev)}"
+    for s in extra_sources:
+        yield f"{indent}{s}"
+
+
+def generate_managed_scripts(deps, extra_cmds, pkgname, reverse_map):
+    script = """#!/usr/bin/env rbash
+set -e
+# Generated file. Do not modify by hand.
+# Usage: script <CARCH>
+place_subproject_into_tree () {
+    # place_subproject_into_tree flattened_path path should_copy
+    local parent_dir="$(dirname "$2")"
+    if [[ -n "$parent_dir" ]]; then
+        mkdir -p "$parent_dir"
+    fi
+    # Remove the target dir
+    rm -rf "$2"
+    if [[ "$3" == "true" ]]; then
+        cp -r "$1" "$2"
+    else
+        mv -v "$1" "$2"
+    fi
+}
+
+CARCH="$1"
+case "$CARCH" in
+    x86_64)
+        _go_arch=amd64;;
+    *)
+        _go_arch="$CARCH";;
+esac
+
+"""
+    for path, (url, rev) in deps.items():
+        source_path, deduplicated = get_source_path(path, url, pkgname, reverse_map)
+        if deduplicated:
+            shortest = reverse_map[url][0][1]
+            script += f"place_subproject_into_tree {shortest} {path} true\n"
+            script += f"git -C {path} checkout --detach {rev}\n"
+        else:
+            script += f"place_subproject_into_tree {source_path} {path} false\n"
+    # Additional Commands
+    script += "\n".join(extra_cmds)
+    filename = "prepare-electron-source-tree.sh"
+    with open(filename, "w") as f:
+        f.write(script)
+    return filename
+
+
+def update_pkgbuild(real_deps, reverse_map, extra_sources):
+    with open("PKGBUILD", "r") as f:
+        pkgbuild = f.read()
+    res = re.search(
+        "([ \t]*)# BEGIN managed sources\n((.|\n)*)([ \t]*)# END managed sources",
+        pkgbuild,
+        re.MULTILINE,
+    )
+    if res is None:
+        raise Exception("managed sources not found")
+    indent = res.group(1)
+    span = res.span(2)
+    pkgbuild = (
+        pkgbuild[: span[0]]
+        + "\n".join(
+            generate_source_list(real_deps, indent, extra_sources, pkgname, reverse_map)
+        )
+        + "\n"
+        + indent
+        + pkgbuild[span[1] :]
+    )
+
+    with open("PKGBUILD", "w") as f:
+        f.write(pkgbuild)
+
+
+def pyobj_to_gn_arg(k, v):
+    if isinstance(v, Str):
+        return f'{k} = "{v.inner}"'
+    elif isinstance(v, str):
+        return f'{k} = "{v}"'
+    elif isinstance(v, bool):
+        return f"{k} = {'true' if v else 'false'}"
+    else:
+        raise Exception(f"Cannot convert {k}={v} ({type(v)})to gn arg")
+
+
+def generate_gclient_args(args):
+    """
+    Writes gclient_args.gni
+    Returns command to copy it
+    """
+    with open("gclient_args.gni", "w") as f:
+        f.writelines(pyobj_to_gn_arg(k, v) + "\n" for k, v in args.items())
+
+    return "cp gclient_args.gni src/build/config/gclient_args.gni"
+
+
+def cipd_path_substitute(cipd_path):
+    # Assume PKGBUILD provides _go_arch variable
+    return cipd_path.replace("${{platform}}", "linux-${_go_arch}").replace(
+        "${{arch}}", "${_go_arch}"
+    )
+
+
+def generate_cipd_cmds(cipd_deps, enabled_deps):
+    for dep, is_optional in enabled_deps:
+        packages = cipd_deps.get(dep)
+        if packages is None:
+            if is_optional:
+                continue
+            else:
+                raise f"cipd dependency {dep} not found"
+        for package in packages:
+            yield f"cipd install {cipd_path_substitute(package['package'])} {package['version']} -root {dep}"
+
+
+if __name__ == "__main__":
+    if len(sys.argv) != 4:
+        eprint(f"Usage: {sys.argv[0]} ACTION PATH_OR_ELECTRON_VERSION PKGNAME")
+        sys.exit(1)
+    action = sys.argv[1]
+    deps_path = sys.argv[2]
+    pkgname = sys.argv[3]
+    assert action in ("print", "update", "generate")
+    if not os.path.exists(deps_path):
+        # Get it from web
+        response = requests.get(
+            f"https://github.com/electron/electron/raw/{deps_path}/DEPS"
+        )
+        response.raise_for_status()
+        deps_text = response.text
+        with NamedTemporaryFile(mode="w", delete=True) as f:
+            f.write(deps_text)
+            f.flush()
+            git_deps, gargs, cipd_deps, reverse_map = parse_deps(f.name)
+    else:
+        git_deps, gargs, cipd_deps, reverse_map = parse_deps(deps_path)
+    if action == "print":
+        for name, value in git_deps.items():
+            print(f"git: {name} = {value}")
+        for name, value in cipd_deps.items():
+            print(f"cipd: {name} = {value}")
+    elif action == "update":
+        update_pkgbuild(git_deps, reverse_map, [])
+    elif action == "generate":
+        garg_cmd = generate_gclient_args(gargs)
+        # cipd dependencies are usually binary blobs. Only add the necessary parts.
+        cipd_cmds = generate_cipd_cmds(
+            cipd_deps,
+            [
+                # (dependency path, is_optional)
+                (
+                    "src/third_party/screen-ai/linux",
+                    True,
+                ),  # only for new electron versions (probably >= 29)
+                # The esbuild version 0.14.13 is not compatible with the system one
+                ("src/third_party/devtools-frontend/src/third_party/esbuild", False),
+            ],
+        )
+        managed_script = generate_managed_scripts(
+            git_deps, [garg_cmd] + list(cipd_cmds), pkgname, reverse_map
+        )
+    print("Done")

+ 148 - 0
support-ICU-74-in-LazyTextBreakIterator.patch

@@ -0,0 +1,148 @@
+From f62990fb134b7e610502b6804945debaa51960a5 Mon Sep 17 00:00:00 2001
+From: Koji Ishii <kojii@chromium.org>
+Date: Fri, 9 Feb 2024 18:47:02 +0000
+Subject: [PATCH] Support ICU 74 in `LazyTextBreakIterator`
+
+This patch extends the `kBreakAllLineBreakClassTable` table
+for 5 new LineBreak classes in ICU 74.
+
+They are for Brahmic scripts, which "line breaks can occur at
+the boundaries of any orthographic syllable"[1]. The
+`break-all` has no additional break opportunities that all
+entries are `0`.
+
+This patch also adds `0` for 3 classes added in ICU 58[2],
+instead of doing so in code, to make future additions
+possible.
+
+[1] https://unicode.org/reports/tr14/#BreakOpportunities
+[2] https://chromiumcodereview.appspot.com/2440923002
+
+Bug: 324419151
+Change-Id: I8002edb927280f63b5b668b09076cc71feaeac3e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5279337
+Auto-Submit: Koji Ishii <kojii@chromium.org>
+Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
+Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1258643}
+---
+ .../platform/text/text_break_iterator.cc      | 98 ++++++++++---------
+ 1 file changed, 53 insertions(+), 45 deletions(-)
+
+diff --git a/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc
+index 703dc2399075..38ab94a0a460 100644
+--- a/third_party/blink/renderer/platform/text/text_break_iterator.cc
++++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc
+@@ -161,11 +161,7 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
+ };
+ // clang-format on
+ 
+-#if U_ICU_VERSION_MAJOR_NUM >= 58
+-#define BA_LB_COUNT (U_LB_COUNT - 3)
+-#else
+ #define BA_LB_COUNT U_LB_COUNT
+-#endif
+ // Line breaking table for CSS word-break: break-all. This table differs from
+ // asciiLineBreakTable in:
+ // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
+@@ -174,47 +170,59 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
+ //   normal line break, not "prohibit break."
+ // clang-format off
+ static const unsigned char kBreakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
+-    // XX AI AL B2 BA BB BK CB    CL CM CR EX GL HY ID IN    IS LF NS NU OP PO PR QU    SA SG SP SY ZW NL WJ H2    H3 JL JT JV CP CJ HL RI
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // B2
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // BA
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BB
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BK
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CB
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CM
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CR
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // EX
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // GL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HY
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ID
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IN
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // IS
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // LF
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NS
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // NU
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // OP
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // PO
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PR
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // QU
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SA
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SG
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SP
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SY
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZW
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // WJ
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H2
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H3
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JT
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JV
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CP
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CJ
+-    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // HL
+-    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // RI
++    // XX AI AL B2 BA BB BK CB    CL CM CR EX GL HY ID IN    IS LF NS NU OP PO PR QU    SA SG SP SY ZW NL WJ H2    H3 JL JT JV CP CJ HL RI    EB EM ZWJ AK AP AS VF VI
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // XX
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // AI
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // AL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // B2
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // BA
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // BB
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // BK
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CB
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CM
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CR
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // EX
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // GL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // HY
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // ID
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // IN
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // IS
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // LF
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // NS
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // NU
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // OP
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // PO
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // PR
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // QU
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // SA
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // SG
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // SP
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // SY
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // ZW
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // NL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // WJ
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // H2
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // H3
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // JL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // JT
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // JV
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CP
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // CJ
++    { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // HL
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // RI
++    // Added in ICU 58.
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // EB
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // EM
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // ZWJ
++#if U_ICU_VERSION_MAJOR_NUM >= 74
++    // Added in ICU 74. https://icu.unicode.org/download/74
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // AK
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // AP
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // AS
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // VF
++    { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0,  0, 0, 0, 0, 0, 0) }, // VI
++#endif  // U_ICU_VERSION_MAJOR_NUM >= 74
+ };
+ // clang-format on
+ 

+ 13 - 0
use-system-libraries-in-node.patch

@@ -0,0 +1,13 @@
+--- a/third_party/electron_node/BUILD.gn
++++ b/third_party/electron_node/BUILD.gn
+@@ -42,8 +42,8 @@ declare_args() {
+   node_module_version = ""
+
+   # Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries.
+-  use_system_cares = false
+-  use_system_nghttp2 = false
++  use_system_cares = true
++  use_system_nghttp2 = true
+   use_system_llhttp = false
+   use_system_histogram = false
+ }