We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Overview
Submit package home:Kiel...es:Extra / chromium-...eg-extra to package Extra / chromium-ffmpeg-extra
chromium-ffmpeg-extra.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Sun Jul 16 07:54:55 UTC 2023 - Carsten Ziepke <kieltux@gmail.com>
4
+
5
+- Rebase chromium 114.0.5735.198 for use as chromium-ffmpeg-extra
6
+
7
+-------------------------------------------------------------------
8
+Tue Jun 27 07:39:29 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
9
+
10
+- Chromium 114.0.5735.198 (boo#1212755):
11
+ * CVE-2023-3420: Type Confusion in V8
12
+ * CVE-2023-3421: Use after free in Media
13
+ * CVE-2023-3422: Use after free in Guest View
14
+
15
+-------------------------------------------------------------------
16
+Sun Jun 25 09:54:37 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
17
+
18
+- Install Qt5 library & prepare for Qt6 in 115
19
+
20
+-------------------------------------------------------------------
21
+Wed Jun 14 05:23:16 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
22
+
23
+- Chromium 114.0.5735.133 (boo#1212302):
24
+ * CVE-2023-3214: Use after free in Autofill payments
25
+ * CVE-2023-3215: Use after free in WebRTC
26
+ * CVE-2023-3216: Type Confusion in V8
27
+ * CVE-2023-3217: Use after free in WebXR
28
+ * Various fixes from internal audits, fuzzing and other initiatives
29
+
30
+-------------------------------------------------------------------
31
+Wed Jun 7 18:13:06 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
32
+
33
+- Fix Leap 15.4 build - chromium-114-revert-av1enc-lp154.patch
34
+
35
+-------------------------------------------------------------------
36
+Tue Jun 6 05:34:13 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
37
+
38
+- Chromium 114.0.5735.106 (boo#1212044):
39
+ * CVE-2023-3079: Type Confusion in V8
40
+
41
+-------------------------------------------------------------------
42
+Sun Jun 4 18:52:01 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
43
+
44
+- Chromium 114.0.5735.90 (boo#1211843):
45
+ * CSS text-wrap: balance is available
46
+ * Cookies partitioned by top level site (CHIPS)
47
+ * New Popover API
48
+- Security fixes:
49
+ * CVE-2023-2929: Out of bounds write in Swiftshader
50
+ * CVE-2023-2930: Use after free in Extensions
51
+ * CVE-2023-2931: Use after free in PDF
52
+ * CVE-2023-2932: Use after free in PDF
53
+ * CVE-2023-2933: Use after free in PDF
54
+ * CVE-2023-2934: Out of bounds memory access in Mojo
55
+ * CVE-2023-2935: Type Confusion in V8
56
+ * CVE-2023-2936: Type Confusion in V8
57
+ * CVE-2023-2937: Inappropriate implementation in Picture In Picture
58
+ * CVE-2023-2938: Inappropriate implementation in Picture In Picture
59
+ * CVE-2023-2939: Insufficient data validation in Installer
60
+ * CVE-2023-2940: Inappropriate implementation in Downloads
61
+ * CVE-2023-2941: Inappropriate implementation in Extensions API
62
+- Drop patches:
63
+ * chromium-103-VirtualCursor-std-layout.patch
64
+ * chromium-113-system-zlib.patch
65
+ * chromium-113-workaround_clang_bug-structured_binding.patch
66
+- Add patches
67
+ * chromium-114-workaround_clang_bug-structured_binding.patch
68
+ * chromium-114-lld-argument.patch
69
+
70
+-------------------------------------------------------------------
71
+Tue May 30 21:53:45 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
72
+
73
+- Un-bundle zlib again
74
+- Remove un-needed patches:
75
+ * chromium-112-default-comparison-operators.patch
76
+ * chromium-109-clang-lp154.patch
77
+ * chromium-clang-nomerge.patch
78
+ * chromium-ffmpeg-lp152.patch
79
+ * chromium-lp151-old-drm.patch
80
+- Added patches:
81
+ * chromium-113-system-zlib.patch
82
+
83
+-------------------------------------------------------------------
84
+Sun May 28 21:32:03 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
85
+
86
+- build with llvm15 on Leap
87
+
88
+-------------------------------------------------------------------
89
+Tue May 16 21:16:23 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
90
+
91
+- Chromium 113.0.5672.126 (boo#1211442):
92
+ * CVE-2023-2721: Use after free in Navigation
93
+ * CVE-2023-2722: Use after free in Autofill UI
94
+ * CVE-2023-2723: Use after free in DevTools
95
+ * CVE-2023-2724: Type Confusion in V8
96
+ * CVE-2023-2725: Use after free in Guest View
97
+ * CVE-2023-2726: Inappropriate implementation in WebApp Installs
98
+ * Various fixes from internal audits, fuzzing and other initiatives
99
+
100
+-------------------------------------------------------------------
101
+Tue May 9 19:14:20 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
102
+
103
+- Chromium 113.0.5672.92 (boo#1211211)
104
+- Multiple security fixes (boo#1211036):
105
+ * CVE-2023-2459: Inappropriate implementation in Prompts
106
+ * CVE-2023-2460: Insufficient validation of untrusted input in Extensions
107
+ * CVE-2023-2461: Use after free in OS Inputs
108
+ * CVE-2023-2462: Inappropriate implementation in Prompts
109
+ * CVE-2023-2463: Inappropriate implementation in Full Screen Mode
110
+ * CVE-2023-2464: Inappropriate implementation in PictureInPicture
111
+ * CVE-2023-2465: Inappropriate implementation in CORS
112
+ * CVE-2023-2466: Inappropriate implementation in Prompts
113
+ * CVE-2023-2467: Inappropriate implementation in Prompts
114
+ * CVE-2023-2468: Inappropriate implementation in PictureInPicture
115
+- drop chromium-94-sql-no-assert.patch
116
+- drop no-location-leap151.patch
117
+- add chromium-113-webview-namespace.patch
118
+- add chromium-113-webauth-include-variant.patch
119
+- add chromium-113-typename.patch
120
+- add chromium-113-workaround_clang_bug-structured_binding.patch
121
+
122
+-------------------------------------------------------------------
123
+Wed Apr 19 19:55:51 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
124
+
125
+- Chromium 112.0.5615.165 (boo#1210618):
126
+ * CVE-2023-2133: Out of bounds memory access in Service Worker API
127
+ * CVE-2023-2134: Out of bounds memory access in Service Worker API
128
+ * CVE-2023-2135: Use after free in DevTools
129
+ * CVE-2023-2136: Integer overflow in Skia
130
+ * CVE-2023-2137: Heap buffer overflow in sqlite
131
+- drop chromium-112-feed_protos.patch
132
+
133
+-------------------------------------------------------------------
134
+Sun Apr 16 02:10:30 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
135
+
136
+- Fix Leap 15.4 build failures from default comparison operators
137
+ defined outside of the class definition, a C++20 feature
138
+ adding chromium-112-default-comparison-operators.patch
139
+
140
+-------------------------------------------------------------------
141
+Sat Apr 15 10:49:51 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
142
+
143
+- Chromium 112.0.5615.121:
144
+ * CVE-2023-2033: Type Confusion in V8 (boo#1210478)
145
+
146
+-------------------------------------------------------------------
147
+Fri Apr 7 07:57:40 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
148
+
149
+- Revert a breaking change with chromium-112-feed_protos.patch
150
+
151
+-------------------------------------------------------------------
152
+Tue Apr 4 22:38:23 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
153
+
154
+- Chromium 112.0.5615.49
155
+ * CSS now supports nesting rules.
156
+ * The algorithm to set the initial focus on <dialog> elements was updated.
157
+ * No-op fetch() handlers on service workers are skipped from now on to make navigations faster
158
+ * The setter for document.domain is now deprecated.
159
+ * The recorder in devtools can now record with pierce selectors.
160
+ * Security fixes (boo#1210126):
161
+ * CVE-2023-1810: Heap buffer overflow in Visuals
162
+ * CVE-2023-1811: Use after free in Frames
163
+ * CVE-2023-1812: Out of bounds memory access in DOM Bindings
164
+ * CVE-2023-1813: Inappropriate implementation in Extensions
165
+ * CVE-2023-1814: Insufficient validation of untrusted input in Safe Browsing
166
+ * CVE-2023-1815: Use after free in Networking APIs
167
+ * CVE-2023-1816: Incorrect security UI in Picture In Picture
168
+ * CVE-2023-1817: Insufficient policy enforcement in Intents
169
+ * CVE-2023-1818: Use after free in Vulkan
170
+ * CVE-2023-1819: Out of bounds read in Accessibility
171
+ * CVE-2023-1820: Heap buffer overflow in Browser History
172
+ * CVE-2023-1821: Inappropriate implementation in WebShare
173
+ * CVE-2023-1822: Incorrect security UI in Navigation
174
+ * CVE-2023-1823: Inappropriate implementation in FedCM
175
+-------------------------------------------------------------------
176
Sun Apr 2 10:10:49 UTC 2023 - Carsten Ziepke <kieltux@gmail.com>
177
178
- Use gcc11/gcc11-c++ for openSUSE Leap, use gcc12/gcc12-c++
179
chromium-ffmpeg-extra.spec
Changed
558
1
2
# spec file for package chromium-ffmpeg-extra
3
#
4
# Copyright (c) 2023 SUSE LLC
5
+# Copyright (c) 2023 Callum Farmer <gmbr3@opensuse.org>
6
+# Copyright (c) 2023 Andreas Stieger <Andreas.Stieger@gmx.de>
7
#
8
# All modifications and additions to the file contributed by third parties
9
# remain the property of their copyright owners, unless otherwise agreed
10
11
12
%define rname chromium
13
%define outputdir out
14
+%bcond_with is_beta # CHANNEL SWITCH
15
# bsc#1108175
16
%define __provides_exclude ^lib.*\\.so.*$
17
-%if 0%{?suse_version} >= 1550
18
-%bcond_without system_icu
19
-%else
20
-%bcond_with system_icu
21
-%endif
22
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
23
%bcond_without gtk4
24
+%bcond_without qt
25
%else
26
%bcond_with gtk4
27
+%bcond_with qt
28
%endif
29
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200
30
-%bcond_without pipewire
31
-%else
32
-%bcond_with pipewire
33
-%endif
34
-%bcond_without system_zlib
35
-%bcond_with system_vpx
36
%ifarch aarch64
37
%bcond_with swiftshader
38
%else
39
%bcond_without swiftshader
40
%endif
41
-%if 0%{?suse_version} >= 1550
42
+%if 0%{?suse_version} >= 1599
43
%bcond_without system_harfbuzz
44
%bcond_without system_freetype
45
+%bcond_without arm_bti
46
+%bcond_without system_icu
47
+%bcond_without ffmpeg_51
48
+%bcond_without qt6
49
%else
50
%bcond_with system_harfbuzz
51
%bcond_with system_freetype
52
-%endif
53
-%bcond_with clang
54
+%bcond_with arm_bti
55
+%bcond_with system_icu
56
+%bcond_with ffmpeg_51
57
+%bcond_with qt6
58
+%endif
59
+%bcond_with system_avif
60
+# LLVM version
61
+%define llvm_version 15
62
+# GCC version
63
+%define gcc_version 12
64
+# Compiler
65
+%bcond_without clang
66
# Chromium built with GCC 11 and LTO enabled crashes (boo#1194055)
67
-%bcond_with lto
68
+%bcond_without lto
69
+%bcond_without pipewire
70
+%bcond_without system_zlib
71
+%bcond_with system_vpx
72
+# FFmpeg version
73
+%if %{with ffmpeg_51}
74
+%define ffmpeg_version 59
75
+%else
76
+%define ffmpeg_version 58
77
+%endif
78
Name: chromium-ffmpeg-extra
79
-Version: 103.0.5060.114
80
+Version: 114.0.5735.198
81
Release: 0
82
Summary: Google's open source browser project
83
License: BSD-3-Clause AND LGPL-2.1-or-later
84
85
Patch6: gcc-enable-lto.patch
86
# Do not use unrar code, it is non-free
87
Patch7: chromium-norar.patch
88
-# revert location on old GCC on 15.1, 15.2 gets it right tho
89
-Patch8: no-location-leap151.patch
90
Patch9: system-libdrm.patch
91
Patch10: chromium-disable-parallel-gold.patch
92
-Patch11: chromium-lp151-old-drm.patch
93
# gentoo/fedora/arch patchset
94
-Patch12: chromium-78-protobuf-RepeatedPtrField-export.patch
95
-Patch15: chromium-103-compiler.patch
96
-Patch17: chromium-86-ImageMemoryBarrierData-init.patch
97
-Patch21: chromium-gcc11.patch
98
+Patch15: chromium-110-compiler.patch
99
Patch40: chromium-91-java-only-allowed-in-android-builds.patch
100
-Patch50: chromium-clang-nomerge.patch
101
Patch62: chromium-93-ffmpeg-4.4.patch
102
-Patch63: chromium-ffmpeg-lp152.patch
103
-Patch65: chromium-94-sql-no-assert.patch
104
Patch68: chromium-94-ffmpeg-roll.patch
105
-Patch69: chromium-93-InkDropHost-crash.patch
106
-Patch78: chromium-98-EnumTable-crash.patch
107
Patch87: chromium-98-gtk4-build.patch
108
Patch90: chromium-100-InMilliseconds-constexpr.patch
109
Patch98: chromium-102-regex_pattern-array.patch
110
-Patch101: chromium-103-FrameLoadRequest-type.patch
111
-Patch102: chromium-103-SubstringSetMatcher-packed.patch
112
-Patch103: chromium-103-VirtualCursor-std-layout.patch
113
Patch201: chromium-86-fix-vaapi-on-intel.patch
114
# PATCH-FIX-SUSE: allow prop codecs to be set with chromium branding
115
Patch202: chromium-prop-codecs.patch
116
+Patch203: chromium-106-ffmpeg-duration.patch
117
+Patch205: chromium-disable-GlobalMediaControlsCastStartStop.patch
118
+Patch208: chromium-icu72-2.patch
119
+Patch210: chromium-110-system-libffi.patch
120
+Patch211: gcc13-fix.patch
121
+Patch214: chromium-113-webview-namespace.patch
122
+Patch215: chromium-113-webauth-include-variant.patch
123
+Patch216: chromium-113-typename.patch
124
+Patch217: chromium-114-workaround_clang_bug-structured_binding.patch
125
+Patch218: chromium-114-lld-argument.patch
126
+%if 0%{?sle_version} == 150400
127
+Patch300: chromium-114-revert-av1enc-lp154.patch
128
+%endif
129
BuildRequires: SDL-devel
130
BuildRequires: bison
131
BuildRequires: cups-devel
132
133
BuildRequires: gn >= 0.1807
134
BuildRequires: gperf
135
BuildRequires: hicolor-icon-theme
136
+BuildRequires: (python3 >= 3.7 or python3-dataclasses)
137
+BuildRequires: (python3-importlib-metadata if python3-base < 3.8)
138
BuildRequires: golang(API)
139
# Java used during build
140
BuildRequires: java-openjdk-headless
141
-BuildRequires: libcap-devel
142
BuildRequires: libdc1394
143
BuildRequires: libgcrypt-devel
144
BuildRequires: libgsm-devel
145
146
BuildRequires: libpng-devel
147
BuildRequires: memory-constraints
148
BuildRequires: nasm
149
-BuildRequires: ncurses-devel
150
BuildRequires: ninja >= 1.7.2
151
BuildRequires: nodejs >= 8.0
152
BuildRequires: pam-devel
153
154
BuildRequires: pkgconfig(dri)
155
BuildRequires: pkgconfig(expat)
156
BuildRequires: pkgconfig(flac++)
157
+BuildRequires: pkgconfig(form)
158
+BuildRequires: pkgconfig(formw)
159
BuildRequires: pkgconfig(gbm)
160
BuildRequires: pkgconfig(glib-2.0)
161
BuildRequires: pkgconfig(hunspell)
162
163
BuildRequires: pkgconfig(kadm-client)
164
BuildRequires: pkgconfig(kdb)
165
BuildRequires: pkgconfig(krb5)
166
-BuildRequires: pkgconfig(libavcodec)
167
-BuildRequires: pkgconfig(libavfilter)
168
-BuildRequires: pkgconfig(libavformat) >= 58
169
-BuildRequires: pkgconfig(libavutil)
170
+BuildRequires: pkgconfig(libcap)
171
BuildRequires: pkgconfig(libcrypto)
172
BuildRequires: pkgconfig(libcurl)
173
BuildRequires: pkgconfig(libdc1394-2)
174
BuildRequires: pkgconfig(libdrm)
175
BuildRequires: pkgconfig(libelf)
176
+BuildRequires: pkgconfig(libevdev)
177
BuildRequires: pkgconfig(libevent)
178
BuildRequires: pkgconfig(libexif)
179
BuildRequires: pkgconfig(libffi)
180
181
BuildRequires: pkgconfig(libwebp) >= 0.4.0
182
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.5
183
BuildRequires: pkgconfig(libxslt)
184
+BuildRequires: pkgconfig(menu)
185
+BuildRequires: pkgconfig(menuw)
186
BuildRequires: pkgconfig(minizip)
187
+BuildRequires: pkgconfig(ncurses)
188
+BuildRequires: pkgconfig(ncurses++)
189
+BuildRequires: pkgconfig(ncurses++w)
190
+BuildRequires: pkgconfig(ncursesw)
191
BuildRequires: pkgconfig(nspr) >= 4.9.5
192
BuildRequires: pkgconfig(nss) >= 3.26
193
BuildRequires: pkgconfig(ogg)
194
BuildRequires: pkgconfig(openssl)
195
BuildRequires: pkgconfig(opus) >= 1.3.1
196
+BuildRequires: pkgconfig(panel)
197
+BuildRequires: pkgconfig(panelw)
198
BuildRequires: pkgconfig(python3)
199
BuildRequires: pkgconfig(re2)
200
BuildRequires: pkgconfig(schroedinger-1.0)
201
BuildRequires: pkgconfig(slang)
202
BuildRequires: pkgconfig(sqlite3)
203
BuildRequires: pkgconfig(theora) >= 1.1
204
+BuildRequires: pkgconfig(tic)
205
+BuildRequires: pkgconfig(tinfo)
206
BuildRequires: pkgconfig(vdpau)
207
BuildRequires: pkgconfig(vorbis)
208
BuildRequires: pkgconfig(wayland-client)
209
210
BuildRequires: pkgconfig(xtst)
211
Requires: xdg-utils
212
Requires(pre): permissions
213
-
214
# no 32bit supported and it takes ages to build
215
ExclusiveArch: x86_64 aarch64 riscv64
216
%if 0%{?suse_version} <= 1500
217
218
%else
219
BuildRequires: pkgconfig(gtk+-3.0)
220
%endif
221
+BuildRequires: pkgconfig(libavcodec)
222
+BuildRequires: pkgconfig(libavfilter)
223
+BuildRequires: pkgconfig(libavformat) >= %{ffmpeg_version}
224
+BuildRequires: pkgconfig(libavutil)
225
+%if %{with system_avif}
226
+BuildRequires: pkgconfig(libavif)
227
+BuildRequires: pkgconfig(libyuv)
228
+%endif
229
+%if %{with qt}
230
+BuildRequires: pkgconfig(Qt5Core)
231
+BuildRequires: pkgconfig(Qt5Widgets)
232
+%endif
233
+%if %{with qt6}
234
+BuildRequires: pkgconfig(Qt6Core)
235
+BuildRequires: pkgconfig(Qt6Widgets)
236
+%endif
237
%if %{with clang}
238
-%if %{?suse_version} < 1550
239
-BuildRequires: clang12
240
-BuildRequires: gcc11
241
-BuildRequires: libstdc++6-devel-gcc11
242
-BuildRequires: lld11
243
-BuildRequires: llvm11
244
-%else
245
+%if 0%{?suse_version} < 1550
246
+BuildRequires: clang%{llvm_version}
247
+BuildRequires: gcc%{gcc_version}
248
+BuildRequires: libstdc++6-devel-gcc%{gcc_version}
249
+BuildRequires: lld%{llvm_version}
250
+BuildRequires: llvm%{llvm_version}
251
#!BuildIgnore: gcc
252
-BuildRequires: clang11
253
-BuildRequires: gcc11
254
-BuildRequires: libstdc++6-devel-gcc11
255
+%else
256
+BuildRequires: clang
257
+BuildRequires: libstdc++-devel
258
BuildRequires: lld
259
BuildRequires: llvm
260
%endif
261
%endif
262
%if %{without clang}
263
BuildRequires: binutils-gold
264
-%if %{?suse_version} >= 1550
265
-BuildRequires: gcc12
266
-BuildRequires: gcc12-c++
267
+%if 0%{?suse_version} >= 1550
268
+BuildRequires: gcc
269
+BuildRequires: gcc-c++
270
%else
271
-BuildRequires: gcc11
272
-BuildRequires: gcc11-c++
273
+BuildRequires: gcc%{gcc_version}
274
+BuildRequires: gcc%{gcc_version}-c++
275
%endif
276
%endif
277
278
279
%if 0%{?suse_version} >= 1550
280
patch -R -p1 < %{PATCH68}
281
%endif
282
+%if %{without ffmpeg_51}
283
patch -R -p1 < %{SOURCE4}
284
+%endif
285
286
%build
287
# esbuild
288
289
ln -sfn %{_bindir}/$PYTHON $HOME/bin/python
290
export PATH="$HOME/bin/:$PATH"
291
292
-# use our wrapper (disabled)
293
-#rm chrome/installer/linux/common/wrapper
294
-#cp %{SOURCE106} chrome/installer/linux/common/wrapper
295
+# qt
296
+%if %{with qt}
297
+export PATH="$PATH:%{_libdir}/qt5/bin"
298
+%endif
299
+
300
+# use our wrapper
301
+rm chrome/installer/linux/common/wrapper
302
+cp %{SOURCE106} chrome/installer/linux/common/wrapper
303
304
# Remove bundled libs
305
keeplibs=(
306
307
net/third_party/uri_template
308
third_party/abseil-cpp
309
third_party/angle
310
- third_party/angle/src/common/third_party/base
311
- third_party/angle/src/common/third_party/smhasher
312
third_party/angle/src/common/third_party/xxhash
313
+ third_party/angle/src/third_party/ceval
314
third_party/angle/src/third_party/libXNVCtrl
315
- third_party/angle/src/third_party/trace_event
316
+ third_party/angle/src/third_party/systeminfo
317
third_party/angle/src/third_party/volk
318
third_party/apple_apsl
319
third_party/axe-core
320
+ third_party/bidimapper
321
third_party/blink
322
third_party/boringssl
323
third_party/boringssl/src/third_party/fiat
324
325
third_party/crashpad/crashpad/third_party/zlib
326
third_party/crc32c
327
third_party/cros_system_api
328
+ third_party/content_analysis_sdk
329
third_party/dav1d
330
third_party/dawn
331
third_party/dawn/third_party
332
333
third_party/devtools-frontend/src/front_end/third_party/i18n
334
third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
335
third_party/devtools-frontend/src/front_end/third_party/lighthouse
336
- third_party/devtools-frontend/src/front_end/third_party/lit-html
337
third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
338
third_party/devtools-frontend/src/front_end/third_party/marked
339
third_party/devtools-frontend/src/front_end/third_party/puppeteer
340
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
341
third_party/devtools-frontend/src/front_end/third_party/wasmparser
342
third_party/devtools-frontend/src/third_party
343
third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
344
345
third_party/google_input_tools/third_party/closure_library
346
third_party/google_input_tools/third_party/closure_library/third_party/closure
347
third_party/googletest
348
- third_party/harfbuzz-ng/utils
349
third_party/highway
350
third_party/hunspell
351
third_party/iccjpeg
352
third_party/inspector_protocol
353
+ third_party/ipcz
354
third_party/jinja2
355
third_party/jsoncpp
356
third_party/jstemplate
357
358
third_party/libaom/source/libaom/third_party/fastfeat
359
third_party/libaom/source/libaom/third_party/vector
360
third_party/libaom/source/libaom/third_party/x86inc
361
- third_party/libavif
362
+ third_party/libaom/source/libaom/third_party/SVT-AV1
363
third_party/libgav1
364
- third_party/libgifcodec
365
third_party/libjingle
366
- third_party/libjxl
367
third_party/libphonenumber
368
third_party/libsecret
369
third_party/libsrtp
370
371
third_party/libx11/src
372
third_party/libxcb-keysyms/keysyms
373
third_party/libxml/chromium
374
- third_party/libyuv
375
third_party/libzip
376
third_party/lottie
377
third_party/lss
378
379
third_party/maldoca
380
third_party/maldoca/src/third_party
381
third_party/markupsafe
382
+ third_party/material_color_utilities
383
third_party/mesa
384
third_party/metrics_proto
385
third_party/minigbm
386
387
third_party/nasm
388
third_party/nearby
389
third_party/node
390
- third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
391
+ third_party/omnibox_proto
392
third_party/one_euro_filter
393
third_party/openscreen
394
third_party/openscreen/src/third_party/mozilla
395
396
third_party/pdfium/third_party/bigint
397
third_party/pdfium/third_party/freetype
398
third_party/pdfium/third_party/lcms
399
- third_party/pdfium/third_party/libopenjpeg20
400
- third_party/pdfium/third_party/libpng16
401
third_party/pdfium/third_party/libtiff
402
third_party/pdfium/third_party/skia_shared
403
+ third_party/pdfium/third_party/libopenjpeg
404
third_party/perfetto
405
third_party/perfetto/protos/third_party/chromium
406
third_party/pffft
407
408
third_party/private-join-and-compute
409
third_party/private_membership
410
third_party/protobuf
411
- third_party/protobuf/third_party/six
412
third_party/pthreadpool
413
third_party/pyjson5
414
+ third_party/pyyaml
415
third_party/qcms
416
third_party/rnnoise
417
third_party/ruy
418
third_party/s2cellid
419
third_party/securemessage
420
+ third_party/selenium-atoms
421
third_party/shell-encryption
422
third_party/simplejson
423
third_party/skia
424
- third_party/skia/include/third_party/skcms/
425
third_party/skia/include/third_party/vulkan/
426
- third_party/skia/third_party/skcms
427
third_party/skia/third_party/vulkan
428
third_party/smhasher
429
third_party/sqlite
430
431
third_party/swiftshader/third_party/SPIRV-Headers
432
third_party/swiftshader/third_party/SPIRV-Tools
433
third_party/swiftshader/third_party/subzero
434
+ third_party/tensorflow_models
435
third_party/tensorflow-text
436
third_party/tflite
437
third_party/tflite/src/third_party/eigen3
438
439
third_party/utf
440
third_party/vulkan
441
third_party/wayland
442
- third_party/web-animations-js
443
third_party/webdriver
444
third_party/webgpu-cts
445
third_party/webrtc
446
447
v8/src/third_party/siphash
448
v8/src/third_party/utf8-decoder
449
v8/src/third_party/valgrind
450
+ v8/third_party/glibc
451
v8/third_party/inspector_protocol
452
v8/third_party/v8/builtins
453
)
454
455
third_party/libvpx/source/libvpx/third_party/x86inc
456
)
457
%endif
458
+%if !%{with system_avif}
459
+keeplibs+=( third_party/libyuv )
460
+keeplibs+=( third_party/libavif )
461
+%endif
462
# needed due to bugs in GN
463
keeplibs+=(
464
third_party/speech-dispatcher
465
466
%if %{with clang}
467
export CC=clang
468
export CXX=clang++
469
+export AR=llvm-ar
470
+export NM=llvm-nm
471
+export RANLIB=llvm-ranlib
472
%else
473
%if 0%{?suse_version} <= 1500
474
-export CC=gcc-11
475
-export CXX=g++-11
476
+export CC=gcc-%{gcc_version}
477
+export CXX=g++-%{gcc_version}
478
# some still call gcc/g++
479
ln -sfn %{_bindir}/$CC $HOME/bin/gcc
480
ln -sfn %{_bindir}/$CXX $HOME/bin/g++
481
export PATH="$HOME/bin/:$PATH"
482
%else
483
-export CC=gcc-12
484
-export CXX=g++-12
485
-# some still call gcc/g++
486
-ln -sfn %{_bindir}/$CC $HOME/bin/gcc
487
-ln -sfn %{_bindir}/$CXX $HOME/bin/g++
488
-export PATH="$HOME/bin/:$PATH"
489
-%endif
490
+export CC=gcc
491
+export CXX=g++
492
%endif
493
export AR=ar
494
export NM=nm
495
+export RANLIB=ranlib
496
+%endif
497
# REDUCE DEBUG as it gets TOO large
498
ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g / /g' -e 's/ -g / /g' -e 's/ -g$//g'`"
499
export CXXFLAGS="${ARCH_FLAGS} -Wno-return-type"
500
501
%if %{with system_vpx}
502
gn_system_libraries+=( libvpx )
503
%endif
504
+%if %{with system_avif}
505
+gn_system_libraries+=( libyuv )
506
+gn_system_libraries+=( libavif )
507
+%endif
508
build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries@}
509
510
# Create the configuration for GN
511
512
myconf_gn+=" is_component_build=false"
513
myconf_gn+=" use_sysroot=false"
514
myconf_gn+=" fatal_linker_warnings=false"
515
-myconf_gn+=" use_allocator=\"partition\""
516
myconf_gn+=" use_allocator_shim=true"
517
myconf_gn+=" use_partition_alloc=true"
518
myconf_gn+=" disable_fieldtrial_testing_config=true"
519
520
myconf_gn+=" rtc_use_h264=false"
521
myconf_gn+=" use_v8_context_snapshot=true"
522
myconf_gn+=" v8_use_external_startup_data=true"
523
+myconf_gn+=" enable_rust=false"
524
%if %{with gtk4}
525
myconf_gn+=" gtk_version=4"
526
%endif
527
+%if %{without qt}
528
+myconf_gn+=" use_qt=false"
529
+%endif
530
+%if %{with qt6}
531
+myconf_gn+=" use_qt6=true"
532
+%endif
533
# See dependency logic in third_party/BUILD.gn
534
%if %{with system_harfbuzz}
535
myconf_gn+=" use_system_harfbuzz=true"
536
537
myconf_gn+=" is_clang=false"
538
myconf_gn+=" use_gold=true"
539
%endif
540
-%if %{with lto}
541
+%if %{with lto} && %{without clang}
542
myconf_gn+=" gcc_lto=true"
543
%endif
544
%if %{with system_icu}
545
546
547
%ifarch aarch64
548
myconf_gn+=" host_cpu=\"arm64\""
549
+%if %{with arm_bti}
550
+myconf_gn+=" arm_control_flow_integrity=\"standard\""
551
+%else
552
myconf_gn+=" arm_control_flow_integrity=\"none\""
553
%endif
554
+%endif
555
556
# GN does not support passing cflags:
557
# https://bugs.chromium.org/p/chromium/issues/detail?id=642016
558
chromium-103-FrameLoadRequest-type.patch
Deleted
28
1
2
-From 491bf840da4f76fa3591cc0aa2f4c19cdbe57ec4 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Thu, 12 May 2022 11:58:29 +0000
5
-Subject: PATCH GCC: fix ambiguous references in blink::FrameLoadRequest
6
-
7
-Add namespace to avoid confusion.
8
----
9
- third_party/blink/renderer/core/loader/frame_load_request.h | 2 +-
10
- 1 file changed, 1 insertion(+), 1 deletion(-)
11
-
12
-diff --git a/third_party/blink/renderer/core/loader/frame_load_request.h b/third_party/blink/renderer/core/loader/frame_load_request.h
13
-index 444b25c..a86814d 100644
14
---- a/third_party/blink/renderer/core/loader/frame_load_request.h
15
-+++ b/third_party/blink/renderer/core/loader/frame_load_request.h
16
-@@ -179,7 +179,7 @@ struct CORE_EXPORT FrameLoadRequest {
17
- impression_ = impression;
18
- }
19
-
20
-- const absl::optional<Impression>& Impression() const { return impression_; }
21
-+ const absl::optional<blink::Impression>& Impression() const { return impression_; }
22
-
23
- bool CanDisplay(const KURL&) const;
24
-
25
---
26
-2.35.1
27
-
28
chromium-103-SubstringSetMatcher-packed.patch
Deleted
72
1
2
-From 3d274856e792a361336eb4ae1670bc9c1905f0cb Mon Sep 17 00:00:00 2001
3
-From: Steinar H. Gunderson <sesse@chromium.org>
4
-Date: Thu, 12 May 2022 16:42:40 +0200
5
-Subject: PATCH Make AhoCorasickNode 4-aligned.
6
-
7
-This should fix an issue where std::vector could allocate unaligned
8
-memory for AhoCorasickNode, and we'd then return a pointer to
9
-inline_edges, where a caller would expect the pointer to be aligned
10
-but it wasn't.
11
-
12
-Change-Id: Id9dff044c61f8e46062c63b8480b18ebc68c4862
13
----
14
-
15
-diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
16
-index e110047..ef0b750 100644
17
---- a/base/substring_set_matcher/substring_set_matcher.cc
18
-+++ b/base/substring_set_matcher/substring_set_matcher.cc
19
-@@ -424,7 +424,12 @@
20
- edges_.inline_edgesnum_edges() = AhoCorasickEdge{label, node};
21
- if (label == kFailureNodeLabel) {
22
- // Make sure that kFailureNodeLabel is first.
23
-- std::swap(edges_.inline_edges0, edges_.inline_edgesnum_edges());
24
-+ // NOTE: We don't use std::swap here, because GCC
25
-+ // doesn't understand that inline_edges is 4-aligned
26
-+ // and gives a warning.
27
-+ AhoCorasickEdge temp = edges_.inline_edges0;
28
-+ edges_.inline_edges0 = edges_.inline_edgesnum_edges();
29
-+ edges_.inline_edgesnum_edges() = temp;
30
- }
31
- --num_free_edges_;
32
- return;
33
-diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
34
-index e110047..ef0b750 100644
35
---- a/base/substring_set_matcher/substring_set_matcher.h
36
-+++ b/base/substring_set_matcher/substring_set_matcher.h
37
-@@ -154,8 +154,9 @@
38
- static constexpr uint32_t kEmptyLabel = 0x103;
39
-
40
- // A node in the trie, packed tightly together so that it occupies 12 bytes
41
-- // (both on 32- and 64-bit platforms).
42
-- class AhoCorasickNode {
43
-+ // (both on 32- and 64-bit platforms), but aligned to at least 4 (see the
44
-+ // comment on edges_).
45
-+ class alignas(AhoCorasickEdge) AhoCorasickNode {
46
- public:
47
- AhoCorasickNode();
48
- ~AhoCorasickNode();
49
-@@ -178,6 +179,10 @@
50
- NodeID GetEdgeNoInline(uint32_t label) const;
51
- void SetEdge(uint32_t label, NodeID node);
52
- const AhoCorasickEdge* edges() const {
53
-+ // NOTE: Returning edges_.inline_edges here is fine, because it's
54
-+ // the first thing in the struct (see the comment on edges_).
55
-+ DCHECK_EQ(0u, reinterpret_cast<uintptr_t>(edges_.inline_edges) %
56
-+ alignof(AhoCorasickEdge));
57
- return edges_capacity_ == 0 ? edges_.inline_edges : edges_.edges;
58
- }
59
-
60
-@@ -258,6 +263,11 @@
61
- // in the first slot if it exists (ie., is not equal to kRootID), since we
62
- // need to access that label during every single node we look at during
63
- // traversal.
64
-+ //
65
-+ // NOTE: Keep this the first member in the struct, so that inline_edges gets
66
-+ // 4-aligned (since the class is marked as such, despite being packed.
67
-+ // Otherwise, edges() can return an unaligned pointer marked as aligned
68
-+ // (the unalignedness gets lost).
69
- static constexpr int kNumInlineEdges = 2;
70
- union {
71
- // Out-of-line edge storage, having room for edges_capacity_ elements.
72
chromium-103-VirtualCursor-std-layout.patch
Deleted
233
1
2
-From 144479ad7b4287bee4067f95e4218f614798a865 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Sun, 16 Jan 2022 19:15:26 +0000
5
-Subject: PATCH sql: make VirtualCursor standard layout type
6
-
7
-sql::recover::VirtualCursor needs to be a standard layout type, but
8
-has members of type std::unique_ptr. However, std::unique_ptr is not
9
-guaranteed to be standard layout. Compiling with clang combined with
10
-gcc-11 libstdc++ fails because of this.
11
-
12
-Bug: 1189788
13
-Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
14
----
15
-
16
-diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
17
-index cc9420e5..f12d8fa 100644
18
---- a/sql/recover_module/btree.cc
19
-+++ b/sql/recover_module/btree.cc
20
-@@ -136,16 +136,22 @@
21
- "Move the destructor to the .cc file if it's non-trival");
22
- #endif // !DCHECK_IS_ON()
23
-
24
--LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
25
-- : page_id_(db_reader->page_id()),
26
-- db_reader_(db_reader),
27
-- cell_count_(ComputeCellCount(db_reader)),
28
-- next_read_index_(0),
29
-- last_record_size_(0) {
30
-+LeafPageDecoder::LeafPageDecoder() noexcept = default;
31
-+
32
-+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
33
-+ page_id_ = db_reader->page_id();
34
-+ db_reader_ = db_reader;
35
-+ cell_count_ = ComputeCellCount(db_reader);
36
-+ next_read_index_ = 0;
37
-+ last_record_size_ = 0;
38
- DCHECK(IsOnValidPage(db_reader));
39
- DCHECK(DatabasePageReader::IsValidPageId(page_id_));
40
- }
41
-
42
-+void LeafPageDecoder::Reset() {
43
-+ db_reader_ = nullptr;
44
-+}
45
-+
46
- bool LeafPageDecoder::TryAdvance() {
47
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
48
- DCHECK(CanAdvance());
49
-diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
50
-index eaa087a5..df0e0c9 100644
51
---- a/sql/recover_module/btree.h
52
-+++ b/sql/recover_module/btree.h
53
-@@ -101,9 +101,7 @@
54
- public:
55
- // Creates a decoder for a DatabasePageReader's last read page.
56
- //
57
-- // |db_reader| must have been used to read an inner page of a table B-tree.
58
-- // |db_reader| must outlive this instance.
59
-- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
60
-+ LeafPageDecoder() noexcept;
61
- ~LeafPageDecoder() noexcept = default;
62
-
63
- LeafPageDecoder(const LeafPageDecoder&) = delete;
64
-@@ -151,6 +149,17 @@
65
- // read as long as CanAdvance() returns true.
66
- bool TryAdvance();
67
-
68
-+ // Initialize with DatabasePageReader
69
-+ // |db_reader| must have been used to read an inner page of a table B-tree.
70
-+ // |db_reader| must outlive this instance.
71
-+ void Initialize(DatabasePageReader* db_reader);
72
-+
73
-+ // Reset internal DatabasePageReader
74
-+ void Reset();
75
-+
76
-+ // True if DatabasePageReader is valid
77
-+ bool IsValid() { return (db_reader_ != nullptr); }
78
-+
79
- // True if the given reader may point to an inner page in a table B-tree.
80
- //
81
- // The last ReadPage() call on |db_reader| must have succeeded.
82
-@@ -164,14 +173,14 @@
83
- static int ComputeCellCount(DatabasePageReader* db_reader);
84
-
85
- // The number of the B-tree page this reader is reading.
86
-- const int64_t page_id_;
87
-+ int64_t page_id_;
88
- // Used to read the tree page.
89
- //
90
- // Raw pointer usage is acceptable because this instance's owner is expected
91
- // to ensure that the DatabasePageReader outlives this.
92
-- DatabasePageReader* const db_reader_;
93
-+ DatabasePageReader* db_reader_;
94
- // Caches the ComputeCellCount() value for this reader's page.
95
-- const int cell_count_ = ComputeCellCount(db_reader_);
96
-+ int cell_count_;
97
-
98
- // The reader's cursor state.
99
- //
100
-diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
101
-index 4f827ed..240de499 100644
102
---- a/sql/recover_module/cursor.cc
103
-+++ b/sql/recover_module/cursor.cc
104
-@@ -28,7 +28,7 @@
105
- int VirtualCursor::First() {
106
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
107
- inner_decoders_.clear();
108
-- leaf_decoder_ = nullptr;
109
-+ leaf_decoder_.Reset();
110
-
111
- AppendPageDecoder(table_->root_page_id());
112
- return Next();
113
-@@ -38,18 +38,18 @@
114
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
115
- record_reader_.Reset();
116
-
117
-- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
118
-- if (leaf_decoder_.get()) {
119
-- if (!leaf_decoder_->CanAdvance()) {
120
-+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
121
-+ if (leaf_decoder_.IsValid()) {
122
-+ if (!leaf_decoder_.CanAdvance()) {
123
- // The leaf has been exhausted. Remove it from the DFS stack.
124
-- leaf_decoder_ = nullptr;
125
-+ leaf_decoder_.Reset();
126
- continue;
127
- }
128
-- if (!leaf_decoder_->TryAdvance())
129
-+ if (!leaf_decoder_.TryAdvance())
130
- continue;
131
-
132
-- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
133
-- leaf_decoder_->last_record_offset())) {
134
-+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
135
-+ leaf_decoder_.last_record_offset())) {
136
- continue;
137
- }
138
- if (!record_reader_.Initialize())
139
-@@ -101,13 +101,13 @@
140
- int64_t VirtualCursor::RowId() {
141
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
142
- DCHECK(record_reader_.IsInitialized());
143
-- DCHECK(leaf_decoder_.get());
144
-- return leaf_decoder_->last_record_rowid();
145
-+ DCHECK(leaf_decoder_.IsValid());
146
-+ return leaf_decoder_.last_record_rowid();
147
- }
148
-
149
- void VirtualCursor::AppendPageDecoder(int page_id) {
150
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
151
-- DCHECK(leaf_decoder_.get() == nullptr)
152
-+ DCHECK(!leaf_decoder_.IsValid())
153
- << __func__
154
- << " must only be called when the current path has no leaf decoder";
155
-
156
-@@ -115,7 +115,7 @@
157
- return;
158
-
159
- if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
160
-- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
161
-+ leaf_decoder_.Initialize(&db_reader_);
162
- return;
163
- }
164
-
165
-diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
166
-index 845b785..cc4e85f8 100644
167
---- a/sql/recover_module/cursor.h
168
-+++ b/sql/recover_module/cursor.h
169
-@@ -130,7 +130,7 @@
170
- std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
171
-
172
- // Decodes the leaf page containing records.
173
-- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
174
-+ LeafPageDecoder leaf_decoder_;
175
-
176
- SEQUENCE_CHECKER(sequence_checker_);
177
- };
178
-diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
179
-index 58e75de..69d98cef 100644
180
---- a/sql/recover_module/pager.cc
181
-+++ b/sql/recover_module/pager.cc
182
-@@ -23,8 +23,7 @@
183
- "ints are not appropriate for representing page IDs");
184
-
185
- DatabasePageReader::DatabasePageReader(VirtualTable* table)
186
-- : page_data_(std::make_unique<uint8_t>(table->page_size())),
187
-- table_(table) {
188
-+ : page_data_(table->page_size()), table_(table) {
189
- DCHECK(table != nullptr);
190
- DCHECK(IsValidPageSize(table->page_size()));
191
- }
192
-@@ -58,7 +57,7 @@
193
- "The |read_offset| computation above may overflow");
194
-
195
- int sqlite_status =
196
-- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
197
-+ RawRead(sqlite_file, read_size, read_offset, page_data_.data());
198
-
199
- // |page_id_| needs to be set to kInvalidPageId if the read failed.
200
- // Otherwise, future ReadPage() calls with the previous |page_id_| value
201
-diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
202
-index 07cac3cb..d08f093 100644
203
---- a/sql/recover_module/pager.h
204
-+++ b/sql/recover_module/pager.h
205
-@@ -6,8 +6,8 @@
206
- #define SQL_RECOVER_MODULE_PAGER_H_
207
-
208
- #include <cstdint>
209
--#include <memory>
210
- #include <ostream>
211
-+#include <vector>
212
-
213
- #include "base/check_op.h"
214
- #include "base/memory/raw_ptr.h"
215
-@@ -72,7 +72,7 @@
216
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
217
- DCHECK_NE(page_id_, kInvalidPageId)
218
- << "Successful ReadPage() required before accessing pager state";
219
-- return page_data_.get();
220
-+ return page_data_.data();
221
- }
222
-
223
- // The number of bytes in the page read by the last ReadPage() call.
224
-@@ -139,7 +139,7 @@
225
- int page_id_ = kInvalidPageId;
226
- // Stores the bytes of the last page successfully read by ReadPage().
227
- // The content is undefined if the last call to ReadPage() did not succeed.
228
-- const std::unique_ptr<uint8_t> page_data_;
229
-+ std::vector<uint8_t> page_data_;
230
- // Raw pointer usage is acceptable because this instance's owner is expected
231
- // to ensure that the VirtualTable outlives this.
232
- const raw_ptr<VirtualTable> table_;
233
chromium-103-compiler.patch
Deleted
237
1
2
-From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
3
-From: Mike Gilbert <floppym@gentoo.org>
4
-Date: Tue, 3 May 2022 10:51:55 +0000
5
-Subject: PATCH Disable various compiler configs
6
-
7
----
8
- build/config/compiler/BUILD.gn | 114 +++++----------------------------
9
- 1 file changed, 17 insertions(+), 97 deletions(-)
10
-
11
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
12
-index f378b95..cb2aeb3 100644
13
---- a/build/config/compiler/BUILD.gn
14
-+++ b/build/config/compiler/BUILD.gn
15
-@@ -286,9 +286,7 @@ config("compiler") {
16
-
17
- configs +=
18
- # See the definitions below.
19
-- ":clang_revision",
20
- ":rustc_revision",
21
-- ":compiler_cpu_abi",
22
- ":compiler_codegen",
23
- ":compiler_deterministic",
24
-
25
-@@ -522,31 +520,6 @@ config("compiler") {
26
- ldflags += "-Wl,-z,keep-text-section-prefix"
27
- }
28
-
29
-- if (is_clang && !is_nacl && current_os != "zos") {
30
-- cflags += "-fcrash-diagnostics-dir=" + clang_diagnostic_dir
31
--
32
-- # TODO(hans): Remove this once Clang generates better optimized debug info
33
-- # by default. https://crbug.com/765793
34
-- cflags +=
35
-- "-mllvm",
36
-- "-instcombine-lower-dbg-declare=0",
37
--
38
-- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
39
-- if (is_win) {
40
-- ldflags += "-mllvm:-instcombine-lower-dbg-declare=0"
41
-- } else {
42
-- ldflags += "-Wl,-mllvm,-instcombine-lower-dbg-declare=0"
43
-- }
44
-- }
45
--
46
-- # TODO(crbug.com/1235145): Investigate why/if this should be needed.
47
-- if (is_win) {
48
-- cflags += "/clang:-ffp-contract=off"
49
-- } else {
50
-- cflags += "-ffp-contract=off"
51
-- }
52
-- }
53
--
54
- # Rust compiler setup (for either clang or rustc).
55
- if (enable_rust) {
56
- defines += "RUST_ENABLED"
57
-@@ -1231,45 +1204,6 @@ config("compiler_deterministic") {
58
- }
59
- }
60
-
61
-- # Makes builds independent of absolute file path.
62
-- if (is_clang && strip_absolute_paths_from_debug_symbols) {
63
-- # If debug option is given, clang includes $cwd in debug info by default.
64
-- # For such build, this flag generates reproducible obj files even we use
65
-- # different build directory like "out/feature_a" and "out/feature_b" if
66
-- # we build same files with same compile flag.
67
-- # Other paths are already given in relative, no need to normalize them.
68
-- if (is_nacl) {
69
-- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
70
-- cflags +=
71
-- "-Xclang",
72
-- "-fdebug-compilation-dir",
73
-- "-Xclang",
74
-- ".",
75
--
76
-- } else {
77
-- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
78
-- # and -fcoverage-compilation-dir=.
79
-- cflags += "-ffile-compilation-dir=."
80
-- }
81
-- if (!is_win) {
82
-- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
83
-- asmflags = "-Wa,-fdebug-compilation-dir,."
84
-- }
85
--
86
-- if (is_win && use_lld) {
87
-- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
88
-- # Absolutize source file paths for PDB. Pass the real build directory
89
-- # if the pdb contains source-level debug information and if linker
90
-- # reproducibility is not critical.
91
-- ldflags += "/PDBSourcePath:" + rebase_path(root_build_dir)
92
-- } else {
93
-- # Use a fake fixed base directory for paths in the pdb to make the pdb
94
-- # output fully deterministic and independent of the build directory.
95
-- ldflags += "/PDBSourcePath:o:\fake\prefix"
96
-- }
97
-- }
98
-- }
99
--
100
- # Tells the compiler not to use absolute paths when passing the default
101
- # paths to the tools it invokes. We don't want this because we don't
102
- # really need it and it can mess up the goma cache entries.
103
-@@ -1534,15 +1468,6 @@ config("default_warnings") {
104
- cflags += "-Wno-unqualified-std-cast-call"
105
- }
106
-
107
-- if (!is_nacl && !(is_chromeos ||
108
-- default_toolchain == "//build/toolchain/cros:target")) {
109
-- # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out
110
-- cflags +=
111
-- "-Xclang",
112
-- "-no-opaque-pointers",
113
--
114
-- }
115
--
116
- if (is_fuchsia) {
117
- # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
118
- cflags += "-Wno-deprecated-copy"
119
-@@ -1611,7 +1536,7 @@ config("chromium_code") {
120
- defines = "_HAS_NODISCARD"
121
- }
122
- } else {
123
-- cflags = "-Wall"
124
-+ cflags =
125
- if (treat_warnings_as_errors) {
126
- cflags += "-Werror"
127
-
128
-@@ -1620,10 +1545,6 @@ config("chromium_code") {
129
- # well.
130
- ldflags = "-Werror"
131
- }
132
-- if (is_clang) {
133
-- # Enable extra warnings for chromium_code when we control the compiler.
134
-- cflags += "-Wextra"
135
-- }
136
-
137
- # In Chromium code, we define __STDC_foo_MACROS in order to get the
138
- # C99 macros on Mac and Linux.
139
-@@ -1632,15 +1553,6 @@ config("chromium_code") {
140
- "__STDC_FORMAT_MACROS",
141
-
142
-
143
-- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
144
-- current_cpu != "s390" && current_cpu != "ppc64" &&
145
-- current_cpu != "mips" && current_cpu != "mips64") {
146
-- # Non-chromium code is not guaranteed to compile cleanly with
147
-- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
148
-- # disabled, so only do that for Release build.
149
-- defines += "_FORTIFY_SOURCE=2"
150
-- }
151
--
152
- if (is_mac) {
153
- cflags_objc = "-Wobjc-missing-property-synthesis"
154
- cflags_objcc = "-Wobjc-missing-property-synthesis"
155
-@@ -2031,7 +1943,8 @@ config("default_stack_frames") {
156
- }
157
-
158
- # Default "optimization on" config.
159
--config("optimize") {
160
-+config("optimize") { }
161
-+config("xoptimize") {
162
- if (is_win) {
163
- if (chrome_pgo_phase != 2) {
164
- # Favor size over speed, /O1 must be before the common flags.
165
-@@ -2069,7 +1982,8 @@ config("optimize") {
166
- }
167
-
168
- # Turn off optimizations.
169
--config("no_optimize") {
170
-+config("no_optimize") { }
171
-+config("xno_optimize") {
172
- if (is_win) {
173
- cflags =
174
- "/Od", # Disable optimization.
175
-@@ -2109,7 +2023,8 @@ config("no_optimize") {
176
- # Turns up the optimization level. On Windows, this implies whole program
177
- # optimization and link-time code generation which is very expensive and should
178
- # be used sparingly.
179
--config("optimize_max") {
180
-+config("optimize_max") { }
181
-+config("xoptimize_max") {
182
- if (is_nacl && is_nacl_irt) {
183
- # The NaCl IRT is a special case and always wants its own config.
184
- # Various components do:
185
-@@ -2142,7 +2057,8 @@ config("optimize_max") {
186
- #
187
- # TODO(crbug.com/621335) - rework how all of these configs are related
188
- # so that we don't need this disclaimer.
189
--config("optimize_speed") {
190
-+config("optimize_speed") { }
191
-+config("xoptimize_speed") {
192
- if (is_nacl && is_nacl_irt) {
193
- # The NaCl IRT is a special case and always wants its own config.
194
- # Various components do:
195
-@@ -2168,7 +2084,8 @@ config("optimize_speed") {
196
- }
197
- }
198
-
199
--config("optimize_fuzzing") {
200
-+config("optimize_fuzzing") { }
201
-+config("xoptimize_fuzzing") {
202
- cflags = "-O1" + common_optimize_on_cflags
203
- rustflags = "-Copt-level=1"
204
- ldflags = common_optimize_on_ldflags
205
-@@ -2287,7 +2204,8 @@ config("win_pdbaltpath") {
206
- }
207
-
208
- # Full symbols.
209
--config("symbols") {
210
-+config("symbols") { }
211
-+config("xsymbols") {
212
- if (is_win) {
213
- if (is_clang) {
214
- cflags = "/Z7" # Debug information in the .obj files.
215
-@@ -2415,7 +2333,8 @@ config("symbols") {
216
- # Minimal symbols.
217
- # This config guarantees to hold symbol for stack trace which are shown to user
218
- # when crash happens in unittests running on buildbot.
219
--config("minimal_symbols") {
220
-+config("minimal_symbols") { }
221
-+config("xminimal_symbols") {
222
- if (is_win) {
223
- # Functions, files, and line tables only.
224
- cflags =
225
-@@ -2488,7 +2407,8 @@ config("minimal_symbols") {
226
- # This configuration contains function names only. That is, the compiler is
227
- # told to not generate debug information and the linker then just puts function
228
- # names in the final debug information.
229
--config("no_symbols") {
230
-+config("no_symbols") { }
231
-+config("xno_symbols") {
232
- if (is_win) {
233
- ldflags = "/DEBUG"
234
-
235
---
236
-2.35.1
237
chromium-106-ffmpeg-duration.patch
Added
19
1
2
+Index: chromium-106.0.5249.91/media/filters/audio_file_reader.cc
3
+===================================================================
4
+--- chromium-106.0.5249.91.orig/media/filters/audio_file_reader.cc
5
++++ chromium-106.0.5249.91/media/filters/audio_file_reader.cc
6
+@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
7
+ // silence from being output. In the case where we are also discarding some
8
+ // portion of the packet (as indicated by a negative pts), we further want to
9
+ // adjust the duration downward by however much exists before zero.
10
+- if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
11
++ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
12
+ const base::TimeDelta pkt_duration = ConvertFromTimeBase(
13
+ glue_->format_context()->streamsstream_index_->time_base,
14
+- frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
15
++ frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
16
+ const base::TimeDelta frame_duration =
17
+ base::Seconds(frames_read / static_cast<double>(sample_rate_));
18
+
19
chromium-110-compiler.patch
Added
255
1
2
+From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
3
+From: Mike Gilbert <floppym@gentoo.org>
4
+Date: Tue, 15 Nov 2022 10:27:58 +0000
5
+Subject: PATCH Disable various compiler configs
6
+
7
+---
8
+ build/config/compiler/BUILD.gn | 134 +++++----------------------------
9
+ 1 file changed, 17 insertions(+), 117 deletions(-)
10
+
11
+Index: chromium-114.0.5735.90/build/config/compiler/BUILD.gn
12
+===================================================================
13
+--- chromium-114.0.5735.90.orig/build/config/compiler/BUILD.gn
14
++++ chromium-114.0.5735.90/build/config/compiler/BUILD.gn
15
+@@ -289,9 +289,7 @@ config("compiler") {
16
+
17
+ configs +=
18
+ # See the definitions below.
19
+- ":clang_revision",
20
+ ":rustc_revision",
21
+- ":compiler_cpu_abi",
22
+ ":compiler_codegen",
23
+ ":compiler_deterministic",
24
+
25
+@@ -540,37 +538,6 @@ config("compiler") {
26
+ ldflags += "-Wl,-z,keep-text-section-prefix"
27
+ }
28
+
29
+- if (is_clang && !is_nacl && current_os != "zos") {
30
+- cflags += "-fcrash-diagnostics-dir=" + clang_diagnostic_dir
31
+- if (save_reproducers_on_lld_crash && use_lld) {
32
+- ldflags +=
33
+- "-fcrash-diagnostics=all",
34
+- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
35
+-
36
+- }
37
+-
38
+- # TODO(hans): Remove this once Clang generates better optimized debug info
39
+- # by default. https://crbug.com/765793
40
+- cflags +=
41
+- "-mllvm",
42
+- "-instcombine-lower-dbg-declare=0",
43
+-
44
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
45
+- if (is_win) {
46
+- ldflags += "-mllvm:-instcombine-lower-dbg-declare=0"
47
+- } else {
48
+- ldflags += "-Wl,-mllvm,-instcombine-lower-dbg-declare=0"
49
+- }
50
+- }
51
+-
52
+- # TODO(crbug.com/1235145): Investigate why/if this should be needed.
53
+- if (is_win) {
54
+- cflags += "/clang:-ffp-contract=off"
55
+- } else {
56
+- cflags += "-ffp-contract=off"
57
+- }
58
+- }
59
+-
60
+ # C11/C++11 compiler flags setup.
61
+ # ---------------------------
62
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
63
+@@ -1346,46 +1313,6 @@ config("compiler_deterministic") {
64
+ }
65
+ }
66
+
67
+- # Makes builds independent of absolute file path.
68
+- if (is_clang && strip_absolute_paths_from_debug_symbols) {
69
+- # If debug option is given, clang includes $cwd in debug info by default.
70
+- # For such build, this flag generates reproducible obj files even we use
71
+- # different build directory like "out/feature_a" and "out/feature_b" if
72
+- # we build same files with same compile flag.
73
+- # Other paths are already given in relative, no need to normalize them.
74
+- if (is_nacl) {
75
+- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
76
+- cflags +=
77
+- "-Xclang",
78
+- "-fdebug-compilation-dir",
79
+- "-Xclang",
80
+- ".",
81
+-
82
+- } else {
83
+- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
84
+- # and -fcoverage-compilation-dir=.
85
+- cflags += "-ffile-compilation-dir=."
86
+- swiftflags += "-file-compilation-dir=."
87
+- }
88
+- if (!is_win) {
89
+- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
90
+- asmflags = "-Wa,-fdebug-compilation-dir,."
91
+- }
92
+-
93
+- if (is_win && use_lld) {
94
+- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
95
+- # Absolutize source file paths for PDB. Pass the real build directory
96
+- # if the pdb contains source-level debug information and if linker
97
+- # reproducibility is not critical.
98
+- ldflags += "/PDBSourcePath:" + rebase_path(root_build_dir)
99
+- } else {
100
+- # Use a fake fixed base directory for paths in the pdb to make the pdb
101
+- # output fully deterministic and independent of the build directory.
102
+- ldflags += "/PDBSourcePath:o:\fake\prefix"
103
+- }
104
+- }
105
+- }
106
+-
107
+ # Tells the compiler not to use absolute paths when passing the default
108
+ # paths to the tools it invokes. We don't want this because we don't
109
+ # really need it and it can mess up the goma cache entries.
110
+@@ -1404,27 +1331,6 @@ config("compiler_deterministic") {
111
+ }
112
+ }
113
+
114
+-config("clang_revision") {
115
+- if (is_clang && clang_base_path == default_clang_base_path) {
116
+- update_args =
117
+- "--print-revision",
118
+- "--verify-version=$clang_version",
119
+-
120
+- if (llvm_force_head_revision) {
121
+- update_args += "--llvm-force-head-revision"
122
+- }
123
+- clang_revision = exec_script("//tools/clang/scripts/update.py",
124
+- update_args,
125
+- "trim string")
126
+-
127
+- # This is here so that all files get recompiled after a clang roll and
128
+- # when turning clang on or off. (defines are passed via the command line,
129
+- # and build system rebuild things when their commandline changes). Nothing
130
+- # should ever read this define.
131
+- defines = "CR_CLANG_REVISION=\"$clang_revision\""
132
+- }
133
+-}
134
+-
135
+ config("rustc_revision") {
136
+ if (rustc_revision != "") {
137
+ # Similar to the above config, this is here so that all files get recompiled
138
+@@ -1714,7 +1620,7 @@ config("chromium_code") {
139
+ defines = "_HAS_NODISCARD"
140
+ }
141
+ } else {
142
+- cflags = "-Wall"
143
++ cflags =
144
+ if (treat_warnings_as_errors) {
145
+ cflags += "-Werror"
146
+
147
+@@ -1723,10 +1629,6 @@ config("chromium_code") {
148
+ # well.
149
+ ldflags = "-Werror"
150
+ }
151
+- if (is_clang) {
152
+- # Enable extra warnings for chromium_code when we control the compiler.
153
+- cflags += "-Wextra"
154
+- }
155
+
156
+ if (treat_warnings_as_errors) {
157
+ # Turn rustc warnings into the "deny" lint level, which produce compiler
158
+@@ -1744,16 +1646,6 @@ config("chromium_code") {
159
+ "__STDC_FORMAT_MACROS",
160
+
161
+
162
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
163
+- current_cpu != "s390" && current_cpu != "ppc64" &&
164
+- current_cpu != "mips" && current_cpu != "mips64" &&
165
+- current_cpu != "riscv64" && current_cpu != "loong64") {
166
+- # Non-chromium code is not guaranteed to compile cleanly with
167
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
168
+- # disabled, so only do that for Release build.
169
+- defines += "_FORTIFY_SOURCE=2"
170
+- }
171
+-
172
+ if (is_apple) {
173
+ cflags_objc = "-Wimplicit-retain-self"
174
+ cflags_objcc = "-Wimplicit-retain-self"
175
+@@ -2122,7 +2014,8 @@ config("default_stack_frames") {
176
+ }
177
+
178
+ # Default "optimization on" config.
179
+-config("optimize") {
180
++config("optimize") { }
181
++config("xoptimize") {
182
+ if (is_win) {
183
+ if (chrome_pgo_phase != 2) {
184
+ # Favor size over speed, /O1 must be before the common flags.
185
+@@ -2181,7 +2074,8 @@ config("optimize") {
186
+ }
187
+
188
+ # Turn off optimizations.
189
+-config("no_optimize") {
190
++config("no_optimize") { }
191
++config("xno_optimize") {
192
+ if (is_win) {
193
+ cflags =
194
+ "/Od", # Disable optimization.
195
+@@ -2221,7 +2115,8 @@ config("no_optimize") {
196
+ # Turns up the optimization level. On Windows, this implies whole program
197
+ # optimization and link-time code generation which is very expensive and should
198
+ # be used sparingly.
199
+-config("optimize_max") {
200
++config("optimize_max") { }
201
++config("xoptimize_max") {
202
+ if (is_nacl && is_nacl_irt) {
203
+ # The NaCl IRT is a special case and always wants its own config.
204
+ # Various components do:
205
+@@ -2254,7 +2149,8 @@ config("optimize_max") {
206
+ #
207
+ # TODO(crbug.com/621335) - rework how all of these configs are related
208
+ # so that we don't need this disclaimer.
209
+-config("optimize_speed") {
210
++config("optimize_speed") { }
211
++config("xoptimize_speed") {
212
+ if (is_nacl && is_nacl_irt) {
213
+ # The NaCl IRT is a special case and always wants its own config.
214
+ # Various components do:
215
+@@ -2280,7 +2176,8 @@ config("optimize_speed") {
216
+ }
217
+ }
218
+
219
+-config("optimize_fuzzing") {
220
++config("optimize_fuzzing") { }
221
++config("xoptimize_fuzzing") {
222
+ cflags = "-O1" + common_optimize_on_cflags
223
+ rustflags = "-Copt-level=1"
224
+ ldflags = common_optimize_on_ldflags
225
+@@ -2405,7 +2302,8 @@ config("win_pdbaltpath") {
226
+ }
227
+
228
+ # Full symbols.
229
+-config("symbols") {
230
++config("symbols") { }
231
++config("xsymbols") {
232
+ rustflags =
233
+ if (is_win) {
234
+ if (is_clang) {
235
+@@ -2548,7 +2446,8 @@ config("symbols") {
236
+ # Minimal symbols.
237
+ # This config guarantees to hold symbol for stack trace which are shown to user
238
+ # when crash happens in unittests running on buildbot.
239
+-config("minimal_symbols") {
240
++config("minimal_symbols") { }
241
++config("xminimal_symbols") {
242
+ if (is_win) {
243
+ # Functions, files, and line tables only.
244
+ cflags =
245
+@@ -2622,7 +2521,8 @@ config("minimal_symbols") {
246
+ # This configuration contains function names only. That is, the compiler is
247
+ # told to not generate debug information and the linker then just puts function
248
+ # names in the final debug information.
249
+-config("no_symbols") {
250
++config("no_symbols") { }
251
++config("xno_symbols") {
252
+ if (is_win) {
253
+ ldflags = "/DEBUG"
254
+
255
chromium-110-system-libffi.patch
Added
28
1
2
+Index: chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
3
+===================================================================
4
+--- chromium-110.0.5481.30.orig/build/config/linux/libffi/BUILD.gn
5
++++ chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
6
+@@ -4,21 +4,6 @@
7
+
8
+ import("//build/config/linux/pkg_config.gni")
9
+
10
+-declare_args() {
11
+- # Controls whether the build should use the version of libffi library shipped
12
+- # with the system. By default, we only use the system version on Chrome OS:
13
+- # on Linux, libffi must be statically linked to prevent a situation where the
14
+- # runtime version of libffi is different from the build-time version from the
15
+- # sysroot.
16
+- use_system_libffi = default_toolchain == "//build/toolchain/cros:target"
17
+-}
18
+-
19
+-if (use_system_libffi) {
20
+ pkg_config("libffi") {
21
+ packages = "libffi"
22
+ }
23
+-} else {
24
+- config("libffi") {
25
+- libs = ":libffi_pic.a"
26
+- }
27
+-}
28
chromium-113-typename.patch
Added
66
1
2
+diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc
3
+--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-05-03 17:46:37.194000834 +0200
4
++++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-05-03 17:48:05.170317575 +0200
5
+@@ -87,7 +87,7 @@ ItemSortKey GetSortKey(const Item& item)
6
+ // Helper to get an iterator to the last element in the cache. The cache
7
+ // must not be empty.
8
+ template <typename Item>
9
+-SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
10
++typename SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
11
+ CHECK(!cache.empty());
12
+ auto it = cache.end();
13
+ return std::prev(it);
14
+@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove
15
+ }
16
+
17
+ template <typename Id, typename Item>
18
+-SortedItems<Item>::iterator
19
++typename SortedItems<Item>::iterator
20
+ DownloadBubbleUpdateService::RemoveItemFromCacheByIter(
21
+- SortedItems<Item>::iterator iter,
22
++ typename SortedItems<Item>::iterator iter,
23
+ SortedItems<Item>& cache,
24
+ IterMap<Id, Item>& iter_map) {
25
+ CHECK(iter != cache.end());
26
+diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h
27
+--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me 2023-05-03 17:48:14.079551820 +0200
28
++++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h 2023-05-03 17:49:24.702387180 +0200
29
+@@ -208,8 +208,8 @@ class DownloadBubbleUpdateService
30
+
31
+ // Removes item if we already have the iterator to it. Returns next iterator.
32
+ template <typename Id, typename Item>
33
+- SortedItems<Item>::iterator RemoveItemFromCacheByIter(
34
+- SortedItems<Item>::iterator iter,
35
++ typename SortedItems<Item>::iterator RemoveItemFromCacheByIter(
36
++ typename SortedItems<Item>::iterator iter,
37
+ SortedItems<Item>& cache,
38
+ IterMap<Id, Item>& iter_map);
39
+
40
+diff --git a/print_backend_service_manager.h b/print_backend_service_manager.h.new
41
+index d812f3b..3352148 100644
42
+--- a/chrome/browser/printing/print_backend_service_manager.h
43
++++ b/chrome/browser/printing/print_backend_service_manager.h
44
+@@ -587,7 +587,7 @@ class PrintBackendServiceManager {
45
+ template <class... T>
46
+ void RunSavedCallbacks(RemoteSavedCallbacks<T...>& saved_callbacks,
47
+ const RemoteId& remote_id,
48
+- std::remove_reference<T>::type... result);
49
++ typename std::remove_reference<T>::type... result);
50
+
51
+ // Test support for client ID management.
52
+ static void SetClientsForTesting(
53
+diff --git a/print_backend_service_manager.cc b/print_backend_service_manager.cc.new
54
+index b5a4b52..224369c 100644
55
+--- a/chrome/browser/printing/print_backend_service_manager.cc
56
++++ b/chrome/browser/printing/print_backend_service_manager.cc
57
+@@ -1477,7 +1477,7 @@ template <class... T>
58
+ void PrintBackendServiceManager::RunSavedCallbacks(
59
+ RemoteSavedCallbacks<T...>& saved_callbacks,
60
+ const RemoteId& remote_id,
61
+- std::remove_reference<T>::type... result) {
62
++ typename std::remove_reference<T>::type... result) {
63
+ auto found_callbacks_map = saved_callbacks.find(remote_id);
64
+ if (found_callbacks_map == saved_callbacks.end())
65
+ return; // No callbacks to run.
66
chromium-113-webauth-include-variant.patch
Added
14
1
2
+Index: chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
3
+===================================================================
4
+--- chromium-114.0.5735.90.orig/chrome/browser/webauthn/authenticator_request_dialog_model.h
5
++++ chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
6
+@@ -7,6 +7,7 @@
7
+
8
+ #include <memory>
9
+ #include <string>
10
++#include <variant>
11
+ #include <vector>
12
+ #include <variant>
13
+
14
chromium-113-webview-namespace.patch
Added
15
1
2
+diff --git a/web_view_impl.cc b/web_view_impl.cc.new
3
+index f726627..c1d4d14 100644
4
+--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
5
++++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
6
+@@ -75,7 +75,7 @@ absl::optional<std::pair<std::string, int>> GetElementId(
7
+ if (element_id == nullptr) {
8
+ return absl::nullopt;
9
+ }
10
+- static const size_t separator_length = std::strlen(kElementIdSeparator);
11
++ static const size_t separator_length = strlen(kElementIdSeparator);
12
+ const size_t separator_pos = element_id->rfind(
13
+ kElementIdSeparator, std::string::npos, separator_length);
14
+ if (separator_pos == std::string::npos) {
15
chromium-114-lld-argument.patch
Added
20
1
2
+diff --git a/BUILD.gn b/BUILD.gn.new
3
+index 28c2255..7f89fe6 100644
4
+--- a/build/config/compiler/BUILD.gn
5
++++ b/build/config/compiler/BUILD.gn
6
+@@ -727,13 +727,6 @@ config("compiler") {
7
+
8
+ ldflags += "-Wl,-mllvm,-import-instr-limit=$import_instr_limit"
9
+
10
+- if (!is_chromeos) {
11
+- # TODO(https://crbug.com/972449): turn on for ChromeOS when that
12
+- # toolchain has this flag.
13
+- # We only use one version of LLVM within a build so there's no need to
14
+- # upgrade debug info, which can be expensive since it runs the verifier.
15
+- ldflags += "-Wl,-mllvm,-disable-auto-upgrade-debug-info"
16
+- }
17
+ }
18
+
19
+ # TODO(https://crbug.com/1211155): investigate why this isn't effective on
20
chromium-114-revert-av1enc-lp154.patch
Added
89
1
2
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
3
+--- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me 2023-05-21 10:05:00.357860329 +0200
4
++++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2023-05-21 10:18:09.665432735 +0200
5
+@@ -41,7 +41,6 @@
6
+ #include "media/gpu/gpu_video_encode_accelerator_helpers.h"
7
+ #include "media/gpu/h264_dpb.h"
8
+ #include "media/gpu/macros.h"
9
+-#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
10
+ #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
11
+ #include "media/gpu/vaapi/va_surface.h"
12
+ #include "media/gpu/vaapi/vaapi_common.h"
13
+@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
14
+
15
+ const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
16
+ if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
17
+- codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
18
++ codec != VideoCodec::kVP9) {
19
+ MEDIA_LOG(ERROR, media_log.get())
20
+ << "Unsupported profile: " << GetProfileName(config.output_profile);
21
+ return false;
22
+@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
23
+ break;
24
+ case VideoCodec::kVP8:
25
+ case VideoCodec::kVP9:
26
+- case VideoCodec::kAV1:
27
+ mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
28
+ break;
29
+ default:
30
+@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
31
+ vaapi_wrapper_, error_cb);
32
+ }
33
+ break;
34
+- case VideoCodec::kAV1:
35
+- if (!IsConfiguredForTesting()) {
36
+- encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
37
+- vaapi_wrapper_, error_cb);
38
+- }
39
+- break;
40
+ default:
41
+ NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
42
+ return;
43
+@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
44
+ case VideoCodec::kVP9:
45
+ picture = new VaapiVP9Picture(std::move(reconstructed_surface));
46
+ break;
47
+- case VideoCodec::kAV1:
48
+- picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
49
+- std::move(reconstructed_surface));
50
+- break;
51
+ default:
52
+ return nullptr;
53
+ }
54
+diff -up chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/BUILD.gn
55
+--- chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
56
++++ chromium-114.0.5735.35/media/gpu/BUILD.gn 2023-05-20 13:14:10.755183630 +0200
57
+@@ -373,10 +373,7 @@ source_set("common") {
58
+ "vp9_svc_layers.h",
59
+
60
+ configs += "//third_party/libvpx:libvpx_config"
61
+- deps +=
62
+- "//third_party/libaom:libaomrc",
63
+- "//third_party/libvpx:libvpxrc",
64
+-
65
++ deps += "//third_party/libvpx:libvpxrc"
66
+ }
67
+ if (use_libgav1_parser) {
68
+ sources +=
69
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
70
+--- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
71
++++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn 2023-05-20 13:14:10.756183626 +0200
72
+@@ -38,8 +38,6 @@ source_set("vaapi") {
73
+ sources =
74
+ "av1_vaapi_video_decoder_delegate.cc",
75
+ "av1_vaapi_video_decoder_delegate.h",
76
+- "av1_vaapi_video_encoder_delegate.cc",
77
+- "av1_vaapi_video_encoder_delegate.h",
78
+ "h264_vaapi_video_decoder_delegate.cc",
79
+ "h264_vaapi_video_decoder_delegate.h",
80
+ "h264_vaapi_video_encoder_delegate.cc",
81
+@@ -107,7 +105,6 @@ source_set("vaapi") {
82
+ "//media/gpu/chromeos:common",
83
+ "//media/parsers",
84
+ "//mojo/public/cpp/bindings",
85
+- "//third_party/libaom:libaomrc",
86
+ "//third_party/libvpx:libvpxrc",
87
+ "//third_party/libyuv",
88
+ "//ui/gfx",
89
chromium-114-workaround_clang_bug-structured_binding.patch
Added
83
1
2
+diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
3
+--- chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding 2023-05-11 03:36:27.000000000 +0200
4
++++ chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-05-14 11:49:42.558129164 +0200
5
+@@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori
6
+ : BuildGridSizingTree(&oof_children);
7
+
8
+ LayoutUnit intrinsic_block_size;
9
+- auto& grid_items, layout_data, tree_size = grid_sizing_tree.TreeRootData();
10
++ auto& g_i, l_d, t_s = grid_sizing_tree.TreeRootData();
11
++ auto& grid_items = g_i;
12
++ auto& layout_data = l_d;
13
++ auto& tree_size = t_s;
14
+
15
+ if (IsBreakInside(BreakToken())) {
16
+ // TODO(layout-dev): When we support variable inline-size fragments we'll
17
+@@ -520,8 +523,10 @@ wtf_size_t NGGridLayoutAlgorithm::BuildG
18
+ row_auto_repetitions);
19
+
20
+ bool has_nested_subgrid = false;
21
+- auto& grid_items, layout_data, subtree_size =
22
+- sizing_tree->CreateSizingData(opt_subgrid_data);
23
++ auto& g_i, l_d, s_s = sizing_tree->CreateSizingData(opt_subgrid_data);
24
++ auto& grid_items = g_i;
25
++ auto& layout_data = l_d;
26
++ auto& subtree_size = s_s;
27
+
28
+ if (!must_ignore_children) {
29
+ // Construct grid items that are not subgridded.
30
+@@ -650,8 +655,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
31
+ NGGridSizingTree sizing_tree;
32
+
33
+ if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
34
+- auto& grid_items, layout_data, subtree_size =
35
+- sizing_tree.CreateSizingData();
36
++ auto& g_i, l_d, s_s = sizing_tree.CreateSizingData();
37
++ auto& grid_items = g_i;
38
++ auto& layout_data = l_d;
39
++ auto& subtree_size = s_s;
40
+
41
+ const auto& node = Node();
42
+ grid_items =
43
+@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr
44
+ const absl::optional<GridTrackSizingDirection>& opt_track_direction) const {
45
+ DCHECK(sizing_subtree);
46
+
47
+- auto& grid_items, layout_data, subtree_size =
48
+- sizing_subtree.SubtreeRootData();
49
++ auto& g_i, l_d, s_s = sizing_subtree.SubtreeRootData();
50
++ auto& grid_items = g_i;
51
++ auto& layout_data = l_d;
52
++ auto& subtree_size = s_s;
53
+
54
+ auto InitAndCacheTrackSizes = &(GridTrackSizingDirection track_direction) {
55
+ InitializeTrackCollection(opt_subgrid_data, track_direction, &layout_data);
56
+@@ -1825,8 +1834,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
57
+ bool* opt_needs_additional_pass) const {
58
+ DCHECK(sizing_subtree);
59
+
60
+- auto& grid_items, layout_data, subtree_size =
61
+- sizing_subtree.SubtreeRootData();
62
++ auto& g_i, l_d, s_s = sizing_subtree.SubtreeRootData();
63
++ auto& grid_items = g_i;
64
++ auto& layout_data = l_d;
65
++ auto& subtree_size = s_s;
66
+
67
+ const bool is_for_columns = track_direction == kForColumns;
68
+ const bool has_non_definite_track =
69
+diff -up chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc
70
+--- chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me 2023-05-14 17:35:00.446844465 +0200
71
++++ chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc 2023-05-14 17:39:22.991733926 +0200
72
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
73
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
74
+ // Reject all outstanding promises.
75
+ DCHECK(thread_checker_.CalledOnValidThread());
76
+- for (auto& promise_id, promise : promises_) {
77
++ for (auto& p_i, p_e : promises_) {
78
++ auto& promise_id = p_i;
79
++ auto& promise = p_e;
80
+ TRACE_EVENT_NESTABLE_ASYNC_END1(
81
+ "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
82
+ "status", "cleared");
83
chromium-78-protobuf-RepeatedPtrField-export.patch
Deleted
15
1
2
-diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
3
-index b5b193c..4434854 100644
4
---- a/third_party/protobuf/src/google/protobuf/repeated_field.h
5
-+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
6
-@@ -804,7 +804,7 @@ class StringTypeHandler {
7
- // RepeatedPtrField is like RepeatedField, but used for repeated strings or
8
- // Messages.
9
- template <typename Element>
10
--class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
11
-+class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
12
- public:
13
- RepeatedPtrField();
14
- explicit RepeatedPtrField(Arena* arena);
15
chromium-86-ImageMemoryBarrierData-init.patch
Deleted
33
1
2
-From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Fri, 28 Aug 2020 07:23:29 +0000
5
-Subject: PATCH GCC: fix ImageMemoryBarrierData initialization
6
-
7
-GCC can't convert constant string to char40. Use const char * instead.
8
-Otherwise fails like this:
9
-
10
-src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert
11
-'...' from '<brace-enclosed initializer list>' to
12
-'const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>'
13
----
14
- third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +-
15
- 1 file changed, 1 insertion(+), 1 deletion(-)
16
-
17
-diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
18
-index af957d7..7fe82ae 100644
19
---- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
20
-+++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
21
-@@ -73,7 +73,7 @@ enum BarrierType
22
-
23
- struct ImageMemoryBarrierData
24
- {
25
-- char name44;
26
-+ const char *name;
27
-
28
- // The Vk layout corresponding to the ImageLayout key.
29
- VkImageLayout layout;
30
---
31
-2.26.2
32
-
33
chromium-93-InkDropHost-crash.patch
Deleted
26
1
2
-diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
3
---- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
4
-+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
5
-@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
6
- // Used to observe View and inform the InkDrop of host-transform changes.
7
- ViewLayerTransformObserver host_view_transform_observer_;
8
-
9
-+ // Declared before |ink_drop_|, because InkDropImpl may call
10
-+ // RemoveInkDropLayer on partly destructed InkDropHost. In
11
-+ // that case |ink_drop_mask_| must be still valid.
12
-+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
13
-+
14
- // Should not be accessed directly. Use GetInkDrop() instead.
15
- std::unique_ptr<InkDrop> ink_drop_;
16
-
17
-@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
18
- int ink_drop_small_corner_radius_ = 2;
19
- int ink_drop_large_corner_radius_ = 4;
20
-
21
-- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
22
--
23
- base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
24
- base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
25
- create_ink_drop_ripple_callback_;
26
chromium-94-sql-no-assert.patch
Deleted
17
1
2
---- a/sql/recover_module/cursor.h
3
-+++ b/sql/recover_module/cursor.h
4
-@@ -62,10 +62,12 @@
5
- // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor().
6
- static inline VirtualCursor* FromSqliteCursor(
7
- sqlite3_vtab_cursor* sqlite_cursor) {
8
-+#ifndef NDEBUG
9
- static_assert(std::is_standard_layout<VirtualCursor>::value,
10
- "needed for the reinterpret_cast below");
11
- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0,
12
- "sqlite_cursor_ must be the first member of the class");
13
-+#endif
14
- VirtualCursor* result = reinterpret_cast<VirtualCursor*>(sqlite_cursor);
15
- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
16
- return result;
17
chromium-98-EnumTable-crash.patch
Deleted
78
1
2
-diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
3
-index 842553a..89de703 100644
4
---- a/components/cast_channel/enum_table.h
5
-+++ b/components/cast_channel/enum_table.h
6
-@@ -8,6 +8,7 @@
7
- #include <cstdint>
8
- #include <cstring>
9
- #include <ostream>
10
-+#include <vector>
11
-
12
- #include "base/check_op.h"
13
- #include "base/notreached.h"
14
-@@ -187,7 +188,6 @@ class
15
- inline constexpr GenericEnumTableEntry(int32_t value);
16
- inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
17
-
18
-- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
19
- GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
20
-
21
- private:
22
-@@ -253,7 +253,6 @@ class EnumTable {
23
- constexpr Entry(E value, base::StringPiece str)
24
- : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
25
-
26
-- Entry(const Entry&) = delete;
27
- Entry& operator=(const Entry&) = delete;
28
- };
29
-
30
-@@ -312,15 +311,14 @@ class EnumTable {
31
- if (is_sorted_) {
32
- const std::size_t index = static_cast<std::size_t>(value);
33
- if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
34
-- const auto& entry = data_.begin()index;
35
-+ const auto& entry = data_index;
36
- if (ANALYZER_ASSUME_TRUE(entry.has_str()))
37
- return entry.str();
38
- }
39
- return absl::nullopt;
40
- }
41
- return GenericEnumTableEntry::FindByValue(
42
-- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
43
-- data_.size(), static_cast<int32_t>(value));
44
-+ &data_0, data_.size(), static_cast<int32_t>(value));
45
- }
46
-
47
- // This overload of GetString is designed for cases where the argument is a
48
-@@ -348,8 +346,7 @@ class EnumTable {
49
- // enum value directly.
50
- absl::optional<E> GetEnum(base::StringPiece str) const {
51
- auto* entry = GenericEnumTableEntry::FindByString(
52
-- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
53
-- data_.size(), str);
54
-+ &data_0, data_.size(), str);
55
- return entry ? static_cast<E>(entry->value) : absl::optional<E>();
56
- }
57
-
58
-@@ -364,7 +361,7 @@ class EnumTable {
59
- // Align the data on a cache line boundary.
60
- alignas(64)
61
- #endif
62
-- std::initializer_list<Entry> data_;
63
-+ const std::vector<Entry> data_;
64
- bool is_sorted_;
65
-
66
- constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
67
-@@ -376,8 +373,8 @@ class EnumTable {
68
-
69
- for (std::size_t i = 0; i < data.size(); i++) {
70
- for (std::size_t j = i + 1; j < data.size(); j++) {
71
-- const Entry& ei = data.begin()i;
72
-- const Entry& ej = data.begin()j;
73
-+ const Entry& ei = datai;
74
-+ const Entry& ej = dataj;
75
- DCHECK(ei.value != ej.value)
76
- << "Found duplicate enum values at indices " << i << " and " << j;
77
- DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
78
chromium-clang-nomerge.patch
Deleted
45
1
2
-Upstream-status: Inapproriate
3
-
4
-Upstream suggests to use Chromium's hermetic clang
5
-instead.
6
-
7
-Signed-off-by: Maksim Sisov <msisov@igalia.com>
8
----
9
-From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001
10
-From: Maksim Sisov <msisov@igalia.com>
11
-Date: Wed, 5 May 2021 15:20:43 +0300
12
-Subject: PATCH nomerge attribute on declaration is only available since
13
- clang 12
14
-
15
-This change fixes builds with older clangs that do not allow
16
-nomerge attributes on declaration. Otherwise, the following error
17
-is produced -
18
-
19
-build error: 'nomerge' attribute cannot be applied to a declaration
20
-
21
-See https://reviews.llvm.org/D92800
22
-
23
-Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1
24
----
25
- base/compiler_specific.h | 3 ++-
26
- 1 file changed, 2 insertions(+), 1 deletion(-)
27
-
28
-diff --git a/base/compiler_specific.h b/base/compiler_specific.h
29
-index 6693e9ea33e9..d3b425abe9ca 100644
30
---- a/base/compiler_specific.h
31
-+++ b/base/compiler_specific.h
32
-@@ -340,7 +340,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
33
- #endif // defined(__clang_analyzer__)
34
-
35
- // Use nomerge attribute to disable optimization of merging multiple same calls.
36
--#if defined(__clang__) && HAS_ATTRIBUTE(nomerge)
37
-+#if defined(__clang__) && (__clang_major__ >= 12) && \
38
-+ HAS_ATTRIBUTE(nomerge) && !defined(OS_CHROMEOS)
39
- #define NOMERGE clang::nomerge
40
- #else
41
- #define NOMERGE
42
---
43
-2.25.1
44
-
45
chromium-disable-GlobalMediaControlsCastStartStop.patch
Added
15
1
2
+Index: chromium-113.0.5672.53/chrome/browser/media/router/media_router_feature.cc
3
+===================================================================
4
+--- chromium-113.0.5672.53.orig/chrome/browser/media/router/media_router_feature.cc
5
++++ chromium-113.0.5672.53/chrome/browser/media/router/media_router_feature.cc
6
+@@ -68,7 +68,7 @@ BASE_FEATURE(kGlobalMediaControlsCastSta
7
+ #else
8
+ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
9
+ "GlobalMediaControlsCastStartStop",
10
+- base::FEATURE_ENABLED_BY_DEFAULT);
11
++ base::FEATURE_DISABLED_BY_DEFAULT);
12
+ #endif // BUILDFLAG(IS_CHROMEOS)
13
+ #endif // BUILDFLAG(IS_ANDROID)
14
+
15
chromium-ffmpeg-lp152.patch
Deleted
18
1
2
---- a/media/filters/ffmpeg_demuxer.cc
3
-+++ b/media/filters/ffmpeg_demuxer.cc
4
-@@ -50,7 +50,13 @@
5
- #include "media/formats/webm/webm_crypto_helpers.h"
6
- #include "media/media_buildflags.h"
7
- #include "third_party/ffmpeg/ffmpeg_features.h"
8
-+#include <libavcodec/version.h>
9
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58, 78, 100)
10
- #include "third_party/ffmpeg/libavcodec/packet.h"
11
-+#else
12
-+#include "third_party/ffmpeg/libavcodec/avcodec.h"
13
-+#endif
14
-+
15
-
16
- #if BUILDFLAG(ENABLE_PLATFORM_HEVC)
17
- #include "media/filters/ffmpeg_h265_to_annex_b_bitstream_converter.h"
18
chromium-gcc11.patch
Deleted
129
1
2
-diff --git a/third_party/angle/src/libANGLE/HandleAllocator.cpp b/third_party/angle/src/libANGLE/HandleAllocator.cpp
3
-index 013f1dfb2..3ce63c192 100644
4
---- a/third_party/angle/src/libANGLE/HandleAllocator.cpp
5
-+++ b/third_party/angle/src/libANGLE/HandleAllocator.cpp
6
-@@ -9,6 +9,7 @@
7
-
8
- #include "libANGLE/HandleAllocator.h"
9
-
10
-+#include <limits>
11
- #include <algorithm>
12
- #include <functional>
13
-
14
-diff --git a/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
15
-index fd651958f..1e8d0606c 100644
16
---- a/third_party/perfetto/src/trace_processor/containers/string_pool.cc
17
-+++ b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
18
-@@ -14,9 +14,9 @@
19
- * limitations under the License.
20
- */
21
-
22
-+#include <limits>
23
- #include "src/trace_processor/containers/string_pool.h"
24
-
25
--#include <limits>
26
-
27
- #include "perfetto/base/logging.h"
28
- #include "perfetto/ext/base/utils.h"
29
-diff --git a/third_party/perfetto/src/trace_processor/db/column.cc b/third_party/perfetto/src/trace_processor/db/column.cc
30
-index 00496b335..0dccfeb8a 100644
31
---- a/third_party/perfetto/src/trace_processor/db/column.cc
32
-+++ b/third_party/perfetto/src/trace_processor/db/column.cc
33
-@@ -14,6 +14,7 @@
34
- * limitations under the License.
35
- */
36
-
37
-+#include <limits>
38
- #include "src/trace_processor/db/column.h"
39
-
40
- #include "src/trace_processor/db/compare.h"
41
-diff --git a/third_party/perfetto/src/trace_processor/types/variadic.cc b/third_party/perfetto/src/trace_processor/types/variadic.cc
42
-index 837bfeba9..cdd56817d 100644
43
---- a/third_party/perfetto/src/trace_processor/types/variadic.cc
44
-+++ b/third_party/perfetto/src/trace_processor/types/variadic.cc
45
-@@ -14,6 +14,7 @@
46
- * limitations under the License.
47
- */
48
-
49
-+#include <limits>
50
- #include "src/trace_processor/types/variadic.h"
51
-
52
- namespace perfetto {
53
-diff --git a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
54
-index be91def6b..73f202356 100644
55
---- a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
56
-+++ b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
57
-@@ -245,7 +245,7 @@ static void AXPlatformAtkHyperlinkInit(AXPlatformAtkHyperlink* self, gpointer) {
58
- }
59
-
60
- GType ax_platform_atk_hyperlink_get_type() {
61
-- static volatile gsize type_volatile = 0;
62
-+ static gsize type_volatile = 0;
63
-
64
- AXPlatformNodeAuraLinux::EnsureGTypeInit();
65
-
66
-diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
67
-index 04125c6fd..6c64e5d8e 100644
68
---- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
69
-+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
70
-@@ -2274,7 +2274,7 @@ void ClassInit(gpointer class_pointer, gpointer /* class_data */) {
71
- GType GetType() {
72
- AXPlatformNodeAuraLinux::EnsureGTypeInit();
73
-
74
-- static volatile gsize type_volatile = 0;
75
-+ static gsize type_volatile = 0;
76
- if (g_once_init_enter(&type_volatile)) {
77
- static const GTypeInfo type_info = {
78
- sizeof(AXPlatformNodeAuraLinuxClass), // class_size
79
-diff --git a/ui/gtk/gtk_key_bindings_handler.cc b/ui/gtk/gtk_key_bindings_handler.cc
80
-index c663a2074..38a342484 100644
81
---- a/ui/gtk/gtk_key_bindings_handler.cc
82
-+++ b/ui/gtk/gtk_key_bindings_handler.cc
83
-@@ -141,7 +141,7 @@ void GtkKeyBindingsHandler::HandlerClassInit(HandlerClass* klass) {
84
- }
85
-
86
- GType GtkKeyBindingsHandler::HandlerGetType() {
87
-- static volatile gsize type_id_volatile = 0;
88
-+ static gsize type_id_volatile = 0;
89
- if (g_once_init_enter(&type_id_volatile)) {
90
- GType type_id = g_type_register_static_simple(
91
- GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"),
92
-diff --git a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
93
-index c0b5a805b..e6f921926 100644
94
---- a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
95
-+++ b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
96
-@@ -2,6 +2,7 @@
97
- // Use of this source code is governed by a BSD-style license that can be
98
- // found in the LICENSE file.
99
-
100
-+#include <cstddef>
101
- #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
102
-
103
- #include "base/observer_list.h"
104
-diff --git a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
105
-index 4ad2afa1f..5c4596e12 100644
106
---- a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
107
-+++ b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
108
-@@ -2,6 +2,7 @@
109
- // Use of this source code is governed by a BSD-style license that can be
110
- // found in the LICENSE file.
111
-
112
-+#include <cstddef>
113
- #include "components/bookmarks/browser/bookmark_expanded_state_tracker.h"
114
-
115
- #include <stdint.h>
116
-diff --git a/components/bookmarks/browser/base_bookmark_model_observer.cc b/components/bookmarks/browser/base_bookmark_model_observer.cc
117
-index 657a3c96b..ad641a082 100644
118
---- a/components/bookmarks/browser/base_bookmark_model_observer.cc
119
-+++ b/components/bookmarks/browser/base_bookmark_model_observer.cc
120
-@@ -2,6 +2,8 @@
121
- // Use of this source code is governed by a BSD-style license that can be
122
- // found in the LICENSE file.
123
-
124
-+#include <cstddef>
125
-+
126
- #include "components/bookmarks/browser/base_bookmark_model_observer.h"
127
-
128
- namespace bookmarks {
129
chromium-icu72-2.patch
Added
57
1
2
+From 103e1ff08c00590be56c98aa5647e92c7fa78631 Mon Sep 17 00:00:00 2001
3
+From: Mustafa Emre Acer <meacer@chromium.org>
4
+Date: Fri, 18 Nov 2022 22:52:00 +0000
5
+Subject: PATCH IDN Spoof Checks: Disallow ZWJ and ZWNJ in ICU versions below
6
+ 72
7
+
8
+ICU 72 updates to Unicode 15 which changes the zero width joiner (ZWJ)
9
+and zero width non-joiner (ZWNJ) characters from
10
+Identifier_Status=Allowed to Identifier_Status=Restricted. These
11
+characters are therefore no longer allowed by default in ICU 72.
12
+
13
+crbug/694157 recently implemented Non-Transitional IDNA 2008 behind a
14
+flag. ZWJ and ZWNJ are disallowed in Transitional Mode but allowed in
15
+Non-Transitional Mode, so the test cases with the Non-Transitional Mode
16
+enabled fail in ICU 72.
17
+
18
+This CL removes ZWJ and ZWNJ from the allowed identifiers set for
19
+ICU versions below 72. This effectively disables these characters even
20
+in Non-Transitional Mode.
21
+
22
+This is a temporary fix. Once ICU 72 is rolled out, we should check if
23
+we can use UIDNA_CHECK_CONTEXTJ and explicitly add ZWJ and ZWNJ to
24
+the allowed sets again.
25
+
26
+Bug: 1386204, 694157
27
+Change-Id: I606c43b9d94fea0f2331e5aed530f633bb94517c
28
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4038542
29
+Reviewed-by: Frank Tang <ftang@chromium.org>
30
+Commit-Queue: Mustafa Emre Acer <meacer@chromium.org>
31
+Cr-Commit-Position: refs/heads/main@{#1073605}
32
+---
33
+ .../spoof_checks/idn_spoof_checker.cc | 9 ++++++
34
+ .../idn_spoof_checker_unittest.cc | 28 +++++++++++--------
35
+ 2 files changed, 25 insertions(+), 12 deletions(-)
36
+
37
+Index: chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
38
+===================================================================
39
+--- chromium-110.0.5481.38.orig/components/url_formatter/spoof_checks/idn_spoof_checker.cc
40
++++ chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
41
+@@ -722,6 +722,15 @@ void IDNSpoofChecker::SetAllowedUnicodeS
42
+ allowed_set.remove(0x200Du); // Zero Width Joiner
43
+ #endif
44
+
45
++#if U_ICU_VERSION_MAJOR_NUM < 72
46
++ // Unicode 15 changes ZWJ and ZWNJ from allowed to restricted. Restrict them
47
++ // in lower versions too. This only relevant in Non-Transitional Mode as
48
++ // Transitional Mode maps these characters out.
49
++ // TODO(crbug.com/1386204): Remove these after ICU 72 is rolled out.
50
++ allowed_set.remove(0x200Cu); // Zero Width Non-Joiner
51
++ allowed_set.remove(0x200Du); // Zero Width Joiner
52
++#endif
53
++
54
+ uspoof_setAllowedUnicodeSet(checker_, &allowed_set, status);
55
+ }
56
+
57
chromium-lp151-old-drm.patch
Deleted
34
1
2
-Index: chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
3
-===================================================================
4
---- chromium-85.0.4183.69.orig/ui/gfx/linux/drm_util_linux.cc
5
-+++ chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
6
-@@ -6,6 +6,27 @@
7
-
8
- #include <drm_fourcc.h>
9
-
10
-+#ifndef DRM_FORMAT_P010
11
-+/*
12
-+ * 2 plane YCbCr MSB aligned
13
-+ * index 0 = Y plane, 15:0 Y:x 10:6 little endian
14
-+ * index 1 = Cr:Cb plane, 31:0 Cr:x:Cb:x 10:6:10:6 little endian
15
-+ */
16
-+#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */
17
-+/*
18
-+ * 2 plane YCbCr MSB aligned
19
-+ * index 0 = Y plane, 15:0 Y:x 12:4 little endian
20
-+ * index 1 = Cr:Cb plane, 31:0 Cr:x:Cb:x 12:4:12:4 little endian
21
-+ */
22
-+#define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2') /* 2x2 subsampled Cr:Cb plane 12 bits per channel */
23
-+/*
24
-+ * 2 plane YCbCr MSB aligned
25
-+ * index 0 = Y plane, 15:0 Y little endian
26
-+ * index 1 = Cr:Cb plane, 31:0 Cr:Cb 16:16 little endian
27
-+ */
28
-+#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
29
-+#endif
30
-+
31
- #include "base/notreached.h"
32
-
33
- namespace ui {
34
chromium-norar.patch
Changed
185
1
2
-diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn
3
---- chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-09-02 08:22:31.280927364 -0400
4
-+++ chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn 2021-09-02 08:23:32.143189935 -0400
5
-@@ -43,39 +43,6 @@ if (safe_browsing_mode == 1) {
6
- public_deps = "//components/safe_browsing/core/common/proto:csd_proto"
7
- }
8
+diff -up chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
9
+--- chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar 2023-05-18 00:37:47.000000000 +0200
10
++++ chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc 2023-05-21 18:12:30.368425080 +0200
11
+@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
12
13
-- source_set("rar_analyzer") {
14
-- sources =
15
+ if (inspection_type == DownloadFileType::ZIP) {
16
+ StartExtractZipFeatures();
17
+- } else if (inspection_type == DownloadFileType::RAR) {
18
+- StartExtractRarFeatures();
19
+ #if BUILDFLAG(IS_MAC)
20
+ } else if (inspection_type == DownloadFileType::DMG) {
21
+ StartExtractDmgFeatures();
22
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc
23
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
24
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc 2023-05-21 18:11:14.870058635 +0200
25
+@@ -8,7 +8,6 @@
26
+ #include "build/build_config.h"
27
+ #include "build/buildflag.h"
28
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
29
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
30
+ #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
31
+ #include "chrome/common/safe_browsing/zip_analyzer.h"
32
+ #include "components/safe_browsing/content/common/proto/download_file_types.pb.h"
33
+@@ -23,9 +22,7 @@ namespace safe_browsing {
34
+ // static
35
+ std::unique_ptr<ArchiveAnalyzer> ArchiveAnalyzer::CreateForArchiveType(
36
+ DownloadFileType_InspectionType file_type) {
37
+- if (file_type == DownloadFileType::RAR) {
38
+- return std::make_unique<RarAnalyzer>();
39
+- } else if (file_type == DownloadFileType::ZIP) {
40
++ if (file_type == DownloadFileType::ZIP) {
41
+ return std::make_unique<ZipAnalyzer>();
42
+ } else if (file_type == DownloadFileType::SEVEN_ZIP) {
43
+ return std::make_unique<SevenZipAnalyzer>();
44
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn
45
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-05-18 00:37:48.000000000 +0200
46
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn 2023-05-21 18:11:14.869058617 +0200
47
+@@ -145,8 +145,6 @@ source_set("safe_browsing") {
48
+ "protobuf_message_log_macros.h",
49
+ "protobuf_message_read_macros.h",
50
+ "protobuf_message_write_macros.h",
51
- "rar_analyzer.cc",
52
- "rar_analyzer.h",
53
--
54
--
55
-- deps =
56
-- ":archive_analyzer_results",
57
-- ":download_type_util",
58
-- "//base",
59
-- "//base:i18n",
60
-- "//components/safe_browsing/content/common:file_type_policies",
61
-- "//components/safe_browsing/core/common",
62
-- "//third_party/unrar:unrar",
63
--
64
--
65
-- defines =
66
-- "_FILE_OFFSET_BITS=64",
67
-- "LARGEFILE_SOURCE",
68
-- "RAR_SMP",
69
-- "SILENT",
70
--
71
-- # The following is set to disable certain macro definitions in the unrar
72
-- # source code.
73
-- "CHROMIUM_UNRAR",
74
--
75
-- # Disables exceptions in unrar, replaces them with process termination.
76
-- "UNRAR_NO_EXCEPTIONS",
77
--
78
--
79
-- public_deps = "//components/safe_browsing/core/common/proto:csd_proto"
80
-- }
81
--
82
- if (is_linux || is_win) {
83
- source_set("document_analyzer") {
84
- sources =
85
-@@ -149,7 +116,6 @@ source_set("safe_browsing") {
86
- ":archive_analyzer_results",
87
- ":binary_feature_extractor",
88
- ":download_type_util",
89
-- ":rar_analyzer",
90
+ "seven_zip_analyzer.cc",
91
+ "seven_zip_analyzer.h",
92
+ "zip_analyzer.cc",
93
+@@ -162,7 +160,6 @@ source_set("safe_browsing") {
94
+ "//components/safe_browsing/content/common:file_type_policies",
95
"//components/safe_browsing/core/common",
96
+ "//third_party/lzma_sdk/google:seven_zip_reader",
97
+- "//third_party/unrar:unrar",
98
99
100
-diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS
101
---- chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar 2021-09-02 08:22:31.280927364 -0400
102
-+++ chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS 2021-09-02 08:23:56.092293262 -0400
103
-@@ -2,6 +2,5 @@ include_rules =
104
- "+components/safe_browsing/core/common",
105
- "+third_party/maldoca",
106
- "+third_party/protobuf",
107
-- "+third_party/unrar",
108
- "+third_party/zlib",
109
-
110
-diff -up chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn
111
---- chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar 2021-08-31 21:39:29.000000000 -0400
112
-+++ chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn 2021-09-02 08:22:31.280927364 -0400
113
-@@ -50,7 +50,6 @@ source_set("file_util") {
114
- deps +=
115
- "//chrome/common/safe_browsing",
116
- "//chrome/common/safe_browsing:archive_analyzer_results",
117
-- "//chrome/common/safe_browsing:rar_analyzer",
118
-
119
-
120
- if (is_linux || is_win) {
121
-diff -up chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc
122
---- chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2021-08-31 21:39:29.000000000 -0400
123
-+++ chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc 2021-09-02 08:22:31.281927369 -0400
124
-@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
125
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
126
- base::File temporary_file,
127
- AnalyzeRarFileCallback callback) {
128
+ if (is_linux) {
129
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc
130
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
131
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc 2023-05-21 18:11:14.869058617 +0200
132
+@@ -18,7 +18,6 @@
133
+ #include "base/time/time.h"
134
+ #include "build/build_config.h"
135
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
136
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
137
+ #include "components/safe_browsing/content/common/file_type_policies.h"
138
+ #include "components/safe_browsing/core/common/features.h"
139
+ #include "components/safe_browsing/core/common/proto/csd.pb.h"
140
+diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc
141
+--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
142
++++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc 2023-05-21 18:11:14.870058635 +0200
143
+@@ -71,6 +71,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
144
+ base::File rar_file,
145
+ mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
146
+ AnalyzeRarFileCallback callback) {
147
+#if 0
148
DCHECK(rar_file.IsValid());
149
-
150
- safe_browsing::ArchiveAnalyzerResults results;
151
- safe_browsing::rar_analyzer::AnalyzeRarFile(
152
- std::move(rar_file), std::move(temporary_file), &results);
153
- std::move(callback).Run(results);
154
+ temp_file_getter_.Bind(std::move(temp_file_getter));
155
+ callback_ = std::move(callback);
156
+@@ -86,6 +87,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
157
+ rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(),
158
+ std::move(analysis_finished_callback),
159
+ std::move(temp_file_getter_callback), &results_);
160
+#else
161
+ NOTREACHED();
162
+#endif
163
}
164
+
165
+ void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
166
+diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h
167
+--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar 2023-05-18 00:37:48.000000000 +0200
168
++++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h 2023-05-21 18:11:14.870058635 +0200
169
+@@ -6,7 +6,6 @@
170
+ #define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_
171
+
172
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
173
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
174
+ #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
175
+ #include "chrome/common/safe_browsing/zip_analyzer.h"
176
+ #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
177
+@@ -63,7 +62,6 @@ class SafeArchiveAnalyzer : public chrom
178
+ void Timeout();
179
+
180
+ safe_browsing::ZipAnalyzer zip_analyzer_;
181
+- safe_browsing::RarAnalyzer rar_analyzer_;
182
+ safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
183
+ #if BUILDFLAG(IS_MAC)
184
+ safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;
185
chromium-prop-codecs.patch
Changed
16
1
2
-Index: chromium-85.0.4183.69/media/BUILD.gn
3
+Index: chromium-106.0.5249.91/media/BUILD.gn
4
===================================================================
5
---- chromium-85.0.4183.69.orig/media/BUILD.gn
6
-+++ chromium-85.0.4183.69/media/BUILD.gn
7
-@@ -44,12 +44,6 @@ buildflag_header("media_buildflags") {
8
-
9
+--- chromium-106.0.5249.91.orig/media/BUILD.gn
10
++++ chromium-106.0.5249.91/media/BUILD.gn
11
+@@ -64,12 +64,6 @@ buildflag_header("media_buildflags") {
12
+ }
13
}
14
15
-if (proprietary_codecs && media_use_ffmpeg) {
16
chromium-system-libusb.patch
Changed
29
1
2
-Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
3
+Index: chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
4
===================================================================
5
--- /dev/null
6
-+++ chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
7
++++ chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
8
@@ -0,0 +1,24 @@
9
+# Copyright 2016 The Chromium Authors. All rights reserved.
10
+# Use of this source code is governed by a BSD-style license that can be
11
12
+
13
+ public_configs = ":system_libusb"
14
+}
15
-Index: chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
16
+Index: chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
17
===================================================================
18
---- chromium-70.0.3538.54.orig/build/linux/unbundle/replace_gn_files.py
19
-+++ chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
20
-@@ -27,6 +27,7 @@ REPLACEMENTS = {
21
- 'libevent': 'base/third_party/libevent/BUILD.gn',
22
+--- chromium-110.0.5481.30.orig/build/linux/unbundle/replace_gn_files.py
23
++++ chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
24
+@@ -54,6 +54,7 @@ REPLACEMENTS = {
25
+ 'libevent': 'third_party/libevent/BUILD.gn',
26
'libjpeg': 'third_party/libjpeg.gni',
27
'libpng': 'third_party/libpng/BUILD.gn',
28
+ 'libusb': 'third_party/libusb/BUILD.gn',
29
gcc-enable-lto.patch
Changed
79
1
2
-Index: chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
3
+Index: chromium-111.0.5563.64/build/config/BUILDCONFIG.gn
4
===================================================================
5
---- chromium-85.0.4183.69.orig/build/config/BUILDCONFIG.gn
6
-+++ chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
7
-@@ -130,6 +130,8 @@ declare_args() {
8
+--- chromium-111.0.5563.64.orig/build/config/BUILDCONFIG.gn
9
++++ chromium-111.0.5563.64/build/config/BUILDCONFIG.gn
10
+@@ -135,6 +135,8 @@ declare_args() {
11
# set "is_official_build" to true for any build intended to ship to end-users.
12
is_official_build = false
13
14
15
# Set to true when compiling with the Clang compiler.
16
is_clang = current_os != "linux" ||
17
(current_cpu != "s390x" && current_cpu != "s390" &&
18
-@@ -441,6 +443,12 @@ default_compiler_configs =
19
+@@ -354,6 +356,12 @@ default_compiler_configs =
20
"//build/config/sanitizers:default_sanitizer_flags",
21
22
23
24
if (is_win) {
25
default_compiler_configs +=
26
"//build/config/win:default_cfg_compiler",
27
-Index: chromium-85.0.4183.69/build/config/compiler/BUILD.gn
28
+Index: chromium-111.0.5563.64/build/config/compiler/BUILD.gn
29
===================================================================
30
---- chromium-85.0.4183.69.orig/build/config/compiler/BUILD.gn
31
-+++ chromium-85.0.4183.69/build/config/compiler/BUILD.gn
32
-@@ -1947,6 +1947,10 @@ if (is_win) {
33
+--- chromium-111.0.5563.64.orig/build/config/compiler/BUILD.gn
34
++++ chromium-111.0.5563.64/build/config/compiler/BUILD.gn
35
+@@ -2079,6 +2079,10 @@ if (is_win) {
36
}
37
}
38
39
40
+}
41
+
42
config("default_stack_frames") {
43
- if (is_posix || is_fuchsia) {
44
+ if (!is_win) {
45
if (enable_frame_pointers) {
46
-Index: chromium-85.0.4183.69/sandbox/linux/BUILD.gn
47
+Index: chromium-111.0.5563.64/sandbox/linux/BUILD.gn
48
===================================================================
49
---- chromium-85.0.4183.69.orig/sandbox/linux/BUILD.gn
50
-+++ chromium-85.0.4183.69/sandbox/linux/BUILD.gn
51
-@@ -250,6 +250,9 @@ component("seccomp_bpf") {
52
+--- chromium-111.0.5563.64.orig/sandbox/linux/BUILD.gn
53
++++ chromium-111.0.5563.64/sandbox/linux/BUILD.gn
54
+@@ -253,6 +253,9 @@ component("seccomp_bpf") {
55
"//build:chromeos_buildflags",
56
"//sandbox:sandbox_buildflags",
57
58
59
60
if (is_android) {
61
sources +=
62
-Index: chromium-96.0.4664.93/base/BUILD.gn
63
-===================================================================
64
---- a/base/BUILD.gn
65
-+++ b/base/BUILD.gn
66
-@@ -1986,6 +1986,10 @@
67
+Index: chromium-111.0.5563.64/base/BUILD.gn
68
+===================================================================
69
+--- chromium-111.0.5563.64.orig/base/BUILD.gn
70
++++ chromium-111.0.5563.64/base/BUILD.gn
71
+@@ -3748,6 +3748,10 @@ test("base_unittests") {
72
}
73
}
74
-
75
+
76
+ if (gcc_lto) {
77
+ configs -= "//build/config/compiler:gcc_lto"
78
+ }
79
gcc13-fix.patch
Added
426
1
2
+Index: chromium-114.0.5735.90/base/check_op.h
3
+===================================================================
4
+--- chromium-114.0.5735.90.orig/base/check_op.h
5
++++ chromium-114.0.5735.90/base/check_op.h
6
+@@ -5,6 +5,7 @@
7
+ #ifndef BASE_CHECK_OP_H_
8
+ #define BASE_CHECK_OP_H_
9
+
10
++#include <cstdint>
11
+ #include <cstddef>
12
+ #include <string>
13
+ #include <type_traits>
14
+Index: chromium-114.0.5735.90/base/debug/profiler.h
15
+===================================================================
16
+--- chromium-114.0.5735.90.orig/base/debug/profiler.h
17
++++ chromium-114.0.5735.90/base/debug/profiler.h
18
+@@ -8,6 +8,7 @@
19
+ #include <stddef.h>
20
+ #include <stdint.h>
21
+
22
++#include <cstdint>
23
+ #include <string>
24
+
25
+ #include "base/base_export.h"
26
+Index: chromium-114.0.5735.90/components/viz/common/view_transition_element_resource_id.h
27
+===================================================================
28
+--- chromium-114.0.5735.90.orig/components/viz/common/view_transition_element_resource_id.h
29
++++ chromium-114.0.5735.90/components/viz/common/view_transition_element_resource_id.h
30
+@@ -7,6 +7,7 @@
31
+
32
+ #include <stdint.h>
33
+
34
++#include <cstdint>
35
+ #include <string>
36
+ #include <vector>
37
+
38
+Index: chromium-114.0.5735.90/gpu/config/gpu_feature_info.h
39
+===================================================================
40
+--- chromium-114.0.5735.90.orig/gpu/config/gpu_feature_info.h
41
++++ chromium-114.0.5735.90/gpu/config/gpu_feature_info.h
42
+@@ -7,6 +7,7 @@
43
+
44
+ #include <stdint.h>
45
+
46
++#include <cstdint>
47
+ #include <string>
48
+ #include <vector>
49
+
50
+Index: chromium-114.0.5735.90/net/base/net_export.h
51
+===================================================================
52
+--- chromium-114.0.5735.90.orig/net/base/net_export.h
53
++++ chromium-114.0.5735.90/net/base/net_export.h
54
+@@ -5,6 +5,8 @@
55
+ #ifndef NET_BASE_NET_EXPORT_H_
56
+ #define NET_BASE_NET_EXPORT_H_
57
+
58
++#include <cstdint>
59
++
60
+ // Defines NET_EXPORT so that functionality implemented by the net module can
61
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
62
+ // access features not intended to be used directly by real consumers.
63
+Index: chromium-114.0.5735.90/sandbox/linux/syscall_broker/broker_file_permission.h
64
+===================================================================
65
+--- chromium-114.0.5735.90.orig/sandbox/linux/syscall_broker/broker_file_permission.h
66
++++ chromium-114.0.5735.90/sandbox/linux/syscall_broker/broker_file_permission.h
67
+@@ -5,6 +5,7 @@
68
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
69
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
70
+
71
++#include <cstdint>
72
+ #include <bitset>
73
+ #include <cstdint>
74
+ #include <string>
75
+Index: chromium-114.0.5735.90/third_party/abseil-cpp/absl/strings/string_view.h
76
+===================================================================
77
+--- chromium-114.0.5735.90.orig/third_party/abseil-cpp/absl/strings/string_view.h
78
++++ chromium-114.0.5735.90/third_party/abseil-cpp/absl/strings/string_view.h
79
+@@ -27,6 +27,7 @@
80
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
81
+ #define ABSL_STRINGS_STRING_VIEW_H_
82
+
83
++#include <cstdint>
84
+ #include <algorithm>
85
+ #include <cassert>
86
+ #include <cstddef>
87
+Index: chromium-114.0.5735.90/third_party/angle/include/GLSLANG/ShaderVars.h
88
+===================================================================
89
+--- chromium-114.0.5735.90.orig/third_party/angle/include/GLSLANG/ShaderVars.h
90
++++ chromium-114.0.5735.90/third_party/angle/include/GLSLANG/ShaderVars.h
91
+@@ -10,6 +10,7 @@
92
+ #ifndef GLSLANG_SHADERVARS_H_
93
+ #define GLSLANG_SHADERVARS_H_
94
+
95
++#include <cstdint>
96
+ #include <algorithm>
97
+ #include <array>
98
+ #include <cstdint>
99
+Index: chromium-114.0.5735.90/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
100
+===================================================================
101
+--- chromium-114.0.5735.90.orig/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
102
++++ chromium-114.0.5735.90/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
103
+@@ -7,6 +7,7 @@
104
+
105
+ #include <stdint.h>
106
+
107
++#include <cstdint>
108
+ #include <array>
109
+ #include <cstdint>
110
+ #include <functional>
111
+Index: chromium-114.0.5735.90/third_party/dawn/src/tint/reader/spirv/namer.h
112
+===================================================================
113
+--- chromium-114.0.5735.90.orig/third_party/dawn/src/tint/reader/spirv/namer.h
114
++++ chromium-114.0.5735.90/third_party/dawn/src/tint/reader/spirv/namer.h
115
+@@ -15,6 +15,7 @@
116
+ #ifndef SRC_TINT_READER_SPIRV_NAMER_H_
117
+ #define SRC_TINT_READER_SPIRV_NAMER_H_
118
+
119
++#include <cstdint>
120
+ #include <string>
121
+ #include <unordered_map>
122
+ #include <vector>
123
+Index: chromium-114.0.5735.90/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
124
+===================================================================
125
+--- chromium-114.0.5735.90.orig/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
126
++++ chromium-114.0.5735.90/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
127
+@@ -7,6 +7,7 @@
128
+
129
+ #include <stdint.h>
130
+
131
++#include <cstdint>
132
+ #include <functional>
133
+ #include <map>
134
+ #include <set>
135
+Index: chromium-114.0.5735.90/third_party/swiftshader/src/System/LRUCache.hpp
136
+===================================================================
137
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/src/System/LRUCache.hpp
138
++++ chromium-114.0.5735.90/third_party/swiftshader/src/System/LRUCache.hpp
139
+@@ -17,6 +17,7 @@
140
+
141
+ #include "System/Debug.hpp"
142
+
143
++#include <cstdint>
144
+ #include <cstddef>
145
+ #include <cstdint>
146
+ #include <functional>
147
+Index: chromium-114.0.5735.90/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
148
+===================================================================
149
+--- chromium-114.0.5735.90.orig/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
150
++++ chromium-114.0.5735.90/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
151
+@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
152
+ #ifdef VMA_IMPLEMENTATION
153
+ #undef VMA_IMPLEMENTATION
154
+
155
++#include <cstdio>
156
+ #include <cstdint>
157
+ #include <cstdlib>
158
+ #include <cstring>
159
+Index: chromium-114.0.5735.90/ui/gfx/geometry/linear_gradient.h
160
+===================================================================
161
+--- chromium-114.0.5735.90.orig/ui/gfx/geometry/linear_gradient.h
162
++++ chromium-114.0.5735.90/ui/gfx/geometry/linear_gradient.h
163
+@@ -7,6 +7,7 @@
164
+
165
+ #include <stdint.h>
166
+
167
++#include <cstdint>
168
+ #include <array>
169
+ #include <cstddef>
170
+ #include <cstdint>
171
+Index: chromium-114.0.5735.90/third_party/ruy/src/ruy/profiler/instrumentation.h
172
+===================================================================
173
+--- chromium-114.0.5735.90.orig/third_party/ruy/src/ruy/profiler/instrumentation.h
174
++++ chromium-114.0.5735.90/third_party/ruy/src/ruy/profiler/instrumentation.h
175
+@@ -17,6 +17,7 @@ limitations under the License.
176
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
177
+
178
+ #ifdef RUY_PROFILER
179
++#include <string>
180
+ #include <cstdio>
181
+ #include <mutex>
182
+ #include <vector>
183
+Index: chromium-114.0.5735.90/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
184
+===================================================================
185
+--- chromium-114.0.5735.90.orig/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
186
++++ chromium-114.0.5735.90/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
187
+@@ -31,6 +31,7 @@ limitations under the License.
188
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
189
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
190
+
191
++#include <cstdint>
192
+ #include <complex>
193
+ #include <deque>
194
+ #include <vector>
195
+Index: chromium-114.0.5735.90/base/containers/flat_map.h
196
+===================================================================
197
+--- chromium-114.0.5735.90.orig/base/containers/flat_map.h
198
++++ chromium-114.0.5735.90/base/containers/flat_map.h
199
+@@ -5,6 +5,7 @@
200
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
201
+ #define BASE_CONTAINERS_FLAT_MAP_H_
202
+
203
++#include <cstdint>
204
+ #include <functional>
205
+ #include <tuple>
206
+ #include <utility>
207
+Index: chromium-114.0.5735.90/components/crash/core/app/crash_reporter_client.h
208
+===================================================================
209
+--- chromium-114.0.5735.90.orig/components/crash/core/app/crash_reporter_client.h
210
++++ chromium-114.0.5735.90/components/crash/core/app/crash_reporter_client.h
211
+@@ -7,6 +7,7 @@
212
+
213
+ #include <stdint.h>
214
+
215
++#include <cstdint>
216
+ #include <string>
217
+
218
+ #include "build/build_config.h"
219
+Index: chromium-114.0.5735.90/ui/base/prediction/kalman_filter.h
220
+===================================================================
221
+--- chromium-114.0.5735.90.orig/ui/base/prediction/kalman_filter.h
222
++++ chromium-114.0.5735.90/ui/base/prediction/kalman_filter.h
223
+@@ -7,6 +7,8 @@
224
+
225
+ #include <stdint.h>
226
+
227
++#include <cstdint>
228
++
229
+ #include "base/component_export.h"
230
+ #include "ui/gfx/geometry/matrix3_f.h"
231
+
232
+Index: chromium-114.0.5735.90/components/password_manager/core/browser/generation/password_generator.h
233
+===================================================================
234
+--- chromium-114.0.5735.90.orig/components/password_manager/core/browser/generation/password_generator.h
235
++++ chromium-114.0.5735.90/components/password_manager/core/browser/generation/password_generator.h
236
+@@ -7,6 +7,7 @@
237
+
238
+ #include <stdint.h>
239
+
240
++#include <cstdint>
241
+ #include <string>
242
+
243
+
244
+Index: chromium-114.0.5735.90/components/feature_engagement/internal/event_storage_validator.h
245
+===================================================================
246
+--- chromium-114.0.5735.90.orig/components/feature_engagement/internal/event_storage_validator.h
247
++++ chromium-114.0.5735.90/components/feature_engagement/internal/event_storage_validator.h
248
+@@ -7,6 +7,7 @@
249
+
250
+ #include <stdint.h>
251
+
252
++#include <cstdint>
253
+ #include <string>
254
+
255
+ namespace feature_engagement {
256
+Index: chromium-114.0.5735.90/components/feature_engagement/internal/never_event_storage_validator.h
257
+===================================================================
258
+--- chromium-114.0.5735.90.orig/components/feature_engagement/internal/never_event_storage_validator.h
259
++++ chromium-114.0.5735.90/components/feature_engagement/internal/never_event_storage_validator.h
260
+@@ -5,6 +5,7 @@
261
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
262
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
263
+
264
++#include <cstdint>
265
+ #include <string>
266
+
267
+ #include "components/feature_engagement/internal/event_storage_validator.h"
268
+Index: chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
269
+===================================================================
270
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
271
++++ chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
272
+@@ -14,6 +14,7 @@
273
+ #ifndef LLVM_SUPPORT_SIGNALS_H
274
+ #define LLVM_SUPPORT_SIGNALS_H
275
+
276
++#include <cstdint>
277
+ #include <string>
278
+
279
+ namespace llvm {
280
+Index: chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
281
+===================================================================
282
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
283
++++ chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
284
+@@ -45,6 +45,7 @@
285
+ #include "llvm/Support/SaveAndRestore.h"
286
+ #include "llvm/Support/raw_ostream.h"
287
+ #include <algorithm>
288
++#include <cstdint>
289
+ #include <string>
290
+ #include <sysexits.h>
291
+ #ifdef HAVE_BACKTRACE
292
+Index: chromium-114.0.5735.90/chrome/browser/privacy_budget/encountered_surface_tracker.h
293
+===================================================================
294
+--- chromium-114.0.5735.90.orig/chrome/browser/privacy_budget/encountered_surface_tracker.h
295
++++ chromium-114.0.5735.90/chrome/browser/privacy_budget/encountered_surface_tracker.h
296
+@@ -7,6 +7,7 @@
297
+
298
+ #include <stdint.h>
299
+
300
++#include <cstdint>
301
+ #include <map>
302
+
303
+ #include "base/containers/flat_set.h"
304
+Index: chromium-114.0.5735.90/components/autofill/core/browser/autofill_ablation_study.h
305
+===================================================================
306
+--- chromium-114.0.5735.90.orig/components/autofill/core/browser/autofill_ablation_study.h
307
++++ chromium-114.0.5735.90/components/autofill/core/browser/autofill_ablation_study.h
308
+@@ -7,6 +7,7 @@
309
+
310
+ #include <stdint.h>
311
+
312
++#include <cstdint>
313
+ #include <string>
314
+
315
+ class GURL;
316
+Index: chromium-114.0.5735.90/components/omnibox/browser/on_device_head_model.h
317
+===================================================================
318
+--- chromium-114.0.5735.90.orig/components/omnibox/browser/on_device_head_model.h
319
++++ chromium-114.0.5735.90/components/omnibox/browser/on_device_head_model.h
320
+@@ -7,6 +7,7 @@
321
+
322
+ #include <stdint.h>
323
+
324
++#include <cstdint>
325
+ #include <string>
326
+ #include <utility>
327
+ #include <vector>
328
+Index: chromium-114.0.5735.90/components/payments/content/utility/fingerprint_parser.h
329
+===================================================================
330
+--- chromium-114.0.5735.90.orig/components/payments/content/utility/fingerprint_parser.h
331
++++ chromium-114.0.5735.90/components/payments/content/utility/fingerprint_parser.h
332
+@@ -5,6 +5,7 @@
333
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
334
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
335
+
336
++#include <cstdint>
337
+ #include <stddef.h>
338
+ #include <stdint.h>
339
+
340
+Index: chromium-114.0.5735.90/pdf/document_attachment_info.h
341
+===================================================================
342
+--- chromium-114.0.5735.90.orig/pdf/document_attachment_info.h
343
++++ chromium-114.0.5735.90/pdf/document_attachment_info.h
344
+@@ -7,6 +7,7 @@
345
+
346
+ #include <stdint.h>
347
+
348
++#include <cstdint>
349
+ #include <string>
350
+
351
+
352
+Index: chromium-114.0.5735.90/third_party/pdfium/constants/annotation_flags.h
353
+===================================================================
354
+--- chromium-114.0.5735.90.orig/third_party/pdfium/constants/annotation_flags.h
355
++++ chromium-114.0.5735.90/third_party/pdfium/constants/annotation_flags.h
356
+@@ -7,6 +7,8 @@
357
+
358
+ #include <stdint.h>
359
+
360
++#include <cstdint>
361
++
362
+ namespace pdfium {
363
+ namespace annotation_flags {
364
+
365
+Index: chromium-114.0.5735.90/base/cpu.h
366
+===================================================================
367
+--- chromium-114.0.5735.90.orig/base/cpu.h
368
++++ chromium-114.0.5735.90/base/cpu.h
369
+@@ -5,6 +5,7 @@
370
+ #ifndef BASE_CPU_H_
371
+ #define BASE_CPU_H_
372
+
373
++#include <cstdint>
374
+ #include <string>
375
+
376
+ #include "base/base_export.h"
377
+Index: chromium-114.0.5735.90/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
378
+===================================================================
379
+--- chromium-114.0.5735.90.orig/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
380
++++ chromium-114.0.5735.90/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
381
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
382
+
383
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
384
+ #if VMA_STATS_STRING_ENABLED
385
++#include <stdio.h>
386
+ static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
387
+ {
388
+ snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
389
+Index: chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
390
+===================================================================
391
+--- chromium-114.0.5735.90.orig/chrome/browser/webauthn/authenticator_request_dialog_model.h
392
++++ chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
393
+@@ -8,6 +8,7 @@
394
+ #include <memory>
395
+ #include <string>
396
+ #include <vector>
397
++#include <variant>
398
+
399
+ #include "base/containers/span.h"
400
+ #include "base/functional/callback_forward.h"
401
+Index: chromium-114.0.5735.90/gin/time_clamper.h
402
+===================================================================
403
+--- chromium-114.0.5735.90.orig/gin/time_clamper.h
404
++++ chromium-114.0.5735.90/gin/time_clamper.h
405
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
406
+ const int64_t micros = now_micros % 1000;
407
+ // abs() is necessary for devices with times before unix-epoch (most likely
408
+ // configured incorrectly).
409
+- if (abs(micros) + kResolutionMicros < 1000) {
410
++ if (std::abs(micros) + kResolutionMicros < 1000) {
411
+ return now_micros / 1000;
412
+ }
413
+ return ClampTimeResolution(now_micros) / 1000;
414
+Index: chromium-114.0.5735.90/chrome/test/chromedriver/chrome/web_view_impl.cc
415
+===================================================================
416
+--- chromium-114.0.5735.90.orig/chrome/test/chromedriver/chrome/web_view_impl.cc
417
++++ chromium-114.0.5735.90/chrome/test/chromedriver/chrome/web_view_impl.cc
418
+@@ -11,6 +11,7 @@
419
+ #include <queue>
420
+ #include <utility>
421
+ #include <vector>
422
++#include <cstring>
423
+
424
+ #include "base/check.h"
425
+ #include "base/files/file_path.h"
426
no-location-leap151.patch
Deleted
28
1
2
-Index: chromium-86.0.4240.75/base/location.h
3
-===================================================================
4
---- chromium-86.0.4240.75.orig/base/location.h
5
-+++ chromium-86.0.4240.75/base/location.h
6
-@@ -23,7 +23,7 @@ namespace base {
7
- #define SUPPORTS_LOCATION_BUILTINS \
8
- (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
9
- __has_builtin(__builtin_LINE))
10
--#elif defined(COMPILER_GCC) && __GNUC__ >= 7
11
-+#elif defined(COMPILER_GCC) && __GNUC__ >= 10
12
- // GCC has supported these for a long time, but they point at the function
13
- // declaration in the case of default arguments, rather than at the call site.
14
- #define SUPPORTS_LOCATION_BUILTINS 1
15
-Index: chromium-86.0.4240.75/base/location.cc
16
-===================================================================
17
---- chromium-86.0.4240.75.orig/base/location.cc
18
-+++ chromium-86.0.4240.75/base/location.cc
19
-@@ -92,7 +92,7 @@ NOINLINE Location Location::Current(cons
20
- #else
21
- // static
22
- NOINLINE Location Location::Current() {
23
-- return Location(nullptr, RETURN_ADDRESS());
24
-+ return Location("unknown file", RETURN_ADDRESS());
25
- }
26
- #endif
27
-
28
system-libdrm.patch
Changed
64
1
2
-Index: chromium-98.0.4758.80/build/linux/unbundle/libdrm.gn
3
+Index: chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
4
===================================================================
5
---- chromium-98.0.4758.80.orig/build/linux/unbundle/libdrm.gn
6
-+++ chromium-98.0.4758.80/build/linux/unbundle/libdrm.gn
7
+--- chromium-114.0.5735.90.orig/build/linux/unbundle/libdrm.gn
8
++++ chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
9
@@ -11,7 +11,10 @@ pkg_config("system_libdrm") {
10
11
shim_headers("libdrm_shim") {
12
13
}
14
15
source_set("libdrm") {
16
-Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
17
+Index: chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
18
===================================================================
19
---- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/crtc_controller.h
20
-+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
21
-@@ -11,7 +11,7 @@
22
-
23
- #include "base/memory/weak_ptr.h"
24
- #include "base/trace_event/traced_value.h"
25
--#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
26
-+#include <drm_fourcc.h>
27
- #include "ui/gfx/swap_result.h"
28
- #include "ui/ozone/platform/drm/common/scoped_drm_types.h"
29
- #include "ui/ozone/platform/drm/gpu/drm_overlay_plane.h"
30
-Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
31
-===================================================================
32
---- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
33
-+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
34
-@@ -20,7 +20,7 @@
35
- #include "base/trace_event/trace_conversion_helper.h"
36
- #include "base/trace_event/trace_event.h"
37
- #include "base/trace_event/traced_value.h"
38
+--- chromium-114.0.5735.90.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
39
++++ chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
40
+@@ -18,7 +18,7 @@
41
+ #include "base/metrics/histogram_macros.h"
42
+ #include "base/ranges/algorithm.h"
43
+ #include "base/trace_event/typed_macros.h"
44
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
45
+#include <drm_fourcc.h>
46
+ #include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
47
#include "third_party/skia/include/core/SkCanvas.h"
48
#include "third_party/skia/include/core/SkImage.h"
49
- #include "ui/gfx/geometry/point.h"
50
-Index: chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
51
+Index: chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
52
===================================================================
53
---- chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
54
-+++ chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
55
-@@ -23,7 +23,7 @@
56
- #include "media/gpu/chromeos/mailbox_video_frame_converter.h"
57
+--- chromium-114.0.5735.90.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
58
++++ chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
59
+@@ -25,7 +25,7 @@
60
+ #include "media/gpu/chromeos/dmabuf_video_frame_pool.h"
61
#include "testing/gmock/include/gmock/gmock.h"
62
#include "testing/gtest/include/gtest/gtest.h"
63
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
64
INSTALL.sh
Changed
20
1
2
# Install the ICD json file to point ANGLE to libvk_swiftshader.so
3
install -m 644 "${OUTPUTDIR}/vk_swiftshader_icd.json" "${STAGEDIR}/${INSTALLDIR}/"
4
5
+# QT shim
6
+if -f "${OUTPUTDIR}/libqt5_shim.so" ; then
7
+ file="libqt5_shim.so"
8
+ buildfile="${OUTPUTDIR}/${file}"
9
+ install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
10
+fi
11
+if -f "${OUTPUTDIR}/libqt6_shim.so" ; then
12
+ file="libqt6_shim.so"
13
+ buildfile="${OUTPUTDIR}/${file}"
14
+ install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
15
+fi
16
+
17
# default apps
18
if -d "${OUTPUTDIR}/default_apps" ; then
19
cp -a "${OUTPUTDIR}/default_apps" "${STAGEDIR}/${INSTALLDIR}/"
20
chrome-wrapper
Changed
33
1
2
3
HERE="`dirname "$CHROME_WRAPPER"`"
4
5
-export CHROME_VERSION_EXTRA="@@CHANNEL@@"
6
+# Always use our versions of ffmpeg libs.
7
+# This also makes RPMs find the compatibly-named library symlinks.
8
+export LD_LIBRARY_PATH="$HERE${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
9
+
10
+export CHROME_VERSION_EXTRA="stable"
11
12
# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120
13
export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
14
15
-# This provides a much better experience on Wayland.
16
-#if "$XDG_SESSION_TYPE" == "wayland" ; then
17
-# ARGS="--ozone-platform=wayland"
18
-#fi
19
+# Allow root usage
20
+no_sandbox=
21
+if "`id -u`" == "0" ; then
22
+ no_sandbox=--no-sandbox
23
+fi
24
25
# Sanitize std{in,out,err} because they'll be shared with untrusted child
26
# processes (http://crbug.com/376567).
27
28
exec 2> >(exec cat >&2)
29
30
# Note: exec -a below is a bashism.
31
-exec -a "$0" "$HERE/@@PROGNAME@@" "$ARGS" "$@"
32
+exec -a "$0" "$HERE/chrome" $no_sandbox "$@"
33
chromium-103.0.5060.114.tar.xz -> chromium-114.0.5735.198.tar.xz
Changed
chromium-symbolic.svg
Changed
577
1
2
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3
-<svg
4
- xmlns:dc="http://purl.org/dc/elements/1.1/"
5
- xmlns:cc="http://creativecommons.org/ns#"
6
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
- xmlns:svg="http://www.w3.org/2000/svg"
8
- xmlns="http://www.w3.org/2000/svg"
9
- xmlns:xlink="http://www.w3.org/1999/xlink"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- version="1.1"
13
- id="svg2"
14
- xml:space="preserve"
15
- width="1056"
16
- height="816"
17
- viewBox="0 0 1056 816"
18
- sodipodi:docname="chromium.ai"><metadata
19
- id="metadata8"><rdf:RDF><cc:Work
20
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
21
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
22
- id="defs6"><clipPath
23
- clipPathUnits="userSpaceOnUse"
24
- id="clipPath18"><path
25
- d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
26
- id="path16" /></clipPath><clipPath
27
- clipPathUnits="userSpaceOnUse"
28
- id="clipPath26"><path
29
- d="m 356.24,344.208 h 80.16 v -80.16 h -80.16 z"
30
- id="path24" /></clipPath><clipPath
31
- clipPathUnits="userSpaceOnUse"
32
- id="clipPath30"><path
33
- d="m 356.24,344.208 h 80.16 v -80.16 h -80.16 z"
34
- id="path28" /></clipPath><mask
35
- maskUnits="userSpaceOnUse"
36
- x="0"
37
- y="0"
38
- width="1"
39
- height="1"
40
- id="mask32"><g
41
- id="g42"><g
42
- clip-path="url(#clipPath30)"
43
- id="g40"><g
44
- id="g38"><g
45
- transform="matrix(80.160004,0,0,80.160004,356.24023,264.048)"
46
- id="g36"><image
47
- width="1"
48
- height="1"
49
- style="image-rendering:optimizeSpeed"
50
- preserveAspectRatio="none"
51
- transform="matrix(1,0,0,-1,0,1)"
52
- xlink:href="data:image/png;base64,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"
53
- id="image34" /></g></g></g></g></mask><mask
54
- maskUnits="userSpaceOnUse"
55
- x="0"
56
- y="0"
57
- width="1"
58
- height="1"
59
- id="mask44"><image
60
- width="1"
61
- height="1"
62
- style="image-rendering:optimizeSpeed"
63
- preserveAspectRatio="none"
64
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU4AAAFOCAAAAADMOKu1AAAAAXNCSVQI5gpbmQAAIABJREFUeJztneti6ioQhQdI+/7PWwOcH8xlzUC8tNqqZ9PWWqvRfFlzYSCE6F/71/61f+1fu7Wlv/4A59r6w/Vf/hS3tOfDecMnej6wT4Tz2x/liag+B871pzj6bGt8TwH1z3FOH+CWTzQh/Gumf4ozXf1XaP3cn3+J9M9wpoM/0pmn0TlyR/d/tf0NziW+tPhv/IB9+Udf/f9PkP4BzmOA6fAJ1mZ0fflnuPtL7bdxzqiS3abpkXVzAOfbA7n+RvtVnJM5p7M3tPh4Hlg/uvkror+IMyDy7OLP2pM6mHqDP0ukvwf0t3AuWAq1tPo1+9HRTJXws7gbrP+3iP4OztlPGrz5OyL1DUW5/PZq/V2J/gbOKcIgy3DjuR74ToTpfi+pLtzpw9rDcU5RZ/wYzbS4cxlnQChfnms0/ccTfTDOCBNYnvs6IOqliQg79QjVy/SXgD4U5wJmJBluZqTwEYGm8Vz+QrAC9VeAPhBnTIiiKpffhhXjkrRJmV1uwvfE1BF9HNDtURsOMDXYeJaJUrI7k04hfE1u00jGn/GdfP8+USdKYyPpYUAfpM41zDXINFMdSAdR3ZjhNGWOn3GDt7NQg80/iOdjcIKoHExBqRjDffmfKNQESkTmNwNMvuVG8Nsh/Q2gj8AZYY6bJUppGR8Hns55zjQ9yLk5pMGPPgTo/XH6biSGnglkhlvHVEw+xCJn6RFlc78mpovA9ACgd8fp+j7OYQqrbPCy/jKo4EUxVxILjYYuAFv4AbKq0RnovXneObIfwHS6NI4Zf3ugzn1qW2mz8Y18692eUKOpWzkkUefofu8Yf1d1BpiS9xhMT9J/eaTO3FWdgNNbeROO+IVKdSIdGg3Z/R0J3HNbmLE7mAOXfsnNGmg0dyKXcHqaShB/Kd+11T/G4u+Hc2Xnzl+KJvkbfzzRoE+a1ClAm6Np3/JjOg1E152lu0G424Z8linCBF3mlJmi+yVIB86sAV54jqbljoU0jSPeGlNH1KLSnQV6L5yhZ67B3JylsmSORf5wRDEgRWOnTtrbMZgiTKForesvc6UG9CECvU9kn6QJodycZWglX+BJaaFOwBloCr6qPKs+nFvqLZlAZYOpE6U7hvi7qNNJU5ymSRN1OSAW++2BRp6XcYKlK8Aq94ysabQ37NffWaB3UOcsTYs/LMukJAt/l8CUXeoBTheKvK2bOJFkba222ko1pim31BKztE8PAr0Dz5/jBJpemoMmk1KU+KVEUZ/B2rWfqT32gJPl6VjqV2m1ZSGa0rB5NPmeRlJ/J4P/Mc5o6EOaHMvFxgfMkksu45tvPM8FTui2n8E5eLJ585fclJpbzSrRxBJtsAs9aSfppzx/itMX4Vw0R38JLOVnEEWgEeeFUMS9IXGdKE3+rq3WWmottQ2gNYnJ04FAf8jzZzijoadEUZli4QPjuEGehtPS+UBTgGqvqHeSrjqYummztsos+VduuebaWmqtpZVCe7oPzx/h9IYO0hw+s6gygWMxnt7ek8YirdRdSuNdmqTidDCl5VJzq6m1mgZP6i2zQHvq6U48f4ITDV1xSgDKwFJQbhPRgdOcJxo7ZPFTJ9OAAk80dW27As0159pSa62m4URNn8yT+g8D0g9wYrkd4znEHxTlpjy3SZ5nXOesTu2zaylpAOX8yOtyL0J0z7nlXFOrKbXaU2pjU40FeRcH+n2cjqb1zlWaoEsmqd8oTxfZZ3FiOb4fybMvjJ2FWWrdS91r3XOtNeeca66tppYopUa9Ue59wLyHA/02Tk9TsiMHMzuU4wtE6kNROvSc81hR9J7dx6Jaa6t7rVvd67bXUvdS97LXuuecc66ppppSqgOoWvw9HOh3cQJNZ+jOZ5ogt7I5oKLOmWb22pzUuaopeZ4D6FYFZqml7mXPdc8MdJg8pUaUWstC9A48v4mTaUoQUpgJWZomN/2e1Jlzwag+0/SDG3MB2SdLLM9W6163um/7tm97qWUvZS/7nvc83kEk2ogNvgvRH/H8Hs6pSAxeU2iCKjeHc/PitDg0F+cCTfSeB9lSVXsfpr7tpZZSS9lz2XOuue55R5NnD8owf8rzWziRpqRHFs9RmYPlwAnyVJxnLB2zJKS50qdPPiUWbXvd9jK+Syl7LmXPe94TKJS3q+YuSL/J8zs4J5rapSw5a1ZkKAUn85zFGVIk0uLHQp2zPF26VANPo1lK2XPOec95565XTZVYnwyUs6Vv8/wGTkczEQb0ojQ3oPkB+nSmzjjTHNPB0oPv5GEeD5QNfuJZKtIspRTmyW9YiQXaqeUQ4r/F83acnubwm1GawvIDbr2t5+KjUMjegzZ12gLqE2bVQL5U0N5LrY5mzrmUvKeUdz56dexGI+ot98a2/m2eN+OcaQ5bVZhm5R/wY6a+hfx9DkKRZjKSE8+5WNesq7mXWktFmhL6hCYDJSJquVH+Kc9bcRpNCOnD0EvmaG42rt/M02tT+0KL8aFg6daRNnsPFg8JU2Ggpda9oDgLlgh2ec9KaRRUG+XefsTzRpyHNCU5Miv/gJtAE3cqxCCEqQUrbTqmow6UVgbPQIe5gzxxgArMgVIlSqkRNaL8I5634ZxocoLkQpBA/Ng+EGfZtjLRhPJmMpbQGYpDgwJ0zkCzRaTWWiu1cDjaEed4bx4OlDet5lDaz3jehFMDQyKlmZMk7iJNwfgxvodWMUeCGpJpk5Dm5DeVZhKmkSf1NogK0NzyAJprNtdppdXoqolIHOj3ed6CU3uWa7cpMIXjhwhUbd2lmz7ZXEw5Tu59B8SkTPtk8bn31rNGpCwCLXvZc5mKV/rmJOZ+B5434DyiqW5TpfmxfXwo0MFTHKcFIYzokzQhQ/Lvz0w7JT57wARKvefWe26ZcbbcMncty55tRBq7DqJQfQfjSTeivA3nBZpbMWV+2C3EIUzeZWcWibvBjH5THuOSeZI+IXjQ1AfPbPaeh71ni0I5j1w5uTeX91Oe2n+/gel3QtFM06TJHD9UnmLqZYN0M+SaMdU8pgkfZeynWaXlTMazCcc9D3MXz4mhXaNrpR/zvBqnBnXoCzm3CdL8+PgUe9+2DwtDXppTCIrJ0VU8KfHALszwTn3iOQRaAknrg2Fruan8b+R5LU5IkQZRDUJbkU6QwPwEdc40R1idBtNRmCm+M7eOj/REsp+JyxZg8qmn7HiOspzN8IE8aewQ8kyUG1lx6XqeV+LEhFMGLFPOJStNs/JPsHZ0nJgfJZnEGcP5WUN3ZDXIDwUNk9f58EmBGs8UEk4F6t6uExG1wZM0vF/ZrsNpCScX5GTi0YhC4jU/meanj0PsNy0/inZ+KM0F1VmhXXuiwpN6bwNoyq2mlvgo7gkm65rrlAAIm6cmh4t5Xsn0lshu6XvSCpJm7h+G8vMDcWpMdxmfM/MZ5bHbdPUQR3M80hNrsw19ptTaAMoaSMHTkDDl7TK3lpu+z/U8r8KZ9AdjOg+uKU1h+elNnUtIMaK7iruvdlz7kXhf1fJp0KTUh5W2ntrA1lJLcr7N1K+d3rBTTyk3OXC3hKNrcE5B3cMcNA2m4uQwBH5zJc2jrH31N5k16r97FOkQKKWeGtt71GeYoze7TiJqib0n3eI8bzJ28OBKFGl+fnpbj5YO/boFzAtO0/+n4wMyOTMp1AE0td7TUKjTp4PpgMpE2k5ELdlYx7XyvAInm/mwioU4B03++nQ0NQohTd+jnFleZe1m7CREk/OjqfdOuStPHrZMC5y6Ka2jjolgefjPbhnuxY91Gac5TgJLzxlgAstPC+srmmtVJPdm17dEGOm17yn/5ZyJDnlGbUJBlahTS3LUrnafF3HOvaER1rnA+bFJUBecH5+cwA+aUvMwQwswv8vSXoREZ4l2NvTAczHhcYiy67lcRBiOrmpXp/GAUjrq2hdijJ8WiEaJ09OUesca5rdY6kuV6JCoelAiIso9NaHnA7rClHIfO08u+KeU23DM17rPSzjVcRKRzCz2CbzkSJ8oTk7fJaa7OcVTPP8RS92AZKIOqFg8pUZEQ6Akx9T1h8xroj7Z3q92nxdwhoxTuuoC80P6Qp9C89MHdSs6uIj+jUTzYhOiEShRapQ7ycEk4egOKHEhmmRMj1ifwX1eaNem8dFv8jyETdwm/tb0HS3dTCw9AiZvC4B2Slwl6XloLel4IUmJkxtLmOwMBC71sfu0YsgFpOdxYo7ELNOiP/TxKfJEx8ni1J7QSpr3hDm2p0CT737moTjuA6GdG6Aem7hPiOzneV4d2ROmSeg3Oa6z2/yUoL65rtBamveGObbpgIpATZ+uj85J57KRd59XmftZnJoVTn6TC8bcWf+UUpKlSBuPdcUgBGneI2CO7RrQDhp1+gRpSkdoaoWo96Ru4RpzP4czmjp7zkXp40NiujrOENNn9/8omGPbWlXmEhtJQOInJLkhInWdTNGvdUOjt0n3jOwyUS7UOLWQ9AlddUuRwNJ98eixMMf2tR/P6kw9994ySXz3gejMekyaEIitn0N6Bmcw9QRhyLqXUPNQmDPNo7LmA1vyAh0P5k6OBY/UQ0zvrbXee8MVWdDcL0j0msiOpm62bmEIWH4AzZIy9tJ/T5ry2Z1AmWhuGZ7D/SA/D89WD8Js6TpzP8aJ4oRCknUvXWgf426uM8QZkg1h/J40eQ9sXM7eNVsdn4i0P9ltTqP6z5ZzudHcD3FaHBJhapK0FSO5NnROOKUeR+m3pSn7wJqClKmRydNQqjpbh3VZuvQAUurSNzgvz3L8UYhgqM07zc2KSNI+Pj/M1Jlm/lua8naSVEhuoYmafRgtd6o37VwO4eKITDC9sBdHOJ04M5bkVJmfo4akNLmrDjSD58Tc5LeaZpkTz6Q+IEndGIASZvJ+QOXcPlyI7BaHsheonz4DwuSYLjTd/J9fh0lEepaQhXe192LlzRHMbTqjrOIwzH24zx42umgH6vTizGnM4ICpSCBNcaHcVc9lxHSkmf6Oph1JzC/MZpNOFyUpJmEhRMqguDms4IR2jFM66joMLBPfmaaMDAlRc5yWcNKfGjrsjDlQ4Omje5eUyZ+zZAXlrqOmx22NE8UJNSTrWX5aHFJxSlHugOZdyHyvOQeKMF3PHaACTy0qk1Woj+V5iNP10+dBdTF2Fee2fRQVJ1bk/p4m2WcwnhBSxmQxcvCcPFWaIs/bIvskTj5paCta9XDV94/BubA4rezxLDQDT0DCvUe5gan2shoYr2IFY5xnkqUjnCrOnKxjWWCkDevFIw5xUU5MHWj+ndu0NvPUY90RpS+IKEvt7Pez8ljhXHtOnq5ttfdPrMp9bN7UCdLNJ4BJJEOXZuXuFwdy85uhxgRDnOd26ABnEKf6ThzK0HFgncQpOZJP3p+DJumHSYGk1ZCNo575JVSJvDxpvV+HOE2csqwHjrQJz4/PjX2njWY8K00M6M7YrTfUQ1j36ozBfdEWOPkNY/dyKx/bBtIctv5h45ZW+LCBoaeiOZrVXmPmScHMGyxIS2LuMP1xsWtrnF6cWkbSUbZPCESbVZIw4zzfe/ijphygY6QdntlhClVN8emSPGecIk7SEy757AwxdY9z+8A6kuZIYFDP1A7CERFh973DEndTNIKu0bxzS5wrcW5lRPWAU6tIGtWf1XGOFnmS1DBHtPGa9DyvkeeE08SJS1JIkvQJ9o62bn3156Y5h/eReSYrbSJOv6Y3yBM25toKp2VJI+fMizgE4iw2t8u66s9Kcwrv3LifSWLngrAFhZKbpDu1db1zuL2EUOFcQVl2phR3whAWi5+X5mh2OjClTD333EvvvbWtla3VWspWa637VutWS6tjbKdD4XNd8Yw4tVto4214JqvM9pJVksTG1coplBeesOmJbGLtKVPvveecS2ulMMpa97KNlRpqqTnnlltKSV7YcVvaorFjILJJNBuGdZvK+WHnZryKqRMtekfaOIn35t6c89Tu+1IzQZ2SAbDUgKpYttq6jKb7KYcvYur2I9rpvedcWi6tlK1uw9D3odVSxomILfeeEiyVPLXZd1qPIfGZI26eV2E5+uwoT6b+xDSFpZp7JupZrL0xwUFUFhJhnkMysJB3oLoMRdDNVM+py/RxPAKaEIYWBvTEjYcyE6WUe0q59Mbes2y1juXraq2l5FJk3fl0Nhhlv30L6v4MN11216+/mWVNPjhf6OlNnYj8x7T9xOUd3YJ5opowPju1PD/ks6SUXFRnderblMznOSY9FeIFaFrmKfUayWFsgUdOX8Ze4nl7BLKLe7rAGbuZGookGEG+WXQNOWfqT09TmiSFrttiVhhPgnTxdrWXOWycpTl46soERZfYxhUj8Zxqe4MXQanm7vuAsJYe8MyRqD9r29qsTonP7pCBOBFmWZ0z+iJE1Y4SFyh0JAd5euXgCg3ESZDb2aXvDIEI3sKtv+nOtfQf8UWaSdQtIYGhAvya7iwd7mP2GwcHC7FocYkHXWbX1kI69zbP2LQOAuHIL9+MOxwWAjyw9kmdausERww9CsofOkP62lciSkSWyWTc3QPxwPT08dJg7SvfabaOm8d3cOtvvqg4Q7Kk3ZY001R1Asv1nma/df4Ntm4HK/vjBeInOFavRdTaiEdq62aNGWx9LBxk9bZpK7FX5G1dDN0nS96ReHt/qYbyDLPWRZO2w/MqqrgZbivfCVlSSiknECebfXa2/g7iDMl8kUGy7PYZlqhU4bmtLHxngr6CUrNjlXPwm3QU5p6/YXDXko87WVLWSy4aiWxRx4V2Mm5a/6txKOQOGfoHbjEiem1xQl+T11XLRfKZ7Dwndqcv+k7rY2Jcz8HKlahs+lXF6eRpIvICQp5hIUJ9sW4vGruMTWhai9HOpUhJlxSFesCLUnVAc86yKByniGqUIM91iW4ZitKkz6FR89GYJdHfnknws6byJLBK8J5i8NHB8QviPm+w3QTv4HQPB0mdSOLeJaXkX/qaLRFRV5jaFdQdNwkZ0muq8ZSgFg/SdAcpm6Fjd+sVGzgp1xmEfc/ev+WcXCkSnecUikzGfBxgeyWj69TxDNX8ixL1Rd7g5Io6uRiLVqnMHIp8Dg8VZOOaLjjkl2qoMUk+R7aUjKJPtY+d57p8zFBzDvYO7kOGgpN+khdukvWYjHDCm5tMsO5nSsu6QTN0dCLOh7AycUAPB/VelKh8ehk7PNhx9qcCct1nOeyz81WykhMobFkOz+vmSHNDISUVD+63c5yLmmeI7NoVRXVimMOxIewNvTjQUEpzSMEsszPLs31227RuNKcoTfnTaBrSlyWqkkhRSObdZKezDxrRgS4HN/D4JHXKeHje0dbNzcGuZ88UDHNVARGcGIm43ziq03Bs1PBxm/ZRXrv5iQJq6iom6conNzZ80dg1YSB9Hes8T9vzVaoXJgof3dtlMEvIuMlnQtL8LBCtZfhaP2w22dnVh/74VZs4QuXJ7lJu3WkpYd/5zuw71TEk2CwqE8fbrOb3Hk1zINYniFPTTom+q31fTfkiApRq3KHaF33xSxNNwXkmbGqcuOd8e0WfXYOR72g6tkmy11ctwx+2lBzNDP7SAV2/ehpnF5ZwaGTDukm1iLdynRA7rLAE6swGQzPOuPMDp1LBwI5IkejQuKF8I9cp/SLf3QQAoE9I/+3lB77Td7biwVk4jdcnas4Tknn0b35ScMLqz7J8nLCXFR0yNIv8v7vDD2yTNpKMxEmaJDm9ElhuYZEoye8jpWuJkxb10zdokCYSBQbOOBcd7LWxg6IP27ytN2golvVOgzPg7AYhLKYtJMyTfFCSeG5PC/W+F29YW9I9zlGcpMXOawp0BAdmOkbC7t3ECb1FiNqznjSFp+XuuzlK5JzhrEx/fN6t2T65zNtL1RS1dHfzOLsGNVoSJU2S3g8oEZm/E+8YG/q76cVHxk5HZi6d2rfymYumnWhRJTmh6bPslsiNZK62NsiiqbvS1DvaPJn40CBNsZr4LASVicJDToFJU9Zjgb9Tg+6eJi4uZoxfklFNLZ5EOG0K3LDzKe5Vb8TYepqQK1ryaM+ZX0UHeSeh0OVxVWdSI38jiuuGQhWsZrCL584FuvgkBItu+M26l8HG1Ev67Ob4BaOFkwjjW4BZJ3hw9eR3abB34kkT/tP+Bc+Xth7JxL5PTBYoHsb3a7yPCE5M13WZ5lce5J369MkG3hOga5hXuiRHMVpMOtsrWm/THtCXv7e9Y5uMfX4GPHhYjb/nR3q5dm7vz5I5VOd4pcSddPkg/T/ahT0/i/P7m32ndsuufhfnv7ZsZ3Hq8nVxGdBwBbr3brfs6pXq7P8jfGfbBQ5HOC/wc8usvl87t2dn93qNs/sbfaz/L1Ta4x99/S95DB5c4tQLyY1nh6t49Pm5b9tk1+VCHPyYrcgfdj/i7P6XhCK4xoysCf6AD/8sTZfpJhLxwcXL/D98i9c0jZsNxo7PeVOgSM8u+mT/jCwdBsCpJn10lS67ioc7fO/Rwu4gBoRw+ILRnLE74l2/ZcP8FxE5ob8ZV2zm8+yKRrAe//zcORR1sWkVqL840psnoWLrncw2naRopR55JK//DdeLwyX9dcPvKsjevSRll8HhKdkVAVHnkqheJIVmrRKjvvP+PEOD/bS9louYmLHSdMHcaOyQCmlUk9e7C08c+I83ah1tUyMGmKc8hxCpv7o2RBzUeLT3N7X00VQ+emHCgABT+tiWociZNfgNvRYa5vXv0ZxK1NJhv813LtJ7bQGnPuVAnWjv+pK3ypRCx2chTjTU2BZ9dr0on7/2WcPNqC28V1OJeEHiJco6ho1p/yecrM+l20D5y7Pfi2gXW1PrbNPea0rKhokEYq9IZMfbncXJQKHX9G4tdK5b7721ZtfYAROlc4mSjWQEkrI1vGzke2VK3d1bBo7mrqI3meX4M4etEYXDY5c6i7K3172FSjGwe+NsgKL1OXoA2uy3ZnFtPjoTS6swvUnjxH0KHGbrKzFhO4rsVj5pw9jHJbqa3+C7xSKJCmaeTYy8Nbgk4WHmvarGh5hu1zxrIVl6DysnvxM9KHOQDPa5CkNEy14RFgAssLE0LRqFWPTqWIFQJyPZXWifEtCLJRAX15u43wG0oUJFpG9l8BKFRJa8y7b3qiV7Ab4+5J0dtmqXhOU0KQQjUej7sPTJdlNTn3bfnquvHb+y+8sim/mOJsFIj5LSdM7zhak6Lh14No4Ys3Fyx3G82nYdC3SWxBtS8cQCEq+4S+aSX5ilNHOdHXiajlSt5jfn3T6atmBpvHMgDSNd7+8BkptmR2RK4iikzSnpqrwT/SPHM5C6i0VyMOXjvGiD7rcJyaxcxblIFXtgGiK7JOeOaPNHCC66a1t7WZbSxGuB64zNd2SWUXhRoOuadpob9nofx4jMfbw8TPIeztkl7ntriNIChwDIbmN8z7qXtsW6ItrV28grX7ApF3VezTnNsOdm64u2CkVe8N22WT1RQPnyIUltXYQETXdbvCcdQl302bUIIJvucbOQLrysJrWJaXVQEbjOajvuXSfRwntOQ28wVgmekzda5SC1d7J2SMjJs2ytIs+BtMley2ugraYtEMVD1Fqr1bYqjhpi+8tae8e7PNIWWFa5JxL1dok2D+XjZUer964YEajWWgh9yIsipSNbr15GmHWu49GcKPWF5murcpAqHyjJlrgU8qry5ILcuB8tUoHKPluHcEC6LhR1Eb1uvOp2NSbpcfT28ppNrQw7lrXWGk0d9nqVca8KdOwXOuRJQ521jreI0n/dGG/ilCpn6LfwXrfJd2Jpbl1Rsrveh1TgiXlDyBriVl6oMU8fgGsVeQpSrabL86cNLXwnbluPkW5TnSdGuVeVp4oTApHtsYoIE3nn464q0Fmxk/sBVYgOUx8OReMRdRTmyyElX+U0Y68qT/BwAWUMRv7MDSsH68a7ybPqG3hr14kmr8ZyEmeTsQfY22qZfHc1ELcZbqtx9g6HS9OFJluu6kOjX35VeaI4rRtoodfUyd1MxT9t6ujMDdm2c8t+22Lt7VXlecZzjvzI7W510eKgMDn32fkXbr6qte8RKcb2F5WnN8WuPCvuL5ZB0NZDPFqdRAjWzpuHY7ULTCNq8jwYkHrOthRnnyxR1VP9tJqVra/nKLkcTGKRe5sWQt1q0y/Q5OCrONEaF6bYpExxYOsHpxro9vktBOZed3gTSMZeUJ5YkwPPWdXS96p7K6ao0gHn6XZ2nn1MBHOUWu8Q183cd1MoP00j0YvwhI6lsewNpQO2KHHXTdFabHWdxms9YLjn6uRZ930P8V2zh1cAqU0PvCnHS2fsLSK1Ohot93U1kkn6FvAm+A7Bp4SZei8hTzR1SGIwou9C09J4mFC0tPVVNd7XUiWtreMN6l53sXarC1g0ehFzV1MnKc757sqwQN5XDEZitgd7uK0eJCLqqffeW8rjfUqtdS91L9tetr2UUmutpeaaW0spJbGARP1FFgBTIySbeyiec6+qTqPZl1m2b6vI3snN+cLcYbzJXlWiVqjWaPQC5i48zM6tNsGqxP0MXRasoIXdLOGNZAVvWEkZLzEDF4TmK5qOf5JeiCIt1mR9toaH3XLO2gbG02k/nfav0+n0dTqdTqd93y34jqB7uOWlsQ977T313ls257mXWvcyjL2Uuueac86tpZZaarknNfee6Hmt3ozHhSErI4lALVuSUASBaEk1qtOtu22rKMtlm1OG67RPV+dTaT71+sgSb+fq+9DhftpPJ9XmSaVZW9VRdtuIb2ucpKulS8tyUT68frO7qKtcOAIuQPOcOIkkgQ91CTZ1pjl47mbrrUqxc2xh1VbG3tN4euoY3DlXKtZyqTtcQLJRlujOG3lKc4dUTtJBSAZ31ejQpEUiPGnlIBAt1GnBSK99ogr1l2ofV9B08rRV+582HBkIl1eLOEWZ0oTs3mqF/OUoGi1xog8c15Ni75k8z5Smax0m0pc+JU+lqZ0+6Q7tdYZ52k+nHXssXpxzm3G6XAnquXYtAAAPLklEQVS1yR40BXWOxzVsEadYzxmOgKY4To1DlXMkR3PfT/u+1722quesuK35tsZp14YYX3qlSGfuCa/WLtfnsNsnDEdG0xynxqF6ivLUOLRb8Ux6mGtrX+CEXMl5TxWjJUousuvVD/SFz8YTaEKHT4KQZUhfX19finRUfVp1PT/dXGiHOE2elnxmNXf+E+WJ7pNIrnlCT8Qz0LTuEJfKTvvp9CXp5pcGolHchfrHsTiPcAZ5UrZ83sJRlKeP7haOngToTBOKHizOr9PppMrchSeXQESdx+Jc4nTyjJfPy6bPvJam/DwZz4lmM6DDc572rxMDHXcwDkkYOj/58gink6fjqW5UiiAa2YUpJgZPwxMSby5wuikE4ji/BsvQw2xXinON0+RpKkVzZ4w5RHbpYNpF5Z6Hp8ve6cDUB00zd2fqrV0K63QGJ2Ti0dwlyEuJDi+4BXWQZ+KJNCHhrDrMIJ7zi4FansRRXXPOs4XcNU6VJykRlmiirOHI1Kpu1rJP5PnXQG1cRybFiuNUmLuYugHd1dSrTf5QcV6fd5LJM1nBLepTsbpoJJdGStP33/F0NDvJieo2AAbidDRPmsDLbIVLowwHOKHnjr1GgGoZUhZnANI0hn9v8Ec0a/OmbuIcYf1kjvPqodoLOFWeU3kpXANeK6R6MUjznH/L85imGfouBWP5OoGp40iY2+iiHeFcJUuWNYULlmtkh7i+5vnrQG08HbL3DhlSVZgngDlw1rrz0Pe1CyIc4gy5PFRFDhqZNpNH56ohv8sTJhdYyQP9pqu/M8wv6Q9Z6RjikG521c7iVHmSJqBQiAv2TsYU3KZt7A8ECtJc08SozjgtR6pTAn95xPsYJyZLau7IUup2ZPIkf5MA4B8YvJbNu5n6cJzsN6GKxFUPp81dZrnIOdcXxXkBp2ZIGtyniGR/yhN9vgnyNtn+BlAnTRHnmH1eoWe540ib9IZOjqbrXn4vUSLyFopRJZmPBJCCC5E6Ew+be2wzGamhkz89cK9OmieYpyCWbo6Tix8XJ7hcwLkwd2VKUJMjwucRUeoLcCjQhwK1KsUqpvM0JHOaUi8Wt3kCmn0qfnwvstNk7gSJkDlTCf+Qbwabxgj/G0Ch5IOGbn6zjSB0kuRdoOrwENOsOgsRtne2ncU5mftAR4Q6FXESmDkhsoTgnEAfArTbb5Mm8QplENSFJovzSw39dLLzKaA71K8Q52WcztztBgIThiV7Gd4LNB8JFGDGETboDDlLD4NtY3Rol6oc+M7L4ryAczJ3vdE6PaUovaUtOw/6MKAepvUrreqh2rSZSF+oTityWhgijOrfj+xE0Vh17N1SehMo+UTTNkA9MHsQ0BVMCELiN+tuRQ+tvvvBNjxP0qI6vsdBuwKnmbulQSzD5P/JvxZv2eeAdG+gE0zqkzYrpkj7SDW/viSyf1n5faojXWXql3GCuQMEjEmaG6kn4Nf1A7SEASnZQz9pHe+E1B2KHlNniOubX5DC7/u+x9UqrjT1K3CalgCd86NKOyLxSW8fT+iwXedqv0/UsQzJ5sjdwyibTDHmCpLA3FGcFWpIdPUM9atwgkULgUTCV0vM+Ap5d/kMaVksTBHo7UR7uIcw8XyhSNPGMrj+/uW0ibPhj07JWrXLOE2A/Ffy/pPs1p4fefaV2S/S1On+udbj3Tmgr6UJpn4ClifnOBuMt13VXye6CufaoF1dhNBryq5JPBgm2O1fbsu2zaPEatX64g9LNQGm0TS/ufv6po5m7HOR8ybHSbfg1HRzSi4XNIh3KvZz+3im/3BwlCaK81bXD6xDkJsNa8VNS+ANpkyXq3KuNUjz+lN7rsEJPPnvYKPIojt5equ3YIEPRg96vf9c5EaYa9op1cyyuqnvStIqH7tOjJWE8xbHSVfinMNRiD8xpIuvkU/U0Y3a/6f3uDoohQi0tvNwsj8OsmG1GHqXVXnaIlHXO066FmcIR/oLcxxOhMhcpenTdtV60gxDDv6VPnThNEMnCE5lM0P3JL9sVhePAZ/2/SRnYEIQuikMEd2E08LRoafzeyzVHI1Dplp4bhgcvM7kwWMGMw+TDTX8uJnFXwJS++knP5FTg/oNYYjoapwYjmBn/T6rK4Mja5lbR5+uQPXY+8972X+ulBmEKSuYaATimTNfgFS9ptB0Z73EY32xXYtz5ul8XbdABHvcVzw1WDJyg2Gvvkb9C2V6E2+twWlCJ+mjS4FTYcIEeAxDbq7cHdN42EXrbYJMoV6kARy6E+rQ/S8nUOB5+YPH1AjPbkZlVl67RDJNnYQEFc79hNI0mrCCyg2mfgtOTJcmmSZVi4HqurPM1nSqcpXYHyQqWzimKVUzlxeFJbr0VGocrRzzN7++vtDO8dyhn9C8BecBz7iz7B8RYLd7DcKFkYgOUKNXD3si7qHb0RJdmo3Dmb87n96iJ61+qTy/gtes1lH/Ns2bcUq6tOpvy55qctkh2PqFWc3PL4ByCqBEoSnS0I2MywpX0OZpd4m7m17MAR3c5o9o3oTzkKe+p4sswczBJHvnyhn+12I/eARBSEDWpem48ATD1NVRzNLDBDktyJ12W+6jHdC8qd2E8xxPAUnepyHLBndQsegOnELjfxFkl6VeG/ckq2pTOkGBpk2HFZicuesaHH1F8yakh0urLNs4NTv11FOn1Fumxh2hAA8EI9XDWre68anbtdQyn4co0yD0cPmEaYrohBoWxM7oUaQyg4bPsxSniUGo/5TmjTgXPKkRJS0UMMuGe8W+rNS61bIpz1z0TK8wEY+g0r/qKXTF6aI6ro8JS87sHqeiBJqQu/+M5q04J54pU5MMPhg1htmPWkuttTDQXEouFc+UnXn6CQ7IMzpn86MywGYrEII49xP87GDn3m3+hObNOCNPaplabuSBur5JrbXWbdtqraWWrcpSDbLiTbYVbwLPCehRtQPcaPSgoE7mOOLPWMKrTYb+I5q345x5ptySjxqwa34xwK2WaktfyCotdhoI+s91amtJmDjrNr+jnnwlK87sDqjAxNQdF3L+Ps1v4ASe/MAASgTZoDvVBGju276teMq5yMuANOH0aUNb0ITM0/NkK9+rSFMiumUZP6D5HZzGkzoPUbaUG4MsGha21loBpvtWa6lFeWYBmtSBoj5X3lM9p+FsPgj5PF5tvSpJ9Zm4IDwum/ITmt/CqTwpCU9qiZJ1LbMMK5TWat0G0FKHOIVnLgUXZfIRCc/s9Dxnt+mDEC5SvgvPajZuXUrzmjjM9hOa38MpPEkNvmdqiXomYpwcj7bWSqt1M1NXnln06QO8O+nL6v+K03cwl1HIL9YFRBnlLpd+aFXsXFcv/xnNb+JEnqkT9dSSRaTei8b2rZVWWt1qFVPft7I7c/f2bmdzz+4zlDZXNBlm40UOJfEUVU4rbZs26Q40v4sz8iQiaimRAM09M9GytdKKwiz7tnMuv5TnnC8tcE49oe5o4iLiu2nUsawBplXef0Lz2zi9vRtRBVp6Kwy0tFLqyJFqKabOjNEdcGZv7lixMlPnEgpk75Gm2ruu1nwGJlexfkjz+ziBp5ST0jB4BpoNaCul1I1xll06RsJTupvoPl22ZO+JHfXWQ1BXzwlJvIHcxQ0YTMjcUZrfp/kDnLJUXeoUDJ4j0QDaWmt1dNPLxkn87owdVly01TAoOZzJ1f6C52x22ZpJnq41gDkH9B9L82c4aQwSeQcaXGjuubWWGan2iJw4S3Y8Yb2BtPSdcw0Jbd0DbYASWXKqiQH9HjR/hHOVMDGHIdCWc8+5tdxaLUOjJQPN7GMRBKOcTJ7ed0oCD31LH9etV8QwG+hSTxVaZe4/p/lDnMZzGDyvMNnS4Jl673koNLdaqooSDN37TlyYiSwYybtpadq06buXqs4mgjRZ4lUY4vn+OojxM5pXzA+4agNJivR6hqas/ifr0ZacBSJzHI9k7Lh7a79g7LF76fQpEKuS1CsTaO0IB1R+HIRG+6E6vQOFRzMrtOXhQ3PLueVqmixZ/CYmSgucU2Q/gxOANm/gepZ/cJp3NHSiO6hTtjGqFU6guuinNdOpR+ki+yV1mrGr67Q8Xn7021BCaoRmfi9DJ7qDOskyJhSoxqTUU++NrT63nHMdhfiSs4/qoe550XdaZc7p0xA6dynChOE+ctK8B827qJNmgUqvRtZQZc/omgvp6DhvwtnbDBRRqiybJAOSG9xdmnQ3nMgzWrytUhmQprM0L+PE2A4Wb82j9BMnLADdkebdcMKEkOHwPNFsfjQZyeRZhjGjy2m8t3cdcYe7hyw5h72noRuF+20KBbqSqMSmBByz/SOhqV/os1uv3SsUMArJhTAfIE26K04n0BVQNWZBmOE+2PlRwXNV7gwTQvSm2xxif076DPOONO+KcwVUwtIKqS1jBzC1nIS2zlNNvLWTDuh3MWj8CqqU8PNImPfGGXk6oKS0MmAFlNPkhWmwyHDGuU+GFElCv9xgPpDmvXEuBKpAg9l7tI4lOk4bzNRhTHSf3ai1brY9ydLp8lEwH4BzCRQCPSHQeMcWaVmODLtxYe9BPVYH8vdgPgSnbNOZ/KRRmnAmcAowsWaFk3oU6KLJULwPPwbzATQfgvMIqEZ68kADZDqiOfH0kyDpLMrfgPkonG6adwBqhk9BkguYK3UqTqfReGvPkJc8HubjcEag6kQdUUrux1AmPQhHOJ1GCQTpQYa86LEwH4lTN50IzN4l+JTCN87tnGASHQBFqhNLsHKl+DCaj8TpgRqeoFJakVxpk8jhDETXmlx1JR8H88E4Z6DGKZ35OqQJPAPS6Su6y0ebud/fh7/D3F9CoSLJwDJG9kA0/kLznjLMB8P8DZxBokAU0MXfoMwJp+PprRqte87WHw7zd3CugEadeoprmERouE6AK45Bkb8A87dwwvvMRCPDaOY+USJACj/w689Y0u/hpImoR7oAefzRnEQXESd6yt+C+as46YBoJBitfFKn3utHN/QnLOm3cdIKUzq4PfxsTnzz7Yz999qv46Sl8ALAtHoykcMT2C3U+Nss6W9w0gGv1T38y+NZYVvQ/t122wnY92zp4I8LEejogX70j19tf6TO5bunc//E1s/9+Wcoif4a5/ITXP+Rzsr1T9rf4ySiw4+xevgA2Z+TJKKnwTna9z7Mc4Ac7alwcrv2Mz0TR27PiBPa/PGekOG/9q/9a//av/aj9h8u43adsRgKAAAAAABJRU5ErkJggg=="
65
- id="image46" /></mask><radialGradient
66
- fx="0"
67
- fy="0"
68
- cx="0"
69
- cy="0"
70
- r="1"
71
- gradientUnits="userSpaceOnUse"
72
- gradientTransform="matrix(0,-79.311325,-79.311325,0,396.99658,321.95068)"
73
- spreadMethod="pad"
74
- id="radialGradient90"><stop
75
- style="stop-opacity:1;stop-color:#89b7e1"
76
- offset="0"
77
- id="stop82" /><stop
78
- style="stop-opacity:1;stop-color:#89b7e1"
79
- offset="0.662109"
80
- id="stop84" /><stop
81
- style="stop-opacity:1;stop-color:#89b7e1"
82
- offset="0.69573897"
83
- id="stop86" /><stop
84
- style="stop-opacity:1;stop-color:#659ad1"
85
- offset="1"
86
- id="stop88" /></radialGradient><radialGradient
87
- fx="0"
88
- fy="0"
89
- cx="0"
90
- cy="0"
91
- r="1"
92
- gradientUnits="userSpaceOnUse"
93
- gradientTransform="matrix(0,-81.499085,-81.499085,0,395.0874,324.18262)"
94
- spreadMethod="pad"
95
- id="radialGradient114"><stop
96
- style="stop-opacity:1;stop-color:#d0e2f1"
97
- offset="0"
98
- id="stop106" /><stop
99
- style="stop-opacity:1;stop-color:#d0e2f1"
100
- offset="0.662109"
101
- id="stop108" /><stop
102
- style="stop-opacity:1;stop-color:#d0e2f1"
103
- offset="0.85976252"
104
- id="stop110" /><stop
105
- style="stop-opacity:1;stop-color:#89b7e1"
106
- offset="1"
107
- id="stop112" /></radialGradient><clipPath
108
- clipPathUnits="userSpaceOnUse"
109
- id="clipPath124"><path
110
- d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
111
- id="path122" /></clipPath><clipPath
112
- clipPathUnits="userSpaceOnUse"
113
- id="clipPath132"><path
114
- d="m 389.898,294.508 h 30.623 V 242.58 h -30.623 z"
115
- id="path130" /></clipPath><clipPath
116
- clipPathUnits="userSpaceOnUse"
117
- id="clipPath136"><path
118
- d="m 404.76,294.508 -14.862,-51.73 2.016,-0.198 28.607,49.551"
119
- id="path134" /></clipPath><linearGradient
120
- x1="0"
121
- y1="0"
122
- x2="1"
123
- y2="0"
124
- gradientUnits="userSpaceOnUse"
125
- gradientTransform="matrix(-15.160248,-30.32016,-30.32016,15.160248,403.08984,274.21582)"
126
- spreadMethod="pad"
127
- id="linearGradient146"><stop
128
- style="stop-opacity:0.77000076;stop-color:#ffffff"
129
- offset="0"
130
- id="stop142" /><stop
131
- style="stop-opacity:0.25000381;stop-color:#ffffff"
132
- offset="1"
133
- id="stop144" /></linearGradient><mask
134
- maskUnits="userSpaceOnUse"
135
- x="0"
136
- y="0"
137
- width="1"
138
- height="1"
139
- id="mask148"><g
140
- id="g158"><g
141
- id="g156"><g
142
- id="g154"><g
143
- id="g152"><path
144
- d="M -32768,32767 H 32767 V -32767 H -32768 Z"
145
- style="fill:url(#linearGradient146);stroke:none"
146
- id="path150" /></g></g></g></g></mask><linearGradient
147
- x1="0"
148
- y1="0"
149
- x2="1"
150
- y2="0"
151
- gradientUnits="userSpaceOnUse"
152
- gradientTransform="matrix(-15.160248,-30.32016,-30.32016,15.160248,403.08984,274.21582)"
153
- spreadMethod="pad"
154
- id="linearGradient164"><stop
155
- style="stop-opacity:1;stop-color:#3770b7"
156
- offset="0"
157
- id="stop160" /><stop
158
- style="stop-opacity:1;stop-color:#3770b7"
159
- offset="1"
160
- id="stop162" /></linearGradient><clipPath
161
- clipPathUnits="userSpaceOnUse"
162
- id="clipPath190"><path
163
- d="m 396.297,334.547 h 58.057 v -14.84 h -58.057 z"
164
- id="path188" /></clipPath><clipPath
165
- clipPathUnits="userSpaceOnUse"
166
- id="clipPath194"><path
167
- d="m 402.123,319.707 52.231,12.993 -0.837,1.847 h -57.22"
168
- id="path192" /></clipPath><linearGradient
169
- x1="0"
170
- y1="0"
171
- x2="1"
172
- y2="0"
173
- gradientUnits="userSpaceOnUse"
174
- gradientTransform="matrix(32.638824,0,0,-32.638824,421.62012,327.12695)"
175
- spreadMethod="pad"
176
- id="linearGradient204"><stop
177
- style="stop-opacity:0.8;stop-color:#ffffff"
178
- offset="0"
179
- id="stop200" /><stop
180
- style="stop-opacity:0.25000381;stop-color:#ffffff"
181
- offset="1"
182
- id="stop202" /></linearGradient><mask
183
- maskUnits="userSpaceOnUse"
184
- x="0"
185
- y="0"
186
- width="1"
187
- height="1"
188
- id="mask206"><g
189
- id="g216"><g
190
- id="g214"><g
191
- id="g212"><g
192
- id="g210"><path
193
- d="M -32768,32767 H 32767 V -32767 H -32768 Z"
194
- style="fill:url(#linearGradient204);stroke:none"
195
- id="path208" /></g></g></g></g></mask><linearGradient
196
- x1="0"
197
- y1="0"
198
- x2="1"
199
- y2="0"
200
- gradientUnits="userSpaceOnUse"
201
- gradientTransform="matrix(32.638824,0,0,-32.638824,421.62012,327.12695)"
202
- spreadMethod="pad"
203
- id="linearGradient222"><stop
204
- style="stop-opacity:1;stop-color:#7caada"
205
- offset="0"
206
- id="stop218" /><stop
207
- style="stop-opacity:1;stop-color:#89b7e1"
208
- offset="1"
209
- id="stop220" /></linearGradient><clipPath
210
- clipPathUnits="userSpaceOnUse"
211
- id="clipPath248"><path
212
- d="M 0,612 H 792 V 0 H 0 Z"
213
- id="path246" /></clipPath><clipPath
214
- clipPathUnits="userSpaceOnUse"
215
- id="clipPath256"><path
216
- d="m 343.211,343.807 h 38.546 v -51.201 h -38.546 z"
217
- id="path254" /></clipPath><clipPath
218
- clipPathUnits="userSpaceOnUse"
219
- id="clipPath260"><path
220
- d="m 381.757,305.075 -37.365,38.732 -1.181,-1.642 28.612,-49.559"
221
- id="path258" /></clipPath><linearGradient
222
- x1="0"
223
- y1="0"
224
- x2="1"
225
- y2="0"
226
- gradientUnits="userSpaceOnUse"
227
- gradientTransform="matrix(-19.271973,29.807495,29.807495,19.271988,366.20312,315.21533)"
228
- spreadMethod="pad"
229
- id="linearGradient270"><stop
230
- style="stop-opacity:1;stop-color:#ffffff"
231
- offset="0"
232
- id="stop266" /><stop
233
- style="stop-opacity:0.25000381;stop-color:#ffffff"
234
- offset="1"
235
- id="stop268" /></linearGradient><mask
236
- maskUnits="userSpaceOnUse"
237
- x="0"
238
- y="0"
239
- width="1"
240
- height="1"
241
- id="mask272"><g
242
- id="g282"><g
243
- id="g280"><g
244
- id="g278"><g
245
- id="g276"><path
246
- d="M -32768,32767 H 32767 V -32767 H -32768 Z"
247
- style="fill:url(#linearGradient270);stroke:none"
248
- id="path274" /></g></g></g></g></mask><linearGradient
249
- x1="0"
250
- y1="0"
251
- x2="1"
252
- y2="0"
253
- gradientUnits="userSpaceOnUse"
254
- gradientTransform="matrix(-19.271973,29.807495,29.807495,19.271988,366.20312,315.21533)"
255
- spreadMethod="pad"
256
- id="linearGradient288"><stop
257
- style="stop-opacity:1;stop-color:#0b63af"
258
- offset="0"
259
- id="stop284" /><stop
260
- style="stop-opacity:1;stop-color:#3770b7"
261
- offset="1"
262
- id="stop286" /></linearGradient><radialGradient
263
- fx="0"
264
- fy="0"
265
- cx="0"
266
- cy="0"
267
- r="1"
268
- gradientUnits="userSpaceOnUse"
269
- gradientTransform="matrix(-29.73175,-62.539185,-62.539185,29.73175,412.90723,310.08984)"
270
- spreadMethod="pad"
271
- id="radialGradient326"><stop
272
- style="stop-opacity:1;stop-color:#d2deed"
273
- offset="0"
274
- id="stop320" /><stop
275
- style="stop-opacity:1;stop-color:#d2deed"
276
- offset="0.25885849"
277
- id="stop322" /><stop
278
- style="stop-opacity:1;stop-color:#d0e2f1"
279
- offset="1"
280
- id="stop324" /></radialGradient><radialGradient
281
- fx="0"
282
- fy="0"
283
- cx="0"
284
- cy="0"
285
- r="1"
286
- gradientUnits="userSpaceOnUse"
287
- gradientTransform="matrix(12.815323,-64.076599,-64.076599,-12.815323,391.37793,336.23291)"
288
- spreadMethod="pad"
289
- id="radialGradient348"><stop
290
- style="stop-opacity:1;stop-color:#ffffff"
291
- offset="0"
292
- id="stop342" /><stop
293
- style="stop-opacity:1;stop-color:#ffffff"
294
- offset="0.25885849"
295
- id="stop344" /><stop
296
- style="stop-opacity:1;stop-color:#d9e8f1"
297
- offset="1"
298
- id="stop346" /></radialGradient><radialGradient
299
- fx="0"
300
- fy="0"
301
- cx="0"
302
- cy="0"
303
- r="1"
304
- gradientUnits="userSpaceOnUse"
305
- gradientTransform="matrix(0,-49.928345,-60.051315,0,396.47559,332.3208)"
306
- spreadMethod="pad"
307
- id="radialGradient372"><stop
308
- style="stop-opacity:1;stop-color:#a0c2e6"
309
- offset="0"
310
- id="stop364" /><stop
311
- style="stop-opacity:1;stop-color:#729ad0"
312
- offset="0.552155"
313
- id="stop366" /><stop
314
- style="stop-opacity:1;stop-color:#729ad0"
315
- offset="0.57266698"
316
- id="stop368" /><stop
317
- style="stop-opacity:1;stop-color:#3777bb"
318
- offset="1"
319
- id="stop370" /></radialGradient><clipPath
320
- clipPathUnits="userSpaceOnUse"
321
- id="clipPath382"><path
322
- d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
323
- id="path380" /></clipPath><clipPath
324
- clipPathUnits="userSpaceOnUse"
325
- id="clipPath390"><path
326
- d="M 326.792,421.854 H 462.467 V 336.595 H 326.792 Z"
327
- id="path388" /></clipPath><clipPath
328
- clipPathUnits="userSpaceOnUse"
329
- id="clipPath394"><path
330
- d="m 462.447,381.78 c 0.886,-23.494 -28.755,-43.697 -66.214,-45.108 -37.452,-1.408 -68.538,16.505 -69.422,39.997 -0.886,23.506 28.757,43.694 66.212,45.107 37.459,1.413 68.541,-16.488 69.424,-39.996"
331
- id="path392" /></clipPath><radialGradient
332
- fx="0"
333
- fy="0"
334
- cx="0"
335
- cy="0"
336
- r="1"
337
- gradientUnits="userSpaceOnUse"
338
- gradientTransform="matrix(67.818146,2.5594788,1.6003418,-42.551941,394.62842,379.22559)"
339
- spreadMethod="pad"
340
- id="radialGradient408"><stop
341
- style="stop-opacity:1;stop-color:#ffffff"
342
- offset="0"
343
- id="stop400" /><stop
344
- style="stop-opacity:1;stop-color:#ffffff"
345
- offset="0.159515"
346
- id="stop402" /><stop
347
- style="stop-opacity:0;stop-color:#ffffff"
348
- offset="0.89889041"
349
- id="stop404" /><stop
350
- style="stop-opacity:0;stop-color:#ffffff"
351
- offset="1"
352
- id="stop406" /></radialGradient><mask
353
- maskUnits="userSpaceOnUse"
354
- x="0"
355
- y="0"
356
- width="1"
357
- height="1"
358
- id="mask410"><g
359
- id="g420"><g
360
- id="g418"><g
361
- id="g416"><g
362
- id="g414"><path
363
- d="M -32767,32767 H 32767 V -32767 H -32767 Z"
364
- style="fill:url(#radialGradient408);stroke:none"
365
- id="path412" /></g></g></g></g></mask><radialGradient
366
- fx="0"
367
- fy="0"
368
- cx="0"
369
- cy="0"
370
- r="1"
371
- gradientUnits="userSpaceOnUse"
372
- gradientTransform="matrix(67.818146,2.5594788,1.6003418,-42.551941,394.62842,379.22559)"
373
- spreadMethod="pad"
374
- id="radialGradient430"><stop
375
- style="stop-opacity:1;stop-color:#729ad0"
376
- offset="0"
377
- id="stop422" /><stop
378
- style="stop-opacity:1;stop-color:#729ad0"
379
- offset="0.159515"
380
- id="stop424" /><stop
381
- style="stop-opacity:1;stop-color:#ffffff"
382
- offset="0.89889041"
383
- id="stop426" /><stop
384
- style="stop-opacity:1;stop-color:#ffffff"
385
- offset="1"
386
- id="stop428" /></radialGradient></defs><sodipodi:namedview
387
- pagecolor="#ffffff"
388
- bordercolor="#666666"
389
- borderopacity="1"
390
- objecttolerance="10"
391
- gridtolerance="10"
392
- guidetolerance="10"
393
- inkscape:pageopacity="0"
394
- inkscape:pageshadow="2"
395
- inkscape:window-width="640"
396
- inkscape:window-height="480"
397
- id="namedview4" /><g
398
- id="g10"
399
- inkscape:groupmode="layer"
400
- inkscape:label="chromium"
401
- transform="matrix(1.3333333,0,0,-1.3333333,0,816)"><g
402
- id="g12"><g
403
- id="g14"
404
- clip-path="url(#clipPath18)"><g
405
- id="g20"><g
406
- id="g22" /><g
407
- id="g60"><g
408
- clip-path="url(#clipPath26)"
409
- opacity="0.699997"
410
- id="g58"><g
411
- id="g56"><g
412
- id="g48" /><g
413
- mask="url(#mask32)"
414
- id="g54"><g
415
- transform="matrix(80.160004,0,0,80.160004,356.24023,264.048)"
416
- id="g52"><image
417
- width="1"
418
- height="1"
419
- style="image-rendering:optimizeSpeed"
420
- preserveAspectRatio="none"
421
- transform="matrix(1,0,0,-1,0,1)"
422
- xlink:href="data:image/png;base64,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"
423
- mask="url(#mask44)"
424
- id="image50" /></g></g></g></g></g></g><g
425
- id="g62"
426
- transform="translate(427.584,306.3408)"><path
427
- d="m 0,0 c 0,-17.277 -14.009,-31.284 -31.287,-31.284 -17.279,0 -31.286,14.007 -31.286,31.284 0,17.282 14.007,31.289 31.286,31.289 C -14.009,31.289 0,17.282 0,0"
428
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
429
- id="path64" /></g><g
430
- id="g66"
431
- transform="translate(396.2974,393.4492)"><path
432
- d="m 0,0 c -26.13,0 -49.567,-11.518 -65.516,-29.759 l 41.173,-71.312 0.003,0.007 c -2.39,4.134 -3.765,8.929 -3.765,14.049 0,15.525 12.582,28.113 28.105,28.113 H 82.371 C 70.682,-24.644 38.222,0 0,0"
433
- style="fill:#4072a1;fill-opacity:1;fill-rule:nonzero;stroke:none"
434
- id="path68" /></g></g></g><g
435
- id="g70"><g
436
- id="g72"><g
437
- id="g78"><g
438
- id="g80"><path
439
- d="m 332.315,306.427 c 0,-33.866 26.305,-61.59 59.596,-63.852 v 0 l 28.743,49.786 h -0.006 c -2.387,-4.141 -5.851,-7.732 -10.285,-10.291 v 0 c -13.442,-7.764 -30.636,-3.153 -38.398,10.291 v 0 l -28.753,49.8 c -6.881,-10.205 -10.897,-22.5 -10.897,-35.734"
440
- style="fill:url(#radialGradient90);stroke:none"
441
- id="path92" /></g></g></g></g><g
442
- id="g94"><g
443
- id="g96"><g
444
- id="g102"><g
445
- id="g104"><path
446
- d="m 396.324,334.547 v -0.01 c 4.777,0.007 9.62,-1.2 14.052,-3.765 v 0 c 13.446,-7.752 18.05,-24.948 10.284,-38.389 v 0 l -28.751,-49.808 c 1.457,-0.099 2.924,-0.149 4.406,-0.149 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,10.089 -2.335,19.633 -6.492,28.12 v 0 z"
447
- style="fill:url(#radialGradient114);stroke:none"
448
- id="path116" /></g></g></g></g><g
449
- id="g118"><g
450
- id="g120"
451
- clip-path="url(#clipPath124)"><g
452
- id="g126"><g
453
- id="g128" /><g
454
- id="g182"><g
455
- clip-path="url(#clipPath132)"
456
- opacity="0.130005"
457
- id="g180"><g
458
- id="g178"><g
459
- clip-path="url(#clipPath136)"
460
- id="g176"><g
461
- id="g174"><g
462
- id="g166" /><g
463
- mask="url(#mask148)"
464
- id="g172"><g
465
- id="g170"><path
466
- d="m 404.76,294.508 -14.862,-51.73 2.016,-0.198 28.607,49.551"
467
- style="fill:url(#linearGradient164);stroke:none"
468
- id="path168" /></g></g></g></g></g></g></g></g><g
469
- id="g184"><g
470
- id="g186" /><g
471
- id="g240"><g
472
- clip-path="url(#clipPath190)"
473
- opacity="0.300003"
474
- id="g238"><g
475
- id="g236"><g
476
- clip-path="url(#clipPath194)"
477
- id="g234"><g
478
- id="g232"><g
479
- id="g224" /><g
480
- mask="url(#mask206)"
481
- id="g230"><g
482
- id="g228"><path
483
- d="m 402.123,319.707 52.231,12.993 -0.837,1.847 h -57.22"
484
- style="fill:url(#linearGradient222);stroke:none"
485
- id="path226" /></g></g></g></g></g></g></g></g></g></g><g
486
- id="g242"><g
487
- id="g244"
488
- clip-path="url(#clipPath248)"><g
489
- id="g250"><g
490
- id="g252" /><g
491
- id="g306"><g
492
- clip-path="url(#clipPath256)"
493
- opacity="0.199997"
494
- id="g304"><g
495
- id="g302"><g
496
- clip-path="url(#clipPath260)"
497
- id="g300"><g
498
- id="g298"><g
499
- id="g290" /><g
500
- mask="url(#mask272)"
501
- id="g296"><g
502
- id="g294"><path
503
- d="m 381.757,305.075 -37.365,38.732 -1.181,-1.642 28.612,-49.559"
504
- style="fill:url(#linearGradient288);stroke:none"
505
- id="path292" /></g></g></g></g></g></g></g></g></g></g><g
506
- id="g308"><g
507
- id="g310"><g
508
- id="g316"><g
509
- id="g318"><path
510
- d="m 367.97,306.341 c 0,-15.64 12.685,-28.324 28.327,-28.324 v 0 c 15.639,0 28.323,12.684 28.323,28.324 v 0 c 0,15.641 -12.684,28.324 -28.323,28.324 v 0 c -15.642,0 -28.327,-12.683 -28.327,-28.324"
511
- style="fill:url(#radialGradient326);stroke:none"
512
- id="path328" /></g></g></g></g><g
513
- id="g330"><g
514
- id="g332"><g
515
- id="g338"><g
516
- id="g340"><path
517
- d="m 367.97,306.341 c 0,-15.64 12.685,-28.324 28.327,-28.324 v 0 c 15.639,0 28.323,12.684 28.323,28.324 v 0 c 0,15.641 -12.684,28.324 -28.323,28.324 v 0 c -15.642,0 -28.327,-12.683 -28.327,-28.324"
518
- style="fill:url(#radialGradient348);stroke:none"
519
- id="path350" /></g></g></g></g><g
520
- id="g352"><g
521
- id="g354"><g
522
- id="g360"><g
523
- id="g362"><path
524
- d="m 372.155,306.247 c 0,-13.316 10.796,-24.114 24.111,-24.114 v 0 c 13.319,0 24.113,10.798 24.113,24.114 v 0 c 0,13.313 -10.794,24.109 -24.113,24.109 v 0 c -13.315,0 -24.111,-10.796 -24.111,-24.109"
525
- style="fill:url(#radialGradient372);stroke:none"
526
- id="path374" /></g></g></g></g><g
527
- id="g376"><g
528
- id="g378"
529
- clip-path="url(#clipPath382)"><g
530
- id="g384"><g
531
- id="g386" /><g
532
- id="g448"><g
533
- clip-path="url(#clipPath390)"
534
- opacity="0.5"
535
- id="g446"><g
536
- id="g444"><g
537
- clip-path="url(#clipPath394)"
538
- id="g442"><g
539
- id="g440"><g
540
- id="g432" /><g
541
- mask="url(#mask410)"
542
- id="g438"><g
543
- id="g436"><path
544
- d="m 462.447,381.78 c 0.886,-23.494 -28.755,-43.697 -66.214,-45.108 -37.452,-1.408 -68.538,16.505 -69.422,39.997 -0.886,23.506 28.757,43.694 66.212,45.107 37.459,1.413 68.541,-16.488 69.424,-39.996"
545
- style="fill:url(#radialGradient430);stroke:none"
546
- id="path434" /></g></g></g></g></g></g></g></g></g></g></g></svg>
547
+<svg version="1.1" id="svg44" width="511.98489" height="511.98489" viewBox="0 0 511.98489 511.98489" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
548
+ <defs id="defs18">
549
+ <linearGradient xlink:href="#linearGradient4975" id="linearGradient4633" gradientUnits="userSpaceOnUse" gradientTransform="matrix(231.62575,0,0,231.62472,111.11013,159.99363)" x2="0.5565635" x1="0.46521288" y1="-0.67390651" y2="0.81129867"/>
550
+ <linearGradient id="linearGradient4975">
551
+ <stop style="stop-color:#1972e7" offset="0" id="stop4971"/>
552
+ <stop style="stop-color:#1969d5" offset="1" id="stop4973"/>
553
+ </linearGradient>
554
+ <linearGradient xlink:href="#3" id="linearGradient1331" x1="101.74381" y1="33.726189" x2="101.59915" y2="135.466" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.7794235,0,0,3.7794067,0.00151555,0.00377865)"/>
555
+ <linearGradient id="3" x2="1" gradientTransform="matrix(61.286,0,0,61.286,29.399,42.333)" gradientUnits="userSpaceOnUse">
556
+ <stop offset="0" id="stop1397" style="stop-color:#afccfb"/>
557
+ <stop offset="1" id="stop1399" style="stop-color:#8bb5f8"/>
558
+ </linearGradient>
559
+ <linearGradient xlink:href="#1" id="linearGradient2962" gradientUnits="userSpaceOnUse" gradientTransform="matrix(94.931559,164.42687,-164.4276,94.931137,97.555991,173.61083)" x2="1.7695541" x1="0.018202547" y1="-0.51170158" y2="0.4994337"/>
560
+ <linearGradient id="1" x2="1" gradientTransform="matrix(25.118,43.506,-43.506,25.118,25.812,45.935)" gradientUnits="userSpaceOnUse">
561
+ <stop offset="0" id="stop3122" style="stop-color:#659cf6"/>
562
+ <stop offset="1" id="stop3124" style="stop-color:#4285f4"/>
563
+ </linearGradient>
564
+ <linearGradient xlink:href="#2" id="linearGradient2688" x1="67.452377" y1="40.320694" x2="67.733002" y2="95.25" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.7794235,0,0,3.7794067,0.00150043,0.00377865)"/>
565
+ <linearGradient id="2">
566
+ <stop style="stop-color:#3680f0" offset="0" id="stop2682"/>
567
+ <stop style="stop-color:#2678ec" offset="1" id="stop2684"/>
568
+ </linearGradient>
569
+ </defs>
570
+ <path d="m 255.99319,255.99433 110.85049,63.99671 -110.85049,191.99385 c 141.38068,0 255.9917,-114.61051 255.9917,-255.99056 0,-46.64165 -12.53559,-90.3316 -34.33115,-127.99716 h -221.6632 z" id="path34-4" style="fill:url(#linearGradient1331)"/>
571
+ <path d="M 255.99054,0 C 161.2404,0 78.576848,51.513314 34.31224,128.0274 l 110.82781,191.96363 110.85049,-63.9967 V 127.99717 h 221.6632 C 433.38157,51.501975 350.72936,0 255.99054,0 Z" id="path36-1" style="fill:url(#linearGradient4633)"/>
572
+ <path d="m 0.00151177,255.99433 c 0,141.38005 114.60723823,255.99056 255.99168823,255.99056 L 366.84368,319.99103 255.9932,255.99433 145.14271,319.99103 34.314897,128.0274 C 12.531434,165.68239 0,209.35646 0,255.99056" id="path38-7" style="fill:url(#linearGradient2962)"/>
573
+ <path d="m 383.99094,255.99433 c 0,70.69003 -57.30741,127.99717 -127.99775,127.99717 -70.69034,0 -127.99773,-57.30714 -127.99773,-127.99717 0,-70.69002 57.30739,-127.99716 127.99773,-127.99716 70.69034,0 127.99775,57.30714 127.99775,127.99716" fill="#ffffff" id="path40"/>
574
+ <path d="m 359.99158,255.99433 c 0,57.43565 -46.56249,103.99794 -103.99839,103.99794 -57.4359,0 -103.9984,-46.56229 -103.9984,-103.99794 0,-57.43564 46.5625,-103.99793 103.9984,-103.99793 57.4359,0 103.99839,46.56229 103.99839,103.99793" id="path42-5" style="fill:url(#linearGradient2688)"/>
575
+</svg>
576
\ No newline at end of file
577
Refresh
No build results available
Refresh
No rpmlint results available
Mentioned Issues (67)
Login required, please
login
or
signup
in order to comment
Request History
Kieltux created request almost 2 years ago
Kieltux accepted request almost 2 years ago
Tested with openSUSE Leap 15.4 (build on OBS not at packman).
For openSUSE Leap 15.4 we would need openSUSE Backports for SLE 15 SP4, which contains gcc 12 and llvm 15.