<?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>226507</bug_id>
          
          <creation_ts>2021-06-01 12:50:39 -0700</creation_ts>
          <short_desc>[macOS] Data detector highlights should appear when hovering inside image overlays</short_desc>
          <delta_ts>2021-06-01 15:38:18 -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>Platform</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765707</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-01 12:50:39 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765734</commentid>
    <comment_count>1</comment_count>
      <attachid>430287</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-01 13:30:30 -0700</bug_when>
    <thetext>Created attachment 430287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765742</commentid>
    <comment_count>2</comment_count>
      <attachid>430287</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-01 13:59:05 -0700</bug_when>
    <thetext>Comment on attachment 430287
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        allow the ImageOverlayController install its page overlay when the element under the mouse is inside an image

&quot;allow the ImageOverlayController install&quot; grammar-o</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765746</commentid>
    <comment_count>3</comment_count>
      <attachid>430287</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-01 14:00:22 -0700</bug_when>
    <thetext>Comment on attachment 430287
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        allow the ImageOverlayController install its page overlay when the element under the mouse is inside an image
&gt; 
&gt; &quot;allow the ImageOverlayController install&quot; grammar-o

(Whoops.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765749</commentid>
    <comment_count>4</comment_count>
      <attachid>430289</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-01 14:02:46 -0700</bug_when>
    <thetext>Created attachment 430289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765800</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-01 15:37:04 -0700</bug_when>
    <thetext>Committed r278331 (238364@main): &lt;https://commits.webkit.org/238364@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430289.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765802</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-01 15:38:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78735990&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430287</attachid>
            <date>2021-06-01 13:30:30 -0700</date>
            <delta_ts>2021-06-01 14:02:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226507-20210601133029.patch</filename>
            <type>text/plain</type>
            <size>18224</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJkMzJkNjNiYzM0OTk2
NTU3Njk1NjgxMTcxZDkwN2NmNjZiMjA3ZS4uNzE4OGY3YjY4ZmU4NTBjOWMxZmUzMDkyZDI2M2Y4
ZDI2NDk4MjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTA2LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gRGF0
YSBkZXRlY3RvciBoaWdobGlnaHRzIHNob3VsZCBhcHBlYXIgd2hlbiBob3ZlcmluZyBpbnNpZGUg
aW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjUwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yIHNvbWUgbG9naWMgaW4gSW1hZ2VPdmVybGF5Q29udHJvbGxlciwgc3Vj
aCB0aGF0IHRoZSBvdmVybGF5IGlzIGluc3RhbGxlZCBpZiBfZWl0aGVyXyBzZWxlY3Rpb24gcGFp
bnRpbmcKKyAgICAgICAgaXMgcmVxdWlyZWQsIG9yIGRhdGEgZGV0ZWN0b3IgaGlnaGxpZ2h0cyBm
b3IgdGhlIGltYWdlIG92ZXJsYXkgaG9zdCBlbGVtZW50IGV4aXN0OyBhZGRpdGlvbmFsbHksIGFk
ZCBwbHVtYmluZyB0bworICAgICAgICBhbGxvdyB0aGUgSW1hZ2VPdmVybGF5Q29udHJvbGxlciBp
bnN0YWxsIGl0cyBwYWdlIG92ZXJsYXkgd2hlbiB0aGUgZWxlbWVudCB1bmRlciB0aGUgbW91c2Ug
aXMgaW5zaWRlIGFuIGltYWdlCisgICAgICAgIG92ZXJsYXkuCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndpbGxCZVJlbW92ZWRGcm9t
RnJhbWUpOgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogdXNlIGBpbWFnZU92ZXJsYXlDb250cm9s
bGVySWZFeGlzdHNgIGluc3RlYWQgb2YgYGltYWdlT3ZlcmxheUNvbnRyb2xsZXJgIHRvIGF2b2lk
IHVubmVjZXNzYXJpbHkKKyAgICAgICAgY3JlYXRpbmcgYSBuZXcgSW1hZ2VPdmVybGF5Q29udHJv
bGxlciB3aGVuIGRldGFjaGluZyBhIERvY3VtZW50LgorCisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6CisKKyAg
ICAgICAgUmVmYWN0b3IgbG9naWMgZm9yIGNsZWFyaW5nIG91dCBgbV9lbGVtZW50VW5kZXJNb3Vz
ZWAgaW50byBhIHNlcGFyYXRlIGhlbHBlciwgYW5kIGNhbGwgaXQgZnJvbSB0aGVzZSB0d28gcGxh
Y2VzLgorICAgICAgICBUaGlzIG5ldyBoZWxwZXIgY2xlYXJzIG91dCBgbV9lbGVtZW50VW5kZXJN
b3VzZWAgYW5kIGFkZGl0aW9uYWxseSBub3RpZmllcyB0aGUgcGFnZSdzIGltYWdlIG92ZXJsYXkg
Y29udHJvbGxlcgorICAgICAgICAob25seSBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGNvbnN0cnVj
dGVkKS4KKworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50
VGFyZ2V0Tm9kZSk6CisKKyAgICAgICAgQ2FsbCBvdXQgdG8gdGhlIHBhZ2UncyBpbWFnZSBvdmVy
bGF5IGNvbnRyb2xsZXIgd2hlbiBjaGFuZ2luZyBgbV9lbGVtZW50VW5kZXJNb3VzZWAuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXJFbGVtZW50VW5kZXJNb3VzZSk6Cisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ltYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxl
cjo6c2VsZWN0aW9uUXVhZHNEaWRDaGFuZ2UpOgorCisgICAgICAgIFJlZmFjdG9yIEltYWdlT3Zl
cmxheUNvbnRyb2xsZXIgc28gdGhhdCBpdCBvbmx5IGluc3RhbGxzIGl0cyBwYWdlIG92ZXJsYXkg
aWYgZWl0aGVyOgorICAgICAgICAxLiBTZWxlY3Rpb24gcGFpbnRpbmcgaXMgbmVlZGVkIGZvciBz
ZWxlY3RlZCB0ZXh0IGluc2lkZSBhbiBpbWFnZSBvdmVybGF5LCBvci4uLgorICAgICAgICAyLiBU
aGUgY3Vyc29yIGlzIG92ZXIgYW4gaW1hZ2Ugb3ZlcmxheSBob3N0IGVsZW1lbnQgd2l0aCBkYXRh
IGRldGVjdGlvbiByZXN1bHRzLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgd2UgbWFpbnRh
aW4gYSB3ZWFrIHBvaW50ZXIgdG8gdGhlIGltYWdlIG92ZXJsYXkgaG9zdCB0aGF0IGNvbnRhaW5z
IHRoZSBzZWxlY3Rpb24gc2VwYXJhdGVseQorICAgICAgICBmcm9tIHRoZSB3ZWFrIHBvaW50ZXIg
dG8gdGhlIGltYWdlIG92ZXJsYXkgaG9zdCB0aGF0IGNvbnRhaW5zIGRhdGEgZGV0ZWN0b3JzLCBh
bmQgaXMgdGhlIGVsZW1lbnQgY3VycmVudGx5IHVuZGVyCisgICAgICAgIHRoZSBtb3VzZSBjdXJz
b3IuCisKKyAgICAgICAgRHJpdmUtYnkgZml4OiBhbHNvIGlnbm9yZSBzZWxlY3Rpb24gdXBkYXRl
cyBkdWUgdG8gdGVtcG9yYXJ5IHNlbGVjdGlvbnMgdHJpZ2dlcmVkIGFzIGEgcmVzdWx0IG9mIGdh
dGhlcmluZworICAgICAgICBkaWN0aW9uYXJ5IHBvcHVwIGluZm8uCisKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRvY3VtZW50RGV0YWNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92
ZXJsYXlJZk5lZWRlZCk6CisKKyAgICAgICAgU3BsaXQgdGhpcyBpbnRvIHR3byBmdW5jdGlvbnM6
IGB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkYCwgd2hpY2ggcmVtb3ZlcyBhbmQgZGVzdHJv
eXMgdGhlIFBhZ2VPdmVybGF5IGlmCisgICAgICAgIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQgKGku
ZS4gdGhlIG92ZXJsYXkgaXMgcmVxdWlyZWQgZm9yIG5laXRoZXIgc2VsZWN0aW9uIHBhaW50aW5n
IG5vciBkYXRhIGRldGVjdG9ycykuCisKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OndpbGxNb3ZlVG9QYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3Zlcmxh
eUNvbnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKworICAgICAgICBSZW5hbWUgYG1faW1hZ2VPdmVybGF5
Qm91bmRzYCB0byBgbV9zZWxlY3Rpb25DbGlwUmVjdGAgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRo
aXMgaXMgb25seSB1c2VkIGR1cmluZyBzZWxlY3Rpb24KKyAgICAgICAgcGFpbnRpbmcsIGFuZCBy
ZW5hbWUgYG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzYCB0byBqdXN0IGBtX3NlbGVjdGlvblF1YWRz
YCBmb3IgY29uY2lzZW5lc3MuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmltYWdlT3ZlcmxheUNvbnRyb2xsZXJJZkV4aXN0cyk6CisKKyAgICAgICAg
QWRkIGEgdmVyc2lvbiBvZiB0aGlzIGdldHRlciB0aGF0IGRvZXMgbm90IGluaXRpYWxpemUgdGhl
IEltYWdlT3ZlcmxheUNvbnRyb2xsZXIgaWYgaXQgZGlkbid0IGFscmVhZHkgZXhpc3QuIFNlZQor
ICAgICAgICBjYWxsIHNpdGVzIGluIEV2ZW50SGFuZGxlciBhbmQgRG9jdW1lbnQuCisKKyAgICAg
ICAgKiBwYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6Y2xlYXJEYXRhRGV0ZWN0b3JIaWdobGlnaHRz
KToKKworICAgICAgICBBZGRpdGlvbmFsbHkgY2xlYXIgb3V0IGBtX2hvc3RFbGVtZW50Rm9yRGF0
YURldGVjdG9yc2AuCisKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6
OmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKToKKworICAgICAgICBVcGRhdGUgZGF0YSBkZXRl
Y3RvciBoaWdobGlnaHRzIHdoZW5ldmVyIHRoZSBlbGVtZW50IHVuZGVyIHRoZSBtb3VzZSBpcyBv
dmVyIGNvbnRlbnQgaW5zaWRlIGFuIGltYWdlIG92ZXJsYXkuCisgICAgICAgIE5vdGUgdGhhdCB3
ZSBlZmZlY3RpdmVseSBpZ25vcmUgdGhpcyBtZXRob2QgY2FsbCBpbiB0aGUgY2FzZSB3aGVyZSB3
ZSdyZSBjbGVhcmluZyBvdXQgYG1fZWxlbWVudFVuZGVyTW91c2VgIGZvcgorICAgICAgICBhIGRp
ZmZlcmVudCBEb2N1bWVudCB0aGFuIHRoZSBvbmUgY29udGFpbmluZyBgbV9ob3N0RWxlbWVudEZv
ckRhdGFEZXRlY3RvcnNgLCB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIGVycm9uZW91c2x5CisgICAg
ICAgIGhpZGluZyBkYXRhIGRldGVjdG9ycyB3aGVuIGBtX2VsZW1lbnRVbmRlck1vdXNlYCBpcyBy
ZW1vdmVkIG9yIG90aGVyd2lzZSBjbGVhcmVkIG91dCBpbiBhIGRpZmZlcmVudCBEb2N1bWVudC4K
KwogMjAyMS0wNC0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBFbmFibGUgPHN1bW1hcnk+IHRvIGJlIGEgZmxleCBjb250YWluZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDc0MDE0ZDMyMDM0NGNjMWI4OTljZmRiY2NlMTBhZjYwYmQy
ZWRlMDUuLmFlOTcyY2U1NzMyODVhZTlkZjk2MjI4ZTE3OGJkYTc1ZGM1MzhjYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMjYyMSw3ICsyNjIxLDggQEAgdm9pZCBEb2N1bWVudDo6d2ls
bEJlUmVtb3ZlZEZyb21GcmFtZSgpCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
cGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZG9jdW1lbnREZXRhY2hlZCgqdGhpcyk7CiAj
ZW5kaWYKLSAgICAgICAgcGFnZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLmRvY3VtZW50RGV0
YWNoZWQoKnRoaXMpOworICAgICAgICBpZiAoYXV0byogaW1hZ2VPdmVybGF5Q29udHJvbGxlciA9
IHBhZ2UtPmltYWdlT3ZlcmxheUNvbnRyb2xsZXJJZkV4aXN0cygpKQorICAgICAgICAgICAgaW1h
Z2VPdmVybGF5Q29udHJvbGxlci0+ZG9jdW1lbnREZXRhY2hlZCgqdGhpcyk7CiAgICAgICAgIGlm
IChhdXRvKiB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCA9IHBhZ2UtPnZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50KCkpCiAgICAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudC0+ZG9jdW1lbnRE
ZXRhY2hlZCgqdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDk0N2M3ZTY5MzAwNGRhZmRlYmMxZjRiYTZjOTMzZTUzYzRiOTM0NjkuLjYzNTY4MjViMmU2
NzhjMDM0ZjZlMGY4MDg5YjIyMDBhODM5MjZmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgog
I2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUg
IkltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgpAQCAtMzcwLDcgKzM3MSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9p
bWFnZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CiAjZW5kaWYKICAgICBtX3Jlc2l6ZUxheWVyID0g
bnVsbHB0cjsKLSAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0gbnVsbHB0cjsKKyAgICBjbGVhckVs
ZW1lbnRVbmRlck1vdXNlKCk7CiAgICAgbV9sYXN0RWxlbWVudFVuZGVyTW91c2UgPSBudWxscHRy
OwogICAgIG1fbGFzdE1vdXNlTW92ZUV2ZW50U3ViZnJhbWUgPSBudWxscHRyOwogICAgIG1fbGFz
dFNjcm9sbGJhclVuZGVyTW91c2UgPSBudWxscHRyOwpAQCAtMjU0Nyw2ICsyNTQ4LDkgQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50VHlwZSwgTm9kZSoKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChhdXRvKiBwYWdl
ID0gbV9mcmFtZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmltYWdlT3ZlcmxheUNvbnRyb2xsZXIo
KS5lbGVtZW50VW5kZXJNb3VzZURpZENoYW5nZShtX2ZyYW1lLCBtX2VsZW1lbnRVbmRlck1vdXNl
LmdldCgpKTsKKwogICAgIEFTU0VSVF9JTVBMSUVTKG1fZWxlbWVudFVuZGVyTW91c2UsICZtX2Vs
ZW1lbnRVbmRlck1vdXNlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAg
QVNTRVJUX0lNUExJRVMobV9sYXN0RWxlbWVudFVuZGVyTW91c2UsICZtX2xhc3RFbGVtZW50VW5k
ZXJNb3VzZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogCkBAIC0yNjA2LDEz
ICsyNjEwLDMxIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9k
ZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqCiAjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCiAgICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKICNl
bmRpZgotICAgICAgICAgICAgbV9lbGVtZW50VW5kZXJNb3VzZSA9IG51bGxwdHI7CisgICAgICAg
ICAgICBjbGVhckVsZW1lbnRVbmRlck1vdXNlKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2xh
c3RFbGVtZW50VW5kZXJNb3VzZSA9IG1fZWxlbWVudFVuZGVyTW91c2U7CiAgICAgfQogfQogCit2
b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJFbGVtZW50VW5kZXJNb3VzZSgpCit7CisgICAgaWYgKCFt
X2VsZW1lbnRVbmRlck1vdXNlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VsZW1lbnRVbmRl
ck1vdXNlID0gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGltYWdlT3ZlcmxheUNv
bnRyb2xsZXIgPSBwYWdlLT5pbWFnZU92ZXJsYXlDb250cm9sbGVySWZFeGlzdHMoKTsKKyAgICBp
ZiAoIWltYWdlT3ZlcmxheUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGltYWdl
T3ZlcmxheUNvbnRyb2xsZXItPmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKG1fZnJhbWUsIG51
bGxwdHIpOworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6bm90aWZ5U2Nyb2xsYWJsZUFyZWFzT2ZN
b3VzZUV2ZW50cyhjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQqIGxhc3RFbGVt
ZW50VW5kZXJNb3VzZSwgRWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UpCiB7CiAgICAgYXV0byog
ZnJhbWVWaWV3ID0gbV9mcmFtZS52aWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApp
bmRleCBlOTY2MTM4YTFkZGY1ODg5YzZhMjVhNjg2YzZlOGE3YWFkNTBlODIyLi5kNDI2YTBjMmVm
OTRlYmI0YTU4ZDY2ZmY1MjdkNmViNTJkMzY2OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKQEAgLTUxOSw2ICs1MTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGNs
ZWFyTGF0Y2hlZFN0YXRlKCk7CisgICAgdm9pZCBjbGVhckVsZW1lbnRVbmRlck1vdXNlKCk7CiAK
ICAgICBib29sIHNob3VsZFNlbmRNb3VzZUV2ZW50c1RvSW5hY3RpdmVXaW5kb3dzKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGJjYjNiYjNhNTBlN2VhNWEzN2U5MTFiZWFiNjQxMWUwMjQ5NDZmNzQuLjc1NDBkZjEwYTY2
YTM0OWZiYTk0NzcyZGNhYTM2NzM3NzgxYWI1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtNTgsOSArNTgsMTQgQEAgdm9pZCBJbWFn
ZU92ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYgZnJhbWUs
IGNvbnN0IFZlY3RvcjwKICAgICBpZiAoIW1fcGFnZSB8fCAhbV9wYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5uZWVkc0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJGb3JTZWxlY3Rpb25QYWludGluZygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoZnJhbWUuZWRpdG9yKCkuaWdub3JlU2VsZWN0aW9u
Q2hhbmdlcygpKQorICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pZ25vcmVTZWxlY3Rpb25DaGFuZ2Vz
KCkgfHwgZnJhbWUuZWRpdG9yKCkuaXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5mbygpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBtX2hvc3RFbGVtZW50Rm9yU2VsZWN0aW9uID0gbnVsbHB0cjsK
KyAgICBtX3NlbGVjdGlvblF1YWRzLmNsZWFyKCk7CisgICAgbV9zZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICBtX3NlbGVjdGlvbkNsaXBSZWN0
ID0geyB9OworCiAgICAgYXV0byBvdmVybGF5SG9zdCA9IChbJl0gKCkgLT4gUmVmUHRyPEhUTUxF
bGVtZW50PiB7CiAgICAgICAgIGF1dG8gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLnJhbmdlKCk7CiAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkKQEAgLTg2
LDIyICs5MSwxNyBAQCB2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRz
RGlkQ2hhbmdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVmVjdG9yPAogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKHNob3VsZFVzZVBhZ2VPdmVybGF5VG9QYWludFNlbGVjdGlvbigqb3Zl
cmxheUhvc3RSZW5kZXJlcikpIHsKLSAgICAgICAgbV9vdmVybGF5U2VsZWN0aW9uUXVhZHMgPSBx
dWFkczsKLSAgICAgICAgbV9zZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBvdmVybGF5SG9zdFJl
bmRlcmVyLT5zZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5jbGVhcigpOwotICAgICAgICBtX3NlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIGlmICghc2hvdWxk
VXNlUGFnZU92ZXJsYXlUb1BhaW50U2VsZWN0aW9uKCpvdmVybGF5SG9zdFJlbmRlcmVyKSkgewor
ICAgICAgICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBtX2ltYWdlT3ZlcmxheUJvdW5kcyA9IG92ZXJsYXlIb3N0UmVuZGVyZXIt
PmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdXBk
YXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0cygqb3ZlcmxheUhvc3QpOwotI2VuZGlmCisgICAgbV9o
b3N0RWxlbWVudEZvclNlbGVjdGlvbiA9IG1ha2VXZWFrUHRyKCpvdmVybGF5SG9zdCk7CisgICAg
bV9zZWxlY3Rpb25RdWFkcyA9IHF1YWRzOworICAgIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
ID0gb3ZlcmxheUhvc3RSZW5kZXJlci0+c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CisgICAg
bV9zZWxlY3Rpb25DbGlwUmVjdCA9IG92ZXJsYXlIb3N0UmVuZGVyZXItPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCk7CiAKLSAgICBpZiAoYXV0byYgb3ZlcmxheSA9IGluc3RhbGxQYWdlT3Zlcmxh
eUlmTmVlZGVkKCk7ICFtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5pc0VtcHR5KCkpCi0gICAgICAg
IG92ZXJsYXkuc2V0TmVlZHNEaXNwbGF5KCk7CisgICAgaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVk
ZWQoKS5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVy
OjpzaG91bGRVc2VQYWdlT3ZlcmxheVRvUGFpbnRTZWxlY3Rpb24oY29uc3QgUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIpCkBAIC0xMTMsOCArMTEzLDE1IEBAIGJvb2wgSW1hZ2VPdmVybGF5Q29udHJv
bGxlcjo6c2hvdWxkVXNlUGFnZU92ZXJsYXlUb1BhaW50U2VsZWN0aW9uKGNvbnN0IFJlbmRlckVs
CiAKIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZG9jdW1lbnREZXRhY2hlZChjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgaWYgKCZkb2N1bWVudCA9PSBtX2N1cnJlbnRPdmVy
bGF5RG9jdW1lbnQpCi0gICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKKyAg
ICBpZiAobV9ob3N0RWxlbWVudEZvclNlbGVjdGlvbiAmJiAmZG9jdW1lbnQgPT0gJm1faG9zdEVs
ZW1lbnRGb3JTZWxlY3Rpb24tPmRvY3VtZW50KCkpCisgICAgICAgIG1faG9zdEVsZW1lbnRGb3JT
ZWxlY3Rpb24gPSBudWxscHRyOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX2hvc3RF
bGVtZW50Rm9yRGF0YURldGVjdG9ycyAmJiAmZG9jdW1lbnQgPT0gJm1faG9zdEVsZW1lbnRGb3JE
YXRhRGV0ZWN0b3JzLT5kb2N1bWVudCgpKQorICAgICAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURl
dGVjdG9ycyA9IG51bGxwdHI7CisjZW5kaWYKKworICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZO
ZWVkZWQoKTsKIH0KIAogUGFnZU92ZXJsYXkmIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3Rh
bGxQYWdlT3ZlcmxheUlmTmVlZGVkKCkKQEAgLTEyNywxMiArMTM0LDEyIEBAIFBhZ2VPdmVybGF5
JiBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCiAg
ICAgcmV0dXJuICptX292ZXJsYXk7CiB9CiAKLXZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
dW5pbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCit2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KCkKIHsKLSAgICBtX2ltYWdlT3ZlcmxheUJvdW5kcyA9
IHsgfTsKLSAgICBtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5jbGVhcigpOworICAgIG1faG9zdEVs
ZW1lbnRGb3JTZWxlY3Rpb24gPSBudWxscHRyOworICAgIG1fc2VsZWN0aW9uUXVhZHMuY2xlYXIo
KTsKICAgICBtX3NlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudEJs
YWNrOwotICAgIG1fY3VycmVudE92ZXJsYXlEb2N1bWVudCA9IG51bGxwdHI7CisgICAgbV9zZWxl
Y3Rpb25DbGlwUmVjdCA9IHsgfTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjbGVhckRhdGFE
ZXRlY3RvckhpZ2hsaWdodHMoKTsKQEAgLTE0NSwxMCArMTUyLDIzIEBAIHZvaWQgSW1hZ2VPdmVy
bGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCiAgICAgbV9wYWdl
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqb3ZlcmxheVRv
VW5pbnN0YWxsLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKK3ZvaWQg
SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCit7
CisgICAgaWYgKG1faG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgdW5pbnN0YWxsUGFnZU92ZXJsYXkoKTsK
K30KKwogdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjp3aWxsTW92ZVRvUGFnZShQYWdlT3Zl
cmxheSYsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICB1bmluc3RhbGxQ
YWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5KCk7CiB9
CiAKIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBh
Z2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5
UmVjdCkKQEAgLTE2MSwxMSArMTgxLDExIEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmCiAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIGNvbnRl
eHQuY2xlYXJSZWN0KGRpcnR5UmVjdCk7CiAKLSAgICBpZiAobV9vdmVybGF5U2VsZWN0aW9uUXVh
ZHMuaXNFbXB0eSgpKQorICAgIGlmIChtX3NlbGVjdGlvblF1YWRzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUGF0aCBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoOwotICAgIGZvciAo
YXV0byYgcXVhZCA6IG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzKSB7CisgICAgZm9yIChhdXRvJiBx
dWFkIDogbV9zZWxlY3Rpb25RdWFkcykgewogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRo
Lm1vdmVUbyhxdWFkLnAxKCkpOwogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExp
bmVUbyhxdWFkLnAyKCkpOwogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVU
byhxdWFkLnAzKCkpOwpAQCAtMTc1LDcgKzE5NSw3IEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJv
bGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQm
CiAgICAgfQogCiAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobV9zZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IpOwotICAgIGNvbnRleHQuY2xpcChtX2ltYWdlT3ZlcmxheUJvdW5kcyk7CisgICAgY29u
dGV4dC5jbGlwKG1fc2VsZWN0aW9uQ2xpcFJlY3QpOwogICAgIGNvbnRleHQuZmlsbFBhdGgoY29h
bGVzY2VkU2VsZWN0aW9uUGF0aCk7CiB9CiAKQEAgLTE4Niw2ICsyMDYsMTAgQEAgYm9vbCBJbWFn
ZU92ZXJsYXlDb250cm9sbGVyOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW1hZ2VPdmVybGF5
Q29udHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UoRnJhbWUmLCBFbGVtZW50KikK
K3sKK30KKwogI2VuZGlmIC8vICFQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXgg
MTBkZmZiNDM1NTYyMWE2OTk1ZWY4YzQ0YmFkMzllZWJiNmRjMWEzMS4uY2ZlNDljZjZlMDBhZWEw
MWVmYjkxNjlmNTQ5MzI3YzU2NzNlOGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTM4LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBIVE1MRWxlbWVudDsKQEAgLTU3LDYgKzU4LDggQEAg
cHVibGljOgogICAgIGV4cGxpY2l0IEltYWdlT3ZlcmxheUNvbnRyb2xsZXIoUGFnZSYpOwogCiAg
ICAgdm9pZCBzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYsIGNvbnN0IFZlY3RvcjxGbG9h
dFF1YWQ+Jik7CisgICAgdm9pZCBlbGVtZW50VW5kZXJNb3VzZURpZENoYW5nZShGcmFtZSYsIEVs
ZW1lbnQqKTsKKwogICAgIHZvaWQgZG9jdW1lbnREZXRhY2hlZChjb25zdCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgpAQCAtNjksNiArNzIsNyBAQCBwcml2YXRlOgogCiAgICAgUGFnZU92ZXJsYXkm
IGluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CiAgICAgdm9pZCB1bmluc3RhbGxQYWdlT3Zl
cmxheUlmTmVlZGVkKCk7CisgICAgdm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheSgpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0cyhjb25z
dCBIVE1MRWxlbWVudCYpOwpAQCAtNzgsMTkgKzgyLDIxIEBAIHByaXZhdGU6CiAgICAgRGF0YURl
dGVjdG9ySGlnaGxpZ2h0KiBhY3RpdmVIaWdobGlnaHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2FjdGl2ZURhdGFEZXRlY3RvckhpZ2hsaWdodC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICB2b2lk
IHBsYXRmb3JtVXBkYXRlRWxlbWVudFVuZGVyTW91c2UoRnJhbWUmLCBFbGVtZW50KiBlbGVtZW50
VW5kZXJNb3VzZSk7CiAgICAgYm9vbCBwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50Jik7CiAKICAgICBXZWFrUHRyPFBhZ2U+IG1fcGFnZTsKICAgICBSZWZQ
dHI8UGFnZU92ZXJsYXk+IG1fb3ZlcmxheTsKLSAgICBXZWFrUHRyPERvY3VtZW50PiBtX2N1cnJl
bnRPdmVybGF5RG9jdW1lbnQ7Ci0gICAgVmVjdG9yPEZsb2F0UXVhZD4gbV9vdmVybGF5U2VsZWN0
aW9uUXVhZHM7Ci0gICAgTGF5b3V0UmVjdCBtX2ltYWdlT3ZlcmxheUJvdW5kczsKKyAgICBXZWFr
UHRyPEhUTUxFbGVtZW50PiBtX2hvc3RFbGVtZW50Rm9yU2VsZWN0aW9uOworICAgIFZlY3RvcjxG
bG9hdFF1YWQ+IG1fc2VsZWN0aW9uUXVhZHM7CisgICAgTGF5b3V0UmVjdCBtX3NlbGVjdGlvbkNs
aXBSZWN0OwogICAgIENvbG9yIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIHsgQ29sb3I6OnRy
YW5zcGFyZW50QmxhY2sgfTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB1c2luZyBDb250YWlu
ZXJBbmRIaWdobGlnaHQgPSBzdGQ6OnBhaXI8V2Vha1B0cjxIVE1MRWxlbWVudD4sIFJlZjxEYXRh
RGV0ZWN0b3JIaWdobGlnaHQ+PjsKICAgICBWZWN0b3I8Q29udGFpbmVyQW5kSGlnaGxpZ2h0PiBt
X2RhdGFEZXRlY3RvckNvbnRhaW5lcnNBbmRIaWdobGlnaHRzOwogICAgIFJlZlB0cjxEYXRhRGV0
ZWN0b3JIaWdobGlnaHQ+IG1fYWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0OworICAgIFdlYWtQ
dHI8SFRNTEVsZW1lbnQ+IG1faG9zdEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzOwogI2VuZGlmCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDY1NDgzM2JiZTkzMzMyMWU5MWJlY2MxZWRjOTJlY2MxZjA1
YzRhZjguLjE2MTY3Y2UwODFjNGNhOGM3MDFhMDliOTEwYzgxY2IxOWEwNmFlYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC01MDgsNiArNTA4LDcgQEAgcHVibGljOgogICAgIFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImIHNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIoKSB7IHJldHVybiAqbV9zZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOyB9CiAjZW5kaWYKICAgICBJbWFnZU92ZXJsYXlDb250cm9sbGVy
JiBpbWFnZU92ZXJsYXlDb250cm9sbGVyKCkgeyByZXR1cm4gKm1faW1hZ2VPdmVybGF5Q29udHJv
bGxlcjsgfQorICAgIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIqIGltYWdlT3ZlcmxheUNvbnRyb2xs
ZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1faW1hZ2VPdmVybGF5Q29udHJvbGxlci5nZXQoKTsgfQog
CiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQogICAgIFNjcm9sbExhdGNoaW5nQ29u
dHJvbGxlciYgc2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQppbmRleCBlODRlZGY4
ZDEzNjlhNmU0ZjBjMDU5OTI2ZDk1MTE0YjUxNDk4MGE0Li5lNDQ3ZDc0MjRlMGQ5MmU1NWVhZTlm
YmM4NzkzMmFmNTI3ZTMzMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9J
bWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KQEAgLTE3NiwxMCArMTc2LDU2IEBAIGJvb2wg
SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6aGFuZGxlRGF0YURldGVjdG9yQWN0aW9uKGNvbnN0IEhU
TUxFbGVtZW50JiBlbGVtZW50CiAKIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6Y2xlYXJE
YXRhRGV0ZWN0b3JIaWdobGlnaHRzKCkKIHsKKyAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVj
dG9ycyA9IG51bGxwdHI7CiAgICAgbV9kYXRhRGV0ZWN0b3JDb250YWluZXJzQW5kSGlnaGxpZ2h0
cy5jbGVhcigpOwogICAgIG1fYWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0ID0gbnVsbHB0cjsK
IH0KIAordm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjplbGVtZW50VW5kZXJNb3VzZURpZENo
YW5nZShGcmFtZSYgZnJhbWUsIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKQoreworICAgIGlm
IChtX2FjdGl2ZURhdGFEZXRlY3RvckhpZ2hsaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCFlbGVtZW50VW5kZXJNb3VzZSAmJiBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycyAm
JiBmcmFtZS5kb2N1bWVudCgpICE9ICZtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycy0+ZG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFlbGVtZW50VW5kZXJNb3VzZSB8
fCAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCplbGVtZW50VW5kZXJNb3VzZSkp
IHsKKyAgICAgICAgbV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPSBudWxscHRyOworICAg
ICAgICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvIHNoYWRvd0hvc3QgPSBlbGVtZW50VW5kZXJNb3VzZS0+c2hhZG93SG9z
dCgpOworICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KHNoYWRvd0hvc3QpKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9y
cyA9IG51bGxwdHI7CisgICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2VPdmVybGF5SG9zdCA9IG1ha2VS
ZWYoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpzaGFkb3dIb3N0KSk7CisgICAgaWYgKCFpbWFnZU92
ZXJsYXlIb3N0LT5oYXNJbWFnZU92ZXJsYXkoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgbV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPSBudWxscHRyOwor
ICAgICAgICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAobV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPT0gaW1hZ2VP
dmVybGF5SG9zdC5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlRGF0YURldGVj
dG9ySGlnaGxpZ2h0cyhpbWFnZU92ZXJsYXlIb3N0LmdldCgpKTsKKworICAgIGlmIChtX2RhdGFE
ZXRlY3RvckNvbnRhaW5lcnNBbmRIaWdobGlnaHRzLmlzRW1wdHkoKSkgeworICAgICAgICBtX2hv
c3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycyA9IG51bGxwdHI7CisgICAgICAgIHVuaW5zdGFsbFBh
Z2VPdmVybGF5SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faG9z
dEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzID0gbWFrZVdlYWtQdHIoaW1hZ2VPdmVybGF5SG9zdC5n
ZXQoKSk7CisgICAgaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430289</attachid>
            <date>2021-06-01 14:02:46 -0700</date>
            <delta_ts>2021-06-01 15:37:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226507-20210601140245.patch</filename>
            <type>text/plain</type>
            <size>18221</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJkMzJkNjNiYzM0OTk2
NTU3Njk1NjgxMTcxZDkwN2NmNjZiMjA3ZS4uOTYzMTBjZTk5YWYyZDEzY2FhNTcwMTExZWEyNTJi
NDI0MDc4NmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTA2LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gRGF0
YSBkZXRlY3RvciBoaWdobGlnaHRzIHNob3VsZCBhcHBlYXIgd2hlbiBob3ZlcmluZyBpbnNpZGUg
aW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjUwNworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgUmVmYWN0b3Igc29tZSBsb2dpYyBpbiBJbWFnZU92ZXJsYXlDb250cm9sbGVyLCBzdWNoIHRo
YXQgdGhlIG92ZXJsYXkgaXMgaW5zdGFsbGVkIGlmIF9laXRoZXJfIHNlbGVjdGlvbiBwYWludGlu
ZworICAgICAgICBpcyByZXF1aXJlZCwgb3IgZGF0YSBkZXRlY3RvciBoaWdobGlnaHRzIGZvciB0
aGUgaW1hZ2Ugb3ZlcmxheSBob3N0IGVsZW1lbnQgZXhpc3Q7IGFkZGl0aW9uYWxseSwgYWRkIHBs
dW1iaW5nIHRvCisgICAgICAgIGFsbG93IHRoZSBJbWFnZU92ZXJsYXlDb250cm9sbGVyIHRvIGlu
c3RhbGwgYSBwYWdlIG92ZXJsYXkgd2hlbiB0aGUgZWxlbWVudCB1bmRlciB0aGUgbW91c2UgaXMg
aW5zaWRlIGFuIGltYWdlCisgICAgICAgIG92ZXJsYXkuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndpbGxCZVJlbW92ZWRGcm9tRnJh
bWUpOgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogdXNlIGBpbWFnZU92ZXJsYXlDb250cm9sbGVy
SWZFeGlzdHNgIGluc3RlYWQgb2YgYGltYWdlT3ZlcmxheUNvbnRyb2xsZXJgIHRvIGF2b2lkIHVu
bmVjZXNzYXJpbHkKKyAgICAgICAgY3JlYXRpbmcgYSBuZXcgSW1hZ2VPdmVybGF5Q29udHJvbGxl
ciB3aGVuIGRldGFjaGluZyBhIERvY3VtZW50LgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6CisKKyAgICAg
ICAgUmVmYWN0b3IgbG9naWMgZm9yIGNsZWFyaW5nIG91dCBgbV9lbGVtZW50VW5kZXJNb3VzZWAg
aW50byBhIHNlcGFyYXRlIGhlbHBlciwgYW5kIGNhbGwgaXQgZnJvbSB0aGVzZSB0d28gcGxhY2Vz
LgorICAgICAgICBUaGlzIG5ldyBoZWxwZXIgY2xlYXJzIG91dCBgbV9lbGVtZW50VW5kZXJNb3Vz
ZWAgYW5kIGFkZGl0aW9uYWxseSBub3RpZmllcyB0aGUgcGFnZSdzIGltYWdlIG92ZXJsYXkgY29u
dHJvbGxlcgorICAgICAgICAob25seSBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGNvbnN0cnVjdGVk
KS4KKworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFy
Z2V0Tm9kZSk6CisKKyAgICAgICAgQ2FsbCBvdXQgdG8gdGhlIHBhZ2UncyBpbWFnZSBvdmVybGF5
IGNvbnRyb2xsZXIgd2hlbiBjaGFuZ2luZyBgbV9lbGVtZW50VW5kZXJNb3VzZWAuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXJFbGVtZW50VW5kZXJNb3VzZSk6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ltYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
c2VsZWN0aW9uUXVhZHNEaWRDaGFuZ2UpOgorCisgICAgICAgIFJlZmFjdG9yIEltYWdlT3Zlcmxh
eUNvbnRyb2xsZXIgc28gdGhhdCBpdCBvbmx5IGluc3RhbGxzIGl0cyBwYWdlIG92ZXJsYXkgaWYg
ZWl0aGVyOgorICAgICAgICAxLiBTZWxlY3Rpb24gcGFpbnRpbmcgaXMgbmVlZGVkIGZvciBzZWxl
Y3RlZCB0ZXh0IGluc2lkZSBhbiBpbWFnZSBvdmVybGF5LCBvci4uLgorICAgICAgICAyLiBUaGUg
Y3Vyc29yIGlzIG92ZXIgYW4gaW1hZ2Ugb3ZlcmxheSBob3N0IGVsZW1lbnQgd2l0aCBkYXRhIGRl
dGVjdGlvbiByZXN1bHRzLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgd2UgbWFpbnRhaW4g
YSB3ZWFrIHBvaW50ZXIgdG8gdGhlIGltYWdlIG92ZXJsYXkgaG9zdCB0aGF0IGNvbnRhaW5zIHRo
ZSBzZWxlY3Rpb24gc2VwYXJhdGVseQorICAgICAgICBmcm9tIHRoZSB3ZWFrIHBvaW50ZXIgdG8g
dGhlIGltYWdlIG92ZXJsYXkgaG9zdCB0aGF0IGNvbnRhaW5zIGRhdGEgZGV0ZWN0b3JzLCBhbmQg
aXMgdGhlIGVsZW1lbnQgY3VycmVudGx5IHVuZGVyCisgICAgICAgIHRoZSBtb3VzZSBjdXJzb3Iu
CisKKyAgICAgICAgRHJpdmUtYnkgZml4OiBhbHNvIGlnbm9yZSBzZWxlY3Rpb24gdXBkYXRlcyBk
dWUgdG8gdGVtcG9yYXJ5IHNlbGVjdGlvbnMgdHJpZ2dlcmVkIGFzIGEgcmVzdWx0IG9mIGdhdGhl
cmluZworICAgICAgICBkaWN0aW9uYXJ5IHBvcHVwIGluZm8uCisKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRvY3VtZW50RGV0YWNoZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJs
YXlJZk5lZWRlZCk6CisKKyAgICAgICAgU3BsaXQgdGhpcyBpbnRvIHR3byBmdW5jdGlvbnM6IGB1
bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkYCwgd2hpY2ggcmVtb3ZlcyBhbmQgZGVzdHJveXMg
dGhlIFBhZ2VPdmVybGF5IGlmCisgICAgICAgIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQgKGkuZS4g
dGhlIG92ZXJsYXkgaXMgcmVxdWlyZWQgZm9yIG5laXRoZXIgc2VsZWN0aW9uIHBhaW50aW5nIG5v
ciBkYXRhIGRldGVjdG9ycykuCisKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRy
b2xsZXI6OndpbGxNb3ZlVG9QYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRy
b2xsZXI6OmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ltYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKworICAgICAgICBSZW5hbWUgYG1faW1hZ2VPdmVybGF5Qm91
bmRzYCB0byBgbV9zZWxlY3Rpb25DbGlwUmVjdGAgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoaXMg
aXMgb25seSB1c2VkIGR1cmluZyBzZWxlY3Rpb24KKyAgICAgICAgcGFpbnRpbmcsIGFuZCByZW5h
bWUgYG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzYCB0byBqdXN0IGBtX3NlbGVjdGlvblF1YWRzYCBm
b3IgY29uY2lzZW5lc3MuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OmltYWdlT3ZlcmxheUNvbnRyb2xsZXJJZkV4aXN0cyk6CisKKyAgICAgICAgQWRk
IGEgdmVyc2lvbiBvZiB0aGlzIGdldHRlciB0aGF0IGRvZXMgbm90IGluaXRpYWxpemUgdGhlIElt
YWdlT3ZlcmxheUNvbnRyb2xsZXIgaWYgaXQgZGlkbid0IGFscmVhZHkgZXhpc3QuIFNlZQorICAg
ICAgICBjYWxsIHNpdGVzIGluIEV2ZW50SGFuZGxlciBhbmQgRG9jdW1lbnQuCisKKyAgICAgICAg
KiBwYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6Y2xlYXJEYXRhRGV0ZWN0b3JIaWdobGlnaHRzKToK
KworICAgICAgICBBZGRpdGlvbmFsbHkgY2xlYXIgb3V0IGBtX2hvc3RFbGVtZW50Rm9yRGF0YURl
dGVjdG9yc2AuCisKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmVs
ZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKToKKworICAgICAgICBVcGRhdGUgZGF0YSBkZXRlY3Rv
ciBoaWdobGlnaHRzIHdoZW5ldmVyIHRoZSBlbGVtZW50IHVuZGVyIHRoZSBtb3VzZSBpcyBvdmVy
IGNvbnRlbnQgaW5zaWRlIGFuIGltYWdlIG92ZXJsYXkuCisgICAgICAgIE5vdGUgdGhhdCB3ZSBl
ZmZlY3RpdmVseSBpZ25vcmUgdGhpcyBtZXRob2QgY2FsbCBpbiB0aGUgY2FzZSB3aGVyZSB3ZSdy
ZSBjbGVhcmluZyBvdXQgYG1fZWxlbWVudFVuZGVyTW91c2VgIGZvcgorICAgICAgICBhIGRpZmZl
cmVudCBEb2N1bWVudCB0aGFuIHRoZSBvbmUgY29udGFpbmluZyBgbV9ob3N0RWxlbWVudEZvckRh
dGFEZXRlY3RvcnNgLCB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIGVycm9uZW91c2x5CisgICAgICAg
IGhpZGluZyBkYXRhIGRldGVjdG9ycyB3aGVuIGBtX2VsZW1lbnRVbmRlck1vdXNlYCBpcyByZW1v
dmVkIG9yIG90aGVyd2lzZSBjbGVhcmVkIG91dCBpbiBhIGRpZmZlcmVudCBEb2N1bWVudC4KKwog
MjAyMS0wNC0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBFbmFibGUgPHN1bW1hcnk+IHRvIGJlIGEgZmxleCBjb250YWluZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDc0MDE0ZDMyMDM0NGNjMWI4OTljZmRiY2NlMTBhZjYwYmQyZWRl
MDUuLmFlOTcyY2U1NzMyODVhZTlkZjk2MjI4ZTE3OGJkYTc1ZGM1MzhjYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMjYyMSw3ICsyNjIxLDggQEAgdm9pZCBEb2N1bWVudDo6d2lsbEJl
UmVtb3ZlZEZyb21GcmFtZSgpCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgcGFn
ZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZG9jdW1lbnREZXRhY2hlZCgqdGhpcyk7CiAjZW5k
aWYKLSAgICAgICAgcGFnZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLmRvY3VtZW50RGV0YWNo
ZWQoKnRoaXMpOworICAgICAgICBpZiAoYXV0byogaW1hZ2VPdmVybGF5Q29udHJvbGxlciA9IHBh
Z2UtPmltYWdlT3ZlcmxheUNvbnRyb2xsZXJJZkV4aXN0cygpKQorICAgICAgICAgICAgaW1hZ2VP
dmVybGF5Q29udHJvbGxlci0+ZG9jdW1lbnREZXRhY2hlZCgqdGhpcyk7CiAgICAgICAgIGlmIChh
dXRvKiB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCA9IHBhZ2UtPnZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50KCkpCiAgICAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudC0+ZG9jdW1lbnREZXRh
Y2hlZCgqdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4
IDk0N2M3ZTY5MzAwNGRhZmRlYmMxZjRiYTZjOTMzZTUzYzRiOTM0NjkuLjYzNTY4MjViMmU2Nzhj
MDM0ZjZlMGY4MDg5YjIyMDBhODM5MjZmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIklt
YWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpA
QCAtMzcwLDcgKzM3MSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9pbWFn
ZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CiAjZW5kaWYKICAgICBtX3Jlc2l6ZUxheWVyID0gbnVs
bHB0cjsKLSAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0gbnVsbHB0cjsKKyAgICBjbGVhckVsZW1l
bnRVbmRlck1vdXNlKCk7CiAgICAgbV9sYXN0RWxlbWVudFVuZGVyTW91c2UgPSBudWxscHRyOwog
ICAgIG1fbGFzdE1vdXNlTW92ZUV2ZW50U3ViZnJhbWUgPSBudWxscHRyOwogICAgIG1fbGFzdFNj
cm9sbGJhclVuZGVyTW91c2UgPSBudWxscHRyOwpAQCAtMjU0Nyw2ICsyNTQ4LDkgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50VHlwZSwgTm9kZSoKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChhdXRvKiBwYWdlID0g
bV9mcmFtZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmltYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5l
bGVtZW50VW5kZXJNb3VzZURpZENoYW5nZShtX2ZyYW1lLCBtX2VsZW1lbnRVbmRlck1vdXNlLmdl
dCgpKTsKKwogICAgIEFTU0VSVF9JTVBMSUVTKG1fZWxlbWVudFVuZGVyTW91c2UsICZtX2VsZW1l
bnRVbmRlck1vdXNlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgQVNT
RVJUX0lNUExJRVMobV9sYXN0RWxlbWVudFVuZGVyTW91c2UsICZtX2xhc3RFbGVtZW50VW5kZXJN
b3VzZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogCkBAIC0yNjA2LDEzICsy
NjEwLDMxIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShj
b25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCiAgICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKICNlbmRp
ZgotICAgICAgICAgICAgbV9lbGVtZW50VW5kZXJNb3VzZSA9IG51bGxwdHI7CisgICAgICAgICAg
ICBjbGVhckVsZW1lbnRVbmRlck1vdXNlKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2xhc3RF
bGVtZW50VW5kZXJNb3VzZSA9IG1fZWxlbWVudFVuZGVyTW91c2U7CiAgICAgfQogfQogCit2b2lk
IEV2ZW50SGFuZGxlcjo6Y2xlYXJFbGVtZW50VW5kZXJNb3VzZSgpCit7CisgICAgaWYgKCFtX2Vs
ZW1lbnRVbmRlck1vdXNlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VsZW1lbnRVbmRlck1v
dXNlID0gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGltYWdlT3ZlcmxheUNvbnRy
b2xsZXIgPSBwYWdlLT5pbWFnZU92ZXJsYXlDb250cm9sbGVySWZFeGlzdHMoKTsKKyAgICBpZiAo
IWltYWdlT3ZlcmxheUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGltYWdlT3Zl
cmxheUNvbnRyb2xsZXItPmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKG1fZnJhbWUsIG51bGxw
dHIpOworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6bm90aWZ5U2Nyb2xsYWJsZUFyZWFzT2ZNb3Vz
ZUV2ZW50cyhjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQqIGxhc3RFbGVtZW50
VW5kZXJNb3VzZSwgRWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UpCiB7CiAgICAgYXV0byogZnJh
bWVWaWV3ID0gbV9mcmFtZS52aWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCBlOTY2MTM4YTFkZGY1ODg5YzZhMjVhNjg2YzZlOGE3YWFkNTBlODIyLi5kNDI2YTBjMmVmOTRl
YmI0YTU4ZDY2ZmY1MjdkNmViNTJkMzY2OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKQEAgLTUxOSw2ICs1MTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGNsZWFy
TGF0Y2hlZFN0YXRlKCk7CisgICAgdm9pZCBjbGVhckVsZW1lbnRVbmRlck1vdXNlKCk7CiAKICAg
ICBib29sIHNob3VsZFNlbmRNb3VzZUV2ZW50c1RvSW5hY3RpdmVXaW5kb3dzKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4
IGJjYjNiYjNhNTBlN2VhNWEzN2U5MTFiZWFiNjQxMWUwMjQ5NDZmNzQuLjc1NDBkZjEwYTY2YTM0
OWZiYTk0NzcyZGNhYTM2NzM3NzgxYWI1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9J
bWFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtNTgsOSArNTgsMTQgQEAgdm9pZCBJbWFnZU92
ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYgZnJhbWUsIGNv
bnN0IFZlY3RvcjwKICAgICBpZiAoIW1fcGFnZSB8fCAhbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5uZWVkc0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJGb3JTZWxlY3Rpb25QYWludGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoZnJhbWUuZWRpdG9yKCkuaWdub3JlU2VsZWN0aW9uQ2hh
bmdlcygpKQorICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pZ25vcmVTZWxlY3Rpb25DaGFuZ2VzKCkg
fHwgZnJhbWUuZWRpdG9yKCkuaXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5mbygpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBtX2hvc3RFbGVtZW50Rm9yU2VsZWN0aW9uID0gbnVsbHB0cjsKKyAg
ICBtX3NlbGVjdGlvblF1YWRzLmNsZWFyKCk7CisgICAgbV9zZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICBtX3NlbGVjdGlvbkNsaXBSZWN0ID0g
eyB9OworCiAgICAgYXV0byBvdmVybGF5SG9zdCA9IChbJl0gKCkgLT4gUmVmUHRyPEhUTUxFbGVt
ZW50PiB7CiAgICAgICAgIGF1dG8gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpLnJhbmdlKCk7CiAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkKQEAgLTg2LDIy
ICs5MSwxNyBAQCB2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRzRGlk
Q2hhbmdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVmVjdG9yPAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKHNob3VsZFVzZVBhZ2VPdmVybGF5VG9QYWludFNlbGVjdGlvbigqb3Zlcmxh
eUhvc3RSZW5kZXJlcikpIHsKLSAgICAgICAgbV9vdmVybGF5U2VsZWN0aW9uUXVhZHMgPSBxdWFk
czsKLSAgICAgICAgbV9zZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBvdmVybGF5SG9zdFJlbmRl
cmVyLT5zZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBt
X292ZXJsYXlTZWxlY3Rpb25RdWFkcy5jbGVhcigpOwotICAgICAgICBtX3NlbGVjdGlvbkJhY2tn
cm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIGlmICghc2hvdWxkVXNl
UGFnZU92ZXJsYXlUb1BhaW50U2VsZWN0aW9uKCpvdmVybGF5SG9zdFJlbmRlcmVyKSkgeworICAg
ICAgICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBtX2ltYWdlT3ZlcmxheUJvdW5kcyA9IG92ZXJsYXlIb3N0UmVuZGVyZXItPmFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdXBkYXRl
RGF0YURldGVjdG9ySGlnaGxpZ2h0cygqb3ZlcmxheUhvc3QpOwotI2VuZGlmCisgICAgbV9ob3N0
RWxlbWVudEZvclNlbGVjdGlvbiA9IG1ha2VXZWFrUHRyKCpvdmVybGF5SG9zdCk7CisgICAgbV9z
ZWxlY3Rpb25RdWFkcyA9IHF1YWRzOworICAgIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0g
b3ZlcmxheUhvc3RSZW5kZXJlci0+c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CisgICAgbV9z
ZWxlY3Rpb25DbGlwUmVjdCA9IG92ZXJsYXlIb3N0UmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdC
b3hSZWN0KCk7CiAKLSAgICBpZiAoYXV0byYgb3ZlcmxheSA9IGluc3RhbGxQYWdlT3ZlcmxheUlm
TmVlZGVkKCk7ICFtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5pc0VtcHR5KCkpCi0gICAgICAgIG92
ZXJsYXkuc2V0TmVlZHNEaXNwbGF5KCk7CisgICAgaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQo
KS5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpz
aG91bGRVc2VQYWdlT3ZlcmxheVRvUGFpbnRTZWxlY3Rpb24oY29uc3QgUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIpCkBAIC0xMTMsOCArMTEzLDE1IEBAIGJvb2wgSW1hZ2VPdmVybGF5Q29udHJvbGxl
cjo6c2hvdWxkVXNlUGFnZU92ZXJsYXlUb1BhaW50U2VsZWN0aW9uKGNvbnN0IFJlbmRlckVsCiAK
IHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZG9jdW1lbnREZXRhY2hlZChjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgaWYgKCZkb2N1bWVudCA9PSBtX2N1cnJlbnRPdmVybGF5
RG9jdW1lbnQpCi0gICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKKyAgICBp
ZiAobV9ob3N0RWxlbWVudEZvclNlbGVjdGlvbiAmJiAmZG9jdW1lbnQgPT0gJm1faG9zdEVsZW1l
bnRGb3JTZWxlY3Rpb24tPmRvY3VtZW50KCkpCisgICAgICAgIG1faG9zdEVsZW1lbnRGb3JTZWxl
Y3Rpb24gPSBudWxscHRyOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX2hvc3RFbGVt
ZW50Rm9yRGF0YURldGVjdG9ycyAmJiAmZG9jdW1lbnQgPT0gJm1faG9zdEVsZW1lbnRGb3JEYXRh
RGV0ZWN0b3JzLT5kb2N1bWVudCgpKQorICAgICAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVj
dG9ycyA9IG51bGxwdHI7CisjZW5kaWYKKworICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVk
ZWQoKTsKIH0KIAogUGFnZU92ZXJsYXkmIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQ
YWdlT3ZlcmxheUlmTmVlZGVkKCkKQEAgLTEyNywxMiArMTM0LDEyIEBAIFBhZ2VPdmVybGF5JiBJ
bWFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCiAgICAg
cmV0dXJuICptX292ZXJsYXk7CiB9CiAKLXZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5p
bnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCit2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6
OnVuaW5zdGFsbFBhZ2VPdmVybGF5KCkKIHsKLSAgICBtX2ltYWdlT3ZlcmxheUJvdW5kcyA9IHsg
fTsKLSAgICBtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5jbGVhcigpOworICAgIG1faG9zdEVsZW1l
bnRGb3JTZWxlY3Rpb24gPSBudWxscHRyOworICAgIG1fc2VsZWN0aW9uUXVhZHMuY2xlYXIoKTsK
ICAgICBtX3NlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudEJsYWNr
OwotICAgIG1fY3VycmVudE92ZXJsYXlEb2N1bWVudCA9IG51bGxwdHI7CisgICAgbV9zZWxlY3Rp
b25DbGlwUmVjdCA9IHsgfTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjbGVhckRhdGFEZXRl
Y3RvckhpZ2hsaWdodHMoKTsKQEAgLTE0NSwxMCArMTUyLDIzIEBAIHZvaWQgSW1hZ2VPdmVybGF5
Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCiAgICAgbV9wYWdlLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqb3ZlcmxheVRvVW5p
bnN0YWxsLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKK3ZvaWQgSW1h
Z2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXlJZk5lZWRlZCgpCit7Cisg
ICAgaWYgKG1faG9zdEVsZW1lbnRGb3JTZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMpCisg
ICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgdW5pbnN0YWxsUGFnZU92ZXJsYXkoKTsKK30K
Kwogdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjp3aWxsTW92ZVRvUGFnZShQYWdlT3Zlcmxh
eSYsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICB1bmluc3RhbGxQYWdl
T3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5KCk7CiB9CiAK
IHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VP
dmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVj
dCkKQEAgLTE2MSwxMSArMTgxLDExIEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZHJh
d1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmCiAgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIGNvbnRleHQu
Y2xlYXJSZWN0KGRpcnR5UmVjdCk7CiAKLSAgICBpZiAobV9vdmVybGF5U2VsZWN0aW9uUXVhZHMu
aXNFbXB0eSgpKQorICAgIGlmIChtX3NlbGVjdGlvblF1YWRzLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUGF0aCBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoOwotICAgIGZvciAoYXV0
byYgcXVhZCA6IG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzKSB7CisgICAgZm9yIChhdXRvJiBxdWFk
IDogbV9zZWxlY3Rpb25RdWFkcykgewogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLm1v
dmVUbyhxdWFkLnAxKCkpOwogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVU
byhxdWFkLnAyKCkpOwogICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVUbyhx
dWFkLnAzKCkpOwpAQCAtMTc1LDcgKzE5NSw3IEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxl
cjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmCiAg
ICAgfQogCiAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobV9zZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IpOwotICAgIGNvbnRleHQuY2xpcChtX2ltYWdlT3ZlcmxheUJvdW5kcyk7CisgICAgY29udGV4
dC5jbGlwKG1fc2VsZWN0aW9uQ2xpcFJlY3QpOwogICAgIGNvbnRleHQuZmlsbFBhdGgoY29hbGVz
Y2VkU2VsZWN0aW9uUGF0aCk7CiB9CiAKQEAgLTE4Niw2ICsyMDYsMTAgQEAgYm9vbCBJbWFnZU92
ZXJsYXlDb250cm9sbGVyOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW1hZ2VPdmVybGF5Q29u
dHJvbGxlcjo6ZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UoRnJhbWUmLCBFbGVtZW50KikKK3sK
K30KKwogI2VuZGlmIC8vICFQTEFURk9STShNQUMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggMTBk
ZmZiNDM1NTYyMWE2OTk1ZWY4YzQ0YmFkMzllZWJiNmRjMWEzMS4uY2ZlNDljZjZlMDBhZWEwMWVm
YjkxNjlmNTQ5MzI3YzU2NzNlOGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9J
bWFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92
ZXJsYXlDb250cm9sbGVyLmgKQEAgLTM4LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiBjbGFzcyBIVE1MRWxlbWVudDsKQEAgLTU3LDYgKzU4LDggQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IEltYWdlT3ZlcmxheUNvbnRyb2xsZXIoUGFnZSYpOwogCiAgICAg
dm9pZCBzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYsIGNvbnN0IFZlY3RvcjxGbG9hdFF1
YWQ+Jik7CisgICAgdm9pZCBlbGVtZW50VW5kZXJNb3VzZURpZENoYW5nZShGcmFtZSYsIEVsZW1l
bnQqKTsKKwogICAgIHZvaWQgZG9jdW1lbnREZXRhY2hlZChjb25zdCBEb2N1bWVudCYpOwogCiBw
cml2YXRlOgpAQCAtNjksNiArNzIsNyBAQCBwcml2YXRlOgogCiAgICAgUGFnZU92ZXJsYXkmIGlu
c3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CiAgICAgdm9pZCB1bmluc3RhbGxQYWdlT3Zlcmxh
eUlmTmVlZGVkKCk7CisgICAgdm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheSgpOwogCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0cyhjb25zdCBI
VE1MRWxlbWVudCYpOwpAQCAtNzgsMTkgKzgyLDIxIEBAIHByaXZhdGU6CiAgICAgRGF0YURldGVj
dG9ySGlnaGxpZ2h0KiBhY3RpdmVIaWdobGlnaHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Fj
dGl2ZURhdGFEZXRlY3RvckhpZ2hsaWdodC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHBs
YXRmb3JtVXBkYXRlRWxlbWVudFVuZGVyTW91c2UoRnJhbWUmLCBFbGVtZW50KiBlbGVtZW50VW5k
ZXJNb3VzZSk7CiAgICAgYm9vbCBwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50Jik7CiAKICAgICBXZWFrUHRyPFBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8
UGFnZU92ZXJsYXk+IG1fb3ZlcmxheTsKLSAgICBXZWFrUHRyPERvY3VtZW50PiBtX2N1cnJlbnRP
dmVybGF5RG9jdW1lbnQ7Ci0gICAgVmVjdG9yPEZsb2F0UXVhZD4gbV9vdmVybGF5U2VsZWN0aW9u
UXVhZHM7Ci0gICAgTGF5b3V0UmVjdCBtX2ltYWdlT3ZlcmxheUJvdW5kczsKKyAgICBXZWFrUHRy
PEhUTUxFbGVtZW50PiBtX2hvc3RFbGVtZW50Rm9yU2VsZWN0aW9uOworICAgIFZlY3RvcjxGbG9h
dFF1YWQ+IG1fc2VsZWN0aW9uUXVhZHM7CisgICAgTGF5b3V0UmVjdCBtX3NlbGVjdGlvbkNsaXBS
ZWN0OwogICAgIENvbG9yIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIHsgQ29sb3I6OnRyYW5z
cGFyZW50QmxhY2sgfTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB1c2luZyBDb250YWluZXJB
bmRIaWdobGlnaHQgPSBzdGQ6OnBhaXI8V2Vha1B0cjxIVE1MRWxlbWVudD4sIFJlZjxEYXRhRGV0
ZWN0b3JIaWdobGlnaHQ+PjsKICAgICBWZWN0b3I8Q29udGFpbmVyQW5kSGlnaGxpZ2h0PiBtX2Rh
dGFEZXRlY3RvckNvbnRhaW5lcnNBbmRIaWdobGlnaHRzOwogICAgIFJlZlB0cjxEYXRhRGV0ZWN0
b3JIaWdobGlnaHQ+IG1fYWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0OworICAgIFdlYWtQdHI8
SFRNTEVsZW1lbnQ+IG1faG9zdEVsZW1lbnRGb3JEYXRhRGV0ZWN0b3JzOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDY1NDgzM2JiZTkzMzMyMWU5MWJlY2MxZWRjOTJlY2MxZjA1YzRh
ZjguLjE2MTY3Y2UwODFjNGNhOGM3MDFhMDliOTEwYzgxY2IxOWEwNmFlYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC01MDgsNiArNTA4LDcgQEAgcHVibGljOgogICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXImIHNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIoKSB7IHJldHVybiAqbV9zZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOyB9CiAjZW5kaWYKICAgICBJbWFnZU92ZXJsYXlDb250cm9sbGVyJiBp
bWFnZU92ZXJsYXlDb250cm9sbGVyKCkgeyByZXR1cm4gKm1faW1hZ2VPdmVybGF5Q29udHJvbGxl
cjsgfQorICAgIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIqIGltYWdlT3ZlcmxheUNvbnRyb2xsZXJJ
ZkV4aXN0cygpIHsgcmV0dXJuIG1faW1hZ2VPdmVybGF5Q29udHJvbGxlci5nZXQoKTsgfQogCiAj
aWYgRU5BQkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQogICAgIFNjcm9sbExhdGNoaW5nQ29udHJv
bGxlciYgc2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQppbmRleCBlODRlZGY4ZDEz
NjlhNmU0ZjBjMDU5OTI2ZDk1MTE0YjUxNDk4MGE0Li5lNDQ3ZDc0MjRlMGQ5MmU1NWVhZTlmYmM4
NzkzMmFmNTI3ZTMzMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFn
ZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KQEAgLTE3NiwxMCArMTc2LDU2IEBAIGJvb2wgSW1h
Z2VPdmVybGF5Q29udHJvbGxlcjo6aGFuZGxlRGF0YURldGVjdG9yQWN0aW9uKGNvbnN0IEhUTUxF
bGVtZW50JiBlbGVtZW50CiAKIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6Y2xlYXJEYXRh
RGV0ZWN0b3JIaWdobGlnaHRzKCkKIHsKKyAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9y
cyA9IG51bGxwdHI7CiAgICAgbV9kYXRhRGV0ZWN0b3JDb250YWluZXJzQW5kSGlnaGxpZ2h0cy5j
bGVhcigpOwogICAgIG1fYWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0ID0gbnVsbHB0cjsKIH0K
IAordm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjplbGVtZW50VW5kZXJNb3VzZURpZENoYW5n
ZShGcmFtZSYgZnJhbWUsIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKQoreworICAgIGlmICht
X2FjdGl2ZURhdGFEZXRlY3RvckhpZ2hsaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFlbGVtZW50VW5kZXJNb3VzZSAmJiBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycyAmJiBm
cmFtZS5kb2N1bWVudCgpICE9ICZtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycy0+ZG9jdW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFlbGVtZW50VW5kZXJNb3VzZSB8fCAh
SFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCplbGVtZW50VW5kZXJNb3VzZSkpIHsK
KyAgICAgICAgbV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPSBudWxscHRyOworICAgICAg
ICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvIHNoYWRvd0hvc3QgPSBlbGVtZW50VW5kZXJNb3VzZS0+c2hhZG93SG9zdCgp
OworICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KHNoYWRvd0hvc3QpKSB7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBtX2hvc3RFbGVtZW50Rm9yRGF0YURldGVjdG9ycyA9
IG51bGxwdHI7CisgICAgICAgIHVuaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2VPdmVybGF5SG9zdCA9IG1ha2VSZWYo
ZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpzaGFkb3dIb3N0KSk7CisgICAgaWYgKCFpbWFnZU92ZXJs
YXlIb3N0LT5oYXNJbWFnZU92ZXJsYXkoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgbV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPSBudWxscHRyOworICAg
ICAgICB1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAobV9ob3N0RWxlbWVudEZvckRhdGFEZXRlY3RvcnMgPT0gaW1hZ2VPdmVy
bGF5SG9zdC5wdHIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlRGF0YURldGVjdG9y
SGlnaGxpZ2h0cyhpbWFnZU92ZXJsYXlIb3N0LmdldCgpKTsKKworICAgIGlmIChtX2RhdGFEZXRl
Y3RvckNvbnRhaW5lcnNBbmRIaWdobGlnaHRzLmlzRW1wdHkoKSkgeworICAgICAgICBtX2hvc3RF
bGVtZW50Rm9yRGF0YURldGVjdG9ycyA9IG51bGxwdHI7CisgICAgICAgIHVuaW5zdGFsbFBhZ2VP
dmVybGF5SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faG9zdEVs
ZW1lbnRGb3JEYXRhRGV0ZWN0b3JzID0gbWFrZVdlYWtQdHIoaW1hZ2VPdmVybGF5SG9zdC5nZXQo
KSk7CisgICAgaW5zdGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>