<?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>211686</bug_id>
          
          <creation_ts>2020-05-09 23:47:25 -0700</creation_ts>
          <short_desc>Clicking a tel:// link on iPad with a trackpad presents different UI than tapping on it</short_desc>
          <delta_ts>2020-05-10 12:28:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651049</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-09 23:47:25 -0700</bug_when>
    <thetext>Clicking a tel:// link on iPad with a trackpad presents different UI than tapping on it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651050</commentid>
    <comment_count>1</comment_count>
      <attachid>398962</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-09 23:48:49 -0700</bug_when>
    <thetext>Created attachment 398962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651051</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-09 23:49:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/57941589&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651058</commentid>
    <comment_count>3</comment_count>
      <attachid>398966</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-10 00:12:26 -0700</bug_when>
    <thetext>Created attachment 398966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651060</commentid>
    <comment_count>4</comment_count>
      <attachid>398967</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-10 00:18:16 -0700</bug_when>
    <thetext>Created attachment 398967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651065</commentid>
    <comment_count>5</comment_count>
      <attachid>398969</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-10 00:44:38 -0700</bug_when>
    <thetext>Created attachment 398969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651092</commentid>
    <comment_count>6</comment_count>
      <attachid>398969</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-10 10:11:11 -0700</bug_when>
    <thetext>Comment on attachment 398969
Patch

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

&gt; Source/WebKit/UIProcess/PageClient.h:417
&gt; +    virtual void showDataDetectorsUIForPositionInformation(const InteractionInformationAtPosition&amp;) = 0;

At some point in the future, we should consider making the names “position information” and “interaction information” consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651097</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-10 12:19:26 -0700</bug_when>
    <thetext>It’s on my list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651098</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-10 12:28:16 -0700</bug_when>
    <thetext>Committed r261457: &lt;https://trac.webkit.org/changeset/261457&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398969.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398962</attachid>
            <date>2020-05-09 23:48:49 -0700</date>
            <delta_ts>2020-05-10 00:12:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211686-20200509234838.patch</filename>
            <type>text/plain</type>
            <size>44939</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyZjhkYjM5NDBkNmI1
ZjkwMTk3YjM5ZTAyYzlmMmE1ODg5YTczNi4uZGFmMjRkMmUxZWQxNTE4ZjJmNWJhNGYwNWE4OTM2
ZmUwYzhhYzA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTA5ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5nIGEg
dGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50IFVJ
IHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRB
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICBSZW5hbWUgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
biB0byBjYW5QcmVzZW50RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudC4KKyAgICAgICAgVGhpcyBi
aXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50IHNob3VsZCBpbnZva2UgREQgVUkg
aW5zdGVhZCBvZgorICAgICAgICBkb2luZyBpdHMgZGVmYXVsdCBhY3Rpb24sIHNvIGVpdGhlciBu
YW1lIGlzIE9LLCBidXQgaXQgZmVlbHMgYmV0dGVyIHRvCisgICAgICAgIGhhdmUgaXQgaW4gdGhl
IGFmZmlybWF0aXZlIGRpcmVjdGlvbi4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KToKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHRhcHBpbmcgb24gYW4gYW5jaG9yIHNob3VsZCBpbnZv
a2UgRGF0YURldGVjdG9ycyBVSSBpbnN0ZWFkCisgICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIGRl
ZmF1bHQgYWN0aW9uLCBhbmQgc2hvcnQtY2lyY3VpdCBpZiB0aGF0IGlzIHBvc3NpYmxlLgorCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjAtMDUtMDYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1
a2F3YUBzb255LmNvbT4gYW5kIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbl0gSW1wbGVtZW50IERpc3BsYXlSZWZyZXNoTW9uaXRvciBieSB1
c2luZyBSdW5Mb29wOjpUaW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmMxNWJkZGU3MmEyYjhlNDkxNzE5N2Rk
NmE0ZWRlOGYxMzgwMzBiLi4yNDM1OGYxY2EwMTNkZTc4YTYyYzBjYTMxZTJhY2MyNGMxYmI3NmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNS0wOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGlja2luZyBhIHRlbDovLyBsaW5r
IG9uIGlQYWQgd2l0aCBhIHRyYWNrcGFkIHByZXNlbnRzIGRpZmZlcmVudCBVSSB0aGFuIHRhcHBp
bmcgb24gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTY4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDE1ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgaU9TIFdlYktp
dCBoYWQgY29kZSBpbiBoYW5kbGVUYXAsIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQsIGFuZCBj
b21taXRQb3RlbnRpYWxUYXAsCisgICAgICAgIHdoaWNoIGludHJvc3BlY3RlZCB0aGUgaGl0IGVs
ZW1lbnQgL2JlZm9yZS8gZGlzcGF0Y2hpbmcgdGhlIHRhcCAob3Igc3ludGhldGljIGNsaWNrKSB0
byB0aGUgRE9NLAorICAgICAgICBzaG9ydCBjaXJjdWl0aW5nIGFsbCBub3JtYWwgZXZlbnQgaGFu
ZGxpbmcgbWFjaGluZXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uCisg
ICAgICAgIGFuZCBwcmVzZW50IHRoZSBEYXRhIERldGVjdG9ycyBVSSBmb3IgdGhlIGdpdmVuIGxp
bmsuCisKKyAgICAgICAgVGhlcmUncyBvbmUgaW1tZWRpYXRlIHByb2JsZW0gd2l0aCB0aGlzLCB3
aGljaCBpcyB0aGF0IHRoZXJlIGlzIG5vIHNpbWlsYXIgY29kZSBpbiB0aGUgZGlyZWN0CisgICAg
ICAgIGNsaWNrIGV2ZW50IGhhbmRsZXIgcGF0aCwgd2hpY2ggd2Ugbm93IHVzZSBmb3IgdHJhY2tw
YWQvbW91c2UgaW5wdXQgb24gaVBhZC4gVGhlcmUncyBhbHNvIGEKKyAgICAgICAgc2Vjb25kYXJ5
IHByb2JsZW0gKHdoaWNoIHdlIGhhdmUgbm90IHNlZW4gaW4gcHJhY3RpY2UpLCB3aGljaCBpcyB0
aGF0IHBhZ2VzIGNhbm5vdCBwcmV2ZW50RGVmYXVsdAorICAgICAgICB0byBhdm9pZCBsYXVuY2hp
bmcgdGhlIERhdGEgRGV0ZWN0b3JzIFVJIG9uIGEgbGluaywgbGlrZSB0aGV5IGNvdWxkIHRvIHBy
ZXZlbnQgYW4gb3JkaW5hcnkKKyAgICAgICAgbGluayBmcm9tIGJlaW5nIGZvbGxvd2VkLgorCisg
ICAgICAgIEluIG9yZGVyIHRvIHJlc29sdmUgYm90aCBpc3N1ZXMgYW5kIHJlZHVjZSBkdXBsaWNh
dGlvbiBvZiBsb2dpYywgbW92ZSB0aGUgY29kZSB0aGF0IGludHJvc3BlY3RzCisgICAgICAgIHRo
ZSBlbGVtZW50IGFuZCBpbnZva2VzIERhdGEgRGV0ZWN0b3JzIFVJIGZyb20gaGlnaC1sZXZlbCBX
ZWJLaXQgZXZlbnQgZGlzcGF0Y2ggY29kZSAod2hlcmUgaXQKKyAgICAgICAgZG9lc24ndCByZWFs
bHkgYmVsb25nKSBkb3duIHRvIFdlYkNvcmUncyBkZWZhdWx0IGNsaWNrIGV2ZW50IGhhbmRsZXIg
Zm9yIGFuY2hvcnMsIHJpZ2h0IG5leHQgdG8KKyAgICAgICAgdGhlIGNvZGUgdGhhdCB3b3VsZCBv
cmRpbmFyaWx5IGNhdXNlIGEgbmF2aWdhdGlvbi4gVGhpcyB3YXksIG5vIG1hdHRlciBob3cgd2Ug
Z2V0IGhlcmUsIHdoZXRoZXIKKyAgICAgICAgYnkgc3ludGhldGljIGNsaWNrIG9yIHJlYWwgY2xp
Y2ssIHdlJ2xsIGludm9rZSB0aGUgRGF0YSBEZXRlY3RvcnMgVUkuCisKKyAgICAgICAgT25lIGFs
dGVybmF0aXZlIGNvbnNpZGVyZWQgYXQgbGVuZ3RoOiB3ZSBjb3VsZCBhY3R1YWxseSBsZXQgdGhl
IG5hdmlnYXRpb24gaGFwcGVuLCBhbmQgaW5zdGVhZAorICAgICAgICBoYW5kbGUgdGhlIHN3aXRj
aCBpbiBuYXZpZ2F0aW9uIHBvbGljeSBjb2RlLCBidXQgdGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMg
dGhhdCBkaWQgbm90IHNlZW0gaWRlYWw6CisgICAgICAgIDEpIFdlJ2QgbmVlZCB0byBwbHVtYiBw
bGF0Zm9ybS1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgdGhyb3VnaCBhIHRvbiBvZiBGcmFtZUxv
YWRlciBjb2RlLgorICAgICAgICAyKSBDbGllbnRzIG9mdGVuIGJsb2NrIG5vbi1IVFRQKFMpIG5h
dmlnYXRpb25zLCBzbyBpbiBvcmRlciB0byBrZWVwIHRoZSBmZWF0dXJlIGZ1bmN0aW9uYWwsCisg
ICAgICAgICAgIHdlJ2QgaGF2ZSB0byBkaXNyZWdhcmQgdGhlIGNsaWVudCdzIHBvbGljeSBkZWNp
c2lvbiwgZGVmZWF0aW5nIG11Y2ggb2YgdGhlIHB1cnBvc2Ugb2YgbWFraW5nCisgICAgICAgICAg
IHVzZSBvZiB0aGUgbmF2aWdhdGlvbiBtZWNoYW5pc20gaW4gdGhlIGZpcnN0IHBsYWNlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJv
bWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvd0Rh
dGFEZXRlY3RvcnNVSUZvckVsZW1lbnQpOgorICAgICAgICBQbHVtYiBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbiBmcm9tIGlPUyBXZWJLaXQncyBDaHJvbWVDbGllbnQK
KyAgICAgICAgaW1wbGVtZW50YXRpb24gYWxsIHRoZSB3YXkgdG8gV0tDb250ZW50Vmlldy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVu
dUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF0pOiBEZWxldGVkLgorICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1c2ggSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW50byBXS0FjdGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBpbnN0ZWFkIG9mIGhh
dmluZyBpdCBhbHdheXMgcHVsbCBhIGZyZXNoIG9uZSB1cG9uIGludm9jYXRpb24sIHNvIHRoYXQg
d2UgY2FuIHVzZSB0aGUKKyAgICAgICAgcG9zaXRpb24gaW5mb3JtYXRpb24gcGFzc2VkIGFsb25n
IHdpdGggdGhlIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uIG1lc3Nh
Z2UuCisKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBfY29udGV4dE1lbnVJbnRl
cmFjdGlvbjpvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0
TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICBGaXggYW4gZXhpc3Rpbmcg
YnVnIHdoZXJlIERhdGEgRGV0ZWN0b3JzIGNvbnRleHQgbWVudXMgd291bGQgc2hvdWxkIGV4dHJh
IGRlZmF1bHQgYWN0aW9ucywKKyAgICAgICAgYnkgbW92aW5nIG91ciBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgLV9jb250ZXh0TWVudUludGVyYWN0aW9uOm92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0Zv
ckNvbmZpZ3VyYXRpb246CisgICAgICAgIGRlbGVnYXRlIGhlcmUsIHNoYXJpbmcgaXQgd2l0aCBX
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIHdl
IHNob3VsZCByZWNvbnNpZGVyIGhhdmluZyB0aHJlZSBzZXBhcmF0ZSBVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25zLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB0aGUgY29udGV4dE1lbnVQcmVzZW50
YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OiBkZWxlZ2F0ZSwKKyAgICAgICAg
c2luY2UgaXQgd2lsbCBiZSB3cm9uZyBpbiB0aGUgY2FzZSBvZiBwdXNoZWQtaW4gcG9zaXRpb24g
aW5mb3JtYXRpb24sIGFuZCBpbnN0ZWFkCisgICAgICAgIHVzZSB0aGUgcG9zaXRpb24gaW5mb3Jt
YXRpb24ncyBvcmlnaW5hbCBoaXQgdGVzdCBwb2ludC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3No
b3dEYXRhRGV0ZWN0b3JzVUldKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWROb3RIYW5kbGVUYXBBc0NsaWNrOl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9u
U2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgIEluc3RlYWQgb2YgZXhwb3Npbmcg
YW4gdW5uZWNlc3NhcnkgLWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGdldHRlciBvbiBXS0Fj
dGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBwcm92aWRlIGl0IGFzIGFuIGFyZ3VtZW50IHRv
IHRoZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUgbWV0aG9kcyB0aGF0IGFjdHVhbGx5
IG5lZWQgaXQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250ZXh0TWVudVByZXNlbnRh
dGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3ZlcnJpZGVTdWdnZXN0
ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgQWRvcHQgV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCdzIHN1Z2dlc3RlZEFjdGlvbnMgbWVjaGFuaXNtIHNvIHdlIGNhbiBzaGFyZSBj
b2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgt
W1dLUERGVmlldyBfc2hvd0FjdGlvblNoZWV0Rm9yVVJMOmF0TG9jYXRpb246d2l0aEFubm90YXRp
b25SZWN0Ol0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICAoLVtX
S1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpdKTog
RGVsZXRlZC4KKyAgICAgICAgQWRhcHQgdG8gc29tZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGUgY2hhbmdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAgICAgUmVtb3ZlIHRoZSBhZm9yZW1lbnRpb25lZCBz
aG9ydC1jaXJjdWl0aW5nIHBhdGhzIGZvciBEYXRhIERldGVjdG9ycyBsaW5rcy4KIAogMjAyMC0w
NS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggNzFlMGRlNDIyNDhkMTY4ZDMxOTU5OTY5YWU4OWIw
OWY0NWVkYjJlZi4uYzcyMDRlMThjZDI5MmUyOTc3MTg3YjNjZDdjODllMWMxYzUzZjViOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTA5ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5n
IGEgdGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50
IFVJIHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorCiAyMDIwLTA0LTExICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIGxpdmUgcmFuZ2VzIGlu
IGZ1bmN0aW9ucyB0aGF0IHJldHVybiByYW5nZSBvZiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDhmYzc5YzI3Y2MzN2Q1MGFhZDM0YTFjNmY5
MTVhZTc5ZDhjNjg5N2QuLmQ4ZjFhNDBjMjA1M2RmNDQxYWJlYTgwYjlmNTQyY2FjNjBlZWI0YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldElzU2ltdWxhdGVkKGJvb2wgdmFsdWUpIHsgbV9pc1NpbXVs
YXRlZCA9IHZhbHVlOyB9CiAgICAgaW50IHBhZ2VYKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHBh
Z2VZKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRQb2ludCBsb2NhdGlvbkluUm9vdFZpZXdDb29y
ZGluYXRlcygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UG9pbnQgbG9jYXRpb25J
blJvb3RWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IExheW91dFBv
aW50JiBwYWdlTG9jYXRpb24oKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgeCgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGludCB5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCmluZGV4IDM5YmJiMWY4NGVmM2EyZDJmZTVm
NzhiMjY4MzZlODg3NDQ5ODliNjguLjdmZjk5OGRiYTE3YWY2MTgyNjE2OTUwZmJiNWQyNmUzZTI0
ZmQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsoRWxlbWVudCYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50
Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbihFbGVtZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuUHJlc2Vu
dERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHJlcXVpcmVzRXh0ZW5kZWRDb250ZXh0KEVsZW1lbnQmKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KaW5kZXgg
YTI2ZDgzYjc1ZWU2MGFmMjBhNjkyY2NlMTJlMDNmY2FmNDcwYTA5Mi4uMDg0ZWRiZmZlOWM0ZGFl
NzdkNzAwYmMzMjQzYTE3ZjMzZmNiNDA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMTgzLDcgKzE4Myw3IEBAIFN0cmluZyBEYXRhRGV0
ZWN0aW9uOjpkYXRhRGV0ZWN0b3JJZGVudGlmaWVyKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0
dXJuIGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2RhdGFf
ZGV0ZWN0b3JzX3Jlc3VsdEF0dHIpOwogfQogCi1ib29sIERhdGFEZXRlY3Rpb246OnNob3VsZENh
bmNlbERlZmF1bHRBY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKK2Jvb2wgRGF0YURldGVjdGlvbjo6
Y2FuUHJlc2VudERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoIWlzRGF0YURldGVjdG9yTGluayhlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA2ZmM5
YjQ3ZmRiMTJmNjhkNmNmNGMxNWE2OTAzMTNlNzViNzIzYjFkLi44MmU4ZjhiMjE1OGQxMTE4Y2U5
ZGFmM2U2MTc3N2NkZDgyZTgyMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcApAQCAtMjUsNyArMjUsMTAgQEAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uLmgiCisjaW5jbHVkZSAiQ2hyb21l
LmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0Lmgi
CisjaW5jbHVkZSAiRGF0YURldGVjdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAg
LTQ2Niw2ICs0NjksMTUgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZl
bnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBldmVudCk7
CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsLnRvU3Ry
aW5nKCkpOwogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlmIChEYXRhRGV0ZWN0
aW9uOjppc0RhdGFEZXRlY3RvckxpbmsoKnRoaXMpICYmIERhdGFEZXRlY3Rpb246OmNhblByZXNl
bnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50KCp0aGlzKSkgeworICAgICAgICBpZiAoYXV0byog
cGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKSB7CisgICAgICAgICAgICBpZiAocGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuc2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoKnRoaXMsIGV2ZW50KSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAg
IFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRF
KQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvd25s
b2FkQXR0cmlidXRlRW5hYmxlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggYjhkMTExNjhjNjkzOGU4YjM3ZmU2NDRmOWQ0MWQ2YWQ0MmY1MzhjMy4uNzFkNGU1NDM5
MWI2MDU2MjVjMWVjZGM0ZTk3YTdhMzAxZDAxMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMTc4LDggKzE3OCwxMCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6
IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkT3JVcGRhdGVTY3JvbGxpbmdMYXll
cihOb2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5ZXIqLCBjb25zdCBJbnRTaXplJiwg
Ym9vbCwgYm9vbCkgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVTY3JvbGxpbmdMYXllcihOb2Rl
KiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5ZXIqKSBmaW5hbCB7IH0KIAotICAgIHZvaWQg
d2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIGZpbmFsIHsgfTsKLSAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYp
IGZpbmFsIHsgfTsKKyAgICB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0ZWQoKSBmaW5hbCB7
IH0KKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sLCBSb3V0ZVNoYXJpbmdQ
b2xpY3ksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorCisgICAgYm9vbCBzaG93RGF0YURldGVj
dG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgY29uc3QgRXZlbnQmKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBFTkFC
TEUoT1JJRU5UQVRJT05fRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXgg
MzQzZGEyYzEyMzg1MjFhODY5YzJhOGE3N2E3M2FiZDI5NWQ0YjY1MS4uMjliNWQyNmRkYjlhNWFk
ZmU3M2Q5ZThkNjAxNzg5NzM5MGMxZjUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CkBAIC0yNzIsNiArMjcyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdlYkFwcE9y
aWVudGF0aW9uc1VwZGF0ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmlu
ZyYpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVu
dChjb25zdCBFbGVtZW50JiwgY29uc3QgRXZlbnQmKSA9IDA7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5k
ZXggYWEwNmUwNDI1YzkyZmIzNDBjZmQ1NTk0ZWQ2NTY0NTcwZTJkZWU0OS4uYjMxOTk4MzQwYTQ4
MGY4ZTMwMzNjODMwODJlNzkwMjI4MjA0YTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtNDE0LDYgKzQxNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9z
aXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZShjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZUltYWdlVG9MaWJyYXJ5KFJlZjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFzVmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVs
ZW1lbnRSZWN0LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3Jt
YXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5
KHVpbnQ2NF90IHJlcXVlc3RJRCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTbWFydE1h
Z25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0
LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2Fs
ZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVt
Wm9vbVNjYWxlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBhY2YzNDkzNDc3ZGIyYTc3ZTkyMDhiMjc5MzdkYTllNTMwMWUzM2Y2Li42ZmY3OWE3
ZGZiZGM1YTZjYWQ4OWNmMjg5NmU4OTQ3NDQzYTZkNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtODE5LDYgKzgxOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShpbnQ2NF90IGxvY2F0aW9uRGVsdGEsIGludDY0X3QgbGVu
Z3RoRGVsdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0
RG9jdW1lbnRFZGl0aW5nQ29udGV4dChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1
ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4
dCk+JiYpOwogICAgIHZvaWQgZ2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUpOworICAgIHZvaWQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBv
c2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgZGlkSGFuZGxlRHJhZ1N0YXJ0
UmVxdWVzdChib29sIHN0YXJ0ZWQpOwogICAgIHZvaWQgZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJ
dGVtc1JlcXVlc3QoYm9vbCBhZGRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOGY4MGJhNDA4MWRkZWJkNWZkMjhjZDk5YzQy
M2EzYTYwNjc1NjFlYy4uZDEyMDIxMTUyMWYwNjExOTE5NWQ5ZGM3OGM4ZjQ3ZWRkNjhkZGNkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNDI2LDYgKzQyNiw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBV
cGRhdGVTdHJpbmdGb3JGaW5kKFN0cmluZyBmaW5kU3RyaW5nKQogICAgIEhhbmRsZUF1dG9jb3Jy
ZWN0aW9uQ29udGV4dChzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQgY29u
dGV4dCkKKworICAgIFNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKHN0
cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9u
KQogI2VuZGlmCiAKICAgICBEaWRDaGFuZ2VJbnNwZWN0b3JGcm9udGVuZENvdW50KHVpbnQ2NF90
IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAppbmRleCBhZTc1OGQ0Y2ZiOGNiZTU5NjdlN2QwYjNiNTExZTUzOTlkMTMxMDA3Li43YTkz
NzdhYzE4MTE1NzVhNzI0YjY1NTZlNzkwY2NkNzQ4ZjAyOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTY4LDYgKzE2OCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvbkluZm9ybWF0aW9uRGlkQ2hhbmdlKGNvbnN0IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzYXZl
SW1hZ2VUb0xpYnJhcnkoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93RGF0YURldGVjdG9yc1VJRm9y
UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5
KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBh
cmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2Vk
VVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRl
eCAzM2ZiOGQ5NjU1MzJiYWVkY2YzMTMzYzIwMjRhNzljN2Q3NTgyNmFlLi4wOTI4ZDQ1ODI0ZDYz
OTUzYjNkOWYxMGIxMWEwN2I1NDU1ZTliZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC05NTQsNiArOTU0LDExIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIHVpbnQ2CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mb3JtYXRpb24p
Cit7CisgICAgW21fY29udGVudFZpZXcgX3Nob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbklu
Zm9ybWF0aW9uOnBvc2l0aW9uSW5mb3JtYXRpb25dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAppbmRleCA2ZGFlNDUw
YWMyNGE4M2Y0ZDAzNDc3MGU1YTMwNWM3MWUyOWQ0YTNhLi5hNWI0YTY0MjQ4ODQ4Zjc1Y2QxMGE0
YzM3YzQ2OTk0MzcyOWI2MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgV2Vi
UGFnZVByb3h5Owogc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogfQog
CitAY2xhc3MgVUlNZW51RWxlbWVudDsKIEBjbGFzcyBVSVRhcmdldGVkUHJldmlldzsKIEBjbGFz
cyBXS0FjdGlvblNoZWV0QXNzaXN0YW50OwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
OwpAQCAtNjAsMTAgKzYxLDkgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uOwogLSAoQ0dSZWN0KXVub2NjbHVkZWRXaW5kb3dCb3VuZHNGb3JBY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKIC0gKHZvaWQpYWN0aW9u
U2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgd2lsbFN0
YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50OwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlvbjooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKLS0gKE5TRGljdGlvbmFyeSAqKWRhdGFE
ZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQ7CistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4
dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0
YW50IHBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CiAtIChOU1N0cmluZyAqKXNlbGVj
dGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50OwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudCBnZXRBbHRlcm5hdGVVUkxGb3JJbWFnZTooVUlJbWFnZSAqKWlt
YWdlIGNvbXBsZXRpb246KHZvaWQgKF4pKE5TVVJMICphbHRlcm5hdGVVUkwsIE5TRGljdGlvbmFy
eSAqdXNlckluZm8pKWNvbXBsZXRpb247Ci0tIChDR1BvaW50KWNvbnRleHRNZW51UHJlc2VudGF0
aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCAqKWFzc2lzdGFudDsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKIC0gKFVJVGFyZ2V0ZWRQcmV2
aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNlbmRpZgpAQCAtODAsNyAr
ODAsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAtIChpZClp
bml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXc7CiAtICh2b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2
b2lkKXNob3dJbWFnZVNoZWV0OwotLSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0OworLSAo
dm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlv
bjsKIC0gKHZvaWQpY2xlYW51cFNoZWV0OwogLSAodm9pZCl1cGRhdGVTaGVldFBvc2l0aW9uOwog
LSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNG
b3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CkBAIC04
OCw3ICs4OCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKIC0g
KEJPT0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9z
aXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpaW5mb3JtYXRpb247CiAtIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlv
blRpdGxlczsKLS0gKE9wdGlvbmFsPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24+KWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uOworLSAoTlNBcnJheTxVSU1lbnVFbGVt
ZW50ICo+ICopc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3Jt
YXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBv
c2l0aW9uSW5mb3JtYXRpb247CiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFz
c2lzdGFudC5tbQppbmRleCAyOTY2YmQ4MzZjMTI4OWU3ZmFhOGY4YmEyZjY1Nzk3ZGEzOGQ0YzUw
Li5kYzZiYTA1ODRhNmFiMjEyMWZhNjk1ZmRlMjY5ODc3MDZhMzIyMzhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpA
QCAtNjUzLDE0ICs2NTMsMTMgQEAgLSAodm9pZCllbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9u
CiB9CiAjZW5kaWYKIAotLSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0CistICh2b2lkKXNo
b3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7CiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIGlmICghX2RlbGVnYXRlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoIVtzZWxmIHN5bmNocm9ub3VzbHlSZXRyaWV2ZVBvc2l0aW9uSW5m
b3JtYXRpb25dKQotICAgICAgICByZXR1cm47CisgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSBw
b3NpdGlvbkluZm9ybWF0aW9uOwogCiAgICAgaWYgKCFXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhfcG9zaXRpb25JbmZvcm1hdGlvbi0+dXJsKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjczLDggKzY3Miw4IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRl
Y3RvcnNTaGVldAogICAgIE5TRGljdGlvbmFyeSAqY29udGV4dCA9IG5pbDsKICAgICBOU1N0cmlu
ZyAqdGV4dEF0U2VsZWN0aW9uID0gbmlsOwogCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNz
aXN0YW50OildKQotICAgICAgICBjb250ZXh0ID0gW19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOworICAgIGlmIChbX2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25T
aGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9uOildKQorICAgICAgICBjb250ZXh0ID0g
W19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgcG9zaXRpb25JbmZvcm1hdGlvbjoqX3Bvc2l0aW9uSW5mb3JtYXRpb25dOwogICAgIGlmIChb
X2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2VsZWN0ZWRUZXh0Rm9yQWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCiAgICAgICAgIHRleHRBdFNlbGVjdGlvbiA9IFtfZGVsZWdh
dGUgc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAKQEAgLTY4OSwx
NSArNjg4LDEwIEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldAogICAgIGlmIChbZGF0
YURldGVjdG9yc0FjdGlvbnMgY291bnRdID09IDApCiAgICAgICAgIHJldHVybjsKICAgICAKLSNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBIQVZFKFVJ
Q09OVEVYVE1FTlVfTE9DQVRJT04pCi0gICAgYXV0byBkZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQo
KTsKLSAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGV4
dE1lbnVQcmVzZW50YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKSB7Ci0g
ICAgICAgIFtzZWxmIGVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOwotICAgICAgICBbX2Rh
dGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpb
ZGVsZWdhdGUgY29udGV4dE1lbnVQcmVzZW50YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNz
aXN0YW50OnNlbGZdXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCisjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpICYmIEhBVkUoVUlDT05URVhUTUVOVV9MT0NBVElPTikKKyAgICBbc2Vs
ZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKKyAgICBbX2RhdGFEZXRlY3RvckNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1h
dGlvbi0+cmVxdWVzdC5wb2ludF07CisjZWxzZQogICAgIE5TTXV0YWJsZUFycmF5ICplbGVtZW50
QWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CiAgICAgZm9yIChOU1VJbnRlZ2VyIGFj
dGlvbk51bWJlciA9IDA7IGFjdGlvbk51bWJlciA8IFtkYXRhRGV0ZWN0b3JzQWN0aW9ucyBjb3Vu
dF07IGFjdGlvbk51bWJlcisrKSB7CiAgICAgICAgIEREQWN0aW9uICphY3Rpb24gPSBbZGF0YURl
dGVjdG9yc0FjdGlvbnMgb2JqZWN0QXRJbmRleDphY3Rpb25OdW1iZXJdOwpAQCAtNzE2LDYgKzcx
MCw3IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldAogICAgIGlmICghW19pbnRlcmFj
dGlvblNoZWV0IHByZXNlbnRTaGVldDpXS0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlv
bl0pCiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CiAjZW5kaWYKKyNlbmRpZiAvLyBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCiB9CiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQpAQCAtNzI1LDE1ICs3MjAsMTQgQEAgLSAoVUlDb250ZXh0TWVudUNv
bmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb24KICAgICBOU0RpY3Rpb25hcnkgKmNvbnRleHQgPSBuaWw7CiAgICAgTlNTdHJpbmcgKnRl
eHRBdFNlbGVjdGlvbiA9IG5pbDsKIAotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDopXSkKLSAgICAgICAgY29udGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRG
b3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRB
c3Npc3RhbnQ6cG9zaXRpb25JbmZvcm1hdGlvbjopXSkKKyAgICAgICAgY29udGV4dCA9IFtfZGVs
ZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHBv
c2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKICAgICBpZiAoW19kZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNlbGVjdGVkVGV4dEZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OildKQogICAgICAgICB0ZXh0QXRTZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNl
bGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogCiAgICAgTlNEaWN0aW9u
YXJ5ICpuZXdDb250ZXh0ID0gbmlsOwogICAgIEREUmVzdWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRy
b2xsZXIgcmVzdWx0Rm9yVVJMOl9wb3NpdGlvbkluZm9ybWF0aW9uLT51cmwgaWRlbnRpZmllcjpf
cG9zaXRpb25JbmZvcm1hdGlvbi0+ZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6
dGV4dEF0U2VsZWN0aW9uIHJlc3VsdHM6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3Rv
clJlc3VsdHMuZ2V0KCkgY29udGV4dDpjb250ZXh0IGV4dGVuZGVkQ29udGV4dDombmV3Q29udGV4
dF07CiAKLQogICAgIENHUmVjdCBzb3VyY2VSZWN0OwogICAgIGlmIChfcG9zaXRpb25JbmZvcm1h
dGlvbi0+aXNMaW5rKQogICAgICAgICBzb3VyY2VSZWN0ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24t
PmxpbmtJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKQEAg
LTc1MSwxMyArNzQ1LDExIEBAIC0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uCiAtIChVSVRhcmdldGVk
UHJldmlldyAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIHByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRp
b246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogewogICAgIGF1
dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7Ci0gICAgQ0dQb2ludCBjZW50ZXIgPSBDR1Bv
aW50WmVybzsKKyAgICBDR1BvaW50IGNlbnRlciA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1
ZXN0LnBvaW50OwogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNzaXN0
YW50OildKQogICAgICAgICByZXR1cm4gW2RlbGVnYXRlIGNyZWF0ZVRhcmdldGVkQ29udGV4dE1l
bnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAgICAgCi0gICAgaWYgKFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRleHRNZW51UHJlc2VudGF0aW9u
TG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKLSAgICAgICAgY2VudGVyID0gW2Rl
bGVnYXRlIGNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lz
dGFudDpzZWxmXTsKICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJl
dmlld1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5p
dF0pOwogICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9w
dE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRB
dXRvcmVsZWFzZWQoKSBjZW50ZXI6Y2VudGVyXSk7CiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQ
cmV2aWV3PiBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9jXSBpbml0
V2l0aFZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQcmV2aWV3
UGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOwpAQCAtNzc3LDYg
Kzc2OSwzNCBAQCAtICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxFbmRGbwogICAgICAgICBbc2VsZiByZW1vdmVD
b250ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICB9XTsKIH0KKworc3RhdGljIE5TQXJyYXk8VUlN
ZW51RWxlbWVudCAqPiAqbWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKFJldGFpblB0cjxO
U0FycmF5PiBkZWZhdWx0RWxlbWVudEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbz4gZWxlbWVudEluZm8pCit7CisgICAgaWYgKCFbZGVmYXVsdEVsZW1lbnRBY3Rpb25z
IGNvdW50XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gYWN0aW9ucyA9IFtOU011
dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpbZGVmYXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50
XV07CisgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVtZW50QWN0aW9uIGluIGRlZmF1bHRF
bGVtZW50QWN0aW9ucy5nZXQoKSkKKyAgICAgICAgW2FjdGlvbnMgYWRkT2JqZWN0OltlbGVtZW50
QWN0aW9uIHVpQWN0aW9uRm9yRWxlbWVudEluZm86ZWxlbWVudEluZm8uZ2V0KCldXTsKKworICAg
IHJldHVybiBhY3Rpb25zOworfQorCistIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilfY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rp
b24gb3ZlcnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCit7CisgICAgaWYgKCFfcG9zaXRpb25JbmZv
cm1hdGlvbikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gW3NlbGYgc3VnZ2VzdGVk
QWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbklu
Zm9ybWF0aW9uXTsKK30KKworLSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopc3VnZ2VzdGVk
QWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24K
K3sKKyAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGFsbG9jXSBfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjpwb3Np
dGlvbkluZm9ybWF0aW9uIHVzZXJJbmZvOm5pbF0pOworICAgIFJldGFpblB0cjxOU0FycmF5PF9X
S0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCA9IHBvc2l0aW9u
SW5mb3JtYXRpb24uaXNMaW5rID8gW3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxl
bWVudEluZm8uZ2V0KCldIDogW3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1l
bnRJbmZvLmdldCgpXTsKKyAgICByZXR1cm4gbWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25z
KGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxlbWVudEluZm8pOworCit9CisKICNlbmRp
ZgogCiAtICh2b2lkKWNsZWFudXBTaGVldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDU2YjhiZDgwNjhlZTMx
MmMwMmUzMTU1NWM4MjJiZjE4NDgwYjNkYTMuLmE0ODY4Yzc5NzRlNmI1YjgxMjdiMTdmM2NkM2Vi
OTBlYWNjMjhjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTUzMCw3ICs1MzAsOCBAQCBGT1JfRUFDSF9Q
UklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05f
Rk9SX1dFQl9WSUVXKQogLSAodm9pZClfYWNjZXNzaWJpbGl0eUNsZWFyU2VsZWN0aW9uOwogLSAo
V0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNlc3Npb247CiAtICh2b2lkKV9kaWRDaGFu
Z2VXZWJWaWV3RWRpdGFiaWxpdHk7Ci0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24pcG9zaXRpb25JbmZvcm1hdGlvbjsKKy0gKE5TRGljdGlvbmFyeSAqKWRhdGFE
ZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKKy0gKHZv
aWQpX3Nob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9u
OwogCiAtICh2b2lkKXdpbGxGaW5pc2hJZ25vcmluZ0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3Jt
aW5nQWN0aW9uOwogCkBAIC01NDksNyArNTUwLDYgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRF
TlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykK
IAogLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJp
bmcmKW9yaWdpbklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRs
ZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZv
aWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBv
c2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0KXJlcXVlc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDJkNWU3NDQ5YTg5MzQwNjll
ZjdmMmM2NmFlZjFjYzcwZTdlYzA4M2QuLmMxZDA1ZGYzMjAwNTVlOWEyMzNlZWQwYWI3ZjcwNDU0
MmY4NDNmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjE0OCw5ICsyMTQ4LDE0IEBAIC0gKHZvaWQp
X3Nob3dMaW5rU2hlZXQKICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dMaW5rU2hlZXRd
OwogfQogCi0tICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1NoZWV0CistICh2b2lkKV9zaG93RGF0
YURldGVjdG9yc1VJCiB7Ci0gICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVj
dG9yc1NoZWV0XTsKKyAgICBbc2VsZiBfc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5m
b3JtYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb25dOworfQorCistICh2b2lkKV9zaG93RGF0YURl
dGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIFtfYWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRp
b246cG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNz
RnJvbVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24KQEAgLTIxNjcsNyArMjE3Miw3IEBA
IC0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvCiAgICAgaWYgKHBvc2l0aW9uSW5mb3JtYXRpb24uaXNM
aW5rKSB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgICAgICBpZiAoV2ViQ29yZTo6
RGF0YURldGVjdGlvbjo6Y2FuQmVQcmVzZW50ZWRCeURhdGFEZXRlY3RvcnMocG9zaXRpb25JbmZv
cm1hdGlvbi51cmwpKQotICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0RhdGFEZXRl
Y3RvcnNTaGVldCk7CisgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93RGF0YURldGVj
dG9yc1VJKTsKICNlbmRpZgogICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93TGlua1NoZWV0
KTsKICAgICB9CkBAIC0yMTgyLDExICsyMTg3LDYgQEAgLSAoU0VMKV9hY3Rpb25Gb3JMb25nUHJl
c3MKICAgICByZXR1cm4gW3NlbGYgX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9y
bWF0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAotLSAoV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiljdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgotewotICAg
IHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKLX0KLQogLSAodm9pZClkb0FmdGVyUG9zaXRp
b25JbmZvcm1hdGlvblVwZGF0ZToodm9pZCAoXikoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QpcmVxdWVzdAogewogICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9u
SW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkgewpAQCAtMjcyMywxNSArMjcy
Myw2IEBAIC0gKHZvaWQpX2RpZE5vdEhhbmRsZVRhcEFzQ2xpY2s6KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jilwb2ludAogewogICAgIFtzZWxmIF9yZXNldElucHV0Vmlld0RlZmVycmFsXTsKIAot
ICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB0YWtlIGludG8gYWNjb3VudCB3aGV0aGVyIG9y
IG5vdCB0aGUgVUkgZGVsZWdhdGUKLSAgICAvLyBoYXMgaGFuZGxlZCB0aGlzIG5vdGlmaWNhdGlv
bi4KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgaWYgKF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24gJiYgcG9pbnQgPT0gX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2lu
dCAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0RhdGFEZXRlY3RvckxpbmspIHsKLSAgICAgICAg
W3NlbGYgX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
I2VuZGlmCi0KICAgICBpZiAoIV9pc0RvdWJsZVRhcFBlbmRpbmcpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNjkwNCw3ICs2ODk1LDcgQEAgLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFN0
b3BJbnRlcmFjdGlvbjooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGEKICAgICBfcGFn
ZS0+c3RvcEludGVyYWN0aW9uKCk7CiB9CiAKLS0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rp
b25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbilwb3NpdGlvbkluZm9ybWF0aW9uCistIChOU0RpY3Rpb25hcnkgKilk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24KIHsK
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gY29udGV4dDsKICAgICBpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsKQEAgLTY5MzMsOSArNjkyNCw5IEBA
IC0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjooV2ViS2l0OjpJbnRlcmFjdGlvCiAjZW5kaWYKIH0KIAotLSAoTlNEaWN0aW9uYXJ5ICop
ZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCAqKWFzc2lzdGFudAorLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNv
bnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudCBwb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7Ci0gICAgcmV0dXJuIFtz
ZWxmIGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjphc3Npc3RhbnQu
Y3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24udmFsdWVPcihfcG9zaXRpb25JbmZvcm1hdGlvbild
OworICAgIHJldHVybiBbc2VsZiBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3Jt
YXRpb246cG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0gKE5TU3RyaW5nICopc2VsZWN0ZWRU
ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Np
c3RhbnQKQEAgLTY5NTQsMTEgKzY5NDUsNiBAQCAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50
OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGdldEFsdGVybmF0ZVVSTAogICAg
ICAgICBjb21wbGV0aW9uKG5pbCwgbmlsKTsKIH0KIAotLSAoQ0dQb2ludCljb250ZXh0TWVudVBy
ZXNlbnRhdGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRB
c3Npc3RhbnQgKilhc3Npc3RhbnQKLXsKLSAgICByZXR1cm4gW3NlbGYgbGFzdEludGVyYWN0aW9u
TG9jYXRpb25dOwotfQotCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKFVJVGFyZ2V0ZWRQ
cmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudApAQCAtOTE4NiwxMyArOTE3
MiwxMSBAQCAtICh2b2lkKWNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbldpdGhEYXRhRGV0
ZWN0b3JzOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDbwogCiAtIChOU0FycmF5PFVJTWVudUVsZW1l
bnQgKj4gKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9u
ICopaW50ZXJhY3Rpb24gb3ZlcnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjoo
VUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgaWYgKF9j
b250ZXh0TWVudUFjdGlvblByb3ZpZGVyRGVsZWdhdGVOZWVkc092ZXJyaWRlKSB7Ci0gICAgICAg
IGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxs
b2NdIF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl9wb3NpdGlvbklu
Zm9ybWF0aW9uIHVzZXJJbmZvOm5pbF0pOwotICAgICAgICBSZXRhaW5QdHI8TlNBcnJheTxfV0tF
bGVtZW50QWN0aW9uICo+PiBkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQgPSBfcG9zaXRpb25J
bmZvcm1hdGlvbi5pc0xpbmsgPyBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25z
Rm9yTGlua1NoZWV0OmVsZW1lbnRJbmZvLmdldCgpXSA6IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQg
ZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKLSAgICAgICAg
cmV0dXJuIG1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21B
c3Npc3RhbnQsIGVsZW1lbnRJbmZvKTsKLSAgICB9CiAgICAgLy8gSWYgd2UncmUgaGVyZSB3ZSdy
ZSBpbiB0aGUgbGVnYWN5IHBhdGgsIHdoaWNoIGlnbm9yZXMgdGhlIHN1Z2dlc3RlZCBhY3Rpb25z
IGFueXdheS4KLSAgICByZXR1cm4gbmlsOworICAgIGlmICghX2NvbnRleHRNZW51QWN0aW9uUHJv
dmlkZXJEZWxlZ2F0ZU5lZWRzT3ZlcnJpZGUpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBy
ZXR1cm4gW19hY3Rpb25TaGVldEFzc2lzdGFudCBzdWdnZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1l
bnVXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0g
KFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRo
Q29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQppbmRleCAwNmI0ZTlmMWQ0
NTJjN2FmYjZiNTdhNTE0OTFjODA0YWEzZTc4MTQzLi4xMDQxOGY5NDg4M2JmNGRlNGUyYmJhY2Zi
ZjQ4ZGYzNWNiZWU2ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcu
bW0KQEAgLTQ4NSwxMiArNDg1LDE1IEBAIC0gKHZvaWQpX3Nob3dBY3Rpb25TaGVldEZvclVSTDoo
TlNVUkwgKil1cmwgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB3aXRoQW5uCiAgICAgcG9z
aXRpb25JbmZvcm1hdGlvbi51cmwgPSB1cmw7CiAKICAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9
IFdURk1vdmUocG9zaXRpb25JbmZvcm1hdGlvbik7CisKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCi0gICAgaWYgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhbkJlUHJlc2VudGVkQnlEYXRh
RGV0ZWN0b3JzKF9wb3NpdGlvbkluZm9ybWF0aW9uLnVybCkpCi0gICAgICAgIFtfYWN0aW9uU2hl
ZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF07Ci0gICAgZWxzZQorICAgIGlmIChX
ZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhfcG9z
aXRpb25JbmZvcm1hdGlvbi51cmwpKSB7CisgICAgICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQg
c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1h
dGlvbl07CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKLSAgICAgICAgW19hY3Rpb25T
aGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XTsKKworICAgIFtfYWN0aW9uU2hlZXRBc3Npc3Rh
bnQgc2hvd0xpbmtTaGVldF07CiB9CiAKIC0gKHZvaWQpcGRmSG9zdFZpZXdDb250cm9sbGVyOihQ
REZIb3N0Vmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZExvbmdQcmVzc1VSTDooTlNVUkwg
Kil1cmwgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB3aXRoQW5ub3RhdGlvblJlY3Q6KENH
UmVjdClhbm5vdGF0aW9uUmVjdApAQCAtNTgyLDcgKzU4NSw3IEBAIC0gKFJldGFpblB0cjxOU0Fy
cmF5PilhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lz
dGFudCBkCiAgICAgcmV0dXJuIHBhZ2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxl
bWVudCwgV1RGTW92ZShkZWZhdWx0QWN0aW9ucykpOwogfQogCi0tIChOU0RpY3Rpb25hcnkgKilk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0
QXNzaXN0YW50ICopYXNzaXN0YW50CistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50IHBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24KIHsKICAgICBhdXRvIHdlYlZp
ZXcgPSBfd2ViVmlldy5nZXRBdXRvcmVsZWFzZWQoKTsKICAgICBpZiAoIXdlYlZpZXcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmOWI0
OTM5YzE3ZWQ2M2FjZjNmYWZmMWE0ZWQxOWM5MTM4NzMxYjQ5Li5kZWM5YmY5NmFhMjlhOTUxYzYz
Yzg4MjU1ZjAxZjMxZWZmYTM2ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE2MjEsNiArMTYyMSwxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0RGV2aWNlSGFzQUdYQ29tcGlsZXJTZXJ2aWNlRm9yVGVzdGluZygpIGNvbnN0CiAg
ICAgV2ViQ29yZTo6c2V0RGV2aWNlSGFzQUdYQ29tcGlsZXJTZXJ2aWNlRm9yVGVzdGluZygpOwog
fQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5m
b3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBvc2l0aW9u
SW5mbykKK3sKKyAgICBwYWdlQ2xpZW50KCkuc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9u
SW5mb3JtYXRpb24ocG9zaXRpb25JbmZvKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAy
YWRlZDEzMzA4ODg1NjYyZDE2ODJiODQ2NTBlOGNhMzE1Y2U1MmYzLi5kYzQzMGIzODc5MWY5ZTRk
YjMxMWViNDQ0OTRiY2ViNGU0MGZmNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODUsNiAr
MTg1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlc3Ryb3lFZGl0YWJsZUltYWdlKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lEKSBmaW5hbDsKIAogICAgIGJvb2wgc2hv
dWxkVXNlTW91c2VFdmVudEZvclNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNl
RXZlbnQmKSBmaW5hbDsKKworICAgIGJvb2wgc2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OkV2ZW50JikgZmluYWw7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hy
b21lQ2xpZW50SU9TLm1tCmluZGV4IDk3YzcxNGQ0MGMyMDM1MGZmZjQ3NWU5OTc0NmI5YjNiYWEw
NWRhMWMuLjg5NjFmNWJmYjkwOGI0NjMxMDk3OWExZmE4OWQ4MDZjMWI4YjRjODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21l
Q2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQg
IkRyYXdpbmdBcmVhLmgiCiAjaW1wb3J0ICJFZGl0YWJsZUltYWdlQ29udHJvbGxlck1lc3NhZ2Vz
LmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9y
dCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgi
CiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYkZyYW1lLmgi
CkBAIC0zOSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SWNvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5o
PgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgpAQCAtMTkzLDYgKzE5NiwxOCBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6c2hvdWxkVXNlTW91c2VFdmVudEZvclNlbGVjdGlvbihjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybU1vdQogI2VuZGlmCiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG93RGF0
YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBFdmVu
dCYgZXZlbnQpCit7CisgICAgaWYgKCFldmVudC5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IElkZWFsbHksIHdlIHdvdWxkIGJlIGFibGUgdG8g
Z2VuZXJhdGUgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gd2l0aG91dCByZS1oaXQt
dGVzdGluZyB0aGUgZWxlbWVudC4KKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91
c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8gcG9zaXRpb25JbmZvcm1hdGlvbiA9IG1fcGFnZS5w
b3NpdGlvbkluZm9ybWF0aW9uKEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgcm91bmRl
ZEludFBvaW50KG1vdXNlRXZlbnQubG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSkgfSk7
CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0RhdGFEZXRlY3Rv
cnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24ocG9zaXRpb25JbmZvcm1hdGlvbikpOworICAgIHJl
dHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggMjRjOWNjN2M5MTAzMjRmZGM0NDlmYzgxNzRkNjE3ZjI0MTgwODNjOC4uOTg4NWYx
YjQxZWNhZTUzN2ViNDQ4MTJmYTVmN2VkNjVlZTVmOGQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI5MCw2ICsxMjkwLDkgQEAgcHVibGljOgog
ICAgIC8vIFRoZXNlIGluY2x1ZGUgbGF5b3V0IG92ZXJmbG93IGZvciBvdmVyZmxvdzp2aXNpYmxl
IGVsZW1lbnRzLCBidXQgZXhjbHVkZSBib3JkZXJzLgogICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRS
ZWN0IGFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQmKTsKICAgICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld0ludGVyYWN0aW9u
Qm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50Jik7CisKKyAgICBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jik7CisgICAgCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIAogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTM2Niw3ICsxMzY5LDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpc3BhdGNoU3ludGhldGljTW91c2VFdmVudHNGb3JTZWxlY3Rpb25H
ZXN0dXJlKFNlbGVjdGlvblRvdWNoLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAg
dm9pZCBzZW5kUG9zaXRpb25JbmZvcm1hdGlvbihJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYmKTsKLSAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBwb3NpdGlvbklu
Zm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jik7CiAgICAgUmVm
UHRyPFNoYXJlYWJsZUJpdG1hcD4gc2hhcmVhYmxlQml0bWFwU25hcHNob3RGb3JOb2RlKFdlYkNv
cmU6OkVsZW1lbnQmKTsKICAgICBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQgYXV0b2NvcnJlY3Rp
b25Db250ZXh0KCk7CiAgICAgYm9vbCBhcHBseUF1dG9jb3JyZWN0aW9uSW50ZXJuYWwoY29uc3Qg
U3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDI3ZDhlZjlhYmVmYzQzY2NlZjA4MWFiYThmN2E0NGU1NjY2ODcxYWYuLmMxNjZhMDhjNjMzZmRk
ODhjMTVmZDM4NmVjZmQwMWY4NTI2Yzc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04NjksMTMgKzg2OSw2IEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdl
YkV2ZW50OjpNb2RpZmllcj4gbW9kCiAKICAgICBpZiAoIWZyYW1lUmVzcG9uZGluZ1RvQ2xpY2sg
fHwgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQgPCBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgq
ZnJhbWVSZXNwb25kaW5nVG9DbGljayktPmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVy
RGlkQ29tbWl0TG9hZCgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZE5vdEhhbmRsZVRhcEFzQ2xpY2soYWRqdXN0ZWRJbnRQb2ludCkpOwotI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKLSAgICBlbHNlIGlmIChpczxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrKSAmJiBEYXRhRGV0ZWN0aW9uOjpzaG91bGRDYW5jZWxEZWZhdWx0QWN0aW9uKGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spKSkgewotICAgICAgICBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KGFkanVzdGVkSW50UG9pbnQpOwotICAgICAgICBy
ZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KTsKLSAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWROb3RIYW5kbGVUYXBBc0NsaWNrKGFkanVzdGVkSW50UG9pbnQp
KTsKLSAgICB9Ci0jZW5kaWYKICAgICBlbHNlCiAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNr
KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CiB9CkBA
IC0xMDc3LDE0ICsxMDcwLDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVUd29GaW5nZXJUYXBBdFBv
aW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2UKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVl
c3RJRCwgbm9kZVJlc3BvbmRpbmdUb0NsaWNrKTsKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
Ci0gICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spICYmIERhdGFEZXRl
Y3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24oZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVS
ZXNwb25kaW5nVG9DbGljaykpKSB7Ci0gICAgICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KGFkanVzdGVkUG9pbnQpKTsKLSAgICAgICAgcmVx
dWVzdFBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkTm90SGFuZGxlVGFwQXNDbGljayhyb3VuZGVkSW50UG9pbnQoYWRq
dXN0ZWRQb2ludCkpKTsKLSAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICBjb21wbGV0ZVN5bnRo
ZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVy
cywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKKyAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpu
b2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywgV2ViQ29yZTo6
VHdvRmluZ2VyVGFwKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpoYW5kbGVTdHlsdXNTaW5nbGVUYXBB
dFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgdWludDY0X3QgcmVxdWVzdElE
KQpAQCAtMTE2OCwxNiArMTE1NCw5IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFw
KE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgVHJhbnNhCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9wb3RlbnRpYWxUYXBOb2RlID09IG5vZGVSZXNw
b25kaW5nVG9DbGljaykgewotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAgICAgaWYg
KGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNo
b3VsZENhbmNlbERlZmF1bHRBY3Rpb24oZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5n
VG9DbGljaykpKSB7Ci0gICAgICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCBy
ZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChtX3BvdGVudGlhbFRhcExvY2F0aW9uKSk7Ci0gICAgICAg
ICAgICByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KTsKLSAgICAgICAgICAgIGNv
bW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwotICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAg
ICAgICAgaGFuZGxlU3ludGhldGljQ2xpY2soKm5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0
ZWRQb2ludCwgbW9kaWZpZXJzLCBwb2ludGVySWQpOwotICAgIH0gZWxzZQorICAgIGlmIChtX3Bv
dGVudGlhbFRhcE5vZGUgPT0gbm9kZVJlc3BvbmRpbmdUb0NsaWNrKQorICAgICAgICBoYW5kbGVT
eW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50LCBtb2Rp
ZmllcnMsIHBvaW50ZXJJZCk7CisgICAgZWxzZQogICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBG
YWlsZWQoKTsKIAogICAgIG1fcG90ZW50aWFsVGFwTm9kZSA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudElPUy5oCmluZGV4IGI4Yjc1MjYzNTlmZTNlMmY5NjgxM2MwYWVjYWQwNzU1NTMzMGFlZjcu
LmE5MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudElPUy5oCkBAIC05Nyw2ICs5Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SWNvbj4gY3JlYXRl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpIGZpbmFsOwogCisg
ICAgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50JiwgY29uc3QgV2ViQ29yZTo6RXZlbnQmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorCiAj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICBpbnQgZGV2aWNlT3JpZW50YXRpb24o
KSBjb25zdCBmaW5hbDsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398966</attachid>
            <date>2020-05-10 00:12:26 -0700</date>
            <delta_ts>2020-05-10 00:18:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211686-20200510001225.patch</filename>
            <type>text/plain</type>
            <size>44963</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyZjhkYjM5NDBkNmI1
ZjkwMTk3YjM5ZTAyYzlmMmE1ODg5YTczNi4uZGFmMjRkMmUxZWQxNTE4ZjJmNWJhNGYwNWE4OTM2
ZmUwYzhhYzA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTA5ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5nIGEg
dGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50IFVJ
IHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRB
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICBSZW5hbWUgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
biB0byBjYW5QcmVzZW50RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudC4KKyAgICAgICAgVGhpcyBi
aXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50IHNob3VsZCBpbnZva2UgREQgVUkg
aW5zdGVhZCBvZgorICAgICAgICBkb2luZyBpdHMgZGVmYXVsdCBhY3Rpb24sIHNvIGVpdGhlciBu
YW1lIGlzIE9LLCBidXQgaXQgZmVlbHMgYmV0dGVyIHRvCisgICAgICAgIGhhdmUgaXQgaW4gdGhl
IGFmZmlybWF0aXZlIGRpcmVjdGlvbi4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KToKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHRhcHBpbmcgb24gYW4gYW5jaG9yIHNob3VsZCBpbnZv
a2UgRGF0YURldGVjdG9ycyBVSSBpbnN0ZWFkCisgICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIGRl
ZmF1bHQgYWN0aW9uLCBhbmQgc2hvcnQtY2lyY3VpdCBpZiB0aGF0IGlzIHBvc3NpYmxlLgorCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjAtMDUtMDYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1
a2F3YUBzb255LmNvbT4gYW5kIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbl0gSW1wbGVtZW50IERpc3BsYXlSZWZyZXNoTW9uaXRvciBieSB1
c2luZyBSdW5Mb29wOjpUaW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmMxNWJkZGU3MmEyYjhlNDkxNzE5N2Rk
NmE0ZWRlOGYxMzgwMzBiLi4yNDM1OGYxY2EwMTNkZTc4YTYyYzBjYTMxZTJhY2MyNGMxYmI3NmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNS0wOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGlja2luZyBhIHRlbDovLyBsaW5r
IG9uIGlQYWQgd2l0aCBhIHRyYWNrcGFkIHByZXNlbnRzIGRpZmZlcmVudCBVSSB0aGFuIHRhcHBp
bmcgb24gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTY4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDE1ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgaU9TIFdlYktp
dCBoYWQgY29kZSBpbiBoYW5kbGVUYXAsIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQsIGFuZCBj
b21taXRQb3RlbnRpYWxUYXAsCisgICAgICAgIHdoaWNoIGludHJvc3BlY3RlZCB0aGUgaGl0IGVs
ZW1lbnQgL2JlZm9yZS8gZGlzcGF0Y2hpbmcgdGhlIHRhcCAob3Igc3ludGhldGljIGNsaWNrKSB0
byB0aGUgRE9NLAorICAgICAgICBzaG9ydCBjaXJjdWl0aW5nIGFsbCBub3JtYWwgZXZlbnQgaGFu
ZGxpbmcgbWFjaGluZXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uCisg
ICAgICAgIGFuZCBwcmVzZW50IHRoZSBEYXRhIERldGVjdG9ycyBVSSBmb3IgdGhlIGdpdmVuIGxp
bmsuCisKKyAgICAgICAgVGhlcmUncyBvbmUgaW1tZWRpYXRlIHByb2JsZW0gd2l0aCB0aGlzLCB3
aGljaCBpcyB0aGF0IHRoZXJlIGlzIG5vIHNpbWlsYXIgY29kZSBpbiB0aGUgZGlyZWN0CisgICAg
ICAgIGNsaWNrIGV2ZW50IGhhbmRsZXIgcGF0aCwgd2hpY2ggd2Ugbm93IHVzZSBmb3IgdHJhY2tw
YWQvbW91c2UgaW5wdXQgb24gaVBhZC4gVGhlcmUncyBhbHNvIGEKKyAgICAgICAgc2Vjb25kYXJ5
IHByb2JsZW0gKHdoaWNoIHdlIGhhdmUgbm90IHNlZW4gaW4gcHJhY3RpY2UpLCB3aGljaCBpcyB0
aGF0IHBhZ2VzIGNhbm5vdCBwcmV2ZW50RGVmYXVsdAorICAgICAgICB0byBhdm9pZCBsYXVuY2hp
bmcgdGhlIERhdGEgRGV0ZWN0b3JzIFVJIG9uIGEgbGluaywgbGlrZSB0aGV5IGNvdWxkIHRvIHBy
ZXZlbnQgYW4gb3JkaW5hcnkKKyAgICAgICAgbGluayBmcm9tIGJlaW5nIGZvbGxvd2VkLgorCisg
ICAgICAgIEluIG9yZGVyIHRvIHJlc29sdmUgYm90aCBpc3N1ZXMgYW5kIHJlZHVjZSBkdXBsaWNh
dGlvbiBvZiBsb2dpYywgbW92ZSB0aGUgY29kZSB0aGF0IGludHJvc3BlY3RzCisgICAgICAgIHRo
ZSBlbGVtZW50IGFuZCBpbnZva2VzIERhdGEgRGV0ZWN0b3JzIFVJIGZyb20gaGlnaC1sZXZlbCBX
ZWJLaXQgZXZlbnQgZGlzcGF0Y2ggY29kZSAod2hlcmUgaXQKKyAgICAgICAgZG9lc24ndCByZWFs
bHkgYmVsb25nKSBkb3duIHRvIFdlYkNvcmUncyBkZWZhdWx0IGNsaWNrIGV2ZW50IGhhbmRsZXIg
Zm9yIGFuY2hvcnMsIHJpZ2h0IG5leHQgdG8KKyAgICAgICAgdGhlIGNvZGUgdGhhdCB3b3VsZCBv
cmRpbmFyaWx5IGNhdXNlIGEgbmF2aWdhdGlvbi4gVGhpcyB3YXksIG5vIG1hdHRlciBob3cgd2Ug
Z2V0IGhlcmUsIHdoZXRoZXIKKyAgICAgICAgYnkgc3ludGhldGljIGNsaWNrIG9yIHJlYWwgY2xp
Y2ssIHdlJ2xsIGludm9rZSB0aGUgRGF0YSBEZXRlY3RvcnMgVUkuCisKKyAgICAgICAgT25lIGFs
dGVybmF0aXZlIGNvbnNpZGVyZWQgYXQgbGVuZ3RoOiB3ZSBjb3VsZCBhY3R1YWxseSBsZXQgdGhl
IG5hdmlnYXRpb24gaGFwcGVuLCBhbmQgaW5zdGVhZAorICAgICAgICBoYW5kbGUgdGhlIHN3aXRj
aCBpbiBuYXZpZ2F0aW9uIHBvbGljeSBjb2RlLCBidXQgdGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMg
dGhhdCBkaWQgbm90IHNlZW0gaWRlYWw6CisgICAgICAgIDEpIFdlJ2QgbmVlZCB0byBwbHVtYiBw
bGF0Zm9ybS1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgdGhyb3VnaCBhIHRvbiBvZiBGcmFtZUxv
YWRlciBjb2RlLgorICAgICAgICAyKSBDbGllbnRzIG9mdGVuIGJsb2NrIG5vbi1IVFRQKFMpIG5h
dmlnYXRpb25zLCBzbyBpbiBvcmRlciB0byBrZWVwIHRoZSBmZWF0dXJlIGZ1bmN0aW9uYWwsCisg
ICAgICAgICAgIHdlJ2QgaGF2ZSB0byBkaXNyZWdhcmQgdGhlIGNsaWVudCdzIHBvbGljeSBkZWNp
c2lvbiwgZGVmZWF0aW5nIG11Y2ggb2YgdGhlIHB1cnBvc2Ugb2YgbWFraW5nCisgICAgICAgICAg
IHVzZSBvZiB0aGUgbmF2aWdhdGlvbiBtZWNoYW5pc20gaW4gdGhlIGZpcnN0IHBsYWNlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJv
bWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvd0Rh
dGFEZXRlY3RvcnNVSUZvckVsZW1lbnQpOgorICAgICAgICBQbHVtYiBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbiBmcm9tIGlPUyBXZWJLaXQncyBDaHJvbWVDbGllbnQK
KyAgICAgICAgaW1wbGVtZW50YXRpb24gYWxsIHRoZSB3YXkgdG8gV0tDb250ZW50Vmlldy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVu
dUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF0pOiBEZWxldGVkLgorICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1c2ggSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW50byBXS0FjdGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBpbnN0ZWFkIG9mIGhh
dmluZyBpdCBhbHdheXMgcHVsbCBhIGZyZXNoIG9uZSB1cG9uIGludm9jYXRpb24sIHNvIHRoYXQg
d2UgY2FuIHVzZSB0aGUKKyAgICAgICAgcG9zaXRpb24gaW5mb3JtYXRpb24gcGFzc2VkIGFsb25n
IHdpdGggdGhlIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uIG1lc3Nh
Z2UuCisKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBfY29udGV4dE1lbnVJbnRl
cmFjdGlvbjpvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0
TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICBGaXggYW4gZXhpc3Rpbmcg
YnVnIHdoZXJlIERhdGEgRGV0ZWN0b3JzIGNvbnRleHQgbWVudXMgd291bGQgc2hvdWxkIGV4dHJh
IGRlZmF1bHQgYWN0aW9ucywKKyAgICAgICAgYnkgbW92aW5nIG91ciBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgLV9jb250ZXh0TWVudUludGVyYWN0aW9uOm92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0Zv
ckNvbmZpZ3VyYXRpb246CisgICAgICAgIGRlbGVnYXRlIGhlcmUsIHNoYXJpbmcgaXQgd2l0aCBX
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIHdl
IHNob3VsZCByZWNvbnNpZGVyIGhhdmluZyB0aHJlZSBzZXBhcmF0ZSBVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25zLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB0aGUgY29udGV4dE1lbnVQcmVzZW50
YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OiBkZWxlZ2F0ZSwKKyAgICAgICAg
c2luY2UgaXQgd2lsbCBiZSB3cm9uZyBpbiB0aGUgY2FzZSBvZiBwdXNoZWQtaW4gcG9zaXRpb24g
aW5mb3JtYXRpb24sIGFuZCBpbnN0ZWFkCisgICAgICAgIHVzZSB0aGUgcG9zaXRpb24gaW5mb3Jt
YXRpb24ncyBvcmlnaW5hbCBoaXQgdGVzdCBwb2ludC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3No
b3dEYXRhRGV0ZWN0b3JzVUldKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWROb3RIYW5kbGVUYXBBc0NsaWNrOl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9u
U2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgIEluc3RlYWQgb2YgZXhwb3Npbmcg
YW4gdW5uZWNlc3NhcnkgLWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGdldHRlciBvbiBXS0Fj
dGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBwcm92aWRlIGl0IGFzIGFuIGFyZ3VtZW50IHRv
IHRoZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUgbWV0aG9kcyB0aGF0IGFjdHVhbGx5
IG5lZWQgaXQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250ZXh0TWVudVByZXNlbnRh
dGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3ZlcnJpZGVTdWdnZXN0
ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgQWRvcHQgV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCdzIHN1Z2dlc3RlZEFjdGlvbnMgbWVjaGFuaXNtIHNvIHdlIGNhbiBzaGFyZSBj
b2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgt
W1dLUERGVmlldyBfc2hvd0FjdGlvblNoZWV0Rm9yVVJMOmF0TG9jYXRpb246d2l0aEFubm90YXRp
b25SZWN0Ol0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICAoLVtX
S1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpdKTog
RGVsZXRlZC4KKyAgICAgICAgQWRhcHQgdG8gc29tZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGUgY2hhbmdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAgICAgUmVtb3ZlIHRoZSBhZm9yZW1lbnRpb25lZCBz
aG9ydC1jaXJjdWl0aW5nIHBhdGhzIGZvciBEYXRhIERldGVjdG9ycyBsaW5rcy4KIAogMjAyMC0w
NS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggNzFlMGRlNDIyNDhkMTY4ZDMxOTU5OTY5YWU4OWIw
OWY0NWVkYjJlZi4uYzcyMDRlMThjZDI5MmUyOTc3MTg3YjNjZDdjODllMWMxYzUzZjViOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTA5ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5n
IGEgdGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50
IFVJIHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorCiAyMDIwLTA0LTExICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIGxpdmUgcmFuZ2VzIGlu
IGZ1bmN0aW9ucyB0aGF0IHJldHVybiByYW5nZSBvZiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDhmYzc5YzI3Y2MzN2Q1MGFhZDM0YTFjNmY5
MTVhZTc5ZDhjNjg5N2QuLmQ4ZjFhNDBjMjA1M2RmNDQxYWJlYTgwYjlmNTQyY2FjNjBlZWI0YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldElzU2ltdWxhdGVkKGJvb2wgdmFsdWUpIHsgbV9pc1NpbXVs
YXRlZCA9IHZhbHVlOyB9CiAgICAgaW50IHBhZ2VYKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHBh
Z2VZKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRQb2ludCBsb2NhdGlvbkluUm9vdFZpZXdDb29y
ZGluYXRlcygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UG9pbnQgbG9jYXRpb25J
blJvb3RWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IExheW91dFBv
aW50JiBwYWdlTG9jYXRpb24oKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgeCgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGludCB5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCmluZGV4IDM5YmJiMWY4NGVmM2EyZDJmZTVm
NzhiMjY4MzZlODg3NDQ5ODliNjguLjdmZjk5OGRiYTE3YWY2MTgyNjE2OTUwZmJiNWQyNmUzZTI0
ZmQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsoRWxlbWVudCYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50
Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbihFbGVtZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuUHJlc2Vu
dERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHJlcXVpcmVzRXh0ZW5kZWRDb250ZXh0KEVsZW1lbnQmKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KaW5kZXgg
YTI2ZDgzYjc1ZWU2MGFmMjBhNjkyY2NlMTJlMDNmY2FmNDcwYTA5Mi4uMDg0ZWRiZmZlOWM0ZGFl
NzdkNzAwYmMzMjQzYTE3ZjMzZmNiNDA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMTgzLDcgKzE4Myw3IEBAIFN0cmluZyBEYXRhRGV0
ZWN0aW9uOjpkYXRhRGV0ZWN0b3JJZGVudGlmaWVyKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0
dXJuIGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2RhdGFf
ZGV0ZWN0b3JzX3Jlc3VsdEF0dHIpOwogfQogCi1ib29sIERhdGFEZXRlY3Rpb246OnNob3VsZENh
bmNlbERlZmF1bHRBY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKK2Jvb2wgRGF0YURldGVjdGlvbjo6
Y2FuUHJlc2VudERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoIWlzRGF0YURldGVjdG9yTGluayhlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA2ZmM5
YjQ3ZmRiMTJmNjhkNmNmNGMxNWE2OTAzMTNlNzViNzIzYjFkLi5lNjJhMDk5MjBkMGIwMjI4NWI3
Mzk4ZDY4YTRhMGU3ZjgwMzFkNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcApAQCAtMjUsNyArMjUsMTAgQEAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uLmgiCisjaW5jbHVkZSAiQ2hyb21l
LmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0Lmgi
CisjaW5jbHVkZSAiRGF0YURldGVjdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAg
LTQ2Niw2ICs0NjksMTUgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZl
bnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBldmVudCk7
CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsLnRvU3Ry
aW5nKCkpOwogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIGlmIChEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3RvckxpbmsoKnRoaXMpICYm
IERhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50KCp0aGlz
KSkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKSB7CisgICAg
ICAgICAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvd0RhdGFEZXRlY3RvcnNVSUZv
ckVsZW1lbnQoKnRoaXMsIGV2ZW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICB9CisjZW5kaWYKKwogICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBF
TkFCTEUoRE9XTkxPQURfQVRUUklCVVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYjhkMTExNjhjNjkzOGU4YjM3ZmU2NDRmOWQ0
MWQ2YWQ0MmY1MzhjMy4uNzFkNGU1NDM5MWI2MDU2MjVjMWVjZGM0ZTk3YTdhMzAxZDAxMzc5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTc4LDggKzE3OCwxMCBAQCBj
bGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQg
YWRkT3JVcGRhdGVTY3JvbGxpbmdMYXllcihOb2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3Jt
TGF5ZXIqLCBjb25zdCBJbnRTaXplJiwgYm9vbCwgYm9vbCkgZmluYWwgeyB9CiAgICAgdm9pZCBy
ZW1vdmVTY3JvbGxpbmdMYXllcihOb2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5ZXIq
KSBmaW5hbCB7IH0KIAotICAgIHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIGZpbmFs
IHsgfTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sLCBSb3V0ZVNoYXJp
bmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKKyAgICB2b2lkIHdlYkFwcE9yaWVu
dGF0aW9uc1VwZGF0ZWQoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcihib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQor
CisgICAgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVtZW50Jiwg
Y29uc3QgRXZlbnQmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMzQzZGEyYzEyMzg1MjFhODY5YzJhOGE3N2E3M2FiZDI5
NWQ0YjY1MS4uMjliNWQyNmRkYjlhNWFkZmU3M2Q5ZThkNjAxNzg5NzM5MGMxZjUzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yNzIsNiArMjcyLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0ZWQoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBSb3V0ZVNo
YXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBzaG93
RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgY29uc3QgRXZlbnQmKSA9
IDA7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYWEwNmUwNDI1YzkyZmIzNDBjZmQ1NTk0ZWQ2NTY0
NTcwZTJkZWU0OS4uYjMxOTk4MzQwYTQ4MGY4ZTMwMzNjODMwODJlNzkwMjI4MjA0YTQyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNDE0LDYgKzQxNCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZShjb25zdCBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2F2ZUltYWdlVG9MaWJyYXJ5KFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFzVmlkZW8sIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQ
b2xpY3ksIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0RhdGFEZXRl
Y3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0
dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlh
bFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVy
UmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRv
dWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpID0gMDsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhY2YzNDkzNDc3ZGIyYTc3ZTkyMDhiMjc5
MzdkYTllNTMwMWUzM2Y2Li42ZmY3OWE3ZGZiZGM1YTZjYWQ4OWNmMjg5NmU4OTQ3NDQzYTZkNmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODE5LDYgKzgxOSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShpbnQ2NF90IGxv
Y2F0aW9uRGVsdGEsIGludDY0X3QgbGVuZ3RoRGVsdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCByZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChXZWJLaXQ6OkRv
Y3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktp
dDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dCk+JiYpOwogICAgIHZvaWQgZ2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUpOworICAgIHZvaWQg
c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAg
IHZvaWQgZGlkSGFuZGxlRHJhZ1N0YXJ0UmVxdWVzdChib29sIHN0YXJ0ZWQpOwogICAgIHZvaWQg
ZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOGY4
MGJhNDA4MWRkZWJkNWZkMjhjZDk5YzQyM2EzYTYwNjc1NjFlYy4uZDEyMDIxMTUyMWYwNjExOTE5
NWQ5ZGM3OGM4ZjQ3ZWRkNjhkZGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDI2LDYgKzQyNiw4IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAKICAgICBVcGRhdGVTdHJpbmdGb3JGaW5kKFN0cmluZyBmaW5kU3Ry
aW5nKQogICAgIEhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChzdHJ1Y3QgV2ViS2l0OjpXZWJB
dXRvY29ycmVjdGlvbkNvbnRleHQgY29udGV4dCkKKworICAgIFNob3dEYXRhRGV0ZWN0b3JzVUlG
b3JQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKQogI2VuZGlmCiAKICAgICBEaWRDaGFuZ2VJbnNwZWN0
b3JGcm9udGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBhZTc1OGQ0Y2ZiOGNiZTU5NjdlN2Qw
YjNiNTExZTUzOTlkMTMxMDA3Li43YTkzNzdhYzE4MTE1NzVhNzI0YjY1NTZlNzkwY2NkNzQ4ZjAy
OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvbkluZm9y
bWF0aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzYXZlSW1hZ2VUb0xpYnJhcnkoUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
Ym9vbCBoYXNWaWRlbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVS
dW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5m
b0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJD
b3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAzM2ZiOGQ5NjU1MzJiYWVkY2YzMTMzYzIwMjRhNzlj
N2Q3NTgyNmFlLi4wOTI4ZDQ1ODI0ZDYzOTUzYjNkOWYxMGIxMWEwN2I1NDU1ZTliZjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC05NTQsNiArOTU0LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRpb25BbHRl
cm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIHVpbnQ2CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0RhdGFEZXRlY3RvcnNVSUZv
clBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mIHBvc2l0aW9uSW5mb3JtYXRpb24pCit7CisgICAgW21fY29udGVudFZpZXcgX3Nob3dEYXRh
RGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOnBvc2l0aW9uSW5mb3JtYXRpb25dOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaAppbmRleCA2ZGFlNDUwYWMyNGE4M2Y0ZDAzNDc3MGU1YTMwNWM3MWUyOWQ0YTNh
Li5hNWI0YTY0MjQ4ODQ4Zjc1Y2QxMGE0YzM3YzQ2OTk0MzcyOWI2MDQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKQEAg
LTM2LDYgKzM2LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOwogfQogCitAY2xhc3MgVUlNZW51RWxlbWVudDsKIEBjbGFzcyBV
SVRhcmdldGVkUHJldmlldzsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0YW50OwogQGNsYXNz
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOwpAQCAtNjAsMTAgKzYxLDkgQEAgc3RydWN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogLSAoQ0dSZWN0KXVub2NjbHVkZWRXaW5kb3dC
b3VuZHNGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudDsKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQgd2lsbFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFu
dERpZFN0b3BJbnRlcmFjdGlvbjooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsK
LS0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CistIChOU0RpY3Rpb25h
cnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRp
b247CiAtIChOU1N0cmluZyAqKXNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihX
S0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogLSAodm9pZClhY3Rpb25TaGVldEFz
c2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBnZXRBbHRlcm5hdGVV
UkxGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGNvbXBsZXRpb246KHZvaWQgKF4pKE5TVVJMICph
bHRlcm5hdGVVUkwsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pKWNvbXBsZXRpb247Ci0tIChDR1Bv
aW50KWNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNpZiBVU0UoVUlDT05URVhU
TUVOVSkKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhp
bnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lz
dGFudDsKICNlbmRpZgpAQCAtODAsNyArODAsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb247CiAtIChpZClpbml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXc7CiAtICh2
b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2b2lkKXNob3dJbWFnZVNoZWV0OwotLSAodm9pZClzaG93
RGF0YURldGVjdG9yc1NoZWV0OworLSAodm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRp
b25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpY2xlYW51cFNoZWV0OwogLSAodm9p
ZCl1cGRhdGVTaGVldFBvc2l0aW9uOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFj
dGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICopZWxlbWVudEluZm87CkBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjsKIC0gKEJPT0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWlu
dGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247CiAtIChOU0FycmF5
ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlczsKLS0gKE9wdGlvbmFsPFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24+KWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9u
OworLSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRl
eHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CiBAZW5kCiAKICNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCAyOTY2YmQ4MzZjMTI4OWU3
ZmFhOGY4YmEyZjY1Nzk3ZGEzOGQ0YzUwLi5kYzZiYTA1ODRhNmFiMjEyMWZhNjk1ZmRlMjY5ODc3
MDZhMzIyMzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rp
b25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtNjUzLDE0ICs2NTMsMTMgQEAgLSAodm9pZCllbnN1
cmVDb250ZXh0TWVudUludGVyYWN0aW9uCiB9CiAjZW5kaWYKIAotLSAodm9pZClzaG93RGF0YURl
dGVjdG9yc1NoZWV0CistICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9y
bWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilw
b3NpdGlvbkluZm9ybWF0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIGlm
ICghX2RlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIVtzZWxmIHN5bmNocm9u
b3VzbHlSZXRyaWV2ZVBvc2l0aW9uSW5mb3JtYXRpb25dKQotICAgICAgICByZXR1cm47CisgICAg
X3Bvc2l0aW9uSW5mb3JtYXRpb24gPSBwb3NpdGlvbkluZm9ybWF0aW9uOwogCiAgICAgaWYgKCFX
ZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhfcG9z
aXRpb25JbmZvcm1hdGlvbi0+dXJsKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjczLDggKzY3Miw4
IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldAogICAgIE5TRGljdGlvbmFyeSAqY29u
dGV4dCA9IG5pbDsKICAgICBOU1N0cmluZyAqdGV4dEF0U2VsZWN0aW9uID0gbmlsOwogCi0gICAg
aWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkYXRhRGV0ZWN0aW9u
Q29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICBjb250ZXh0ID0gW19k
ZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZd
OworICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0YURl
dGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9u
OildKQorICAgICAgICBjb250ZXh0ID0gW19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgcG9zaXRpb25JbmZvcm1hdGlvbjoqX3Bvc2l0aW9u
SW5mb3JtYXRpb25dOwogICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Ioc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCiAgICAgICAgIHRl
eHRBdFNlbGVjdGlvbiA9IFtfZGVsZWdhdGUgc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6c2VsZl07CiAKQEAgLTY4OSwxNSArNjg4LDEwIEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRl
Y3RvcnNTaGVldAogICAgIGlmIChbZGF0YURldGVjdG9yc0FjdGlvbnMgY291bnRdID09IDApCiAg
ICAgICAgIHJldHVybjsKICAgICAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFVTRShV
SUNPTlRFWFRNRU5VKSAmJiBIQVZFKFVJQ09OVEVYVE1FTlVfTE9DQVRJT04pCi0gICAgYXV0byBk
ZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoY29udGV4dE1lbnVQcmVzZW50YXRpb25Mb2NhdGlvbkZvckFjdGlv
blNoZWV0QXNzaXN0YW50OildKSB7Ci0gICAgICAgIFtzZWxmIGVuc3VyZUNvbnRleHRNZW51SW50
ZXJhY3Rpb25dOwotICAgICAgICBbX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24g
X3ByZXNlbnRNZW51QXRMb2NhdGlvbjpbZGVsZWdhdGUgY29udGV4dE1lbnVQcmVzZW50YXRpb25M
b2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdXTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSNlbmRpZgotCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEhBVkUoVUlDT05URVhU
TUVOVV9MT0NBVElPTikKKyAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsK
KyAgICBbX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRM
b2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludF07CisjZWxzZQogICAg
IE5TTXV0YWJsZUFycmF5ICplbGVtZW50QWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheV07
CiAgICAgZm9yIChOU1VJbnRlZ2VyIGFjdGlvbk51bWJlciA9IDA7IGFjdGlvbk51bWJlciA8IFtk
YXRhRGV0ZWN0b3JzQWN0aW9ucyBjb3VudF07IGFjdGlvbk51bWJlcisrKSB7CiAgICAgICAgIERE
QWN0aW9uICphY3Rpb24gPSBbZGF0YURldGVjdG9yc0FjdGlvbnMgb2JqZWN0QXRJbmRleDphY3Rp
b25OdW1iZXJdOwpAQCAtNzE2LDYgKzcxMCw3IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNT
aGVldAogICAgIGlmICghW19pbnRlcmFjdGlvblNoZWV0IHByZXNlbnRTaGVldDpXS0FjdGlvblNo
ZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbl0pCiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07
CiAjZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiB9CiAKICNpZiBVU0Uo
VUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpAQCAtNzI1LDE1ICs3MjAs
MTQgQEAgLSAoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0
aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24KICAgICBOU0RpY3Rpb25hcnkgKmNvbnRleHQg
PSBuaWw7CiAgICAgTlNTdHJpbmcgKnRleHRBdFNlbGVjdGlvbiA9IG5pbDsKIAotICAgIGlmIChb
X2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0YURldGVjdGlvbkNvbnRl
eHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKLSAgICAgICAgY29udGV4dCA9IFtfZGVsZWdh
dGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKKyAg
ICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRhdGFEZXRlY3Rp
b25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRpb25JbmZvcm1hdGlvbjopXSkK
KyAgICAgICAgY29udGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rp
b25TaGVldEFzc2lzdGFudDpzZWxmIHBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9y
bWF0aW9uXTsKICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQogICAgICAgICB0ZXh0QXRT
ZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50
OnNlbGZdOwogCiAgICAgTlNEaWN0aW9uYXJ5ICpuZXdDb250ZXh0ID0gbmlsOwogICAgIEREUmVz
dWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRyb2xsZXIgcmVzdWx0Rm9yVVJMOl9wb3NpdGlvbkluZm9y
bWF0aW9uLT51cmwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+ZGF0YURldGVjdG9y
SWRlbnRpZmllciBzZWxlY3RlZFRleHQ6dGV4dEF0U2VsZWN0aW9uIHJlc3VsdHM6X3Bvc2l0aW9u
SW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvclJlc3VsdHMuZ2V0KCkgY29udGV4dDpjb250ZXh0IGV4
dGVuZGVkQ29udGV4dDombmV3Q29udGV4dF07CiAKLQogICAgIENHUmVjdCBzb3VyY2VSZWN0Owog
ICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi0+aXNMaW5rKQogICAgICAgICBzb3VyY2VSZWN0
ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmxpbmtJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVjdElu
Um9vdFZpZXdDb29yZGluYXRlczsKQEAgLTc1MSwxMyArNzQ1LDExIEBAIC0gKFVJQ29udGV4dE1l
bnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUlu
dGVyYWN0aW9uCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246
KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXZpZXdGb3JIaWdobGln
aHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICop
Y29uZmlndXJhdGlvbgogewogICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7Ci0g
ICAgQ0dQb2ludCBjZW50ZXIgPSBDR1BvaW50WmVybzsKKyAgICBDR1BvaW50IGNlbnRlciA9IF9w
b3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50OwogICAgIAogICAgIGlmIChbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51
SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQogICAgICAgICByZXR1cm4gW2RlbGVnYXRl
IGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2Vs
Zl07CiAgICAgCi0gICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KGNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDop
XSkKLSAgICAgICAgY2VudGVyID0gW2RlbGVnYXRlIGNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9j
YXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKICAgICBSZXRhaW5QdHI8VUlQcmV2
aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2
aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOwogICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJn
ZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0
V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Y2VudGVyXSk7CiAg
ICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFy
Z2V0ZWRQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkg
cGFyYW1ldGVyczp1bnVzZWRQcmV2aWV3UGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1Rh
cmdldC5nZXQoKV0pOwpAQCAtNzc3LDYgKzc2OSwzNCBAQCAtICh2b2lkKWNvbnRleHRNZW51SW50
ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxFbmRG
bwogICAgICAgICBbc2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICB9XTsK
IH0KKworc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVsZW1lbnRzRnJvbURl
ZmF1bHRBY3Rpb25zKFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0RWxlbWVudEFjdGlvbnMsIFJl
dGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8pCit7CisgICAgaWYg
KCFbZGVmYXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIGF1dG8gYWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpbZGVm
YXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50XV07CisgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICpl
bGVtZW50QWN0aW9uIGluIGRlZmF1bHRFbGVtZW50QWN0aW9ucy5nZXQoKSkKKyAgICAgICAgW2Fj
dGlvbnMgYWRkT2JqZWN0OltlbGVtZW50QWN0aW9uIHVpQWN0aW9uRm9yRWxlbWVudEluZm86ZWxl
bWVudEluZm8uZ2V0KCldXTsKKworICAgIHJldHVybiBhY3Rpb25zOworfQorCistIChOU0FycmF5
PFVJTWVudUVsZW1lbnQgKj4gKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gb3ZlcnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29u
ZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCit7
CisgICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAg
ICByZXR1cm4gW3NlbGYgc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9u
SW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKK30KKworLSAoTlNBcnJheTxVSU1l
bnVFbGVtZW50ICo+ICopc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9u
SW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mKXBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHRO
UyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uIHVzZXJJbmZvOm5pbF0pOwor
ICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRBY3Rpb25z
RnJvbUFzc2lzdGFudCA9IHBvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rID8gW3NlbGYgZGVmYXVs
dEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldIDogW3NlbGYgZGVmYXVsdEFj
dGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKKyAgICByZXR1cm4gbWVudUVs
ZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCwgZWxl
bWVudEluZm8pOworCit9CisKICNlbmRpZgogCiAtICh2b2lkKWNsZWFudXBTaGVldApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCmluZGV4IDU2YjhiZDgwNjhlZTMxMmMwMmUzMTU1NWM4MjJiZjE4NDgwYjNkYTMuLmE0ODY4
Yzc5NzRlNmI1YjgxMjdiMTdmM2NkM2ViOTBlYWNjMjhjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTUz
MCw3ICs1MzAsOCBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xB
UkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfYWNjZXNzaWJp
bGl0eUNsZWFyU2VsZWN0aW9uOwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNl
c3Npb247CiAtICh2b2lkKV9kaWRDaGFuZ2VXZWJWaWV3RWRpdGFiaWxpdHk7Ci0tIChOU0RpY3Rp
b25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246KFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pcG9zaXRpb25JbmZvcm1hdGlvbjsK
Ky0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9z
aXRpb25JbmZvcm1hdGlvbjsKKy0gKHZvaWQpX3Nob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlv
bkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uOwogCiAtICh2b2lkKXdpbGxGaW5pc2hJZ25vcmluZ0Nh
bGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uOwogCkBAIC01NDksNyArNTUwLDYgQEAg
Rk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIAogLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNz
V2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCBvcmln
aW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29tcGxldGlvbkhh
bmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBjdXJyZW50UG9z
aXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRh
dGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWFj
dGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJl
cXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDJkNWU3NDQ5YTg5MzQwNjllZjdmMmM2NmFlZjFjYzcwZTdlYzA4M2QuLmMxZDA1ZGYz
MjAwNTVlOWEyMzNlZWQwYWI3ZjcwNDU0MmY4NDNmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjE0
OCw5ICsyMTQ4LDE0IEBAIC0gKHZvaWQpX3Nob3dMaW5rU2hlZXQKICAgICBbX2FjdGlvblNoZWV0
QXNzaXN0YW50IHNob3dMaW5rU2hlZXRdOwogfQogCi0tICh2b2lkKV9zaG93RGF0YURldGVjdG9y
c1NoZWV0CistICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1VJCiB7Ci0gICAgW19hY3Rpb25TaGVl
dEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1NoZWV0XTsKKyAgICBbc2VsZiBfc2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb25dOwor
fQorCistICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjoo
Y29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25J
bmZvcm1hdGlvbgoreworICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3Rv
cnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0g
KFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRp
b24KQEAgLTIxNjcsNyArMjE3Miw3IEBAIC0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBv
c2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvCiAgICAgaWYg
KHBvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKSB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQogICAgICAgICBpZiAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6Y2FuQmVQcmVzZW50ZWRCeURh
dGFEZXRlY3RvcnMocG9zaXRpb25JbmZvcm1hdGlvbi51cmwpKQotICAgICAgICAgICAgcmV0dXJu
IEBzZWxlY3Rvcihfc2hvd0RhdGFEZXRlY3RvcnNTaGVldCk7CisgICAgICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKF9zaG93RGF0YURldGVjdG9yc1VJKTsKICNlbmRpZgogICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKF9zaG93TGlua1NoZWV0KTsKICAgICB9CkBAIC0yMTgyLDExICsyMTg3LDYgQEAg
LSAoU0VMKV9hY3Rpb25Gb3JMb25nUHJlc3MKICAgICByZXR1cm4gW3NlbGYgX2FjdGlvbkZvckxv
bmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0K
IAotLSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiljdXJyZW50UG9z
aXRpb25JbmZvcm1hdGlvbgotewotICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKLX0K
LQogLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZToodm9pZCAoXikoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6
KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdAogewogICAgIGlm
IChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1
ZXN0XSkgewpAQCAtMjcyMywxNSArMjcyMyw2IEBAIC0gKHZvaWQpX2RpZE5vdEhhbmRsZVRhcEFz
Q2xpY2s6KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilwb2ludAogewogICAgIFtzZWxmIF9yZXNl
dElucHV0Vmlld0RlZmVycmFsXTsKIAotICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxzbyB0YWtl
IGludG8gYWNjb3VudCB3aGV0aGVyIG9yIG5vdCB0aGUgVUkgZGVsZWdhdGUKLSAgICAvLyBoYXMg
aGFuZGxlZCB0aGlzIG5vdGlmaWNhdGlvbi4KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0g
ICAgaWYgKF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gJiYgcG9pbnQgPT0gX3Bvc2l0aW9u
SW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0RhdGFE
ZXRlY3RvckxpbmspIHsKLSAgICAgICAgW3NlbGYgX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXRdOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBpZiAoIV9pc0RvdWJsZVRhcFBl
bmRpbmcpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjkwNCw3ICs2ODk1LDcgQEAgLSAodm9pZClh
Y3Rpb25TaGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlvbjooV0tBY3Rpb25TaGVldEFzc2lz
dGFudCAqKWFzc2lzdGEKICAgICBfcGFnZS0+c3RvcEludGVyYWN0aW9uKCk7CiB9CiAKLS0gKE5T
RGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjoo
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbilwb3NpdGlvbkluZm9ybWF0
aW9uCistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5m
b3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KXBvc2l0aW9uSW5mb3JtYXRpb24KIHsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFy
eT4gY29udGV4dDsKICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0
YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVd
KTsKQEAgLTY5MzMsOSArNjkyNCw5IEBAIC0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjooV2ViS2l0OjpJbnRlcmFjdGlvCiAjZW5kaWYK
IH0KIAotLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVl
dEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudAorLSAoTlNEaWN0
aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBwb3NpdGlvbkluZm9ybWF0aW9uOihjb25z
dCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9y
bWF0aW9uCiB7Ci0gICAgcmV0dXJuIFtzZWxmIGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRp
b25JbmZvcm1hdGlvbjphc3Npc3RhbnQuY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24udmFsdWVP
cihfcG9zaXRpb25JbmZvcm1hdGlvbildOworICAgIHJldHVybiBbc2VsZiBkYXRhRGV0ZWN0aW9u
Q29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAK
IC0gKE5TU3RyaW5nICopc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQKQEAgLTY5NTQsMTEgKzY5NDUsNiBAQCAtICh2
b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0
YW50IGdldEFsdGVybmF0ZVVSTAogICAgICAgICBjb21wbGV0aW9uKG5pbCwgbmlsKTsKIH0KIAot
LSAoQ0dQb2ludCljb250ZXh0TWVudVByZXNlbnRhdGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQKLXsKLSAgICByZXR1
cm4gW3NlbGYgbGFzdEludGVyYWN0aW9uTG9jYXRpb25dOwotfQotCiAjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCiAKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVu
dUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudApAQCAtOTE4NiwxMyArOTE3MiwxMSBAQCAtICh2b2lkKWNvbnRpbnVlQ29udGV4dE1l
bnVJbnRlcmFjdGlvbldpdGhEYXRhRGV0ZWN0b3JzOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDbwog
CiAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjoo
VUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gb3ZlcnJpZGVTdWdnZXN0ZWRB
Y3Rpb25zRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uCiB7Ci0gICAgaWYgKF9jb250ZXh0TWVudUFjdGlvblByb3ZpZGVyRGVsZWdhdGVO
ZWVkc092ZXJyaWRlKSB7Ci0gICAgICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uIHVzZXJJbmZvOm5pbF0pOwotICAgICAg
ICBSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PiBkZWZhdWx0QWN0aW9uc0Zy
b21Bc3Npc3RhbnQgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmsgPyBbX2FjdGlvblNoZWV0
QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OmVsZW1lbnRJbmZvLmdldCgpXSA6
IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1l
bnRJbmZvLmdldCgpXTsKLSAgICAgICAgcmV0dXJuIG1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0
aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZvKTsKLSAgICB9CiAg
ICAgLy8gSWYgd2UncmUgaGVyZSB3ZSdyZSBpbiB0aGUgbGVnYWN5IHBhdGgsIHdoaWNoIGlnbm9y
ZXMgdGhlIHN1Z2dlc3RlZCBhY3Rpb25zIGFueXdheS4KLSAgICByZXR1cm4gbmlsOworICAgIGlm
ICghX2NvbnRleHRNZW51QWN0aW9uUHJvdmlkZXJEZWxlZ2F0ZU5lZWRzT3ZlcnJpZGUpCisgICAg
ICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gW19hY3Rpb25TaGVldEFzc2lzdGFudCBzdWdn
ZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRp
b25JbmZvcm1hdGlvbl07CiB9CiAKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmll
d0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERG
Vmlldy5tbQppbmRleCAwNmI0ZTlmMWQ0NTJjN2FmYjZiNTdhNTE0OTFjODA0YWEzZTc4MTQzLi4x
MDQxOGY5NDg4M2JmNGRlNGUyYmJhY2ZiZjQ4ZGYzNWNiZWU2ODJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTQ4NSwxMiArNDg1LDE1IEBAIC0gKHZvaWQp
X3Nob3dBY3Rpb25TaGVldEZvclVSTDooTlNVUkwgKil1cmwgYXRMb2NhdGlvbjooQ0dQb2ludCls
b2NhdGlvbiB3aXRoQW5uCiAgICAgcG9zaXRpb25JbmZvcm1hdGlvbi51cmwgPSB1cmw7CiAKICAg
ICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9IFdURk1vdmUocG9zaXRpb25JbmZvcm1hdGlvbik7CisK
ICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgaWYgKFdlYkNvcmU6OkRhdGFEZXRlY3Rp
b246OmNhbkJlUHJlc2VudGVkQnlEYXRhRGV0ZWN0b3JzKF9wb3NpdGlvbkluZm9ybWF0aW9uLnVy
bCkpCi0gICAgICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVl
dF07Ci0gICAgZWxzZQorICAgIGlmIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5CZVByZXNl
bnRlZEJ5RGF0YURldGVjdG9ycyhfcG9zaXRpb25JbmZvcm1hdGlvbi51cmwpKSB7CisgICAgICAg
IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5m
b3JtYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbl07CisgICAgICAgIHJldHVybjsKKyAgICB9CiAj
ZW5kaWYKLSAgICAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XTsKKwor
ICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0xpbmtTaGVldF07CiB9CiAKIC0gKHZvaWQp
cGRmSG9zdFZpZXdDb250cm9sbGVyOihQREZIb3N0Vmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVy
IGRpZExvbmdQcmVzc1VSTDooTlNVUkwgKil1cmwgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
biB3aXRoQW5ub3RhdGlvblJlY3Q6KENHUmVjdClhbm5vdGF0aW9uUmVjdApAQCAtNTgyLDcgKzU4
NSw3IEBAIC0gKFJldGFpblB0cjxOU0FycmF5PilhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rp
b25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBkCiAgICAgcmV0dXJuIHBhZ2UtPnVpQ2xpZW50
KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCwgV1RGTW92ZShkZWZhdWx0QWN0aW9ucykpOwog
fQogCi0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0
QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50CistIChOU0RpY3Rp
b25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3Jt
YXRpb24KIHsKICAgICBhdXRvIHdlYlZpZXcgPSBfd2ViVmlldy5nZXRBdXRvcmVsZWFzZWQoKTsK
ICAgICBpZiAoIXdlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQppbmRleCBmOWI0OTM5YzE3ZWQ2M2FjZjNmYWZmMWE0ZWQxOWM5MTM4NzMx
YjQ5Li5kZWM5YmY5NmFhMjlhOTUxYzYzYzg4MjU1ZjAxZjMxZWZmYTM2ZjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE2MjEsNiAr
MTYyMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RGV2aWNlSGFzQUdYQ29tcGlsZXJTZXJ2
aWNlRm9yVGVzdGluZygpIGNvbnN0CiAgICAgV2ViQ29yZTo6c2V0RGV2aWNlSGFzQUdYQ29tcGls
ZXJTZXJ2aWNlRm9yVGVzdGluZygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mbykKK3sKKyAgICBwYWdlQ2xpZW50KCkuc2hvd0Rh
dGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24ocG9zaXRpb25JbmZvKTsKK30KKwor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCAyYWRlZDEzMzA4ODg1NjYyZDE2ODJiODQ2NTBlOGNhMzE1
Y2U1MmYzLi5kYzQzMGIzODc5MWY5ZTRkYjMxMWViNDQ0OTRiY2ViNGU0MGZmNTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0xODUsNiArMTg1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERl
c3Ryb3lFZGl0YWJsZUltYWdlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lE
KSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkVXNlTW91c2VFdmVudEZvclNlbGVjdGlvbihjb25z
dCBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQmKSBmaW5hbDsKKworICAgIGJvb2wgc2hvd0Rh
dGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdl
YkNvcmU6OkV2ZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IDk3YzcxNGQ0MGMy
MDM1MGZmZjQ3NWU5OTc0NmI5YjNiYWEwNWRhMWMuLjg5NjFmNWJmYjkwOGI0NjMxMDk3OWExZmE4
OWQ4MDZjMWI4YjRjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC0z
MCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkRyYXdpbmdBcmVhLmgiCiAjaW1wb3J0ICJFZGl0YWJs
ZUltYWdlQ29udHJvbGxlck1lc3NhZ2VzLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qu
aCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbXBvcnQgIldlYkZyYW1lLmgiCkBAIC0zOSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSWNvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Nb3VzZUV2
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgpAQCAtMTkz
LDYgKzE5NiwxOCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlTW91c2VFdmVudEZv
clNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdQogI2VuZGlmCiB9CiAKK2Jvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKCFldmVudC5pc01v
dXNlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IElkZWFs
bHksIHdlIHdvdWxkIGJlIGFibGUgdG8gZ2VuZXJhdGUgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24gd2l0aG91dCByZS1oaXQtdGVzdGluZyB0aGUgZWxlbWVudC4KKyAgICBhdXRvJiBt
b3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8gcG9zaXRp
b25JbmZvcm1hdGlvbiA9IG1fcGFnZS5wb3NpdGlvbkluZm9ybWF0aW9uKEludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0IHsgcm91bmRlZEludFBvaW50KG1vdXNlRXZlbnQubG9jYXRpb25JblJv
b3RWaWV3Q29vcmRpbmF0ZXMoKSkgfSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24ocG9zaXRp
b25JbmZvcm1hdGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMjRjOWNjN2M5MTAzMjRmZGM0NDlmYzgx
NzRkNjE3ZjI0MTgwODNjOC4uOTg4NWYxYjQxZWNhZTUzN2ViNDQ4MTJmYTVmN2VkNjVlZTVmOGQ0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI5
MCw2ICsxMjkwLDkgQEAgcHVibGljOgogICAgIC8vIFRoZXNlIGluY2x1ZGUgbGF5b3V0IG92ZXJm
bG93IGZvciBvdmVyZmxvdzp2aXNpYmxlIGVsZW1lbnRzLCBidXQgZXhjbHVkZSBib3JkZXJzLgog
ICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHNGb3JF
bGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICBzdGF0aWMgV2ViQ29yZTo6SW50
UmVjdCByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpF
bGVtZW50Jik7CisKKyAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBwb3NpdGlv
bkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jik7CisgICAg
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFVTRShRVUlDS19MT09LKQpA
QCAtMTM2Niw3ICsxMzY5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoU3ludGhldGlj
TW91c2VFdmVudHNGb3JTZWxlY3Rpb25HZXN0dXJlKFNlbGVjdGlvblRvdWNoLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYpOwogCiAgICAgdm9pZCBzZW5kUG9zaXRpb25JbmZvcm1hdGlvbihJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYmKTsKLSAgICBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0Jik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gc2hhcmVhYmxlQml0
bWFwU25hcHNob3RGb3JOb2RlKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICBXZWJBdXRvY29ycmVj
dGlvbkNvbnRleHQgYXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiAgICAgYm9vbCBhcHBseUF1dG9j
b3JyZWN0aW9uSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcm
IG9yaWdpbmFsVGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDI3ZDhlZjlhYmVmYzQzY2NlZjA4MWFiYThmN2E0NGU1
NjY2ODcxYWYuLmMxNjZhMDhjNjMzZmRkODhjMTVmZDM4NmVjZmQwMWY4NTI2Yzc3ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC04NjksMTMgKzg2OSw2IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBv
aW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kCiAKICAgICBpZiAo
IWZyYW1lUmVzcG9uZGluZ1RvQ2xpY2sgfHwgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQgPCBX
ZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWVSZXNwb25kaW5nVG9DbGljayktPmZpcnN0TGF5
ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCgpKQogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soYWRqdXN0ZWRJbnRQ
b2ludCkpOwotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBlbHNlIGlmIChpczxFbGVt
ZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrKSAmJiBEYXRhRGV0ZWN0aW9uOjpzaG91bGRDYW5j
ZWxEZWZhdWx0QWN0aW9uKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2sp
KSkgewotICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KGFkanVz
dGVkSW50UG9pbnQpOwotICAgICAgICByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0
KTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWROb3RIYW5kbGVUYXBB
c0NsaWNrKGFkanVzdGVkSW50UG9pbnQpKTsKLSAgICB9Ci0jZW5kaWYKICAgICBlbHNlCiAgICAg
ICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVk
UG9pbnQsIG1vZGlmaWVycyk7CiB9CkBAIC0xMDc3LDE0ICsxMDcwLDcgQEAgdm9pZCBXZWJQYWdl
OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2lu
dCwgT3B0aW9uU2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBzZW5kVGFwSGlnaGxpZ2h0
Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbm9kZVJlc3BvbmRpbmdUb0NsaWNrKTsKLSNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9u
ZGluZ1RvQ2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24o
ZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7Ci0gICAgICAgIElu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KGFkanVz
dGVkUG9pbnQpKTsKLSAgICAgICAgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCk7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkTm90SGFuZGxlVGFwQXND
bGljayhyb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQb2ludCkpKTsKLSAgICB9IGVsc2UKLSNlbmRp
ZgotICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ss
IGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKKyAgICBj
b21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9p
bnQsIG1vZGlmaWVycywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKIH0KIAogdm9pZCBXZWJQYWdl
OjpoYW5kbGVTdHlsdXNTaW5nbGVUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
b2ludCwgdWludDY0X3QgcmVxdWVzdElEKQpAQCAtMTE2OCwxNiArMTE1NCw5IEBAIHZvaWQgV2Vi
UGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1v
ZGlmaWVycywgVHJhbnNhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9wb3Rl
bnRpYWxUYXBOb2RlID09IG5vZGVSZXNwb25kaW5nVG9DbGljaykgewotI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKLSAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xp
Y2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24oZG93bmNhc3Q8
RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7Ci0gICAgICAgICAgICBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChtX3BvdGVudGlh
bFRhcExvY2F0aW9uKSk7Ci0gICAgICAgICAgICByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihy
ZXF1ZXN0KTsKLSAgICAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwotICAgICAg
ICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgaGFuZGxlU3ludGhldGljQ2xpY2soKm5vZGVS
ZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzLCBwb2ludGVySWQpOwot
ICAgIH0gZWxzZQorICAgIGlmIChtX3BvdGVudGlhbFRhcE5vZGUgPT0gbm9kZVJlc3BvbmRpbmdU
b0NsaWNrKQorICAgICAgICBoYW5kbGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrLCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMsIHBvaW50ZXJJZCk7CisgICAgZWxzZQogICAg
ICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKIAogICAgIG1fcG90ZW50aWFsVGFwTm9k
ZSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGI4Yjc1MjYzNTlmZTNlMmY5
NjgxM2MwYWVjYWQwNzU1NTMzMGFlZjcuLmE5MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3
MmE5NDA5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC05Nyw2ICs5Nyw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6SWNvbj4gY3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlbmFtZXMpIGZpbmFsOwogCisgICAgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxl
bWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6RXZlbnQmKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAg
ICBpbnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBmaW5hbDsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398967</attachid>
            <date>2020-05-10 00:18:16 -0700</date>
            <delta_ts>2020-05-10 00:44:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211686-20200510001816.patch</filename>
            <type>text/plain</type>
            <size>45146</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyZjhkYjM5NDBkNmI1
ZjkwMTk3YjM5ZTAyYzlmMmE1ODg5YTczNi4uZGFmMjRkMmUxZWQxNTE4ZjJmNWJhNGYwNWE4OTM2
ZmUwYzhhYzA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTA5ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5nIGEg
dGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50IFVJ
IHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRB
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICBSZW5hbWUgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
biB0byBjYW5QcmVzZW50RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudC4KKyAgICAgICAgVGhpcyBi
aXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50IHNob3VsZCBpbnZva2UgREQgVUkg
aW5zdGVhZCBvZgorICAgICAgICBkb2luZyBpdHMgZGVmYXVsdCBhY3Rpb24sIHNvIGVpdGhlciBu
YW1lIGlzIE9LLCBidXQgaXQgZmVlbHMgYmV0dGVyIHRvCisgICAgICAgIGhhdmUgaXQgaW4gdGhl
IGFmZmlybWF0aXZlIGRpcmVjdGlvbi4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KToKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHRhcHBpbmcgb24gYW4gYW5jaG9yIHNob3VsZCBpbnZv
a2UgRGF0YURldGVjdG9ycyBVSSBpbnN0ZWFkCisgICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIGRl
ZmF1bHQgYWN0aW9uLCBhbmQgc2hvcnQtY2lyY3VpdCBpZiB0aGF0IGlzIHBvc3NpYmxlLgorCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjAtMDUtMDYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1
a2F3YUBzb255LmNvbT4gYW5kIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbl0gSW1wbGVtZW50IERpc3BsYXlSZWZyZXNoTW9uaXRvciBieSB1
c2luZyBSdW5Mb29wOjpUaW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmMxNWJkZGU3MmEyYjhlNDkxNzE5N2Rk
NmE0ZWRlOGYxMzgwMzBiLi4yNDM1OGYxY2EwMTNkZTc4YTYyYzBjYTMxZTJhY2MyNGMxYmI3NmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNS0wOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGlja2luZyBhIHRlbDovLyBsaW5r
IG9uIGlQYWQgd2l0aCBhIHRyYWNrcGFkIHByZXNlbnRzIGRpZmZlcmVudCBVSSB0aGFuIHRhcHBp
bmcgb24gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTY4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDE1ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgaU9TIFdlYktp
dCBoYWQgY29kZSBpbiBoYW5kbGVUYXAsIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQsIGFuZCBj
b21taXRQb3RlbnRpYWxUYXAsCisgICAgICAgIHdoaWNoIGludHJvc3BlY3RlZCB0aGUgaGl0IGVs
ZW1lbnQgL2JlZm9yZS8gZGlzcGF0Y2hpbmcgdGhlIHRhcCAob3Igc3ludGhldGljIGNsaWNrKSB0
byB0aGUgRE9NLAorICAgICAgICBzaG9ydCBjaXJjdWl0aW5nIGFsbCBub3JtYWwgZXZlbnQgaGFu
ZGxpbmcgbWFjaGluZXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uCisg
ICAgICAgIGFuZCBwcmVzZW50IHRoZSBEYXRhIERldGVjdG9ycyBVSSBmb3IgdGhlIGdpdmVuIGxp
bmsuCisKKyAgICAgICAgVGhlcmUncyBvbmUgaW1tZWRpYXRlIHByb2JsZW0gd2l0aCB0aGlzLCB3
aGljaCBpcyB0aGF0IHRoZXJlIGlzIG5vIHNpbWlsYXIgY29kZSBpbiB0aGUgZGlyZWN0CisgICAg
ICAgIGNsaWNrIGV2ZW50IGhhbmRsZXIgcGF0aCwgd2hpY2ggd2Ugbm93IHVzZSBmb3IgdHJhY2tw
YWQvbW91c2UgaW5wdXQgb24gaVBhZC4gVGhlcmUncyBhbHNvIGEKKyAgICAgICAgc2Vjb25kYXJ5
IHByb2JsZW0gKHdoaWNoIHdlIGhhdmUgbm90IHNlZW4gaW4gcHJhY3RpY2UpLCB3aGljaCBpcyB0
aGF0IHBhZ2VzIGNhbm5vdCBwcmV2ZW50RGVmYXVsdAorICAgICAgICB0byBhdm9pZCBsYXVuY2hp
bmcgdGhlIERhdGEgRGV0ZWN0b3JzIFVJIG9uIGEgbGluaywgbGlrZSB0aGV5IGNvdWxkIHRvIHBy
ZXZlbnQgYW4gb3JkaW5hcnkKKyAgICAgICAgbGluayBmcm9tIGJlaW5nIGZvbGxvd2VkLgorCisg
ICAgICAgIEluIG9yZGVyIHRvIHJlc29sdmUgYm90aCBpc3N1ZXMgYW5kIHJlZHVjZSBkdXBsaWNh
dGlvbiBvZiBsb2dpYywgbW92ZSB0aGUgY29kZSB0aGF0IGludHJvc3BlY3RzCisgICAgICAgIHRo
ZSBlbGVtZW50IGFuZCBpbnZva2VzIERhdGEgRGV0ZWN0b3JzIFVJIGZyb20gaGlnaC1sZXZlbCBX
ZWJLaXQgZXZlbnQgZGlzcGF0Y2ggY29kZSAod2hlcmUgaXQKKyAgICAgICAgZG9lc24ndCByZWFs
bHkgYmVsb25nKSBkb3duIHRvIFdlYkNvcmUncyBkZWZhdWx0IGNsaWNrIGV2ZW50IGhhbmRsZXIg
Zm9yIGFuY2hvcnMsIHJpZ2h0IG5leHQgdG8KKyAgICAgICAgdGhlIGNvZGUgdGhhdCB3b3VsZCBv
cmRpbmFyaWx5IGNhdXNlIGEgbmF2aWdhdGlvbi4gVGhpcyB3YXksIG5vIG1hdHRlciBob3cgd2Ug
Z2V0IGhlcmUsIHdoZXRoZXIKKyAgICAgICAgYnkgc3ludGhldGljIGNsaWNrIG9yIHJlYWwgY2xp
Y2ssIHdlJ2xsIGludm9rZSB0aGUgRGF0YSBEZXRlY3RvcnMgVUkuCisKKyAgICAgICAgT25lIGFs
dGVybmF0aXZlIGNvbnNpZGVyZWQgYXQgbGVuZ3RoOiB3ZSBjb3VsZCBhY3R1YWxseSBsZXQgdGhl
IG5hdmlnYXRpb24gaGFwcGVuLCBhbmQgaW5zdGVhZAorICAgICAgICBoYW5kbGUgdGhlIHN3aXRj
aCBpbiBuYXZpZ2F0aW9uIHBvbGljeSBjb2RlLCBidXQgdGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMg
dGhhdCBkaWQgbm90IHNlZW0gaWRlYWw6CisgICAgICAgIDEpIFdlJ2QgbmVlZCB0byBwbHVtYiBw
bGF0Zm9ybS1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgdGhyb3VnaCBhIHRvbiBvZiBGcmFtZUxv
YWRlciBjb2RlLgorICAgICAgICAyKSBDbGllbnRzIG9mdGVuIGJsb2NrIG5vbi1IVFRQKFMpIG5h
dmlnYXRpb25zLCBzbyBpbiBvcmRlciB0byBrZWVwIHRoZSBmZWF0dXJlIGZ1bmN0aW9uYWwsCisg
ICAgICAgICAgIHdlJ2QgaGF2ZSB0byBkaXNyZWdhcmQgdGhlIGNsaWVudCdzIHBvbGljeSBkZWNp
c2lvbiwgZGVmZWF0aW5nIG11Y2ggb2YgdGhlIHB1cnBvc2Ugb2YgbWFraW5nCisgICAgICAgICAg
IHVzZSBvZiB0aGUgbmF2aWdhdGlvbiBtZWNoYW5pc20gaW4gdGhlIGZpcnN0IHBsYWNlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJv
bWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvd0Rh
dGFEZXRlY3RvcnNVSUZvckVsZW1lbnQpOgorICAgICAgICBQbHVtYiBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbiBmcm9tIGlPUyBXZWJLaXQncyBDaHJvbWVDbGllbnQK
KyAgICAgICAgaW1wbGVtZW50YXRpb24gYWxsIHRoZSB3YXkgdG8gV0tDb250ZW50Vmlldy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVu
dUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF0pOiBEZWxldGVkLgorICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1c2ggSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW50byBXS0FjdGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBpbnN0ZWFkIG9mIGhh
dmluZyBpdCBhbHdheXMgcHVsbCBhIGZyZXNoIG9uZSB1cG9uIGludm9jYXRpb24sIHNvIHRoYXQg
d2UgY2FuIHVzZSB0aGUKKyAgICAgICAgcG9zaXRpb24gaW5mb3JtYXRpb24gcGFzc2VkIGFsb25n
IHdpdGggdGhlIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uIG1lc3Nh
Z2UuCisKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBfY29udGV4dE1lbnVJbnRl
cmFjdGlvbjpvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0
TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICBGaXggYW4gZXhpc3Rpbmcg
YnVnIHdoZXJlIERhdGEgRGV0ZWN0b3JzIGNvbnRleHQgbWVudXMgd291bGQgc2hvdWxkIGV4dHJh
IGRlZmF1bHQgYWN0aW9ucywKKyAgICAgICAgYnkgbW92aW5nIG91ciBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgLV9jb250ZXh0TWVudUludGVyYWN0aW9uOm92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0Zv
ckNvbmZpZ3VyYXRpb246CisgICAgICAgIGRlbGVnYXRlIGhlcmUsIHNoYXJpbmcgaXQgd2l0aCBX
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIHdl
IHNob3VsZCByZWNvbnNpZGVyIGhhdmluZyB0aHJlZSBzZXBhcmF0ZSBVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25zLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB0aGUgY29udGV4dE1lbnVQcmVzZW50
YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OiBkZWxlZ2F0ZSwKKyAgICAgICAg
c2luY2UgaXQgd2lsbCBiZSB3cm9uZyBpbiB0aGUgY2FzZSBvZiBwdXNoZWQtaW4gcG9zaXRpb24g
aW5mb3JtYXRpb24sIGFuZCBpbnN0ZWFkCisgICAgICAgIHVzZSB0aGUgcG9zaXRpb24gaW5mb3Jt
YXRpb24ncyBvcmlnaW5hbCBoaXQgdGVzdCBwb2ludC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3No
b3dEYXRhRGV0ZWN0b3JzVUldKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWROb3RIYW5kbGVUYXBBc0NsaWNrOl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9u
U2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgIEluc3RlYWQgb2YgZXhwb3Npbmcg
YW4gdW5uZWNlc3NhcnkgLWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGdldHRlciBvbiBXS0Fj
dGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBwcm92aWRlIGl0IGFzIGFuIGFyZ3VtZW50IHRv
IHRoZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUgbWV0aG9kcyB0aGF0IGFjdHVhbGx5
IG5lZWQgaXQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250ZXh0TWVudVByZXNlbnRh
dGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3ZlcnJpZGVTdWdnZXN0
ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgQWRvcHQgV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCdzIHN1Z2dlc3RlZEFjdGlvbnMgbWVjaGFuaXNtIHNvIHdlIGNhbiBzaGFyZSBj
b2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgt
W1dLUERGVmlldyBfc2hvd0FjdGlvblNoZWV0Rm9yVVJMOmF0TG9jYXRpb246d2l0aEFubm90YXRp
b25SZWN0Ol0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICAoLVtX
S1BERlZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpdKTog
RGVsZXRlZC4KKyAgICAgICAgQWRhcHQgdG8gc29tZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGUgY2hhbmdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAgICAgUmVtb3ZlIHRoZSBhZm9yZW1lbnRpb25lZCBz
aG9ydC1jaXJjdWl0aW5nIHBhdGhzIGZvciBEYXRhIERldGVjdG9ycyBsaW5rcy4KIAogMjAyMC0w
NS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggNzFlMGRlNDIyNDhkMTY4ZDMxOTU5OTY5YWU4OWIw
OWY0NWVkYjJlZi4uYzcyMDRlMThjZDI5MmUyOTc3MTg3YjNjZDdjODllMWMxYzUzZjViOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTA5ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5n
IGEgdGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50
IFVJIHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorCiAyMDIwLTA0LTExICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIGxpdmUgcmFuZ2VzIGlu
IGZ1bmN0aW9ucyB0aGF0IHJldHVybiByYW5nZSBvZiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDhmYzc5YzI3Y2MzN2Q1MGFhZDM0YTFjNmY5
MTVhZTc5ZDhjNjg5N2QuLmQ4ZjFhNDBjMjA1M2RmNDQxYWJlYTgwYjlmNTQyY2FjNjBlZWI0YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldElzU2ltdWxhdGVkKGJvb2wgdmFsdWUpIHsgbV9pc1NpbXVs
YXRlZCA9IHZhbHVlOyB9CiAgICAgaW50IHBhZ2VYKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHBh
Z2VZKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRQb2ludCBsb2NhdGlvbkluUm9vdFZpZXdDb29y
ZGluYXRlcygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UG9pbnQgbG9jYXRpb25J
blJvb3RWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IExheW91dFBv
aW50JiBwYWdlTG9jYXRpb24oKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgeCgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGludCB5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCmluZGV4IDM5YmJiMWY4NGVmM2EyZDJmZTVm
NzhiMjY4MzZlODg3NDQ5ODliNjguLjdmZjk5OGRiYTE3YWY2MTgyNjE2OTUwZmJiNWQyNmUzZTI0
ZmQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsoRWxlbWVudCYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50
Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbihFbGVtZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuUHJlc2Vu
dERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHJlcXVpcmVzRXh0ZW5kZWRDb250ZXh0KEVsZW1lbnQmKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KaW5kZXgg
YTI2ZDgzYjc1ZWU2MGFmMjBhNjkyY2NlMTJlMDNmY2FmNDcwYTA5Mi4uMDg0ZWRiZmZlOWM0ZGFl
NzdkNzAwYmMzMjQzYTE3ZjMzZmNiNDA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMTgzLDcgKzE4Myw3IEBAIFN0cmluZyBEYXRhRGV0
ZWN0aW9uOjpkYXRhRGV0ZWN0b3JJZGVudGlmaWVyKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0
dXJuIGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2RhdGFf
ZGV0ZWN0b3JzX3Jlc3VsdEF0dHIpOwogfQogCi1ib29sIERhdGFEZXRlY3Rpb246OnNob3VsZENh
bmNlbERlZmF1bHRBY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKK2Jvb2wgRGF0YURldGVjdGlvbjo6
Y2FuUHJlc2VudERhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoIWlzRGF0YURldGVjdG9yTGluayhlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA2ZmM5
YjQ3ZmRiMTJmNjhkNmNmNGMxNWE2OTAzMTNlNzViNzIzYjFkLi4wMGI3OGViNTM5ZTYzYTRhZDA3
NjQ5NmIyMDFhNTNiN2ZkNmY4NjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcApAQCAtMjUsNiArMjUsOCBAQAogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50
LmgiCiAKICNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKKyNpbmNsdWRlICJDaHJvbWUu
aCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
QEAgLTU3LDYgKzU5LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiRGF0YURldGVjdGlvbi5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxBbmNob3JF
bGVtZW50KTsKQEAgLTQ2Niw2ICs0NzIsMTUgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFu
ZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24o
dXJsLCBldmVudCk7CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVV
UkwodXJsLnRvU3RyaW5nKCkpOwogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIGlmIChEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rvckxp
bmsoKnRoaXMpICYmIERhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JF
bGVtZW50KCp0aGlzKSkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFn
ZSgpKSB7CisgICAgICAgICAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvd0RhdGFE
ZXRlY3RvcnNVSUZvckVsZW1lbnQoKnRoaXMsIGV2ZW50KSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIFN0cmluZyBkb3dubG9hZEF0dHJp
YnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRFKQogICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYjhkMTExNjhjNjkzOGU4
YjM3ZmU2NDRmOWQ0MWQ2YWQ0MmY1MzhjMy4uNzFkNGU1NDM5MWI2MDU2MjVjMWVjZGM0ZTk3YTdh
MzAxZDAxMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTc4LDgg
KzE3OCwxMCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQg
ewogICAgIHZvaWQgYWRkT3JVcGRhdGVTY3JvbGxpbmdMYXllcihOb2RlKiwgUGxhdGZvcm1MYXll
ciosIFBsYXRmb3JtTGF5ZXIqLCBjb25zdCBJbnRTaXplJiwgYm9vbCwgYm9vbCkgZmluYWwgeyB9
CiAgICAgdm9pZCByZW1vdmVTY3JvbGxpbmdMYXllcihOb2RlKiwgUGxhdGZvcm1MYXllciosIFBs
YXRmb3JtTGF5ZXIqKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBk
YXRlZCgpIGZpbmFsIHsgfTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29s
LCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKKyAgICB2b2lk
IHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0ZWQoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYp
IGZpbmFsIHsgfQorCisgICAgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25z
dCBFbGVtZW50JiwgY29uc3QgRXZlbnQmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMzQzZGEyYzEyMzg1MjFhODY5YzJh
OGE3N2E3M2FiZDI5NWQ0YjY1MS4uMjliNWQyNmRkYjlhNWFkZmU3M2Q5ZThkNjAxNzg5NzM5MGMx
ZjUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yNzIsNiArMjcyLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0ZWQoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1Zp
ZGVvLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpID0gMDsKKworICAgIHZpcnR1
YWwgYm9vbCBzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgY29u
c3QgRXZlbnQmKSA9IDA7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYWEwNmUwNDI1YzkyZmIzNDBj
ZmQ1NTk0ZWQ2NTY0NTcwZTJkZWU0OS4uYjMxOTk4MzQwYTQ4MGY4ZTMwMzNjODMwODJlNzkwMjI4
MjA0YTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNDE0LDYgKzQx
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25JbmZvcm1hdGlvbkRpZENo
YW5nZShjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2F2ZUltYWdlVG9MaWJyYXJ5KFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wg
aGFzVmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVE
b3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlv
bkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5p
bXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2
ZWwpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3QgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhY2YzNDkzNDc3ZGIy
YTc3ZTkyMDhiMjc5MzdkYTllNTMwMWUzM2Y2Li42ZmY3OWE3ZGZiZGM1YTZjYWQ4OWNmMjg5NmU4
OTQ3NDQzYTZkNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
ODE5LDYgKzgxOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0
YShpbnQ2NF90IGxvY2F0aW9uRGVsdGEsIGludDY0X3QgbGVuZ3RoRGVsdGEsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4
dChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dCk+JiYpOwogICAgIHZvaWQgZ2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUp
OworICAgIHZvaWQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgIHZvaWQgZGlkSGFuZGxlRHJhZ1N0YXJ0UmVxdWVzdChib29sIHN0YXJ0ZWQp
OwogICAgIHZvaWQgZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggOGY4MGJhNDA4MWRkZWJkNWZkMjhjZDk5YzQyM2EzYTYwNjc1NjFlYy4uZDEyMDIx
MTUyMWYwNjExOTE5NWQ5ZGM3OGM4ZjQ3ZWRkNjhkZGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDI2LDYgKzQyNiw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBVcGRhdGVTdHJpbmdGb3JGaW5kKFN0
cmluZyBmaW5kU3RyaW5nKQogICAgIEhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChzdHJ1Y3Qg
V2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQgY29udGV4dCkKKworICAgIFNob3dEYXRh
RGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKQogI2VuZGlmCiAKICAgICBEaWRD
aGFuZ2VJbnNwZWN0b3JGcm9udGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBhZTc1OGQ0Y2Zi
OGNiZTU5NjdlN2QwYjNiNTExZTUzOTlkMTMxMDA3Li43YTkzNzdhYzE4MTE1NzVhNzI0YjY1NTZl
NzkwY2NkNzQ4ZjAyOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
b3NpdGlvbkluZm9ybWF0aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzYXZlSW1hZ2VUb0xpYnJhcnkoUmVmPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVu
dFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbihj
b25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNv
bnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93U2hhcmVTaGVl
dChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAzM2ZiOGQ5NjU1MzJiYWVkY2Yz
MTMzYzIwMjRhNzljN2Q3NTgyNmFlLi4wOTI4ZDQ1ODI0ZDYzOTUzYjNkOWYxMGIxMWEwN2I1NDU1
ZTliZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCkBAIC05NTQsNiArOTU0LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dE
aWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIHVpbnQ2CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0RhdGFE
ZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mb3JtYXRpb24pCit7CisgICAgW21fY29udGVudFZp
ZXcgX3Nob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOnBvc2l0aW9uSW5m
b3JtYXRpb25dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaAppbmRleCA2ZGFlNDUwYWMyNGE4M2Y0ZDAzNDc3MGU1YTMw
NWM3MWUyOWQ0YTNhLi5hNWI0YTY0MjQ4ODQ4Zjc1Y2QxMGE0YzM3YzQ2OTk0MzcyOWI2MDQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lz
dGFudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogfQogCitAY2xhc3MgVUlNZW51RWxlbWVu
dDsKIEBjbGFzcyBVSVRhcmdldGVkUHJldmlldzsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0
YW50OwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOwpAQCAtNjAsMTAgKzYxLDkgQEAg
c3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogLSAoQ0dSZWN0KXVub2Nj
bHVkZWRXaW5kb3dCb3VuZHNGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudDsKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgd2lsbFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxl
bWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwogLSAodm9pZClhY3Rpb25T
aGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlvbjooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAq
KWFzc2lzdGFudDsKLS0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7Cist
IChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0
YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHBvc2l0aW9uSW5mb3JtYXRp
b246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0
aW9uSW5mb3JtYXRpb247CiAtIChOU1N0cmluZyAqKXNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0
QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogLSAodm9pZClh
Y3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBn
ZXRBbHRlcm5hdGVVUkxGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGNvbXBsZXRpb246KHZvaWQg
KF4pKE5TVVJMICphbHRlcm5hdGVVUkwsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pKWNvbXBsZXRp
b247Ci0tIChDR1BvaW50KWNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25T
aGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNpZiBV
U0UoVUlDT05URVhUTUVOVSkKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRD
b250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lz
dGFudCAqKWFzc2lzdGFudDsKICNlbmRpZgpAQCAtODAsNyArODAsNyBAQCBzdHJ1Y3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAtIChpZClpbml0V2l0aFZpZXc6KFVJVmlldyAq
KXZpZXc7CiAtICh2b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2b2lkKXNob3dJbWFnZVNoZWV0Owot
LSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0OworLSAodm9pZClzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpY2xlYW51cFNo
ZWV0OwogLSAodm9pZCl1cGRhdGVTaGVldFBvc2l0aW9uOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CkBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKIC0gKEJPT0wpaXNTaG93aW5nU2hlZXQ7
CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29u
c3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247
CiAtIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlczsKLS0gKE9wdGlvbmFs
PFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24+KWN1cnJlbnRQb3NpdGlv
bkluZm9ybWF0aW9uOworLSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopc3VnZ2VzdGVkQWN0
aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CiBA
ZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCAyOTY2
YmQ4MzZjMTI4OWU3ZmFhOGY4YmEyZjY1Nzk3ZGEzOGQ0YzUwLi5kYzZiYTA1ODRhNmFiMjEyMWZh
Njk1ZmRlMjY5ODc3MDZhMzIyMzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtNjUzLDE0ICs2NTMsMTMgQEAg
LSAodm9pZCllbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uCiB9CiAjZW5kaWYKIAotLSAodm9p
ZClzaG93RGF0YURldGVjdG9yc1NoZWV0CistICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQ
b3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQogICAgIGlmICghX2RlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIVtz
ZWxmIHN5bmNocm9ub3VzbHlSZXRyaWV2ZVBvc2l0aW9uSW5mb3JtYXRpb25dKQotICAgICAgICBy
ZXR1cm47CisgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSBwb3NpdGlvbkluZm9ybWF0aW9uOwog
CiAgICAgaWYgKCFXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5CZVByZXNlbnRlZEJ5RGF0YURl
dGVjdG9ycyhfcG9zaXRpb25JbmZvcm1hdGlvbi0+dXJsKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
NjczLDggKzY3Miw4IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldAogICAgIE5TRGlj
dGlvbmFyeSAqY29udGV4dCA9IG5pbDsKICAgICBOU1N0cmluZyAqdGV4dEF0U2VsZWN0aW9uID0g
bmlsOwogCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICBj
b250ZXh0ID0gW19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNz
aXN0YW50OnNlbGZdOworICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlv
bkluZm9ybWF0aW9uOildKQorICAgICAgICBjb250ZXh0ID0gW19kZWxlZ2F0ZSBkYXRhRGV0ZWN0
aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgcG9zaXRpb25JbmZvcm1hdGlv
bjoqX3Bvc2l0aW9uSW5mb3JtYXRpb25dOwogICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Ioc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0p
CiAgICAgICAgIHRleHRBdFNlbGVjdGlvbiA9IFtfZGVsZWdhdGUgc2VsZWN0ZWRUZXh0Rm9yQWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAKQEAgLTY4OSwxNSArNjg4LDEwIEBAIC0gKHZvaWQp
c2hvd0RhdGFEZXRlY3RvcnNTaGVldAogICAgIGlmIChbZGF0YURldGVjdG9yc0FjdGlvbnMgY291
bnRdID09IDApCiAgICAgICAgIHJldHVybjsKICAgICAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pICYmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBIQVZFKFVJQ09OVEVYVE1FTlVfTE9DQVRJT04p
Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGV4dE1lbnVQcmVzZW50YXRpb25Mb2Nh
dGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKSB7Ci0gICAgICAgIFtzZWxmIGVuc3VyZUNv
bnRleHRNZW51SW50ZXJhY3Rpb25dOwotICAgICAgICBbX2RhdGFEZXRlY3RvckNvbnRleHRNZW51
SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpbZGVsZWdhdGUgY29udGV4dE1lbnVQ
cmVzZW50YXRpb25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdXTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEhB
VkUoVUlDT05URVhUTUVOVV9MT0NBVElPTikKKyAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUlu
dGVyYWN0aW9uXTsKKyAgICBbX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3By
ZXNlbnRNZW51QXRMb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludF07
CisjZWxzZQogICAgIE5TTXV0YWJsZUFycmF5ICplbGVtZW50QWN0aW9ucyA9IFtOU011dGFibGVB
cnJheSBhcnJheV07CiAgICAgZm9yIChOU1VJbnRlZ2VyIGFjdGlvbk51bWJlciA9IDA7IGFjdGlv
bk51bWJlciA8IFtkYXRhRGV0ZWN0b3JzQWN0aW9ucyBjb3VudF07IGFjdGlvbk51bWJlcisrKSB7
CiAgICAgICAgIEREQWN0aW9uICphY3Rpb24gPSBbZGF0YURldGVjdG9yc0FjdGlvbnMgb2JqZWN0
QXRJbmRleDphY3Rpb25OdW1iZXJdOwpAQCAtNzE2LDYgKzcxMCw3IEBAIC0gKHZvaWQpc2hvd0Rh
dGFEZXRlY3RvcnNTaGVldAogICAgIGlmICghW19pbnRlcmFjdGlvblNoZWV0IHByZXNlbnRTaGVl
dDpXS0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbl0pCiAgICAgICAgIFtzZWxmIGNs
ZWFudXBTaGVldF07CiAjZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiB9
CiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpAQCAt
NzI1LDE1ICs3MjAsMTQgQEAgLSAoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0
TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24KICAgICBOU0RpY3Rpb25h
cnkgKmNvbnRleHQgPSBuaWw7CiAgICAgTlNTdHJpbmcgKnRleHRBdFNlbGVjdGlvbiA9IG5pbDsK
IAotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0YURl
dGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKLSAgICAgICAgY29udGV4
dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmXTsKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRpb25JbmZv
cm1hdGlvbjopXSkKKyAgICAgICAgY29udGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNv
bnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHBvc2l0aW9uSW5mb3JtYXRpb246Kl9w
b3NpdGlvbkluZm9ybWF0aW9uXTsKICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQogICAg
ICAgICB0ZXh0QXRTZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNlbGVjdGVkVGV4dEZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGZdOwogCiAgICAgTlNEaWN0aW9uYXJ5ICpuZXdDb250ZXh0ID0gbmls
OwogICAgIEREUmVzdWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRyb2xsZXIgcmVzdWx0Rm9yVVJMOl9w
b3NpdGlvbkluZm9ybWF0aW9uLT51cmwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+
ZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6dGV4dEF0U2VsZWN0aW9uIHJlc3Vs
dHM6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvclJlc3VsdHMuZ2V0KCkgY29udGV4
dDpjb250ZXh0IGV4dGVuZGVkQ29udGV4dDombmV3Q29udGV4dF07CiAKLQogICAgIENHUmVjdCBz
b3VyY2VSZWN0OwogICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi0+aXNMaW5rKQogICAgICAg
ICBzb3VyY2VSZWN0ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmxpbmtJbmRpY2F0b3IudGV4dEJv
dW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKQEAgLTc1MSwxMyArNzQ1LDExIEBAIC0g
KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlD
b250ZXh0TWVudUludGVyYWN0aW9uCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRleHRNZW51
SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXZp
ZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25m
aWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogewogICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdh
dGUuZ2V0KCk7Ci0gICAgQ0dQb2ludCBjZW50ZXIgPSBDR1BvaW50WmVybzsKKyAgICBDR1BvaW50
IGNlbnRlciA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50OwogICAgIAogICAg
IGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjcmVhdGVUYXJnZXRl
ZENvbnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQogICAgICAgICByZXR1
cm4gW2RlbGVnYXRlIGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRB
c3Npc3RhbnQ6c2VsZl07CiAgICAgCi0gICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVl
dEFzc2lzdGFudDopXSkKLSAgICAgICAgY2VudGVyID0gW2RlbGVnYXRlIGNvbnRleHRNZW51UHJl
c2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKICAgICBSZXRh
aW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9w
dE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOwogICAgIFJldGFpblB0cjxV
SVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0
IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6
Y2VudGVyXSk7CiAgICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBwcmV2aWV3ID0gYWRv
cHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6X3ZpZXcuZ2V0QXV0
b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQcmV2aWV3UGFyYW1ldGVycy5nZXQoKSB0YXJn
ZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOwpAQCAtNzc3LDYgKzc2OSwzNCBAQCAtICh2b2lkKWNv
bnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHdpbGxFbmRGbwogICAgICAgICBbc2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9u
XTsKICAgICB9XTsKIH0KKworc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVs
ZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0RWxlbWVu
dEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8p
Cit7CisgICAgaWYgKCFbZGVmYXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50XSkKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIGF1dG8gYWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhD
YXBhY2l0eTpbZGVmYXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50XV07CisgICAgZm9yIChfV0tFbGVt
ZW50QWN0aW9uICplbGVtZW50QWN0aW9uIGluIGRlZmF1bHRFbGVtZW50QWN0aW9ucy5nZXQoKSkK
KyAgICAgICAgW2FjdGlvbnMgYWRkT2JqZWN0OltlbGVtZW50QWN0aW9uIHVpQWN0aW9uRm9yRWxl
bWVudEluZm86ZWxlbWVudEluZm8uZ2V0KCldXTsKKworICAgIHJldHVybiBhY3Rpb25zOworfQor
CistIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjoo
VUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gb3ZlcnJpZGVTdWdnZXN0ZWRB
Y3Rpb25zRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uCit7CisgICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbikKKyAgICAgICAgcmV0
dXJuIG5pbDsKKyAgICByZXR1cm4gW3NlbGYgc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51
V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKK30KKworLSAo
TlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51
V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBhdXRvIGVsZW1lbnRJ
bmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uIHVzZXJJ
bmZvOm5pbF0pOworICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRl
ZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCA9IHBvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rID8g
W3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldIDogW3Nl
bGYgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKKyAgICBy
ZXR1cm4gbWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFz
c2lzdGFudCwgZWxlbWVudEluZm8pOworCit9CisKICNlbmRpZgogCiAtICh2b2lkKWNsZWFudXBT
aGVldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IDU2YjhiZDgwNjhlZTMxMmMwMmUzMTU1NWM4MjJiZjE4NDgw
YjNkYTMuLmE0ODY4Yzc5NzRlNmI1YjgxMjdiMTdmM2NkM2ViOTBlYWNjMjhjOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTUzMCw3ICs1MzAsOCBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9p
ZClfYWNjZXNzaWJpbGl0eUNsZWFyU2VsZWN0aW9uOwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICop
X2Zvcm1JbnB1dFNlc3Npb247CiAtICh2b2lkKV9kaWRDaGFuZ2VXZWJWaWV3RWRpdGFiaWxpdHk7
Ci0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3Jt
YXRpb246KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pcG9zaXRpb25J
bmZvcm1hdGlvbjsKKy0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9z
aXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKKy0gKHZvaWQpX3Nob3dEYXRhRGV0ZWN0b3Jz
VUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uOwogCiAtICh2b2lkKXdpbGxGaW5p
c2hJZ25vcmluZ0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uOwogCkBAIC01NDks
NyArNTUwLDYgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJF
X1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIAogLSAodm9pZClfcmVxdWVzdERP
TVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVt
ZW50UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIg
Y29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5m
b3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1Vw
VG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDJkNWU3NDQ5YTg5MzQwNjllZjdmMmM2NmFlZjFjYzcwZTdlYzA4
M2QuLmMxZDA1ZGYzMjAwNTVlOWEyMzNlZWQwYWI3ZjcwNDU0MmY4NDNmMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtMjE0OCw5ICsyMTQ4LDE0IEBAIC0gKHZvaWQpX3Nob3dMaW5rU2hlZXQKICAgICBb
X2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dMaW5rU2hlZXRdOwogfQogCi0tICh2b2lkKV9zaG93
RGF0YURldGVjdG9yc1NoZWV0CistICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1VJCiB7Ci0gICAg
W19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1NoZWV0XTsKKyAgICBbc2Vs
ZiBfc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246X3Bvc2l0aW9uSW5m
b3JtYXRpb25dOworfQorCistICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25J
bmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biYpcG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hv
d0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1hdGlv
bl07CiB9CiAKIC0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRp
b246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0
aW9uSW5mb3JtYXRpb24KQEAgLTIxNjcsNyArMjE3Miw3IEBAIC0gKFNFTClfYWN0aW9uRm9yTG9u
Z1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvCiAgICAgaWYgKHBvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKSB7CiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQogICAgICAgICBpZiAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6Y2FuQmVQ
cmVzZW50ZWRCeURhdGFEZXRlY3RvcnMocG9zaXRpb25JbmZvcm1hdGlvbi51cmwpKQotICAgICAg
ICAgICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0RhdGFEZXRlY3RvcnNTaGVldCk7CisgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93RGF0YURldGVjdG9yc1VJKTsKICNlbmRpZgogICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93TGlua1NoZWV0KTsKICAgICB9CkBAIC0yMTgyLDEx
ICsyMTg3LDYgQEAgLSAoU0VMKV9hY3Rpb25Gb3JMb25nUHJlc3MKICAgICByZXR1cm4gW3NlbGYg
X2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uXTsKIH0KIAotLSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biljdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgotewotICAgIHJldHVybiBfcG9zaXRpb25JbmZv
cm1hdGlvbjsKLX0KLQogLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZToo
dm9pZCAoXikoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9u
IGZvclJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVz
dAogewogICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9y
UmVxdWVzdDpyZXF1ZXN0XSkgewpAQCAtMjcyMywxNSArMjcyMyw2IEBAIC0gKHZvaWQpX2RpZE5v
dEhhbmRsZVRhcEFzQ2xpY2s6KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilwb2ludAogewogICAg
IFtzZWxmIF9yZXNldElucHV0Vmlld0RlZmVycmFsXTsKIAotICAgIC8vIEZJWE1FOiB3ZSBzaG91
bGQgYWxzbyB0YWtlIGludG8gYWNjb3VudCB3aGV0aGVyIG9yIG5vdCB0aGUgVUkgZGVsZWdhdGUK
LSAgICAvLyBoYXMgaGFuZGxlZCB0aGlzIG5vdGlmaWNhdGlvbi4KLSNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCi0gICAgaWYgKF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gJiYgcG9pbnQg
PT0gX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCAmJiBfcG9zaXRpb25JbmZvcm1h
dGlvbi5pc0RhdGFEZXRlY3RvckxpbmspIHsKLSAgICAgICAgW3NlbGYgX3Nob3dEYXRhRGV0ZWN0
b3JzU2hlZXRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBpZiAoIV9p
c0RvdWJsZVRhcFBlbmRpbmcpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjkwNCw3ICs2ODk1LDcg
QEAgLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlvbjooV0tBY3Rp
b25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGEKICAgICBfcGFnZS0+c3RvcEludGVyYWN0aW9uKCk7
CiB9CiAKLS0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25J
bmZvcm1hdGlvbjooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbilwb3Np
dGlvbkluZm9ybWF0aW9uCistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
clBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb24KIHsKICAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlRGljdGlvbmFyeT4gY29udGV4dDsKICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlE
ZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW193ZWJWaWV3
IFVJRGVsZWdhdGVdKTsKQEAgLTY5MzMsOSArNjkyNCw5IEBAIC0gKE5TRGljdGlvbmFyeSAqKWRh
dGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjooV2ViS2l0OjpJbnRlcmFj
dGlvCiAjZW5kaWYKIH0KIAotLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRG
b3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dAorLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFz
c2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBwb3NpdGlvbkluZm9y
bWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilw
b3NpdGlvbkluZm9ybWF0aW9uCiB7Ci0gICAgcmV0dXJuIFtzZWxmIGRhdGFEZXRlY3Rpb25Db250
ZXh0Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjphc3Npc3RhbnQuY3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb24udmFsdWVPcihfcG9zaXRpb25JbmZvcm1hdGlvbildOworICAgIHJldHVybiBbc2VsZiBk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1h
dGlvbl07CiB9CiAKIC0gKE5TU3RyaW5nICopc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQKQEAgLTY5NTQsMTEgKzY5
NDUsNiBAQCAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICopYXNzaXN0YW50IGdldEFsdGVybmF0ZVVSTAogICAgICAgICBjb21wbGV0aW9uKG5pbCwg
bmlsKTsKIH0KIAotLSAoQ0dQb2ludCljb250ZXh0TWVudVByZXNlbnRhdGlvbkxvY2F0aW9uRm9y
QWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQK
LXsKLSAgICByZXR1cm4gW3NlbGYgbGFzdEludGVyYWN0aW9uTG9jYXRpb25dOwotfQotCiAjaWYg
VVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0
ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudApAQCAtOTE4NiwxMyArOTE3MiwxMSBAQCAtICh2b2lkKWNvbnRp
bnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbldpdGhEYXRhRGV0ZWN0b3JzOih2b2lkKF4pKFVJQ29u
dGV4dE1lbnVDbwogCiAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilfY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gb3ZlcnJp
ZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgaWYgKF9jb250ZXh0TWVudUFjdGlvblByb3Zp
ZGVyRGVsZWdhdGVOZWVkc092ZXJyaWRlKSB7Ci0gICAgICAgIGF1dG8gZWxlbWVudEluZm8gPSBh
ZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uIHVzZXJJbmZvOm5p
bF0pOwotICAgICAgICBSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PiBkZWZh
dWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmsgPyBb
X2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OmVsZW1lbnRJ
bmZvLmdldCgpXSA6IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFn
ZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKLSAgICAgICAgcmV0dXJuIG1lbnVFbGVtZW50c0Zy
b21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJbmZv
KTsKLSAgICB9CiAgICAgLy8gSWYgd2UncmUgaGVyZSB3ZSdyZSBpbiB0aGUgbGVnYWN5IHBhdGgs
IHdoaWNoIGlnbm9yZXMgdGhlIHN1Z2dlc3RlZCBhY3Rpb25zIGFueXdheS4KLSAgICByZXR1cm4g
bmlsOworICAgIGlmICghX2NvbnRleHRNZW51QWN0aW9uUHJvdmlkZXJEZWxlZ2F0ZU5lZWRzT3Zl
cnJpZGUpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gW19hY3Rpb25TaGVldEFz
c2lzdGFudCBzdWdnZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1h
dGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICop
Y29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJh
Y3Rpb24gcHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250
ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLUERGVmlldy5tbQppbmRleCAwNmI0ZTlmMWQ0NTJjN2FmYjZiNTdhNTE0OTFjODA0
YWEzZTc4MTQzLi4xMDQxOGY5NDg4M2JmNGRlNGUyYmJhY2ZiZjQ4ZGYzNWNiZWU2ODJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTQ4NSwxMiArNDg1LDE1
IEBAIC0gKHZvaWQpX3Nob3dBY3Rpb25TaGVldEZvclVSTDooTlNVUkwgKil1cmwgYXRMb2NhdGlv
bjooQ0dQb2ludClsb2NhdGlvbiB3aXRoQW5uCiAgICAgcG9zaXRpb25JbmZvcm1hdGlvbi51cmwg
PSB1cmw7CiAKICAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9IFdURk1vdmUocG9zaXRpb25JbmZv
cm1hdGlvbik7CisKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgaWYgKFdlYkNvcmU6
OkRhdGFEZXRlY3Rpb246OmNhbkJlUHJlc2VudGVkQnlEYXRhRGV0ZWN0b3JzKF9wb3NpdGlvbklu
Zm9ybWF0aW9uLnVybCkpCi0gICAgICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFE
ZXRlY3RvcnNTaGVldF07Ci0gICAgZWxzZQorICAgIGlmIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9u
OjpjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhfcG9zaXRpb25JbmZvcm1hdGlvbi51cmwp
KSB7CisgICAgICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNVSUZv
clBvc2l0aW9uSW5mb3JtYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbl07CisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAjZW5kaWYKLSAgICAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlu
a1NoZWV0XTsKKworICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0xpbmtTaGVldF07CiB9
CiAKIC0gKHZvaWQpcGRmSG9zdFZpZXdDb250cm9sbGVyOihQREZIb3N0Vmlld0NvbnRyb2xsZXIg
Kiljb250cm9sbGVyIGRpZExvbmdQcmVzc1VSTDooTlNVUkwgKil1cmwgYXRMb2NhdGlvbjooQ0dQ
b2ludClsb2NhdGlvbiB3aXRoQW5ub3RhdGlvblJlY3Q6KENHUmVjdClhbm5vdGF0aW9uUmVjdApA
QCAtNTgyLDcgKzU4NSw3IEBAIC0gKFJldGFpblB0cjxOU0FycmF5PilhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBkCiAgICAgcmV0dXJuIHBh
Z2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCwgV1RGTW92ZShkZWZhdWx0
QWN0aW9ucykpOwogfQogCi0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50
CistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNz
aXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHBvc2l0aW9uSW5mb3Jt
YXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBv
c2l0aW9uSW5mb3JtYXRpb24KIHsKICAgICBhdXRvIHdlYlZpZXcgPSBfd2ViVmlldy5nZXRBdXRv
cmVsZWFzZWQoKTsKICAgICBpZiAoIXdlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmOWI0OTM5YzE3ZWQ2M2FjZjNmYWZmMWE0
ZWQxOWM5MTM4NzMxYjQ5Li5kZWM5YmY5NmFhMjlhOTUxYzYzYzg4MjU1ZjAxZjMxZWZmYTM2ZjQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
QEAgLTE2MjEsNiArMTYyMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RGV2aWNlSGFzQUdY
Q29tcGlsZXJTZXJ2aWNlRm9yVGVzdGluZygpIGNvbnN0CiAgICAgV2ViQ29yZTo6c2V0RGV2aWNl
SGFzQUdYQ29tcGlsZXJTZXJ2aWNlRm9yVGVzdGluZygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6c2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mbykKK3sKKyAgICBwYWdlQ2xp
ZW50KCkuc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24ocG9zaXRpb25J
bmZvKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAyYWRlZDEzMzA4ODg1NjYyZDE2ODJi
ODQ2NTBlOGNhMzE1Y2U1MmYzLi5kYzQzMGIzODc5MWY5ZTRkYjMxMWViNDQ0OTRiY2ViNGU0MGZm
NTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODUsNiArMTg1LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZERlc3Ryb3lFZGl0YWJsZUltYWdlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkVt
YmVkZGVkVmlld0lEKSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkVXNlTW91c2VFdmVudEZvclNl
bGVjdGlvbihjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQmKSBmaW5hbDsKKworICAg
IGJvb2wgc2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVu
dCYsIGNvbnN0IFdlYkNvcmU6OkV2ZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShP
UklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4
IDk3YzcxNGQ0MGMyMDM1MGZmZjQ3NWU5OTc0NmI5YjNiYWEwNWRhMWMuLjg5NjFmNWJmYjkwOGI0
NjMxMDk3OWExZmE4OWQ4MDZjMWI4YjRjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkRyYXdpbmdBcmVhLmgiCiAjaW1w
b3J0ICJFZGl0YWJsZUltYWdlQ29udHJvbGxlck1lc3NhZ2VzLmgiCisjaW1wb3J0ICJJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3QuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYkZyYW1lLmgiCkBAIC0zOSw2ICs0MSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50
Q2hhbmdlT2JzZXJ2ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSWNvbi5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0
ci5oPgpAQCAtMTkzLDYgKzE5NiwxOCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNl
TW91c2VFdmVudEZvclNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdQogI2VuZGlm
CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG93RGF0YURldGVjdG9yc1VJRm9yRWxlbWVu
dChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBFdmVudCYgZXZlbnQpCit7CisgICAgaWYg
KCFldmVudC5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
RklYTUU6IElkZWFsbHksIHdlIHdvdWxkIGJlIGFibGUgdG8gZ2VuZXJhdGUgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gd2l0aG91dCByZS1oaXQtdGVzdGluZyB0aGUgZWxlbWVudC4K
KyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAg
IGF1dG8gcG9zaXRpb25JbmZvcm1hdGlvbiA9IG1fcGFnZS5wb3NpdGlvbkluZm9ybWF0aW9uKElu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgcm91bmRlZEludFBvaW50KG1vdXNlRXZlbnQu
bG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSkgfSk7CisgICAgbV9wYWdlLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3Jt
YXRpb24ocG9zaXRpb25JbmZvcm1hdGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMjRjOWNjN2M5MTAz
MjRmZGM0NDlmYzgxNzRkNjE3ZjI0MTgwODNjOC4uOTg4NWYxYjQxZWNhZTUzN2ViNDQ4MTJmYTVm
N2VkNjVlZTVmOGQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTI5MCw2ICsxMjkwLDkgQEAgcHVibGljOgogICAgIC8vIFRoZXNlIGluY2x1ZGUg
bGF5b3V0IG92ZXJmbG93IGZvciBvdmVyZmxvdzp2aXNpYmxlIGVsZW1lbnRzLCBidXQgZXhjbHVk
ZSBib3JkZXJzLgogICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGFic29sdXRlSW50ZXJhY3Rp
b25Cb3VuZHNGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICBzdGF0aWMg
V2ViQ29yZTo6SW50UmVjdCByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudChjb25z
dCBXZWJDb3JlOjpFbGVtZW50Jik7CisKKyAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiBwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0Jik7CisgICAgCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFVTRShR
VUlDS19MT09LKQpAQCAtMTM2Niw3ICsxMzY5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3Bh
dGNoU3ludGhldGljTW91c2VFdmVudHNGb3JTZWxlY3Rpb25HZXN0dXJlKFNlbGVjdGlvblRvdWNo
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAgdm9pZCBzZW5kUG9zaXRpb25JbmZv
cm1hdGlvbihJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYmKTsKLSAgICBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4g
c2hhcmVhYmxlQml0bWFwU25hcHNob3RGb3JOb2RlKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICBX
ZWJBdXRvY29ycmVjdGlvbkNvbnRleHQgYXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiAgICAgYm9v
bCBhcHBseUF1dG9jb3JyZWN0aW9uSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBj
b25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDI3ZDhlZjlhYmVmYzQzY2NlZjA4
MWFiYThmN2E0NGU1NjY2ODcxYWYuLmMxNjZhMDhjNjMzZmRkODhjMTVmZDM4NmVjZmQwMWY4NTI2
Yzc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC04NjksMTMgKzg2OSw2IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFw
KGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9k
CiAKICAgICBpZiAoIWZyYW1lUmVzcG9uZGluZ1RvQ2xpY2sgfHwgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQgPCBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWVSZXNwb25kaW5nVG9DbGlj
ayktPmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCgpKQogICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZE5vdEhhbmRsZVRhcEFzQ2xpY2so
YWRqdXN0ZWRJbnRQb2ludCkpOwotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBlbHNl
IGlmIChpczxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrKSAmJiBEYXRhRGV0ZWN0aW9u
OjpzaG91bGRDYW5jZWxEZWZhdWx0QWN0aW9uKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9u
ZGluZ1RvQ2xpY2spKSkgewotICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCBy
ZXF1ZXN0KGFkanVzdGVkSW50UG9pbnQpOwotICAgICAgICByZXF1ZXN0UG9zaXRpb25JbmZvcm1h
dGlvbihyZXF1ZXN0KTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRO
b3RIYW5kbGVUYXBBc0NsaWNrKGFkanVzdGVkSW50UG9pbnQpKTsKLSAgICB9Ci0jZW5kaWYKICAg
ICBlbHNlCiAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xp
Y2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CiB9CkBAIC0xMDc3LDE0ICsxMDcwLDcgQEAg
dm9pZCBXZWJQYWdlOjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBwb2ludCwgT3B0aW9uU2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBzZW5k
VGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbm9kZVJlc3BvbmRpbmdU
b0NsaWNrKTsKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgaWYgKGlzPEVsZW1lbnQ+
KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERl
ZmF1bHRBY3Rpb24oZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7
Ci0gICAgICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZElu
dFBvaW50KGFkanVzdGVkUG9pbnQpKTsKLSAgICAgICAgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRp
b24ocmVxdWVzdCk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkTm90
SGFuZGxlVGFwQXNDbGljayhyb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQb2ludCkpKTsKLSAgICB9
IGVsc2UKLSNlbmRpZgotICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9u
ZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywgV2ViQ29yZTo6VHdvRmluZ2Vy
VGFwKTsKKyAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ss
IGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKIH0KIAog
dm9pZCBXZWJQYWdlOjpoYW5kbGVTdHlsdXNTaW5nbGVUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBwb2ludCwgdWludDY0X3QgcmVxdWVzdElEKQpAQCAtMTE2OCwxNiArMTE1NCw5
IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6
TW9kaWZpZXI+IG1vZGlmaWVycywgVHJhbnNhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAobV9wb3RlbnRpYWxUYXBOb2RlID09IG5vZGVSZXNwb25kaW5nVG9DbGljaykgewotI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVz
cG9uZGluZ1RvQ2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rp
b24oZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7Ci0gICAgICAg
ICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2lu
dChtX3BvdGVudGlhbFRhcExvY2F0aW9uKSk7Ci0gICAgICAgICAgICByZXF1ZXN0UG9zaXRpb25J
bmZvcm1hdGlvbihyZXF1ZXN0KTsKLSAgICAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxl
ZCgpOwotICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgaGFuZGxlU3ludGhldGlj
Q2xpY2soKm5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzLCBw
b2ludGVySWQpOwotICAgIH0gZWxzZQorICAgIGlmIChtX3BvdGVudGlhbFRhcE5vZGUgPT0gbm9k
ZVJlc3BvbmRpbmdUb0NsaWNrKQorICAgICAgICBoYW5kbGVTeW50aGV0aWNDbGljaygqbm9kZVJl
c3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMsIHBvaW50ZXJJZCk7Cisg
ICAgZWxzZQogICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKIAogICAgIG1fcG90
ZW50aWFsVGFwTm9kZSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGI4Yjc1
MjYzNTlmZTNlMmY5NjgxM2MwYWVjYWQwNzU1NTMzMGFlZjcuLmE5MmJhYTZiMzA1OWRlODkxNDVm
MDNiMWE1NzU3Zjk3MmE5NDA5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC05Nyw2ICs5
Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBo
YXNWaWRlbywgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSBmaW5h
bDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SWNvbj4gY3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpIGZpbmFsOwogCisgICAgYm9vbCBzaG93RGF0YURldGVj
dG9yc1VJRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6
RXZlbnQmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKICAgICBpbnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBmaW5hbDsKICNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398969</attachid>
            <date>2020-05-10 00:44:38 -0700</date>
            <delta_ts>2020-05-10 12:28:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211686-20200510004437.patch</filename>
            <type>text/plain</type>
            <size>45144</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyZjhkYjM5NDBkNmI1
ZjkwMTk3YjM5ZTAyYzlmMmE1ODg5YTczNi4uZGFmMjRkMmUxZWQxNTE4ZjJmNWJhNGYwNWE4OTM2
ZmUwYzhhYzA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTA5ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENsaWNraW5nIGEg
dGVsOi8vIGxpbmsgb24gaVBhZCB3aXRoIGEgdHJhY2twYWQgcHJlc2VudHMgZGlmZmVyZW50IFVJ
IHRoYW4gdGFwcGluZyBvbiBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExNjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Nzk0MTU4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5o
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhblByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRB
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICBSZW5hbWUgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
biB0byBjYW5QcmVzZW50RGF0YURldGVjdG9yc1VJRm9yRWxlbWVudC4KKyAgICAgICAgVGhpcyBi
aXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50IHNob3VsZCBpbnZva2UgREQgVUkg
aW5zdGVhZCBvZgorICAgICAgICBkb2luZyBpdHMgZGVmYXVsdCBhY3Rpb24sIHNvIGVpdGhlciBu
YW1lIGlzIE9LLCBidXQgaXQgZmVlbHMgYmV0dGVyIHRvCisgICAgICAgIGhhdmUgaXQgaW4gdGhl
IGFmZmlybWF0aXZlIGRpcmVjdGlvbi4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KToKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHRhcHBpbmcgb24gYW4gYW5jaG9yIHNob3VsZCBpbnZv
a2UgRGF0YURldGVjdG9ycyBVSSBpbnN0ZWFkCisgICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIGRl
ZmF1bHQgYWN0aW9uLCBhbmQgc2hvcnQtY2lyY3VpdCBpZiB0aGF0IGlzIHBvc3NpYmxlLgorCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjAtMDUtMDYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1
a2F3YUBzb255LmNvbT4gYW5kIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbl0gSW1wbGVtZW50IERpc3BsYXlSZWZyZXNoTW9uaXRvciBieSB1
c2luZyBSdW5Mb29wOjpUaW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmMxNWJkZGU3MmEyYjhlNDkxNzE5N2Rk
NmE0ZWRlOGYxMzgwMzBiLi5mMzc5MDE5ZDVlMDU0OGEwNjI4N2MxY2I0N2M4M2FlYmYwZjBkMTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNS0wOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGlja2luZyBhIHRlbDovLyBsaW5r
IG9uIGlQYWQgd2l0aCBhIHRyYWNrcGFkIHByZXNlbnRzIGRpZmZlcmVudCBVSSB0aGFuIHRhcHBp
bmcgb24gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTY4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDE1ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgaU9TIFdlYktp
dCBoYWQgY29kZSBpbiBoYW5kbGVUYXAsIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQsIGFuZCBj
b21taXRQb3RlbnRpYWxUYXAsCisgICAgICAgIHdoaWNoIGludHJvc3BlY3RlZCB0aGUgaGl0IGVs
ZW1lbnQgL2JlZm9yZS8gZGlzcGF0Y2hpbmcgdGhlIHRhcCAob3Igc3ludGhldGljIGNsaWNrKSB0
byB0aGUgRE9NLAorICAgICAgICBzaG9ydCBjaXJjdWl0aW5nIGFsbCBub3JtYWwgZXZlbnQgaGFu
ZGxpbmcgbWFjaGluZXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uCisg
ICAgICAgIGFuZCBwcmVzZW50IHRoZSBEYXRhIERldGVjdG9ycyBVSSBmb3IgdGhlIGdpdmVuIGxp
bmsuCisKKyAgICAgICAgVGhlcmUncyBvbmUgaW1tZWRpYXRlIHByb2JsZW0gd2l0aCB0aGlzLCB3
aGljaCBpcyB0aGF0IHRoZXJlIGlzIG5vIHNpbWlsYXIgY29kZSBpbiB0aGUgZGlyZWN0CisgICAg
ICAgIGNsaWNrIGV2ZW50IGhhbmRsZXIgcGF0aCwgd2hpY2ggd2Ugbm93IHVzZSBmb3IgdHJhY2tw
YWQvbW91c2UgaW5wdXQgb24gaVBhZC4gVGhlcmUncyBhbHNvIGEKKyAgICAgICAgc2Vjb25kYXJ5
IHByb2JsZW0gKHdoaWNoIHdlIGhhdmUgbm90IHNlZW4gaW4gcHJhY3RpY2UpLCB3aGljaCBpcyB0
aGF0IHBhZ2VzIGNhbm5vdCBwcmV2ZW50RGVmYXVsdAorICAgICAgICB0byBhdm9pZCBsYXVuY2hp
bmcgdGhlIERhdGEgRGV0ZWN0b3JzIFVJIG9uIGEgbGluaywgbGlrZSB0aGV5IGNvdWxkIHRvIHBy
ZXZlbnQgYW4gb3JkaW5hcnkKKyAgICAgICAgbGluayBmcm9tIGJlaW5nIGZvbGxvd2VkLgorCisg
ICAgICAgIEluIG9yZGVyIHRvIHJlc29sdmUgYm90aCBpc3N1ZXMgYW5kIHJlZHVjZSBkdXBsaWNh
dGlvbiBvZiBsb2dpYywgbW92ZSB0aGUgY29kZSB0aGF0IGludHJvc3BlY3RzCisgICAgICAgIHRo
ZSBlbGVtZW50IGFuZCBpbnZva2VzIERhdGEgRGV0ZWN0b3JzIFVJIGZyb20gaGlnaC1sZXZlbCBX
ZWJLaXQgZXZlbnQgZGlzcGF0Y2ggY29kZSAod2hlcmUgaXQKKyAgICAgICAgZG9lc24ndCByZWFs
bHkgYmVsb25nKSBkb3duIHRvIFdlYkNvcmUncyBkZWZhdWx0IGNsaWNrIGV2ZW50IGhhbmRsZXIg
Zm9yIGFuY2hvcnMsIHJpZ2h0IG5leHQgdG8KKyAgICAgICAgdGhlIGNvZGUgdGhhdCB3b3VsZCBv
cmRpbmFyaWx5IGNhdXNlIGEgbmF2aWdhdGlvbi4gVGhpcyB3YXksIG5vIG1hdHRlciBob3cgd2Ug
Z2V0IGhlcmUsIHdoZXRoZXIKKyAgICAgICAgYnkgc3ludGhldGljIGNsaWNrIG9yIHJlYWwgY2xp
Y2ssIHdlJ2xsIGludm9rZSB0aGUgRGF0YSBEZXRlY3RvcnMgVUkuCisKKyAgICAgICAgT25lIGFs
dGVybmF0aXZlIGNvbnNpZGVyZWQgYXQgbGVuZ3RoOiB3ZSBjb3VsZCBhY3R1YWxseSBsZXQgdGhl
IG5hdmlnYXRpb24gaGFwcGVuLCBhbmQgaW5zdGVhZAorICAgICAgICBoYW5kbGUgdGhlIHN3aXRj
aCBpbiBuYXZpZ2F0aW9uIHBvbGljeSBjb2RlLCBidXQgdGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMg
dGhhdCBkaWQgbm90IHNlZW0gaWRlYWw6CisgICAgICAgIDEpIFdlJ2QgbmVlZCB0byBwbHVtYiBw
bGF0Zm9ybS1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgdGhyb3VnaCBhIHRvbiBvZiBGcmFtZUxv
YWRlciBjb2RlLgorICAgICAgICAyKSBDbGllbnRzIG9mdGVuIGJsb2NrIG5vbi1IVFRQKFMpIG5h
dmlnYXRpb25zLCBzbyBpbiBvcmRlciB0byBrZWVwIHRoZSBmZWF0dXJlIGZ1bmN0aW9uYWwsCisg
ICAgICAgICAgIHdlJ2QgaGF2ZSB0byBkaXNyZWdhcmQgdGhlIGNsaWVudCdzIHBvbGljeSBkZWNp
c2lvbiwgZGVmZWF0aW5nIG11Y2ggb2YgdGhlIHB1cnBvc2Ugb2YgbWFraW5nCisgICAgICAgICAg
IHVzZSBvZiB0aGUgbmF2aWdhdGlvbiBtZWNoYW5pc20gaW4gdGhlIGZpcnN0IHBsYWNlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJv
bWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvd0Rh
dGFEZXRlY3RvcnNVSUZvckVsZW1lbnQpOgorICAgICAgICBQbHVtYiBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbiBmcm9tIGlPUyBXZWJLaXQncyBDaHJvbWVDbGllbnQK
KyAgICAgICAgaW1wbGVtZW50YXRpb24gYWxsIHRoZSB3YXkgdG8gV0tDb250ZW50Vmlldy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVu
dUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF0pOiBEZWxldGVkLgorICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1c2ggSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW50byBXS0FjdGlvblNoZWV0QXNzaXN0YW50LAorICAgICAgICBpbnN0ZWFkIG9mIGhh
dmluZyBpdCBhbHdheXMgcHVsbCBhIGZyZXNoIG9uZSB1cG9uIGludm9jYXRpb24sIHNvIHRoYXQg
d2UgY2FuIHVzZSB0aGUKKyAgICAgICAgcG9zaXRpb24gaW5mb3JtYXRpb24gcGFzc2VkIGFsb25n
IHdpdGggdGhlIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uIG1lc3Nh
Z2UuCisKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBfY29udGV4dE1lbnVJbnRl
cmFjdGlvbjpvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0aW9uOl0pOgorICAg
ICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0
TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICBGaXggYW4gZXhpc3Rpbmcg
YnVnIHdoZXJlIERhdGEgRGV0ZWN0b3JzIGNvbnRleHQgbWVudXMgd291bGQgc2hvdyBleHRyYSBk
ZWZhdWx0IGFjdGlvbnMsCisgICAgICAgIGJ5IG1vdmluZyBvdXIgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIC1fY29udGV4dE1lbnVJbnRlcmFjdGlvbjpvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JD
b25maWd1cmF0aW9uOgorICAgICAgICBkZWxlZ2F0ZSBoZXJlLCBzaGFyaW5nIGl0IHdpdGggV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLgorCisgICAgICAgIEluIGEgZnV0dXJlIHBhdGNoLCB3ZSBz
aG91bGQgcmVjb25zaWRlciBoYXZpbmcgdGhyZWUgc2VwYXJhdGUgVUlDb250ZXh0TWVudUludGVy
YWN0aW9ucy4KKworICAgICAgICBBbHNvLCByZW1vdmUgdGhlIGNvbnRleHRNZW51UHJlc2VudGF0
aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDogZGVsZWdhdGUsCisgICAgICAgIHNp
bmNlIGl0IHdpbGwgYmUgd3JvbmcgaW4gdGhlIGNhc2Ugb2YgcHVzaGVkLWluIHBvc2l0aW9uIGlu
Zm9ybWF0aW9uLCBhbmQgaW5zdGVhZAorICAgICAgICB1c2UgdGhlIHBvc2l0aW9uIGluZm9ybWF0
aW9uJ3Mgb3JpZ2luYWwgaGl0IHRlc3QgcG9pbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG93
RGF0YURldGVjdG9yc1VJXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Nob3dEYXRhRGV0
ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZGlkTm90SGFuZGxlVGFwQXNDbGljazpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRp
b246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9ybWF0aW9uOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9zaG93RGF0YURldGVjdG9yc1NoZWV0XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNo
ZWV0QXNzaXN0YW50Ol0pOiBEZWxldGVkLgorICAgICAgICBJbnN0ZWFkIG9mIGV4cG9zaW5nIGFu
IHVubmVjZXNzYXJ5IC1jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBnZXR0ZXIgb24gV0tBY3Rp
b25TaGVldEFzc2lzdGFudCwKKyAgICAgICAgcHJvdmlkZSBpdCBhcyBhbiBhcmd1bWVudCB0byB0
aGUgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlIG1ldGhvZHMgdGhhdCBhY3R1YWxseSBu
ZWVkIGl0LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGV4dE1lbnVQcmVzZW50YXRp
b25Mb2NhdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50Ol0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9jb250ZXh0TWVudUludGVyYWN0aW9uOm92ZXJyaWRlU3VnZ2VzdGVk
QWN0aW9uc0ZvckNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgIEFkb3B0IFdLQWN0aW9uU2hlZXRB
c3Npc3RhbnQncyBzdWdnZXN0ZWRBY3Rpb25zIG1lY2hhbmlzbSBzbyB3ZSBjYW4gc2hhcmUgY29k
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tOgorICAgICAgICAoLVtX
S1BERlZpZXcgX3Nob3dBY3Rpb25TaGVldEZvclVSTDphdExvY2F0aW9uOndpdGhBbm5vdGF0aW9u
UmVjdDpdKToKKyAgICAgICAgKC1bV0tQREZWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0
aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tQ
REZWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6IERl
bGV0ZWQuCisgICAgICAgIEFkYXB0IHRvIHNvbWUgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVn
YXRlIGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlVGFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNv
bW1pdFBvdGVudGlhbFRhcCk6CisgICAgICAgIFJlbW92ZSB0aGUgYWZvcmVtZW50aW9uZWQgc2hv
cnQtY2lyY3VpdGluZyBwYXRocyBmb3IgRGF0YSBEZXRlY3RvcnMgbGlua3MuCiAKIDIwMjAtMDUt
MDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDcxZTBkZTQyMjQ4ZDE2OGQzMTk1OTk2OWFlODliMDlm
NDVlZGIyZWYuLmM3MjA0ZTE4Y2QyOTJlMjk3NzE4N2IzY2Q3Yzg5ZTFjMWM1M2Y1YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNS0wOSAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGlja2luZyBh
IHRlbDovLyBsaW5rIG9uIGlQYWQgd2l0aCBhIHRyYWNrcGFkIHByZXNlbnRzIGRpZmZlcmVudCBV
SSB0aGFuIHRhcHBpbmcgb24gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTY4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDE1ODk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaDoKKwogMjAyMC0wNC0xMSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBsaXZlIHJhbmdlcyBpbiBm
dW5jdGlvbnMgdGhhdCByZXR1cm4gcmFuZ2Ugb2YgdGhlIHNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW91c2VSZWxhdGVkRXZlbnQuaAppbmRleCA4ZmM3OWMyN2NjMzdkNTBhYWQzNGExYzZmOTE1
YWU3OWQ4YzY4OTdkLi5kOGYxYTQwYzIwNTNkZjQ0MWFiZWE4MGI5ZjU0MmNhYzYwZWViNGE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaApAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRJc1NpbXVsYXRlZChib29sIHZhbHVlKSB7IG1faXNTaW11bGF0
ZWQgPSB2YWx1ZTsgfQogICAgIGludCBwYWdlWCgpIGNvbnN0IGZpbmFsOwogICAgIGludCBwYWdl
WSgpIGNvbnN0IGZpbmFsOwotICAgIEZsb2F0UG9pbnQgbG9jYXRpb25JblJvb3RWaWV3Q29vcmRp
bmF0ZXMoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFBvaW50IGxvY2F0aW9uSW5S
b290Vmlld0Nvb3JkaW5hdGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFnZUxvY2F0aW9uKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgaW50IHgoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgeSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAppbmRleCAzOWJiYjFmODRlZjNhMmQyZmU1Zjc4
YjI2ODM2ZTg4NzQ0OTg5YjY4Li43ZmY5OThkYmExN2FmNjE4MjYxNjk1MGZiYjVkMjZlM2UyNGZk
NzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaApA
QCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wg
Y2FuQmVQcmVzZW50ZWRCeURhdGFEZXRlY3RvcnMoY29uc3QgVVJMJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgaXNEYXRhRGV0ZWN0b3JMaW5rKEVsZW1lbnQmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvcklkZW50aWZpZXIoRWxlbWVudCYp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZENhbmNlbERlZmF1bHRBY3Rp
b24oRWxlbWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNhblByZXNlbnRE
YXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50KEVsZW1lbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCByZXF1aXJlc0V4dGVuZGVkQ29udGV4dChFbGVtZW50Jik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGEy
NmQ4M2I3NWVlNjBhZjIwYTY5MmNjZTEyZTAzZmNhZjQ3MGEwOTIuLjA4NGVkYmZmZTljNGRhZTc3
ZDcwMGJjMzI0M2ExN2YzM2ZjYjQwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTE4Myw3ICsxODMsNyBAQCBTdHJpbmcgRGF0YURldGVj
dGlvbjo6ZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVy
biBlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oeF9hcHBsZV9kYXRhX2Rl
dGVjdG9yc19yZXN1bHRBdHRyKTsKIH0KIAotYm9vbCBEYXRhRGV0ZWN0aW9uOjpzaG91bGRDYW5j
ZWxEZWZhdWx0QWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQpCitib29sIERhdGFEZXRlY3Rpb246OmNh
blByZXNlbnREYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAg
ICAgaWYgKCFpc0RhdGFEZXRlY3RvckxpbmsoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggNmZjOWI0
N2ZkYjEyZjY4ZDZjZjRjMTVhNjkwMzEzZTc1YjcyM2IxZC4uMDBiNzhlYjUzOWU2M2E0YWQwNzY0
OTZiMjAxYTUzYjdmZDZmODY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKQEAgLTI1LDYgKzI1LDggQEAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5o
IgogCiAjaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAj
aW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBA
IC01Nyw2ICs1OSwxMCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAorI2lmIFBMQVRG
T1JNKENPQ09BKQorI2luY2x1ZGUgIkRhdGFEZXRlY3Rpb24uaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MQW5jaG9yRWxl
bWVudCk7CkBAIC00NjYsNiArNDcyLDE1IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRs
ZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBhcHBlbmRTZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVy
bCwgZXZlbnQpOwogICAgIFVSTCBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJM
KHVybC50b1N0cmluZygpKTsKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikgJiYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoRGF0YURldGVjdGlvbjo6aXNEYXRhRGV0ZWN0b3JMaW5r
KCp0aGlzKSAmJiBEYXRhRGV0ZWN0aW9uOjpjYW5QcmVzZW50RGF0YURldGVjdG9yc1VJRm9yRWxl
bWVudCgqdGhpcykpIHsKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2Uo
KSkgeworICAgICAgICAgICAgaWYgKHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3dEYXRhRGV0
ZWN0b3JzVUlGb3JFbGVtZW50KCp0aGlzLCBldmVudCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1
dGU7CiAjaWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGI4ZDExMTY4YzY5MzhlOGIz
N2ZlNjQ0ZjlkNDFkNmFkNDJmNTM4YzMuLjcxZDRlNTQzOTFiNjA1NjI1YzFlY2RjNGU5N2E3YTMw
MWQwMTM3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE3OCw4ICsx
NzgsMTAgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsK
ICAgICB2b2lkIGFkZE9yVXBkYXRlU2Nyb2xsaW5nTGF5ZXIoTm9kZSosIFBsYXRmb3JtTGF5ZXIq
LCBQbGF0Zm9ybUxheWVyKiwgY29uc3QgSW50U2l6ZSYsIGJvb2wsIGJvb2wpIGZpbmFsIHsgfQog
ICAgIHZvaWQgcmVtb3ZlU2Nyb2xsaW5nTGF5ZXIoTm9kZSosIFBsYXRmb3JtTGF5ZXIqLCBQbGF0
Zm9ybUxheWVyKikgZmluYWwgeyB9CiAKLSAgICB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0
ZWQoKSBmaW5hbCB7IH07Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCwg
Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH07CisgICAgdm9pZCB3
ZWJBcHBPcmllbnRhdGlvbnNVcGRhdGVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IH0KKworICAgIGJvb2wgc2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoY29uc3Qg
RWxlbWVudCYsIGNvbnN0IEV2ZW50JikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM0M2RhMmMxMjM4NTIxYTg2OWMyYThh
NzdhNzNhYmQyOTVkNGI2NTEuLjI5YjVkMjZkZGI5YTVhZGZlNzNkOWU4ZDYwMTc4OTczOTBjMWY1
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjcyLDYgKzI3Miw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3ZWJBcHBPcmllbnRhdGlvbnNVcGRhdGVkKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRl
bywgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSA9IDA7CisKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYsIGNvbnN0
IEV2ZW50JikgPSAwOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGFhMDZlMDQyNWM5MmZiMzQwY2Zk
NTU5NGVkNjU2NDU3MGUyZGVlNDkuLmIzMTk5ODM0MGE0ODBmOGUzMDMzYzgzMDgyZTc5MDIyODIw
NGE0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQxNCw2ICs0MTQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFu
Z2UoY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNhdmVJbWFnZVRvTGlicmFyeShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhh
c1ZpZGVvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNo
b3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRG91
YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25G
b3JQb3RlbnRpYWxUYXAodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11
bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVs
KSA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWNmMzQ5MzQ3N2RiMmE3
N2U5MjA4YjI3OTM3ZGE5ZTUzMDFlMzNmNi4uNmZmNzlhN2RmYmRjNWE2Y2FkODljZjI4OTZlODk0
NzQ0M2E2ZDZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgx
OSw2ICs4MTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRGVsdGEo
aW50NjRfdCBsb2NhdGlvbkRlbHRhLCBpbnQ2NF90IGxlbmd0aERlbHRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQo
V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHQpPiYmKTsKICAgICB2b2lkIGdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlKTsK
KyAgICB2b2lkIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0
IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJik7CiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKICAgICB2b2lkIGRpZEhhbmRsZURyYWdTdGFydFJlcXVlc3QoYm9vbCBzdGFydGVkKTsK
ICAgICB2b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDhmODBiYTQwODFkZGViZDVmZDI4Y2Q5OWM0MjNhM2E2MDY3NTYxZWMuLmQxMjAyMTE1
MjFmMDYxMTkxOTVkOWRjNzhjOGY0N2VkZDY4ZGRjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQyNiw2ICs0MjYsOCBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgVXBkYXRlU3RyaW5nRm9yRmluZChTdHJp
bmcgZmluZFN0cmluZykKICAgICBIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHQoc3RydWN0IFdl
YktpdDo6V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0IGNvbnRleHQpCisKKyAgICBTaG93RGF0YURl
dGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikKICNlbmRpZgogCiAgICAgRGlkQ2hh
bmdlSW5zcGVjdG9yRnJvbnRlbmRDb3VudCh1aW50NjRfdCBjb3VudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYWU3NThkNGNmYjhj
YmU1OTY3ZTdkMGIzYjUxMWU1Mzk5ZDEzMTAwNy4uN2E5Mzc3YWMxODExNTc1YTcyNGI2NTU2ZTc5
MGNjZDc0OGYwMjhiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9z
aXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZShjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZUltYWdlVG9MaWJyYXJ5KFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKGJvb2wgaGFzVmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRS
ZWN0LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb24oY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIGJv
b2wgaGFuZGxlUnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25z
dCBGcmFtZUluZm9EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1NoYXJlU2hlZXQo
Y29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMzNmYjhkOTY1NTMyYmFlZGNmMzEz
M2MyMDI0YTc5YzdkNzU4MjZhZS4uMDkyOGQ0NTgyNGQ2Mzk1M2IzZDlmMTBiMTFhMDdiNTQ1NWU5
YmYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQpAQCAtOTU0LDYgKzk1NCwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93RGlj
dGF0aW9uQWx0ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCB1aW50NgogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dEYXRhRGV0
ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJiBwb3NpdGlvbkluZm9ybWF0aW9uKQoreworICAgIFttX2NvbnRlbnRWaWV3
IF9zaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjpwb3NpdGlvbkluZm9y
bWF0aW9uXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggNmRhZTQ1MGFjMjRhODNmNGQwMzQ3NzBlNWEzMDVj
NzFlMjlkNGEzYS4uYTViNGE2NDI0ODg0OGY3NWNkMTBhNGMzN2M0Njk5NDM3MjliNjA0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lz
dGFudC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKIH0KIAorQGNsYXNzIFVJTWVudUVsZW1lbnQ7
CiBAY2xhc3MgVUlUYXJnZXRlZFByZXZpZXc7CiBAY2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFu
dDsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKQEAgLTYwLDEwICs2MSw5IEBAIHN0
cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKIC0gKENHUmVjdCl1bm9jY2x1
ZGVkV2luZG93Qm91bmRzRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQ7CiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHdpbGxTdGFydEludGVyYWN0aW9uV2l0aEVsZW1l
bnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKIC0gKHZvaWQpYWN0aW9uU2hl
ZXRBc3Npc3RhbnREaWRTdG9wSW50ZXJhY3Rpb246KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilh
c3Npc3RhbnQ7Ci0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlv
blNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OworLSAo
TlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBwb3NpdGlvbkluZm9ybWF0aW9u
Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlv
bkluZm9ybWF0aW9uOwogLSAoTlNTdHJpbmcgKilzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFz
c2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKIC0gKHZvaWQpYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgZ2V0
QWx0ZXJuYXRlVVJMRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBjb21wbGV0aW9uOih2b2lkIChe
KShOU1VSTCAqYWx0ZXJuYXRlVVJMLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKSljb21wbGV0aW9u
OwotLSAoQ0dQb2ludCljb250ZXh0TWVudVByZXNlbnRhdGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hl
ZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CiAjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNyZWF0ZVRhcmdldGVkQ29u
dGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgKilhc3Npc3RhbnQ7CiAjZW5kaWYKQEAgLTgwLDcgKzgwLDcgQEAgc3RydWN0IEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogLSAoaWQpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2
aWV3OwogLSAodm9pZClzaG93TGlua1NoZWV0OwogLSAodm9pZClzaG93SW1hZ2VTaGVldDsKLS0g
KHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldDsKKy0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNV
SUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CiAtICh2b2lkKWNsZWFudXBTaGVl
dDsKIC0gKHZvaWQpdXBkYXRlU2hlZXRQb3NpdGlvbjsKIC0gKFJldGFpblB0cjxOU0FycmF5PF9X
S0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwpAQCAtODgsNyArODgsNyBAQCBzdHJ1Y3QgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAtIChCT09MKWlzU2hvd2luZ1NoZWV0Owog
LSAodm9pZClpbnRlcmFjdGlvbkRpZFN0YXJ0V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOwog
LSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXM7Ci0tIChPcHRpb25hbDxX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiljdXJyZW50UG9zaXRpb25J
bmZvcm1hdGlvbjsKKy0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKXN1Z2dlc3RlZEFjdGlv
bnNGb3JDb250ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uOwogQGVu
ZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXggMjk2NmJk
ODM2YzEyODllN2ZhYThmOGJhMmY2NTc5N2RhMzhkNGM1MC4uZGM2YmEwNTg0YTZhYjIxMjFmYTY5
NWZkZTI2OTg3NzA2YTMyMjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTY1MywxNCArNjUzLDEzIEBAIC0g
KHZvaWQpZW5zdXJlQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogfQogI2VuZGlmCiAKLS0gKHZvaWQp
c2hvd0RhdGFEZXRlY3RvcnNTaGVldAorLSAodm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9z
aXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbgogewogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKICAgICBpZiAoIV9kZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFbc2Vs
ZiBzeW5jaHJvbm91c2x5UmV0cmlldmVQb3NpdGlvbkluZm9ybWF0aW9uXSkKLSAgICAgICAgcmV0
dXJuOworICAgIF9wb3NpdGlvbkluZm9ybWF0aW9uID0gcG9zaXRpb25JbmZvcm1hdGlvbjsKIAog
ICAgIGlmICghV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6Y2FuQmVQcmVzZW50ZWRCeURhdGFEZXRl
Y3RvcnMoX3Bvc2l0aW9uSW5mb3JtYXRpb24tPnVybCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY3
Myw4ICs2NzIsOCBAQCAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzU2hlZXQKICAgICBOU0RpY3Rp
b25hcnkgKmNvbnRleHQgPSBuaWw7CiAgICAgTlNTdHJpbmcgKnRleHRBdFNlbGVjdGlvbiA9IG5p
bDsKIAotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0
YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKLSAgICAgICAgY29u
dGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lz
dGFudDpzZWxmXTsKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRpb25J
bmZvcm1hdGlvbjopXSkKKyAgICAgICAgY29udGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlv
bkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHBvc2l0aW9uSW5mb3JtYXRpb246
Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQog
ICAgICAgICB0ZXh0QXRTZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNlbGVjdGVkVGV4dEZvckFjdGlv
blNoZWV0QXNzaXN0YW50OnNlbGZdOwogCkBAIC02ODksMTUgKzY4OCwxMCBAQCAtICh2b2lkKXNo
b3dEYXRhRGV0ZWN0b3JzU2hlZXQKICAgICBpZiAoW2RhdGFEZXRlY3RvcnNBY3Rpb25zIGNvdW50
XSA9PSAwKQogICAgICAgICByZXR1cm47CiAgICAgCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkgJiYgSEFWRShVSUNPTlRFWFRNRU5VX0xPQ0FUSU9OKQot
ICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRleHRNZW51UHJlc2VudGF0aW9uTG9jYXRp
b25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkgewotICAgICAgICBbc2VsZiBlbnN1cmVDb250
ZXh0TWVudUludGVyYWN0aW9uXTsKLSAgICAgICAgW19kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUlu
dGVyYWN0aW9uIF9wcmVzZW50TWVudUF0TG9jYXRpb246W2RlbGVnYXRlIGNvbnRleHRNZW51UHJl
c2VudGF0aW9uTG9jYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXV07Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQorI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBIQVZF
KFVJQ09OVEVYVE1FTlVfTE9DQVRJT04pCisgICAgW3NlbGYgZW5zdXJlQ29udGV4dE1lbnVJbnRl
cmFjdGlvbl07CisgICAgW19kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uIF9wcmVz
ZW50TWVudUF0TG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnJlcXVlc3QucG9pbnRdOwor
I2Vsc2UKICAgICBOU011dGFibGVBcnJheSAqZWxlbWVudEFjdGlvbnMgPSBbTlNNdXRhYmxlQXJy
YXkgYXJyYXldOwogICAgIGZvciAoTlNVSW50ZWdlciBhY3Rpb25OdW1iZXIgPSAwOyBhY3Rpb25O
dW1iZXIgPCBbZGF0YURldGVjdG9yc0FjdGlvbnMgY291bnRdOyBhY3Rpb25OdW1iZXIrKykgewog
ICAgICAgICBEREFjdGlvbiAqYWN0aW9uID0gW2RhdGFEZXRlY3RvcnNBY3Rpb25zIG9iamVjdEF0
SW5kZXg6YWN0aW9uTnVtYmVyXTsKQEAgLTcxNiw2ICs3MTAsNyBAQCAtICh2b2lkKXNob3dEYXRh
RGV0ZWN0b3JzU2hlZXQKICAgICBpZiAoIVtfaW50ZXJhY3Rpb25TaGVldCBwcmVzZW50U2hlZXQ6
V0tBY3Rpb25TaGVldFByZXNlbnRBdFRvdWNoTG9jYXRpb25dKQogICAgICAgICBbc2VsZiBjbGVh
bnVwU2hlZXRdOwogI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogfQog
CiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTcy
NSwxNSArNzIwLDE0IEBAIC0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1l
bnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uCiAgICAgTlNEaWN0aW9uYXJ5
ICpjb250ZXh0ID0gbmlsOwogICAgIE5TU3RyaW5nICp0ZXh0QXRTZWxlY3Rpb24gPSBuaWw7CiAK
LSAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRhdGFEZXRl
Y3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCi0gICAgICAgIGNvbnRleHQg
PSBbX2RlbGVnYXRlIGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZl07CisgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0aW9uSW5mb3Jt
YXRpb246KV0pCisgICAgICAgIGNvbnRleHQgPSBbX2RlbGVnYXRlIGRhdGFEZXRlY3Rpb25Db250
ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBwb3NpdGlvbkluZm9ybWF0aW9uOipfcG9z
aXRpb25JbmZvcm1hdGlvbl07CiAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKICAgICAg
ICAgdGV4dEF0U2VsZWN0aW9uID0gW19kZWxlZ2F0ZSBzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVl
dEFzc2lzdGFudDpzZWxmXTsKIAogICAgIE5TRGljdGlvbmFyeSAqbmV3Q29udGV4dCA9IG5pbDsK
ICAgICBERFJlc3VsdFJlZiBkZFJlc3VsdCA9IFtjb250cm9sbGVyIHJlc3VsdEZvclVSTDpfcG9z
aXRpb25JbmZvcm1hdGlvbi0+dXJsIGlkZW50aWZpZXI6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRh
dGFEZXRlY3RvcklkZW50aWZpZXIgc2VsZWN0ZWRUZXh0OnRleHRBdFNlbGVjdGlvbiByZXN1bHRz
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLT5kYXRhRGV0ZWN0b3JSZXN1bHRzLmdldCgpIGNvbnRleHQ6
Y29udGV4dCBleHRlbmRlZENvbnRleHQ6Jm5ld0NvbnRleHRdOwogCi0KICAgICBDR1JlY3Qgc291
cmNlUmVjdDsKICAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlzTGluaykKICAgICAgICAg
c291cmNlUmVjdCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5saW5rSW5kaWNhdG9yLnRleHRCb3Vu
ZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CkBAIC03NTEsMTMgKzc0NSwxMSBAQCAtIChV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbgogLSAoVUlUYXJnZXRlZFByZXZpZXcgKiljb250ZXh0TWVudUlu
dGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmV2aWV3
Rm9ySGlnaGxpZ2h0aW5nTWVudVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmln
dXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKICAgICBhdXRvIGRlbGVnYXRlID0gX2RlbGVnYXRl
LmdldCgpOwotICAgIENHUG9pbnQgY2VudGVyID0gQ0dQb2ludFplcm87CisgICAgQ0dQb2ludCBj
ZW50ZXIgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludDsKICAgICAKICAgICBp
ZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY3JlYXRlVGFyZ2V0ZWRD
b250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKICAgICAgICAgcmV0dXJu
IFtkZWxlZ2F0ZSBjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNz
aXN0YW50OnNlbGZdOwogICAgIAotICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihjb250ZXh0TWVudVByZXNlbnRhdGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KV0pCi0gICAgICAgIGNlbnRlciA9IFtkZWxlZ2F0ZSBjb250ZXh0TWVudVByZXNl
bnRhdGlvbkxvY2F0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAgICAgUmV0YWlu
UHRyPFVJUHJldmlld1BhcmFtZXRlcnM+IHVudXNlZFByZXZpZXdQYXJhbWV0ZXJzID0gYWRvcHRO
UyhbW1VJUHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRdKTsKICAgICBSZXRhaW5QdHI8VUlQ
cmV2aWV3VGFyZ2V0PiBwcmV2aWV3VGFyZ2V0ID0gYWRvcHROUyhbW1VJUHJldmlld1RhcmdldCBh
bGxvY10gaW5pdFdpdGhDb250YWluZXI6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY2VudGVyOmNl
bnRlcl0pOwogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gcHJldmlldyA9IGFkb3B0
TlMoW1tVSVRhcmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3Ol92aWV3LmdldEF1dG9y
ZWxlYXNlZCgpIHBhcmFtZXRlcnM6dW51c2VkUHJldmlld1BhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0
OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsKQEAgLTc3Nyw2ICs3NjksMzQgQEAgLSAodm9pZCljb250
ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biB3aWxsRW5kRm8KICAgICAgICAgW3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07
CiAgICAgfV07CiB9CisKK3N0YXRpYyBOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKm1lbnVFbGVt
ZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEVsZW1lbnRB
Y3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvKQor
eworICAgIGlmICghW2RlZmF1bHRFbGVtZW50QWN0aW9ucyBjb3VudF0pCisgICAgICAgIHJldHVy
biBuaWw7CisKKyAgICBhdXRvIGFjdGlvbnMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2Fw
YWNpdHk6W2RlZmF1bHRFbGVtZW50QWN0aW9ucyBjb3VudF1dOworICAgIGZvciAoX1dLRWxlbWVu
dEFjdGlvbiAqZWxlbWVudEFjdGlvbiBpbiBkZWZhdWx0RWxlbWVudEFjdGlvbnMuZ2V0KCkpCisg
ICAgICAgIFthY3Rpb25zIGFkZE9iamVjdDpbZWxlbWVudEFjdGlvbiB1aUFjdGlvbkZvckVsZW1l
bnRJbmZvOmVsZW1lbnRJbmZvLmdldCgpXV07CisKKyAgICByZXR1cm4gYWN0aW9uczsKK30KKwor
LSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIG92ZXJyaWRlU3VnZ2VzdGVkQWN0
aW9uc0ZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgoreworICAgIGlmICghX3Bvc2l0aW9uSW5mb3JtYXRpb24pCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgcmV0dXJuIFtzZWxmIHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0TWVudVdp
dGhQb3NpdGlvbkluZm9ybWF0aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07Cit9CisKKy0gKE5T
QXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKXN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0TWVudVdp
dGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCit7CisgICAgYXV0byBlbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246cG9zaXRpb25JbmZvcm1hdGlvbiB1c2VySW5m
bzpuaWxdKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PiBkZWZh
dWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQgPSBwb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayA/IFtz
ZWxmIGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OmVsZW1lbnRJbmZvLmdldCgpXSA6IFtzZWxm
IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDplbGVtZW50SW5mby5nZXQoKV07CisgICAgcmV0
dXJuIG1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Np
c3RhbnQsIGVsZW1lbnRJbmZvKTsKKworfQorCiAjZW5kaWYKIAogLSAodm9pZCljbGVhbnVwU2hl
ZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCA1NmI4YmQ4MDY4ZWUzMTJjMDJlMzE1NTVjODIyYmYxODQ4MGIz
ZGEzLi5hNDg2OGM3OTc0ZTZiNWI4MTI3YjE3ZjNjZDNlYjkwZWFjYzI4Yzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC01MzAsNyArNTMwLDggQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FD
VElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQp
X2FjY2Vzc2liaWxpdHlDbGVhclNlbGVjdGlvbjsKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9m
b3JtSW5wdXRTZXNzaW9uOwogLSAodm9pZClfZGlkQ2hhbmdlV2ViVmlld0VkaXRhYmlsaXR5Owot
LSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JQb3NpdGlvbkluZm9ybWF0
aW9uOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKXBvc2l0aW9uSW5m
b3JtYXRpb247CistIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0
aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CistICh2b2lkKV9zaG93RGF0YURldGVjdG9yc1VJ
Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKIAogLSAodm9pZCl3aWxsRmluaXNo
SWdub3JpbmdDYWxsb3V0QmFyRmFkZUFmdGVyUGVyZm9ybWluZ0FjdGlvbjsKIApAQCAtNTQ5LDcg
KzU1MCw2IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9X
S0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAKIC0gKHZvaWQpX3JlcXVlc3RET01Q
YXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVu
dFJlY3Qgb3JpZ2luSWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNv
bXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24g
Y3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb247CiAtICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9y
bWF0aW9uVXBkYXRlOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uKSlhY3Rpb24gZm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
UmVxdWVzdClyZXF1ZXN0OwogLSAoQk9PTCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRv
RGF0ZTooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCAyZDVlNzQ0OWE4OTM0MDY5ZWY3ZjJjNjZhZWYxY2M3MGU3ZWMwODNk
Li5jMWQwNWRmMzIwMDU1ZTlhMjMzZWVkMGFiN2Y3MDQ1NDJmODQzZjI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTIxNDgsOSArMjE0OCwxNCBAQCAtICh2b2lkKV9zaG93TGlua1NoZWV0CiAgICAgW19h
Y3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XTsKIH0KIAotLSAodm9pZClfc2hvd0Rh
dGFEZXRlY3RvcnNTaGVldAorLSAodm9pZClfc2hvd0RhdGFEZXRlY3RvcnNVSQogewotICAgIFtf
YWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF07CisgICAgW3NlbGYg
X3Nob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uXTsKK30KKworLSAodm9pZClfc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5m
b3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KXBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dE
YXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOnBvc2l0aW9uSW5mb3JtYXRpb25d
OwogfQogCiAtIChTRUwpX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9u
Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlv
bkluZm9ybWF0aW9uCkBAIC0yMTY3LDcgKzIxNzIsNyBAQCAtIChTRUwpX2FjdGlvbkZvckxvbmdQ
cmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
bwogICAgIGlmIChwb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykgewogI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKICAgICAgICAgaWYgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OmNhbkJlUHJl
c2VudGVkQnlEYXRhRGV0ZWN0b3JzKHBvc2l0aW9uSW5mb3JtYXRpb24udXJsKSkKLSAgICAgICAg
ICAgIHJldHVybiBAc2VsZWN0b3IoX3Nob3dEYXRhRGV0ZWN0b3JzU2hlZXQpOworICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0RhdGFEZXRlY3RvcnNVSSk7CiAjZW5kaWYKICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0xpbmtTaGVldCk7CiAgICAgfQpAQCAtMjE4MiwxMSAr
MjE4Nyw2IEBAIC0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzCiAgICAgcmV0dXJuIFtzZWxmIF9h
Y3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1h
dGlvbl07CiB9CiAKLS0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
Y3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24KLXsKLSAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3Jt
YXRpb247Ci19Ci0KIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZv
aWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBm
b3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QK
IHsKICAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJl
cXVlc3Q6cmVxdWVzdF0pIHsKQEAgLTI3MjMsMTUgKzI3MjMsNiBAQCAtICh2b2lkKV9kaWROb3RI
YW5kbGVUYXBBc0NsaWNrOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpcG9pbnQKIHsKICAgICBb
c2VsZiBfcmVzZXRJbnB1dFZpZXdEZWZlcnJhbF07CiAKLSAgICAvLyBGSVhNRTogd2Ugc2hvdWxk
IGFsc28gdGFrZSBpbnRvIGFjY291bnQgd2hldGhlciBvciBub3QgdGhlIFVJIGRlbGVnYXRlCi0g
ICAgLy8gaGFzIGhhbmRsZWQgdGhpcyBub3RpZmljYXRpb24uCi0jaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQotICAgIGlmIChfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uICYmIHBvaW50ID09
IF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgJiYgX3Bvc2l0aW9uSW5mb3JtYXRp
b24uaXNEYXRhRGV0ZWN0b3JMaW5rKSB7Ci0gICAgICAgIFtzZWxmIF9zaG93RGF0YURldGVjdG9y
c1NoZWV0XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgaWYgKCFfaXNE
b3VibGVUYXBQZW5kaW5nKQogICAgICAgICByZXR1cm47CiAKQEAgLTY5MDQsNyArNjg5NSw3IEBA
IC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRTdG9wSW50ZXJhY3Rpb246KFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhCiAgICAgX3BhZ2UtPnN0b3BJbnRlcmFjdGlvbigpOwog
fQogCi0tIChOU0RpY3Rpb25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5m
b3JtYXRpb246KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pcG9zaXRp
b25JbmZvcm1hdGlvbgorLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JQ
b3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7CiAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IGNvbnRleHQ7CiAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmlldyBV
SURlbGVnYXRlXSk7CkBAIC02OTMzLDkgKzY5MjQsOSBAQCAtIChOU0RpY3Rpb25hcnkgKilkYXRh
RGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246KFdlYktpdDo6SW50ZXJhY3Rp
bwogI2VuZGlmCiB9CiAKLS0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9y
QWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQK
Ky0gKE5TRGljdGlvbmFyeSAqKWRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgcG9zaXRpb25JbmZvcm1h
dGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9z
aXRpb25JbmZvcm1hdGlvbgogewotICAgIHJldHVybiBbc2VsZiBkYXRhRGV0ZWN0aW9uQ29udGV4
dEZvclBvc2l0aW9uSW5mb3JtYXRpb246YXNzaXN0YW50LmN1cnJlbnRQb3NpdGlvbkluZm9ybWF0
aW9uLnZhbHVlT3IoX3Bvc2l0aW9uSW5mb3JtYXRpb24pXTsKKyAgICByZXR1cm4gW3NlbGYgZGF0
YURldGVjdGlvbkNvbnRleHRGb3JQb3NpdGlvbkluZm9ybWF0aW9uOnBvc2l0aW9uSW5mb3JtYXRp
b25dOwogfQogCiAtIChOU1N0cmluZyAqKXNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0
YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50CkBAIC02OTU0LDExICs2OTQ1
LDYgQEAgLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCAqKWFzc2lzdGFudCBnZXRBbHRlcm5hdGVVUkwKICAgICAgICAgY29tcGxldGlvbihuaWwsIG5p
bCk7CiB9CiAKLS0gKENHUG9pbnQpY29udGV4dE1lbnVQcmVzZW50YXRpb25Mb2NhdGlvbkZvckFj
dGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50Ci17
Ci0gICAgcmV0dXJuIFtzZWxmIGxhc3RJbnRlcmFjdGlvbkxvY2F0aW9uXTsKLX0KLQogI2lmIFVT
RShVSUNPTlRFWFRNRU5VKQogCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNyZWF0ZVRhcmdldGVk
Q29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQKQEAgLTkxODYsMTMgKzkxNzIsMTEgQEAgLSAodm9pZCljb250aW51
ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25XaXRoRGF0YURldGVjdG9yczoodm9pZCheKShVSUNvbnRl
eHRNZW51Q28KIAogLSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX2NvbnRleHRNZW51SW50
ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIG92ZXJyaWRl
U3VnZ2VzdGVkQWN0aW9uc0ZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbgogewotICAgIGlmIChfY29udGV4dE1lbnVBY3Rpb25Qcm92aWRl
ckRlbGVnYXRlTmVlZHNPdmVycmlkZSkgewotICAgICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRv
cHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbiB1c2VySW5mbzpuaWxd
KTsKLSAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4gZGVmYXVs
dEFjdGlvbnNGcm9tQXNzaXN0YW50ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rID8gW19h
Y3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDplbGVtZW50SW5m
by5nZXQoKV0gOiBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VT
aGVldDplbGVtZW50SW5mby5nZXQoKV07Ci0gICAgICAgIHJldHVybiBtZW51RWxlbWVudHNGcm9t
RGVmYXVsdEFjdGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7
Ci0gICAgfQogICAgIC8vIElmIHdlJ3JlIGhlcmUgd2UncmUgaW4gdGhlIGxlZ2FjeSBwYXRoLCB3
aGljaCBpZ25vcmVzIHRoZSBzdWdnZXN0ZWQgYWN0aW9ucyBhbnl3YXkuCi0gICAgcmV0dXJuIG5p
bDsKKyAgICBpZiAoIV9jb250ZXh0TWVudUFjdGlvblByb3ZpZGVyRGVsZWdhdGVOZWVkc092ZXJy
aWRlKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIFtfYWN0aW9uU2hlZXRBc3Np
c3RhbnQgc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRp
b246X3Bvc2l0aW9uSW5mb3JtYXRpb25dOwogfQogCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNv
bnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4
dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1BERlZpZXcubW0KaW5kZXggMDZiNGU5ZjFkNDUyYzdhZmI2YjU3YTUxNDkxYzgwNGFh
M2U3ODE0My4uMTA0MThmOTQ4ODNiZjRkZTRlMmJiYWNmYmY0OGRmMzVjYmVlNjgyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCkBAIC00ODUsMTIgKzQ4NSwxNSBA
QCAtICh2b2lkKV9zaG93QWN0aW9uU2hlZXRGb3JVUkw6KE5TVVJMICopdXJsIGF0TG9jYXRpb246
KENHUG9pbnQpbG9jYXRpb24gd2l0aEFubgogICAgIHBvc2l0aW9uSW5mb3JtYXRpb24udXJsID0g
dXJsOwogCiAgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSBXVEZNb3ZlKHBvc2l0aW9uSW5mb3Jt
YXRpb24pOworCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIGlmIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpjYW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhfcG9zaXRpb25JbmZv
cm1hdGlvbi51cmwpKQotICAgICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dEYXRhRGV0
ZWN0b3JzU2hlZXRdOwotICAgIGVsc2UKKyAgICBpZiAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
Y2FuQmVQcmVzZW50ZWRCeURhdGFEZXRlY3RvcnMoX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsKSkg
eworICAgICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQ
b3NpdGlvbkluZm9ybWF0aW9uOnBvc2l0aW9uSW5mb3JtYXRpb25dOworICAgICAgICByZXR1cm47
CisgICAgfQogI2VuZGlmCi0gICAgICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0xpbmtT
aGVldF07CisKKyAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dMaW5rU2hlZXRdOwogfQog
CiAtICh2b2lkKXBkZkhvc3RWaWV3Q29udHJvbGxlcjooUERGSG9zdFZpZXdDb250cm9sbGVyICop
Y29udHJvbGxlciBkaWRMb25nUHJlc3NVUkw6KE5TVVJMICopdXJsIGF0TG9jYXRpb246KENHUG9p
bnQpbG9jYXRpb24gd2l0aEFubm90YXRpb25SZWN0OihDR1JlY3QpYW5ub3RhdGlvblJlY3QKQEAg
LTU4Miw3ICs1ODUsNyBAQCAtIChSZXRhaW5QdHI8TlNBcnJheT4pYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgZAogICAgIHJldHVybiBwYWdl
LT51aUNsaWVudCgpLmFjdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsIFdURk1vdmUoZGVmYXVsdEFj
dGlvbnMpKTsKIH0KIAotLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudAor
LSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBwb3NpdGlvbkluZm9ybWF0
aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3Np
dGlvbkluZm9ybWF0aW9uCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gX3dlYlZpZXcuZ2V0QXV0b3Jl
bGVhc2VkKCk7CiAgICAgaWYgKCF3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjliNDkzOWMxN2VkNjNhY2YzZmFmZjFhNGVk
MTljOTEzODczMWI0OS4uZGVjOWJmOTZhYTI5YTk1MWM2M2M4ODI1NWYwMWYzMWVmZmEzNmY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBA
IC0xNjIxLDYgKzE2MjEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldERldmljZUhhc0FHWENv
bXBpbGVyU2VydmljZUZvclRlc3RpbmcoKSBjb25zdAogICAgIFdlYkNvcmU6OnNldERldmljZUhh
c0FHWENvbXBpbGVyU2VydmljZUZvclRlc3RpbmcoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBwb3NpdGlvbkluZm8pCit7CisgICAgcGFnZUNsaWVu
dCgpLnNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uKHBvc2l0aW9uSW5m
byk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19J
Rl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMmFkZWQxMzMwODg4NTY2MmQxNjgyYjg0
NjUwZThjYTMxNWNlNTJmMy4uZGM0MzBiMzg3OTFmOWU0ZGIzMTFlYjQ0NDk0YmNlYjRlNDBmZjU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTg1LDYgKzE4NSw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWREZXN0cm95RWRpdGFibGVJbWFnZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpFbWJl
ZGRlZFZpZXdJRCkgZmluYWw7CiAKICAgICBib29sIHNob3VsZFVzZU1vdXNlRXZlbnRGb3JTZWxl
Y3Rpb24oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50JikgZmluYWw7CisKKyAgICBi
b29sIHNob3dEYXRhRGV0ZWN0b3JzVUlGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQm
LCBjb25zdCBXZWJDb3JlOjpFdmVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1JJ
RU5UQVRJT05fRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbQppbmRleCA5
N2M3MTRkNDBjMjAzNTBmZmY0NzVlOTk3NDZiOWIzYmFhMDVkYTFjLi44OTYxZjViZmI5MDhiNDYz
MTA5NzlhMWZhODlkODA2YzFiOGI0Yzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElP
Uy5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJEcmF3aW5nQXJlYS5oIgogI2ltcG9y
dCAiRWRpdGFibGVJbWFnZUNvbnRyb2xsZXJNZXNzYWdlcy5oIgorI2ltcG9ydCAiSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgpAQCAtMzksNiArNDEsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGVudENo
YW5nZU9ic2VydmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ljb24uaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIu
aD4KQEAgLTE5Myw2ICsxOTYsMTggQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZU1v
dXNlRXZlbnRGb3JTZWxlY3Rpb24oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3UKICNlbmRpZgog
fQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2hvd0RhdGFEZXRlY3RvcnNVSUZvckVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgRXZlbnQmIGV2ZW50KQoreworICAgIGlmICgh
ZXZlbnQuaXNNb3VzZUV2ZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJ
WE1FOiBJZGVhbGx5LCB3ZSB3b3VsZCBiZSBhYmxlIHRvIGdlbmVyYXRlIEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uIHdpdGhvdXQgcmUtaGl0LXRlc3RpbmcgdGhlIGVsZW1lbnQuCisg
ICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KGV2ZW50KTsKKyAgICBh
dXRvIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBtX3BhZ2UucG9zaXRpb25JbmZvcm1hdGlvbihJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCB7IHJvdW5kZWRJbnRQb2ludChtb3VzZUV2ZW50Lmxv
Y2F0aW9uSW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpIH0pOworICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0
aW9uKHBvc2l0aW9uSW5mb3JtYXRpb24pKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDI0YzljYzdjOTEwMzI0
ZmRjNDQ5ZmM4MTc0ZDYxN2YyNDE4MDgzYzguLjk4ODVmMWI0MWVjYWU1MzdlYjQ0ODEyZmE1Zjdl
ZDY1ZWU1ZjhkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTEyOTAsNiArMTI5MCw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSBpbmNsdWRlIGxh
eW91dCBvdmVyZmxvdyBmb3Igb3ZlcmZsb3c6dmlzaWJsZSBlbGVtZW50cywgYnV0IGV4Y2x1ZGUg
Ym9yZGVycy4KICAgICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBhYnNvbHV0ZUludGVyYWN0aW9u
Qm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50Jik7CiAgICAgc3RhdGljIFdl
YkNvcmU6OkludFJlY3Qgcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCYpOworCisgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24gcG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCYpOworICAgIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBVU0UoUVVJ
Q0tfTE9PSykKQEAgLTEzNjYsNyArMTM2OSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRj
aFN5bnRoZXRpY01vdXNlRXZlbnRzRm9yU2VsZWN0aW9uR2VzdHVyZShTZWxlY3Rpb25Ub3VjaCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKIAogICAgIHZvaWQgc2VuZFBvc2l0aW9uSW5mb3Jt
YXRpb24oSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mJik7Ci0gICAgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IHNo
YXJlYWJsZUJpdG1hcFNuYXBzaG90Rm9yTm9kZShXZWJDb3JlOjpFbGVtZW50Jik7CiAgICAgV2Vi
QXV0b2NvcnJlY3Rpb25Db250ZXh0IGF1dG9jb3JyZWN0aW9uQ29udGV4dCgpOwogICAgIGJvb2wg
YXBwbHlBdXRvY29ycmVjdGlvbkludGVybmFsKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyN2Q4ZWY5YWJlZmM0M2NjZWYwODFh
YmE4ZjdhNDRlNTY2Njg3MWFmLi5jMTY2YTA4YzYzM2ZkZDg4YzE1ZmQzODZlY2ZkMDFmODUyNmM3
N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQpAQCAtODY5LDEzICs4NjksNiBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChj
b25zdCBJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZAog
CiAgICAgaWYgKCFmcmFtZVJlc3BvbmRpbmdUb0NsaWNrIHx8IGxhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklkIDwgV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lUmVzcG9uZGluZ1RvQ2xpY2sp
LT5maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQoKSkKICAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWROb3RIYW5kbGVUYXBBc0NsaWNrKGFk
anVzdGVkSW50UG9pbnQpKTsKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgZWxzZSBp
ZiAoaXM8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykgJiYgRGF0YURldGVjdGlvbjo6
c2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlvbihkb3duY2FzdDxFbGVtZW50Pigqbm9kZVJlc3BvbmRp
bmdUb0NsaWNrKSkpIHsKLSAgICAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVx
dWVzdChhZGp1c3RlZEludFBvaW50KTsKLSAgICAgICAgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRp
b24ocmVxdWVzdCk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkTm90
SGFuZGxlVGFwQXNDbGljayhhZGp1c3RlZEludFBvaW50KSk7Ci0gICAgfQotI2VuZGlmCiAgICAg
ZWxzZQogICAgICAgICBoYW5kbGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0NsaWNr
LCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMpOwogfQpAQCAtMTA3NywxNCArMTA3MCw3IEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9pbnQsIE9wdGlvblNlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgc2VuZFRh
cEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShyZXF1ZXN0SUQsIG5vZGVSZXNwb25kaW5nVG9D
bGljayk7Ci0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIGlmIChpczxFbGVtZW50Pigq
bm9kZVJlc3BvbmRpbmdUb0NsaWNrKSAmJiBEYXRhRGV0ZWN0aW9uOjpzaG91bGRDYW5jZWxEZWZh
dWx0QWN0aW9uKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spKSkgewot
ICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQ
b2ludChhZGp1c3RlZFBvaW50KSk7Ci0gICAgICAgIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9u
KHJlcXVlc3QpOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2socm91bmRlZEludFBvaW50KGFkanVzdGVkUG9pbnQpKSk7Ci0gICAgfSBl
bHNlCi0jZW5kaWYKLSAgICAgICAgY29tcGxldGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRp
bmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMsIFdlYkNvcmU6OlR3b0ZpbmdlclRh
cCk7CisgICAgY29tcGxldGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBh
ZGp1c3RlZFBvaW50LCBtb2RpZmllcnMsIFdlYkNvcmU6OlR3b0ZpbmdlclRhcCk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6aGFuZGxlU3R5bHVzU2luZ2xlVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKQEAgLTExNjgsMTYgKzExNTQsOSBA
QCB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2RpZmllcnMsIFRyYW5zYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKG1fcG90ZW50aWFsVGFwTm9kZSA9PSBub2RlUmVzcG9uZGluZ1RvQ2xpY2spIHsKLSNpZiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9kZVJlc3Bv
bmRpbmdUb0NsaWNrKSAmJiBEYXRhRGV0ZWN0aW9uOjpzaG91bGRDYW5jZWxEZWZhdWx0QWN0aW9u
KGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spKSkgewotICAgICAgICAg
ICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdChyb3VuZGVkSW50UG9pbnQo
bV9wb3RlbnRpYWxUYXBMb2NhdGlvbikpOwotICAgICAgICAgICAgcmVxdWVzdFBvc2l0aW9uSW5m
b3JtYXRpb24ocmVxdWVzdCk7Ci0gICAgICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQo
KTsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0Ns
aWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywgcG9p
bnRlcklkKTsKLSAgICB9IGVsc2UKKyAgICBpZiAobV9wb3RlbnRpYWxUYXBOb2RlID09IG5vZGVS
ZXNwb25kaW5nVG9DbGljaykKKyAgICAgICAgaGFuZGxlU3ludGhldGljQ2xpY2soKm5vZGVSZXNw
b25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzLCBwb2ludGVySWQpOworICAg
IGVsc2UKICAgICAgICAgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCk7CiAKICAgICBtX3BvdGVu
dGlhbFRhcE5vZGUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAppbmRleCBiOGI3NTI2
MzU5ZmUzZTJmOTY4MTNjMGFlY2FkMDc1NTUzMzBhZWY3Li5hOTJiYWE2YjMwNTlkZTg5MTQ1ZjAz
YjFhNTc1N2Y5NzJhOTQwOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaApAQCAtOTcsNiArOTcs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFz
VmlkZW8sIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJikgZmluYWw7
CiAgICAgUmVmUHRyPFdlYkNvcmU6Okljb24+IGNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZmlsZW5hbWVzKSBmaW5hbDsKIAorICAgIGJvb2wgc2hvd0RhdGFEZXRlY3Rv
cnNVSUZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OkV2
ZW50JikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgaW50IGRldmljZU9yaWVudGF0aW9uKCkgY29uc3QgZmluYWw7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>