<?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>225896</bug_id>
          
          <creation_ts>2021-05-17 16:38:00 -0700</creation_ts>
          <short_desc>[WebXR] Attach IOSurface to WebXROpaqueFramebuffer</short_desc>
          <delta_ts>2021-06-01 10:19:30 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>adachan</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760945</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-17 16:38:00 -0700</bug_when>
    <thetext>[WebXR] Attach IOSurface to WebXROpaqueFramebuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760946</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-17 16:38:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/78128289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760947</commentid>
    <comment_count>2</comment_count>
      <attachid>428890</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-17 16:39:28 -0700</bug_when>
    <thetext>Created attachment 428890
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760948</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-17 16:41:37 -0700</bug_when>
    <thetext>This patch compiles but still needs some work. Some code has been copied from GraphicsContextGLCVANGLE, but it probably should be moved.

Nothing has been tested yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762757</commentid>
    <comment_count>4</comment_count>
      <attachid>429400</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-21 21:56:30 -0700</bug_when>
    <thetext>Created attachment 429400
WIP - Just the GCGL bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765148</commentid>
    <comment_count>5</comment_count>
      <attachid>430116</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-29 16:51:30 -0700</bug_when>
    <thetext>Created attachment 430116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765150</commentid>
    <comment_count>6</comment_count>
      <attachid>430116</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-29 17:07:13 -0700</bug_when>
    <thetext>Comment on attachment 430116
Patch

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

&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:189
&gt; +    if (m_ioSurfaceTextureHandle) {
&gt; +        auto gCGL = static_cast&lt;GraphicsContextGLOpenGL*&gt;(&amp;gl);
&gt; +        gCGL-&gt;destroyPbufferAndDetachIOSurface(m_ioSurfaceTextureHandle);
&gt; +    }

Is there a smart pointer we can use for this? This seems extremely easy to get wrong.

&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:248
&gt; +    bool supportsPackedDepthStencil = true;

Seems like this should probably only be true is useDepthStencil is true? (all the other #if sections check useDepthStencil here.

&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:267
&gt; +        // Cap the maxiumum multisample count at 4. Any more than this is likely overkill and will impact performance.

Is this observable and/or in the spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765449</commentid>
    <comment_count>7</comment_count>
      <attachid>430213</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-31 16:14:13 -0700</bug_when>
    <thetext>Created attachment 430213
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765454</commentid>
    <comment_count>8</comment_count>
      <attachid>430215</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-31 16:43:15 -0700</bug_when>
    <thetext>Created attachment 430215
WIP 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765514</commentid>
    <comment_count>9</comment_count>
      <attachid>430116</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-31 21:48:58 -0700</bug_when>
    <thetext>Comment on attachment 430116
Patch

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

&gt;&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:189
&gt;&gt; +    }
&gt; 
&gt; Is there a smart pointer we can use for this? This seems extremely easy to get wrong.

Agreed. I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=226480

&gt;&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:248
&gt;&gt; +    bool supportsPackedDepthStencil = true;
&gt; 
&gt; Seems like this should probably only be true is useDepthStencil is true? (all the other #if sections check useDepthStencil here.

This is a platform test - ANGLE always supports a packed depth stencil (although it gets a bit complicated because WebGL 1 doesn&apos;t).

&gt;&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:267
&gt;&gt; +        // Cap the maxiumum multisample count at 4. Any more than this is likely overkill and will impact performance.
&gt; 
&gt; Is this observable and/or in the spec?

This is not easily observable and is copied from our WebGL implementation. The GPU software folks said that anything above this is unnecessary and impacts old GPUs.

Actually, I guess it is observable if you craft your geometry just right. You&apos;d be able to detect small differences in the antialiasing. However, the location of the samples within any texel are implementation/device specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765515</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-31 21:53:10 -0700</bug_when>
    <thetext>Committed r278295 (238332@main): &lt;https://commits.webkit.org/238332@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765643</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-01 09:40:05 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #9)
&gt; Comment on attachment 430116 [details]
&gt; Patch
&gt; 
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:248
&gt; &gt;&gt; +    bool supportsPackedDepthStencil = true;
&gt; &gt; 
&gt; &gt; Seems like this should probably only be true is useDepthStencil is true? (all the other #if sections check useDepthStencil here.
&gt; 
&gt; This is a platform test - ANGLE always supports a packed depth stencil
&gt; (although it gets a bit complicated because WebGL 1 doesn&apos;t).


Why do the other ports check useDepthStencil?

&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:267
&gt; &gt;&gt; +        // Cap the maxiumum multisample count at 4. Any more than this is likely overkill and will impact performance.
&gt; &gt; 
&gt; &gt; Is this observable and/or in the spec?
&gt; 
&gt; This is not easily observable and is copied from our WebGL implementation.
&gt; The GPU software folks said that anything above this is unnecessary and
&gt; impacts old GPUs.
&gt; 
&gt; Actually, I guess it is observable if you craft your geometry just right.
&gt; You&apos;d be able to detect small differences in the antialiasing. However, the
&gt; location of the samples within any texel are implementation/device specific.

Let&apos;s avoid copying it. Let&apos;s put this in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765651</commentid>
    <comment_count>12</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-06-01 09:55:13 -0700</bug_when>
    <thetext>The changes in https://trac.webkit.org/changeset/278295/webkit

broke imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html causing it to crash constantly

history:
imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html

log:
0   com.apple.WebCore             	0x000000010fc6a880 size + 0 (IOSurface.h:144) [inlined]
1   com.apple.WebCore             	0x000000010fc6a880 WebCore::WebXROpaqueFramebuffer::startFrame(PlatformXR::Device::FrameData::LayerData const&amp;) + 128 (WebXROpaqueFramebuffer.cpp:122)
2   com.apple.WebCore             	0x000000010fc7051f operator() + 317 (WebXRSession.cpp:547) [inlined]
3   com.apple.WebCore             	0x000000010fc7051f WTF::Detail::CallableWrapper&lt;WebCore::WebXRSession::onFrame(PlatformXR::Device::FrameData&amp;&amp;)::$_4, void&gt;::call() + 367 (Function.h:52)
4   com.apple.WebCore             	0x000000010ee61ae1 WebCore::EventLoop::run() + 337 (EventLoop.cpp:123)

https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/r278306%20(3020)/imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765655</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-06-01 10:03:42 -0700</bug_when>
    <thetext>I&apos;ll fix this right away. Thanks Truitt.

(In reply to Truitt Savell from comment #12)
&gt; The changes in https://trac.webkit.org/changeset/278295/webkit
&gt; 
&gt; broke
&gt; imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.
&gt; html causing it to crash constantly
&gt; 
&gt; history:
&gt; imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.
&gt; html
&gt; 
&gt; log:
&gt; 0   com.apple.WebCore             	0x000000010fc6a880 size + 0
&gt; (IOSurface.h:144) [inlined]
&gt; 1   com.apple.WebCore             	0x000000010fc6a880
&gt; WebCore::WebXROpaqueFramebuffer::startFrame(PlatformXR::Device::FrameData::
&gt; LayerData const&amp;) + 128 (WebXROpaqueFramebuffer.cpp:122)
&gt; 2   com.apple.WebCore             	0x000000010fc7051f operator() + 317
&gt; (WebXRSession.cpp:547) [inlined]
&gt; 3   com.apple.WebCore             	0x000000010fc7051f
&gt; WTF::Detail::CallableWrapper&lt;WebCore::WebXRSession::onFrame(PlatformXR::
&gt; Device::FrameData&amp;&amp;)::$_4, void&gt;::call() + 367 (Function.h:52)
&gt; 4   com.apple.WebCore             	0x000000010ee61ae1
&gt; WebCore::EventLoop::run() + 337 (EventLoop.cpp:123)
&gt; 
&gt; https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/
&gt; r278306%20(3020)/imported/w3c/web-platform-tests/webxr/
&gt; xrBoundedReferenceSpace_updates.https-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765664</commentid>
    <comment_count>14</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-06-01 10:19:30 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #13)
&gt; I&apos;ll fix this right away. Thanks Truitt.

Hopefully fixed in r278312</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428890</attachid>
            <date>2021-05-17 16:39:28 -0700</date>
            <delta_ts>2021-05-29 16:51:24 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-225896-20210518093926.patch</filename>
            <type>text/plain</type>
            <size>15690</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMxMjFhOTFjNjc0OGZi
NGI2YWMzMzUzYjA4M2I4ZmIzZGIyMjc2Ni4uNDNmZDA5ZjU1Nzk3MzQxZTY1ZmVjNGEwMWYzYTMx
YjU5NjU2NzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTE3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1
cmZhY2UgdG8gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c3RhcnRGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjplbmRGcmFtZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVm
ZmVyQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
YWxsb2NhdGVEaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6YmluZERpc3BsYXlCdWZmZXJCYWNraW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphdHRhY2hJT1N1cmZhY2VUb1RleHR1cmUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRldGFjaElPU3Vy
ZmFjZUZyb21UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
Lmg6CisgICAgICAgIChQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6TGF5ZXJEYXRhOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFtZURhdGE6Okxh
eWVyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW11bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKToK
KwogMjAyMS0wNS0xNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIFZhbGlkYXRlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpN
b2RlIHdoZW4gZGVjb2RpbmcgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAK
aW5kZXggYjk0N2Q4MjE0ZjVjZDRkZmI0MjNiYmQxNjcwYzFjNWY2OGIxMDAxMi4uMWRjOTYxNWI1
NjE0ZmNlYWQxNGJjMTc2NzdkYTBhNWVjNzJjYzFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwCkBAIC01MCw2
ICs1MCw5IEBACiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogCisjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCisjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBHTCA9IEdyYXBoaWNzQ29udGV4dEdMOwpAQCAtOTAsOSArOTMsOSBAQCBXZWJYUk9wYXF1ZUZy
YW1lYnVmZmVyOjp+V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcigpCiAKIHZvaWQgV2ViWFJPcGFxdWVG
cmFtZWJ1ZmZlcjo6c3RhcnRGcmFtZShjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0
YTo6TGF5ZXJEYXRhJiBkYXRhKQogewotICAgIG1fb3BhcXVlVGV4dHVyZSA9IGRhdGEub3BhcXVl
VGV4dHVyZTsKICAgICBpZiAoIW1fY29udGV4dC5ncmFwaGljc0NvbnRleHRHTCgpKQogICAgICAg
ICByZXR1cm47CisKICAgICBhdXRvJiBnbCA9ICptX2NvbnRleHQuZ3JhcGhpY3NDb250ZXh0R0wo
KTsKIAogICAgIG1fZnJhbWVidWZmZXItPnNldE9wYXF1ZUFjdGl2ZSh0cnVlKTsKQEAgLTExMSw2
ICsxMTQsMjkgQEAgdm9pZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzdGFydEZyYW1lKGNvbnN0
IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhOjpMYXkKICAgICBzdGQ6OmFycmF5PGNvbnN0
IEdDR0xlbnVtLCAzPiBhdHRhY2htZW50cyA9IHsgR0w6OkNPTE9SX0FUVEFDSE1FTlQwLCBHTDo6
U1RFTkNJTF9BVFRBQ0hNRU5ULCBHTDo6REVQVEhfQVRUQUNITUVOVCB9OwogICAgIGdsLmludmFs
aWRhdGVGcmFtZWJ1ZmZlcihHTDo6RlJBTUVCVUZGRVIsIG1ha2VHQ0dMU3BhbihhdHRhY2htZW50
cy5kYXRhKCksIGF0dGFjaG1lbnRzLnNpemUoKSkpOwogCisjaWYgVVNFKElPU1VSRkFDRV9GT1Jf
WFJfTEFZRVJfREFUQSkKKyAgICAvLyBHZXQgdGhlIElPU3VyZmFjZSBhbmQgbWFrZSBpdCB0aGUg
YmFja2luZyBzdG9yZSBmb3IgdGhlIGJvdW5kIGZyYW1lYnVmZmVyIChtX2ZyYW1lYnVmZmVyKS4K
KyAgICBhdXRvIGdDR0wgPSBzdGF0aWNfY2FzdDxHcmFwaGljc0NvbnRleHRHTE9wZW5HTCo+KG1f
Y29udGV4dC5ncmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICBHQ0dMZW51bSB0ZXh0dXJlVGFyZ2V0
ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7
CisKKyAgICBhdXRvIHNpemUgPSBkYXRhLnN1cmZhY2UtPnNpemUoKTsKKyAgICBpZiAoIW1fb3Bh
cXVlVGV4dHVyZSkgeworICAgICAgICBtX29wYXF1ZVRleHR1cmUgPSBnQ0dMLT5jcmVhdGVUZXh0
dXJlKCk7CisgICAgICAgIGdDR0wtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0w6OlRF
WFRVUkUwKTsKKyAgICAgICAgZ0NHTC0+YmluZFRleHR1cmUodGV4dHVyZVRhcmdldCwgbV9vcGFx
dWVUZXh0dXJlKTsKKyAgICAgICAgZ0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBH
cmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHRHTDo6
TElORUFSKTsKKyAgICAgICAgZ0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHcmFw
aGljc0NvbnRleHRHTDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHRHTDo6TElO
RUFSKTsKKyAgICAgICAgZ0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHcmFwaGlj
c0NvbnRleHRHTDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNzQ29udGV4dEdMOjpDTEFNUF9UT19F
REdFKTsKKyAgICAgICAgZ0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHcmFwaGlj
c0NvbnRleHRHTDo6VEVYVFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dEdMOjpDTEFNUF9UT19F
REdFKTsKKyAgICB9CisgICAgaW9TdXJmYWNlVGV4dHVyZUhhbmRsZSA9IGdDR0wtPmF0dGFjaElP
U3VyZmFjZVRvVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURf
QllURSwgZGF0YS5zdXJmYWNlLT5zdXJmYWNlKCksIDApOworICAgIGlmICghaW9TdXJmYWNlVGV4
dHVyZUhhbmRsZSAmJiBtX29wYXF1ZVRleHR1cmUpIHsKKyAgICAgICAgZ0NHTC0+ZGVsZXRlVGV4
dHVyZShtX29wYXF1ZVRleHR1cmUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vsc2UKKyAg
ICBtX29wYXF1ZVRleHR1cmUgPSBkYXRhLm9wYXF1ZVRleHR1cmU7CisKICNpZiBVU0UoT1BFTkdM
X0VTKQogICAgIGF1dG8mIGV4dGVuc2lvbnMgPSByZWludGVycHJldF9jYXN0PEV4dGVuc2lvbnNH
TE9wZW5HTEVTJj4oZ2wuZ2V0RXh0ZW5zaW9ucygpKTsKICAgICBpZiAobV9hdHRyaWJ1dGVzLmFu
dGlhbGlhcyAmJiBleHRlbnNpb25zLmlzSW1hZ2luYXRpb24oKSkgewpAQCAtMTIxLDYgKzE0Nyw3
IEBAIHZvaWQgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c3RhcnRGcmFtZShjb25zdCBQbGF0Zm9y
bVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6TGF5CiAKICAgICBpZiAoIW1fbXVsdGlzYW1wbGVDb2xv
ckJ1ZmZlcikKICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoR0w6OkZSQU1FQlVGRkVS
LCBHTDo6Q09MT1JfQVRUQUNITUVOVDAsIEdMOjpURVhUVVJFXzJELCBtX29wYXF1ZVRleHR1cmUs
IDApOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6ZW5kRnJhbWUo
KQpAQCAtMTI5LDYgKzE1NiwxMiBAQCB2b2lkIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmVuZEZy
YW1lKCkKIAogICAgIGlmICghbV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dEdMKCkpCiAgICAgICAg
IHJldHVybjsKKworI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCisgICAgYXV0
byBnQ0dMID0gc3RhdGljX2Nhc3Q8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqPihtX2NvbnRleHQu
Z3JhcGhpY3NDb250ZXh0R0woKSk7CisgICAgZ0NHTC0+ZGV0YWNoSU9TdXJmYWNlRnJvbVRleHR1
cmUoaW9TdXJmYWNlVGV4dHVyZUhhbmRsZSk7CisjZWxzZQorCiAgICAgYXV0byYgZ2wgPSAqbV9j
b250ZXh0LmdyYXBoaWNzQ29udGV4dEdMKCk7CiAKICAgICBpZiAobV9tdWx0aXNhbXBsZUNvbG9y
QnVmZmVyKSB7CkBAIC0xNTcsOCArMTkwLDkgQEAgdm9pZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVy
OjplbmRGcmFtZSgpCiAgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihHTDo6UkVBRF9GUkFNRUJV
RkZFUiwgbV9mcmFtZWJ1ZmZlci0+b2JqZWN0KCkpOwogICAgICAgICBnbC5ibGl0RnJhbWVidWZm
ZXIoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQsIDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0LCBHTDo6
Q09MT1JfQlVGRkVSX0JJVCwgR0w6OkxJTkVBUik7CiAgICAgfQotICAgIAotICAgIGdsLmZsdXNo
KCk7CisgI2VuZGlmCisKKyAgICBtX2NvbnRleHQuZ3JhcGhpY3NDb250ZXh0R0woKS0+Zmx1c2go
KTsKIH0KIAogYm9vbCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzZXR1cEZyYW1lYnVmZmVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFt
ZWJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyLmgKaW5kZXggNjFkZGEzZDNjMWEwYTFhNmVkOWM4NDlkNzFlZWZmYTIxOWM4ZGE4Yi4u
ZmVkMTM1M2U0OTg5MmE5NTZlNGI1YjdiMDA3NTM5MGRmMzM5ODExMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmgKQEAg
LTc3LDYgKzc3LDkgQEAgcHJpdmF0ZToKICAgICBQbGF0Zm9ybUdMT2JqZWN0IG1fcmVzb2x2ZWRG
Qk8geyAwIH07CiAgICAgR0NHTGludCBtX3NhbXBsZUNvdW50IHsgMCB9OwogICAgIFBsYXRmb3Jt
R0xPYmplY3QgbV9vcGFxdWVUZXh0dXJlIHsgMCB9OworI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hS
X0xBWUVSX0RBVEEpCisgICAgdm9pZCogaW9TdXJmYWNlVGV4dHVyZUhhbmRsZSB7IG51bGxwdHIg
fTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggMzY2YWNmNzFkNDYyNzdiMWE3Yjk0Yzlj
ZTJmZjNjYjg5YmRiY2M5ZC4uNTFmODFlOWJkYTEyMTc3YTUxMDE0MTE1OWI1ZDAzM2JmYTYyMDBj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC01NzAs
MzUgKzU3MCw0NSBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZXNoYXBlRGlzcGxh
eUJ1ZmZlckJhY2tpbmcoKQogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0
ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpCiB7Ci0gICAgQVNTRVJUKCFnZXRJbnRlcm5h
bEZyYW1lYnVmZmVyU2l6ZSgpLmlzRW1wdHkoKSk7Ci0gICAgYXV0byBiYWNraW5nID0gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgV2ViQ29y
ZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSk7Ci0gICAgaWYgKCFiYWNraW5nKQorICAgIGF1dG8gaW9T
dXJmYWNlID0gYWxsb2NhdGVEaXNwbGF5QnVmZmVyQmFja2luZygpOworICAgIGlmICghaW9TdXJm
YWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGJpbmREaXNwbGF5QnVmZmVy
QmFja2luZyhXVEZNb3ZlKGlvU3VyZmFjZSkpOworfQogCi0gICAgYmFja2luZy0+bWlncmF0ZUNv
bG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKLQotICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBoYSA9IGNv
bnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7Ci0gICAgY29uc3QgYXV0byBzaXplID0gZ2V0SW50ZXJu
YWxGcmFtZWJ1ZmZlclNpemUoKTsKLSAgICBjb25zdCBFR0xpbnQgc3VyZmFjZUF0dHJpYnV0ZXNb
XSA9IHsKLSAgICAgICAgRUdMX1dJRFRILCBzaXplLndpZHRoKCksCi0gICAgICAgIEVHTF9IRUlH
SFQsIHNpemUuaGVpZ2h0KCksCi0gICAgICAgIEVHTF9JT1NVUkZBQ0VfUExBTkVfQU5HTEUsIDAs
Ci0gICAgICAgIEVHTF9URVhUVVJFX1RBUkdFVCwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkVHTERyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCksCi0gICAgICAgIEVHTF9URVhU
VVJFX0lOVEVSTkFMX0ZPUk1BVF9BTkdMRSwgdXNpbmdBbHBoYSA/IEdMX0JHUkFfRVhUIDogR0xf
UkdCLAotICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJFX1JHQkEsCi0gICAg
ICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIEdMX1VOU0lHTkVEX0JZVEUsCi0gICAgICAgIC8v
IE9ubHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRvci4KLSAgICAgICAgRUdMX0lP
U1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEUs
Ci0gICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQotICAgIH07Ci0gICAgRUdMU3VyZmFjZSBwYnVm
ZmVyID0gRUdMX0NyZWF0ZVBidWZmZXJGcm9tQ2xpZW50QnVmZmVyKG1fZGlzcGxheU9iaiwgRUdM
X0lPU1VSRkFDRV9BTkdMRSwgYmFja2luZy0+c3VyZmFjZSgpLCBtX2NvbmZpZ09iaiwgc3VyZmFj
ZUF0dHJpYnV0ZXMpOwotICAgIGlmICghcGJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHJldHVybiBiaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoV1RGTW92ZShiYWNraW5nKSwgcGJ1
ZmZlcik7CitzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6YWxsb2NhdGVEaXNwbGF5QnVmZmVyQmFja2luZygpCit7CisgICAgQVNTRVJUKCFnZXRJbnRl
cm5hbEZyYW1lYnVmZmVyU2l6ZSgpLmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIFdlYkNvcmU6OnNS
R0JDb2xvclNwYWNlUmVmKCkpOwogfQogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpi
aW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gYmFja2lu
Zywgdm9pZCogcGJ1ZmZlcikKIHsKKyAgICBpZiAoIWJhY2tpbmcpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghcGJ1ZmZlcikgeworICAgICAgICBiYWNraW5nLT5taWdyYXRlQ29s
b3JTcGFjZVRvUHJvcGVydGllcygpOworCisgICAgICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBoYSA9
IGNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CisgICAgICAgIGNvbnN0IGF1dG8gc2l6ZSA9IGdl
dEludGVybmFsRnJhbWVidWZmZXJTaXplKCk7CisgICAgICAgIGNvbnN0IEVHTGludCBzdXJmYWNl
QXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdMX1dJRFRILCBzaXplLndpZHRoKCksCisg
ICAgICAgICAgICBFR0xfSEVJR0hULCBzaXplLmhlaWdodCgpLAorICAgICAgICAgICAgRUdMX0lP
U1VSRkFDRV9QTEFORV9BTkdMRSwgMCwKKyAgICAgICAgICAgIEVHTF9URVhUVVJFX1RBUkdFVCwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkVHTERyYXdpbmdCdWZmZXJUZXh0dXJl
VGFyZ2V0KCksCisgICAgICAgICAgICBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUs
IHVzaW5nQWxwaGEgPyBHTF9CR1JBX0VYVCA6IEdMX1JHQiwKKyAgICAgICAgICAgIEVHTF9URVhU
VVJFX0ZPUk1BVCwgRUdMX1RFWFRVUkVfUkdCQSwKKyAgICAgICAgICAgIEVHTF9URVhUVVJFX1RZ
UEVfQU5HTEUsIEdMX1VOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAvLyBPbmx5IGhhcyBhbiBl
ZmZlY3Qgb24gdGhlIGlPUyBTaW11bGF0b3IuCisgICAgICAgICAgICBFR0xfSU9TVVJGQUNFX1VT
QUdFX0hJTlRfQU5HTEUsIEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSwKKyAgICAgICAg
ICAgIEVHTF9OT05FLCBFR0xfTk9ORQorICAgICAgICB9OworICAgICAgICBFR0xTdXJmYWNlIHBi
dWZmZXIgPSBFR0xfQ3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIobV9kaXNwbGF5T2JqLCBF
R0xfSU9TVVJGQUNFX0FOR0xFLCBiYWNraW5nLT5zdXJmYWNlKCksIG1fY29uZmlnT2JqLCBzdXJm
YWNlQXR0cmlidXRlcyk7CisgICAgICAgIGlmICghcGJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKICAgICBHQ0dMZW51bSB0ZXh0dXJlVGFyZ2V0ID0gZHJhd2luZ0J1
ZmZlclRleHR1cmVUYXJnZXQoKTsKICAgICBTY29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcgcmVz
dG9yZUJpbmRpbmcoZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXRRdWVyeSgpLCB0ZXh0dXJlVGFy
Z2V0LCB0ZXh0dXJlVGFyZ2V0ICE9IFRFWFRVUkVfUkVDVEFOR0xFX0FSQik7CiAgICAgZ2w6OkJp
bmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSk7CkBAIC02MTEsNiArNjIxLDUzIEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmJpbmREaXNwbGF5QnVmZmVyQmFja2luZyhz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQqIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjphdHRhY2hJT1N1cmZhY2VUb1RleHR1cmUoR0NHTGVudW0g
dGFyZ2V0LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0NHTHVpbnQg
cGxhbmUpCit7CisgICAgYXV0byBkaXNwbGF5ID0gcGxhdGZvcm1EaXNwbGF5KCk7CisgICAgRUdM
aW50IGVnbFRleHR1cmVUYXJnZXQgPSAwOworCisgICAgaWYgKHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHRHTDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCKQorICAgICAgICBlZ2xUZXh0dXJlVGFyZ2V0
ID0gRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFOworICAgIGVsc2UgaWYgKHRhcmdldCA9PSBH
cmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCkKKyAgICAgICAgZWdsVGV4dHVyZVRhcmdldCA9
IEVHTF9URVhUVVJFXzJEOworICAgIGVsc2UgeworICAgICAgICBMT0coV2ViR0wsICJVbmtub3du
IHRleHR1cmUgdGFyZ2V0ICVkLiIsIHN0YXRpY19jYXN0PGludD4odGFyZ2V0KSk7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoZWdsVGV4dHVyZVRhcmdldCAhPSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6RUdMRHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKSkgewor
ICAgICAgICBMT0coV2ViR0wsICJNaXNtYXRjaCBpbiBFR0wgdGV4dHVyZSB0YXJnZXQgJWQuIiwg
c3RhdGljX2Nhc3Q8aW50Pih0YXJnZXQpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgY29uc3QgRUdMaW50IHN1cmZhY2VBdHRyaWJ1dGVzW10gPSB7CisgICAgICAgIEVH
TF9XSURUSCwgd2lkdGgsCisgICAgICAgIEVHTF9IRUlHSFQsIGhlaWdodCwKKyAgICAgICAgRUdM
X0lPU1VSRkFDRV9QTEFORV9BTkdMRSwgc3RhdGljX2Nhc3Q8RUdMaW50PihwbGFuZSksCisgICAg
ICAgIEVHTF9URVhUVVJFX1RBUkdFVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihlZ2xUZXh0dXJlVGFy
Z2V0KSwKKyAgICAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFLCBzdGF0aWNf
Y2FzdDxFR0xpbnQ+KGludGVybmFsRm9ybWF0KSwKKyAgICAgICAgRUdMX1RFWFRVUkVfRk9STUFU
LCBFR0xfVEVYVFVSRV9SR0JBLAorICAgICAgICBFR0xfVEVYVFVSRV9UWVBFX0FOR0xFLCBzdGF0
aWNfY2FzdDxFR0xpbnQ+KHR5cGUpLAorICAgICAgICAvLyBPbmx5IGhhcyBhbiBlZmZlY3Qgb24g
dGhlIGlPUyBTaW11bGF0b3IuCisgICAgICAgIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdM
RSwgRUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUsCisgICAgICAgIEVHTF9OT05FLCBFR0xf
Tk9ORQorICAgIH07CisgICAgRUdMU3VyZmFjZSBwYnVmZmVyID0gRUdMX0NyZWF0ZVBidWZmZXJG
cm9tQ2xpZW50QnVmZmVyKGRpc3BsYXksIEVHTF9JT1NVUkZBQ0VfQU5HTEUsIHN1cmZhY2UsIHBs
YXRmb3JtQ29uZmlnKCksIHN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICBpZiAoIXBidWZmZXIpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghRUdMX0JpbmRUZXhJbWFnZShkaXNwbGF5
LCBwYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFj
ZShkaXNwbGF5LCBwYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IHJldHVybiBwYnVmZmVyOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkZXRh
Y2hJT1N1cmZhY2VGcm9tVGV4dHVyZSh2b2lkKiBoYW5kbGUpCit7CisgICAgYXV0byBkaXNwbGF5
ID0gcGxhdGZvcm1EaXNwbGF5KCk7CisgICAgRUdMX1JlbGVhc2VUZXhJbWFnZShkaXNwbGF5LCBo
YW5kbGUsIEVHTF9CQUNLX0JVRkZFUik7CisgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKGRpc3BsYXks
IGhhbmRsZSk7Cit9CisKIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzR0xFUzJDb21w
bGlhbnQoKSBjb25zdAogewogICAgIHJldHVybiBtX2lzRm9yV2ViR0wyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBkOGMxNmMyMDMxYjgyMTA2MGFiYzQ2MGZiNDM3NWI4
NWRjOTFhYjQ0Li4xNjhkZTM3ODM4N2Y1OTRlNzVhOWQ1ZmNmOTZjMGU2Zjc3MDY5YmU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNTY0LDggKzU2NCwxNiBAQCBwcml2
YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCByZXNoYXBlRGlzcGxheUJ1ZmZl
ckJhY2tpbmcoKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBhbGxvY2F0ZURpc3Bs
YXlCdWZmZXJCYWNraW5nKCk7CisgICAgZnJpZW5kIGNsYXNzIFdlYlhST3BhcXVlRnJhbWVidWZm
ZXI7CisgICAgYm9vbCBiaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gYmFja2luZywgdm9pZCogcGJ1ZmZlciA9IG51bGxwdHIpOworICAgIC8vIENvbnZl
bmllbmNlIG1ldGhvZCBmb3IgdGhlIHR3byBmdW5jdGlvbnMgYWJvdmUuCiAgICAgYm9vbCBhbGxv
Y2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpOwotICAgIGJvb2wgYmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhY2tpbmcsIHZvaWQqIHBi
dWZmZXIpOworCisgICAgLy8gUmV0dXJucyBhIGhhbmRsZSB3aGljaCwgaWYgbm9uLW51bGwsIG11
c3QgYmUgcmVsZWFzZWQgdmlhIHRoZQorICAgIC8vIGRldGFjaCBjYWxsIGJlbG93LgorICAgIHZv
aWQqIGF0dGFjaElPU3VyZmFjZVRvVGV4dHVyZShHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVt
IHR5cGUsIElPU3VyZmFjZVJlZiwgR0NHTHVpbnQgcGxhbmUpOworICAgIHZvaWQgZGV0YWNoSU9T
dXJmYWNlRnJvbVRleHR1cmUodm9pZCogaGFuZGxlKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKaW5kZXggOWI0YmI5
MjIxNzQ5OTI1N2UwY2U3NzY4OGE0MTAxNzBlMDZiZTU4ZC4uMjQ2YmMwYjM3MzEyZWMwYzJjMmU5
MTdmMWYzNTcyNjNlZTFhN2UzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
eHIvUGxhdGZvcm1YUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3Jt
WFIuaApAQCAtMTcxLDkgKzE3MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAKICAgICAgICAg
c3RydWN0IExheWVyRGF0YSB7Ci0gICAgICAgICAgICBQbGF0Zm9ybUdMT2JqZWN0IG9wYXF1ZVRl
eHR1cmUgeyAwIH07CiAjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFUQSkKICAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2U7CisjZWxz
ZQorICAgICAgICAgICAgUGxhdGZvcm1HTE9iamVjdCBvcGFxdWVUZXh0dXJlIHsgMCB9OwogI2Vu
ZGlmCiAKICAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKQEAgLTQyOSwxMCArNDMwLDExIEBAIE9wdGlvbmFsPERldmljZTo6RnJh
bWVEYXRhOjpTdGFnZVBhcmFtZXRlcnM+IERldmljZTo6RnJhbWVEYXRhOjpTdGFnZVBhcmFtZXRl
cnM6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBEZXZpY2U6OkZyYW1lRGF0YTo6TGF5
ZXJEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8
IG9wYXF1ZVRleHR1cmU7CiAjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFUQSkKICAg
ICBXVEY6Ok1hY2hTZW5kUmlnaHQgc3VyZmFjZVNlbmRSaWdodCA9IHN1cmZhY2UgPyBzdXJmYWNl
LT5jcmVhdGVTZW5kUmlnaHQoKSA6IFdURjo6TWFjaFNlbmRSaWdodCgpOwogICAgIGVuY29kZXIg
PDwgc3VyZmFjZVNlbmRSaWdodDsKKyNlbHNlCisgICAgZW5jb2RlciA8PCBvcGFxdWVUZXh0dXJl
OwogI2VuZGlmCiB9CiAKQEAgLTQ0MCwxMyArNDQyLDE0IEBAIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CiBPcHRpb25hbDxEZXZpY2U6OkZyYW1lRGF0YTo6TGF5ZXJEYXRhPiBEZXZpY2U6OkZyYW1l
RGF0YTo6TGF5ZXJEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBQbGF0Zm9y
bVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6TGF5ZXJEYXRhIGxheWVyRGF0YTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGxheWVyRGF0YS5vcGFxdWVUZXh0dXJlKSkKLSAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICNpZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlFUl9EQVRBKQogICAgIFdU
Rjo6TWFjaFNlbmRSaWdodCBzdXJmYWNlU2VuZFJpZ2h0OwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3VyZmFjZVNlbmRSaWdodCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAg
bGF5ZXJEYXRhLnN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmln
aHQoV1RGTW92ZShzdXJmYWNlU2VuZFJpZ2h0KSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYo
KSk7CisjZWxzZQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGF5ZXJEYXRhLm9wYXF1ZVRleHR1
cmUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCiAgICAgcmV0dXJuIGxh
eWVyRGF0YTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhS
RGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApp
bmRleCBlZDRmNzBkY2MwNzU0YTRhMWY0NDg1NWIxMDJjNzk1OWFmOTUwNWM1Li5lMDI2MzQ2MGFi
OWFhOWM2ZjE3MmZmMWRmNWFhYzcxNjUwZGFhMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC0xNDQsOCArMTQ0LDEzIEBAIHZvaWQgU2ltdWxhdGVk
WFJEZXZpY2U6OmZyYW1lVGltZXJGaXJlZCgpCiAgICAgRnJhbWVEYXRhIGRhdGEgPSBtX2ZyYW1l
RGF0YS5jb3B5KCk7CiAgICAgZGF0YS5zaG91bGRSZW5kZXIgPSB0cnVlOwogCi0gICAgZm9yIChh
dXRvJiBsYXllciA6IG1fbGF5ZXJzKQorICAgIGZvciAoYXV0byYgbGF5ZXIgOiBtX2xheWVycykg
eworI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCisgICAgICAgIGRhdGEubGF5
ZXJzLmFkZChsYXllci5rZXksIEZyYW1lRGF0YTo6TGF5ZXJEYXRhIHsgfSk7CisjZWxzZQogICAg
ICAgICBkYXRhLmxheWVycy5hZGQobGF5ZXIua2V5LCBGcmFtZURhdGE6OkxheWVyRGF0YSB7IC5v
cGFxdWVUZXh0dXJlID0gbGF5ZXIudmFsdWUgfSk7CisjZW5kaWYKKyAgICB9CiAKICAgICBmb3Ig
KGF1dG8mIGlucHV0IDogbV9pbnB1dENvbm5lY3Rpb25zKSB7CiAgICAgICAgIGlmIChpbnB1dC0+
aXNDb25uZWN0ZWQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429400</attachid>
            <date>2021-05-21 21:56:30 -0700</date>
            <delta_ts>2021-05-29 16:51:26 -0700</delta_ts>
            <desc>WIP - Just the GCGL bits</desc>
            <filename>bug-225896-20210522145629.patch</filename>
            <type>text/plain</type>
            <size>5005</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE4MGJhZDI3OTA0MGQ1
ZWQ4ZTdiYThhNDI5ODU5NWEyNDNlNDlkZC4uYTNlODg0OTk1YzJjMzA3NGZkZTA1OTMyM2QzYzc3
Y2VhZGNlMjM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTIxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1
cmZhY2UgdG8gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
ODEyODI4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTcGxpdCBvdXQgR0NHTCB0aGluZ3MgYSBiaXQgLSBXZWJHTCBzdGlsbCB3b3JrcworCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZURpc3BsYXlCdWZmZXJCYWNraW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJp
bmRQQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjph
bGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YmluZERpc3BsYXlCdWZmZXJCYWNraW5nVG9QQnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9y
RGlzcGxheSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmg6CisKIDIwMjEtMDUtMjAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkg
d2l0aCBhIGRlZmF1bHQgYXBwLWJvdW5kIHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xDb2NvYS5tbQppbmRleCAzNjZhY2Y3MWQ0NjI3N2IxYTdiOTRjOWNlMmZmM2NiODli
ZGJjYzlkLi5kZDEwNzEzMTFjOWIzYzE4NDk0YmMxMThhNDExMDEzM2UxMWQ3ZGY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTU2OCwxNCArNTY4LDIx
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZygpCiAgICAgcmV0dXJuIGFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCk7
CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3Bs
YXlCdWZmZXJCYWNraW5nKCkKK3N0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjphbGxvY2F0ZURpc3BsYXlCdWZmZXJCYWNraW5nKCkKIHsKICAgICBBU1NF
UlQoIWdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkuaXNFbXB0eSgpKTsKICAgICBhdXRvIGJh
Y2tpbmcgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVy
U2l6ZSgpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpKTsKICAgICBpZiAoIWJhY2tpbmcp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBi
YWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOworICAgIHJldHVybiBiYWNr
aW5nOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmRQ
QnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhY2tpbmcpCit7CisgICAgaWYgKCFi
YWNraW5nKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxw
aGEgPSBjb250ZXh0QXR0cmlidXRlcygpLmFscGhhOwogICAgIGNvbnN0IGF1dG8gc2l6ZSA9IGdl
dEludGVybmFsRnJhbWVidWZmZXJTaXplKCk7CkBAIC01OTQsMTAgKzYwMSwxOCBAQCBib29sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2lu
ZygpCiAgICAgRUdMU3VyZmFjZSBwYnVmZmVyID0gRUdMX0NyZWF0ZVBidWZmZXJGcm9tQ2xpZW50
QnVmZmVyKG1fZGlzcGxheU9iaiwgRUdMX0lPU1VSRkFDRV9BTkdMRSwgYmFja2luZy0+c3VyZmFj
ZSgpLCBtX2NvbmZpZ09iaiwgc3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIGlmICghcGJ1ZmZlcikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBiaW5kRGlzcGxheUJ1ZmZlckJhY2tp
bmcoV1RGTW92ZShiYWNraW5nKSwgcGJ1ZmZlcik7CisgICAgcmV0dXJuIGJpbmREaXNwbGF5QnVm
ZmVyQmFja2luZ1RvUEJ1ZmZlcihXVEZNb3ZlKGJhY2tpbmcpLCBwYnVmZmVyKTsKK30KKworYm9v
bCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJh
Y2tpbmcoKQoreworICAgIGF1dG8gYmFja2luZyA9IGFsbG9jYXRlRGlzcGxheUJ1ZmZlckJhY2tp
bmcoKTsKKyAgICBpZiAoIWJhY2tpbmcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gYWxsb2NhdGVBbmRCaW5kUEJ1ZmZlcihXVEZNb3ZlKGJhY2tpbmcpKTsKIH0KIAotYm9vbCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YmluZERpc3BsYXlCdWZmZXJCYWNraW5nKHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IGJhY2tpbmcsIHZvaWQqIHBidWZmZXIpCitib29sIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpiaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmdUb1BCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gYmFja2luZywgdm9pZCogcGJ1ZmZlcikKIHsKICAgICBHQ0dM
ZW51bSB0ZXh0dXJlVGFyZ2V0ID0gZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKICAgICBT
Y29wZWRSZXN0b3JlVGV4dHVyZUJpbmRpbmcgcmVzdG9yZUJpbmRpbmcoZHJhd2luZ0J1ZmZlclRl
eHR1cmVUYXJnZXRRdWVyeSgpLCB0ZXh0dXJlVGFyZ2V0LCB0ZXh0dXJlVGFyZ2V0ICE9IFRFWFRV
UkVfUkVDVEFOR0xFX0FSQik7CkBAIC02NDcsNyArNjYyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQogCiAgICAgYm9vbCBoYXNOZXdCYWNraW5n
ID0gZmFsc2U7CiAgICAgaWYgKHJlY3ljbGVkQnVmZmVyLnN1cmZhY2UgJiYgcmVjeWNsZWRCdWZm
ZXIuc3VyZmFjZS0+c2l6ZSgpID09IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkpIHsKLSAg
ICAgICAgaGFzTmV3QmFja2luZyA9IGJpbmREaXNwbGF5QnVmZmVyQmFja2luZyhXVEZNb3ZlKHJl
Y3ljbGVkQnVmZmVyLnN1cmZhY2UpLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOworICAgICAgICBo
YXNOZXdCYWNraW5nID0gYmluZERpc3BsYXlCdWZmZXJCYWNraW5nVG9QQnVmZmVyKFdURk1vdmUo
cmVjeWNsZWRCdWZmZXIuc3VyZmFjZSksIHJlY3ljbGVkQnVmZmVyLmhhbmRsZSk7CiAgICAgICAg
IHJlY3ljbGVkQnVmZmVyLmhhbmRsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIHJlY3ljbGVkQnVm
ZmVyLnN1cmZhY2UucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5k
ZXggZDhjMTZjMjAzMWI4MjEwNjBhYmM0NjBmYjQzNzViODVkYzkxYWI0NC4uOGFmZGQ5YjZhOGY4
ODFhYjdmZTNlYTQyNmE3OWM0MTUxZDFkY2NmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmgKQEAgLTU2NCw4ICs1NjQsMTMgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGJvb2wgcmVzaGFwZURpc3BsYXlCdWZmZXJCYWNraW5nKCk7CisgICAgLy9ib29s
IGFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCk7CisKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SU9TdXJmYWNlPiBhbGxvY2F0ZURpc3BsYXlCdWZmZXJCYWNraW5nKCk7CisgICAgYm9v
bCBhbGxvY2F0ZUFuZEJpbmRQQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGJhY2tp
bmcpOwogICAgIGJvb2wgYWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKTsKLSAg
ICBib29sIGJpbmREaXNwbGF5QnVmZmVyQmFja2luZyhzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiBiYWNraW5nLCB2b2lkKiBwYnVmZmVyKTsKKyAgICAKKyAgICBib29sIGJpbmREaXNwbGF5QnVm
ZmVyQmFja2luZ1RvUEJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBiYWNraW5nLCB2
b2lkKiBwYnVmZmVyKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430116</attachid>
            <date>2021-05-29 16:51:30 -0700</date>
            <delta_ts>2021-05-29 17:08:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225896-20210530095128.patch</filename>
            <type>text/plain</type>
            <size>9737</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE3YmQ0MWY2NjlmMjgw
MTlhZWI3ODViNTJjMjhlZjAxNDcyYzU3ZS4uNjk4OWU2Zjc5YjMzMmJmZmE0NjQxYjIyMzRmODRi
ODNiZTY1YTE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTI5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1
cmZhY2UgdG8gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
ODEyODI4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgYmluZGluZyBvZiBpbmNvbWluZyBJT1N1cmZhY2VzICh2aWEgRnJhbWVEYXRh
KQorICAgICAgICBpbnRvIHRoZSBXZWJHTCBmcmFtZWJ1ZmZlciB0aGF0IHRoZSBwYWdlIHdpbGwg
dXNlIGFzCisgICAgICAgIGEgcmVuZGVyaW5nIHRhcmdldC4KKworICAgICAgICBDdXJyZW50bHkg
b25seSBzaW5nbGUtc2FtcGxlIChub24tYW50aWFsaWFzZWQpIGJ1ZmZlcnMKKyAgICAgICAgYXJl
IHN1cHBvcnRlZCBhbmQgdGhlIGNhbnZhcyBjb250ZXh0IG11c3QgYmUgV2ViR0wgMi4KKworICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzdGFydEZyYW1lKTogQ3JlYXRlIGEg
dGV4dHVyZSBpZiBuZWNlc3NhcnksIHRoZW4KKyAgICAgICAgYmluZCBpdHMgYmFja2luZyBzdG9y
ZSB0byB0aGUgaW5jb21pbmcgSU9TdXJmYWNlLCB0aGVuIGhvb2sgaXQgdXAgdG8gdGhlIGZyYW1l
YnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6ZW5kRnJh
bWUpOiBSZWxlYXNlIHRoZSBQYnVmZmVyIHdlIHVzZWQgaW4gc3RhcnRGcmFtZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlhST3BhcXVlRnJhbWVidWZmZXI6OnNldHVwRnJhbWVidWZmZXIpOiBBZGQg
Q29jb2ErQU5HTEUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmg6IEtlZXAgYSBtZW1iZXIgdmFyaWFibGUgZm9y
IHRoZSBQYnVmZmVyLgorCiAyMDIxLTA1LTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViWFJdIFByb3ZpZGUgYSB3YXkgdG8gYmluZCBhbmQgdW5iaW5kIElP
U3VyZmFjZXMgdG8gQU5HTEUgUGJ1ZmZlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwCmluZGV4IGI5NDdkODIxNGY1
Y2Q0ZGZiNDIzYmJkMTY3MGMxYzVmNjhiMTAwMTIuLjQ1ZDk4MzIzMWFmN2IyYTQ3MmUwNjllMGJh
Mjg4MzY2OTBmMzlhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcApAQCAtNTAsNiArNTAsMTEgQEAKICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+
CiAKKyNpZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlFUl9EQVRBKQorI2luY2x1ZGUgIkFOR0xF
SGVhZGVycy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBHTCA9IEdyYXBoaWNzQ29udGV4dEdMOwpA
QCAtOTAsOSArOTUsOSBAQCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjp+V2ViWFJPcGFxdWVGcmFt
ZWJ1ZmZlcigpCiAKIHZvaWQgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c3RhcnRGcmFtZShjb25z
dCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6TGF5ZXJEYXRhJiBkYXRhKQogewotICAg
IG1fb3BhcXVlVGV4dHVyZSA9IGRhdGEub3BhcXVlVGV4dHVyZTsKICAgICBpZiAoIW1fY29udGV4
dC5ncmFwaGljc0NvbnRleHRHTCgpKQogICAgICAgICByZXR1cm47CisKICAgICBhdXRvJiBnbCA9
ICptX2NvbnRleHQuZ3JhcGhpY3NDb250ZXh0R0woKTsKIAogICAgIG1fZnJhbWVidWZmZXItPnNl
dE9wYXF1ZUFjdGl2ZSh0cnVlKTsKQEAgLTEwNiwxMCArMTExLDQ4IEBAIHZvaWQgV2ViWFJPcGFx
dWVGcmFtZWJ1ZmZlcjo6c3RhcnRGcmFtZShjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1l
RGF0YTo6TGF5CiAKICAgICBnbC5iaW5kRnJhbWVidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBtX2Zy
YW1lYnVmZmVyLT5vYmplY3QoKSk7CiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1
Yi5pby93ZWJ4ci8jb3BhcXVlLWZyYW1lYnVmZmVyCi0gICAgLy8gVGhlIGJ1ZmZlcnMgYXR0YWNo
ZWQgdG8gYW4gb3BhcXVlIGZyYW1lYnVmZmVyIE1VU1QgYmUgY2xlYXJlZCB0byB0aGUgdmFsdWVz
IGluIHRoZSB0YWJsZSBiZWxvdyB3aGVuIGZpcnN0IGNyZWF0ZWQsCisgICAgLy8gVGhlIGJ1ZmZl
cnMgYXR0YWNoZWQgdG8gYW4gb3BhcXVlIGZyYW1lYnVmZmVyIE1VU1QgYmUgY2xlYXJlZCB0byB0
aGUgdmFsdWVzIGluIHRoZSBwcm92aWRlZCB0YWJsZSB3aGVuIGZpcnN0IGNyZWF0ZWQsCiAgICAg
Ly8gb3IgcHJpb3IgdG8gdGhlIHByb2Nlc3Npbmcgb2YgZWFjaCBYUiBhbmltYXRpb24gZnJhbWUu
Ci0gICAgc3RkOjphcnJheTxjb25zdCBHQ0dMZW51bSwgMz4gYXR0YWNobWVudHMgPSB7IEdMOjpD
T0xPUl9BVFRBQ0hNRU5UMCwgR0w6OlNURU5DSUxfQVRUQUNITUVOVCwgR0w6OkRFUFRIX0FUVEFD
SE1FTlQgfTsKLSAgICBnbC5pbnZhbGlkYXRlRnJhbWVidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBt
YWtlR0NHTFNwYW4oYXR0YWNobWVudHMuZGF0YSgpLCBhdHRhY2htZW50cy5zaXplKCkpKTsKKyAg
ICAvLyBGSVhNRTogQWN0dWFsbHkgZG8gdGhlIGNsZWFyaW5nIChub3QgdXNpbmcgaW52YWxpZGF0
ZUZyYW1lYnVmZmVyKS4gVGhpcyB3aWxsIGhhdmUgdG8gYmUgZG9uZSBhZnRlciB3ZSd2ZSBhdHRh
Y2hlZAorICAgIC8vIHRoZSB0ZXh0dXJlcy9yZW5kZXJidWZmZXJzLgorCisjaWYgVVNFKElPU1VS
RkFDRV9GT1JfWFJfTEFZRVJfREFUQSkKKyAgICBhdXRvIGdDR0wgPSBzdGF0aWNfY2FzdDxHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCo+KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHRHTCgpKTsKKyAg
ICBHQ0dMZW51bSB0ZXh0dXJlVGFyZ2V0ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRyYXdp
bmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CisKKyAgICBhdXRvIHNpemUgPSBkYXRhLnN1cmZhY2Ut
PnNpemUoKTsKKworICAgIGlmICghbV9vcGFxdWVUZXh0dXJlKQorICAgICAgICBtX29wYXF1ZVRl
eHR1cmUgPSBnQ0dMLT5jcmVhdGVUZXh0dXJlKCk7CisKKyAgICBnQ0dMLT5iaW5kVGV4dHVyZSh0
ZXh0dXJlVGFyZ2V0LCBtX29wYXF1ZVRleHR1cmUpOworICAgIGdDR0wtPnRleFBhcmFtZXRlcmko
dGV4dHVyZVRhcmdldCwgR0w6OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR0w6OkxJTkVBUik7CisgICAg
Z0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTDo6VEVYVFVSRV9NSU5fRklMVEVS
LCBHTDo6TElORUFSKTsKKyAgICBnQ0dMLT50ZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdM
OjpURVhUVVJFX1dSQVBfUywgR0w6OkNMQU1QX1RPX0VER0UpOworICAgIGdDR0wtPnRleFBhcmFt
ZXRlcmkodGV4dHVyZVRhcmdldCwgR0w6OlRFWFRVUkVfV1JBUF9ULCBHTDo6Q0xBTVBfVE9fRURH
RSk7CisKKyAgICAvLyBUZWxsIHRoZSBHcmFwaGljc0NvbnRleHRHTCB0byB1c2UgdGhlIElPU3Vy
ZmFjZSBhcyB0aGUgYmFja2luZyBzdG9yZSBmb3IgbV9vcGFxdWVUZXh0dXJlLgorICAgIG1faW9T
dXJmYWNlVGV4dHVyZUhhbmRsZSA9IGdDR0wtPmNyZWF0ZVBidWZmZXJBbmRBdHRhY2hJT1N1cmZh
Y2UodGV4dHVyZVRhcmdldCwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlBidWZmZXJBdHRhY2ht
ZW50VXNhZ2U6OldyaXRlLCBHTDo6QkdSQSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBH
TDo6VU5TSUdORURfQllURSwgZGF0YS5zdXJmYWNlLT5zdXJmYWNlKCksIDApOworICAgIGlmICgh
bV9pb1N1cmZhY2VUZXh0dXJlSGFuZGxlICYmIG1fb3BhcXVlVGV4dHVyZSkgeworICAgICAgICBn
Q0dMLT5kZWxldGVUZXh0dXJlKG1fb3BhcXVlVGV4dHVyZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhc3N1bWluZyBtdWx0aXNhbXBsaW5nIGlzIHR1
cm5lZCBvZmYgYW5kIHdlJ3JlIHJlbmRlcmluZyBkaXJlY3RseSBpbnRvIHRoZSBmcmFtZWJ1ZmZl
ci4KKworICAgIC8vIE5vdyBzZXQgdXAgdGhlIGZyYW1lYnVmZmVyIHRvIHVzZSB0aGUgdGV4dHVy
ZXMvcmVuZGVyYnVmZmVycyB3ZSBoYXZlIGNyZWF0ZWQuCisgICAgZ2wuZnJhbWVidWZmZXJUZXh0
dXJlMkQoR0w6OkZSQU1FQlVGRkVSLCBHTDo6Q09MT1JfQVRUQUNITUVOVDAsIEdMOjpURVhUVVJF
XzJELCBtX29wYXF1ZVRleHR1cmUsIDApOworCisgICAgaWYgKG1fYXR0cmlidXRlcy5zdGVuY2ls
KQorICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTDo6RlJBTUVCVUZGRVIsIEdM
OjpTVEVOQ0lMX0FUVEFDSE1FTlQsIEdMOjpSRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKKyAgICBpZiAobV9hdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICBnbC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTDo6RlJBTUVCVUZGRVIsIEdMOjpERVBUSF9BVFRBQ0hNRU5ULCBHTDo6
UkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisKKyAgICAvLyBBdCB0aGlzIHBv
aW50IHRoZSBmcmFtZWJ1ZmZlciBzaG91bGQgYmUgImNvbXBsZXRlIi4KKyAgICBBU1NFUlQoZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHTDo6RlJBTUVCVUZGRVIpID09IEdMOjpGUkFNRUJVRkZF
Ul9DT01QTEVURSk7CisKKyNlbHNlCisgICAgbV9vcGFxdWVUZXh0dXJlID0gZGF0YS5vcGFxdWVU
ZXh0dXJlOwogCiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICBhdXRvJiBleHRlbnNpb25zID0gcmVp
bnRlcnByZXRfY2FzdDxFeHRlbnNpb25zR0xPcGVuR0xFUyY+KGdsLmdldEV4dGVuc2lvbnMoKSk7
CkBAIC0xMjEsNiArMTY0LDcgQEAgdm9pZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzdGFydEZy
YW1lKGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhOjpMYXkKIAogICAgIGlmICgh
bV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKQogICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUy
RChHTDo6RlJBTUVCVUZGRVIsIEdMOjpDT0xPUl9BVFRBQ0hNRU5UMCwgR0w6OlRFWFRVUkVfMkQs
IG1fb3BhcXVlVGV4dHVyZSwgMCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyOjplbmRGcmFtZSgpCkBAIC0xMjksOCArMTczLDIyIEBAIHZvaWQgV2ViWFJPcGFxdWVG
cmFtZWJ1ZmZlcjo6ZW5kRnJhbWUoKQogCiAgICAgaWYgKCFtX2NvbnRleHQuZ3JhcGhpY3NDb250
ZXh0R0woKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byYgZ2wgPSAqbV9jb250ZXh0Lmdy
YXBoaWNzQ29udGV4dEdMKCk7CiAKKyNpZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlFUl9EQVRB
KQorICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIGNhbGwgZmluaXNoIHJhdGhlciB0aGFuIGZsdXNo
IGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGRpc2Nvbm5lY3QKKyAgICAvLyB0aGUgSU9TdXJmYWNl
IGFuZCBzaWduYWwgdGhlIERldmljZVByb3h5IHdoZW4gd2Uga25vdyB0aGUgY29udGVudCBoYXMg
YmVlbiByZW5kZXJlZC4KKyAgICAvLyBJdCBtaWdodCBiZSBwb3NzaWJsZSB0byBzZXQgdGhpcyB1
cCBzbyB0aGUgY29tcGxldGlvbiBvZiB0aGUgcmVuZGVyaW5nIHRyaWdnZXJzCisgICAgLy8gdGhl
IGVuZEZyYW1lIGNhbGwuCisgICAgZ2wuZmluaXNoKCk7CisKKyAgICBpZiAobV9pb1N1cmZhY2VU
ZXh0dXJlSGFuZGxlKSB7CisgICAgICAgIGF1dG8gZ0NHTCA9IHN0YXRpY19jYXN0PEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKj4oJmdsKTsKKyAgICAgICAgZ0NHTC0+ZGVzdHJveVBidWZmZXJBbmRE
ZXRhY2hJT1N1cmZhY2UobV9pb1N1cmZhY2VUZXh0dXJlSGFuZGxlKTsKKyAgICB9CisjZWxzZQor
CiAgICAgaWYgKG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcikgewogI2lmICFVU0UoQU5HTEUpCiAg
ICAgICAgIC8vIEZJWE1FOiBUaGVzZSBtYXkgYmUgbmVlZGVkIHdoZW4gdXNpbmcgQU5HTEUsIGJ1
dCBpdCBkaWRuJ3QgY29tcGlsZSBpbiB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4KQEAgLTE1
Nyw4ICsyMTUsOSBAQCB2b2lkIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmVuZEZyYW1lKCkKICAg
ICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKEdMOjpSRUFEX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVm
ZmVyLT5vYmplY3QoKSk7CiAgICAgICAgIGdsLmJsaXRGcmFtZWJ1ZmZlcigwLCAwLCBtX3dpZHRo
LCBtX2hlaWdodCwgMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQsIEdMOjpDT0xPUl9CVUZGRVJfQklU
LCBHTDo6TElORUFSKTsKICAgICB9Ci0gICAgCisKICAgICBnbC5mbHVzaCgpOworI2VuZGlmCiB9
CiAKIGJvb2wgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c2V0dXBGcmFtZWJ1ZmZlcigpCkBAIC0x
NzksMTYgKzIzOCwxNCBAQCBib29sIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OnNldHVwRnJhbWVi
dWZmZXIoKQogCiAgICAgLy8gU2V0IHVwIGNvbG9yLCBkZXB0aCBhbmQgc3RlbmNpbCBmb3JtYXRz
CiAgICAgYm9vbCB1c2VEZXB0aFN0ZW5jaWwgPSBtX2F0dHJpYnV0ZXMuc3RlbmNpbCB8fCBtX2F0
dHJpYnV0ZXMuZGVwdGg7Ci0gICAgYXV0byBjb2xvckZvcm1hdCA9IG1fYXR0cmlidXRlcy5hbHBo
YSA/IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOCA6IEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4Owor
ICAgIGF1dG8gY29sb3JGb3JtYXQgPSBtX2F0dHJpYnV0ZXMuYWxwaGEgPyBHTDo6UkdCQTggOiBH
TDo6UkdCODsKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIGF1dG8mIGV4dGVuc2lvbnMgPSByZWlu
dGVycHJldF9jYXN0PEV4dGVuc2lvbnNHTE9wZW5HTEVTJj4oZ2wuZ2V0RXh0ZW5zaW9ucygpKTsK
ICAgICBib29sIHN1cHBvcnRzUGFja2VkRGVwdGhTdGVuY2lsID0gdXNlRGVwdGhTdGVuY2lsICYm
IGV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwogICAg
IGF1dG8gZGVwdGhGb3JtYXQgPSBzdXBwb3J0c1BhY2tlZERlcHRoU3RlbmNpbCA/IEdMOjpERVBU
SDI0X1NURU5DSUw4IDogR0w6OkRFUFRIX0NPTVBPTkVOVDE2OwogICAgIGF1dG8gc3RlbmNpbEZv
cm1hdCA9IEdMOjpTVEVOQ0lMX0lOREVYODsKICNlbGlmIFVTRShBTkdMRSkKLSAgICAvLyBGSVhN
RTogVGhlc2UgdmFsdWVzIHdlcmUgY2hvc2VuIGp1c3QgdG8gZ2V0IHRoaXMgdG8gY29tcGlsZSBz
dWNjZXNzZnVsbHkuCi0gICAgLy8gTWFrZSBzdXJlIHRoZXkgYXJlIGNvcnJlY3QuCi0gICAgYm9v
bCBzdXBwb3J0c1BhY2tlZERlcHRoU3RlbmNpbCA9IGZhbHNlOworICAgIGJvb2wgc3VwcG9ydHNQ
YWNrZWREZXB0aFN0ZW5jaWwgPSB0cnVlOwogICAgIGF1dG8gZGVwdGhGb3JtYXQgPSBzdXBwb3J0
c1BhY2tlZERlcHRoU3RlbmNpbCA/IEdMOjpERVBUSDI0X1NURU5DSUw4IDogR0w6OkRFUFRIX0NP
TVBPTkVOVDsKICAgICBhdXRvIHN0ZW5jaWxGb3JtYXQgPSBHTDo6U1RFTkNJTF9JTkRFWDg7CiAj
ZWxzZQpAQCAtMjAzLDEyICsyNjAsMTEgQEAgYm9vbCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpz
ZXR1cEZyYW1lYnVmZmVyKCkKICAgICBpZiAobV9hdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAg
ICAgICBHQ0dMaW50IG1heFNhbXBsZUNvdW50OwogI2lmIFVTRShBTkdMRSkKLSAgICAgICAgLy8g
RklYTUU6IFRoaXMgcHJvYmFibHkgaXMgbm90IGNvcnJlY3QuCi0gICAgICAgIG1heFNhbXBsZUNv
dW50ID0gMDsKKyAgICAgICAgZ2wuZ2V0SW50ZWdlcnYoR0w6Ok1BWF9TQU1QTEVTLCBtYWtlR0NH
TFNwYW4oJm1heFNhbXBsZUNvdW50LCAxKSk7CiAjZWxzZQogICAgICAgICBnbC5nZXRJbnRlZ2Vy
dihFeHRlbnNpb25zR0w6Ok1BWF9TQU1QTEVTLCBtYWtlR0NHTFNwYW4oJm1heFNhbXBsZUNvdW50
LCAxKSk7CiAjZW5kaWYKLSAgICAgICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBtaWdo
dCBiZSBvdmVyaGVhZC4KKyAgICAgICAgLy8gQ2FwIHRoZSBtYXhpdW11bSBtdWx0aXNhbXBsZSBj
b3VudCBhdCA0LiBBbnkgbW9yZSB0aGFuIHRoaXMgaXMgbGlrZWx5IG92ZXJraWxsIGFuZCB3aWxs
IGltcGFjdCBwZXJmb3JtYW5jZS4KICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHN0ZDo6bWluKDQs
IG1heFNhbXBsZUNvdW50KTsKICAgICB9CiAKQEAgLTI0Niw3ICszMDIsNiBAQCBib29sIFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI6OnNldHVwRnJhbWVidWZmZXIoKQogI2VuZGlmIC8vIFVTRShPUEVO
R0xfRVMpCiAKICAgICBpZiAobV9hdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX2NvbnRleHQuaXNX
ZWJHTDIoKSkgewotICAgICAgICAvLyBVc2UgYW4gZXh0cmEgRkJPIGZvciBtdWx0aXNhbXBsZSBp
ZiBtdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUgaXMgbm90IHN1cHBvcnRlZC4KICAgICAg
ICAgbV9yZXNvbHZlZEZCTyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CiAgICAgICAgIG1fbXVs
dGlzYW1wbGVDb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwogICAgICAgICBn
bC5iaW5kRnJhbWVidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyLT5vYmplY3Qo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVl
RnJhbWVidWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVG
cmFtZWJ1ZmZlci5oCmluZGV4IDYxZGRhM2QzYzFhMGExYTZlZDljODQ5ZDcxZWVmZmEyMTljOGRh
OGIuLmY1MDgwYzI4MjBjYWY3ZmI5ZDAyN2M3NDRlYjJkMTgwMDdkNDhmOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5o
CkBAIC03Nyw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgUGxhdGZvcm1HTE9iamVjdCBtX3Jlc29s
dmVkRkJPIHsgMCB9OwogICAgIEdDR0xpbnQgbV9zYW1wbGVDb3VudCB7IDAgfTsKICAgICBQbGF0
Zm9ybUdMT2JqZWN0IG1fb3BhcXVlVGV4dHVyZSB7IDAgfTsKKyNpZiBVU0UoSU9TVVJGQUNFX0ZP
Ul9YUl9MQVlFUl9EQVRBKQorICAgIHZvaWQqIG1faW9TdXJmYWNlVGV4dHVyZUhhbmRsZSB7IG51
bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="451476"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="451478"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430213</attachid>
            <date>2021-05-31 16:14:13 -0700</date>
            <delta_ts>2021-05-31 16:22:23 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-225896-20210601091411.patch</filename>
            <type>text/plain</type>
            <size>8501</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlhY2E1MGI4YmEzM2Iw
ZmM0YWFlNGQ4NDRiOTk0YzhmZjM5MGM4OS4uYzllMTk3MDYzNDZlODliYmJlMjRiZjViZTM0MTNi
YjExZjQyYWFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTMxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1
cmZhY2UgdG8gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
ODEyODI4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIElt
cGxlbWVudCBiaW5kaW5nIG9mIGluY29taW5nIElPU3VyZmFjZXMgKHZpYSBGcmFtZURhdGEpCisg
ICAgICAgIGludG8gdGhlIFdlYkdMIGZyYW1lYnVmZmVyIHRoYXQgdGhlIHBhZ2Ugd2lsbCB1c2Ug
YXMKKyAgICAgICAgYSByZW5kZXJpbmcgdGFyZ2V0LgorCisgICAgICAgIEN1cnJlbnRseSBvbmx5
IHNpbmdsZS1zYW1wbGUgKG5vbi1hbnRpYWxpYXNlZCkgYnVmZmVycworICAgICAgICBhcmUgc3Vw
cG9ydGVkIGFuZCB0aGUgY2FudmFzIGNvbnRleHQgbXVzdCBiZSBXZWJHTCAyLgorCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhST3BhcXVlRnJhbWVidWZmZXI6OnN0YXJ0RnJhbWUpOiBDcmVhdGUgYSB0ZXh0
dXJlIGlmIG5lY2Vzc2FyeSwgdGhlbgorICAgICAgICBiaW5kIGl0cyBiYWNraW5nIHN0b3JlIHRv
IHRoZSBpbmNvbWluZyBJT1N1cmZhY2UsIHRoZW4gaG9vayBpdCB1cCB0byB0aGUgZnJhbWVidWZm
ZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjplbmRGcmFtZSk6
IFJlbGVhc2UgdGhlIFBidWZmZXIgd2UgdXNlZCBpbiBzdGFydEZyYW1lLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c2V0dXBGcmFtZWJ1ZmZlcik6IEFkZCBDb2Nv
YStBTkdMRSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhST3BhcXVlRnJhbWVidWZmZXIuaDogS2VlcCBhIG1lbWJlciB2YXJpYWJsZSBmb3IgdGhl
IFBidWZmZXIuCisKIDIwMjEtMDUtMzAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWJYUl0gTm8gbmVlZCBmb3Igb3BhcXVlVGV4dHVyZSB3aGVuIFVTRShJT1NV
UkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcAppbmRleCA0NjQyYzNjNGVjNGI2
MWIzY2Y2MTg5Yzg5NTVhYTE0Yzg1ZmMwYTRiLi44NWY1MjA0NmE2Njg2MTViZGJkODIwYzU4ZGI0
YTNmMDQ2Mjk3MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhST3BhcXVlRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKQEAgLTUwLDYgKzUwLDExIEBACiAjaW5jbHVk
ZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgog
CisjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFUQSkKKyNpbmNsdWRlICJBTkdMRUhl
YWRlcnMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgR0wgPSBHcmFwaGljc0NvbnRleHRHTDsKQEAg
LTExMSw3ICsxMTYsMzkgQEAgdm9pZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzdGFydEZyYW1l
KGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhOjpMYXkKICAgICAvLyB0aGUgdGV4
dHVyZXMvcmVuZGVyYnVmZmVycy4KIAogI2lmIFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RB
VEEpCi0gICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgIGF1dG8gZ0NHTCA9IHN0YXRpY19jYXN0
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKj4obV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dEdMKCkp
OworICAgIEdDR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
ZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKKworICAgIGF1dG8gc2l6ZSA9IGRhdGEuc3Vy
ZmFjZS0+c2l6ZSgpOworCisgICAgaWYgKCFtX29wYXF1ZVRleHR1cmUpCisgICAgICAgIG1fb3Bh
cXVlVGV4dHVyZSA9IGdDR0wtPmNyZWF0ZVRleHR1cmUoKTsKKworICAgIGdDR0wtPmJpbmRUZXh0
dXJlKHRleHR1cmVUYXJnZXQsIG1fb3BhcXVlVGV4dHVyZSk7CisgICAgZ0NHTC0+dGV4UGFyYW1l
dGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHTDo6TElORUFSKTsK
KyAgICBnQ0dMLT50ZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMOjpURVhUVVJFX01JTl9G
SUxURVIsIEdMOjpMSU5FQVIpOworICAgIGdDR0wtPnRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdl
dCwgR0w6OlRFWFRVUkVfV1JBUF9TLCBHTDo6Q0xBTVBfVE9fRURHRSk7CisgICAgZ0NHTC0+dGV4
UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTDo6VEVYVFVSRV9XUkFQX1QsIEdMOjpDTEFNUF9U
T19FREdFKTsKKworICAgIC8vIFRlbGwgdGhlIEdyYXBoaWNzQ29udGV4dEdMIHRvIHVzZSB0aGUg
SU9TdXJmYWNlIGFzIHRoZSBiYWNraW5nIHN0b3JlIGZvciBtX29wYXF1ZVRleHR1cmUuCisgICAg
bV9pb1N1cmZhY2VUZXh0dXJlSGFuZGxlID0gZ0NHTC0+Y3JlYXRlUGJ1ZmZlckFuZEF0dGFjaElP
U3VyZmFjZSh0ZXh0dXJlVGFyZ2V0LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6UGJ1ZmZlckF0
dGFjaG1lbnRVc2FnZTo6V3JpdGUsIEdMOjpCR1JBLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCksIEdMOjpVTlNJR05FRF9CWVRFLCBkYXRhLnN1cmZhY2UtPnN1cmZhY2UoKSwgMCk7CisgICAg
aWYgKCFtX2lvU3VyZmFjZVRleHR1cmVIYW5kbGUgJiYgbV9vcGFxdWVUZXh0dXJlKSB7CisgICAg
ICAgIGdDR0wtPmRlbGV0ZVRleHR1cmUobV9vcGFxdWVUZXh0dXJlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFzc3VtaW5nIG11bHRpc2FtcGxpbmcg
aXMgdHVybmVkIG9mZiBhbmQgd2UncmUgcmVuZGVyaW5nIGRpcmVjdGx5IGludG8gdGhlIGZyYW1l
YnVmZmVyLgorCisgICAgLy8gTm93IHNldCB1cCB0aGUgZnJhbWVidWZmZXIgdG8gdXNlIHRoZSB0
ZXh0dXJlcy9yZW5kZXJidWZmZXJzIHdlIGhhdmUgY3JlYXRlZC4KKyAgICBnbC5mcmFtZWJ1ZmZl
clRleHR1cmUyRChHTDo6RlJBTUVCVUZGRVIsIEdMOjpDT0xPUl9BVFRBQ0hNRU5UMCwgR0w6OlRF
WFRVUkVfMkQsIG1fb3BhcXVlVGV4dHVyZSwgMCk7CisKKyAgICBpZiAobV9hdHRyaWJ1dGVzLnN0
ZW5jaWwpCisgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMOjpGUkFNRUJVRkZF
UiwgR0w6OlNURU5DSUxfQVRUQUNITUVOVCwgR0w6OlJFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOworICAgIGlmIChtX2F0dHJpYnV0ZXMuZGVwdGgpCisgICAgICAgIGdsLmZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyKEdMOjpGUkFNRUJVRkZFUiwgR0w6OkRFUFRIX0FUVEFDSE1FTlQs
IEdMOjpSRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKworICAgIC8vIEF0IHRo
aXMgcG9pbnQgdGhlIGZyYW1lYnVmZmVyIHNob3VsZCBiZSAiY29tcGxldGUiLgorICAgIEFTU0VS
VChnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdMOjpGUkFNRUJVRkZFUikgPT0gR0w6OkZSQU1F
QlVGRkVSX0NPTVBMRVRFKTsKICNlbHNlCiAgICAgbV9vcGFxdWVUZXh0dXJlID0gZGF0YS5vcGFx
dWVUZXh0dXJlOwogI2VuZGlmCkBAIC0xMjYsNiArMTYzLDcgQEAgdm9pZCBXZWJYUk9wYXF1ZUZy
YW1lYnVmZmVyOjpzdGFydEZyYW1lKGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRh
OjpMYXkKIAogICAgIGlmICghbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKQogICAgICAgICBnbC5m
cmFtZWJ1ZmZlclRleHR1cmUyRChHTDo6RlJBTUVCVUZGRVIsIEdMOjpDT0xPUl9BVFRBQ0hNRU5U
MCwgR0w6OlRFWFRVUkVfMkQsIG1fb3BhcXVlVGV4dHVyZSwgMCk7CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjplbmRGcmFtZSgpCkBAIC0xMzQsOCArMTcyLDIyIEBA
IHZvaWQgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6ZW5kRnJhbWUoKQogCiAgICAgaWYgKCFtX2Nv
bnRleHQuZ3JhcGhpY3NDb250ZXh0R0woKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byYg
Z2wgPSAqbV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dEdMKCk7CiAKKyNpZiBVU0UoSU9TVVJGQUNF
X0ZPUl9YUl9MQVlFUl9EQVRBKQorICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIGNhbGwgZmluaXNo
IHJhdGhlciB0aGFuIGZsdXNoIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGRpc2Nvbm5lY3QKKyAg
ICAvLyB0aGUgSU9TdXJmYWNlIGFuZCBzaWduYWwgdGhlIERldmljZVByb3h5IHdoZW4gd2Uga25v
dyB0aGUgY29udGVudCBoYXMgYmVlbiByZW5kZXJlZC4KKyAgICAvLyBJdCBtaWdodCBiZSBwb3Nz
aWJsZSB0byBzZXQgdGhpcyB1cCBzbyB0aGUgY29tcGxldGlvbiBvZiB0aGUgcmVuZGVyaW5nIHRy
aWdnZXJzCisgICAgLy8gdGhlIGVuZEZyYW1lIGNhbGwuCisgICAgZ2wuZmluaXNoKCk7CisKKyAg
ICBpZiAobV9pb1N1cmZhY2VUZXh0dXJlSGFuZGxlKSB7CisgICAgICAgIGF1dG8gZ0NHTCA9IHN0
YXRpY19jYXN0PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKj4oJmdsKTsKKyAgICAgICAgZ0NHTC0+
ZGVzdHJveVBidWZmZXJBbmREZXRhY2hJT1N1cmZhY2UobV9pb1N1cmZhY2VUZXh0dXJlSGFuZGxl
KTsKKyAgICB9CisjZWxzZQorCiAgICAgaWYgKG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcikgewog
I2lmICFVU0UoQU5HTEUpCiAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBtYXkgYmUgbmVlZGVkIHdo
ZW4gdXNpbmcgQU5HTEUsIGJ1dCBpdCBkaWRuJ3QgY29tcGlsZSBpbiB0aGUgaW5pdGlhbCBpbXBs
ZW1lbnRhdGlvbi4KQEAgLTE2Miw4ICsyMTQsOSBAQCB2b2lkIFdlYlhST3BhcXVlRnJhbWVidWZm
ZXI6OmVuZEZyYW1lKCkKICAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKEdMOjpSRUFEX0ZSQU1F
QlVGRkVSLCBtX2ZyYW1lYnVmZmVyLT5vYmplY3QoKSk7CiAgICAgICAgIGdsLmJsaXRGcmFtZWJ1
ZmZlcigwLCAwLCBtX3dpZHRoLCBtX2hlaWdodCwgMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQsIEdM
OjpDT0xPUl9CVUZGRVJfQklULCBHTDo6TElORUFSKTsKICAgICB9Ci0gICAgCisKICAgICBnbC5m
bHVzaCgpOworI2VuZGlmCiB9CiAKIGJvb2wgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c2V0dXBG
cmFtZWJ1ZmZlcigpCkBAIC0xODQsMTYgKzIzNywxNCBAQCBib29sIFdlYlhST3BhcXVlRnJhbWVi
dWZmZXI6OnNldHVwRnJhbWVidWZmZXIoKQogCiAgICAgLy8gU2V0IHVwIGNvbG9yLCBkZXB0aCBh
bmQgc3RlbmNpbCBmb3JtYXRzCiAgICAgYm9vbCB1c2VEZXB0aFN0ZW5jaWwgPSBtX2F0dHJpYnV0
ZXMuc3RlbmNpbCB8fCBtX2F0dHJpYnV0ZXMuZGVwdGg7Ci0gICAgYXV0byBjb2xvckZvcm1hdCA9
IG1fYXR0cmlidXRlcy5hbHBoYSA/IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOCA6IEdyYXBoaWNz
Q29udGV4dEdMOjpSR0I4OworICAgIGF1dG8gY29sb3JGb3JtYXQgPSBtX2F0dHJpYnV0ZXMuYWxw
aGEgPyBHTDo6UkdCQTggOiBHTDo6UkdCODsKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIGF1dG8m
IGV4dGVuc2lvbnMgPSByZWludGVycHJldF9jYXN0PEV4dGVuc2lvbnNHTE9wZW5HTEVTJj4oZ2wu
Z2V0RXh0ZW5zaW9ucygpKTsKICAgICBib29sIHN1cHBvcnRzUGFja2VkRGVwdGhTdGVuY2lsID0g
dXNlRGVwdGhTdGVuY2lsICYmIGV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX09FU19wYWNrZWRfZGVw
dGhfc3RlbmNpbCIpOwogICAgIGF1dG8gZGVwdGhGb3JtYXQgPSBzdXBwb3J0c1BhY2tlZERlcHRo
U3RlbmNpbCA/IEdMOjpERVBUSDI0X1NURU5DSUw4IDogR0w6OkRFUFRIX0NPTVBPTkVOVDE2Owog
ICAgIGF1dG8gc3RlbmNpbEZvcm1hdCA9IEdMOjpTVEVOQ0lMX0lOREVYODsKICNlbGlmIFVTRShB
TkdMRSkKLSAgICAvLyBGSVhNRTogVGhlc2UgdmFsdWVzIHdlcmUgY2hvc2VuIGp1c3QgdG8gZ2V0
IHRoaXMgdG8gY29tcGlsZSBzdWNjZXNzZnVsbHkuCi0gICAgLy8gTWFrZSBzdXJlIHRoZXkgYXJl
IGNvcnJlY3QuCi0gICAgYm9vbCBzdXBwb3J0c1BhY2tlZERlcHRoU3RlbmNpbCA9IGZhbHNlOwor
ICAgIGJvb2wgc3VwcG9ydHNQYWNrZWREZXB0aFN0ZW5jaWwgPSB0cnVlOwogICAgIGF1dG8gZGVw
dGhGb3JtYXQgPSBzdXBwb3J0c1BhY2tlZERlcHRoU3RlbmNpbCA/IEdMOjpERVBUSDI0X1NURU5D
SUw4IDogR0w6OkRFUFRIX0NPTVBPTkVOVDsKICAgICBhdXRvIHN0ZW5jaWxGb3JtYXQgPSBHTDo6
U1RFTkNJTF9JTkRFWDg7CiAjZWxzZQpAQCAtMjA4LDEyICsyNTksMTEgQEAgYm9vbCBXZWJYUk9w
YXF1ZUZyYW1lYnVmZmVyOjpzZXR1cEZyYW1lYnVmZmVyKCkKICAgICBpZiAobV9hdHRyaWJ1dGVz
LmFudGlhbGlhcykgewogICAgICAgICBHQ0dMaW50IG1heFNhbXBsZUNvdW50OwogI2lmIFVTRShB
TkdMRSkKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgcHJvYmFibHkgaXMgbm90IGNvcnJlY3QuCi0g
ICAgICAgIG1heFNhbXBsZUNvdW50ID0gMDsKKyAgICAgICAgZ2wuZ2V0SW50ZWdlcnYoR0w6Ok1B
WF9TQU1QTEVTLCBtYWtlR0NHTFNwYW4oJm1heFNhbXBsZUNvdW50LCAxKSk7CiAjZWxzZQogICAg
ICAgICBnbC5nZXRJbnRlZ2VydihFeHRlbnNpb25zR0w6Ok1BWF9TQU1QTEVTLCBtYWtlR0NHTFNw
YW4oJm1heFNhbXBsZUNvdW50LCAxKSk7CiAjZW5kaWYKLSAgICAgICAgLy8gVXNpbmcgbW9yZSB0
aGFuIDQgc2FtcGxlcyBtaWdodCBiZSBvdmVyaGVhZC4KKyAgICAgICAgLy8gQ2FwIHRoZSBtYXhp
dW11bSBtdWx0aXNhbXBsZSBjb3VudCBhdCA0LiBBbnkgbW9yZSB0aGFuIHRoaXMgaXMgbGlrZWx5
IG92ZXJraWxsIGFuZCB3aWxsIGltcGFjdCBwZXJmb3JtYW5jZS4KICAgICAgICAgbV9zYW1wbGVD
b3VudCA9IHN0ZDo6bWluKDQsIG1heFNhbXBsZUNvdW50KTsKICAgICB9CiAKQEAgLTI1MSw3ICsz
MDEsNiBAQCBib29sIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OnNldHVwRnJhbWVidWZmZXIoKQog
I2VuZGlmIC8vIFVTRShPUEVOR0xfRVMpCiAKICAgICBpZiAobV9hdHRyaWJ1dGVzLmFudGlhbGlh
cyAmJiBtX2NvbnRleHQuaXNXZWJHTDIoKSkgewotICAgICAgICAvLyBVc2UgYW4gZXh0cmEgRkJP
IGZvciBtdWx0aXNhbXBsZSBpZiBtdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUgaXMgbm90
IHN1cHBvcnRlZC4KICAgICAgICAgbV9yZXNvbHZlZEZCTyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCk7CiAgICAgICAgIG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpOwogICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBtX2Zy
YW1lYnVmZmVyLT5vYmplY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5oCmluZGV4IDYxZGRhM2QzYzFhMGExYTZlZDlj
ODQ5ZDcxZWVmZmEyMTljOGRhOGIuLmY1MDgwYzI4MjBjYWY3ZmI5ZDAyN2M3NDRlYjJkMTgwMDdk
NDhmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJPcGFx
dWVGcmFtZWJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJP
cGFxdWVGcmFtZWJ1ZmZlci5oCkBAIC03Nyw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgUGxhdGZv
cm1HTE9iamVjdCBtX3Jlc29sdmVkRkJPIHsgMCB9OwogICAgIEdDR0xpbnQgbV9zYW1wbGVDb3Vu
dCB7IDAgfTsKICAgICBQbGF0Zm9ybUdMT2JqZWN0IG1fb3BhcXVlVGV4dHVyZSB7IDAgfTsKKyNp
ZiBVU0UoSU9TVVJGQUNFX0ZPUl9YUl9MQVlFUl9EQVRBKQorICAgIHZvaWQqIG1faW9TdXJmYWNl
VGV4dHVyZUhhbmRsZSB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQo=
</data>
<flag name="commit-queue"
          id="451599"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430215</attachid>
            <date>2021-05-31 16:43:15 -0700</date>
            <delta_ts>2021-05-31 16:43:15 -0700</delta_ts>
            <desc>WIP 2</desc>
            <filename>bug-225896-20210601094314.patch</filename>
            <type>text/plain</type>
            <size>8604</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ4YTg4MzQ4MDFlZDA0
MjcwZWM4MzVmZGI0MTkwN2FkZmZmNjA5Mi4uYTA1N2E4MDZhOGQ1YjNhZmM1ZmFjZDljMjUxNDBi
ZDcwYzMzODk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTMxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1
cmZhY2UgdG8gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
ODEyODI4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIElt
cGxlbWVudCBiaW5kaW5nIG9mIGluY29taW5nIElPU3VyZmFjZXMgKHZpYSBGcmFtZURhdGEpCisg
ICAgICAgIGludG8gdGhlIFdlYkdMIGZyYW1lYnVmZmVyIHRoYXQgdGhlIHBhZ2Ugd2lsbCB1c2Ug
YXMKKyAgICAgICAgYSByZW5kZXJpbmcgdGFyZ2V0LgorCisgICAgICAgIEN1cnJlbnRseSBvbmx5
IHNpbmdsZS1zYW1wbGUgKG5vbi1hbnRpYWxpYXNlZCkgYnVmZmVycworICAgICAgICBhcmUgc3Vw
cG9ydGVkIGFuZCB0aGUgY2FudmFzIGNvbnRleHQgbXVzdCBiZSBXZWJHTCAyLgorCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhST3BhcXVlRnJhbWVidWZmZXI6OnN0YXJ0RnJhbWUpOiBDcmVhdGUgYSB0ZXh0
dXJlIGlmIG5lY2Vzc2FyeSwgdGhlbgorICAgICAgICBiaW5kIGl0cyBiYWNraW5nIHN0b3JlIHRv
IHRoZSBpbmNvbWluZyBJT1N1cmZhY2UsIHRoZW4gaG9vayBpdCB1cCB0byB0aGUgZnJhbWVidWZm
ZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjplbmRGcmFtZSk6
IFJlbGVhc2UgdGhlIFBidWZmZXIgd2UgdXNlZCBpbiBzdGFydEZyYW1lLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6c2V0dXBGcmFtZWJ1ZmZlcik6IEFkZCBDb2Nv
YStBTkdMRSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhST3BhcXVlRnJhbWVidWZmZXIuaDogS2VlcCBhIG1lbWJlciB2YXJpYWJsZSBmb3IgdGhl
IFBidWZmZXIuCisKIDIwMjEtMDUtMzEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgdmVyeSBlYXJs
eSBKdW5lIDIwMjEgZWRpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUk9wYXF1ZUZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlci5jcHAKaW5kZXggNDY0MmMzYzRlYzRiNjFiM2Nm
NjE4OWM4OTU1YWExNGM4NWZjMGE0Yi4uMWEwOTk3ZDJmNWIwMmI4ZGE4YWRjMTcyZGM4ZDRhMmNl
MGZkMDZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUk9w
YXF1ZUZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhST3BhcXVlRnJhbWVidWZmZXIuY3BwCkBAIC01MCw2ICs1MCwxMSBAQAogI2luY2x1ZGUgIldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAorI2lm
IFVTRShJT1NVUkZBQ0VfRk9SX1hSX0xBWUVSX0RBVEEpCisjaW5jbHVkZSAiQU5HTEVIZWFkZXJz
LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIEdMID0gR3JhcGhpY3NDb250ZXh0R0w7CkBAIC0xMTEs
MTAgKzExNiw0MSBAQCB2b2lkIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OnN0YXJ0RnJhbWUoY29u
c3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFtZURhdGE6OkxheQogICAgIC8vIHRoZSB0ZXh0dXJl
cy9yZW5kZXJidWZmZXJzLgogCiAjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZRVJfREFUQSkK
LSAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgYXV0byBnQ0dMID0gc3RhdGljX2Nhc3Q8R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqPihtX2NvbnRleHQuZ3JhcGhpY3NDb250ZXh0R0woKSk7Cisg
ICAgR0NHTGVudW0gdGV4dHVyZVRhcmdldCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkcmF3
aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOworCisgICAgYXV0byBzaXplID0gZGF0YS5zdXJmYWNl
LT5zaXplKCk7CisKKyAgICBpZiAoIW1fb3BhcXVlVGV4dHVyZSkKKyAgICAgICAgbV9vcGFxdWVU
ZXh0dXJlID0gZ0NHTC0+Y3JlYXRlVGV4dHVyZSgpOworCisgICAgZ0NHTC0+YmluZFRleHR1cmUo
dGV4dHVyZVRhcmdldCwgbV9vcGFxdWVUZXh0dXJlKTsKKyAgICBnQ0dMLT50ZXhQYXJhbWV0ZXJp
KHRleHR1cmVUYXJnZXQsIEdMOjpURVhUVVJFX01BR19GSUxURVIsIEdMOjpMSU5FQVIpOworICAg
IGdDR0wtPnRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0w6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR0w6OkxJTkVBUik7CisgICAgZ0NHTC0+dGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBH
TDo6VEVYVFVSRV9XUkFQX1MsIEdMOjpDTEFNUF9UT19FREdFKTsKKyAgICBnQ0dMLT50ZXhQYXJh
bWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMOjpURVhUVVJFX1dSQVBfVCwgR0w6OkNMQU1QX1RPX0VE
R0UpOworCisgICAgLy8gVGVsbCB0aGUgR3JhcGhpY3NDb250ZXh0R0wgdG8gdXNlIHRoZSBJT1N1
cmZhY2UgYXMgdGhlIGJhY2tpbmcgc3RvcmUgZm9yIG1fb3BhcXVlVGV4dHVyZS4KKyAgICBtX2lv
U3VyZmFjZVRleHR1cmVIYW5kbGUgPSBnQ0dMLT5jcmVhdGVQYnVmZmVyQW5kQXR0YWNoSU9TdXJm
YWNlKHRleHR1cmVUYXJnZXQsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpQYnVmZmVyQXR0YWNo
bWVudFVzYWdlOjpXcml0ZSwgR0w6OkJHUkEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
R0w6OlVOU0lHTkVEX0JZVEUsIGRhdGEuc3VyZmFjZS0+c3VyZmFjZSgpLCAwKTsKKyAgICBpZiAo
IW1faW9TdXJmYWNlVGV4dHVyZUhhbmRsZSAmJiBtX29wYXF1ZVRleHR1cmUpIHsKKyAgICAgICAg
Z0NHTC0+ZGVsZXRlVGV4dHVyZShtX29wYXF1ZVRleHR1cmUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYXNzdW1pbmcgbXVsdGlzYW1wbGluZyBpcyB0
dXJuZWQgb2ZmIGFuZCB3ZSdyZSByZW5kZXJpbmcgZGlyZWN0bHkgaW50byB0aGUgZnJhbWVidWZm
ZXIuCisKKyAgICAvLyBOb3cgc2V0IHVwIHRoZSBmcmFtZWJ1ZmZlciB0byB1c2UgdGhlIHRleHR1
cmVzL3JlbmRlcmJ1ZmZlcnMgd2UgaGF2ZSBjcmVhdGVkLgorICAgIGdsLmZyYW1lYnVmZmVyVGV4
dHVyZTJEKEdMOjpGUkFNRUJVRkZFUiwgR0w6OkNPTE9SX0FUVEFDSE1FTlQwLCBHTDo6VEVYVFVS
RV8yRCwgbV9vcGFxdWVUZXh0dXJlLCAwKTsKKworICAgIGlmIChtX2F0dHJpYnV0ZXMuc3RlbmNp
bCkKKyAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBH
TDo6U1RFTkNJTF9BVFRBQ0hNRU5ULCBHTDo6UkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CisgICAgaWYgKG1fYXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAgZ2wuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoR0w6OkZSQU1FQlVGRkVSLCBHTDo6REVQVEhfQVRUQUNITUVOVCwgR0w6
OlJFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOworCisgICAgLy8gQXQgdGhpcyBw
b2ludCB0aGUgZnJhbWVidWZmZXIgc2hvdWxkIGJlICJjb21wbGV0ZSIuCisgICAgQVNTRVJUKGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0w6OkZSQU1FQlVGRkVSKSA9PSBHTDo6RlJBTUVCVUZG
RVJfQ09NUExFVEUpOwogI2Vsc2UKICAgICBtX29wYXF1ZVRleHR1cmUgPSBkYXRhLm9wYXF1ZVRl
eHR1cmU7Ci0jZW5kaWYKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgYXV0byYgZXh0ZW5zaW9u
cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8RXh0ZW5zaW9uc0dMT3BlbkdMRVMmPihnbC5nZXRFeHRlbnNp
b25zKCkpOwpAQCAtMTI2LDYgKzE2Miw3IEBAIHZvaWQgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6
c3RhcnRGcmFtZShjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6TGF5CiAKICAg
ICBpZiAoIW1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcikKICAgICAgICAgZ2wuZnJhbWVidWZmZXJU
ZXh0dXJlMkQoR0w6OkZSQU1FQlVGRkVSLCBHTDo6Q09MT1JfQVRUQUNITUVOVDAsIEdMOjpURVhU
VVJFXzJELCBtX29wYXF1ZVRleHR1cmUsIDApOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViWFJPcGFx
dWVGcmFtZWJ1ZmZlcjo6ZW5kRnJhbWUoKQpAQCAtMTM0LDggKzE3MSwyMiBAQCB2b2lkIFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI6OmVuZEZyYW1lKCkKIAogICAgIGlmICghbV9jb250ZXh0LmdyYXBo
aWNzQ29udGV4dEdMKCkpCiAgICAgICAgIHJldHVybjsKKwogICAgIGF1dG8mIGdsID0gKm1fY29u
dGV4dC5ncmFwaGljc0NvbnRleHRHTCgpOwogCisjaWYgVVNFKElPU1VSRkFDRV9GT1JfWFJfTEFZ
RVJfREFUQSkKKyAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBjYWxsIGZpbmlzaCByYXRoZXIgdGhh
biBmbHVzaCBiZWNhdXNlIHdlIG9ubHkgd2FudCB0byBkaXNjb25uZWN0CisgICAgLy8gdGhlIElP
U3VyZmFjZSBhbmQgc2lnbmFsIHRoZSBEZXZpY2VQcm94eSB3aGVuIHdlIGtub3cgdGhlIGNvbnRl
bnQgaGFzIGJlZW4gcmVuZGVyZWQuCisgICAgLy8gSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gc2V0
IHRoaXMgdXAgc28gdGhlIGNvbXBsZXRpb24gb2YgdGhlIHJlbmRlcmluZyB0cmlnZ2VycworICAg
IC8vIHRoZSBlbmRGcmFtZSBjYWxsLgorICAgIGdsLmZpbmlzaCgpOworCisgICAgaWYgKG1faW9T
dXJmYWNlVGV4dHVyZUhhbmRsZSkgeworICAgICAgICBhdXRvIGdDR0wgPSBzdGF0aWNfY2FzdDxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCo+KCZnbCk7CisgICAgICAgIGdDR0wtPmRlc3Ryb3lQYnVm
ZmVyQW5kRGV0YWNoSU9TdXJmYWNlKG1faW9TdXJmYWNlVGV4dHVyZUhhbmRsZSk7CisgICAgfQor
I2Vsc2UKKwogICAgIGlmIChtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpIHsKICNpZiAhVVNFKEFO
R0xFKQogICAgICAgICAvLyBGSVhNRTogVGhlc2UgbWF5IGJlIG5lZWRlZCB3aGVuIHVzaW5nIEFO
R0xFLCBidXQgaXQgZGlkbid0IGNvbXBpbGUgaW4gdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24u
CkBAIC0xNjIsOCArMjEzLDkgQEAgdm9pZCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjplbmRGcmFt
ZSgpCiAgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihHTDo6UkVBRF9GUkFNRUJVRkZFUiwgbV9m
cmFtZWJ1ZmZlci0+b2JqZWN0KCkpOwogICAgICAgICBnbC5ibGl0RnJhbWVidWZmZXIoMCwgMCwg
bV93aWR0aCwgbV9oZWlnaHQsIDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0LCBHTDo6Q09MT1JfQlVG
RkVSX0JJVCwgR0w6OkxJTkVBUik7CiAgICAgfQotICAgIAorCiAgICAgZ2wuZmx1c2goKTsKKyNl
bmRpZgogfQogCiBib29sIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OnNldHVwRnJhbWVidWZmZXIo
KQpAQCAtMTg0LDE2ICsyMzYsMTQgQEAgYm9vbCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzZXR1
cEZyYW1lYnVmZmVyKCkKIAogICAgIC8vIFNldCB1cCBjb2xvciwgZGVwdGggYW5kIHN0ZW5jaWwg
Zm9ybWF0cwogICAgIGJvb2wgdXNlRGVwdGhTdGVuY2lsID0gbV9hdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgbV9hdHRyaWJ1dGVzLmRlcHRoOwotICAgIGF1dG8gY29sb3JGb3JtYXQgPSBtX2F0dHJpYnV0
ZXMuYWxwaGEgPyBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTggOiBHcmFwaGljc0NvbnRleHRHTDo6
UkdCODsKKyAgICBhdXRvIGNvbG9yRm9ybWF0ID0gbV9hdHRyaWJ1dGVzLmFscGhhID8gR0w6OlJH
QkE4IDogR0w6OlJHQjg7CiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICBhdXRvJiBleHRlbnNpb25z
ID0gcmVpbnRlcnByZXRfY2FzdDxFeHRlbnNpb25zR0xPcGVuR0xFUyY+KGdsLmdldEV4dGVuc2lv
bnMoKSk7CiAgICAgYm9vbCBzdXBwb3J0c1BhY2tlZERlcHRoU3RlbmNpbCA9IHVzZURlcHRoU3Rl
bmNpbCAmJiBleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5jaWwi
KTsKICAgICBhdXRvIGRlcHRoRm9ybWF0ID0gc3VwcG9ydHNQYWNrZWREZXB0aFN0ZW5jaWwgPyBH
TDo6REVQVEgyNF9TVEVOQ0lMOCA6IEdMOjpERVBUSF9DT01QT05FTlQxNjsKICAgICBhdXRvIHN0
ZW5jaWxGb3JtYXQgPSBHTDo6U1RFTkNJTF9JTkRFWDg7CiAjZWxpZiBVU0UoQU5HTEUpCi0gICAg
Ly8gRklYTUU6IFRoZXNlIHZhbHVlcyB3ZXJlIGNob3NlbiBqdXN0IHRvIGdldCB0aGlzIHRvIGNv
bXBpbGUgc3VjY2Vzc2Z1bGx5LgotICAgIC8vIE1ha2Ugc3VyZSB0aGV5IGFyZSBjb3JyZWN0Lgot
ICAgIGJvb2wgc3VwcG9ydHNQYWNrZWREZXB0aFN0ZW5jaWwgPSBmYWxzZTsKKyAgICBib29sIHN1
cHBvcnRzUGFja2VkRGVwdGhTdGVuY2lsID0gdHJ1ZTsKICAgICBhdXRvIGRlcHRoRm9ybWF0ID0g
c3VwcG9ydHNQYWNrZWREZXB0aFN0ZW5jaWwgPyBHTDo6REVQVEgyNF9TVEVOQ0lMOCA6IEdMOjpE
RVBUSF9DT01QT05FTlQ7CiAgICAgYXV0byBzdGVuY2lsRm9ybWF0ID0gR0w6OlNURU5DSUxfSU5E
RVg4OwogI2Vsc2UKQEAgLTIwOCwxMiArMjU4LDExIEBAIGJvb2wgV2ViWFJPcGFxdWVGcmFtZWJ1
ZmZlcjo6c2V0dXBGcmFtZWJ1ZmZlcigpCiAgICAgaWYgKG1fYXR0cmlidXRlcy5hbnRpYWxpYXMp
IHsKICAgICAgICAgR0NHTGludCBtYXhTYW1wbGVDb3VudDsKICNpZiBVU0UoQU5HTEUpCi0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IGlzIG5vdCBjb3JyZWN0LgotICAgICAgICBtYXhT
YW1wbGVDb3VudCA9IDA7CisgICAgICAgIGdsLmdldEludGVnZXJ2KEdMOjpNQVhfU0FNUExFUywg
bWFrZUdDR0xTcGFuKCZtYXhTYW1wbGVDb3VudCwgMSkpOwogI2Vsc2UKICAgICAgICAgZ2wuZ2V0
SW50ZWdlcnYoRXh0ZW5zaW9uc0dMOjpNQVhfU0FNUExFUywgbWFrZUdDR0xTcGFuKCZtYXhTYW1w
bGVDb3VudCwgMSkpOwogI2VuZGlmCi0gICAgICAgIC8vIFVzaW5nIG1vcmUgdGhhbiA0IHNhbXBs
ZXMgbWlnaHQgYmUgb3ZlcmhlYWQuCisgICAgICAgIC8vIENhcCB0aGUgbWF4aXVtdW0gbXVsdGlz
YW1wbGUgY291bnQgYXQgNC4gQW55IG1vcmUgdGhhbiB0aGlzIGlzIGxpa2VseSBvdmVya2lsbCBh
bmQgd2lsbCBpbXBhY3QgcGVyZm9ybWFuY2UuCiAgICAgICAgIG1fc2FtcGxlQ291bnQgPSBzdGQ6
Om1pbig0LCBtYXhTYW1wbGVDb3VudCk7CiAgICAgfQogCkBAIC0yNTEsNyArMzAwLDYgQEAgYm9v
bCBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpzZXR1cEZyYW1lYnVmZmVyKCkKICNlbmRpZiAvLyBV
U0UoT1BFTkdMX0VTKQogCiAgICAgaWYgKG1fYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgbV9jb250
ZXh0LmlzV2ViR0wyKCkpIHsKLSAgICAgICAgLy8gVXNlIGFuIGV4dHJhIEZCTyBmb3IgbXVsdGlz
YW1wbGUgaWYgbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIGlzIG5vdCBzdXBwb3J0ZWQu
CiAgICAgICAgIG1fcmVzb2x2ZWRGQk8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwogICAgICAg
ICBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKICAg
ICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKEdMOjpGUkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlci0+
b2JqZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
Uk9wYXF1ZUZyYW1lYnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
T3BhcXVlRnJhbWVidWZmZXIuaAppbmRleCA2MWRkYTNkM2MxYTBhMWE2ZWQ5Yzg0OWQ3MWVlZmZh
MjE5YzhkYThiLi5mNTA4MGMyODIwY2FmN2ZiOWQwMjdjNzQ0ZWIyZDE4MDA3ZDQ4ZjliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVidWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhST3BhcXVlRnJhbWVi
dWZmZXIuaApAQCAtNzcsNiArNzcsOSBAQCBwcml2YXRlOgogICAgIFBsYXRmb3JtR0xPYmplY3Qg
bV9yZXNvbHZlZEZCTyB7IDAgfTsKICAgICBHQ0dMaW50IG1fc2FtcGxlQ291bnQgeyAwIH07CiAg
ICAgUGxhdGZvcm1HTE9iamVjdCBtX29wYXF1ZVRleHR1cmUgeyAwIH07CisjaWYgVVNFKElPU1VS
RkFDRV9GT1JfWFJfTEFZRVJfREFUQSkKKyAgICB2b2lkKiBtX2lvU3VyZmFjZVRleHR1cmVIYW5k
bGUgeyBudWxscHRyIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>