<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>225304</bug_id>
          
          <creation_ts>2021-05-03 07:24:49 -0700</creation_ts>
          <short_desc>OffscreenCanvas should preserve context transform after transferToImageBitmap</short_desc>
          <delta_ts>2021-05-05 06:20:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>183720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756168</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-03 07:24:49 -0700</bug_when>
    <thetext>As the bug title says - currently if you call transferToImageBitmap on an OffscreenCanvas, the graphics context will be reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756472</commentid>
    <comment_count>1</comment_count>
      <attachid>427643</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-04 01:31:37 -0700</bug_when>
    <thetext>Created attachment 427643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756477</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-04 02:23:17 -0700</bug_when>
    <thetext>Just a note, I guess there were 3 &apos;obvious&apos; options to fix this;

1- Figure out how to decouple GraphicsContext from ImageBuffer
2- Replay the state stack on a new GraphicsContext
3- Return a copy of the buffer instead of the original buffer

I went with option 3 as it&apos;s by far the easiest, smallest and least invasive change. I played around with option 2 and it&apos;s very feasible, but it feels a bit hacky. I didn&apos;t even attempt option 1 as that seems like a pretty huge departure from how things are setup right now.

The downside of option 3 is that you end up with a copy and a clear rather than just an allocate and clear, but given transferToImageBitmap isn&apos;t really expected to be fast, this doesn&apos;t seem unreasonable to me (we have similar work-arounds for similar problems elsewhere in canvas).

This is one of those areas where I feel dogged adherence to the spec is actually just harming both browsers and users, but it&apos;s tested in WPT and it&apos;s pretty low effort to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756812</commentid>
    <comment_count>3</comment_count>
      <attachid>427643</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-04 22:33:51 -0700</bug_when>
    <thetext>Comment on attachment 427643
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=427643&amp;action=review

&gt; Source/WebCore/html/OffscreenCanvas.cpp:271
&gt; +        // As the canvas context state is stored in GraphicsContext, which is tightly bound
&gt; +        // to buffer(), to avoid resetting the context state, we have to make a copy and
&gt; +        // clear the original buffer rather than returning the original buffer.

The comment &quot;tightly bound to buffer()&quot; seems to say that we can’t possibly get a GraphicsContext to release its current buffer and allocate a new one.

Is that true, maybe due to limitations to CGGraphicsContext on Apple’s platforms, or is this simply new work we’d need to do in GraphicsContext?

&gt; Source/WebCore/html/OffscreenCanvas.cpp:272
&gt; +        ASSERT(buffer() &amp;&amp; drawingContext());

Maybe assert these separately?

But also, we don’t normally have to assert pointers are non-null; dereferencing them usually hits a null dereference quickly without us writing any additional code.

And also, if we are using m_context below, and want to assert it’s not null, then we should assert that rather than drawingContext().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756866</commentid>
    <comment_count>4</comment_count>
      <attachid>427748</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-05 02:13:51 -0700</bug_when>
    <thetext>Created attachment 427748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756873</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-05 02:33:24 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 427643 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427643&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:271
&gt; &gt; +        // As the canvas context state is stored in GraphicsContext, which is tightly bound
&gt; &gt; +        // to buffer(), to avoid resetting the context state, we have to make a copy and
&gt; &gt; +        // clear the original buffer rather than returning the original buffer.
&gt; 
&gt; The comment &quot;tightly bound to buffer()&quot; seems to say that we can’t possibly
&gt; get a GraphicsContext to release its current buffer and allocate a new one.
&gt; 
&gt; Is that true, maybe due to limitations to CGGraphicsContext on Apple’s
&gt; platforms, or is this simply new work we’d need to do in GraphicsContext?

I&apos;ve changed this comment, I don&apos;t think I picked my words well - the GraphicsContext is created and owned by the ImageBuffer and CanvasBase always accesses it through the image buffer. I think being able to release the associated surface and recreate one would involve some platform-specific plumbing that isn&apos;t currently there and may be non-trivial.

It would be a lot easier to do option 2 in comment #2 than this.

&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:272
&gt; &gt; +        ASSERT(buffer() &amp;&amp; drawingContext());
&gt; 
&gt; Maybe assert these separately?
&gt; 
&gt; But also, we don’t normally have to assert pointers are non-null;
&gt; dereferencing them usually hits a null dereference quickly without us
&gt; writing any additional code.
&gt; 
&gt; And also, if we are using m_context below, and want to assert it’s not null,
&gt; then we should assert that rather than drawingContext().

I&apos;ve just removed this assert, none of those pointers can be null at that point unless something went catastrophically wrong.

m_context is checked at the start of the function and nothing is called that can destroy it, buffer() is checked just above with the !m_hasCreatedImageBuffer check and drawingContext() can only be null if m_context isn&apos;t a 2d context (it is and is checked within this block) and buffer() returns null (which shouldn&apos;t happen because m_hasCreatedImageBuffer is true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756876</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-05 02:49:53 -0700</bug_when>
    <thetext>Committed r277011 (237327@main): &lt;https://commits.webkit.org/237327@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756878</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-05 02:50:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/77548954&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427643</attachid>
            <date>2021-05-04 01:31:37 -0700</date>
            <delta_ts>2021-05-05 02:13:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225304-20210504093136.patch</filename>
            <type>text/plain</type>
            <size>8765</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0ZGFjNDkwNjcxZjg4
MzI4ODhiNjBmY2I1ZGRiMzYxNGNlZGNlNS4uMzA1YzcxNmQ1MjlhMGM1ZTNlMjFmMjI4NWQ5YTdk
NjM4ZjFhYTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA1LTA0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBPZmZzY3JlZW5DYW52YXMgc2hv
dWxkIHByZXNlcnZlIGNvbnRleHQgdHJhbnNmb3JtIGFmdGVyIHRyYW5zZmVyVG9JbWFnZUJpdG1h
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdHJhbnNm
ZXJUb0ltYWdlQml0bWFwIHNob3VsZCBub3QgYWZmZWN0IHRoZSBzdGF0ZSBvZiB0aGUgY2FudmFz
CisgICAgICAgIGNvbnRleHQuIEluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSBhY3R1YWwgY2FudmFz
IGJ1ZmZlciwgdG8gd2hpY2ggdGhlCisgICAgICAgIGRyYXdpbmcgY29udGV4dCBpcyB0aWdodGx5
IGJvdW5kLCByZXR1cm4gYSBjb3B5IGFuZCBjbGVhciB0aGUKKyAgICAgICAgb3JpZ2luYWwuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAg
ICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNj
cmVlbkNhbnZhczo6dHJhbnNmZXJUb0ltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok9m
ZnNjcmVlbkNhbnZhczo6dGFrZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmg6CisKIDIwMjEtMDUtMDMgIENocmlz
IExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIERlY29kaW5nIGFuIFNWRyBvZmYg
dGhlIG1haW4gdGhyZWFkIGNhdXNlcyBhIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVl
bkNhbnZhcy5jcHAKaW5kZXggMzk2M2VjN2ZkOTAzOTM2YTYzNDcyZDBlN2ViYjBiMmYwYjJjNmU5
Yi4uODQ0ZmQ4NzI5MmU2ZTYwOWFiZTQ3NTFmYmRhN2YzZTQ2ZjI3ZjcxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtMjY0LDExICsyNjQsMTYgQEAgRXhjZXB0
aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1h
Z2VCaXRtYXAoKQogICAgICAgICAgICAgcmV0dXJuIHsgSW1hZ2VCaXRtYXA6OmNyZWF0ZShJbWFn
ZUJpdG1hcEJhY2tpbmcoV1RGTW92ZShidWZmZXIpKSkgfTsKICAgICAgICAgfQogCi0gICAgICAg
IGF1dG8gYnVmZmVyID0gdGFrZUltYWdlQnVmZmVyKCk7Ci0gICAgICAgIGlmICghYnVmZmVyKQot
ICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPEltYWdlQml0bWFwPiB7IG51bGxwdHIgfSB9Owor
ICAgICAgICBjbGVhckNvcGllZEltYWdlKCk7CisKKyAgICAgICAgLy8gQXMgdGhlIGNhbnZhcyBj
b250ZXh0IHN0YXRlIGlzIHN0b3JlZCBpbiBHcmFwaGljc0NvbnRleHQsIHdoaWNoIGlzIHRpZ2h0
bHkgYm91bmQKKyAgICAgICAgLy8gdG8gYnVmZmVyKCksIHRvIGF2b2lkIHJlc2V0dGluZyB0aGUg
Y29udGV4dCBzdGF0ZSwgd2UgaGF2ZSB0byBtYWtlIGEgY29weSBhbmQKKyAgICAgICAgLy8gY2xl
YXIgdGhlIG9yaWdpbmFsIGJ1ZmZlciByYXRoZXIgdGhhbiByZXR1cm5pbmcgdGhlIG9yaWdpbmFs
IGJ1ZmZlci4KKyAgICAgICAgQVNTRVJUKGJ1ZmZlcigpICYmIGRyYXdpbmdDb250ZXh0KCkpOwor
ICAgICAgICBhdXRvIGJ1ZmZlckNvcHkgPSBidWZmZXIoKS0+Y29weVJlY3RUb0J1ZmZlcihGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBidWZmZXIoKS0+bG9naWNhbFNpemUoKSksIGJ1ZmZlcigpLT5j
b2xvclNwYWNlKCksICpkcmF3aW5nQ29udGV4dCgpKTsKKyAgICAgICAgZG93bmNhc3Q8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5jbGVhckNhbnZhcygpOwog
Ci0gICAgICAgIHJldHVybiB7IEltYWdlQml0bWFwOjpjcmVhdGUoSW1hZ2VCaXRtYXBCYWNraW5n
KFdURk1vdmUoYnVmZmVyKSwgb3JpZ2luQ2xlYW4oKSA/IFNlcmlhbGl6YXRpb25TdGF0ZTo6T3Jp
Z2luQ2xlYW4gOiBTZXJpYWxpemF0aW9uU3RhdGUoKSkpIH07CisgICAgICAgIHJldHVybiB7IElt
YWdlQml0bWFwOjpjcmVhdGUoSW1hZ2VCaXRtYXBCYWNraW5nKFdURk1vdmUoYnVmZmVyQ29weSks
IG9yaWdpbkNsZWFuKCkgPyBTZXJpYWxpemF0aW9uU3RhdGU6Ok9yaWdpbkNsZWFuIDogU2VyaWFs
aXphdGlvblN0YXRlKCkpKSB9OwogICAgIH0KIAogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTQ3OCwx
OCArNDgzLDEzIEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAKIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogewotICAgIGlmICghbV9kZXRhY2hlZCkKLSAgICAgICAgbV9oYXNDcmVhdGVk
SW1hZ2VCdWZmZXIgPSB0cnVlOworICAgIEFTU0VSVChtX2RldGFjaGVkKTsKIAotICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgcHJpbWFyaWx5IGZvciB1c2Ugd2l0aCB0cmFuc2ZlclRvSW1hZ2VCaXRt
YXAsIHdoaWNoCi0gICAgLy8gcmVxdWlyZXMgdGhhdCB0aGUgY2FudmFzIGJpdG1hcCByZWZlciB0
byBhIG5ldywgYmxhbmsgYml0bWFwIG9mIHRoZSBzYW1lCi0gICAgLy8gc2l6ZSBhZnRlciB0aGUg
ZXhpc3RpbmcgYml0bWFwIGlzIHRha2VuLiBJbiB0aGUgY2FzZSBvZiBhIHplcm8tc2l6ZQotICAg
IC8vIGJpdG1hcCwgb3VyIGJ1ZmZlciBpcyBudWxsLCBzbyByZXR1cm5pbmcgZWFybHkgaGVyZSBp
cyB2YWxpZC4KICAgICBpZiAoc2l6ZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBjbGVhckNvcGllZEltYWdlKCk7Ci0gICAgcmV0dXJuIHNldEltYWdlQnVmZmVy
KG1fZGV0YWNoZWQgPyBudWxscHRyIDogSW1hZ2VCaXRtYXA6OmNyZWF0ZUltYWdlQnVmZmVyKCpj
YW52YXNCYXNlU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzaXplKCksIFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQpKTsKKyAgICByZXR1cm4gc2V0SW1hZ2VCdWZmZXIobnVsbHB0cik7CiB9
CiAKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKaW5kZXgg
Mjg0NDYxYzRlZGYxMDA4YTAzNDgwZjNiOTM4NzE3YzVhMWJjYTljNS4uZDNmYzY2MTdmNjM4OWU4
MWM5OWU5MzVkNjViODE1OTYxZDhjOWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaApAQCAtMTc2LDYg
KzE3Niw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoQ2FudmFz
SW1hZ2VTb3VyY2UmJiwgZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzdywgZmxvYXQgc2gsIGZs
b2F0IGR4LCBmbG9hdCBkeSwgZmxvYXQgZHcsIGZsb2F0IGRoKTsKIAogICAgIHZvaWQgZHJhd0lt
YWdlRnJvbVJlY3QoSFRNTEltYWdlRWxlbWVudCYsIGZsb2F0IHN4ID0gMCwgZmxvYXQgc3kgPSAw
LCBmbG9hdCBzdyA9IDAsIGZsb2F0IHNoID0gMCwgZmxvYXQgZHggPSAwLCBmbG9hdCBkeSA9IDAs
IGZsb2F0IGR3ID0gMCwgZmxvYXQgZGggPSAwLCBjb25zdCBTdHJpbmcmIGNvbXBvc2l0ZU9wZXJh
dGlvbiA9IGVtcHR5U3RyaW5nKCkpOworICAgIHZvaWQgY2xlYXJDYW52YXMoKTsKIAogICAgIHVz
aW5nIFN0eWxlVmFyaWFudCA9IFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+
LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4+OwogICAgIFN0eWxlVmFyaWFudCBzdHJva2VTdHlsZSgp
IGNvbnN0OwpAQCAtMzY1LDcgKzM2Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1BvaW50SW5Q
YXRoSW50ZXJuYWwoY29uc3QgUGF0aCYsIGZsb2F0IHgsIGZsb2F0IHksIENhbnZhc0ZpbGxSdWxl
KTsKICAgICBib29sIGlzUG9pbnRJblN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmLCBmbG9hdCB4
LCBmbG9hdCB5KTsKIAotICAgIHZvaWQgY2xlYXJDYW52YXMoKTsKICAgICBQYXRoIHRyYW5zZm9y
bUFyZWFUb0RldmljZShjb25zdCBQYXRoJikgY29uc3Q7CiAgICAgUGF0aCB0cmFuc2Zvcm1BcmVh
VG9EZXZpY2UoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCByZWN0Q29udGFpbnND
YW52YXMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCA0ZTIxZTdiNmNiZjViNjZjMDk5Y2Q2YTI5ZTM4YmZjOTE4ZTUzNjRjLi4zZGUxZjZl
ODFkZTRiODEwN2Q3ZTM5MDExOGY3NDk1NTFmOWNjMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNS0wNCAgQ2hyaXMgTG9yZCAgPGNsb3Jk
QGlnYWxpYS5jb20+CisKKyAgICAgICAgT2Zmc2NyZWVuQ2FudmFzIHNob3VsZCBwcmVzZXJ2ZSBj
b250ZXh0IHRyYW5zZm9ybSBhZnRlciB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgdHJhbnNmZXJU
b0ltYWdlQml0bWFwIHRlc3RzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMDUtMDMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIERlY29kaW5nIGFuIFNWRyBvZmYgdGhlIG1haW4gdGhyZWFkIGNhdXNlcyBhIGNyYXNo
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8u
aW1hZ2ViaXRtYXAtZXhwZWN0ZWQudHh0CmluZGV4IGNkMTQyMTI0NzE0ODQ3NWM1N2NkNDU2ZjNl
YWYwMjg0NTAxZjcxNDIuLmJiN2ZlMTliNTk0MjI4YmE4YmQ5ZjdjZWMzZGUyN2NjMDMyZGUzOTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIu
dG8uaW1hZ2ViaXRtYXAtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQAogUEFTUyBUZXN0IHRo
YXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3Jy
ZWN0IHdpZHRoIGFuZCBoZWlnaHQKIEZBSUwgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1h
cCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xvciBhc3NlcnRfZXF1YWxz
OiBBbHBoYSBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNTAsIDI1KSBleHBlY3RlZCAyNTUgYnV0
IGdvdCAwCiBQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgd29uJ3QgY2hhbmdl
IGNvbnRleHQncyBwcm9wZXJ0eQotRkFJTCBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFw
IHByZXNlcnZlcyB0cmFuc2Zvcm0gYXNzZXJ0X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUg
cGl4ZWwgYXQgKDIzLCAyNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAorUEFTUyBUZXN0IHRoYXQg
dHJhbnNmZXJUb0ltYWdlQml0bWFwIHByZXNlcnZlcyB0cmFuc2Zvcm0KIFBBU1MgVGVzdCB0aGF0
IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFz
IHRocm93cyBhbiBleGNlcHRpb24KIFBBU1MgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1h
cCB3aXRob3V0IGEgY29udGV4dCB0aHJvd3MgYW4gZXhjZXB0aW9uCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLnct
ZXhwZWN0ZWQudHh0CmluZGV4IGRlYzZiOGU4ODI3ZjI0ZWUxZTE3ZDExYjgxNTUyYWQ2ZGZmM2M5
ZWIuLjQzMTJhMTcwOWFmMDAzMTNmYTEzZWY0YTc4Yjc2MzlkZGQ5N2Q4OTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJp
dG1hcC53LWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgUEFTUyBUZXN0IHRoYXQgdHJhbnNm
ZXJUb0ltYWdlQml0bWFwIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9y
IGkKIFBBU1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHR3aWNlIHJldHVy
bnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9yIGluIGEgd29ya2VyCiBGQUlMIFRl
c3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB0d2ljZSBvbiBhIGFscGhhLWRpc2Fi
bGVkIGNvbnRleHQgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3QgY29sb3IgaW4g
YSB3b3JrZXIgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMyB0byBiZSAy
NTUgYnV0IGdvdCAwIChleHBlY3RlZCBhcnJheSBbMCwgMCwgMCwgMjU1XSBnb3Qgb2JqZWN0ICIw
LDAsMCwwIikKIFBBU1MgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB3b24ndCBjaGFu
Z2UgY29udGV4dCdzIHByb3BlcnR5IGluIGEgd29ya2VyCi1GQUlMIFRlc3QgdGhhdCBjYWxsIHRy
YW5zZmVyVG9JbWFnZUJpdG1hcCBwcmVzZXJ2ZXMgdHJhbnNmb3JtIGluIGEgd29ya2VyIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgMjU1IGJ1dCBnb3QgMCAo
ZXhwZWN0ZWQgYXJyYXkgWzAsIDI1NSwgMCwgMjU1XSBnb3Qgb2JqZWN0ICIwLDAsMCwwIikKK1BB
U1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHByZXNlcnZlcyB0cmFuc2Zv
cm0gaW4gYSB3b3JrZXIKIFBBU1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFw
IG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3
b3JrZXIKIFBBU1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdpdGhvdXQg
YSBjb250ZXh0IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427748</attachid>
            <date>2021-05-05 02:13:51 -0700</date>
            <delta_ts>2021-05-05 06:20:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225304-20210505101350.patch</filename>
            <type>text/plain</type>
            <size>8704</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0ZGFjNDkwNjcxZjg4
MzI4ODhiNjBmY2I1ZGRiMzYxNGNlZGNlNS4uN2NiOWViNGQ1YTU1M2Y4NDk3ZjRmMmMzZmE3MTRi
MTQ0NzZhYzg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA1LTA0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBPZmZzY3JlZW5DYW52YXMgc2hv
dWxkIHByZXNlcnZlIGNvbnRleHQgdHJhbnNmb3JtIGFmdGVyIHRyYW5zZmVyVG9JbWFnZUJpdG1h
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgdHJhbnNmZXJU
b0ltYWdlQml0bWFwIHNob3VsZCBub3QgYWZmZWN0IHRoZSBzdGF0ZSBvZiB0aGUgY2FudmFzCisg
ICAgICAgIGNvbnRleHQuIEluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSBhY3R1YWwgY2FudmFzIGJ1
ZmZlciwgdG8gd2hpY2ggdGhlCisgICAgICAgIGRyYXdpbmcgY29udGV4dCBpcyB0aWdodGx5IGJv
dW5kLCByZXR1cm4gYSBjb3B5IGFuZCBjbGVhciB0aGUKKyAgICAgICAgb3JpZ2luYWwuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6dHJhbnNmZXJUb0ltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNj
cmVlbkNhbnZhczo6dGFrZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmg6CisKIDIwMjEtMDUtMDMgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIERlY29kaW5nIGFuIFNWRyBvZmYgdGhl
IG1haW4gdGhyZWFkIGNhdXNlcyBhIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKaW5kZXggMzk2M2VjN2ZkOTAzOTM2YTYzNDcyZDBlN2ViYjBiMmYwYjJjNmU5Yi4u
ZjEzYTIxYmJiZjQ5Mjg3NjFkYTY1ZGY4MDU4MDE2NWM1MjhiY2RhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtMjY0LDExICsyNjQsMTQgQEAgRXhjZXB0aW9u
T3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VC
aXRtYXAoKQogICAgICAgICAgICAgcmV0dXJuIHsgSW1hZ2VCaXRtYXA6OmNyZWF0ZShJbWFnZUJp
dG1hcEJhY2tpbmcoV1RGTW92ZShidWZmZXIpKSkgfTsKICAgICAgICAgfQogCi0gICAgICAgIGF1
dG8gYnVmZmVyID0gdGFrZUltYWdlQnVmZmVyKCk7Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAg
ICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPEltYWdlQml0bWFwPiB7IG51bGxwdHIgfSB9OwotCi0g
ICAgICAgIHJldHVybiB7IEltYWdlQml0bWFwOjpjcmVhdGUoSW1hZ2VCaXRtYXBCYWNraW5nKFdU
Rk1vdmUoYnVmZmVyKSwgb3JpZ2luQ2xlYW4oKSA/IFNlcmlhbGl6YXRpb25TdGF0ZTo6T3JpZ2lu
Q2xlYW4gOiBTZXJpYWxpemF0aW9uU3RhdGUoKSkpIH07CisgICAgICAgIC8vIEFzIHRoZSBjYW52
YXMgY29udGV4dCBzdGF0ZSBpcyBzdG9yZWQgaW4gR3JhcGhpY3NDb250ZXh0LCB3aGljaCBpcyBv
d25lZAorICAgICAgICAvLyBieSBidWZmZXIoKSwgdG8gYXZvaWQgcmVzZXR0aW5nIHRoZSBjb250
ZXh0IHN0YXRlLCB3ZSBoYXZlIHRvIG1ha2UgYSBjb3B5IGFuZAorICAgICAgICAvLyBjbGVhciB0
aGUgb3JpZ2luYWwgYnVmZmVyIHJhdGhlciB0aGFuIHJldHVybmluZyB0aGUgb3JpZ2luYWwgYnVm
ZmVyLgorICAgICAgICBhdXRvIGJ1ZmZlckNvcHkgPSBidWZmZXIoKS0+Y29weVJlY3RUb0J1ZmZl
cihGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBidWZmZXIoKS0+bG9naWNhbFNpemUoKSksIGJ1ZmZl
cigpLT5jb2xvclNwYWNlKCksICpkcmF3aW5nQ29udGV4dCgpKTsKKyAgICAgICAgZG93bmNhc3Q8
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KS5jbGVhckNhbnZh
cygpOworICAgICAgICBjbGVhckNvcGllZEltYWdlKCk7CisKKyAgICAgICAgcmV0dXJuIHsgSW1h
Z2VCaXRtYXA6OmNyZWF0ZShJbWFnZUJpdG1hcEJhY2tpbmcoV1RGTW92ZShidWZmZXJDb3B5KSwg
b3JpZ2luQ2xlYW4oKSA/IFNlcmlhbGl6YXRpb25TdGF0ZTo6T3JpZ2luQ2xlYW4gOiBTZXJpYWxp
emF0aW9uU3RhdGUoKSkpIH07CiAgICAgfQogCiAjaWYgRU5BQkxFKFdFQkdMKQpAQCAtNDc4LDE4
ICs0ODEsMTMgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29u
c3QKIAogUmVmUHRyPEltYWdlQnVmZmVyPiBPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZl
cigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2RldGFjaGVkKQotICAgICAgICBtX2hhc0NyZWF0ZWRJ
bWFnZUJ1ZmZlciA9IHRydWU7CisgICAgQVNTRVJUKG1fZGV0YWNoZWQpOwogCi0gICAgLy8gVGhp
cyBmdW5jdGlvbiBpcyBwcmltYXJpbHkgZm9yIHVzZSB3aXRoIHRyYW5zZmVyVG9JbWFnZUJpdG1h
cCwgd2hpY2gKLSAgICAvLyByZXF1aXJlcyB0aGF0IHRoZSBjYW52YXMgYml0bWFwIHJlZmVyIHRv
IGEgbmV3LCBibGFuayBiaXRtYXAgb2YgdGhlIHNhbWUKLSAgICAvLyBzaXplIGFmdGVyIHRoZSBl
eGlzdGluZyBiaXRtYXAgaXMgdGFrZW4uIEluIHRoZSBjYXNlIG9mIGEgemVyby1zaXplCi0gICAg
Ly8gYml0bWFwLCBvdXIgYnVmZmVyIGlzIG51bGwsIHNvIHJldHVybmluZyBlYXJseSBoZXJlIGlz
IHZhbGlkLgogICAgIGlmIChzaXplKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKLSAgICByZXR1cm4gc2V0SW1hZ2VCdWZmZXIo
bV9kZXRhY2hlZCA/IG51bGxwdHIgOiBJbWFnZUJpdG1hcDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKmNh
bnZhc0Jhc2VTY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCkpOworICAgIHJldHVybiBzZXRJbWFnZUJ1ZmZlcihudWxscHRyKTsKIH0K
IAogdm9pZCBPZmZzY3JlZW5DYW52YXM6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAppbmRleCAy
ODQ0NjFjNGVkZjEwMDhhMDM0ODBmM2I5Mzg3MTdjNWExYmNhOWM1Li5kM2ZjNjYxN2Y2Mzg5ZTgx
Yzk5ZTkzNWQ2NWI4MTU5NjFkOGM5ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCkBAIC0xNzYsNiAr
MTc2LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShDYW52YXNJ
bWFnZVNvdXJjZSYmLCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgZmxv
YXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxvYXQgZGgpOwogCiAgICAgdm9pZCBkcmF3SW1h
Z2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiwgZmxvYXQgc3ggPSAwLCBmbG9hdCBzeSA9IDAs
IGZsb2F0IHN3ID0gMCwgZmxvYXQgc2ggPSAwLCBmbG9hdCBkeCA9IDAsIGZsb2F0IGR5ID0gMCwg
ZmxvYXQgZHcgPSAwLCBmbG9hdCBkaCA9IDAsIGNvbnN0IFN0cmluZyYgY29tcG9zaXRlT3BlcmF0
aW9uID0gZW1wdHlTdHJpbmcoKSk7CisgICAgdm9pZCBjbGVhckNhbnZhcygpOwogCiAgICAgdXNp
bmcgU3R5bGVWYXJpYW50ID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4s
IFJlZlB0cjxDYW52YXNQYXR0ZXJuPj47CiAgICAgU3R5bGVWYXJpYW50IHN0cm9rZVN0eWxlKCkg
Y29uc3Q7CkBAIC0zNjUsNyArMzY2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzUG9pbnRJblBh
dGhJbnRlcm5hbChjb25zdCBQYXRoJiwgZmxvYXQgeCwgZmxvYXQgeSwgQ2FudmFzRmlsbFJ1bGUp
OwogICAgIGJvb2wgaXNQb2ludEluU3Ryb2tlSW50ZXJuYWwoY29uc3QgUGF0aCYsIGZsb2F0IHgs
IGZsb2F0IHkpOwogCi0gICAgdm9pZCBjbGVhckNhbnZhcygpOwogICAgIFBhdGggdHJhbnNmb3Jt
QXJlYVRvRGV2aWNlKGNvbnN0IFBhdGgmKSBjb25zdDsKICAgICBQYXRoIHRyYW5zZm9ybUFyZWFU
b0RldmljZShjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICBib29sIHJlY3RDb250YWluc0Nh
bnZhcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDRlMjFlN2I2Y2JmNWI2NmMwOTljZDZhMjllMzhiZmM5MThlNTM2NGMuLjdmMmUxZmQy
YTRkNjliNTFhYjZkNGYzMmVlZjYwOWIyMzg4NTEzYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTA0ICBDaHJpcyBMb3JkICA8Y2xvcmRA
aWdhbGlhLmNvbT4KKworICAgICAgICBPZmZzY3JlZW5DYW52YXMgc2hvdWxkIHByZXNlcnZlIGNv
bnRleHQgdHJhbnNmb3JtIGFmdGVyIHRyYW5zZmVyVG9JbWFnZUJpdG1hcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmViYXNlbGluZSB0cmFuc2ZlclRvSW1h
Z2VCaXRtYXAgdGVzdHMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC53LWV4cGVjdGVkLnR4
dDoKKwogMjAyMS0wNS0wMyAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgRGVjb2RpbmcgYW4gU1ZHIG9mZiB0aGUgbWFpbiB0aHJlYWQgY2F1c2VzIGEgY3Jhc2gKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFn
ZWJpdG1hcC1leHBlY3RlZC50eHQKaW5kZXggY2QxNDIxMjQ3MTQ4NDc1YzU3Y2Q0NTZmM2VhZjAy
ODQ1MDFmNzE0Mi4uYmI3ZmUxOWI1OTQyMjhiYThiZDlmN2NlYzNkZTI3Y2MwMzJkZTM5OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5p
bWFnZWJpdG1hcC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBACiBQQVNTIFRlc3QgdGhhdCB0
cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3Qg
d2lkdGggYW5kIGhlaWdodAogRkFJTCBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHJl
dHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9yIGFzc2VydF9lcXVhbHM6IEFs
cGhhIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1MCwgMjUpIGV4cGVjdGVkIDI1NSBidXQgZ290
IDAKIFBBU1MgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB3b24ndCBjaGFuZ2UgY29u
dGV4dCdzIHByb3BlcnR5Ci1GQUlMIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcHJl
c2VydmVzIHRyYW5zZm9ybSBhc3NlcnRfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhl
bCBhdCAoMjMsIDI1KSBleHBlY3RlZCAyNTUgYnV0IGdvdCAwCitQQVNTIFRlc3QgdGhhdCB0cmFu
c2ZlclRvSW1hZ2VCaXRtYXAgcHJlc2VydmVzIHRyYW5zZm9ybQogUEFTUyBUZXN0IHRoYXQgY2Fs
bCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhy
b3dzIGFuIGV4Y2VwdGlvbgogUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdp
dGhvdXQgYSBjb250ZXh0IHRocm93cyBhbiBleGNlcHRpb24KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50
by5pbWFnZWJpdG1hcC53LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBl
Y3RlZC50eHQKaW5kZXggZGVjNmI4ZTg4MjdmMjRlZTFlMTdkMTFiODE1NTJhZDZkZmYzYzllYi4u
NDMxMmExNzA5YWYwMDMxM2ZhMTNlZjRhNzhiNzYzOWRkZDk3ZDg5MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
ci50by5pbWFnZWJpdG1hcC53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFw
LnctZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlclRv
SW1hZ2VCaXRtYXAgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3QgY29sb3IgaQog
UEFTUyBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgdHdpY2UgcmV0dXJucyBh
biBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3QgY29sb3IgaW4gYSB3b3JrZXIKIEZBSUwgVGVzdCB0
aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHR3aWNlIG9uIGEgYWxwaGEtZGlzYWJsZWQg
Y29udGV4dCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xvciBpbiBhIHdv
cmtlciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAzIHRvIGJlIDI1NSBi
dXQgZ290IDAgKGV4cGVjdGVkIGFycmF5IFswLCAwLCAwLCAyNTVdIGdvdCBvYmplY3QgIjAsMCww
LDAiKQogUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdvbid0IGNoYW5nZSBj
b250ZXh0J3MgcHJvcGVydHkgaW4gYSB3b3JrZXIKLUZBSUwgVGVzdCB0aGF0IGNhbGwgdHJhbnNm
ZXJUb0ltYWdlQml0bWFwIHByZXNlcnZlcyB0cmFuc2Zvcm0gaW4gYSB3b3JrZXIgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAyNTUgYnV0IGdvdCAwIChleHBl
Y3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmplY3QgIjAsMCwwLDAiKQorUEFTUyBU
ZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcHJlc2VydmVzIHRyYW5zZm9ybSBp
biBhIHdvcmtlcgogUEFTUyBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgb24g
YSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtl
cgogUEFTUyBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgd2l0aG91dCBhIGNv
bnRleHQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtlcgogCg==
</data>
<flag name="commit-queue"
          id="448469"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>