<?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>236635</bug_id>
          
          <creation_ts>2022-02-15 00:56:10 -0800</creation_ts>
          <short_desc>[GTK][WPE] Implement dmabuf path for GStreamer texture sharing with WebGL/ANGLE</short_desc>
          <delta_ts>2023-03-18 09:29: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>ANGLE</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236587</dependson>
          <blocked>237649</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>dino</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>fujii</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philn</cc>
    
    <cc>pnormand</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1841612</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-15 00:56:10 -0800</bug_when>
    <thetext>Bug 236587 disables the texture-sharing path with ANGLE (because it&apos;s broken), we should implement an alternative GPU-side path for texture sharing using dmabufs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844649</commentid>
    <comment_count>1</comment_count>
      <attachid>452856</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-22 04:54:43 -0800</bug_when>
    <thetext>Created attachment 452856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844665</commentid>
    <comment_count>2</comment_count>
      <attachid>452863</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-22 06:11:32 -0800</bug_when>
    <thetext>Created attachment 452863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844774</commentid>
    <comment_count>3</comment_count>
      <attachid>452863</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2022-02-22 10:14:43 -0800</bug_when>
    <thetext>Comment on attachment 452863
Patch

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

r=me when bots are green

&gt; Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:34
&gt; +#include &quot;GBMDevice.h&quot;

This should be guarded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845057</commentid>
    <comment_count>4</comment_count>
      <attachid>452953</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-23 02:01:39 -0800</bug_when>
    <thetext>Created attachment 452953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845061</commentid>
    <comment_count>5</comment_count>
      <attachid>452955</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-23 02:37:27 -0800</bug_when>
    <thetext>Created attachment 452955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845062</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-23 02:43:32 -0800</bug_when>
    <thetext>This should wait on dmabuf-related changes in MediaPlayerPrivateGStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942303</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2023-03-18 09:29:30 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #6)
&gt; This should wait on dmabuf-related changes in MediaPlayerPrivateGStreamer.

Is this patch now worth rebasing?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452856</attachid>
            <date>2022-02-22 04:54:43 -0800</date>
            <delta_ts>2022-02-22 06:11:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236635-20220222125442.patch</filename>
            <type>text/plain</type>
            <size>13640</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmOWRmNjZiZTcwYzA4
ZDY1MDdiOGQzOWY5MWVkMzhmYTc3ZGYzZC4uNzk2Zjg1ZjNiM2QwYjc0NzBiMjNkNjRjZjIxNzg0
NzdhN2YxZGFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTIyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEltcGxlbWVu
dCBkbWFidWYgcGF0aCBmb3IgR1N0cmVhbWVyIHRleHR1cmUgc2hhcmluZyB3aXRoIFdlYkdML0FO
R0xFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdt
ZW50IHRoZSBHUFUtR1BVIHZpZGVvIHRleHR1cmUgY29weSBwYXRoIHdpdGggdGhlIGFiaWxpdHkg
dG8gdXNlCisgICAgICAgIGRtYWJ1ZiB0byBzaGFyZSB0ZXh0dXJlcyBiZXR3ZWVuIEFOR0xFIGFu
ZCBub24tQU5HTEUgR0wgY29udGV4dHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFBlbmRpbmdEbWFi
dWZUYXJnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldFBlbmRpbmdEbWFidWZU
YXJnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpzZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6
OnNldFBlbmRpbmdEbWFidWZUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250
ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlcjo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorCiAyMDIyLTAyLTE3ICBD
aHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBCdWlsZCBmYWls
dXJlIHdoZW4gYnVpbGRpbmcgd2l0aCBBTkdMRSBlbmFibGVkIHNpbmNlIHIyODk5MTIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA2
YzYxZDczNzA4NDFmMzgxNTA3Yjc2ODJlZmM4ZmJlOWEyMWIzZWY3Li5kNGIzZWJjZDFlY2I1ZjBm
MzZjNzY5NDE4NmE0MDhhZWJlYzc2ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDg2LDYgKzEwODYsMTMgQEAgYm9vbCBN
ZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29u
dGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKKyNp
ZiBVU0UoR1NUUkVBTUVSX0dMKSAmJiBVU0UoQU5HTEUpCit2b2lkIE1lZGlhUGxheWVyOjpzZXRQ
ZW5kaW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJp
ZGUpCit7CisgICAgbV9wcml2YXRlLT5zZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGZkLCBmb3JtYXQs
IHN0cmlkZSk7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDg5
MzE3MTU5MjVhMTQ4M2FmYWQwY2NjYTE2M2FlMTU5Zjk0NzNiOGEuLjcxY2IyZDNjZWMxNjEwOTQy
MTJmZDA0ODQ0ZjZlNjVlNGFmOTM1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDcwLDYgKzQ3MCw5IEBAIHB1YmxpYzoKICAgICAv
LyBUaGUgY3VycmVudCByZXN0cmljdGlvbnMgcmVxdWlyZSB0aGF0IGZvcm1hdCBzaG91ZCBiZSBS
R0Igb3IgUkdCQSwgdHlwZSBzaG91bGQgYmUgVU5TSUdORURfQllURSBhbmQgbGV2ZWwgc2hvdWxk
IGJlIDAuIEl0IG1heSBiZSBsaWZ0ZWQgaW4gdGhlIGZ1dHVyZS4KICNpZiAhVVNFKEFWRk9VTkRB
VElPTikKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOworI2lmIFVT
RShHU1RSRUFNRVJfR0wpICYmIFVTRShBTkdMRSkKKyAgICB2b2lkIHNldFBlbmRpbmdEbWFidWZU
YXJnZXQoaW50IGZkLCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHN0cmlkZSk7CisjZW5kaWYK
ICNlbmRpZgogICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdl
Rm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjlmZjRjYmYyODY5ZDkzMzEyMGVkZTAw
ZDAxNWU1YWRkZjQ3ODI5MS4uNGRjMzNiNDVjMzk1NmQzZGQyNGZhZDIzMjRiNGM4NmJkMTc0YzVh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3Qg
RmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51
bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQorI2lm
IFVTRShHU1RSRUFNRVJfR0wpICYmIFVTRShBTkdMRSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGVu
ZGluZ0RtYWJ1ZlRhcmdldChpbnQsIHVpbnQzMl90LCB1aW50MzJfdCkgeyB9OworI2VuZGlmCiAj
ZW5kaWYKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICB2
aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIHsg
cmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKaW5kZXggNzBjNjk2ZDg4NTNiN2Q3YzI4YzQwZTRmZGQyNWQ1NjU3MjUwMGIw
ZS4uY2Q5YmYyYjM5ZDUxZjQ2OGFjNGMxNTZjNDJhODMyMTk5Y2QwZTAyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTMzNjMsNiArMzM2
MywxNCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udAogICAgIHJldHVybiBtX3ZpZGVvVGV4dHVy
ZUNvcGllci0+Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCpsYXllckJ1ZmZlci5n
ZXQoKSwgc2l6ZSwgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgZmxpcFksIG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiwgcHJl
bXVsdGlwbHlBbHBoYSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpz
ZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBz
dHJpZGUpCit7CisgICAgaWYgKCFtX3ZpZGVvVGV4dHVyZUNvcGllcikKKyAgICAgICAgbV92aWRl
b1RleHR1cmVDb3BpZXIgPSBtYWtlVW5pcXVlPFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcj4o
VEVYVFVSRV9DT1BJRVJfQ09MT1JfQ09OVkVSVF9GTEFHKTsKKworICAgIG1fdmlkZW9UZXh0dXJl
Q29waWVyLT5zZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGZkLCBmb3JtYXQsIHN0cmlkZSk7Cit9CisK
IFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlMzgwNzViMmZjMjZkOTQz
YmY5YTAwNjU0MzNjN2JiYWFlNWUwNjIzLi5iNjdmYjc1MmZkY2VlOWM4OGEwNmE2MDA4M2QyZGE3
YWIzYmQ5YjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCkBAIC0yMTAsNiArMjEwLDcgQEAgcHVibGljOgogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkK
ICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRl
eHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NH
TGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFBlbmRp
bmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHN0cmlkZSkg
b3ZlcnJpZGU7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRU
aW1lKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJl
Q29waWVyR1N0cmVhbWVyLmNwcAppbmRleCBiMzMwNjZmNzllYThmYTA0MjM4NjQ4ODZjNTc0ODEz
ZWJjMGViZTExLi5mNTcwYjMyNWMzZDllZmNmYzU5NjY0MjlmMTlmZjIzMTZmNTkyOGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
ZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcApAQCAtMjUs
OCArMjUsMTYgQEAKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdMQ29udGV4
dC5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRp
b24uaCIKIAorI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlICJFcG94eUVHTC5oIgorI2Vsc2UK
KyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjaW5jbHVkZSA8RUdML2VnbGV4dC5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpWaWRl
b1RleHR1cmVDb3BpZXJHU3RyZWFtZXIoQ29sb3JDb252ZXJzaW9uIGNvbG9yQ29udmVyc2lvbikK
QEAgLTEzNSw2ICsxNDMsMTMgQEAgdm9pZCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OnVw
ZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCkKICAgICAgICAgLTEsIDEsIC0oZmFyVmFsdWUgKyBu
ZWFyVmFsdWUpIC8gKGZhclZhbHVlIC0gbmVhclZhbHVlKSwgMSk7CiB9CiAKK3ZvaWQgVmlkZW9U
ZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpzZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWlu
dDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJpZGUpCit7CisgICAgbV9wZW5kaW5nRG1hYnVmLmZk
ID0gZmQ7CisgICAgbV9wZW5kaW5nRG1hYnVmLmZvcm1hdCA9IGZvcm1hdDsKKyAgICBtX3BlbmRp
bmdEbWFidWYuc3RyaWRlID0gc3RyaWRlOworfQorCiBib29sIFZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyQnVmZmVyJiBpbnB1dFRleHR1cmUsIEludFNpemUmIGZyYW1lU2l6ZSwgR0x1
aW50IG91dHB1dFRleHR1cmUsIEdMZW51bSBvdXRwdXRUYXJnZXQsIEdMaW50IGxldmVsLCBHTGVu
dW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBib29sIGZsaXBZ
LCBJbWFnZU9yaWVudGF0aW9uIHNvdXJjZU9yaWVudGF0aW9uLCBib29sIHByZW11bHRpcGx5QWxw
aGEpCiB7CiAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyIHx8ICFtX3ZibyB8fCBmcmFtZVNpemUuaXNF
bXB0eSgpKQpAQCAtMjE1LDkgKzIzMCwyOCBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJl
YW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAg
IC8vIFNldCBwcm9wZXIgcGFyYW1ldGVycyB0byB0aGUgb3V0cHV0IHRleHR1cmUgYW5kIGFsbG9j
YXRlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZvciBpdC4KICAgICBnbEJpbmRUZXh0dXJlKG91dHB1
dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CiAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVf
MkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwogICAg
IGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xB
TVBfVE9fRURHRSk7CiAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICBnbFRleEltYWdlMkQob3V0cHV0VGFy
Z2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0
KCksIDAsIGZvcm1hdCwgdHlwZSwgbnVsbHB0cik7CisgICAgRUdMSW1hZ2UgaW1hZ2UgPSBFR0xf
Tk9fSU1BR0U7CisgICAgaWYgKG1fcGVuZGluZ0RtYWJ1Zi5mZCA+PSAwKSB7CisgICAgICAgIEFT
U0VSVChHTENvbnRleHQ6OmN1cnJlbnQoKS0+aXNFR0xDb250ZXh0KCkpOworICAgICAgICBWZWN0
b3I8RUdMQXR0cmliPiBpbWFnZUF0dHJpYnV0ZXMgeworICAgICAgICAgICAgRUdMX1dJRFRILCBt
X3NpemUud2lkdGgoKSwKKyAgICAgICAgICAgIEVHTF9IRUlHSFQsIG1fc2l6ZS5oZWlnaHQoKSwK
KyAgICAgICAgICAgIEVHTF9MSU5VWF9EUk1fRk9VUkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMQXR0
cmliPihtX3BlbmRpbmdEbWFidWYuZm9ybWF0KSwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BM
QU5FMF9GRF9FWFQsIG1fcGVuZGluZ0RtYWJ1Zi5mZCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVG
X1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTEF0dHJpYj4obV9wZW5kaW5nRG1hYnVm
LnN0cmlkZSksCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwK
KyAgICAgICAgICAgIEVHTF9OT05FCisgICAgICAgIH07CisgICAgICAgIGltYWdlID0gZG93bmNh
c3Q8R0xDb250ZXh0RUdMPigqR0xDb250ZXh0OjpjdXJyZW50KCkpLmNyZWF0ZUltYWdlKEVHTF9M
SU5VWF9ETUFfQlVGX0VYVCwgKEVHTENsaWVudEJ1ZmZlciludWxscHRyLCBpbWFnZUF0dHJpYnV0
ZXMpOworICAgICAgICBtX3BlbmRpbmdEbWFidWYuZmQgPSAtMTsKKyAgICB9CisgICAgaWYgKGlt
YWdlKQorICAgICAgICBnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKG91dHB1dFRhcmdldCwg
aW1hZ2UpOworICAgIGVsc2UKKyAgICAgICAgZ2xUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpLCAwLCBm
b3JtYXQsIHR5cGUsIG51bGxwdHIpOwogCiAgICAgLy8gQmluZCBmcmFtZWJ1ZmZlciB0byBwYWlu
dCBhbmQgYXR0YWNoIHRoZSBkZXN0aW5hdGlvbiB0ZXh0dXJlIHRvIGl0LgogICAgIGdsQmluZEZy
YW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKQEAgLTMwMyw2ICszMzcs
OSBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAgIGdsQmluZFRleHR1cmUob3V0cHV0VGFy
Z2V0LCBib3VuZFRleHR1cmUpOwogICAgIGdsVmlld3BvcnQocHJldmlvdXNWaWV3cG9ydFswXSwg
cHJldmlvdXNWaWV3cG9ydFsxXSwgcHJldmlvdXNWaWV3cG9ydFsyXSwgcHJldmlvdXNWaWV3cG9y
dFszXSk7CiAKKyAgICBpZiAoaW1hZ2UpCisgICAgICAgIGRvd25jYXN0PEdMQ29udGV4dEVHTD4o
KkdMQ29udGV4dDo6Y3VycmVudCgpKS5kZXN0cm95SW1hZ2UoaW1hZ2UpOworCiAgICAgYm9vbCBv
ayA9IChnbEdldEVycm9yKCkgPT0gR0xfTk9fRVJST1IpOwogCiAgICAgLy8gUmVzdG9yZSBwcmV2
aW91cyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1l
ci5oCmluZGV4IDYyZDE2ZTFjYmU5ZDJlYWFkYjM3YTcyMTFmYWU5YTliYWQ2OWQ5YjYuLmRiODMx
Yjc0NWQwYmJiZmI3YTA5ZmFiZjEwOWM4NzFmNzdlMzdiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlVGV4dHVyZVNwYWNlTWF0cml4KCk7CiAgICAgdm9pZCB1cGRhdGVUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpOwogICAgIEdMdWludCByZXN1bHRUZXh0dXJlKCkgeyByZXR1cm4g
bV9yZXN1bHRUZXh0dXJlOyB9CisgICAgdm9pZCBzZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGludCBm
ZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJpZGUpOwogCiBwcml2YXRlOgogICAgIFJl
ZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gbV9zaGFkZXJQcm9ncmFtOwpAQCAtNjcs
NiArNjgsMTIgQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3RleHR1cmVT
cGFjZU1hdHJpeDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2NvbG9yQ29udmVyc2lvbk1h
dHJpeDsKICAgICBHTHVpbnQgbV9yZXN1bHRUZXh0dXJlIHsgMCB9OworCisgICAgc3RydWN0IHsK
KyAgICAgICAgaW50IGZkIHsgLTEgfTsKKyAgICAgICAgdWludDMyX3QgZm9ybWF0OworICAgICAg
ICB1aW50MzJfdCBzdHJpZGU7CisgICAgfSBtX3BlbmRpbmdEbWFidWY7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IDY3YzA0NmI0NDZjNDQ1Yzc1ZTRkYTUyYjFiZmI0Njk0MjNkZmJlZTcu
LjNjM2E1NTFmMmI0OWM0MTA0OWNlMjM4MzY5MmM1MmVhYTlmMjBjOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRl
eHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCR0wpICYmIFVTRShURVhUVVJFX01BUFBFUikKIAorI2luY2x1ZGUg
IkdCTURldmljZS5oIgogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDb250ZW50
c0Rpc3BsYXlEZWxlZ2F0ZS5oIgpAQCAtMTc0LDE3ICsxNzUsMjcgQEAgUmVmUHRyPE1lZGlhU2Ft
cGxlPiBHcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXI6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGkKIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOjpjb3B5VGV4dHVy
ZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRl
eHR1cmUsIEdDR0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50
ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0
aXBseUFscGhhLCBib29sIGZsaXBZKQogewogI2lmIFVTRShBTkdMRSkgJiYgVVNFKEdTVFJFQU1F
Ul9HTCkKLSAgICBVTlVTRURfUEFSQU0ocGxheWVyKTsKLSAgICBVTlVTRURfUEFSQU0ob3V0cHV0
VGV4dHVyZSk7Ci0gICAgVU5VU0VEX1BBUkFNKG91dHB1dFRhcmdldCk7Ci0gICAgVU5VU0VEX1BB
UkFNKGxldmVsKTsKLSAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxGb3JtYXQpOwotICAgIFVOVVNF
RF9QQVJBTShmb3JtYXQpOwotICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKLSAgICBVTlVTRURfUEFS
QU0ocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZsaXBZKTsKLQotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgY29weS1mcmVlIChvciBhdCBsZWFzdCwgc29mdHdhcmUgY29weS1m
cmVlKSB0ZXh0dXJlIHRyYW5zZmVyIHZpYSBkbWFidWYuCisgICAgY29uc3QgYXV0byYgZ2JtRGV2
aWNlID0gR0JNRGV2aWNlOjpnZXQoKTsKKyAgICBpZiAoIWdibURldmljZS5kZXZpY2UoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRUdMSW1hZ2VCYWNraW5nIHNoYXJlZEltYWdlKHBs
YXRmb3JtRGlzcGxheSgpKTsKKyAgICBhdXRvIHNpemUgPSBJbnRTaXplKHBsYXllci5uYXR1cmFs
U2l6ZSgpKTsKKyAgICBzaGFyZWRJbWFnZS5yZXNldChzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCksIGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSk7CisKKyAgICByZWxlYXNlVGhy
ZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJlaGF2aW9yOjpSZWxlYXNlQ3VycmVu
dENvbnRleHQpOworCisgICAgcGxheWVyLnNldFBlbmRpbmdEbWFidWZUYXJnZXQoc2hhcmVkSW1h
Z2UuZmQoKSwgc2hhcmVkSW1hZ2UuZm9ybWF0KCksIHNoYXJlZEltYWdlLnN0cmlkZSgpKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IHBsYXllci5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUo
dGhpcywgMCwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIEdMX0JpbmRUZXh0dXJlKG91dHB1dFRhcmdl
dCwgb3V0cHV0VGV4dHVyZSk7CisgICAgICAgIEdMX0VHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
KG91dHB1dFRhcmdldCwgc2hhcmVkSW1hZ2UuaW1hZ2UoKSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCiAgICAgcmV0dXJuIHBsYXllci5j
b3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodGhpcywgb3V0cHV0VGV4dHVyZSwgb3V0
cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlw
bHlBbHBoYSwgZmxpcFkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452863</attachid>
            <date>2022-02-22 06:11:32 -0800</date>
            <delta_ts>2022-02-23 02:01:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236635-20220222141130.patch</filename>
            <type>text/plain</type>
            <size>13572</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM3ZWI4YTRhYTc2YmVk
NmNmMWI2MTRkMzk1MDg5ZTkzOWY1NjRlZi4uNzQwNmNiMzA1YTFhNWNmY2Y2OWE5OWI1MzE0MDE4
YTBmNWRkMTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTIyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEltcGxlbWVu
dCBkbWFidWYgcGF0aCBmb3IgR1N0cmVhbWVyIHRleHR1cmUgc2hhcmluZyB3aXRoIFdlYkdML0FO
R0xFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdt
ZW50IHRoZSBHUFUtR1BVIHZpZGVvIHRleHR1cmUgY29weSBwYXRoIHdpdGggdGhlIGFiaWxpdHkg
dG8gdXNlCisgICAgICAgIGRtYWJ1ZiB0byBzaGFyZSB0ZXh0dXJlcyBiZXR3ZWVuIEFOR0xFIGFu
ZCBub24tQU5HTEUgR0wgY29udGV4dHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFBlbmRpbmdEbWFi
dWZUYXJnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldFBlbmRpbmdEbWFidWZU
YXJnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpzZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6
OnNldFBlbmRpbmdEbWFidWZUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJl
Q29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250
ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlcjo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorCiAyMDIyLTAyLTIyICBN
YXJjb3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KIAogICAgICAgICBQZXJtaXNzaW9u
IEFQSTogaGFuZGxlIG5vbi1mdWxseSBhY3RpdmUgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZmRhNWFkMWQ5MDcw
Y2NmNGM2MDhlZGFiMTJhZjkwYjk2ZTg2ZjQyNy4uZGY4MjY5OTIyOTI2NDc4Yzk5MmE1MWU2MTA4
NzAwMDViMWI0OTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcApAQCAtMTA4Niw2ICsxMDg2LDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6
OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29u
dGV4dCwKICAgICByZXR1cm4gbV9wcml2YXRlLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoY29udGV4dCwgdGV4dHVyZSwgdGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZv
cm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwogfQogCisjaWYgVVNFKEdTVFJF
QU1FUl9HTCkgJiYgVVNFKEFOR0xFKQordm9pZCBNZWRpYVBsYXllcjo6c2V0UGVuZGluZ0RtYWJ1
ZlRhcmdldChpbnQgZmQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRlKQoreworICAg
IG1fcHJpdmF0ZS0+c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChmZCwgZm9ybWF0LCBzdHJpZGUpOwor
fQorI2VuZGlmCisKICNlbmRpZgogCiBSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXI6OnZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBhMTdlNWVlNmQ3ZDUwN2RmNWFhODBlNzZhOWZmYjUz
NTEzNWM3MGU3Li4wNDQ2NGIxZTZjM2I3NDgzNDg0ZjlmNzY0YzNmYzIzZmQ3MWZlNDE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTQ3
MCw2ICs0NzAsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJlbnQgcmVzdHJpY3Rpb25zIHJl
cXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEsIHR5cGUgc2hvdWxkIGJlIFVO
U0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBtYXkgYmUgbGlmdGVkIGluIHRo
ZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0
IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJu
YWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGZsaXBZKTsKKyNpZiBVU0UoR1NUUkVBTUVSX0dMKSAmJiBVU0UoQU5HTEUp
CisgICAgdm9pZCBzZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0
LCB1aW50MzJfdCBzdHJpZGUpOworI2VuZGlmCiAjZW5kaWYKICAgICBSZWZQdHI8VmlkZW9GcmFt
ZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDgwOWJlMTY1MzMyMjcy
MDc2NGZhMDgxNmM4Mzg4ZGMzMmI1ODFkNmEuLjYzZDQxZWM3N2EwNDc1NGI4ZDRmMjEyODY3ZWYy
NzY5NjA0OTMzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xODAsNiArMTgwLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQm
IGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQogI2lmICFVU0UoQVZGT1VO
REFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGlu
dCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgeyByZXR1cm4gZmFs
c2U7IH0KKyNpZiBVU0UoR1NUUkVBTUVSX0dMKSAmJiBVU0UoQU5HTEUpCisgICAgdmlydHVhbCB2
b2lkIHNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50LCB1aW50MzJfdCwgdWludDMyX3QpIHsgfTsK
KyNlbmRpZgogI2VuZGlmCiAgICAgdmlydHVhbCBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgUmVmUHRy
PE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCBkZjQyY2QwMDQyNWU2Mjk2ZGQzNzE0ZjAzM2RlNDc3ODI5OWNmYmNhLi43YzZmZWQ2Y2I1
MmJmNWFiNTZjMjQ5ZjU4NGFmNzYzMzk1ZTBjY2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzM2OCw2ICszMzY4LDE0IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoR3JhcGhpY3NDb250CiAgICAgcmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoKmxheWVyQnVmZmVyLmdldCgpLCBzaXplLCBv
dXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBmbGlwWSwgbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uLCBwcmVtdWx0aXBseUFscGhh
KTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBlbmRpbmdEbWFi
dWZUYXJnZXQoaW50IGZkLCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHN0cmlkZSkKK3sKKyAg
ICBpZiAoIW1fdmlkZW9UZXh0dXJlQ29waWVyKQorICAgICAgICBtX3ZpZGVvVGV4dHVyZUNvcGll
ciA9IG1ha2VVbmlxdWU8VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyPihURVhUVVJFX0NPUElF
Ul9DT0xPUl9DT05WRVJUX0ZMQUcpOworCisgICAgbV92aWRlb1RleHR1cmVDb3BpZXItPnNldFBl
bmRpbmdEbWFidWZUYXJnZXQoZmQsIGZvcm1hdCwgc3RyaWRlKTsKK30KKwogUmVmUHRyPE5hdGl2
ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoKQogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGUzODA3NWIyZmMyNmQ5NDNiZjlhMDA2NTQzM2M3
YmJhYWU1ZTA2MjMuLmI2N2ZiNzUyZmRjZWU5Yzg4YTA2YTYwMDgzZDJkYTdhYjNiZDliN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTIxMCw2
ICsyMTAsNyBAQCBwdWJsaWM6CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQogICAgIGJvb2wgY29w
eVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZv
cm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVu
dW0sIGJvb2wsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdl
dChpbnQgZmQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRlKSBvdmVycmlkZTsKICAg
ICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBvdmVycmlk
ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXIuY3BwCmluZGV4IGIzMzA2NmY3OWVhOGZhMDQyMzg2NDg4NmM1NzQ4MTNlYmMwZWJlMTEuLmY1
NzBiMzI1YzNkOWVmY2ZjNTk2NjQyOWYxOWZmMjMxNmY1OTI4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwCkBAIC0yNSw4ICsyNSwxNiBAQAog
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisjaW5jbHVk
ZSAiR0xDb250ZXh0RUdMLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogCisjaWYg
VVNFKExJQkVQT1hZKQorI2luY2x1ZGUgIkVwb3h5RUdMLmgiCisjZWxzZQorI2luY2x1ZGUgPEVH
TC9lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OlZpZGVvVGV4dHVyZUNvcGll
ckdTdHJlYW1lcihDb2xvckNvbnZlcnNpb24gY29sb3JDb252ZXJzaW9uKQpAQCAtMTM1LDYgKzE0
MywxMyBAQCB2b2lkIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6dXBkYXRlVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKQogICAgICAgICAtMSwgMSwgLShmYXJWYWx1ZSArIG5lYXJWYWx1ZSkgLyAo
ZmFyVmFsdWUgLSBuZWFyVmFsdWUpLCAxKTsKIH0KIAordm9pZCBWaWRlb1RleHR1cmVDb3BpZXJH
U3RyZWFtZXI6OnNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJfdCBmb3JtYXQs
IHVpbnQzMl90IHN0cmlkZSkKK3sKKyAgICBtX3BlbmRpbmdEbWFidWYuZmQgPSBmZDsKKyAgICBt
X3BlbmRpbmdEbWFidWYuZm9ybWF0ID0gZm9ybWF0OworICAgIG1fcGVuZGluZ0RtYWJ1Zi5zdHJp
ZGUgPSBzdHJpZGU7Cit9CisKIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJC
dWZmZXImIGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4
dHVyZSwgR0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50
YXRpb24gc291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKIHsKICAgICBp
ZiAoIW1fZnJhbWVidWZmZXIgfHwgIW1fdmJvIHx8IGZyYW1lU2l6ZS5pc0VtcHR5KCkpCkBAIC0y
MTUsOSArMjMwLDI4IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlCiAgICAgLy8gU2V0IHByb3Bl
ciBwYXJhbWV0ZXJzIHRvIHRoZSBvdXRwdXQgdGV4dHVyZSBhbmQgYWxsb2NhdGUgdW5pbml0aWFs
aXplZCBtZW1vcnkgZm9yIGl0LgogICAgIGdsQmluZFRleHR1cmUob3V0cHV0VGFyZ2V0LCBvdXRw
dXRUZXh0dXJlKTsKICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVS
RV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CiAgICAgZ2xUZXhQYXJhbWV0
ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsK
ICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdM
X0NMQU1QX1RPX0VER0UpOwotICAgIGdsVGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSwgMCwgZm9ybWF0
LCB0eXBlLCBudWxscHRyKTsKKyAgICBFR0xJbWFnZSBpbWFnZSA9IEVHTF9OT19JTUFHRTsKKyAg
ICBpZiAobV9wZW5kaW5nRG1hYnVmLmZkID49IDApIHsKKyAgICAgICAgQVNTRVJUKEdMQ29udGV4
dDo6Y3VycmVudCgpLT5pc0VHTENvbnRleHQoKSk7CisgICAgICAgIFZlY3RvcjxFR0xBdHRyaWI+
IGltYWdlQXR0cmlidXRlcyB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIG1fc2l6ZS53aWR0aCgp
LAorICAgICAgICAgICAgRUdMX0hFSUdIVCwgbV9zaXplLmhlaWdodCgpLAorICAgICAgICAgICAg
RUdMX0xJTlVYX0RSTV9GT1VSQ0NfRVhULCBzdGF0aWNfY2FzdDxFR0xBdHRyaWI+KG1fcGVuZGlu
Z0RtYWJ1Zi5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwg
bV9wZW5kaW5nRG1hYnVmLmZkLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX1BJVENI
X0VYVCwgc3RhdGljX2Nhc3Q8RUdMQXR0cmliPihtX3BlbmRpbmdEbWFidWYuc3RyaWRlKSwKKyAg
ICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAg
RUdMX05PTkUKKyAgICAgICAgfTsKKyAgICAgICAgaW1hZ2UgPSBkb3duY2FzdDxHTENvbnRleHRF
R0w+KCpHTENvbnRleHQ6OmN1cnJlbnQoKSkuY3JlYXRlSW1hZ2UoRUdMX0xJTlVYX0RNQV9CVUZf
RVhULCAoRUdMQ2xpZW50QnVmZmVyKW51bGxwdHIsIGltYWdlQXR0cmlidXRlcyk7CisgICAgICAg
IG1fcGVuZGluZ0RtYWJ1Zi5mZCA9IC0xOworICAgIH0KKyAgICBpZiAoaW1hZ2UpCisgICAgICAg
IGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMob3V0cHV0VGFyZ2V0LCBpbWFnZSk7CisgICAg
ZWxzZQorICAgICAgICBnbFRleEltYWdlMkQob3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCksIDAsIGZvcm1hdCwgdHlwZSwg
bnVsbHB0cik7CiAKICAgICAvLyBCaW5kIGZyYW1lYnVmZmVyIHRvIHBhaW50IGFuZCBhdHRhY2gg
dGhlIGRlc3RpbmF0aW9uIHRleHR1cmUgdG8gaXQuCiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIG1fZnJhbWVidWZmZXIpOwpAQCAtMzAzLDYgKzMzNyw5IEBAIGJvb2wgVmlk
ZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoVGV4dHVyZU1hcHBlCiAgICAgZ2xCaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIGJvdW5kVGV4
dHVyZSk7CiAgICAgZ2xWaWV3cG9ydChwcmV2aW91c1ZpZXdwb3J0WzBdLCBwcmV2aW91c1ZpZXdw
b3J0WzFdLCBwcmV2aW91c1ZpZXdwb3J0WzJdLCBwcmV2aW91c1ZpZXdwb3J0WzNdKTsKIAorICAg
IGlmIChpbWFnZSkKKyAgICAgICAgZG93bmNhc3Q8R0xDb250ZXh0RUdMPigqR0xDb250ZXh0Ojpj
dXJyZW50KCkpLmRlc3Ryb3lJbWFnZShpbWFnZSk7CisKICAgICBib29sIG9rID0gKGdsR2V0RXJy
b3IoKSA9PSBHTF9OT19FUlJPUik7CiAKICAgICAvLyBSZXN0b3JlIHByZXZpb3VzIGNvbnRleHQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKaW5kZXggNjJk
MTZlMWNiZTlkMmVhYWRiMzdhNzIxMWZhZTlhOWJhZDY5ZDliNi4uZGI4MzFiNzQ1ZDBiYmJmYjdh
MDlmYWJmMTA5Yzg3MWY3N2UzN2IwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVD
b3BpZXJHU3RyZWFtZXIuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRh
dGVUZXh0dXJlU3BhY2VNYXRyaXgoKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0
cml4KCk7CiAgICAgR0x1aW50IHJlc3VsdFRleHR1cmUoKSB7IHJldHVybiBtX3Jlc3VsdFRleHR1
cmU7IH0KKyAgICB2b2lkIHNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJfdCBm
b3JtYXQsIHVpbnQzMl90IHN0cmlkZSk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiBtX3NoYWRlclByb2dyYW07CkBAIC02Nyw2ICs2OCwxMiBAQCBw
cml2YXRlOgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdGV4dHVyZVNwYWNlTWF0cml4Owog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fY29sb3JDb252ZXJzaW9uTWF0cml4OwogICAgIEdM
dWludCBtX3Jlc3VsdFRleHR1cmUgeyAwIH07CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBpbnQg
ZmQgeyAtMSB9OworICAgICAgICB1aW50MzJfdCBmb3JtYXQ7CisgICAgICAgIHVpbnQzMl90IHN0
cmlkZTsKKyAgICB9IG1fcGVuZGluZ0RtYWJ1ZjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5k
ZXggMGRhOTUwMTgzMzc4ZTMyNTVjYjhkZGJiOWJlZjFjMWRkNzk1NDgxNi4uNTNhZTk1NjU1YzQ2
NTAzYzk3ZjE1MWRiNzdhZTcxMzI0MjY5YTM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJM
RShXRUJHTCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCisjaW5jbHVkZSAiR0JNRGV2aWNlLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmgiCiAjaW5jbHVkZSAiUGl4ZWxC
dWZmZXIuaCIKQEAgLTE3NCwxNyArMTc1LDI3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpCiBi
b29sIEdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjo6Y29weVRleHR1cmVGcm9tTWVkaWEo
TWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dM
ZW51bSBvdXRwdXRUYXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0
LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
Ym9vbCBmbGlwWSkKIHsKICNpZiBVU0UoQU5HTEUpICYmIFVTRShHU1RSRUFNRVJfR0wpCi0gICAg
VU5VU0VEX1BBUkFNKHBsYXllcik7Ci0gICAgVU5VU0VEX1BBUkFNKG91dHB1dFRleHR1cmUpOwot
ICAgIFVOVVNFRF9QQVJBTShvdXRwdXRUYXJnZXQpOwotICAgIFVOVVNFRF9QQVJBTShsZXZlbCk7
Ci0gICAgVU5VU0VEX1BBUkFNKGludGVybmFsRm9ybWF0KTsKLSAgICBVTlVTRURfUEFSQU0oZm9y
bWF0KTsKLSAgICBVTlVTRURfUEFSQU0odHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHByZW11bHRp
cGx5QWxwaGEpOwotICAgIFVOVVNFRF9QQVJBTShmbGlwWSk7Ci0KLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGNvcHktZnJlZSAob3IgYXQgbGVhc3QsIHNvZnR3YXJlIGNvcHktZnJlZSkgdGV4dHVy
ZSB0cmFuc2ZlciB2aWEgZG1hYnVmLgorICAgIGNvbnN0IGF1dG8mIGdibURldmljZSA9IEdCTURl
dmljZTo6Z2V0KCk7CisgICAgaWYgKCFnYm1EZXZpY2UuZGV2aWNlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIEVHTEltYWdlQmFja2luZyBzaGFyZWRJbWFnZShwbGF0Zm9ybURpc3Bs
YXkoKSk7CisgICAgYXV0byBzaXplID0gSW50U2l6ZShwbGF5ZXIubmF0dXJhbFNpemUoKSk7Cisg
ICAgc2hhcmVkSW1hZ2UucmVzZXQoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEpOworCisgICAgcmVsZWFzZVRocmVhZFJlc291cmNl
cyhSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvcjo6UmVsZWFzZUN1cnJlbnRDb250ZXh0KTsK
KworICAgIHBsYXllci5zZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KHNoYXJlZEltYWdlLmZkKCksIHNo
YXJlZEltYWdlLmZvcm1hdCgpLCBzaGFyZWRJbWFnZS5zdHJpZGUoKSk7CisgICAgYXV0byByZXN1
bHQgPSBwbGF5ZXIuY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRoaXMsIDAsIG91
dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRp
cGx5QWxwaGEsIGZsaXBZKTsKKworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisgICAgaWYg
KHJlc3VsdCkgeworICAgICAgICBHTF9CaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1dFRl
eHR1cmUpOworICAgICAgICBHTF9FR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyhvdXRwdXRUYXJn
ZXQsIHNoYXJlZEltYWdlLmltYWdlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
ICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQogICAgIHJldHVybiBwbGF5ZXIuY29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRoaXMsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZs
aXBZKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452953</attachid>
            <date>2022-02-23 02:01:39 -0800</date>
            <delta_ts>2022-02-23 03:12:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236635-20220223100137.patch</filename>
            <type>text/plain</type>
            <size>14129</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM3ZWI4YTRhYTc2YmVk
NmNmMWI2MTRkMzk1MDg5ZTkzOWY1NjRlZi4uMmZjODMyYzU1MmJlOWNkZDY3YTBlZmNmN2NiN2U0
MzM2ZDAwODg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTIyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEltcGxlbWVu
dCBkbWFidWYgcGF0aCBmb3IgR1N0cmVhbWVyIHRleHR1cmUgc2hhcmluZyB3aXRoIFdlYkdML0FO
R0xFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBEb24gT2xtc3RlYWQuCisKKyAgICAgICAgQXVnbWVu
dCB0aGUgR1BVLUdQVSB2aWRlbyB0ZXh0dXJlIGNvcHkgcGF0aCB3aXRoIHRoZSBhYmlsaXR5IHRv
IHVzZQorICAgICAgICBkbWFidWYgdG8gc2hhcmUgdGV4dHVyZXMgYmV0d2VlbiBBTkdMRSBhbmQg
bm9uLUFOR0xFIEdMIGNvbnRleHRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQZW5kaW5nRG1hYnVm
VGFyZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQZW5kaW5nRG1hYnVmVGFy
Z2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpz
ZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXI6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKwogMjAyMi0wMi0yMiAgTWFy
Y29zIENhY2VyZXMgIDxtYXJjb3NAbWFyY29zYy5jb20+CiAKICAgICAgICAgUGVybWlzc2lvbiBB
UEk6IGhhbmRsZSBub24tZnVsbHkgYWN0aXZlIGRvY3VtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZjFjZWRiOWM3NWJjZjk3NzdjMGZjODlmNTY4OTdlMjNjOGEyN2JkMC4uNTUwMTA5NGFjZDI1
OWQwZTlmZTA3NjhlMjU4NDc4ZjEwYTQxZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNjQw
LDYgKzE2NDAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9nYm0vR0JNRGV2aWNlLmgKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09PcmlnaW5hbEZvcm1hdEJveC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TY2hlbWVJbmZvQm94LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBmZGE1
YWQxZDkwNzBjY2Y0YzYwOGVkYWIxMmFmOTBiOTZlODZmNDI3Li5kZjgyNjk5MjI5MjY0NzhjOTky
YTUxZTYxMDg3MDAwNWIxYjQ5OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDg2LDYgKzEwODYsMTMgQEAgYm9vbCBNZWRp
YVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4
dEdMKiBjb250ZXh0LAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShjb250ZXh0LCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKKyNpZiBV
U0UoR1NUUkVBTUVSX0dMKSAmJiBVU0UoQU5HTEUpCit2b2lkIE1lZGlhUGxheWVyOjpzZXRQZW5k
aW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJpZGUp
Cit7CisgICAgbV9wcml2YXRlLT5zZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGZkLCBmb3JtYXQsIHN0
cmlkZSk7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKIFJlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBs
YXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGExN2U1ZWU2ZDdkNTA3ZGY1YWE4MGU3
NmE5ZmZiNTM1MTM1YzcwZTcuLjA0NDY0YjFlNmMzYjc0ODM0ODRmOWY3NjRjM2ZjMjNmZDcxZmU0
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtNDcwLDYgKzQ3MCw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgY3VycmVudCByZXN0cmlj
dGlvbnMgcmVxdWlyZSB0aGF0IGZvcm1hdCBzaG91ZCBiZSBSR0Igb3IgUkdCQSwgdHlwZSBzaG91
bGQgYmUgVU5TSUdORURfQllURSBhbmQgbGV2ZWwgc2hvdWxkIGJlIDAuIEl0IG1heSBiZSBsaWZ0
ZWQgaW4gdGhlIGZ1dHVyZS4KICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3Jt
R0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHBy
ZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOworI2lmIFVTRShHU1RSRUFNRVJfR0wpICYmIFVT
RShBTkdMRSkKKyAgICB2b2lkIHNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJf
dCBmb3JtYXQsIHVpbnQzMl90IHN0cmlkZSk7CisjZW5kaWYKICNlbmRpZgogICAgIFJlZlB0cjxW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggODA5YmUx
NjUzMzIyNzIwNzY0ZmEwODE2YzgzODhkYzMyYjU4MWQ2YS4uNjNkNDFlYzc3YTA0NzU0YjhkNGYy
MTI4NjdlZjI3Njk2MDQ5MzM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9CiAjaWYgIVVT
RShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVt
LCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJl
dHVybiBmYWxzZTsgfQorI2lmIFVTRShHU1RSRUFNRVJfR0wpICYmIFVTRShBTkdMRSkKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQsIHVpbnQzMl90LCB1aW50MzJf
dCkgeyB9OworI2VuZGlmCiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlZlB0cjxWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSB7IHJldHVy
biBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IGRmNDJjZDAwNDI1ZTYyOTZkZDM3MTRmMDMzZGU0Nzc4Mjk5Y2ZiY2EuLjdj
NmZlZDZjYjUyYmY1YWI1NmMyNDlmNTg0YWY3NjMzOTVlMGNjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMzY4LDYgKzMzNjgsMTQg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnQKICAgICByZXR1cm4gbV92aWRlb1RleHR1cmVDb3Bp
ZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5ZXJCdWZmZXIuZ2V0KCks
IHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24sIHByZW11bHRp
cGx5QWxwaGEpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UGVu
ZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRl
KQoreworICAgIGlmICghbV92aWRlb1RleHR1cmVDb3BpZXIpCisgICAgICAgIG1fdmlkZW9UZXh0
dXJlQ29waWVyID0gbWFrZVVuaXF1ZTxWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI+KFRFWFRV
UkVfQ09QSUVSX0NPTE9SX0NPTlZFUlRfRkxBRyk7CisKKyAgICBtX3ZpZGVvVGV4dHVyZUNvcGll
ci0+c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChmZCwgZm9ybWF0LCBzdHJpZGUpOworfQorCiBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0aXZlSW1hZ2VG
b3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZTM4MDc1YjJmYzI2ZDk0M2JmOWEw
MDY1NDMzYzdiYmFhZTVlMDYyMy4uYjY3ZmI3NTJmZGNlZTljODhhMDZhNjAwODNkMmRhN2FiM2Jk
OWI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtMjEwLDYgKzIxMCw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVt
LCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRQZW5kaW5nRG1h
YnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJpZGUpIG92ZXJy
aWRlOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgp
IG92ZXJyaWRlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGll
ckdTdHJlYW1lci5jcHAKaW5kZXggYjMzMDY2Zjc5ZWE4ZmEwNDIzODY0ODg2YzU3NDgxM2ViYzBl
YmUxMS4uZjU3MGIzMjVjM2Q5ZWZjZmM1OTY2NDI5ZjE5ZmYyMzE2ZjU5MjhjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVy
ZUNvcGllckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKQEAgLTI1LDggKzI1
LDE2IEBACiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHTENvbnRleHQuaCIK
KyNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgi
CiAKKyNpZiBVU0UoTElCRVBPWFkpCisjaW5jbHVkZSAiRXBveHlFR0wuaCIKKyNlbHNlCisjaW5j
bHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6VmlkZW9UZXh0
dXJlQ29waWVyR1N0cmVhbWVyKENvbG9yQ29udmVyc2lvbiBjb2xvckNvbnZlcnNpb24pCkBAIC0x
MzUsNiArMTQzLDEzIEBAIHZvaWQgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjp1cGRhdGVU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpCiAgICAgICAgIC0xLCAxLCAtKGZhclZhbHVlICsgbmVhclZh
bHVlKSAvIChmYXJWYWx1ZSAtIG5lYXJWYWx1ZSksIDEpOwogfQogCit2b2lkIFZpZGVvVGV4dHVy
ZUNvcGllckdTdHJlYW1lcjo6c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQsIHVpbnQzMl90
IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRlKQoreworICAgIG1fcGVuZGluZ0RtYWJ1Zi5mZCA9IGZk
OworICAgIG1fcGVuZGluZ0RtYWJ1Zi5mb3JtYXQgPSBmb3JtYXQ7CisgICAgbV9wZW5kaW5nRG1h
YnVmLnN0cmlkZSA9IHN0cmlkZTsKK30KKwogYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWludCBv
dXRwdXRUZXh0dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwgSW1h
Z2VPcmllbnRhdGlvbiBzb3VyY2VPcmllbnRhdGlvbiwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQog
ewogICAgIGlmICghbV9mcmFtZWJ1ZmZlciB8fCAhbV92Ym8gfHwgZnJhbWVTaXplLmlzRW1wdHko
KSkKQEAgLTIxNSw5ICsyMzAsMjggQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6
OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICAvLyBT
ZXQgcHJvcGVyIHBhcmFtZXRlcnMgdG8gdGhlIG91dHB1dCB0ZXh0dXJlIGFuZCBhbGxvY2F0ZSB1
bmluaXRpYWxpemVkIG1lbW9yeSBmb3IgaXQuCiAgICAgZ2xCaW5kVGV4dHVyZShvdXRwdXRUYXJn
ZXQsIG91dHB1dFRleHR1cmUpOwogICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKICAgICBnbFRl
eFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOwogICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2xUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpLCAw
LCBmb3JtYXQsIHR5cGUsIG51bGxwdHIpOworICAgIEVHTEltYWdlIGltYWdlID0gRUdMX05PX0lN
QUdFOworICAgIGlmIChtX3BlbmRpbmdEbWFidWYuZmQgPj0gMCkgeworICAgICAgICBBU1NFUlQo
R0xDb250ZXh0OjpjdXJyZW50KCktPmlzRUdMQ29udGV4dCgpKTsKKyAgICAgICAgVmVjdG9yPEVH
TEF0dHJpYj4gaW1hZ2VBdHRyaWJ1dGVzIHsKKyAgICAgICAgICAgIEVHTF9XSURUSCwgbV9zaXpl
LndpZHRoKCksCisgICAgICAgICAgICBFR0xfSEVJR0hULCBtX3NpemUuaGVpZ2h0KCksCisgICAg
ICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTEF0dHJpYj4o
bV9wZW5kaW5nRG1hYnVmLmZvcm1hdCksCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBf
RkRfRVhULCBtX3BlbmRpbmdEbWFidWYuZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFO
RTBfUElUQ0hfRVhULCBzdGF0aWNfY2FzdDxFR0xBdHRyaWI+KG1fcGVuZGluZ0RtYWJ1Zi5zdHJp
ZGUpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX09GRlNFVF9FWFQsIDAsCisgICAg
ICAgICAgICBFR0xfTk9ORQorICAgICAgICB9OworICAgICAgICBpbWFnZSA9IGRvd25jYXN0PEdM
Q29udGV4dEVHTD4oKkdMQ29udGV4dDo6Y3VycmVudCgpKS5jcmVhdGVJbWFnZShFR0xfTElOVVhf
RE1BX0JVRl9FWFQsIChFR0xDbGllbnRCdWZmZXIpbnVsbHB0ciwgaW1hZ2VBdHRyaWJ1dGVzKTsK
KyAgICAgICAgbV9wZW5kaW5nRG1hYnVmLmZkID0gLTE7CisgICAgfQorICAgIGlmIChpbWFnZSkK
KyAgICAgICAgZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyhvdXRwdXRUYXJnZXQsIGltYWdl
KTsKKyAgICBlbHNlCisgICAgICAgIGdsVGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSwgMCwgZm9ybWF0
LCB0eXBlLCBudWxscHRyKTsKIAogICAgIC8vIEJpbmQgZnJhbWVidWZmZXIgdG8gcGFpbnQgYW5k
IGF0dGFjaCB0aGUgZGVzdGluYXRpb24gdGV4dHVyZSB0byBpdC4KICAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlcik7CkBAIC0zMDMsNiArMzM3LDkgQEAg
Ym9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICBnbEJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwg
Ym91bmRUZXh0dXJlKTsKICAgICBnbFZpZXdwb3J0KHByZXZpb3VzVmlld3BvcnRbMF0sIHByZXZp
b3VzVmlld3BvcnRbMV0sIHByZXZpb3VzVmlld3BvcnRbMl0sIHByZXZpb3VzVmlld3BvcnRbM10p
OwogCisgICAgaWYgKGltYWdlKQorICAgICAgICBkb3duY2FzdDxHTENvbnRleHRFR0w+KCpHTENv
bnRleHQ6OmN1cnJlbnQoKSkuZGVzdHJveUltYWdlKGltYWdlKTsKKwogICAgIGJvb2wgb2sgPSAo
Z2xHZXRFcnJvcigpID09IEdMX05PX0VSUk9SKTsKIAogICAgIC8vIFJlc3RvcmUgcHJldmlvdXMg
Y29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaApp
bmRleCA2MmQxNmUxY2JlOWQyZWFhZGIzN2E3MjExZmFlOWE5YmFkNjlkOWI2Li5kYjgzMWI3NDVk
MGJiYmZiN2EwOWZhYmYxMDljODcxZjc3ZTM3YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
VGV4dHVyZUNvcGllckdTdHJlYW1lci5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVRleHR1cmVTcGFjZU1hdHJpeCgpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKTsKICAgICBHTHVpbnQgcmVzdWx0VGV4dHVyZSgpIHsgcmV0dXJuIG1fcmVz
dWx0VGV4dHVyZTsgfQorICAgIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQsIHVp
bnQzMl90IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRlKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IG1fc2hhZGVyUHJvZ3JhbTsKQEAgLTY3LDYgKzY4
LDEyIEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90ZXh0dXJlU3BhY2VN
YXRyaXg7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9jb2xvckNvbnZlcnNpb25NYXRyaXg7
CiAgICAgR0x1aW50IG1fcmVzdWx0VGV4dHVyZSB7IDAgfTsKKworICAgIHN0cnVjdCB7CisgICAg
ICAgIGludCBmZCB7IC0xIH07CisgICAgICAgIHVpbnQzMl90IGZvcm1hdDsKKyAgICAgICAgdWlu
dDMyX3Qgc3RyaWRlOworICAgIH0gbV9wZW5kaW5nRG1hYnVmOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
LmNwcAppbmRleCAwZGE5NTAxODMzNzhlMzI1NWNiOGRkYmI5YmVmMWMxZGQ3OTU0ODE2Li4yNzQ2
NDI1NzhmY2Y4YzEzMTYyMGNkMTM5Y2IzY2IyODQyNTlmNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJl
TWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNTQsNiArNTQsOSBAQAogI2lm
IFVTRShOSUNPU0lBKQogI2lmIFVTRShBTkdMRSkKICNpbmNsdWRlICJOaWNvc2lhR0NHTEFOR0xF
TGF5ZXIuaCIKKyNpZiBVU0UoR1NUUkVBTUVSX0dMKQorI2luY2x1ZGUgIkdCTURldmljZS5oIgor
I2VuZGlmCiAjZWxzZQogI2luY2x1ZGUgIk5pY29zaWFHQ0dMTGF5ZXIuaCIKICNlbmRpZgpAQCAt
MTc0LDE3ICsxNzcsMjcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBHcmFwaGljc0NvbnRleHRHTFRl
eHR1cmVNYXBwZXI6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGkKIGJvb2wgR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYg
cGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xlbnVtIG91dHB1dFRh
cmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQog
ewogI2lmIFVTRShBTkdMRSkgJiYgVVNFKEdTVFJFQU1FUl9HTCkKLSAgICBVTlVTRURfUEFSQU0o
cGxheWVyKTsKLSAgICBVTlVTRURfUEFSQU0ob3V0cHV0VGV4dHVyZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKG91dHB1dFRhcmdldCk7Ci0gICAgVU5VU0VEX1BBUkFNKGxldmVsKTsKLSAgICBVTlVTRURf
UEFSQU0oaW50ZXJuYWxGb3JtYXQpOwotICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOwotICAgIFVO
VVNFRF9QQVJBTSh0eXBlKTsKLSAgICBVTlVTRURfUEFSQU0ocHJlbXVsdGlwbHlBbHBoYSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGZsaXBZKTsKLQotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY29weS1m
cmVlIChvciBhdCBsZWFzdCwgc29mdHdhcmUgY29weS1mcmVlKSB0ZXh0dXJlIHRyYW5zZmVyIHZp
YSBkbWFidWYuCisgICAgY29uc3QgYXV0byYgZ2JtRGV2aWNlID0gR0JNRGV2aWNlOjpnZXQoKTsK
KyAgICBpZiAoIWdibURldmljZS5kZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgRUdMSW1hZ2VCYWNraW5nIHNoYXJlZEltYWdlKHBsYXRmb3JtRGlzcGxheSgpKTsKKyAgICBh
dXRvIHNpemUgPSBJbnRTaXplKHBsYXllci5uYXR1cmFsU2l6ZSgpKTsKKyAgICBzaGFyZWRJbWFn
ZS5yZXNldChzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGZvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQSk7CisKKyAgICByZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJl
YWRSZXNvdXJjZUJlaGF2aW9yOjpSZWxlYXNlQ3VycmVudENvbnRleHQpOworCisgICAgcGxheWVy
LnNldFBlbmRpbmdEbWFidWZUYXJnZXQoc2hhcmVkSW1hZ2UuZmQoKSwgc2hhcmVkSW1hZ2UuZm9y
bWF0KCksIHNoYXJlZEltYWdlLnN0cmlkZSgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IHBsYXllci5j
b3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodGhpcywgMCwgb3V0cHV0VGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxp
cFkpOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBpZiAocmVzdWx0KSB7Cisg
ICAgICAgIEdMX0JpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CisgICAg
ICAgIEdMX0VHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKG91dHB1dFRhcmdldCwgc2hhcmVkSW1h
Z2UuaW1hZ2UoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHJldHVybiBm
YWxzZTsKICNlbHNlCiAgICAgcmV0dXJuIHBsYXllci5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9y
bVRleHR1cmUodGhpcywgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwo=
</data>
<flag name="commit-queue"
          id="480164"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452955</attachid>
            <date>2022-02-23 02:37:27 -0800</date>
            <delta_ts>2022-02-23 02:37:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236635-20220223103725.patch</filename>
            <type>text/plain</type>
            <size>14177</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM3ZWI4YTRhYTc2YmVk
NmNmMWI2MTRkMzk1MDg5ZTkzOWY1NjRlZi4uMmZjODMyYzU1MmJlOWNkZDY3YTBlZmNmN2NiN2U0
MzM2ZDAwODg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTIyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEltcGxlbWVu
dCBkbWFidWYgcGF0aCBmb3IgR1N0cmVhbWVyIHRleHR1cmUgc2hhcmluZyB3aXRoIFdlYkdML0FO
R0xFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBEb24gT2xtc3RlYWQuCisKKyAgICAgICAgQXVnbWVu
dCB0aGUgR1BVLUdQVSB2aWRlbyB0ZXh0dXJlIGNvcHkgcGF0aCB3aXRoIHRoZSBhYmlsaXR5IHRv
IHVzZQorICAgICAgICBkbWFidWYgdG8gc2hhcmUgdGV4dHVyZXMgYmV0d2VlbiBBTkdMRSBhbmQg
bm9uLUFOR0xFIEdMIGNvbnRleHRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQZW5kaW5nRG1hYnVm
VGFyZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQZW5kaW5nRG1hYnVmVGFy
Z2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpz
ZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXI6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKwogMjAyMi0wMi0yMiAgTWFy
Y29zIENhY2VyZXMgIDxtYXJjb3NAbWFyY29zYy5jb20+CiAKICAgICAgICAgUGVybWlzc2lvbiBB
UEk6IGhhbmRsZSBub24tZnVsbHkgYWN0aXZlIGRvY3VtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZjFjZWRiOWM3NWJjZjk3NzdjMGZjODlmNTY4OTdlMjNjOGEyN2JkMC4uNTUwMTA5NGFjZDI1
OWQwZTlmZTA3NjhlMjU4NDc4ZjEwYTQxZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNjQw
LDYgKzE2NDAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9nYm0vR0JNRGV2aWNlLmgKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09PcmlnaW5hbEZvcm1hdEJveC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TY2hlbWVJbmZvQm94LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBmZGE1
YWQxZDkwNzBjY2Y0YzYwOGVkYWIxMmFmOTBiOTZlODZmNDI3Li5kZjgyNjk5MjI5MjY0NzhjOTky
YTUxZTYxMDg3MDAwNWIxYjQ5OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDg2LDYgKzEwODYsMTMgQEAgYm9vbCBNZWRp
YVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4
dEdMKiBjb250ZXh0LAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShjb250ZXh0LCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKKyNpZiBV
U0UoR1NUUkVBTUVSX0dMKSAmJiBVU0UoQU5HTEUpCit2b2lkIE1lZGlhUGxheWVyOjpzZXRQZW5k
aW5nRG1hYnVmVGFyZ2V0KGludCBmZCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCBzdHJpZGUp
Cit7CisgICAgbV9wcml2YXRlLT5zZXRQZW5kaW5nRG1hYnVmVGFyZ2V0KGZkLCBmb3JtYXQsIHN0
cmlkZSk7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKIFJlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBs
YXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGExN2U1ZWU2ZDdkNTA3ZGY1YWE4MGU3
NmE5ZmZiNTM1MTM1YzcwZTcuLjA0NDY0YjFlNmMzYjc0ODM0ODRmOWY3NjRjM2ZjMjNmZDcxZmU0
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtNDcwLDYgKzQ3MCw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgY3VycmVudCByZXN0cmlj
dGlvbnMgcmVxdWlyZSB0aGF0IGZvcm1hdCBzaG91ZCBiZSBSR0Igb3IgUkdCQSwgdHlwZSBzaG91
bGQgYmUgVU5TSUdORURfQllURSBhbmQgbGV2ZWwgc2hvdWxkIGJlIDAuIEl0IG1heSBiZSBsaWZ0
ZWQgaW4gdGhlIGZ1dHVyZS4KICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3Jt
R0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHBy
ZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOworI2lmIFVTRShHU1RSRUFNRVJfR0wpICYmIFVT
RShBTkdMRSkKKyAgICB2b2lkIHNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJf
dCBmb3JtYXQsIHVpbnQzMl90IHN0cmlkZSk7CisjZW5kaWYKICNlbmRpZgogICAgIFJlZlB0cjxW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggODA5YmUx
NjUzMzIyNzIwNzY0ZmEwODE2YzgzODhkYzMyYjU4MWQ2YS4uNjNkNDFlYzc3YTA0NzU0YjhkNGYy
MTI4NjdlZjI3Njk2MDQ5MzM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9CiAjaWYgIVVT
RShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVt
LCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJl
dHVybiBmYWxzZTsgfQorI2lmIFVTRShHU1RSRUFNRVJfR0wpICYmIFVTRShBTkdMRSkKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQsIHVpbnQzMl90LCB1aW50MzJf
dCkgeyB9OworI2VuZGlmCiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlZlB0cjxWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSB7IHJldHVy
biBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IGRmNDJjZDAwNDI1ZTYyOTZkZDM3MTRmMDMzZGU0Nzc4Mjk5Y2ZiY2EuLjhi
M2NiYTY4YjI5YThiZDIwOWRiMWY3ZmIyN2QyYzgyMTJiY2EwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMzY4LDYgKzMzNjgsMTYg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnQKICAgICByZXR1cm4gbV92aWRlb1RleHR1cmVDb3Bp
ZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5ZXJCdWZmZXIuZ2V0KCks
IHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24sIHByZW11bHRp
cGx5QWxwaGEpOwogfQogCisjaWYgVVNFKEFOR0xFKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnNldFBlbmRpbmdEbWFidWZUYXJnZXQoaW50IGZkLCB1aW50MzJfdCBmb3JtYXQs
IHVpbnQzMl90IHN0cmlkZSkKK3sKKyAgICBpZiAoIW1fdmlkZW9UZXh0dXJlQ29waWVyKQorICAg
ICAgICBtX3ZpZGVvVGV4dHVyZUNvcGllciA9IG1ha2VVbmlxdWU8VmlkZW9UZXh0dXJlQ29waWVy
R1N0cmVhbWVyPihURVhUVVJFX0NPUElFUl9DT0xPUl9DT05WRVJUX0ZMQUcpOworCisgICAgbV92
aWRlb1RleHR1cmVDb3BpZXItPnNldFBlbmRpbmdEbWFidWZUYXJnZXQoZmQsIGZvcm1hdCwgc3Ry
aWRlKTsKK30KKyNlbmRpZgorCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggZTM4MDc1YjJmYzI2ZDk0M2JmOWEwMDY1NDMzYzdiYmFhZTVlMDYyMy4uMGIwOWNhMzE4ZDJh
N2Y1MGU4YTQzZWMyOTExN2EzN2RiMTJkN2JhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMjEwLDYgKzIxMCw5IEBAIHB1YmxpYzoKIAogI2lm
IFVTRShHU1RSRUFNRVJfR0wpCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NH
TGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgb3ZlcnJpZGU7
CisjaWYgVVNFKEFOR0xFKQorICAgIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQs
IHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3Qgc3RyaWRlKSBvdmVycmlkZTsKKyNlbmRpZgogICAg
IFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIG92ZXJyaWRl
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1l
ci5jcHAKaW5kZXggYjMzMDY2Zjc5ZWE4ZmEwNDIzODY0ODg2YzU3NDgxM2ViYzBlYmUxMS4uZjU3
MGIzMjVjM2Q5ZWZjZmM1OTY2NDI5ZjE5ZmYyMzE2ZjU5MjhjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKQEAgLTI1LDggKzI1LDE2IEBACiAK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHTENvbnRleHQuaCIKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAKKyNpZiBV
U0UoTElCRVBPWFkpCisjaW5jbHVkZSAiRXBveHlFR0wuaCIKKyNlbHNlCisjaW5jbHVkZSA8RUdM
L2VnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6VmlkZW9UZXh0dXJlQ29waWVy
R1N0cmVhbWVyKENvbG9yQ29udmVyc2lvbiBjb2xvckNvbnZlcnNpb24pCkBAIC0xMzUsNiArMTQz
LDEzIEBAIHZvaWQgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjp1cGRhdGVUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpCiAgICAgICAgIC0xLCAxLCAtKGZhclZhbHVlICsgbmVhclZhbHVlKSAvIChm
YXJWYWx1ZSAtIG5lYXJWYWx1ZSksIDEpOwogfQogCit2b2lkIFZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lcjo6c2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQsIHVpbnQzMl90IGZvcm1hdCwg
dWludDMyX3Qgc3RyaWRlKQoreworICAgIG1fcGVuZGluZ0RtYWJ1Zi5mZCA9IGZkOworICAgIG1f
cGVuZGluZ0RtYWJ1Zi5mb3JtYXQgPSBmb3JtYXQ7CisgICAgbV9wZW5kaW5nRG1hYnVmLnN0cmlk
ZSA9IHN0cmlkZTsKK30KKwogYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1
ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWludCBvdXRwdXRUZXh0
dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwgSW1hZ2VPcmllbnRh
dGlvbiBzb3VyY2VPcmllbnRhdGlvbiwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIGlm
ICghbV9mcmFtZWJ1ZmZlciB8fCAhbV92Ym8gfHwgZnJhbWVTaXplLmlzRW1wdHkoKSkKQEAgLTIx
NSw5ICsyMzAsMjggQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRl
b1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICAvLyBTZXQgcHJvcGVy
IHBhcmFtZXRlcnMgdG8gdGhlIG91dHB1dCB0ZXh0dXJlIGFuZCBhbGxvY2F0ZSB1bmluaXRpYWxp
emVkIG1lbW9yeSBmb3IgaXQuCiAgICAgZ2xCaW5kVGV4dHVyZShvdXRwdXRUYXJnZXQsIG91dHB1
dFRleHR1cmUpOwogICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVf
MkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKICAgICBnbFRleFBhcmFtZXRl
cmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwog
ICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7Ci0gICAgZ2xUZXhJbWFnZTJEKG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpLCAwLCBmb3JtYXQs
IHR5cGUsIG51bGxwdHIpOworICAgIEVHTEltYWdlIGltYWdlID0gRUdMX05PX0lNQUdFOworICAg
IGlmIChtX3BlbmRpbmdEbWFidWYuZmQgPj0gMCkgeworICAgICAgICBBU1NFUlQoR0xDb250ZXh0
OjpjdXJyZW50KCktPmlzRUdMQ29udGV4dCgpKTsKKyAgICAgICAgVmVjdG9yPEVHTEF0dHJpYj4g
aW1hZ2VBdHRyaWJ1dGVzIHsKKyAgICAgICAgICAgIEVHTF9XSURUSCwgbV9zaXplLndpZHRoKCks
CisgICAgICAgICAgICBFR0xfSEVJR0hULCBtX3NpemUuaGVpZ2h0KCksCisgICAgICAgICAgICBF
R0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTEF0dHJpYj4obV9wZW5kaW5n
RG1hYnVmLmZvcm1hdCksCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBt
X3BlbmRpbmdEbWFidWYuZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfUElUQ0hf
RVhULCBzdGF0aWNfY2FzdDxFR0xBdHRyaWI+KG1fcGVuZGluZ0RtYWJ1Zi5zdHJpZGUpLAorICAg
ICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX09GRlNFVF9FWFQsIDAsCisgICAgICAgICAgICBF
R0xfTk9ORQorICAgICAgICB9OworICAgICAgICBpbWFnZSA9IGRvd25jYXN0PEdMQ29udGV4dEVH
TD4oKkdMQ29udGV4dDo6Y3VycmVudCgpKS5jcmVhdGVJbWFnZShFR0xfTElOVVhfRE1BX0JVRl9F
WFQsIChFR0xDbGllbnRCdWZmZXIpbnVsbHB0ciwgaW1hZ2VBdHRyaWJ1dGVzKTsKKyAgICAgICAg
bV9wZW5kaW5nRG1hYnVmLmZkID0gLTE7CisgICAgfQorICAgIGlmIChpbWFnZSkKKyAgICAgICAg
Z2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyhvdXRwdXRUYXJnZXQsIGltYWdlKTsKKyAgICBl
bHNlCisgICAgICAgIGdsVGV4SW1hZ2UyRChvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCBu
dWxscHRyKTsKIAogICAgIC8vIEJpbmQgZnJhbWVidWZmZXIgdG8gcGFpbnQgYW5kIGF0dGFjaCB0
aGUgZGVzdGluYXRpb24gdGV4dHVyZSB0byBpdC4KICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlcik7CkBAIC0zMDMsNiArMzM3LDkgQEAgYm9vbCBWaWRl
b1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZShUZXh0dXJlTWFwcGUKICAgICBnbEJpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgYm91bmRUZXh0
dXJlKTsKICAgICBnbFZpZXdwb3J0KHByZXZpb3VzVmlld3BvcnRbMF0sIHByZXZpb3VzVmlld3Bv
cnRbMV0sIHByZXZpb3VzVmlld3BvcnRbMl0sIHByZXZpb3VzVmlld3BvcnRbM10pOwogCisgICAg
aWYgKGltYWdlKQorICAgICAgICBkb3duY2FzdDxHTENvbnRleHRFR0w+KCpHTENvbnRleHQ6OmN1
cnJlbnQoKSkuZGVzdHJveUltYWdlKGltYWdlKTsKKwogICAgIGJvb2wgb2sgPSAoZ2xHZXRFcnJv
cigpID09IEdMX05PX0VSUk9SKTsKIAogICAgIC8vIFJlc3RvcmUgcHJldmlvdXMgY29udGV4dC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaAppbmRleCA2MmQx
NmUxY2JlOWQyZWFhZGIzN2E3MjExZmFlOWE5YmFkNjlkOWI2Li5kYjgzMWI3NDVkMGJiYmZiN2Ew
OWZhYmYxMDljODcxZjc3ZTM3YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lci5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVRleHR1cmVTcGFjZU1hdHJpeCgpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtYXRpb25NYXRy
aXgoKTsKICAgICBHTHVpbnQgcmVzdWx0VGV4dHVyZSgpIHsgcmV0dXJuIG1fcmVzdWx0VGV4dHVy
ZTsgfQorICAgIHZvaWQgc2V0UGVuZGluZ0RtYWJ1ZlRhcmdldChpbnQgZmQsIHVpbnQzMl90IGZv
cm1hdCwgdWludDMyX3Qgc3RyaWRlKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IG1fc2hhZGVyUHJvZ3JhbTsKQEAgLTY3LDYgKzY4LDEyIEBAIHBy
aXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90ZXh0dXJlU3BhY2VNYXRyaXg7CiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9jb2xvckNvbnZlcnNpb25NYXRyaXg7CiAgICAgR0x1
aW50IG1fcmVzdWx0VGV4dHVyZSB7IDAgfTsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGludCBm
ZCB7IC0xIH07CisgICAgICAgIHVpbnQzMl90IGZvcm1hdDsKKyAgICAgICAgdWludDMyX3Qgc3Ry
aWRlOworICAgIH0gbV9wZW5kaW5nRG1hYnVmOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRl
eCAwZGE5NTAxODMzNzhlMzI1NWNiOGRkYmI5YmVmMWMxZGQ3OTU0ODE2Li4yNzQ2NDI1NzhmY2Y4
YzEzMTYyMGNkMTM5Y2IzY2IyODQyNTlmNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNTQsNiArNTQsOSBAQAogI2lmIFVTRShOSUNP
U0lBKQogI2lmIFVTRShBTkdMRSkKICNpbmNsdWRlICJOaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaCIK
KyNpZiBVU0UoR1NUUkVBTUVSX0dMKQorI2luY2x1ZGUgIkdCTURldmljZS5oIgorI2VuZGlmCiAj
ZWxzZQogI2luY2x1ZGUgIk5pY29zaWFHQ0dMTGF5ZXIuaCIKICNlbmRpZgpAQCAtMTc0LDE3ICsx
NzcsMjcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBHcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBw
ZXI6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGkKIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xU
ZXh0dXJlTWFwcGVyOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xlbnVtIG91dHB1dFRhcmdldCwgR0NH
TGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NH
TGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQogewogI2lmIFVT
RShBTkdMRSkgJiYgVVNFKEdTVFJFQU1FUl9HTCkKLSAgICBVTlVTRURfUEFSQU0ocGxheWVyKTsK
LSAgICBVTlVTRURfUEFSQU0ob3V0cHV0VGV4dHVyZSk7Ci0gICAgVU5VU0VEX1BBUkFNKG91dHB1
dFRhcmdldCk7Ci0gICAgVU5VU0VEX1BBUkFNKGxldmVsKTsKLSAgICBVTlVTRURfUEFSQU0oaW50
ZXJuYWxGb3JtYXQpOwotICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOwotICAgIFVOVVNFRF9QQVJB
TSh0eXBlKTsKLSAgICBVTlVTRURfUEFSQU0ocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGZsaXBZKTsKLQotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY29weS1mcmVlIChvciBh
dCBsZWFzdCwgc29mdHdhcmUgY29weS1mcmVlKSB0ZXh0dXJlIHRyYW5zZmVyIHZpYSBkbWFidWYu
CisgICAgY29uc3QgYXV0byYgZ2JtRGV2aWNlID0gR0JNRGV2aWNlOjpnZXQoKTsKKyAgICBpZiAo
IWdibURldmljZS5kZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRUdMSW1h
Z2VCYWNraW5nIHNoYXJlZEltYWdlKHBsYXRmb3JtRGlzcGxheSgpKTsKKyAgICBhdXRvIHNpemUg
PSBJbnRTaXplKHBsYXllci5uYXR1cmFsU2l6ZSgpKTsKKyAgICBzaGFyZWRJbWFnZS5yZXNldChz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
UkdCQSk7CisKKyAgICByZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVhc2VUaHJlYWRSZXNvdXJj
ZUJlaGF2aW9yOjpSZWxlYXNlQ3VycmVudENvbnRleHQpOworCisgICAgcGxheWVyLnNldFBlbmRp
bmdEbWFidWZUYXJnZXQoc2hhcmVkSW1hZ2UuZmQoKSwgc2hhcmVkSW1hZ2UuZm9ybWF0KCksIHNo
YXJlZEltYWdlLnN0cmlkZSgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IHBsYXllci5jb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUodGhpcywgMCwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOworCisg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIEdM
X0JpbmRUZXh0dXJlKG91dHB1dFRhcmdldCwgb3V0cHV0VGV4dHVyZSk7CisgICAgICAgIEdMX0VH
TEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKG91dHB1dFRhcmdldCwgc2hhcmVkSW1hZ2UuaW1hZ2Uo
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKICNl
bHNlCiAgICAgcmV0dXJuIHBsYXllci5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUo
dGhpcywgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQs
IGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>