Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 21:19:16 +0200
From:      Matthew Rezny <rezny@freebsd.org>
To:        Johannes M Dieterich <jmd@freebsd.org>
Cc:        Jan Beich <jbeich@freebsd.org>, svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org, owner-ports-committers@freebsd.org, swills@freebsd.org, kwm@freebsd.org
Subject:   Re: svn commit: r437215 - in head/graphics: gbm libEGL libGL libglapi
Message-ID:  <8597772.U1FF7xgxCB@workstation.reztek>
In-Reply-To: <5ecdf3a33e5b6ea0d4341aed906e3800@freebsd.org>
References:  <201703291657.v2TGvrpM076369@repo.freebsd.org> <3165067.gcRftSb7iV@workstation.reztek> <5ecdf3a33e5b6ea0d4341aed906e3800@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 30 March 2017 13:57:15 Johannes M Dieterich wrote:
> On 2017-03-30 12:40, Matthew Rezny wrote:
> > On Thursday 30 March 2017 11:39:11 Johannes M Dieterich wrote:
> >> Dear Matthew,
> >> CC: Jan, Koop, Steve
> >>=20
> >> I will unify your two mails below.
> >>=20
> >> On 2017-03-30 01:26, Matthew Rezny wrote:
> >> > On Thursday 30 March 2017 05:36:03 Jan Beich wrote:
> >> >> Matthew Rezny <rezny@freebsd.org> writes:
> >> >> > On Wednesday 29 March 2017 19:51:55 Jan Beich wrote:
> >> >> >> Matthew Rezny <rezny@FreeBSD.org> writes:
> >> >> >> > -=09@${REINPLACE_CMD} -e 's|x86_64|amd64|' \
> >> >> >> > +=09@${REINPLACE_CMD} -e 's|x86_64|amd64|' -e 's|\\S\*//|[=
:space:]*
> >> >=20
> >> > //|'
> >> >=20
> >> >> >> > \
> >> >> >>=20
> >> >> >> [:space:] is invalid character class thus treated as a list =
of
> >> >> >> characters.
> >> >> >> \S corresponds to [^[:space:]], while \s to [[:space:]].
> >> >> >>=20
> >> >> >>   $ man pcrepattern | col -b | fgrep -m1 \\S
> >> >> >>  =20
> >> >> >>            \S     any character that is not a white space ch=
aracter
> >> >> >>=20
> >> >> >> This may break build given -march, etc. are no longer stripp=
ed.
> >> >> >=20
> >> >> > I wish that information had been presented when I said "I gue=
ss it
> >> >> > should
> >> >> > have been [:space:] instead of [:graph:] in the replacement."=
 after
> >> >> > you
> >> >> > stated [:graph:] was plain incorrect, although it is what had=
 been
> >> >> > previously suggested to me and did seem to be working.
> >> >>=20
> >> >> I didn't focus on pointing out every mistake with the existing =
hack
> >> >> because it was soon going away. Now that devel/libclc depends o=
n
> >> >> llvm40
> >> >> the original motivation to hold out on 17.* (bug 217016) before=
 2017Q2
> >> >> has been weakened.
> >> >=20
> >> > Pointing out something is wrong without giving the correct solut=
ion is
> >> > not
> >> > helpful. The upstream change in the 17.1-dev branch was not dire=
ctly
> >> > applicable to 13.0.x, so the the 'hack' would remain unless I wa=
s going
> >> > to
> >> > change to change the configure.ac and patch-configure myself, wh=
ich is
> >> > certainly
> >> > more work that to edit the post-patch and it would have been the=
 same
> >> > changes
> >> > in either place lacking clearer input.
> >> >=20
> >> > Nobody said anything to me about committing an update to libclc =
at this
> >> > moment. I do not believe that has tested in combination with the=
 rest
> >> > of the
> >> > graphics stack at the current versions in ports, the mix of LLVM=

> >> > versions
> >> > almost certainly will be a problem, and it's a day before the qu=
arterly
> >> > branch. WTF? I've been holding off Mesa 17.x and LLVM4.0 for aft=
er that
> >> > branch
> >> > while attempting to get Xorg 1.19 ready in time for that. The la=
tter
> >> > won't
> >> > happen because it took over a week to even start an exp-run on t=
he
> >> > bsd.xorg.mk
> >> > changes. I just explained the reason for holding of an update of=
 libclc
> >> > yesterday in a PR that proposed a more recent snapshot for the
> >> > transition to
> >> > dependence on llvm40. I had not even gotten everything onto llvm=
39 yet;
> >> > pocl
> >> > 0.14 should be compatible past 3.8, but it is not yet released a=
nd I
> >> > had
> >> > difficulties with rc1 as they switched to cmake so the build sys=
tem
> >> > needs to be
> >> > redone. While I'm sure Mesa 17.0.x will be ok with llvm40 after
> >> > appropriate
> >> > patching (I had to add several patches for clover in Mesa 13), I=
 cannot
> >> > say
> >> > the same for all the OpenCL ports, i.e. beignet which was only r=
ecently
> >> > made
> >> > compatible past llvm37 with the 1.3.0 update that allowed it to =
use
> >> > llvm39.
> >> > So I expect r438268 to be reverted, or someone else to handle al=
l the
> >> > fallout
> >> > this causes on the quarterly branch during Q2. I realize multipl=
e
> >> > people want
> >> > to help, but we need some coordination or else we are just wasti=
ng each
> >> > other's time. Sorry to be brunt, but that was an ill timed commi=
t.
> >>=20
> >> This patch was committed by me, after
> >> https://reviews.freebsd.org/D9394
> >> got accepted by swills, reviewed by kwm (with x11 hat on) in the
> >> beginning of February. No objections were raised since then. I did=
 not
> >> commit it earlier to wait for stable llvm40 to hit the tree. I aga=
in
> >> checked with swills yesterday before committing.
> >=20
> > I was not aware of the review until the commit. I do not know why
> > nobody
> > bothered to tell me other than there is serious lack of communicati=
on.
>=20
> There is not from our side. See below.
>=20
Oh yes it is...

> >> Hence, I will back this out if either kwm or swills tell me to.
> >> Steve/Koop: opinions? I will also personally say that I believe we=

> >> should only support one version of llvm (the latest stable) across=

> >> Mesa
> >> ports if possible, which is another reason why my patch to
> >> graphics/libGL bumps to LLVM4.0. I do not see any added value desp=
ite
> >> more maintenance work in supporting older versions of LLVM for Mes=
a.
> >> The
> >> PR you referenced was also explicitly looking for support of a new=
er
> >> LLVM, not an older one.
> >=20
> > I do not advocate sticking to older LLVM for long, and just made it=

> > easier for
> > people who want to try moving ahead. I merely want to wait until af=
ter
> > the
> > quarterly branch to switch to llvm40 because I expect some fallout.=

> > Also, I do
> > want to be sure all the OpenCL ports can use that version. I had wa=
nted
> > to get
> > Xorg 1.19 before the quarterly branch, then after the branch do the=

> > rest, but
> > it'll all have to wait a bit to not have a broken quarterly.
>=20
> OK, to be very blunt: the current HEAD is just bad for accelerated
> OpenGL. Nothing newer than Ivybridge is supported unless you go with =
the
> NVIDIA BLOB (which I have zero experience with). OpenCL is even more
> horrible: clover is a joke (I am actually using it for work on carriz=
o)
> and you'll be hard pressed to find any HW around that would be able t=
o
> use with it unless you are on drm-next. Beignet I worked on porting o=
ver
> back in the day with kwm, it is an even bigger joke b/c even with
> drm-next you only get single precision (I am unfortunately still on
> their mailing list and they now are slowly adding DP support it seems=
).
> An NVIDIA rep told us at an XDC directly that they will not support
> either CUDA or OpenCL on BSD unless we can show a customer demanding
> this and buying a few thousand GPUs. pocl is nothing that you would
> actually want to use unless you want to test drive OpenCL code (which=
 I
> figure I am one of the few people on FreeBSD that actually does this)=
.
>=20
> But if you have other insights into OpenCL that my experience with it=

> and daily use of has not revealed: please do educate me!
>=20
> So, the situation is as follows: you need (very) old HW to use
> OpenGL/OpenCL on anything including CURRENT. For anything newer,
> however, you need drm-next and a newer Mesa with llvm40. So this
> quarterly just doesn't have that big of an impact for any decision as=

> people will either be on drm-next, use software rendering, or eventua=
lly
> jump to the kms ports.
>=20
To be very blunt, the situation is crap and I've been wanting to fix it=
 for=20
years. Support is split across three segments. There's the DRI1/UMS har=
dware=20
for which support has almost been killed in ports and the kernel status=
 is=20
questionable, this I need to fix but there's still some blockers artifi=
cial).=20
There were excuses of nobody to work on the older stuff while I was=20
volunteering to do it and being ignored. There's the DRI2/KMS hardware=20=

supported by the kernel, which works well with what is in ports and is =
what I=20
am trying to support for the users as well as myself. It is all we have=
 been=20
able to use reasonable for some time. I had tried to get involved worki=
ng on=20
this years earlier, but my attempts were met with "no, we've got it cov=
ered",=20
so I sat back, watched, trying to prod it along further. And finally th=
ere is=20
the drm-next work to use hardware in generations beyond, so again no ov=
erlap=20
with the support. This is work that started in response to an absolute=20=

stagnation of the graphics stack during the last year. It does not make=
 sense=20
to bring stuff into FreeBSD ports that does not work with any FreeBSD k=
ernel. I=20
am concerned with OpenGL first and OpenCL second. I have no real use fo=
r=20
OpenCL, and haven't been able to see it work, so I've just tried to mak=
e it no=20
worse.

> >> Concerning your changes to graphics/libGL: I appreciate you wantin=
g to
> >> help and improve things. The Mesa ports are in dire need of that. =
I
> >> however would also appreciate if you would acknowledge the work ot=
her
> >> people (Mark Johnston, Johannes Lundberg, Kip Macy, Koop Mast, Pet=
e
> >> Wright, and myself) have put into this over the last 6+ months. Fo=
r
> >> some
> >=20
> >> selected time line:
> > I appreciate Koop's past work and Macy's efforts throughout the pas=
t
> > year. I
> > actually don't know what the rest of you have been up to since ther=
e is
> > little
> > discussion. kwm and dumbbell are no longer active with x11 as far a=
s I
> > know
> > and rarely active on IRC. Macy used to be active on IRC but not lat=
ely,
> > and
> > I'm not sure I've seen you on the xorg channel but I don't know wha=
t
> > nick you
> > might use. As far as I know, I am the only one attending to the
> > graphics ports
> > in FreeBSD for the past quarter. Macy mentioned trying to get more
> > people
> > involved a few times, but since nobody else ever showed up on IRC, =
I
> > had no
> > idea who might be up to what, at least until I saw your commits.
>=20
> Sorry, but that's simply not true. There have been multiple status
> reports where our efforts were discussed, there are relatively regula=
r
> graphics meetings organized by Ed Maste, everything happens in public=

> githubs, we are responsive to github issues, there are reviews on pha=
b,
> all of us have email, and more. This may predate your involvement wit=
h X
> but please do not mis-construct this as a lack of communication from =
our
> side just b/c we are not as active on the one communication channel y=
ou
> prefer. It would be good for you to contact Ed (emaste@) and get onto=

> the regular graphics meeting list to coordinate your efforts with us.=

>=20
My involvement in X in terms of trying to help goes back at least 4 yea=
rs. I=20
contributed many patches to the x11 repo when it was svn and for a whil=
e after=20
it moved to github. Eventually kwm stopped updating that repo, it stagn=
ated=20
and only caused confusion while I maintained my ports tree and shared p=
atches=20
on occasion. Finally I was let to commit my work because there was abso=
lutely=20
nobody else that showed any interest in doing so.

I know there were and are other github repos, but they are just that, e=
xternal=20
repos where individual work happens. I'm working on FreeBSD and what is=
 in the=20
official subversion repo is what I see. As I have been working alone as=
 far as I=20
knew, I felt no need to setup yet another repo, but if people would lik=
e to=20
work with me, then returning to svn would be my first suggestion. I val=
ue my=20
work too much to throw it down the toilet by using git.

I was aware that there was some sort of regularly scheduled conference =
call=20
going on just before dumbbell and kwm essentially ceased x11 activity. =
I asked=20
if I could be involved, but I was told no; I was just a lowly outsider.=
 Since=20
they became inactive, nobody else has mentioned calls on IRC, so I assu=
med=20
those stopped last fall when things ground to a halt. If those call are=
 still=20
going on, they are secret meeting to which I have not been invited! I h=
ave not=20
been contact by emaste, though I did just throw him a bone on IRC regar=
ding=20
the libclc then currently (now formerly) in ports not being compatible =
with=20
LLVM 4.0.

There was a status report last quarter for FreeBSDDesktop, which I read=
 as a=20
separate effort from anything the x11 team is involved in.

> I am honestly extremely disappointed by the fact that the hours we sp=
ent
> on this are now at least partially wasted and I need to waste even mo=
re
> hours to rebase and test this patch again.
>=20
Without coordination, it's all wasted. How do you think I feel getting =
told=20
that there's a bunch of duplicate work I should have known about, or th=
at=20
there's now other people who are seriously interested in working on Fre=
eBSD,=20
after having sat and watched things deteriorate while being denied entr=
y until=20
nobody could deny the situation was dire and the only option was to let=
 the=20
"new guy" come take a swing?

> >> * Johannes Lundberg enabled wayland and dri3 on the public
> >> FreeBSDDesktop github in last autumn
> >> * Kip and I changed to using libudev-devd there in December
> >> * I updated to Mesa 17.0 rc in January there
> >> * I bumped to llvm40 in the end of January there as that was neede=
d to
> >> support Polaris and Carrizo (better)
> >> * before that part goes amiss: compilation with the same llvm as i=
s
> >> linked against is also needed for amdgpu, we had crashes otherwise=

> >=20
> > Work in external repos doesn't help until it is merged. Nothing was=

> > pointed
> > out to me as merge ready. I know there is plenty of work going on
> > there, but
> > as far as I knew, the focus is on the kernel modules and any change=
s to
> > userland/ports were just temporary support until the kernel parts w=
ill
> > be
> > merged. Nobody said there was anything mergeable from the ports and=
 I
> > haven't
> > time to pick through it at to figure out what is ready. I have look=
ed
> > at some
> > of it, what I've stumbled on really, and not much looks like it was=

> > done with
> > an intent for clean merge so it requires more work to use on stock
> > FreeBSD.
>=20
> The merging part is exactly what I am doing. There are also open revi=
ews
> for the kernel modules I opened, which are blocked by linuxkpi change=
s
> that haven't made it upstream yet.
>=20
I've not been alerted to any of these reviews. The one review for Mesa =
17,=20
when it was premature, is the only one that was ever mentioned to me, a=
nd as I=20
said it did not look like effort had been made to ready if for FreeBSD =
ports.

> >> * throughout this time kwm (with x11 hat on) was involved in these=

> >> updates
> >=20
> > Which time frame are you talking about? I haven't seen kwm active i=
n
> > x11
> > affairs in at least 4 months. I had opened the mass of PRs for Xorg=

> > 1.18 when I
> > started my 1.19 work in order to try to kick him, or anyone else in=
to
> > committing, and the result was I got a bit to commit those bapt had=
n't
> > already
> > gotten around to. Since then I've been working mostly alone, not th=
at I
> > want
> > it that way.
>=20
> kwm has been reasonable active the last year from what I can testify =
to.
>=20
Active on what? I had xorg and mesa patches stacking up that I couldn't=
 get=20
into his github or into the ports tree. He said he was going to do a CF=
T for=20
Xorg 1.18, even mentioned it in a status report I believe, and then ano=
ther=20
quart goes by until bapt finally does the CFT just in time for he and I=
 to=20
commit all that work, which by that point had superseded everything in =
various=20
external repos as far as I knew. It's been at least half a year since I=
 saw=20
him active on x11, and even longer that I've seen the gtk/gnome stuff=20=

stagnating. There was a gtk+ 3.20 update in progress middle of last yea=
r that=20
still hasn't been done (I have a theme update PR blocked on the gtk3 up=
date=20
PR) while 3.22 has been out for months. So when he said something about=
 not=20
having time for FreeBSD anymore, I figured that was finally the self-ad=
mission=20
that someone else needs to fill the role. I have asked questions on IRC=
 about=20
why things are the way they are but don't get answers. I see dumbbell s=
till=20
says good morning sometimes but I haven't had anything I needed to ask.=


> >> * I uploaded the first version of the Mesa 17.0 patch to reviews o=
n
> >> Feb
> >> 7 (which you were apparently aware of)
> >=20
> > It was pointed out to me when I was committing Mesa 13, at which ti=
me
> > it was
> > definitely premature, so something to come back to but after some
> > number of
> > times without seeing any change I assumed it dead, whoops. I think =
it
> > was
> > still an RC, or it was 17.0.0 but llvm40 was at rc1 was time I look=
ed.
> >=20
> >> * I've since updated the patch multiple times for minor releases a=
nd
> >> address comments by mat and kwm (with x11 hat on)
> >> * again, no comments/objections were raised there by anybody else
> >=20
> > I suppose I should have raised concerns earlier, but it looked too =
raw
> > (too
> > much stuff specific to drm-next) for me to think it anywhere close =
to
> > being
> > committed, or to think to search for something like an update to
> > libclc. I was
> > also kinda hoping you'd join #freebsd-xorg at some point.
> >=20
> >> The first Mesa 17 patch in PR217016 dates from March 6, a month af=
ter
> >> my
> >> first Mesa 17 patch on reviews. Apparently you were aware of (at
> >> least)
> >> the last two items on the list above. So yes, coordination is
> >> important,
> >> which is also why we have an x11 hat (Koop). As you can see from t=
he
> >> above, Koop was involved in all of this from the onset.
> >=20
> > I find it odd that Koop is barely responsive on IRC but active on s=
ome
> > reviews.
> > Whatever, just part of the coordination and communication issues. L=
ast
> > time I
> > talked to kwm at any length he said he didn't really have time for
> > FreeBSD, so
> > I counted him out since then, only bothering to ask the occasional
> > question
> > without reply.
>=20
> kwm has the x11 hat and I consider him therefore the only authority o=
n
> this. If he feels like he can't do that anymore, I am certain he'll l=
et
> us know and step down. Assumptions are not necessary and as we've see=
n
> above not helpful.
>=20
It sounds like there's some misunderstanding about hats. There hat isn'=
t a=20
crown and there isn't a single person who runs the x11 team; x11 is a g=
roup of=20
peers.  When someone on the team does something where they represent th=
e team,=20
e.g. commit ports maintained by x11@, they are wearing the x11 hat for =
the=20
duration of that action. The hat is an indicator like a jersey for a sp=
orts=20
team. I might be one more than one team (i.e. KDE, sorta) and I switch =
hats as=20
needed.

Unless someone rage-quits, which has happened, people tend to dissipate=
. Their=20
priorities shift and they come around less, but it often takes time to =
say=20
they are done. I don't think kwm has to step down for anyone else to ge=
t=20
involved, but if so, then I'd say that already happened with the=20
aforementioned statement on IRC.

According to https://wiki.freebsd.org/Graphics/ the x11 team is:
Baptiste Daroussin (active, but busy with many other things)
Eitan Adler (not seen active with x11 in at least a year)
Jean-S=E9bastien P=E9dron (x11 inactive since last summer, active on ot=
her ports)
Jung-uk Kim (not seen active with x11, active elsewhere)
Koop Mast (inactive for at least half a year)
Niclas Zeising (not seen active in at least a year)
MatthewRezny ("they new guy")

Now I know that page isn't really up to date because I have not been ab=
le to=20
edit it (I need to bug someone about wiki permissions) to state the cur=
rent=20
status, but I as I don't see Mark Johnston, Johannes Lundberg, Kip Macy=
, Pete=20
Wright, or Johannes Dieterich on that list, I wouldn't count y'all as m=
embers=20
of x11@. You might all be doing some great work in your FreeBSDDesktop=20=

project, but that is separate from the FreeBSD project. If you would li=
ke to=20
volunteer for team x11@ then I encourage you to get active on our IRC c=
hannel=20
and ask to be added to the team roster.

> >> > I had not noticed that your review was updated recently as it sa=
t idle
> >> > for
> >> > quite a while after the update to 13.0.x landed in ports. I'm cu=
rious
> >> > about
> >> > the comment regarding a need for libudev. As far as I know, Mesa=

> >> > dropped the
> >> > dependence on udev in v13 and relies upon libdrm for all the dir=
ect
> >> > hardware
> >> > interaction. Initially, I had some hope to use libudev-devd as a=
 single
> >> > translation layer, but after reading through the libdrm code it =
became
> >> > obvious
> >> > that would not be the case as the conditional udev code in libdr=
m is
> >> > withing
> >> > Linux-specific code paths so no help to us. Thus, I implemented =
support
> >> > for our
> >> > platform directly in libdrm in order to drop dependence on libde=
vq,
> >> > which was
> >> > needed for no other purpose. Could you explain why Mesa 17 would=
 need
> >> > libudev-
> >> > devd for AMDGPU?
> >>=20
> >> We used libudev for loader related functionality in Mesa. I am hap=
py
> >> if
> >> we do not need it anymore, at the time Kip and I just wanted to ge=
t
> >> rid
> >> of libdevq -- a FreeBSD-ism. libdrm did not support the linuxkpi
> >> amdgpu
> >> and Mesa would not load radeonsi properly.
> >=20
> > Is libdrm missing some functionality I should implement, or was it =
just
> > a
> > matter that the version with libdevq hacked in was only partially
> > working? I
> > have tried to address the shortcomings I knew of in libdrm and cate=
r to
> > the
> > differences I was aware of in drm-next, so it would be good to know=
 if
> > libdrm
> > sans libdevq works for what you need. I've only had test reports fr=
om
> > users of
> > drm-next that have replaced libdrm and removed libdevq, but may sti=
ll
> > have a
> > modified version of Mesa. I do not know the extent of changes in th=
e
> > the
> > external ports collection.
>=20
> It didn't work back then for amdgpu with libdevq. I believe i915 work=
ed,
> so you may well just get those reports now as the number of people wi=
th
> amdgpu HW is probably tiny.
>
Please test the new libdrm and let me know the situation. "It didn't wo=
rk back=20
then" doesn't tell me anything meaningful about the prior deficiencies.=

=20
> >> Concerning the libdrm udev: as you may have seen from the
> >> FreeBSDDesktop
> >> github, I tried to do that before Christmas w/o success.
> >=20
> > I have not trawled through GitHub nor was I planning to. The work t=
here
> > is
> > focused on newer hardware than I own and I have enough else to keep=
 me
> > occupied supporting the hardware I do own, which includes stuff I m=
ust
> > revive
> > support for after it feel by the wayside over the last several year=
s.
> > If there
> > is stuff worth looking at, please point it out to me.
>=20
> I believe bapt has committed all the wayland ports from Johannes
> Lundberg, there are some alpha ports for ROCm in there but those are
> blocked on amdkfd at the moment.
>=20
> This github will be deleted once Mesa 17 hits the tree and replaced w=
ith
> a fresh one (the svn->git force push has broken this one)
>=20
One more reason I have no interest in using github.

> >> >> > To be sure there is no misunderstanding now, would you consid=
er this
> >> >> > correct? @${REINPLACE_CMD} -e 's|x86_64|amd64|' -e
> >> >> > 's|\\S\*//|[^[:space:]]* //|' \
> >> >>=20
> >> >> Not quite, adding extra space after [] is unnecessary.
> >> >>=20
> >> >>   -e 's|\\S\*|[^[:space:]]*|' \
> >> >=20
> >> > It is interesting how many variations appear to produce the same=

> >> > result. You
> >> > mention the space is not needed, so 's|\\S\*//|[^[:space:]]*//|'=
 but
> >> > then the
> >> > example has the trailing // removed. Any reason why?
>=20
> I will also at this point say that further discussions are moot until=

> Steve/Koop step in for libclc and you had a chance to catch up with u=
s
> on a graphics meeting.

I'll ask Steve as my mentor about reverting the commit to libclc that c=
ame=20
from outside the x11 team. I would don the x11 hat and do it immediatel=
y if=20
not a mentee. I will be surprised if Koop steps in, but he did already =
say the=20
same thing in the review that I did earlier, "This should probably wait=
 until=20
the next mesa to keep the llvm versions in sync used by libclc/mesa/bei=
gnet."=20
I did not invest all the time I did over this past quarter only to have=
 a=20
broken graphics stack in the quarterly branch.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8597772.U1FF7xgxCB>