<?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>123438</bug_id>
          
          <creation_ts>2013-10-29 01:24:11 -0700</creation_ts>
          <short_desc>[GStreamer] Adopt nullptr</short_desc>
          <delta_ts>2017-03-06 02:33:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944354</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-29 01:24:11 -0700</bug_when>
    <thetext>All call sites using 0 or NULL should use nullptr. The code style checker gst* exceptions need to be removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280045</commentid>
    <comment_count>1</comment_count>
      <attachid>302440</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-02-22 14:09:22 -0800</bug_when>
    <thetext>Created attachment 302440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280233</commentid>
    <comment_count>2</comment_count>
      <attachid>302440</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-02-23 02:18:52 -0800</bug_when>
    <thetext>Comment on attachment 302440
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        The per-file and per-function explanations are left blank because the change is very simple,
&gt; +        so there&apos;s no need to explain it once per source file.

You don&apos;t need this explanation. The first line is enough.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1180
&gt; +        processTableOfContentsEntry(static_cast&lt;GstTocEntry*&gt;(i-&gt;data), nullptr);

The null argument of this function is unused and it does not take part of any API inside WebKit so I&apos;d say we remove it from the calls and from the declaration. Obviously, the UNUSED_PARAM would be useless too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280326</commentid>
    <comment_count>3</comment_count>
      <attachid>302524</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-02-23 09:58:28 -0800</bug_when>
    <thetext>Created attachment 302524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283720</commentid>
    <comment_count>4</comment_count>
      <attachid>302524</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-06 02:33:01 -0800</bug_when>
    <thetext>Comment on attachment 302524
Patch

Clearing flags on attachment: 302524

Committed r213445: &lt;http://trac.webkit.org/changeset/213445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283721</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-06 02:33:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302440</attachid>
            <date>2017-02-22 14:09:22 -0800</date>
            <delta_ts>2017-02-23 09:58:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123438-20170222230634.patch</filename>
            <type>text/plain</type>
            <size>45477</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU4MGYxZWNhYjY3OGI1
MzVkMmEzYWE1NTE3M2U0MGI2OWY4ZTJjMy4uNGZlMTMxMjcxYWE4MDYwZmU4ZDg5MWVhNjQ5ZTYw
MWFlNTY0NWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDE3LTAyLTIyICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl0gQWRvcHQgbnVsbHB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVG8gYWRhcHQgdGhlIGNvZGUgdG8gdGhlIEMrKzExIHN0YW5k
YXJkLCBhbGwgTlVMTCBvciAwIHBvaW50ZXJzIGhhdmUgYmVlbiBjaGFuZ2VkIHRvIG51bGxwdHIu
CisgICAgICAgIFRoZSBwZXItZmlsZSBhbmQgcGVyLWZ1bmN0aW9uIGV4cGxhbmF0aW9ucyBhcmUg
bGVmdCBibGFuayBiZWNhdXNlIHRoZSBjaGFuZ2UgaXMgdmVyeSBzaW1wbGUsCisgICAgICAgIHNv
IHRoZXJlJ3Mgbm8gbmVlZCB0byBleHBsYWluIGl0IG9uY2UgcGVyIHNvdXJjZSBmaWxlLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0ZpbGVSZWFkZXI6OmhhbmRsZU5ld0RlaW50ZXJsZWF2ZVBhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0ZpbGVSZWFkZXI6OnBsdWdEZWludGVybGVhdmUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9GaWxlUmVhZGVyOjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJHU3RyZWFtZXI6OmNvbmZpZ3VyZUF1ZGlvQmluKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpoYW5kbGVOZXdEZWludGVybGVhdmVQYWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2F1ZGlvX3NyY19pbml0KToKKyAg
ICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1Ny
Y0NoYW5nZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnNldEVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aW5pdGlhbGl6ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lz
dGVyV2ViS2l0RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmV3
VGV4dFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpwcm9jZXNzVGFibGVPZkNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjps
b2FkTmV4dExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y3JlYXRlQXVkaW9TaW5rKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpub3RpZnlQbGF5ZXJPZk11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U3RyZWFt
Vm9sdW1lRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpkZWNvZGVkRnJhbWVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpkcm9wcGVkRnJhbWVDb3VudCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0X3RleHRfY29t
YmluZXJfaW5pdCk6CisgICAgICAgICh3ZWJraXRUZXh0Q29tYmluZXJQYWRFdmVudCk6CisgICAg
ICAgICh3ZWJraXRUZXh0Q29tYmluZXJSZXF1ZXN0TmV3UGFkKToKKyAgICAgICAgKHdlYmtpdFRl
eHRDb21iaW5lck5ldyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Rl
eHRTaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdFRleHRTaW5rTmV3KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdz
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpu
b3RpZnlUcmFja09mQWN0aXZlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfdmlkZW9f
c2lua19pbml0KToKKyAgICAgICAgKHdlYmtpdFZpZGVvU2lua1Byb3Bvc2VBbGxvY2F0aW9uKToK
KyAgICAgICAgKHdlYmtpdFZpZGVvU2lua05ldyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpzZXRTZWxlY3RlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3NyY19pbml0KToKKyAgICAgICAgKHdlYktpdFdlYlNy
Y0Rpc3Bvc2UpOgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0UHJvcGVydHkpOgorICAgICAgICAo
d2ViS2l0V2ViU3JjU3RvcCk6CisgICAgICAgICh3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZSk6Cisg
ICAgICAgICh3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQpOgorICAgICAgICAod2ViS2l0V2Vi
U3JjR2V0UHJvdG9jb2xzKToKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9u
c2VSZWNlaXZlZCk6CisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZURhdGFSZWNlaXZl
ZCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkRmFpbCk6Cisg
ICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tlZCk6CisgICAg
ICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6Y2Fubm90U2hvd1VSTCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRNZWRpYVNyY0dldFByb3RvY29scyk6CisKIDIw
MTctMDItMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBv
c2UgU3ltYm9sLnRvUHJpbWl0aXZlIC8gdmFsdWVPZiBvbiBMb2NhdGlvbiBpbnN0YW5jZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA1NWY4NGQ0MzM2NGNi
NjQxNzg5M2Y3NDMwZWFlMjczY2JlNWJhMmVhLi43NTgzODljZWQ4OWRmNWZkN2U0YWQ2MWIyMTc1
NjM1MDUzMmZiZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CkBAIC05Miw5ICs5Miw5IEBAIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmF0ZSIsIHNhbXBsZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1cyIsIG1fcmVu
ZGVyQnVzLmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm92aWRlciIsICZtX2NhbGxiYWNr
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJmcmFtZXMiLCBmcmFtZXNUb1B1bGwsIE5VTEwpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZnJhbWVzIiwgZnJhbWVzVG9QdWxsLCBudWxscHRyKSk7CiAKLSAg
ICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGF1ZGlvU2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgiYXV0b2F1ZGlvc2luayIsIDApOworICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gYXVkaW9TaW5r
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgbnVsbHB0cik7CiAg
ICAgbV9hdWRpb1NpbmtBdmFpbGFibGUgPSBhdWRpb1Npbms7CiAgICAgaWYgKCFhdWRpb1Npbmsp
IHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciBhdXRvYXVk
aW9zaW5rIGVsZW1lbnQiKTsKQEAgLTExNCw5ICsxMTQsOSBAQCBBdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZl
cnQgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIEdz
dEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlv
cmVzYW1wbGUiLCAwKTsKLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBlbGluZSks
IHdlYmtpdEF1ZGlvU3JjLCBhdWRpb0NvbnZlcnQsIGF1ZGlvUmVzYW1wbGUsIGF1ZGlvU2luay5n
ZXQoKSwgTlVMTCk7CisgICAgR3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlKCJhdWRpb2NvbnZlcnQiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBh
dWRpb1Jlc2FtcGxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwg
bnVsbHB0cik7CisgICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCB3ZWJr
aXRBdWRpb1NyYywgYXVkaW9Db252ZXJ0LCBhdWRpb1Jlc2FtcGxlLCBhdWRpb1NpbmsuZ2V0KCks
IG51bGxwdHIpOwogCiAgICAgLy8gTGluayBzcmMgcGFkcyBmcm9tIHdlYmtpdEF1ZGlvU3JjIHRv
IGF1ZGlvQ29udmVydCAhIGF1ZGlvUmVzYW1wbGUgISBhdXRvYXVkaW9zaW5rLgogICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKHdlYmtpdEF1ZGlvU3JjLCAic3JjIiwgYXVkaW9Db252ZXJ0
LCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggOTEyOTQ5ODE2MGYxYmUzZTZjZmU3ZjA0NzY0YjRk
NzlkNDhmOGYzZi4uNmNkOGJkN2Y4MWJmZjIyMjdmZTE0ZmJjYTBmYmZkMDU1ZDA5YzU3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTIxMyw4ICsyMTMsOCBA
QCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6aGFuZGxlTmV3RGVpbnRlcmxlYXZlUGFkKEdzdFBhZCog
cGFkKQogICAgIC8vIGluIGFuIGFwcHNpbmsgc28gd2UgY2FuIHB1bGwgdGhlIGRhdGEgZnJvbSBl
YWNoCiAgICAgLy8gY2hhbm5lbC4gUGlwZWxpbmUgbG9va3MgbGlrZToKICAgICAvLyAuLi4gZGVp
bnRlcmxlYXZlICEgcXVldWUgISBhcHBzaW5rLgotICAgIEdzdEVsZW1lbnQqIHF1ZXVlID0gZ3N0
X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIDApOwotICAgIEdzdEVsZW1lbnQqIHNpbmsg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNpbmsiLCAwKTsKKyAgICBHc3RFbGVtZW50
KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCBudWxscHRyKTsKKyAg
ICBHc3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhcHBzaW5rIiwg
bnVsbHB0cik7CiAKICAgICBzdGF0aWMgR3N0QXBwU2lua0NhbGxiYWNrcyBjYWxsYmFja3MgPSB7
CiAgICAgICAgIG51bGxwdHIsIC8vIGVvcwpAQCAtMjI1LDkgKzIyNSw5IEBAIHZvaWQgQXVkaW9G
aWxlUmVhZGVyOjpoYW5kbGVOZXdEZWludGVybGVhdmVQYWQoR3N0UGFkKiBwYWQpCiAgICAgICAg
IH0sCiAgICAgICAgIHsgbnVsbHB0ciB9CiAgICAgfTsKLSAgICBnc3RfYXBwX3Npbmtfc2V0X2Nh
bGxiYWNrcyhHU1RfQVBQX1NJTksoc2luayksICZjYWxsYmFja3MsIHRoaXMsIDApOworICAgIGdz
dF9hcHBfc2lua19zZXRfY2FsbGJhY2tzKEdTVF9BUFBfU0lOSyhzaW5rKSwgJmNhbGxiYWNrcywg
dGhpcywgbnVsbHB0cik7CiAKLSAgICBnX29iamVjdF9zZXQoc2luaywgInN5bmMiLCBGQUxTRSwg
TlVMTCk7CisgICAgZ19vYmplY3Rfc2V0KHNpbmssICJzeW5jIiwgRkFMU0UsIG51bGxwdHIpOwog
CiAgICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUuZ2V0KCkpLCBxdWV1ZSwg
c2luaywgbnVsbHB0cik7CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIHZvaWQgQXVkaW9GaWxlUmVh
ZGVyOjpwbHVnRGVpbnRlcmxlYXZlKEdzdFBhZCogcGFkKQogICAgIC8vIEEgZGVjb2RlYmluIHBh
ZCB3YXMgYWRkZWQsIHBsdWcgaW4gYSBkZWludGVybGVhdmUgZWxlbWVudCB0bwogICAgIC8vIHNl
cGFyYXRlIGVhY2ggcGxhbmFyIGNoYW5uZWwuIFN1YiBwaXBlbGluZSBsb29rcyBsaWtlCiAgICAg
Ly8gLi4uIGRlY29kZWJpbjIgISBhdWRpb2NvbnZlcnQgISBhdWRpb3Jlc2FtcGxlICEgY2Fwc2Zp
bHRlciAhIGRlaW50ZXJsZWF2ZS4KLSAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgID0gZ3N0
X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb2NvbnZlcnQiLCAwKTsKLSAgICBHc3RFbGVtZW50
KiBhdWRpb1Jlc2FtcGxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxl
IiwgMCk7Ci0gICAgR3N0RWxlbWVudCogY2Fwc0ZpbHRlciA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgiY2Fwc2ZpbHRlciIsIDApOworICAgIEdzdEVsZW1lbnQqIGF1ZGlvQ29udmVydCAgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIG51bGxwdHIpOworICAgIEdz
dEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlv
cmVzYW1wbGUiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBjYXBzRmlsdGVyID0gZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgbnVsbHB0cik7CiAgICAgbV9kZUludGVy
bGVhdmUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImRlaW50ZXJsZWF2ZSIsICJkZWludGVy
bGVhdmUiKTsKIAotICAgIGdfb2JqZWN0X3NldChtX2RlSW50ZXJsZWF2ZS5nZXQoKSwgImtlZXAt
cG9zaXRpb25zIiwgVFJVRSwgTlVMTCk7CisgICAgZ19vYmplY3Rfc2V0KG1fZGVJbnRlcmxlYXZl
LmdldCgpLCAia2VlcC1wb3NpdGlvbnMiLCBUUlVFLCBudWxscHRyKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9kZUludGVybGVhdmUuZ2V0KCksICJwYWQtYWRkZWQiLCBHX0NBTExC
QUNLKGRlaW50ZXJsZWF2ZVBhZEFkZGVkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9kZUludGVybGVhdmUuZ2V0KCksICJuby1tb3JlLXBhZHMiLCBHX0NB
TExCQUNLKGRlaW50ZXJsZWF2ZVJlYWR5Q2FsbGJhY2spLCB0aGlzKTsKIApAQCAtMzE2LDE4ICsz
MTYsMTggQEAgdm9pZCBBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24o
KQogICAgIEdzdEVsZW1lbnQqIHNvdXJjZTsKICAgICBpZiAobV9kYXRhKSB7CiAgICAgICAgIEFT
U0VSVChtX2RhdGFTaXplKTsKLSAgICAgICAgc291cmNlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJnaW9zdHJlYW1zcmMiLCAwKTsKLSAgICAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IG1l
bW9yeVN0cmVhbSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3X2Zyb21fZGF0
YShtX2RhdGEsIG1fZGF0YVNpemUsIDApKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KHNvdXJjZSwg
InN0cmVhbSIsIG1lbW9yeVN0cmVhbS5nZXQoKSwgTlVMTCk7CisgICAgICAgIHNvdXJjZSA9IGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZ2lvc3RyZWFtc3JjIiwgbnVsbHB0cik7CisgICAgICAg
IEdSZWZQdHI8R0lucHV0U3RyZWFtPiBtZW1vcnlTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlf
aW5wdXRfc3RyZWFtX25ld19mcm9tX2RhdGEobV9kYXRhLCBtX2RhdGFTaXplLCBudWxscHRyKSk7
CisgICAgICAgIGdfb2JqZWN0X3NldChzb3VyY2UsICJzdHJlYW0iLCBtZW1vcnlTdHJlYW0uZ2V0
KCksIG51bGxwdHIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHNvdXJjZSA9IGdzdF9lbGVtZW50
X2ZhY3RvcnlfbWFrZSgiZmlsZXNyYyIsIDApOwotICAgICAgICBnX29iamVjdF9zZXQoc291cmNl
LCAibG9jYXRpb24iLCBtX2ZpbGVQYXRoLCBOVUxMKTsKKyAgICAgICAgc291cmNlID0gZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKCJmaWxlc3JjIiwgbnVsbHB0cik7CisgICAgICAgIGdfb2JqZWN0
X3NldChzb3VyY2UsICJsb2NhdGlvbiIsIG1fZmlsZVBhdGgsIG51bGxwdHIpOwogICAgIH0KIAog
ICAgIG1fZGVjb2RlYmluID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJkZWNvZGViaW4iLCAi
ZGVjb2RlYmluIik7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fZGVjb2RlYmluLmdl
dCgpLCAicGFkLWFkZGVkIiwgR19DQUxMQkFDSyhkZWNvZGViaW5QYWRBZGRlZENhbGxiYWNrKSwg
dGhpcyk7CiAKLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBlbGluZS5nZXQoKSks
IHNvdXJjZSwgbV9kZWNvZGViaW4uZ2V0KCksIE5VTEwpOworICAgIGdzdF9iaW5fYWRkX21hbnko
R1NUX0JJTihtX3BpcGVsaW5lLmdldCgpKSwgc291cmNlLCBtX2RlY29kZWJpbi5nZXQoKSwgbnVs
bHB0cik7CiAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoc291cmNlLCAic3JjIiwgbV9k
ZWNvZGViaW4uZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwogCiAg
ICAgLy8gQ2F0Y2ggZXJyb3JzIGhlcmUgaW1tZWRpYXRlbHksIHRoZXJlIG1pZ2h0IG5vdCBiZSBh
biBlcnJvciBtZXNzYWdlIGlmIHdlJ3JlIHVubHVja3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggMTlmODJmYjQwY2EyZDY0NTQ1ZGU3M2E2YjM4
N2ZhZDY1ZDdjYTk0OC4uNGQ3ZjQxNTRkZTdhMzA2NzdmM2YwOTE4YzM3ZGZkZWYwNTM2YTg5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
U291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtODMs
NyArODMsNyBAQCBzdGF0aWMgdm9pZCBjb3B5R1N0cmVhbWVyQnVmZmVyc1RvQXVkaW9DaGFubmVs
KEdzdEFkYXB0ZXIqIGFkYXB0ZXIsIEF1ZGlvQnVzKiBidQogfQogCiBBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyKCkKLSAgICA6IG1fY2xp
ZW50KDApCisgICAgOiBtX2NsaWVudChudWxscHRyKQogICAgICwgbV9kZWludGVybGVhdmVTb3Vy
Y2VQYWRzKDApCiAgICAgLCBtX2RlaW50ZXJsZWF2ZVBhZEFkZGVkSGFuZGxlcklkKDApCiAgICAg
LCBtX2RlaW50ZXJsZWF2ZU5vTW9yZVBhZHNIYW5kbGVySWQoMCkKQEAgLTExMywxMyArMTEzLDEz
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6Y29uZmlndXJlQXVkaW9CaW4o
R3N0RWxlbWVudCogYXVkaW9CaW4sIEdzdEVsCiAgICAgbV9hdWRpb1NpbmtCaW4gPSBhdWRpb0Jp
bjsKIAogICAgIEdzdEVsZW1lbnQqIGF1ZGlvVGVlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtl
KCJ0ZWUiLCAiYXVkaW9UZWUiKTsKLSAgICBHc3RFbGVtZW50KiBhdWRpb1F1ZXVlID0gZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIDApOwotICAgIEdzdEVsZW1lbnQqIGF1ZGlvQ29u
dmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7Ci0gICAg
R3N0RWxlbWVudCogYXVkaW9Db252ZXJ0MiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVk
aW9jb252ZXJ0IiwgMCk7Ci0gICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZSA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOwotICAgIEdzdEVsZW1lbnQqIGF1
ZGlvUmVzYW1wbGUyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwg
MCk7CisgICAgR3N0RWxlbWVudCogYXVkaW9RdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgicXVldWUiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgPSBnc3Rf
ZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIG51bGxwdHIpOworICAgIEdzdEVs
ZW1lbnQqIGF1ZGlvQ29udmVydDIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29u
dmVydCIsIG51bGxwdHIpOworICAgIEdzdEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxl
bWVudF9mYWN0b3J5X21ha2UoImF1ZGlvcmVzYW1wbGUiLCBudWxscHRyKTsKKyAgICBHc3RFbGVt
ZW50KiBhdWRpb1Jlc2FtcGxlMiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNh
bXBsZSIsIG51bGxwdHIpOwogICAgIEdzdEVsZW1lbnQqIHZvbHVtZUVsZW1lbnQgPSBnc3RfZWxl
bWVudF9mYWN0b3J5X21ha2UoInZvbHVtZSIsICJ2b2x1bWUiKTsKLSAgICBHc3RFbGVtZW50KiBh
dWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3NpbmsiLCAwKTsK
KyAgICBHc3RFbGVtZW50KiBhdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1
dG9hdWRpb3NpbmsiLCBudWxscHRyKTsKIAogICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTiht
X2F1ZGlvU2lua0Jpbi5nZXQoKSksIGF1ZGlvVGVlLCBhdWRpb1F1ZXVlLCBhdWRpb0NvbnZlcnQs
IGF1ZGlvUmVzYW1wbGUsIHZvbHVtZUVsZW1lbnQsIGF1ZGlvQ29udmVydDIsIGF1ZGlvUmVzYW1w
bGUyLCBhdWRpb1NpbmssIG51bGxwdHIpOwogCkBAIC0yMTEsMTAgKzIxMSwxMCBAQCB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50KiBjbGllbnQpCiAgICAgLy8gVGhlIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBs
ZSBlbGVtZW50cyBhcmUgbmVlZGVkIHRvCiAgICAgLy8gZW5zdXJlIGRlaW50ZXJsZWF2ZSBhbmQg
dGhlIHNpbmtzIGRvd25zdHJlYW0gcmVjZWl2ZSBidWZmZXJzIGluCiAgICAgLy8gdGhlIGZvcm1h
dCBzcGVjaWZpZWQgYnkgdGhlIGNhcHNmaWx0ZXIuCi0gICAgR3N0RWxlbWVudCogYXVkaW9RdWV1
ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAwKTsKLSAgICBHc3RFbGVtZW50
KiBhdWRpb0NvbnZlcnQgID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb2NvbnZlcnQi
LCAwKTsKLSAgICBHc3RFbGVtZW50KiBhdWRpb1Jlc2FtcGxlID0gZ3N0X2VsZW1lbnRfZmFjdG9y
eV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwgMCk7Ci0gICAgR3N0RWxlbWVudCogY2Fwc0ZpbHRlciA9
IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiY2Fwc2ZpbHRlciIsIDApOworICAgIEdzdEVsZW1l
bnQqIGF1ZGlvUXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgbnVsbHB0
cik7CisgICAgR3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ICA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgiYXVkaW9jb252ZXJ0IiwgbnVsbHB0cik7CisgICAgR3N0RWxlbWVudCogYXVkaW9SZXNh
bXBsZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIG51bGxwdHIp
OworICAgIEdzdEVsZW1lbnQqIGNhcHNGaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImNhcHNmaWx0ZXIiLCBudWxscHRyKTsKICAgICBHc3RFbGVtZW50KiBkZUludGVybGVhdmUgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImRlaW50ZXJsZWF2ZSIsICJkZWludGVybGVhdmUiKTsK
IAogICAgIGdfb2JqZWN0X3NldChkZUludGVybGVhdmUsICJrZWVwLXBvc2l0aW9ucyIsIFRSVUUs
IG51bGxwdHIpOwpAQCAtMjU3LDggKzI1Nyw4IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdT
dHJlYW1lcjo6aGFuZGxlTmV3RGVpbnRlcmxlYXZlUGFkKEdzdFBhZCogcGFkKQogCiAgICAgaWYg
KG1fZGVpbnRlcmxlYXZlU291cmNlUGFkcyA+IDIpIHsKICAgICAgICAgZ193YXJuaW5nKCJUaGUg
QXVkaW9Tb3VyY2VQcm92aWRlciBzdXBwb3J0cyBvbmx5IG1vbm8gYW5kIHN0ZXJlbyBhdWRpby4g
U2lsZW5jaW5nIG91dCB0aGlzIG5ldyBjaGFubmVsLiIpOwotICAgICAgICBHc3RFbGVtZW50KiBx
dWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAwKTsKLSAgICAgICAgR3N0
RWxlbWVudCogc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZmFrZXNpbmsiLCAwKTsK
KyAgICAgICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1
ZXVlIiwgbnVsbHB0cik7CisgICAgICAgIEdzdEVsZW1lbnQqIHNpbmsgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImZha2VzaW5rIiwgbnVsbHB0cik7CiAgICAgICAgIGdfb2JqZWN0X3NldChz
aW5rLCAiYXN5bmMiLCBGQUxTRSwgbnVsbHB0cik7CiAgICAgICAgIGdzdF9iaW5fYWRkX21hbnko
R1NUX0JJTihtX2F1ZGlvU2lua0Jpbi5nZXQoKSksIHF1ZXVlLCBzaW5rLCBudWxscHRyKTsKIApA
QCAtMjc3LDE0ICsyNzcsMTQgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpo
YW5kbGVOZXdEZWludGVybGVhdmVQYWQoR3N0UGFkKiBwYWQpCiAgICAgLy8gaW4gYW4gYXBwc2lu
ayBzbyB3ZSBjYW4gcHVsbCB0aGUgZGF0YSBmcm9tIGVhY2gKICAgICAvLyBjaGFubmVsLiBQaXBl
bGluZSBsb29rcyBsaWtlOgogICAgIC8vIC4uLiBkZWludGVybGVhdmUgISBxdWV1ZSAhIGFwcHNp
bmsuCi0gICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1
ZXVlIiwgMCk7Ci0gICAgR3N0RWxlbWVudCogc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgiYXBwc2luayIsIDApOworICAgIEdzdEVsZW1lbnQqIHF1ZXVlID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJxdWV1ZSIsIG51bGxwdHIpOworICAgIEdzdEVsZW1lbnQqIHNpbmsgPSBnc3Rf
ZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNpbmsiLCBudWxscHRyKTsKIAogICAgIEdzdEFwcFNp
bmtDYWxsYmFja3MgY2FsbGJhY2tzOwotICAgIGNhbGxiYWNrcy5lb3MgPSAwOwotICAgIGNhbGxi
YWNrcy5uZXdfcHJlcm9sbCA9IDA7CisgICAgY2FsbGJhY2tzLmVvcyA9IG51bGxwdHI7CisgICAg
Y2FsbGJhY2tzLm5ld19wcmVyb2xsID0gbnVsbHB0cjsKICAgICBjYWxsYmFja3MubmV3X3NhbXBs
ZSA9IG9uQXBwc2lua05ld0J1ZmZlckNhbGxiYWNrOwotICAgIGdzdF9hcHBfc2lua19zZXRfY2Fs
bGJhY2tzKEdTVF9BUFBfU0lOSyhzaW5rKSwgJmNhbGxiYWNrcywgdGhpcywgMCk7CisgICAgZ3N0
X2FwcF9zaW5rX3NldF9jYWxsYmFja3MoR1NUX0FQUF9TSU5LKHNpbmspLCAmY2FsbGJhY2tzLCB0
aGlzLCBudWxscHRyKTsKIAogICAgIGdfb2JqZWN0X3NldChzaW5rLCAiYXN5bmMiLCBGQUxTRSwg
bnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IDk5NWVmOTcxYjBhOWNjZTE2Y2Y3OTQxNWQ3YjJlYjUyOWE4OTkwODguLjQ0NWM5
NzkzYzlkZWU1Zjk5ZmMzMmM2NjRhYjlkNTE2ZDUxOTczNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMTg0LDE0ICsxODQsMTQgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19zcmNfaW5pdChXZWJLaXRXZWJBdWRpb1NyYyogc3Jj
KQogICAgIHNyYy0+cHJpdiA9IHByaXY7CiAgICAgbmV3IChwcml2KSBXZWJLaXRXZWJBdWRpb1Nv
dXJjZVByaXZhdGUoKTsKIAotICAgIHByaXYtPnNvdXJjZVBhZCA9IHdlYmtpdEdzdEdob3N0UGFk
RnJvbVN0YXRpY1RlbXBsYXRlKCZzcmNUZW1wbGF0ZSwgInNyYyIsIDApOworICAgIHByaXYtPnNv
dXJjZVBhZCA9IHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRpY1RlbXBsYXRlKCZzcmNUZW1wbGF0
ZSwgInNyYyIsIG51bGxwdHIpOwogICAgIGdzdF9lbGVtZW50X2FkZF9wYWQoR1NUX0VMRU1FTlQo
c3JjKSwgcHJpdi0+c291cmNlUGFkKTsKIAotICAgIHByaXYtPnByb3ZpZGVyID0gMDsKLSAgICBw
cml2LT5idXMgPSAwOworICAgIHByaXYtPnByb3ZpZGVyID0gbnVsbHB0cjsKKyAgICBwcml2LT5i
dXMgPSBudWxscHRyOwogCiAgICAgZ19yZWNfbXV0ZXhfaW5pdCgmcHJpdi0+bXV0ZXgpOwotICAg
IHByaXYtPnRhc2sgPSBhZG9wdEdSZWYoZ3N0X3Rhc2tfbmV3KHJlaW50ZXJwcmV0X2Nhc3Q8R3N0
VGFza0Z1bmN0aW9uPih3ZWJLaXRXZWJBdWRpb1NyY0xvb3ApLCBzcmMsIDApKTsKKyAgICBwcml2
LT50YXNrID0gYWRvcHRHUmVmKGdzdF90YXNrX25ldyhyZWludGVycHJldF9jYXN0PEdzdFRhc2tG
dW5jdGlvbj4od2ViS2l0V2ViQXVkaW9TcmNMb29wKSwgc3JjLCBudWxscHRyKSk7CiAKICAgICBn
c3RfdGFza19zZXRfbG9jayhwcml2LT50YXNrLmdldCgpLCAmcHJpdi0+bXV0ZXgpOwogfQpAQCAt
MzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjTG9vcChXZWJLaXRX
ZWJBdWRpb1NyYyogc3JjKQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
bG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KLSAgICBwcml2LT5wcm92aWRlci0+cmVuZGVyKDAsIHBy
aXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAgICBwcml2LT5wcm92aWRlci0+cmVuZGVy
KG51bGxwdHIsIHByaXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKIAogICAgIEFTU0VSVChj
aGFubmVsQnVmZmVyTGlzdC5zaXplKCkgPT0gcHJpdi0+c291cmNlcy5zaXplKCkpOwogICAgIGJv
b2wgZmFpbGVkID0gZmFsc2U7CkBAIC0zNzgsNyArMzc4LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hh
bmdlUmV0dXJuIHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVu
dCwgR3MKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfTlVMTF9UT19SRUFEWToKICAgICAgICAg
aWYgKCFzcmMtPnByaXYtPmludGVybGVhdmUpIHsKICAgICAgICAgICAgIGdzdF9lbGVtZW50X3Bv
c3RfbWVzc2FnZShlbGVtZW50LCBnc3RfbWlzc2luZ19lbGVtZW50X21lc3NhZ2VfbmV3KGVsZW1l
bnQsICJpbnRlcmxlYXZlIikpOwotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBD
T1JFLCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIGludGVybGVhdmUiKSk7CisgICAgICAgICAg
ICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAobnVsbHB0ciks
ICgibm8gaW50ZXJsZWF2ZSIpKTsKICAgICAgICAgICAgIHJldHVybiBHU1RfU1RBVEVfQ0hBTkdF
X0ZBSUxVUkU7CiAgICAgICAgIH0KICAgICAgICAgc3JjLT5wcml2LT5udW1iZXJPZlNhbXBsZXMg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5k
ZXggNmUxZmM0NjY2YzA2M2FhY2Y1OTM5MjUzZjBlOWExMDdkNmI5NjI3Yi4uZmMyZDY3NDcxOWEz
NTYyOWNjYWJjM2VjN2YwNmQxMDljMWMwYjE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIEF1ZGlvVHJh
Y2tQcml2YXRlOjpzZXRFbmFibGVkKGVuYWJsZWQpOwogCiAgICAgaWYgKGVuYWJsZWQgJiYgbV9w
bGF5YmluKQotICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5YmluLmdldCgpLCAiY3VycmVudC1h
dWRpbyIsIG1faW5kZXgsIE5VTEwpOworICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5YmluLmdl
dCgpLCAiY3VycmVudC1hdWRpbyIsIG1faW5kZXgsIG51bGxwdHIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCmluZGV4IDljNDlm
ZDhlNTNmMzc4NzhmNWUxMGFiMTI3OWIwNzA0ODRmNzViYzQuLjc3MDY3NTI2NmJlZWYxMTY2Zjdj
OGQwMzE4MzJmOTFmYWMzMWEyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3Bw
CkBAIC0xNTIsNyArMTUyLDcgQEAgYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKCkKIAogICAgIEdV
bmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2Jh
Ymx5IHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCi0gICAgYm9vbCBn
c3RJbml0aWFsaXplZCA9IGdzdF9pbml0X2NoZWNrKDAsIDAsICZlcnJvci5vdXRQdHIoKSk7Cisg
ICAgYm9vbCBnc3RJbml0aWFsaXplZCA9IGdzdF9pbml0X2NoZWNrKG51bGxwdHIsIG51bGxwdHIs
ICZlcnJvci5vdXRQdHIoKSk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShnc3RJbml0aWFsaXpl
ZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiwgZXJyb3IgPyBlcnJvci0+
bWVzc2FnZSA6ICJ1bmtub3duIGVycm9yIG9jY3VycmVkIik7CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spICYmIFVTRShHU1RSRUFNRVJfTVBFR1RTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjYWQxMzExMzlkNWRhYjE0Y2E3MmU4NTVk
MDZiMzcyMTMwNWUxNzYxLi43ODUxZTZhZWQ4ZDBjY2RkZTM1ZTJhOGEwZTU2MjVmMjVjNzFlNWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtOTYsOCArOTYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVk
aW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgY29uc3QgY2hhciogcm9sZSA9IG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllcklzVmlk
ZW8oKSA/ICJ2aWRlbyIgOiAibXVzaWMiOwotICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0g
Z3N0X3N0cnVjdHVyZV9uZXcoInN0cmVhbS1wcm9wZXJ0aWVzIiwgIm1lZGlhLnJvbGUiLCBHX1RZ
UEVfU1RSSU5HLCByb2xlLCBOVUxMKTsKLSAgICBnX29iamVjdF9zZXQob2JqZWN0LCAic3RyZWFt
LXByb3BlcnRpZXMiLCBzdHJ1Y3R1cmUsIE5VTEwpOworICAgIEdzdFN0cnVjdHVyZSogc3RydWN0
dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoInN0cmVhbS1wcm9wZXJ0aWVzIiwgIm1lZGlhLnJvbGUi
LCBHX1RZUEVfU1RSSU5HLCByb2xlLCBudWxscHRyKTsKKyAgICBnX29iamVjdF9zZXQob2JqZWN0
LCAic3RyZWFtLXByb3BlcnRpZXMiLCBzdHJ1Y3R1cmUsIG51bGxwdHIpOwogICAgIGdzdF9zdHJ1
Y3R1cmVfZnJlZShzdHJ1Y3R1cmUpOwogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGVsZW1lbnROYW1l
KGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9FTEVNRU5UKG9iamVjdCkpKTsKICAgICBHU1RfREVC
VUcoIlNldCBtZWRpYS5yb2xlIGFzICVzIGF0ICVzIiwgcm9sZSwgZWxlbWVudE5hbWUuZ2V0KCkp
OwpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxheWVy
KSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4o
cGxheWVyKTsgfSwKLSAgICAgICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUs
IDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIHN1cHBvcnRzS2V5
U3lzdGVtKTsKIH0KIAogYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRF
bGVtZW50cygpCkBAIC0xMjAsNyArMTIwLDcgQEAgYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5k
UmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4g
c3JjRmFjdG9yeSA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoIndlYmtpdHdl
YnNyYyIpKTsKICAgICBpZiAoIXNyY0ZhY3RvcnkpIHsKICAgICAgICAgR1NUX0RFQlVHX0NBVEVH
T1JZX0lOSVQod2Via2l0X21lZGlhX3BsYXllcl9kZWJ1ZywgIndlYmtpdG1lZGlhcGxheWVyIiwg
MCwgIldlYktpdCBtZWRpYSBwbGF5ZXIiKTsKLSAgICAgICAgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIo
MCwgIndlYmtpdHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAxMDAsIFdFQktJVF9UWVBFX1dF
Ql9TUkMpOworICAgICAgICBnc3RfZWxlbWVudF9yZWdpc3RlcihudWxscHRyLCAid2Via2l0d2Vi
c3JjIiwgR1NUX1JBTktfUFJJTUFSWSArIDEwMCwgV0VCS0lUX1RZUEVfV0VCX1NSQyk7CiAgICAg
fQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNTMsMTAgKzE1MywxMCBAQCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciog
cGxheWVyKQogICAgICwgbV9zZWVraW5nKGZhbHNlKQogICAgICwgbV9zZWVrSXNQZW5kaW5nKGZh
bHNlKQogICAgICwgbV9zZWVrVGltZSgwKQotICAgICwgbV9zb3VyY2UoMCkKKyAgICAsIG1fc291
cmNlKG51bGxwdHIpCiAgICAgLCBtX3ZvbHVtZUFuZE11dGVJbml0aWFsaXplZChmYWxzZSkKICAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fbWVkaWFMb2NhdGlvbnMoMCkKKyAg
ICAsIG1fbWVkaWFMb2NhdGlvbnMobnVsbHB0cikKICAgICAsIG1fbWVkaWFMb2NhdGlvbkN1cnJl
bnRJbmRleCgwKQogICAgICwgbV9wbGF5YmFja1JhdGVQYXVzZShmYWxzZSkKICAgICAsIG1fdGlt
ZU9mT3ZlcmxhcHBpbmdTZWVrKC0xKQpAQCAtMTk3LDcgKzE5Nyw3IEBAIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAKICAgICBpZiAo
bV9tZWRpYUxvY2F0aW9ucykgewogICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUobV9tZWRpYUxv
Y2F0aW9ucyk7Ci0gICAgICAgIG1fbWVkaWFMb2NhdGlvbnMgPSAwOworICAgICAgICBtX21lZGlh
TG9jYXRpb25zID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoV0VCS0lUX0lTX1dFQl9TUkMo
bV9zb3VyY2UuZ2V0KCkpICYmIEdTVF9PQkpFQ1RfUEFSRU5UKG1fc291cmNlLmdldCgpKSkKQEAg
LTgwMCw3ICs4MDAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmV3VGV4
dFNhbXBsZSgpCiAgICAgICAgIGdzdF9wYWRfZ2V0X3N0aWNreV9ldmVudChtX3RleHRBcHBTaW5r
UGFkLmdldCgpLCBHU1RfRVZFTlRfU1RSRUFNX1NUQVJULCAwKSk7CiAKICAgICBHUmVmUHRyPEdz
dFNhbXBsZT4gc2FtcGxlOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3RleHRBcHBTaW5r
LmdldCgpLCAicHVsbC1zYW1wbGUiLCAmc2FtcGxlLm91dFB0cigpLCBOVUxMKTsKKyAgICBnX3Np
Z25hbF9lbWl0X2J5X25hbWUobV90ZXh0QXBwU2luay5nZXQoKSwgInB1bGwtc2FtcGxlIiwgJnNh
bXBsZS5vdXRQdHIoKSwgbnVsbHB0cik7CiAgICAgQVNTRVJUKHNhbXBsZSk7CiAKICAgICBpZiAo
c3RyZWFtU3RhcnRFdmVudCkgewpAQCAtOTkwLDcgKzk5MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAKICAg
ICAgICAgLy8gQ29uc3RydWN0IGEgZmlsZW5hbWUgZm9yIHRoZSBncmFwaHZpeiBkb3QgZmlsZSBv
dXRwdXQuCiAgICAgICAgIEdzdFN0YXRlIG5ld1N0YXRlOwotICAgICAgICBnc3RfbWVzc2FnZV9w
YXJzZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdTdGF0ZSwgMCk7
CisgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwgJmN1cnJl
bnRTdGF0ZSwgJm5ld1N0YXRlLCBudWxscHRyKTsKICAgICAgICAgQ1N0cmluZyBkb3RGaWxlTmFt
ZSA9IFN0cmluZzo6Zm9ybWF0KCJ3ZWJraXQtdmlkZW8uJXNfJXMiLCBnc3RfZWxlbWVudF9zdGF0
ZV9nZXRfbmFtZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdT
dGF0ZSkpLnV0ZjgoKTsKICAgICAgICAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RT
KEdTVF9CSU4obV9waXBlbGluZS5nZXQoKSksIEdTVF9ERUJVR19HUkFQSF9TSE9XX0FMTCwgZG90
RmlsZU5hbWUuZGF0YSgpKTsKIApAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NUYWJsZU9mQ29udGVudHMoR3N0TWVzc2FnZSogbWVz
c2FnZSkKICAgICBBU1NFUlQodG9jKTsKIAogICAgIGZvciAoR0xpc3QqIGkgPSBnc3RfdG9jX2dl
dF9lbnRyaWVzKHRvYy5nZXQoKSk7IGk7IGkgPSBpLT5uZXh0KQotICAgICAgICBwcm9jZXNzVGFi
bGVPZkNvbnRlbnRzRW50cnkoc3RhdGljX2Nhc3Q8R3N0VG9jRW50cnkqPihpLT5kYXRhKSwgMCk7
CisgICAgICAgIHByb2Nlc3NUYWJsZU9mQ29udGVudHNFbnRyeShzdGF0aWNfY2FzdDxHc3RUb2NF
bnRyeSo+KGktPmRhdGEpLCBudWxscHRyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnByb2Nlc3NUYWJsZU9mQ29udGVudHNFbnRyeShHc3RUb2NFbnRyeSogZW50cnks
IEdzdFRvY0VudHJ5KiBwYXJlbnQpCkBAIC0xMTk2LDcgKzExOTYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KEdzdFRvY0Vu
dHJ5KiBlbnRyeQogCiAgICAgR3N0VGFnTGlzdCogdGFncyA9IGdzdF90b2NfZW50cnlfZ2V0X3Rh
Z3MoZW50cnkpOwogICAgIGlmICh0YWdzKSB7Ci0gICAgICAgIGdjaGFyKiB0aXRsZSA9ICAwOwor
ICAgICAgICBnY2hhciogdGl0bGUgPSAgbnVsbHB0cjsKICAgICAgICAgZ3N0X3RhZ19saXN0X2dl
dF9zdHJpbmcodGFncywgR1NUX1RBR19USVRMRSwgJnRpdGxlKTsKICAgICAgICAgaWYgKHRpdGxl
KSB7CiAgICAgICAgICAgICBjdWUtPnNldENvbnRlbnQodGl0bGUpOwpAQCAtMTIyMyw3ICsxMjIz
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmZpbGxUaW1lckZpcmVkKCkK
ICAgICBnaW50NjQgc3RhcnQsIHN0b3A7CiAgICAgZ2RvdWJsZSBmaWxsU3RhdHVzID0gMTAwLjA7
CiAKLSAgICBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlKHF1ZXJ5LCAwLCAmc3RhcnQs
ICZzdG9wLCAwKTsKKyAgICBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlKHF1ZXJ5LCBu
dWxscHRyLCAmc3RhcnQsICZzdG9wLCBudWxscHRyKTsKICAgICBnc3RfcXVlcnlfdW5yZWYocXVl
cnkpOwogCiAgICAgaWYgKHN0b3AgIT0gLTEpCkBAIC0xNjU4LDcgKzE2NTgsNyBAQCBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGNvbnN0IEdWYWx1ZSogbG9jYXRpb25zID0gZ3N0X3N0cnVjdHVy
ZV9nZXRfdmFsdWUobV9tZWRpYUxvY2F0aW9ucywgImxvY2F0aW9ucyIpOwotICAgIGNvbnN0IGdj
aGFyKiBuZXdMb2NhdGlvbiA9IDA7CisgICAgY29uc3QgZ2NoYXIqIG5ld0xvY2F0aW9uID0gbnVs
bHB0cjsKIAogICAgIGlmICghbG9jYXRpb25zKSB7CiAgICAgICAgIC8vIEZhbGxiYWNrIG9uIG5l
dy1sb2NhdGlvbiBzdHJpbmcuCkBAIC0xNjY5LDcgKzE2NjksNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAKICAgICBpZiAoIW5ld0xvY2F0
aW9uKSB7CiAgICAgICAgIGlmIChtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXggPCAwKSB7Ci0g
ICAgICAgICAgICBtX21lZGlhTG9jYXRpb25zID0gMDsKKyAgICAgICAgICAgIG1fbWVkaWFMb2Nh
dGlvbnMgPSBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAK
QEAgLTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpz
ZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiAKIEdzdEVsZW1lbnQqIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlQXVkaW9TaW5rKCkKIHsKLSAgICBtX2F1
dG9BdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3NpbmsiLCAw
KTsKKyAgICBtX2F1dG9BdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9h
dWRpb3NpbmsiLCBudWxscHRyKTsKICAgICBpZiAoIW1fYXV0b0F1ZGlvU2luaykgewogICAgICAg
ICBHU1RfV0FSTklORygiR1N0cmVhbWVyJ3MgYXV0b2F1ZGlvc2luayBub3QgZm91bmQuIFBsZWFz
ZSBjaGVjayB5b3VyIGdzdC1wbHVnaW5zLWdvb2QgaW5zdGFsbGF0aW9uIik7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMjEwMiw3ICsyMTAyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIC8vIFNlZSBodHRwczovL2J1Z3pp
bGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NzQ4IGZvcgogICAgIC8vIHRoZSByZWFz
b24gZm9yIHVzaW5nID49IDEuNC4yIGluc3RlYWQgb2YgPj0gMS40LjAuCiAgICAgaWYgKG1fcHJl
c2VydmVzUGl0Y2ggJiYgd2Via2l0R3N0Q2hlY2tWZXJzaW9uKDEsIDQsIDIpKSB7Ci0gICAgICAg
IEdzdEVsZW1lbnQqIHNjYWxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJzY2FsZXRlbXBv
IiwgMCk7CisgICAgICAgIEdzdEVsZW1lbnQqIHNjYWxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJzY2FsZXRlbXBvIiwgbnVsbHB0cik7CiAKICAgICAgICAgaWYgKCFzY2FsZSkKICAgICAg
ICAgICAgIEdTVF9XQVJOSU5HKCJGYWlsZWQgdG8gY3JlYXRlIHNjYWxldGVtcG8iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRl
eCBhN2VkZjgzZmE1ODcwZDY3YTAyMmMxZjc0OGNmYTg1NTFhMzk3ODIxLi4xODFkZmVhODZmMDg2
YzFkNmEwNTk0Y2Y5YzhhMGEzY2U2MDFiMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgcHJp
dmF0ZToKIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxh
eWVyKQotICAgICwgbV9mcHNTaW5rKDApCisgICAgLCBtX2Zwc1NpbmsobnVsbHB0cikKICAgICAs
IG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiAgICAgLCBtX25ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6RW1wdHkpCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkgfHwgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQpAQCAtMjA5LDcgKzIwOSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uo
TWVkaWFQbGF5ZXIqIHBsCiAjZW5kaWYKICAgICAsIG1fdXNpbmdGYWxsYmFja1ZpZGVvU2luayhm
YWxzZSkKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICAsIG1fY2RtU2Vz
c2lvbigwKQorICAgICwgbV9jZG1TZXNzaW9uKG51bGxwdHIpCiAjZW5kaWYKIHsKICAgICBnX211
dGV4X2luaXQoJm1fc2FtcGxlTXV0ZXgpOwpAQCAtNTg0LDcgKzU4NCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKICAgICBpZiAo
IW1fdm9sdW1lRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ19vYmplY3Rfc2V0KG1f
dm9sdW1lRWxlbWVudC5nZXQoKSwgIm11dGUiLCBtdXRlZCwgTlVMTCk7CisgICAgZ19vYmplY3Rf
c2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11dGUiLCBtdXRlZCwgbnVsbHB0cik7CiB9CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZWQoKSBjb25zdApAQCAt
NTkzLDcgKzU5Myw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0
ZWQoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIG11dGVkOwotICAg
IGdfb2JqZWN0X2dldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwgJm11dGVkLCBOVUxM
KTsKKyAgICBnX29iamVjdF9nZXQobV92b2x1bWVFbGVtZW50LmdldCgpLCAibXV0ZSIsICZtdXRl
ZCwgbnVsbHB0cik7CiAgICAgcmV0dXJuIG11dGVkOwogfQogCkBAIC02MDMsNyArNjAzLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpub3RpZnlQbGF5ZXJPZk11dGUo
KQogICAgICAgICByZXR1cm47CiAKICAgICBnYm9vbGVhbiBtdXRlZDsKLSAgICBnX29iamVjdF9n
ZXQobV92b2x1bWVFbGVtZW50LmdldCgpLCAibXV0ZSIsICZtdXRlZCwgTlVMTCk7CisgICAgZ19v
YmplY3RfZ2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11dGUiLCAmbXV0ZWQsIG51bGxwdHIp
OwogICAgIG1fcGxheWVyLT5tdXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxib29sPihtdXRlZCkpOwog
fQogCkBAIC0xMTYwLDEyICsxMTYwLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6c2V0U3RyZWFtVm9sdW1lRWxlbWVudChHc3RTdHJlYW1Wb2x1bWUqIHZvCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODk3NCBmb3IgbW9y
ZSBpbmZvcm1hdGlvbi4KICAgICBpZiAoIW1fcGxheWVyLT5wbGF0Zm9ybVZvbHVtZUNvbmZpZ3Vy
YXRpb25SZXF1aXJlZCgpKSB7CiAgICAgICAgIEdTVF9ERUJVRygiU2V0dGluZyBzdHJlYW0gdm9s
dW1lIHRvICVmIiwgbV9wbGF5ZXItPnZvbHVtZSgpKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KG1f
dm9sdW1lRWxlbWVudC5nZXQoKSwgInZvbHVtZSIsIG1fcGxheWVyLT52b2x1bWUoKSwgTlVMTCk7
CisgICAgICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJ2b2x1bWUiLCBt
X3BsYXllci0+dm9sdW1lKCksIG51bGxwdHIpOwogICAgIH0gZWxzZQogICAgICAgICBHU1RfREVC
VUcoIk5vdCBzZXR0aW5nIHN0cmVhbSB2b2x1bWUsIHRydXN0aW5nIHN5c3RlbSBvbmUiKTsKIAog
ICAgIEdTVF9ERUJVRygiU2V0dGluZyBzdHJlYW0gbXV0ZWQgJWQiLCAgbV9wbGF5ZXItPm11dGVk
KCkpOwotICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwgbV9w
bGF5ZXItPm11dGVkKCksIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQu
Z2V0KCksICJtdXRlIiwgbV9wbGF5ZXItPm11dGVkKCksIG51bGxwdHIpOwogCiAgICAgZ19zaWdu
YWxfY29ubmVjdF9zd2FwcGVkKG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm5vdGlmeTo6dm9sdW1l
IiwgR19DQUxMQkFDSyh2b2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0X3N3YXBwZWQobV92b2x1bWVFbGVtZW50LmdldCgpLCAibm90aWZ5OjptdXRlIiwg
R19DQUxMQkFDSyhtdXRlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CkBAIC0xMTc1LDcgKzExNzUs
NyBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpkZWNvZGVkRnJh
bWVDb3VudCgpIGNvbnN0CiB7CiAgICAgZ3VpbnQ2NCBkZWNvZGVkRnJhbWVzID0gMDsKICAgICBp
ZiAobV9mcHNTaW5rKQotICAgICAgICBnX29iamVjdF9nZXQobV9mcHNTaW5rLmdldCgpLCAiZnJh
bWVzLXJlbmRlcmVkIiwgJmRlY29kZWRGcmFtZXMsIE5VTEwpOworICAgICAgICBnX29iamVjdF9n
ZXQobV9mcHNTaW5rLmdldCgpLCAiZnJhbWVzLXJlbmRlcmVkIiwgJmRlY29kZWRGcmFtZXMsIG51
bGxwdHIpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVjb2RlZEZyYW1lcyk7
CiB9CiAKQEAgLTExODMsNyArMTE4Myw3IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OmRyb3BwZWRGcmFtZUNvdW50KCkgY29uc3QKIHsKICAgICBndWludDY0IGZy
YW1lc0Ryb3BwZWQgPSAwOwogICAgIGlmIChtX2Zwc1NpbmspCi0gICAgICAgIGdfb2JqZWN0X2dl
dChtX2Zwc1NpbmsuZ2V0KCksICJmcmFtZXMtZHJvcHBlZCIsICZmcmFtZXNEcm9wcGVkLCBOVUxM
KTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fZnBzU2luay5nZXQoKSwgImZyYW1lcy1kcm9wcGVk
IiwgJmZyYW1lc0Ryb3BwZWQsIG51bGxwdHIpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZnJhbWVzRHJvcHBlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck93ci5jcHAKaW5kZXggZWU1NjhjYmYxZThlZTljNDgwNTkxNGYz
MWI4ZTYzMjZkYzI5ZmQ2ZC4uOGUzNzM2YzhiNzM2YzI5MDZlZTQxODQxODk5ZDFhZjAwNzVjZDk2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93
ci5jcHAKQEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck93cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZQogICAgIGlm
IChpbml0aWFsaXplR1N0cmVhbWVyQW5kR1N0cmVhbWVyRGVidWdnaW5nKCkpIHsKICAgICAgICAg
cmVnaXN0cmFyKFtdKE1lZGlhUGxheWVyKiBwbGF5ZXIpIHsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cj4ocGxheWVyKTsK
LSAgICAgICAgfSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7
CisgICAgICAgIH0sIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENv
bWJpbmVyR1N0cmVhbWVyLmNwcAppbmRleCAzMzljYTM3ZWI4ZDk4ZDk1NTFjOTdlNWIwOGJhOWM0
M2ViMzY1M2NhLi4wMmRlMWU4YmQ3YTdmYzM1ZmMwOGU4M2RlMDNiOWI3YTVhZDA1NmNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENv
bWJpbmVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVGV4dENvbWJpbmVyR1N0cmVhbWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0VGV4dENvbWJpbmVyUGFkRXZlbnQoR3N0UGFkKiwgR3N0T2Jq
ZWN0KiBwYXJlbnQsIEdzdEV2ZW50KgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfdGV4dF9jb21iaW5l
cl9pbml0KFdlYktpdFRleHRDb21iaW5lciogY29tYmluZXIpCiB7Ci0gICAgY29tYmluZXItPmZ1
bm5lbCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZnVubmVsIiwgTlVMTCk7CisgICAgY29t
YmluZXItPmZ1bm5lbCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZnVubmVsIiwgbnVsbHB0
cik7CiAgICAgQVNTRVJUKGNvbWJpbmVyLT5mdW5uZWwpOwogCiAgICAgZ2Jvb2xlYW4gcmV0ID0g
Z3N0X2Jpbl9hZGQoR1NUX0JJTihjb21iaW5lciksIGNvbWJpbmVyLT5mdW5uZWwpOwpAQCAtMTQ3
LDcgKzE0Nyw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRUZXh0Q29tYmluZXJQYWRFdmVudChH
c3RQYWQqIHBhZCwgR3N0T2JqZWN0KiBwYXJlbnQsIEdzdEV2CiAgICAgICAgICAgICAgKiB0aGUg
ZnVubmVsICovCiAgICAgICAgICAgICBpZiAodGFyZ2V0UGFyZW50ID09IGNvbWJpbmVyLT5mdW5u
ZWwpIHsKICAgICAgICAgICAgICAgICAvKiBTZXR1cCBhIFdlYlZUVCBlbmNvZGVyICovCi0gICAg
ICAgICAgICAgICAgR3N0RWxlbWVudCogZW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgid2VidnR0ZW5jIiwgTlVMTCk7CisgICAgICAgICAgICAgICAgR3N0RWxlbWVudCogZW5jb2Rl
ciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2VidnR0ZW5jIiwgbnVsbHB0cik7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKGVuY29kZXIpOwogCiAgICAgICAgICAgICAgICAgcmV0ID0gZ3N0
X2Jpbl9hZGQoR1NUX0JJTihjb21iaW5lciksIGVuY29kZXIpOwpAQCAtMjMyLDcgKzIzMiw3IEBA
IHN0YXRpYyBHc3RQYWQqIHdlYmtpdFRleHRDb21iaW5lclJlcXVlc3ROZXdQYWQoR3N0RWxlbWVu
dCAqIGVsZW1lbnQsCiAgICAgR3N0UGFkKiBwYWQgPSBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZChj
b21iaW5lci0+ZnVubmVsLCB0ZW1wbCwgbmFtZSwgY2Fwcyk7CiAgICAgQVNTRVJUKHBhZCk7CiAK
LSAgICBHc3RQYWQqIGdob3N0UGFkID0gR1NUX1BBRChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
VEVYVF9DT01CSU5FUl9QQUQsICJkaXJlY3Rpb24iLCBnc3RfcGFkX2dldF9kaXJlY3Rpb24ocGFk
KSwgTlVMTCkpOworICAgIEdzdFBhZCogZ2hvc3RQYWQgPSBHU1RfUEFEKGdfb2JqZWN0X25ldyhX
RUJLSVRfVFlQRV9URVhUX0NPTUJJTkVSX1BBRCwgImRpcmVjdGlvbiIsIGdzdF9wYWRfZ2V0X2Rp
cmVjdGlvbihwYWQpLCBudWxscHRyKSk7CiAgICAgQVNTRVJUKGdob3N0UGFkKTsKIAogICAgIHJl
dCA9IGdzdF9naG9zdF9wYWRfY29uc3RydWN0KEdTVF9HSE9TVF9QQUQoZ2hvc3RQYWQpKTsKQEAg
LTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdGV4dF9jb21iaW5lcl9wYWRfY2xh
c3NfaW5pdChXZWJLaXRUZXh0Q29tYmluZXJQYWRDbGFzcyoga2xhcwogCiBHc3RFbGVtZW50KiB3
ZWJraXRUZXh0Q29tYmluZXJOZXcoKQogewotICAgIHJldHVybiBHU1RfRUxFTUVOVChnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfVEVYVF9DT01CSU5FUiwgMCkpOworICAgIHJldHVybiBHU1RfRUxF
TUVOVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVEVYVF9DT01CSU5FUiwgbnVsbHB0cikpOwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0cmVhbWVyLmNwcAppbmRleCA2NzhlN2Fj
MzU2ZWQ1YzVhZmZlMzNkNjBhOGQwNTc4NTAwZmNiOTUwLi5lNjUxZGViZmVkMjhmN2E5ZTI4OWQ2
ZGU0Yjk2NGRmODdiMDkyMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dTdHJlYW1lci5jcHAKQEAg
LTk1LDcgKzk1LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3RleHRfc2lua19jbGFzc19pbml0KFdl
YktpdFRleHRTaW5rQ2xhc3MqIGtsYXNzKQogCiBHc3RFbGVtZW50KiB3ZWJraXRUZXh0U2lua05l
dygpCiB7Ci0gICAgcmV0dXJuIEdTVF9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9U
RVhUX1NJTkssIDApKTsKKyAgICByZXR1cm4gR1NUX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJ
VF9UWVBFX1RFWFRfU0lOSywgbnVsbHB0cikpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVP
KSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggOWJlMWZlYTJkZmY1YTA2Y2U0
MGU4NTFmYTUzYTAzZjY0ODRhZTVkMS4uZTE3NmUzYWNlMWZhMTM4YjdkZDUyNGI0N2U2MWM3ODZh
YWY3YTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNw
cApAQCAtODksNyArODksNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OnRhZ3ND
aGFuZ2VkKCkKIHsKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgaWYgKGdfb2Jq
ZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKG1fcGFkLmdldCgpKSwg
InRhZ3MiKSkKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGFkLmdldCgpLCAidGFncyIsICZ0YWdz
Lm91dFB0cigpLCBOVUxMKTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGFkLmdldCgpLCAidGFn
cyIsICZ0YWdzLm91dFB0cigpLCBudWxscHRyKTsKICAgICBlbHNlCiAgICAgICAgIHRhZ3MgPSBh
ZG9wdEdSZWYoZ3N0X3RhZ19saXN0X25ld19lbXB0eSgpKTsKIApAQCAtMTA4LDcgKzEwOCw3IEBA
IHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZkFjdGl2ZUNoYW5n
ZWQoKQogCiAgICAgZ2Jvb2xlYW4gYWN0aXZlID0gZmFsc2U7CiAgICAgaWYgKG1fcGFkICYmIGdf
b2JqZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKG1fcGFkLmdldCgp
KSwgImFjdGl2ZSIpKQotICAgICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCksICJhY3RpdmUi
LCAmYWN0aXZlLCBOVUxMKTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGFkLmdldCgpLCAiYWN0
aXZlIiwgJmFjdGl2ZSwgbnVsbHB0cik7CiAKICAgICBzZXRBY3RpdmUoYWN0aXZlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggMWZhZTdjNzlhMmI3OGU0YmU2YWY2
NjgzMTc3NmVlMDZhMzcwYTRmOC4uZjU2ODE2MWYxNzg4Y2E4MGU0MTFmMWI4MDhjZmMwOTE4NjVl
YmRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTE4Miw3ICsxODIs
NyBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRWaWRlb1NpbmssIHdlYmtpdF92aWRl
b19zaW5rLCBHU1RfVFlQRV9WSURFT19TSU5LLAogc3RhdGljIHZvaWQgd2Via2l0X3ZpZGVvX3Np
bmtfaW5pdChXZWJLaXRWaWRlb1NpbmsqIHNpbmspCiB7CiAgICAgc2luay0+cHJpdiA9IEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURShzaW5rLCBXRUJLSVRfVFlQRV9WSURFT19TSU5LLCBXZWJL
aXRWaWRlb1NpbmtQcml2YXRlKTsKLSAgICBnX29iamVjdF9zZXQoR1NUX0JBU0VfU0lOSyhzaW5r
KSwgImVuYWJsZS1sYXN0LXNhbXBsZSIsIEZBTFNFLCBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQo
R1NUX0JBU0VfU0lOSyhzaW5rKSwgImVuYWJsZS1sYXN0LXNhbXBsZSIsIEZBTFNFLCBudWxscHRy
KTsKICAgICBuZXcgKHNpbmstPnByaXYpIFdlYktpdFZpZGVvU2lua1ByaXZhdGUoKTsKIH0KIApA
QCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtTZXRDYXBz
KEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0Q2FwcyogY2FwcykKIHN0YXRpYyBnYm9vbGVhbiB3
ZWJraXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbihHc3RCYXNlU2luayogYmFzZVNpbmssIEdz
dFF1ZXJ5KiBxdWVyeSkKIHsKICAgICBHc3RDYXBzKiBjYXBzOwotICAgIGdzdF9xdWVyeV9wYXJz
ZV9hbGxvY2F0aW9uKHF1ZXJ5LCAmY2FwcywgMCk7CisgICAgZ3N0X3F1ZXJ5X3BhcnNlX2FsbG9j
YXRpb24ocXVlcnksICZjYXBzLCBudWxscHRyKTsKICAgICBpZiAoIWNhcHMpCiAgICAgICAgIHJl
dHVybiBGQUxTRTsKIApAQCAtMzQ4LDkgKzM0OCw5IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRW
aWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbihHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdFF1ZXJ5
CiAgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJnNpbmstPnByaXYtPmluZm8sIGNh
cHMpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICBnc3RfcXVlcnlfYWRkX2FsbG9jYXRp
b25fbWV0YShxdWVyeSwgR1NUX1ZJREVPX01FVEFfQVBJX1RZUEUsIDApOwotICAgIGdzdF9xdWVy
eV9hZGRfYWxsb2NhdGlvbl9tZXRhKHF1ZXJ5LCBHU1RfVklERU9fQ1JPUF9NRVRBX0FQSV9UWVBF
LCAwKTsKLSAgICBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YShxdWVyeSwgR1NUX1ZJREVP
X0dMX1RFWFRVUkVfVVBMT0FEX01FVEFfQVBJX1RZUEUsIDApOworICAgIGdzdF9xdWVyeV9hZGRf
YWxsb2NhdGlvbl9tZXRhKHF1ZXJ5LCBHU1RfVklERU9fTUVUQV9BUElfVFlQRSwgbnVsbHB0cik7
CisgICAgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21ldGEocXVlcnksIEdTVF9WSURFT19DUk9Q
X01FVEFfQVBJX1RZUEUsIG51bGxwdHIpOworICAgIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9t
ZXRhKHF1ZXJ5LCBHU1RfVklERU9fR0xfVEVYVFVSRV9VUExPQURfTUVUQV9BUElfVFlQRSwgbnVs
bHB0cik7CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKQEAgLTQwNyw3ICs0MDcsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KFdlYktpdFZpZGVvU2lua0NsYXNzKiBr
bGFzcykKIAogR3N0RWxlbWVudCogd2Via2l0VmlkZW9TaW5rTmV3KCkKIHsKLSAgICByZXR1cm4g
R1NUX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1ZJREVPX1NJTkssIDApKTsKKyAg
ICByZXR1cm4gR1NUX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1ZJREVPX1NJTkss
IG51bGxwdHIpKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1F
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IDE1OTRhYTFhZTA3MWM0ZGQ5YjUxZDMwOTg3ZWFjMjAxMTdkZWFmYjEuLmE2Zjk0YjgyYzA4OThl
ZDhmMmRhZmMzODNkYWRmNmY2NDc3MTIwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyOjpzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKQogICAgIFZpZGVvVHJh
Y2tQcml2YXRlOjpzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKICAgICBpZiAoc2VsZWN0ZWQgJiYg
bV9wbGF5YmluKQotICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5YmluLmdldCgpLCAiY3VycmVu
dC12aWRlbyIsIG1faW5kZXgsIE5VTEwpOworICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5Ymlu
LmdldCgpLCAiY3VycmVudC12aWRlbyIsIG1faW5kZXgsIG51bGxwdHIpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IGUyOWJkMWY1MDVkNDM1NzY5MTc5OGExYTIwYzgxZjY3MjA2OTU4ZTMuLjQyZDJi
ZjNkYTRhYTk1NGJiYTUwZjg2ODBjYjQzM2NmMWY0OWNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9zcmNfaW5pdChXZWJLaXRXZWJTcmMqIHNyYykKIAogICAgIHByaXYtPmNy
ZWF0ZWRJbk1haW5UaHJlYWQgPSBpc01haW5UaHJlYWQoKTsKIAotICAgIHByaXYtPmFwcHNyYyA9
IEdTVF9BUFBfU1JDKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBwc3JjIiwgMCkpOworICAg
IHByaXYtPmFwcHNyYyA9IEdTVF9BUFBfU1JDKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBw
c3JjIiwgbnVsbHB0cikpOwogICAgIGlmICghcHJpdi0+YXBwc3JjKSB7CiAgICAgICAgIEdTVF9F
UlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBhcHBzcmMiKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2luaXQo
V2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgR1NUX09CSkVDVF9GTEFHX1NFVChwcml2LT5zcmNwYWQs
IEdTVF9QQURfRkxBR19ORUVEX1BBUkVOVCk7CiAgICAgZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rp
b24ocHJpdi0+c3JjcGFkLCB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQpOwogCi0gICAgZ3N0
X2FwcF9zcmNfc2V0X2NhbGxiYWNrcyhwcml2LT5hcHBzcmMsICZhcHBzcmNDYWxsYmFja3MsIHNy
YywgMCk7CisgICAgZ3N0X2FwcF9zcmNfc2V0X2NhbGxiYWNrcyhwcml2LT5hcHBzcmMsICZhcHBz
cmNDYWxsYmFja3MsIHNyYywgbnVsbHB0cik7CiAgICAgZ3N0X2FwcF9zcmNfc2V0X2VtaXRfc2ln
bmFscyhwcml2LT5hcHBzcmMsIEZBTFNFKTsKICAgICBnc3RfYXBwX3NyY19zZXRfc3RyZWFtX3R5
cGUocHJpdi0+YXBwc3JjLCBHU1RfQVBQX1NUUkVBTV9UWVBFX1NFRUtBQkxFKTsKIApAQCAtMzA4
LDkgKzMwOCw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2luaXQoV2ViS2l0V2ViU3Jj
KiBzcmMpCiAgICAgLy8gbGlrZWx5IHRoYXQgbGlic291cCBhbHJlYWR5IHByb3ZpZGVzIG5ldyBk
YXRhIGJlZm9yZQogICAgIC8vIHRoZSBxdWV1ZSBpcyByZWFsbHkgZW1wdHkuCiAgICAgLy8gVGhp
cyBtaWdodCBuZWVkIHR3ZWFraW5nIGZvciBwb3J0cyBub3QgdXNpbmcgbGlic291cC4KLSAgICBn
X29iamVjdF9zZXQocHJpdi0+YXBwc3JjLCAibWluLXBlcmNlbnQiLCAyMCwgTlVMTCk7CisgICAg
Z19vYmplY3Rfc2V0KHByaXYtPmFwcHNyYywgIm1pbi1wZXJjZW50IiwgMjAsIG51bGxwdHIpOwog
Ci0gICAgZ3N0X2FwcF9zcmNfc2V0X2NhcHMocHJpdi0+YXBwc3JjLCAwKTsKKyAgICBnc3RfYXBw
X3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIG51bGxwdHIpOwogICAgIGdzdF9hcHBfc3JjX3Nl
dF9zaXplKHByaXYtPmFwcHNyYywgLTEpOwogfQogCkBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGlj
IHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAgICAgV2ViS2l0V2Vi
U3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhvYmplY3QpOwogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBwcml2LT5wbGF5ZXIgPSAwOworICAgIHByaXYt
PnBsYXllciA9IG51bGxwdHI7CiAKICAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1Ms
IGRpc3Bvc2UsIChvYmplY3QpKTsKIH0KQEAgLTMzOSw3ICszMzksNyBAQCBzdGF0aWMgdm9pZCB3
ZWJLaXRXZWJTcmNTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJRCwgY29u
c3QgR1ZhbHVlKgogCiAgICAgc3dpdGNoIChwcm9wSUQpIHsKICAgICBjYXNlIFBST1BfTE9DQVRJ
T046Ci0gICAgICAgIGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKHJlaW50ZXJwcmV0X2Nhc3Q8R3N0
VVJJSGFuZGxlcio+KHNyYyksIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSksIDApOworICAgICAg
ICBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaShyZWludGVycHJldF9jYXN0PEdzdFVSSUhhbmRsZXIq
PihzcmMpLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpLCBudWxscHRyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQUk9QX0tFRVBfQUxJVkU6CiAgICAgICAgIHNyYy0+cHJpdi0+a2VlcEFs
aXZlID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CkBAIC00MzMsMTMgKzQzMywxMyBAQCBz
dGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNyYyogc3JjKQogICAgIGlmICgh
d2FzU2Vla2luZykgewogICAgICAgICBwcml2LT5zaXplID0gMDsKICAgICAgICAgcHJpdi0+cmVx
dWVzdGVkT2Zmc2V0ID0gMDsKLSAgICAgICAgcHJpdi0+cGxheWVyID0gMDsKKyAgICAgICAgcHJp
di0+cGxheWVyID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBsb2NrZXIudW5sb2NrKCk7CiAKICAg
ICBpZiAocHJpdi0+YXBwc3JjKSB7Ci0gICAgICAgIGdzdF9hcHBfc3JjX3NldF9jYXBzKHByaXYt
PmFwcHNyYywgMCk7CisgICAgICAgIGdzdF9hcHBfc3JjX3NldF9jYXBzKHByaXYtPmFwcHNyYywg
bnVsbHB0cik7CiAgICAgICAgIGlmICghd2FzU2Vla2luZykKICAgICAgICAgICAgIGdzdF9hcHBf
c3JjX3NldF9zaXplKHByaXYtPmFwcHNyYywgLTEpOwogICAgIH0KQEAgLTYxNSw3ICs2MTUsNyBA
QCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUoR3N0
RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdAogICAgICAgICBpZiAoIXByaXYtPmFwcHNyYykgewog
ICAgICAgICAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKGVsZW1lbnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X21pc3NpbmdfZWxlbWVudF9tZXNzYWdlX25l
dyhlbGVtZW50LCAiYXBwc3JjIikpOwotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3Jj
LCBDT1JFLCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIGFwcHNyYyIpKTsKKyAgICAgICAgICAg
IEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgTUlTU0lOR19QTFVHSU4sIChudWxscHRyKSwg
KCJubyBhcHBzcmMiKSk7CiAgICAgICAgICAgICByZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlM
VVJFOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNjU4LDcgKzY1OCw3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQoR3N0UGFkKiBwYWQsIEdzdE9i
amVjdCogcGFyZW50LCBHc3RRCiAgICAgY2FzZSBHU1RfUVVFUllfRFVSQVRJT046IHsKICAgICAg
ICAgR3N0Rm9ybWF0IGZvcm1hdDsKIAotICAgICAgICBnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24o
cXVlcnksICZmb3JtYXQsIE5VTEwpOworICAgICAgICBnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24o
cXVlcnksICZmb3JtYXQsIG51bGxwdHIpOwogCiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3Jj
LCAiZHVyYXRpb24gcXVlcnkgaW4gZm9ybWF0ICVzIiwgZ3N0X2Zvcm1hdF9nZXRfbmFtZShmb3Jt
YXQpKTsKICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpF
Q1RfR0VUX0xPQ0soc3JjKSk7CkBAIC03MTAsNyArNzEwLDcgQEAgc3RhdGljIEdzdFVSSVR5cGUg
d2ViS2l0V2ViU3JjVXJpR2V0VHlwZShHVHlwZSkKIAogY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJL
aXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHBy
b3RvY29sc1tdID0geyJodHRwIiwgImh0dHBzIiwgImJsb2IiLCAwIH07CisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHByb3RvY29sc1tdID0geyJodHRwIiwgImh0dHBzIiwgImJsb2IiLCBudWxscHRy
IH07CiAgICAgcmV0dXJuIHByb3RvY29sczsKIH0KIApAQCAtOTM2LDcgKzkzNiw3IEBAIHZvaWQg
U3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogICAgIH0gZWxzZQogICAgICAgICBnc3RfYXBwX3NyY19zZXRfc2l6
ZShwcml2LT5hcHBzcmMsIC0xKTsKIAotICAgIGdzdF9hcHBfc3JjX3NldF9jYXBzKHByaXYtPmFw
cHNyYywgMCk7CisgICAgZ3N0X2FwcF9zcmNfc2V0X2NhcHMocHJpdi0+YXBwc3JjLCBudWxscHRy
KTsKIH0KIAogdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQpAQCAtMTAwMyw3ICsxMDAzLDcgQEAgdm9pZCBTdHJlYW1p
bmdDbGllbnQ6OmhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
KQogCiAgICAgR3N0Rmxvd1JldHVybiByZXQgPSBnc3RfYXBwX3NyY19wdXNoX2J1ZmZlcihwcml2
LT5hcHBzcmMsIHByaXYtPmJ1ZmZlci5sZWFrUmVmKCkpOwogICAgIGlmIChyZXQgIT0gR1NUX0ZM
T1dfT0sgJiYgcmV0ICE9IEdTVF9GTE9XX0VPUykKLSAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Io
c3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKKyAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Io
c3JjLCBDT1JFLCBGQUlMRUQsIChudWxscHRyKSwgKG51bGxwdHIpKTsKIH0KIAogdm9pZCBTdHJl
YW1pbmdDbGllbnQ6OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKQEAgLTExODIsNyArMTE4Miw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZUVycm9yCiAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRf
V0VCX1NSQyhtX3NyYyk7CiAKICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkhhdmUgZmFpbHVy
ZTogJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotICAg
IEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIEZBSUxFRCwgKCIlcyIsIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSksICgwKSk7CisgICAgR1NUX0VMRU1F
TlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgRkFJTEVELCAoIiVzIiwgZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSwgKG51bGxwdHIpKTsKICAgICBnc3RfYXBwX3NyY19l
bmRfb2Zfc3RyZWFtKHNyYy0+cHJpdi0+YXBwc3JjKTsKIH0KIApAQCAtMTE5Nyw3ICsxMTk3LDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tlZChSZXNvdXJj
ZUhhbmRsZSopCiAgICAgdXJpLnJlc2V0KGdfc3RyZHVwKHNyYy0+cHJpdi0+b3JpZ2luYWxVUkku
ZGF0YSgpKSk7CiAgICAgbG9ja2VyLnVubG9jaygpOwogCi0gICAgR1NUX0VMRU1FTlRfRVJST1Io
c3JjLCBSRVNPVVJDRSwgT1BFTl9SRUFELCAoIkFjY2VzcyB0byBcIiVzXCIgd2FzIGJsb2NrZWQi
LCB1cmkuZ2V0KCkpLCAoMCkpOworICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0Us
IE9QRU5fUkVBRCwgKCJBY2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgdXJpLmdldCgpKSwg
KG51bGxwdHIpKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6Y2Fu
bm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopCkBAIC0xMjExLDcgKzEyMTEsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxl
KikKICAgICB1cmkucmVzZXQoZ19zdHJkdXAoc3JjLT5wcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkp
KTsKICAgICBsb2NrZXIudW5sb2NrKCk7CiAKLSAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJF
U09VUkNFLCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCB1cmkuZ2V0KCkpLCAoMCkp
OworICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIE9QRU5fUkVBRCwgKCJDYW4n
dCBzaG93IFwiJXNcIiIsIHVyaS5nZXQoKSksIChudWxscHRyKSk7CiB9CiAKICNlbmRpZiAvLyBV
U0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNl
R1N0cmVhbWVyLmNwcAppbmRleCAxMDdkZWRhNTY2YTAyNGZlZTA5OGZkODRiYWY4ZWY4MWU2YjZm
NmQ2Li41MmNhNjY4Njc2YmZkOWUwOTA0YzVkNmRiOWU5NjRiNDhkZTJjMWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1l
ZGlhU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTkz
LDcgKzU5Myw3IEBAIEdzdFVSSVR5cGUgd2ViS2l0TWVkaWFTcmNVcmlHZXRUeXBlKEdUeXBlKQog
CiBjb25zdCBnY2hhciogY29uc3QqIHdlYktpdE1lZGlhU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQog
ewotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsibWVkaWFzb3VyY2VibG9i
IiwgMCB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsibWVkaWFzb3Vy
Y2VibG9iIiwgbnVsbHB0ciB9OwogICAgIHJldHVybiBwcm90b2NvbHM7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302524</attachid>
            <date>2017-02-23 09:58:28 -0800</date>
            <delta_ts>2017-03-06 02:33:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123438-20170223185538.patch</filename>
            <type>text/plain</type>
            <size>46987</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU4MGYxZWNhYjY3OGI1
MzVkMmEzYWE1NTE3M2U0MGI2OWY4ZTJjMy4uY2FkNTNkY2Y4OTQ3N2NiNDM0MTUzM2U4ZjU3ZDJi
ODAwYTU3OTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE3LTAyLTIzICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl0gQWRvcHQgbnVsbHB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFiaWVy
IFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgVG8gYWRhcHQgdGhlIGNvZGUgdG8gdGhlIEMr
KzExIHN0YW5kYXJkLCBhbGwgTlVMTCBvciAwIHBvaW50ZXJzIGhhdmUgYmVlbiBjaGFuZ2VkIHRv
IG51bGxwdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6aGFuZGxlTmV3RGVpbnRlcmxlYXZlUGFkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6cGx1Z0RlaW50ZXJsZWF2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVy
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJHU3Ry
ZWFtZXI6OkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6Y29uZmlndXJlQXVkaW9CaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6c2V0Q2xpZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OmhhbmRsZU5ld0Rl
aW50ZXJsZWF2ZVBhZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfYXVkaW9f
c3JjX2luaXQpOgorICAgICAgICAod2ViS2l0V2ViQXVkaW9TcmNMb29wKToKKyAgICAgICAgKHdl
YktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6c2V0RW5hYmxlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Q
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpuZXdUZXh0U2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NUYWJsZU9mQ29udGVudHMpOgorICAgICAg
ICBSZW1vdmVkIHRoZSB1bnVzZWQgc2Vjb25kIGFyZ3VtZW50IG9uIHByb2Nlc3NUYWJsZU9mQ29u
dGVudHNFbnRyeSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6cHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KToKKyAgICAgICAgUmVtb3Zl
ZCB0aGUgdW51c2VkIHNlY29uZCBhcmd1bWVudCBvbiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9j
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVBdWRpb1NpbmspOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIFJlbW92ZWQg
dGhlIHVudXNlZCBzZWNvbmQgYXJndW1lbnQgb24gcHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5
IGZ1bmN0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6bXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6bm90aWZ5UGxheWVyT2ZNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFN0cmVhbVZvbHVtZUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZGVjb2RlZEZyYW1lQ291
bnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
ZHJvcHBlZEZyYW1lQ291bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENvbWJpbmVyR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKHdlYmtpdF90ZXh0X2NvbWJpbmVyX2luaXQpOgorICAgICAgICAod2Vi
a2l0VGV4dENvbWJpbmVyUGFkRXZlbnQpOgorICAgICAgICAod2Via2l0VGV4dENvbWJpbmVyUmVx
dWVzdE5ld1BhZCk6CisgICAgICAgICh3ZWJraXRUZXh0Q29tYmluZXJOZXcpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dTdHJlYW1lci5jcHA6CisgICAg
ICAgICh3ZWJraXRUZXh0U2lua05ldyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6dGFnc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZkFjdGl2ZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwOgorICAgICAgICAod2Via2l0X3ZpZGVvX3NpbmtfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbik6CisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtO
ZXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lcjo6c2V0U2VsZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9z
cmNfaW5pdCk6CisgICAgICAgICh3ZWJLaXRXZWJTcmNEaXNwb3NlKToKKyAgICAgICAgKHdlYktp
dFdlYlNyY1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYktpdFdlYlNyY1N0b3ApOgorICAgICAg
ICAod2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUpOgorICAgICAgICAod2ViS2l0V2ViU3JjUXVlcnlX
aXRoUGFyZW50KToKKyAgICAgICAgKHdlYktpdFdlYlNyY0dldFByb3RvY29scyk6CisgICAgICAg
IChTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoU3Ry
ZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVjZWl2ZWQpOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQ6OmNhbm5vdFNob3dVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Vi
S2l0TWVkaWFTcmNHZXRQcm90b2NvbHMpOgorCiAyMDE3LTAyLTE1ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIFN5bWJvbC50b1ByaW1pdGl2ZSAvIHZh
bHVlT2Ygb24gTG9jYXRpb24gaW5zdGFuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5jcHAKaW5kZXggNTVmODRkNDMzNjRjYjY0MTc4OTNmNzQzMGVhZTI3M2NiZTViYTJl
YS4uNzU4Mzg5Y2VkODlkZjVmZDdlNGFkNjFiMjE3NTYzNTA1MzJmYmYwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcApAQCAtOTIsOSArOTIsOSBAQCBBdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxs
YmFjayYgY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhdGUiLCBzYW1wbGVSYXRlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJidXMiLCBtX3JlbmRlckJ1cy5nZXQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicHJvdmlkZXIiLCAmbV9jYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJh
bWVzIiwgZnJhbWVzVG9QdWxsLCBOVUxMKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lcyIs
IGZyYW1lc1RvUHVsbCwgbnVsbHB0cikpOwogCi0gICAgR1JlZlB0cjxHc3RFbGVtZW50PiBhdWRp
b1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3NpbmsiLCAwKTsKKyAg
ICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGF1ZGlvU2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgiYXV0b2F1ZGlvc2luayIsIG51bGxwdHIpOwogICAgIG1fYXVkaW9TaW5rQXZhaWxhYmxlID0g
YXVkaW9TaW5rOwogICAgIGlmICghYXVkaW9TaW5rKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBHU3RyZWFtZXIgYXV0b2F1ZGlvc2luayBlbGVtZW50Iik7CkBAIC0xMTQs
OSArMTE0LDkgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgR3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJhdWRpb2NvbnZlcnQiLCAwKTsKLSAgICBHc3RFbGVtZW50KiBhdWRpb1Jlc2FtcGxlID0g
Z3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwgMCk7Ci0gICAgZ3N0X2Jp
bl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCB3ZWJraXRBdWRpb1NyYywgYXVkaW9Db252
ZXJ0LCBhdWRpb1Jlc2FtcGxlLCBhdWRpb1NpbmsuZ2V0KCksIE5VTEwpOworICAgIEdzdEVsZW1l
bnQqIGF1ZGlvQ29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0
IiwgbnVsbHB0cik7CisgICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZSA9IGdzdF9lbGVtZW50
X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIG51bGxwdHIpOworICAgIGdzdF9iaW5fYWRk
X21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwgd2Via2l0QXVkaW9TcmMsIGF1ZGlvQ29udmVydCwg
YXVkaW9SZXNhbXBsZSwgYXVkaW9TaW5rLmdldCgpLCBudWxscHRyKTsKIAogICAgIC8vIExpbmsg
c3JjIHBhZHMgZnJvbSB3ZWJraXRBdWRpb1NyYyB0byBhdWRpb0NvbnZlcnQgISBhdWRpb1Jlc2Ft
cGxlICEgYXV0b2F1ZGlvc2luay4KICAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCh3ZWJr
aXRBdWRpb1NyYywgInNyYyIsIGF1ZGlvQ29udmVydCwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hF
Q0tfTk9USElORyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4
IDkxMjk0OTgxNjBmMWJlM2U2Y2ZlN2YwNDc2NGI0ZDc5ZDQ4ZjhmM2YuLjZjZDhiZDdmODFiZmYy
MjI3ZmUxNGZiY2EwZmJmZDA1NWQwOWM1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJH
U3RyZWFtZXIuY3BwCkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBBdWRpb0ZpbGVSZWFkZXI6Omhh
bmRsZU5ld0RlaW50ZXJsZWF2ZVBhZChHc3RQYWQqIHBhZCkKICAgICAvLyBpbiBhbiBhcHBzaW5r
IHNvIHdlIGNhbiBwdWxsIHRoZSBkYXRhIGZyb20gZWFjaAogICAgIC8vIGNoYW5uZWwuIFBpcGVs
aW5lIGxvb2tzIGxpa2U6CiAgICAgLy8gLi4uIGRlaW50ZXJsZWF2ZSAhIHF1ZXVlICEgYXBwc2lu
ay4KLSAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVl
dWUiLCAwKTsKLSAgICBHc3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtl
KCJhcHBzaW5rIiwgMCk7CisgICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0
b3J5X21ha2UoInF1ZXVlIiwgbnVsbHB0cik7CisgICAgR3N0RWxlbWVudCogc2luayA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBwc2luayIsIG51bGxwdHIpOwogCiAgICAgc3RhdGljIEdz
dEFwcFNpbmtDYWxsYmFja3MgY2FsbGJhY2tzID0gewogICAgICAgICBudWxscHRyLCAvLyBlb3MK
QEAgLTIyNSw5ICsyMjUsOSBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6aGFuZGxlTmV3RGVpbnRl
cmxlYXZlUGFkKEdzdFBhZCogcGFkKQogICAgICAgICB9LAogICAgICAgICB7IG51bGxwdHIgfQog
ICAgIH07Ci0gICAgZ3N0X2FwcF9zaW5rX3NldF9jYWxsYmFja3MoR1NUX0FQUF9TSU5LKHNpbmsp
LCAmY2FsbGJhY2tzLCB0aGlzLCAwKTsKKyAgICBnc3RfYXBwX3Npbmtfc2V0X2NhbGxiYWNrcyhH
U1RfQVBQX1NJTksoc2luayksICZjYWxsYmFja3MsIHRoaXMsIG51bGxwdHIpOwogCi0gICAgZ19v
YmplY3Rfc2V0KHNpbmssICJzeW5jIiwgRkFMU0UsIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChz
aW5rLCAic3luYyIsIEZBTFNFLCBudWxscHRyKTsKIAogICAgIGdzdF9iaW5fYWRkX21hbnkoR1NU
X0JJTihtX3BpcGVsaW5lLmdldCgpKSwgcXVldWUsIHNpbmssIG51bGxwdHIpOwogCkBAIC0yNTYs
MTIgKzI1NiwxMiBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6cGx1Z0RlaW50ZXJsZWF2ZShHc3RQ
YWQqIHBhZCkKICAgICAvLyBBIGRlY29kZWJpbiBwYWQgd2FzIGFkZGVkLCBwbHVnIGluIGEgZGVp
bnRlcmxlYXZlIGVsZW1lbnQgdG8KICAgICAvLyBzZXBhcmF0ZSBlYWNoIHBsYW5hciBjaGFubmVs
LiBTdWIgcGlwZWxpbmUgbG9va3MgbGlrZQogICAgIC8vIC4uLiBkZWNvZGViaW4yICEgYXVkaW9j
b252ZXJ0ICEgYXVkaW9yZXNhbXBsZSAhIGNhcHNmaWx0ZXIgISBkZWludGVybGVhdmUuCi0gICAg
R3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ICA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVk
aW9jb252ZXJ0IiwgMCk7Ci0gICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZSA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOwotICAgIEdzdEVsZW1lbnQqIGNh
cHNGaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImNhcHNmaWx0ZXIiLCAwKTsKKyAg
ICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJh
dWRpb2NvbnZlcnQiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBhdWRpb1Jlc2FtcGxlID0g
Z3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwgbnVsbHB0cik7CisgICAg
R3N0RWxlbWVudCogY2Fwc0ZpbHRlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiY2Fwc2Zp
bHRlciIsIG51bGxwdHIpOwogICAgIG1fZGVJbnRlcmxlYXZlID0gZ3N0X2VsZW1lbnRfZmFjdG9y
eV9tYWtlKCJkZWludGVybGVhdmUiLCAiZGVpbnRlcmxlYXZlIik7CiAKLSAgICBnX29iamVjdF9z
ZXQobV9kZUludGVybGVhdmUuZ2V0KCksICJrZWVwLXBvc2l0aW9ucyIsIFRSVUUsIE5VTEwpOwor
ICAgIGdfb2JqZWN0X3NldChtX2RlSW50ZXJsZWF2ZS5nZXQoKSwgImtlZXAtcG9zaXRpb25zIiwg
VFJVRSwgbnVsbHB0cik7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fZGVJbnRlcmxl
YXZlLmdldCgpLCAicGFkLWFkZGVkIiwgR19DQUxMQkFDSyhkZWludGVybGVhdmVQYWRBZGRlZENh
bGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fZGVJbnRlcmxl
YXZlLmdldCgpLCAibm8tbW9yZS1wYWRzIiwgR19DQUxMQkFDSyhkZWludGVybGVhdmVSZWFkeUNh
bGxiYWNrKSwgdGhpcyk7CiAKQEAgLTMxNiwxOCArMzE2LDE4IEBAIHZvaWQgQXVkaW9GaWxlUmVh
ZGVyOjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKCkKICAgICBHc3RFbGVtZW50KiBzb3VyY2U7
CiAgICAgaWYgKG1fZGF0YSkgewogICAgICAgICBBU1NFUlQobV9kYXRhU2l6ZSk7Ci0gICAgICAg
IHNvdXJjZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZ2lvc3RyZWFtc3JjIiwgMCk7Ci0g
ICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBtZW1vcnlTdHJlYW0gPSBhZG9wdEdSZWYoZ19t
ZW1vcnlfaW5wdXRfc3RyZWFtX25ld19mcm9tX2RhdGEobV9kYXRhLCBtX2RhdGFTaXplLCAwKSk7
Ci0gICAgICAgIGdfb2JqZWN0X3NldChzb3VyY2UsICJzdHJlYW0iLCBtZW1vcnlTdHJlYW0uZ2V0
KCksIE5VTEwpOworICAgICAgICBzb3VyY2UgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImdp
b3N0cmVhbXNyYyIsIG51bGxwdHIpOworICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gbWVt
b3J5U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXdfZnJvbV9kYXRh
KG1fZGF0YSwgbV9kYXRhU2l6ZSwgbnVsbHB0cikpOworICAgICAgICBnX29iamVjdF9zZXQoc291
cmNlLCAic3RyZWFtIiwgbWVtb3J5U3RyZWFtLmdldCgpLCBudWxscHRyKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBzb3VyY2UgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImZpbGVzcmMiLCAw
KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KHNvdXJjZSwgImxvY2F0aW9uIiwgbV9maWxlUGF0aCwg
TlVMTCk7CisgICAgICAgIHNvdXJjZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZmlsZXNy
YyIsIG51bGxwdHIpOworICAgICAgICBnX29iamVjdF9zZXQoc291cmNlLCAibG9jYXRpb24iLCBt
X2ZpbGVQYXRoLCBudWxscHRyKTsKICAgICB9CiAKICAgICBtX2RlY29kZWJpbiA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiZGVjb2RlYmluIiwgImRlY29kZWJpbiIpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3Rfc3dhcHBlZChtX2RlY29kZWJpbi5nZXQoKSwgInBhZC1hZGRlZCIsIEdfQ0FMTEJB
Q0soZGVjb2RlYmluUGFkQWRkZWRDYWxsYmFjayksIHRoaXMpOwogCi0gICAgZ3N0X2Jpbl9hZGRf
bWFueShHU1RfQklOKG1fcGlwZWxpbmUuZ2V0KCkpLCBzb3VyY2UsIG1fZGVjb2RlYmluLmdldCgp
LCBOVUxMKTsKKyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBlbGluZS5nZXQoKSks
IHNvdXJjZSwgbV9kZWNvZGViaW4uZ2V0KCksIG51bGxwdHIpOwogICAgIGdzdF9lbGVtZW50X2xp
bmtfcGFkc19mdWxsKHNvdXJjZSwgInNyYyIsIG1fZGVjb2RlYmluLmdldCgpLCAic2luayIsIEdT
VF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIC8vIENhdGNoIGVycm9ycyBoZXJlIGlt
bWVkaWF0ZWx5LCB0aGVyZSBtaWdodCBub3QgYmUgYW4gZXJyb3IgbWVzc2FnZSBpZiB3ZSdyZSB1
bmx1Y2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCmlu
ZGV4IDE5ZjgyZmI0MGNhMmQ2NDU0NWRlNzNhNmIzODdmYWQ2NWQ3Y2E5NDguLjRkN2Y0MTU0ZGU3
YTMwNjc3ZjNmMDkxOGMzN2RmZGVmMDUzNmE4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lci5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIHZvaWQgY29w
eUdTdHJlYW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChHc3RBZGFwdGVyKiBhZGFwdGVyLCBBdWRp
b0J1cyogYnUKIH0KIAogQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6QXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lcigpCi0gICAgOiBtX2NsaWVudCgwKQorICAgIDogbV9jbGllbnQobnVs
bHB0cikKICAgICAsIG1fZGVpbnRlcmxlYXZlU291cmNlUGFkcygwKQogICAgICwgbV9kZWludGVy
bGVhdmVQYWRBZGRlZEhhbmRsZXJJZCgwKQogICAgICwgbV9kZWludGVybGVhdmVOb01vcmVQYWRz
SGFuZGxlcklkKDApCkBAIC0xMTMsMTMgKzExMywxMyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlk
ZXJHU3RyZWFtZXI6OmNvbmZpZ3VyZUF1ZGlvQmluKEdzdEVsZW1lbnQqIGF1ZGlvQmluLCBHc3RF
bAogICAgIG1fYXVkaW9TaW5rQmluID0gYXVkaW9CaW47CiAKICAgICBHc3RFbGVtZW50KiBhdWRp
b1RlZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgidGVlIiwgImF1ZGlvVGVlIik7Ci0gICAg
R3N0RWxlbWVudCogYXVkaW9RdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUi
LCAwKTsKLSAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIEdzdEVsZW1lbnQqIGF1ZGlvQ29udmVydDIg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIEdzdEVs
ZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvcmVz
YW1wbGUiLCAwKTsKLSAgICBHc3RFbGVtZW50KiBhdWRpb1Jlc2FtcGxlMiA9IGdzdF9lbGVtZW50
X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOworICAgIEdzdEVsZW1lbnQqIGF1ZGlv
UXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgbnVsbHB0cik7CisgICAg
R3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRp
b2NvbnZlcnQiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQyID0gZ3N0
X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb2NvbnZlcnQiLCBudWxscHRyKTsKKyAgICBHc3RF
bGVtZW50KiBhdWRpb1Jlc2FtcGxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jl
c2FtcGxlIiwgbnVsbHB0cik7CisgICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZTIgPSBnc3Rf
ZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvcmVzYW1wbGUiLCBudWxscHRyKTsKICAgICBHc3RF
bGVtZW50KiB2b2x1bWVFbGVtZW50ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ2b2x1bWUi
LCAidm9sdW1lIik7Ci0gICAgR3N0RWxlbWVudCogYXVkaW9TaW5rID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CisgICAgR3N0RWxlbWVudCogYXVkaW9TaW5r
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgbnVsbHB0cik7CiAK
ICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9hdWRpb1NpbmtCaW4uZ2V0KCkpLCBhdWRp
b1RlZSwgYXVkaW9RdWV1ZSwgYXVkaW9Db252ZXJ0LCBhdWRpb1Jlc2FtcGxlLCB2b2x1bWVFbGVt
ZW50LCBhdWRpb0NvbnZlcnQyLCBhdWRpb1Jlc2FtcGxlMiwgYXVkaW9TaW5rLCBudWxscHRyKTsK
IApAQCAtMjExLDEwICsyMTEsMTAgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVy
OjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogICAgIC8vIFRo
ZSBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgZWxlbWVudHMgYXJlIG5lZWRlZCB0bwog
ICAgIC8vIGVuc3VyZSBkZWludGVybGVhdmUgYW5kIHRoZSBzaW5rcyBkb3duc3RyZWFtIHJlY2Vp
dmUgYnVmZmVycyBpbgogICAgIC8vIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHRoZSBjYXBzZmls
dGVyLgotICAgIEdzdEVsZW1lbnQqIGF1ZGlvUXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21h
a2UoInF1ZXVlIiwgMCk7Ci0gICAgR3N0RWxlbWVudCogYXVkaW9Db252ZXJ0ICA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7Ci0gICAgR3N0RWxlbWVudCogYXVk
aW9SZXNhbXBsZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDAp
OwotICAgIEdzdEVsZW1lbnQqIGNhcHNGaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImNhcHNmaWx0ZXIiLCAwKTsKKyAgICBHc3RFbGVtZW50KiBhdWRpb1F1ZXVlID0gZ3N0X2VsZW1l
bnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIG51bGxwdHIpOworICAgIEdzdEVsZW1lbnQqIGF1ZGlv
Q29udmVydCAgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIG51bGxw
dHIpOworICAgIEdzdEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImF1ZGlvcmVzYW1wbGUiLCBudWxscHRyKTsKKyAgICBHc3RFbGVtZW50KiBjYXBzRmls
dGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgbnVsbHB0cik7CiAg
ICAgR3N0RWxlbWVudCogZGVJbnRlcmxlYXZlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJk
ZWludGVybGVhdmUiLCAiZGVpbnRlcmxlYXZlIik7CiAKICAgICBnX29iamVjdF9zZXQoZGVJbnRl
cmxlYXZlLCAia2VlcC1wb3NpdGlvbnMiLCBUUlVFLCBudWxscHRyKTsKQEAgLTI1Nyw4ICsyNTcs
OCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OmhhbmRsZU5ld0RlaW50ZXJs
ZWF2ZVBhZChHc3RQYWQqIHBhZCkKIAogICAgIGlmIChtX2RlaW50ZXJsZWF2ZVNvdXJjZVBhZHMg
PiAyKSB7CiAgICAgICAgIGdfd2FybmluZygiVGhlIEF1ZGlvU291cmNlUHJvdmlkZXIgc3VwcG9y
dHMgb25seSBtb25vIGFuZCBzdGVyZW8gYXVkaW8uIFNpbGVuY2luZyBvdXQgdGhpcyBuZXcgY2hh
bm5lbC4iKTsKLSAgICAgICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoInF1ZXVlIiwgMCk7Ci0gICAgICAgIEdzdEVsZW1lbnQqIHNpbmsgPSBnc3RfZWxlbWVu
dF9mYWN0b3J5X21ha2UoImZha2VzaW5rIiwgMCk7CisgICAgICAgIEdzdEVsZW1lbnQqIHF1ZXVl
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIG51bGxwdHIpOworICAgICAgICBH
c3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJmYWtlc2luayIsIG51
bGxwdHIpOwogICAgICAgICBnX29iamVjdF9zZXQoc2luaywgImFzeW5jIiwgRkFMU0UsIG51bGxw
dHIpOwogICAgICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9hdWRpb1NpbmtCaW4uZ2V0
KCkpLCBxdWV1ZSwgc2luaywgbnVsbHB0cik7CiAKQEAgLTI3NywxNCArMjc3LDE0IEBAIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6aGFuZGxlTmV3RGVpbnRlcmxlYXZlUGFkKEdz
dFBhZCogcGFkKQogICAgIC8vIGluIGFuIGFwcHNpbmsgc28gd2UgY2FuIHB1bGwgdGhlIGRhdGEg
ZnJvbSBlYWNoCiAgICAgLy8gY2hhbm5lbC4gUGlwZWxpbmUgbG9va3MgbGlrZToKICAgICAvLyAu
Li4gZGVpbnRlcmxlYXZlICEgcXVldWUgISBhcHBzaW5rLgotICAgIEdzdEVsZW1lbnQqIHF1ZXVl
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIDApOwotICAgIEdzdEVsZW1lbnQq
IHNpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNpbmsiLCAwKTsKKyAgICBHc3RF
bGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCBudWxscHRy
KTsKKyAgICBHc3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhcHBz
aW5rIiwgbnVsbHB0cik7CiAKICAgICBHc3RBcHBTaW5rQ2FsbGJhY2tzIGNhbGxiYWNrczsKLSAg
ICBjYWxsYmFja3MuZW9zID0gMDsKLSAgICBjYWxsYmFja3MubmV3X3ByZXJvbGwgPSAwOworICAg
IGNhbGxiYWNrcy5lb3MgPSBudWxscHRyOworICAgIGNhbGxiYWNrcy5uZXdfcHJlcm9sbCA9IG51
bGxwdHI7CiAgICAgY2FsbGJhY2tzLm5ld19zYW1wbGUgPSBvbkFwcHNpbmtOZXdCdWZmZXJDYWxs
YmFjazsKLSAgICBnc3RfYXBwX3Npbmtfc2V0X2NhbGxiYWNrcyhHU1RfQVBQX1NJTksoc2luayks
ICZjYWxsYmFja3MsIHRoaXMsIDApOworICAgIGdzdF9hcHBfc2lua19zZXRfY2FsbGJhY2tzKEdT
VF9BUFBfU0lOSyhzaW5rKSwgJmNhbGxiYWNrcywgdGhpcywgbnVsbHB0cik7CiAKICAgICBnX29i
amVjdF9zZXQoc2luaywgImFzeW5jIiwgRkFMU0UsIG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA5OTVlZjk3MWIwYTljY2Ux
NmNmNzk0MTVkN2IyZWI1MjlhODk5MDg4Li40NDVjOTc5M2M5ZGVlNWY5OWZjMzJjNjY0YWI5ZDUx
NmQ1MTk3Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTE4NCwxNCArMTg0LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfYXVkaW9f
c3JjX2luaXQoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICBzcmMtPnByaXYgPSBwcml2Owog
ICAgIG5ldyAocHJpdikgV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlKCk7CiAKLSAgICBwcml2
LT5zb3VyY2VQYWQgPSB3ZWJraXRHc3RHaG9zdFBhZEZyb21TdGF0aWNUZW1wbGF0ZSgmc3JjVGVt
cGxhdGUsICJzcmMiLCAwKTsKKyAgICBwcml2LT5zb3VyY2VQYWQgPSB3ZWJraXRHc3RHaG9zdFBh
ZEZyb21TdGF0aWNUZW1wbGF0ZSgmc3JjVGVtcGxhdGUsICJzcmMiLCBudWxscHRyKTsKICAgICBn
c3RfZWxlbWVudF9hZGRfcGFkKEdTVF9FTEVNRU5UKHNyYyksIHByaXYtPnNvdXJjZVBhZCk7CiAK
LSAgICBwcml2LT5wcm92aWRlciA9IDA7Ci0gICAgcHJpdi0+YnVzID0gMDsKKyAgICBwcml2LT5w
cm92aWRlciA9IG51bGxwdHI7CisgICAgcHJpdi0+YnVzID0gbnVsbHB0cjsKIAogICAgIGdfcmVj
X211dGV4X2luaXQoJnByaXYtPm11dGV4KTsKLSAgICBwcml2LT50YXNrID0gYWRvcHRHUmVmKGdz
dF90YXNrX25ldyhyZWludGVycHJldF9jYXN0PEdzdFRhc2tGdW5jdGlvbj4od2ViS2l0V2ViQXVk
aW9TcmNMb29wKSwgc3JjLCAwKSk7CisgICAgcHJpdi0+dGFzayA9IGFkb3B0R1JlZihnc3RfdGFz
a19uZXcocmVpbnRlcnByZXRfY2FzdDxHc3RUYXNrRnVuY3Rpb24+KHdlYktpdFdlYkF1ZGlvU3Jj
TG9vcCksIHNyYywgbnVsbHB0cikpOwogCiAgICAgZ3N0X3Rhc2tfc2V0X2xvY2socHJpdi0+dGFz
ay5nZXQoKSwgJnByaXYtPm11dGV4KTsKIH0KQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICB9CiAK
ICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQuCi0g
ICAgcHJpdi0+cHJvdmlkZXItPnJlbmRlcigwLCBwcml2LT5idXMsIHByaXYtPmZyYW1lc1RvUHVs
bCk7CisgICAgcHJpdi0+cHJvdmlkZXItPnJlbmRlcihudWxscHRyLCBwcml2LT5idXMsIHByaXYt
PmZyYW1lc1RvUHVsbCk7CiAKICAgICBBU1NFUlQoY2hhbm5lbEJ1ZmZlckxpc3Quc2l6ZSgpID09
IHByaXYtPnNvdXJjZXMuc2l6ZSgpKTsKICAgICBib29sIGZhaWxlZCA9IGZhbHNlOwpAQCAtMzc4
LDcgKzM3OCw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJBdWRpb1Ny
Y0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzCiAgICAgY2FzZSBHU1RfU1RBVEVf
Q0hBTkdFX05VTExfVE9fUkVBRFk6CiAgICAgICAgIGlmICghc3JjLT5wcml2LT5pbnRlcmxlYXZl
KSB7CiAgICAgICAgICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoZWxlbWVudCwgZ3N0X21p
c3NpbmdfZWxlbWVudF9tZXNzYWdlX25ldyhlbGVtZW50LCAiaW50ZXJsZWF2ZSIpKTsKLSAgICAg
ICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgTUlTU0lOR19QTFVHSU4sICgwKSwg
KCJubyBpbnRlcmxlYXZlIikpOworICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBD
T1JFLCBNSVNTSU5HX1BMVUdJTiwgKG51bGxwdHIpLCAoIm5vIGludGVybGVhdmUiKSk7CiAgICAg
ICAgICAgICByZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOwogICAgICAgICB9CiAgICAg
ICAgIHNyYy0+cHJpdi0+bnVtYmVyT2ZTYW1wbGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDZlMWZjNDY2NmMwNjNhYWNmNTkzOTI1
M2YwZTlhMTA3ZDZiOTYyN2IuLmZjMmQ2NzQ3MTlhMzU2MjljY2FiYzNlYzdmMDZkMTA5YzFjMGIx
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtNTUsNyArNTUsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpzZXRFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKICAgICBBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChlbmFi
bGVkKTsKIAogICAgIGlmIChlbmFibGVkICYmIG1fcGxheWJpbikKLSAgICAgICAgZ19vYmplY3Rf
c2V0KG1fcGxheWJpbi5nZXQoKSwgImN1cnJlbnQtYXVkaW8iLCBtX2luZGV4LCBOVUxMKTsKKyAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGxheWJpbi5nZXQoKSwgImN1cnJlbnQtYXVkaW8iLCBtX2lu
ZGV4LCBudWxscHRyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyVXRpbGl0aWVzLmNwcAppbmRleCA5YzQ5ZmQ4ZTUzZjM3ODc4ZjVlMTBhYjEyNzliMDcw
NDg0Zjc1YmM0Li43NzA2NzUyNjZiZWVmMTE2NmY3YzhkMDMxODMyZjkxZmFjMzFhMmZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIGJvb2wg
aW5pdGlhbGl6ZUdTdHJlYW1lcigpCiAKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7
CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwYXNzIHRoZSBhcmd1bWVudHMgZnJv
bSB0aGUgY29tbWFuZCBsaW5lLgotICAgIGJvb2wgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9j
aGVjaygwLCAwLCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGJvb2wgZ3N0SW5pdGlhbGl6ZWQgPSBn
c3RfaW5pdF9jaGVjayhudWxscHRyLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkpOwogICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoZ3N0SW5pdGlhbGl6ZWQsICJHU3RyZWFtZXIgaW5pdGlhbGl6YXRp
b24gZmFpbGVkOiAlcyIsIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiAidW5rbm93biBlcnJvciBv
Y2N1cnJlZCIpOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBVU0UoR1NUUkVBTUVSX01Q
RUdUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
aW5kZXggY2FkMTMxMTM5ZDVkYWIxNGNhNzJlODU1ZDA2YjM3MjEzMDVlMTc2MS4uNjNmNjMyMjNj
ZjMzZmUxNDFkZDBiMjc5MzU3Y2Q2MjU2ZGQzMTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHT2JqZWN0
KiBvYmplY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGNoYXIqIHJvbGUgPSBtX3Bs
YXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJJc1ZpZGVvKCkgPyAidmlkZW8iIDogIm11c2ljIjsK
LSAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJzdHJlYW0t
cHJvcGVydGllcyIsICJtZWRpYS5yb2xlIiwgR19UWVBFX1NUUklORywgcm9sZSwgTlVMTCk7Ci0g
ICAgZ19vYmplY3Rfc2V0KG9iamVjdCwgInN0cmVhbS1wcm9wZXJ0aWVzIiwgc3RydWN0dXJlLCBO
VUxMKTsKKyAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJz
dHJlYW0tcHJvcGVydGllcyIsICJtZWRpYS5yb2xlIiwgR19UWVBFX1NUUklORywgcm9sZSwgbnVs
bHB0cik7CisgICAgZ19vYmplY3Rfc2V0KG9iamVjdCwgInN0cmVhbS1wcm9wZXJ0aWVzIiwgc3Ry
dWN0dXJlLCBudWxscHRyKTsKICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoc3RydWN0dXJlKTsKICAg
ICBHVW5pcXVlUHRyPGdjaGFyPiBlbGVtZW50TmFtZShnc3RfZWxlbWVudF9nZXRfbmFtZShHU1Rf
RUxFTUVOVChvYmplY3QpKSk7CiAgICAgR1NUX0RFQlVHKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBh
dCAlcyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpcwogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQogICAgICAgICBy
ZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KHBsYXllcik7IH0sCi0gICAgICAgICAgICBn
ZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3Rl
bSk7CisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIGJvb2wgaW5pdGlh
bGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQpAQCAtMTIwLDcgKzEyMCw3
IEBAIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQog
ICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IHNyY0ZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0
X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3ZWJraXR3ZWJzcmMiKSk7CiAgICAgaWYgKCFzcmNGYWN0
b3J5KSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9tZWRpYV9wbGF5
ZXJfZGVidWcsICJ3ZWJraXRtZWRpYXBsYXllciIsIDAsICJXZWJLaXQgbWVkaWEgcGxheWVyIik7
Ci0gICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFO
S19QUklNQVJZICsgMTAwLCBXRUJLSVRfVFlQRV9XRUJfU1JDKTsKKyAgICAgICAgZ3N0X2VsZW1l
bnRfcmVnaXN0ZXIobnVsbHB0ciwgIndlYmtpdHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAx
MDAsIFdFQktJVF9UWVBFX1dFQl9TUkMpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAt
MTUzLDEwICsxNTMsMTAgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fc2Vla2luZyhm
YWxzZSkKICAgICAsIG1fc2Vla0lzUGVuZGluZyhmYWxzZSkKICAgICAsIG1fc2Vla1RpbWUoMCkK
LSAgICAsIG1fc291cmNlKDApCisgICAgLCBtX3NvdXJjZShudWxscHRyKQogICAgICwgbV92b2x1
bWVBbmRNdXRlSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX21lZGlhTG9jYXRpb25zKDApCisgICAgLCBtX21lZGlhTG9jYXRpb25zKG51bGxw
dHIpCiAgICAgLCBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXgoMCkKICAgICAsIG1fcGxheWJh
Y2tSYXRlUGF1c2UoZmFsc2UpCiAgICAgLCBtX3RpbWVPZk92ZXJsYXBwaW5nU2VlaygtMSkKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIoKQogCiAgICAgaWYgKG1fbWVkaWFMb2NhdGlvbnMpIHsKICAgICAg
ICAgZ3N0X3N0cnVjdHVyZV9mcmVlKG1fbWVkaWFMb2NhdGlvbnMpOwotICAgICAgICBtX21lZGlh
TG9jYXRpb25zID0gMDsKKyAgICAgICAgbV9tZWRpYUxvY2F0aW9ucyA9IG51bGxwdHI7CiAgICAg
fQogCiAgICAgaWYgKFdFQktJVF9JU19XRUJfU1JDKG1fc291cmNlLmdldCgpKSAmJiBHU1RfT0JK
RUNUX1BBUkVOVChtX3NvdXJjZS5nZXQoKSkpCkBAIC04MDAsNyArODAwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5ld1RleHRTYW1wbGUoKQogICAgICAgICBnc3RfcGFk
X2dldF9zdGlja3lfZXZlbnQobV90ZXh0QXBwU2lua1BhZC5nZXQoKSwgR1NUX0VWRU5UX1NUUkVB
TV9TVEFSVCwgMCkpOwogCiAgICAgR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZTsKLSAgICBnX3Np
Z25hbF9lbWl0X2J5X25hbWUobV90ZXh0QXBwU2luay5nZXQoKSwgInB1bGwtc2FtcGxlIiwgJnNh
bXBsZS5vdXRQdHIoKSwgTlVMTCk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fdGV4dEFw
cFNpbmsuZ2V0KCksICJwdWxsLXNhbXBsZSIsICZzYW1wbGUub3V0UHRyKCksIG51bGxwdHIpOwog
ICAgIEFTU0VSVChzYW1wbGUpOwogCiAgICAgaWYgKHN0cmVhbVN0YXJ0RXZlbnQpIHsKQEAgLTk5
MCw3ICs5OTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVz
c2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogCiAgICAgICAgIC8vIENvbnN0cnVjdCBhIGZpbGVu
YW1lIGZvciB0aGUgZ3JhcGh2aXogZG90IGZpbGUgb3V0cHV0LgogICAgICAgICBHc3RTdGF0ZSBu
ZXdTdGF0ZTsKLSAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZChtZXNzYWdl
LCAmY3VycmVudFN0YXRlLCAmbmV3U3RhdGUsIDApOworICAgICAgICBnc3RfbWVzc2FnZV9wYXJz
ZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdTdGF0ZSwgbnVsbHB0
cik7CiAgICAgICAgIENTdHJpbmcgZG90RmlsZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgid2Via2l0
LXZpZGVvLiVzXyVzIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwg
Z3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUobmV3U3RhdGUpKS51dGY4KCk7CiAgICAgICAgIEdT
VF9ERUJVR19CSU5fVE9fRE9UX0ZJTEVfV0lUSF9UUyhHU1RfQklOKG1fcGlwZWxpbmUuZ2V0KCkp
LCBHU1RfREVCVUdfR1JBUEhfU0hPV19BTEwsIGRvdEZpbGVOYW1lLmRhdGEoKSk7CiAKQEAgLTEx
NzcsMTIgKzExNzcsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nl
c3NUYWJsZU9mQ29udGVudHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICBBU1NFUlQodG9jKTsK
IAogICAgIGZvciAoR0xpc3QqIGkgPSBnc3RfdG9jX2dldF9lbnRyaWVzKHRvYy5nZXQoKSk7IGk7
IGkgPSBpLT5uZXh0KQotICAgICAgICBwcm9jZXNzVGFibGVPZkNvbnRlbnRzRW50cnkoc3RhdGlj
X2Nhc3Q8R3N0VG9jRW50cnkqPihpLT5kYXRhKSwgMCk7CisgICAgICAgIHByb2Nlc3NUYWJsZU9m
Q29udGVudHNFbnRyeShzdGF0aWNfY2FzdDxHc3RUb2NFbnRyeSo+KGktPmRhdGEpKTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NUYWJsZU9mQ29udGVudHNF
bnRyeShHc3RUb2NFbnRyeSogZW50cnksIEdzdFRvY0VudHJ5KiBwYXJlbnQpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KEdzdFRv
Y0VudHJ5KiBlbnRyeSkKIHsKLSAgICBVTlVTRURfUEFSQU0ocGFyZW50KTsKICAgICBBU1NFUlQo
ZW50cnkpOwogCiAgICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWUgPSBHZW5lcmljQ3VlRGF0
YTo6Y3JlYXRlKCk7CkBAIC0xMTk2LDcgKzExOTUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6cHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KEdzdFRvY0VudHJ5KiBlbnRy
eQogCiAgICAgR3N0VGFnTGlzdCogdGFncyA9IGdzdF90b2NfZW50cnlfZ2V0X3RhZ3MoZW50cnkp
OwogICAgIGlmICh0YWdzKSB7Ci0gICAgICAgIGdjaGFyKiB0aXRsZSA9ICAwOworICAgICAgICBn
Y2hhciogdGl0bGUgPSAgbnVsbHB0cjsKICAgICAgICAgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmco
dGFncywgR1NUX1RBR19USVRMRSwgJnRpdGxlKTsKICAgICAgICAgaWYgKHRpdGxlKSB7CiAgICAg
ICAgICAgICBjdWUtPnNldENvbnRlbnQodGl0bGUpOwpAQCAtMTIwNyw3ICsxMjA2LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NUYWJsZU9mQ29udGVudHNFbnRy
eShHc3RUb2NFbnRyeSogZW50cnkKICAgICBtX2NoYXB0ZXJzVHJhY2stPmFkZEdlbmVyaWNDdWUo
Y3VlLnJlbGVhc2UoKSk7CiAKICAgICBmb3IgKEdMaXN0KiBpID0gZ3N0X3RvY19lbnRyeV9nZXRf
c3ViX2VudHJpZXMoZW50cnkpOyBpOyBpID0gaS0+bmV4dCkKLSAgICAgICAgcHJvY2Vzc1RhYmxl
T2ZDb250ZW50c0VudHJ5KHN0YXRpY19jYXN0PEdzdFRvY0VudHJ5Kj4oaS0+ZGF0YSksIGVudHJ5
KTsKKyAgICAgICAgcHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KHN0YXRpY19jYXN0PEdzdFRv
Y0VudHJ5Kj4oaS0+ZGF0YSkpOwogfQogI2VuZGlmCiAKQEAgLTEyMjMsNyArMTIyMiw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZCgpCiAgICAgZ2lu
dDY0IHN0YXJ0LCBzdG9wOwogICAgIGdkb3VibGUgZmlsbFN0YXR1cyA9IDEwMC4wOwogCi0gICAg
Z3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZShxdWVyeSwgMCwgJnN0YXJ0LCAmc3RvcCwg
MCk7CisgICAgZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZShxdWVyeSwgbnVsbHB0ciwg
JnN0YXJ0LCAmc3RvcCwgbnVsbHB0cik7CiAgICAgZ3N0X3F1ZXJ5X3VucmVmKHF1ZXJ5KTsKIAog
ICAgIGlmIChzdG9wICE9IC0xKQpAQCAtMTY1OCw3ICsxNjU3LDcgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBjb25zdCBHVmFsdWUqIGxvY2F0aW9ucyA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3Zh
bHVlKG1fbWVkaWFMb2NhdGlvbnMsICJsb2NhdGlvbnMiKTsKLSAgICBjb25zdCBnY2hhciogbmV3
TG9jYXRpb24gPSAwOworICAgIGNvbnN0IGdjaGFyKiBuZXdMb2NhdGlvbiA9IG51bGxwdHI7CiAK
ICAgICBpZiAoIWxvY2F0aW9ucykgewogICAgICAgICAvLyBGYWxsYmFjayBvbiBuZXctbG9jYXRp
b24gc3RyaW5nLgpAQCAtMTY2OSw3ICsxNjY4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogCiAgICAgaWYgKCFuZXdMb2NhdGlvbikgewog
ICAgICAgICBpZiAobV9tZWRpYUxvY2F0aW9uQ3VycmVudEluZGV4IDwgMCkgewotICAgICAgICAg
ICAgbV9tZWRpYUxvY2F0aW9ucyA9IDA7CisgICAgICAgICAgICBtX21lZGlhTG9jYXRpb25zID0g
bnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC0xOTc4
LDcgKzE5NzcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UHJlbG9h
ZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQogCiBHc3RFbGVtZW50KiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUF1ZGlvU2luaygpCiB7Ci0gICAgbV9hdXRvQXVkaW9T
aW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CisgICAg
bV9hdXRvQXVkaW9TaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5r
IiwgbnVsbHB0cik7CiAgICAgaWYgKCFtX2F1dG9BdWRpb1NpbmspIHsKICAgICAgICAgR1NUX1dB
Uk5JTkcoIkdTdHJlYW1lcidzIGF1dG9hdWRpb3Npbmsgbm90IGZvdW5kLiBQbGVhc2UgY2hlY2sg
eW91ciBnc3QtcGx1Z2lucy1nb29kIGluc3RhbGxhdGlvbiIpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTIxMDIsNyArMjEwMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICAvLyBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9t
ZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTc0OCBmb3IKICAgICAvLyB0aGUgcmVhc29uIGZvciB1
c2luZyA+PSAxLjQuMiBpbnN0ZWFkIG9mID49IDEuNC4wLgogICAgIGlmIChtX3ByZXNlcnZlc1Bp
dGNoICYmIHdlYmtpdEdzdENoZWNrVmVyc2lvbigxLCA0LCAyKSkgewotICAgICAgICBHc3RFbGVt
ZW50KiBzY2FsZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgic2NhbGV0ZW1wbyIsIDApOwor
ICAgICAgICBHc3RFbGVtZW50KiBzY2FsZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgic2Nh
bGV0ZW1wbyIsIG51bGxwdHIpOwogCiAgICAgICAgIGlmICghc2NhbGUpCiAgICAgICAgICAgICBH
U1RfV0FSTklORygiRmFpbGVkIHRvIGNyZWF0ZSBzY2FsZXRlbXBvIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYWVhNmNlMWMyMjE2Y2U1Yzlh
MTcxMzMwYjM1MzgwYmZjNTk0MTIxZi4uMjUyMmU4M2FhYTYxZGM5MzUxYzdlZDg3YzRkYWQzOGJm
ODY3ZjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtMTYxLDcgKzE2MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgdm9pZCBwcm9jZXNzVGFibGVPZkNvbnRlbnRzKEdzdE1lc3NhZ2UqKTsKLSAg
ICB2b2lkIHByb2Nlc3NUYWJsZU9mQ29udGVudHNFbnRyeShHc3RUb2NFbnRyeSosIEdzdFRvY0Vu
dHJ5KiBwYXJlbnQpOworICAgIHZvaWQgcHJvY2Vzc1RhYmxlT2ZDb250ZW50c0VudHJ5KEdzdFRv
Y0VudHJ5Kik7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgZG9TZWVrKGdpbnQ2NCBwb3NpdGlv
biwgZmxvYXQgcmF0ZSwgR3N0U2Vla0ZsYWdzIHNlZWtUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlUGxheWJhY2tSYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYTdlZGY4M2ZhNTg3MGQ2N2EwMjJjMWY3NDhj
ZmE4NTUxYTM5NzgyMS4uMTgxZGZlYTg2ZjA4NmMxZDZhMDU5NGNmOWM4YTBhM2NlNjAxYjFjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHByaXZhdGU6CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIq
IHBsYXllcikKICAgICA6IG1fcGxheWVyKHBsYXllcikKLSAgICAsIG1fZnBzU2luaygwKQorICAg
ICwgbV9mcHNTaW5rKG51bGxwdHIpCiAgICAgLCBtX3JlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6Okhh
dmVOb3RoaW5nKQogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQogI2lm
IFVTRShHU1RSRUFNRVJfR0wpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkK
QEAgLTIwOSw3ICsyMDksNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogI2VuZGlmCiAgICAg
LCBtX3VzaW5nRmFsbGJhY2tWaWRlb1NpbmsoZmFsc2UpCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCi0gICAgLCBtX2NkbVNlc3Npb24oMCkKKyAgICAsIG1fY2RtU2Vzc2lvbihu
dWxscHRyKQogI2VuZGlmCiB7CiAgICAgZ19tdXRleF9pbml0KCZtX3NhbXBsZU11dGV4KTsKQEAg
LTU4NCw3ICs1ODQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiAgICAgaWYgKCFtX3ZvbHVtZUVsZW1lbnQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJtdXRlIiwg
bXV0ZWQsIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJt
dXRlIiwgbXV0ZWQsIG51bGxwdHIpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6Om11dGVkKCkgY29uc3QKQEAgLTU5Myw3ICs1OTMsNyBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgYm9vbCBtdXRlZDsKLSAgICBnX29iamVjdF9nZXQobV92b2x1bWVFbGVtZW50
LmdldCgpLCAibXV0ZSIsICZtdXRlZCwgTlVMTCk7CisgICAgZ19vYmplY3RfZ2V0KG1fdm9sdW1l
RWxlbWVudC5nZXQoKSwgIm11dGUiLCAmbXV0ZWQsIG51bGxwdHIpOwogICAgIHJldHVybiBtdXRl
ZDsKIH0KIApAQCAtNjAzLDcgKzYwMyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6bm90aWZ5UGxheWVyT2ZNdXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZ2Jv
b2xlYW4gbXV0ZWQ7Ci0gICAgZ19vYmplY3RfZ2V0KG1fdm9sdW1lRWxlbWVudC5nZXQoKSwgIm11
dGUiLCAmbXV0ZWQsIE5VTEwpOworICAgIGdfb2JqZWN0X2dldChtX3ZvbHVtZUVsZW1lbnQuZ2V0
KCksICJtdXRlIiwgJm11dGVkLCBudWxscHRyKTsKICAgICBtX3BsYXllci0+bXV0ZUNoYW5nZWQo
c3RhdGljX2Nhc3Q8Ym9vbD4obXV0ZWQpKTsKIH0KIApAQCAtMTE2MCwxMiArMTE2MCwxMiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFN0cmVhbVZvbHVtZUVsZW1l
bnQoR3N0U3RyZWFtVm9sdW1lKiB2bwogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTg5NzQgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgaWYgKCFtX3Bs
YXllci0+cGxhdGZvcm1Wb2x1bWVDb25maWd1cmF0aW9uUmVxdWlyZWQoKSkgewogICAgICAgICBH
U1RfREVCVUcoIlNldHRpbmcgc3RyZWFtIHZvbHVtZSB0byAlZiIsIG1fcGxheWVyLT52b2x1bWUo
KSk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksICJ2b2x1bWUi
LCBtX3BsYXllci0+dm9sdW1lKCksIE5VTEwpOworICAgICAgICBnX29iamVjdF9zZXQobV92b2x1
bWVFbGVtZW50LmdldCgpLCAidm9sdW1lIiwgbV9wbGF5ZXItPnZvbHVtZSgpLCBudWxscHRyKTsK
ICAgICB9IGVsc2UKICAgICAgICAgR1NUX0RFQlVHKCJOb3Qgc2V0dGluZyBzdHJlYW0gdm9sdW1l
LCB0cnVzdGluZyBzeXN0ZW0gb25lIik7CiAKICAgICBHU1RfREVCVUcoIlNldHRpbmcgc3RyZWFt
IG11dGVkICVkIiwgIG1fcGxheWVyLT5tdXRlZCgpKTsKLSAgICBnX29iamVjdF9zZXQobV92b2x1
bWVFbGVtZW50LmdldCgpLCAibXV0ZSIsIG1fcGxheWVyLT5tdXRlZCgpLCBOVUxMKTsKKyAgICBn
X29iamVjdF9zZXQobV92b2x1bWVFbGVtZW50LmdldCgpLCAibXV0ZSIsIG1fcGxheWVyLT5tdXRl
ZCgpLCBudWxscHRyKTsKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3ZvbHVtZUVs
ZW1lbnQuZ2V0KCksICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FMTEJBQ0sodm9sdW1lQ2hhbmdlZENh
bGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdm9sdW1lRWxl
bWVudC5nZXQoKSwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobXV0ZUNoYW5nZWRDYWxsYmFj
ayksIHRoaXMpOwpAQCAtMTE3NSw3ICsxMTc1LDcgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6ZGVjb2RlZEZyYW1lQ291bnQoKSBjb25zdAogewogICAgIGd1aW50
NjQgZGVjb2RlZEZyYW1lcyA9IDA7CiAgICAgaWYgKG1fZnBzU2luaykKLSAgICAgICAgZ19vYmpl
Y3RfZ2V0KG1fZnBzU2luay5nZXQoKSwgImZyYW1lcy1yZW5kZXJlZCIsICZkZWNvZGVkRnJhbWVz
LCBOVUxMKTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fZnBzU2luay5nZXQoKSwgImZyYW1lcy1y
ZW5kZXJlZCIsICZkZWNvZGVkRnJhbWVzLCBudWxscHRyKTsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlY29kZWRGcmFtZXMpOwogfQogCkBAIC0xMTgzLDcgKzExODMsNyBAQCB1
bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpkcm9wcGVkRnJhbWVDb3Vu
dCgpIGNvbnN0CiB7CiAgICAgZ3VpbnQ2NCBmcmFtZXNEcm9wcGVkID0gMDsKICAgICBpZiAobV9m
cHNTaW5rKQotICAgICAgICBnX29iamVjdF9nZXQobV9mcHNTaW5rLmdldCgpLCAiZnJhbWVzLWRy
b3BwZWQiLCAmZnJhbWVzRHJvcHBlZCwgTlVMTCk7CisgICAgICAgIGdfb2JqZWN0X2dldChtX2Zw
c1NpbmsuZ2V0KCksICJmcmFtZXMtZHJvcHBlZCIsICZmcmFtZXNEcm9wcGVkLCBudWxscHRyKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZyYW1lc0Ryb3BwZWQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCmlu
ZGV4IGVlNTY4Y2JmMWU4ZWU5YzQ4MDU5MTRmMzFiOGU2MzI2ZGMyOWZkNmQuLjhlMzczNmM4Yjcz
NmMyOTA2ZWU0MTg0MTg5OWQxYWYwMDc1Y2Q5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJP
d3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCkBAIC0yODYsNyArMjg2LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmUKICAgICBpZiAoaW5pdGlhbGl6ZUdTdHJlYW1lckFuZEdTdHJl
YW1lckRlYnVnZ2luZygpKSB7CiAgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxh
eWVyKSB7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJPd3I+KHBsYXllcik7Ci0gICAgICAgIH0sIGdldFN1cHBvcnRlZFR5cGVz
LCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICB9LCBnZXRTdXBwb3J0ZWRUeXBl
cywgc3VwcG9ydHNUeXBlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lckdTdHJlYW1lci5jcHAKaW5kZXggMzM5
Y2EzN2ViOGQ5OGQ5NTUxYzk3ZTViMDhiYTljNDNlYjM2NTNjYS4uMDJkZTFlOGJkN2E3ZmMzNWZj
MDhlODNkZTAzYjliN2E1YWQwNTZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lckdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lckdTdHJl
YW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFRleHRDb21i
aW5lclBhZEV2ZW50KEdzdFBhZCosIEdzdE9iamVjdCogcGFyZW50LCBHc3RFdmVudCoKIAogc3Rh
dGljIHZvaWQgd2Via2l0X3RleHRfY29tYmluZXJfaW5pdChXZWJLaXRUZXh0Q29tYmluZXIqIGNv
bWJpbmVyKQogewotICAgIGNvbWJpbmVyLT5mdW5uZWwgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21h
a2UoImZ1bm5lbCIsIE5VTEwpOworICAgIGNvbWJpbmVyLT5mdW5uZWwgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImZ1bm5lbCIsIG51bGxwdHIpOwogICAgIEFTU0VSVChjb21iaW5lci0+ZnVu
bmVsKTsKIAogICAgIGdib29sZWFuIHJldCA9IGdzdF9iaW5fYWRkKEdTVF9CSU4oY29tYmluZXIp
LCBjb21iaW5lci0+ZnVubmVsKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2Via2l0VGV4dENvbWJpbmVyUGFkRXZlbnQoR3N0UGFkKiBwYWQsIEdzdE9iamVjdCogcGFyZW50
LCBHc3RFdgogICAgICAgICAgICAgICogdGhlIGZ1bm5lbCAqLwogICAgICAgICAgICAgaWYgKHRh
cmdldFBhcmVudCA9PSBjb21iaW5lci0+ZnVubmVsKSB7CiAgICAgICAgICAgICAgICAgLyogU2V0
dXAgYSBXZWJWVFQgZW5jb2RlciAqLwotICAgICAgICAgICAgICAgIEdzdEVsZW1lbnQqIGVuY29k
ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoIndlYnZ0dGVuYyIsIE5VTEwpOworICAgICAg
ICAgICAgICAgIEdzdEVsZW1lbnQqIGVuY29kZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
IndlYnZ0dGVuYyIsIG51bGxwdHIpOwogICAgICAgICAgICAgICAgIEFTU0VSVChlbmNvZGVyKTsK
IAogICAgICAgICAgICAgICAgIHJldCA9IGdzdF9iaW5fYWRkKEdTVF9CSU4oY29tYmluZXIpLCBl
bmNvZGVyKTsKQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgR3N0UGFkKiB3ZWJraXRUZXh0Q29t
YmluZXJSZXF1ZXN0TmV3UGFkKEdzdEVsZW1lbnQgKiBlbGVtZW50LAogICAgIEdzdFBhZCogcGFk
ID0gZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoY29tYmluZXItPmZ1bm5lbCwgdGVtcGwsIG5hbWUs
IGNhcHMpOwogICAgIEFTU0VSVChwYWQpOwogCi0gICAgR3N0UGFkKiBnaG9zdFBhZCA9IEdTVF9Q
QUQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1RFWFRfQ09NQklORVJfUEFELCAiZGlyZWN0aW9u
IiwgZ3N0X3BhZF9nZXRfZGlyZWN0aW9uKHBhZCksIE5VTEwpKTsKKyAgICBHc3RQYWQqIGdob3N0
UGFkID0gR1NUX1BBRChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVEVYVF9DT01CSU5FUl9QQUQs
ICJkaXJlY3Rpb24iLCBnc3RfcGFkX2dldF9kaXJlY3Rpb24ocGFkKSwgbnVsbHB0cikpOwogICAg
IEFTU0VSVChnaG9zdFBhZCk7CiAKICAgICByZXQgPSBnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdChH
U1RfR0hPU1RfUEFEKGdob3N0UGFkKSk7CkBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3RleHRfY29tYmluZXJfcGFkX2NsYXNzX2luaXQoV2ViS2l0VGV4dENvbWJpbmVyUGFk
Q2xhc3MqIGtsYXMKIAogR3N0RWxlbWVudCogd2Via2l0VGV4dENvbWJpbmVyTmV3KCkKIHsKLSAg
ICByZXR1cm4gR1NUX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1RFWFRfQ09NQklO
RVIsIDApKTsKKyAgICByZXR1cm4gR1NUX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X1RFWFRfQ09NQklORVIsIG51bGxwdHIpKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykg
JiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lu
a0dTdHJlYW1lci5jcHAKaW5kZXggNjc4ZTdhYzM1NmVkNWM1YWZmZTMzZDYwYThkMDU3ODUwMGZj
Yjk1MC4uZTY1MWRlYmZlZDI4ZjdhOWUyODlkNmRlNGI5NjRkZjg3YjA5MjEyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dFNpbmtHU3RyZWFtZXIuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF90ZXh0X3NpbmtfY2xhc3NfaW5pdChXZWJLaXRUZXh0U2lua0NsYXNzKiBrbGFzcykKIAog
R3N0RWxlbWVudCogd2Via2l0VGV4dFNpbmtOZXcoKQogewotICAgIHJldHVybiBHU1RfRUxFTUVO
VChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVEVYVF9TSU5LLCAwKSk7CisgICAgcmV0dXJuIEdT
VF9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9URVhUX1NJTkssIG51bGxwdHIpKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIu
Y3BwCmluZGV4IDliZTFmZWEyZGZmNWEwNmNlNDBlODUxZmE1M2EwM2Y2NDg0YWU1ZDEuLmUxNzZl
M2FjZTFmYTEzOGI3ZGQ1MjRiNDdlNjFjNzg2YWFmN2E5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBUcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbmdlZCgpCiB7CiAgICAgR1JlZlB0cjxHc3RU
YWdMaXN0PiB0YWdzOwogICAgIGlmIChnX29iamVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdfT0JK
RUNUX0dFVF9DTEFTUyhtX3BhZC5nZXQoKSksICJ0YWdzIikpCi0gICAgICAgIGdfb2JqZWN0X2dl
dChtX3BhZC5nZXQoKSwgInRhZ3MiLCAmdGFncy5vdXRQdHIoKSwgTlVMTCk7CisgICAgICAgIGdf
b2JqZWN0X2dldChtX3BhZC5nZXQoKSwgInRhZ3MiLCAmdGFncy5vdXRQdHIoKSwgbnVsbHB0cik7
CiAgICAgZWxzZQogICAgICAgICB0YWdzID0gYWRvcHRHUmVmKGdzdF90YWdfbGlzdF9uZXdfZW1w
dHkoKSk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6Om5vdGlmeVRyYWNrT2ZBY3RpdmVDaGFuZ2VkKCkKIAogICAgIGdib29sZWFuIGFjdGl2ZSA9
IGZhbHNlOwogICAgIGlmIChtX3BhZCAmJiBnX29iamVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdf
T0JKRUNUX0dFVF9DTEFTUyhtX3BhZC5nZXQoKSksICJhY3RpdmUiKSkKLSAgICAgICAgZ19vYmpl
Y3RfZ2V0KG1fcGFkLmdldCgpLCAiYWN0aXZlIiwgJmFjdGl2ZSwgTlVMTCk7CisgICAgICAgIGdf
b2JqZWN0X2dldChtX3BhZC5nZXQoKSwgImFjdGl2ZSIsICZhY3RpdmUsIG51bGxwdHIpOwogCiAg
ICAgc2V0QWN0aXZlKGFjdGl2ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
CmluZGV4IDFmYWU3Yzc5YTJiNzhlNGJlNmFmNjY4MzE3NzZlZTA2YTM3MGE0ZjguLmY1NjgxNjFm
MTc4OGNhODBlNDExZjFiODA4Y2ZjMDkxODY1ZWJkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtH
U3RyZWFtZXIuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUo
V2ViS2l0VmlkZW9TaW5rLCB3ZWJraXRfdmlkZW9fc2luaywgR1NUX1RZUEVfVklERU9fU0lOSywK
IHN0YXRpYyB2b2lkIHdlYmtpdF92aWRlb19zaW5rX2luaXQoV2ViS2l0VmlkZW9TaW5rKiBzaW5r
KQogewogICAgIHNpbmstPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2luaywg
V0VCS0lUX1RZUEVfVklERU9fU0lOSywgV2ViS2l0VmlkZW9TaW5rUHJpdmF0ZSk7Ci0gICAgZ19v
YmplY3Rfc2V0KEdTVF9CQVNFX1NJTksoc2luayksICJlbmFibGUtbGFzdC1zYW1wbGUiLCBGQUxT
RSwgTlVMTCk7CisgICAgZ19vYmplY3Rfc2V0KEdTVF9CQVNFX1NJTksoc2luayksICJlbmFibGUt
bGFzdC1zYW1wbGUiLCBGQUxTRSwgbnVsbHB0cik7CiAgICAgbmV3IChzaW5rLT5wcml2KSBXZWJL
aXRWaWRlb1NpbmtQcml2YXRlKCk7CiB9CiAKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0VmlkZW9TaW5rU2V0Q2FwcyhHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdENh
cHMqIGNhcHMpCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRp
b24oR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeSogcXVlcnkpCiB7CiAgICAgR3N0Q2Fw
cyogY2FwczsKLSAgICBnc3RfcXVlcnlfcGFyc2VfYWxsb2NhdGlvbihxdWVyeSwgJmNhcHMsIDAp
OworICAgIGdzdF9xdWVyeV9wYXJzZV9hbGxvY2F0aW9uKHF1ZXJ5LCAmY2FwcywgbnVsbHB0cik7
CiAgICAgaWYgKCFjYXBzKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKQEAgLTM0OCw5ICszNDgs
OSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0
QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJv
bV9jYXBzKCZzaW5rLT5wcml2LT5pbmZvLCBjYXBzKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwog
Ci0gICAgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21ldGEocXVlcnksIEdTVF9WSURFT19NRVRB
X0FQSV9UWVBFLCAwKTsKLSAgICBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YShxdWVyeSwg
R1NUX1ZJREVPX0NST1BfTUVUQV9BUElfVFlQRSwgMCk7Ci0gICAgZ3N0X3F1ZXJ5X2FkZF9hbGxv
Y2F0aW9uX21ldGEocXVlcnksIEdTVF9WSURFT19HTF9URVhUVVJFX1VQTE9BRF9NRVRBX0FQSV9U
WVBFLCAwKTsKKyAgICBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YShxdWVyeSwgR1NUX1ZJ
REVPX01FVEFfQVBJX1RZUEUsIG51bGxwdHIpOworICAgIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlv
bl9tZXRhKHF1ZXJ5LCBHU1RfVklERU9fQ1JPUF9NRVRBX0FQSV9UWVBFLCBudWxscHRyKTsKKyAg
ICBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YShxdWVyeSwgR1NUX1ZJREVPX0dMX1RFWFRV
UkVfVVBMT0FEX01FVEFfQVBJX1RZUEUsIG51bGxwdHIpOwogICAgIHJldHVybiBUUlVFOwogfQog
CkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3ZpZGVvX3NpbmtfY2xhc3Nf
aW5pdChXZWJLaXRWaWRlb1NpbmtDbGFzcyoga2xhc3MpCiAKIEdzdEVsZW1lbnQqIHdlYmtpdFZp
ZGVvU2lua05ldygpCiB7Ci0gICAgcmV0dXJuIEdTVF9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9WSURFT19TSU5LLCAwKSk7CisgICAgcmV0dXJuIEdTVF9FTEVNRU5UKGdfb2JqZWN0
X25ldyhXRUJLSVRfVFlQRV9WSURFT19TSU5LLCBudWxscHRyKSk7CiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAxNTk0YWExYWUwNzFjNGRkOWI1MWQzMDk4N2Vh
YzIwMTE3ZGVhZmIxLi5hNmY5NGI4MmMwODk4ZWQ4ZjJkYWZjMzgzZGFkZjZmNjQ3NzEyMDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlk
ZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6c2V0U2VsZWN0ZWQo
Ym9vbCBzZWxlY3RlZCkKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0U2VsZWN0ZWQoc2VsZWN0
ZWQpOwogCiAgICAgaWYgKHNlbGVjdGVkICYmIG1fcGxheWJpbikKLSAgICAgICAgZ19vYmplY3Rf
c2V0KG1fcGxheWJpbi5nZXQoKSwgImN1cnJlbnQtdmlkZW8iLCBtX2luZGV4LCBOVUxMKTsKKyAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGxheWJpbi5nZXQoKSwgImN1cnJlbnQtdmlkZW8iLCBtX2lu
ZGV4LCBudWxscHRyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBlMjliZDFmNTA1ZDQzNTc2OTE3
OThhMWEyMGM4MWY2NzIwNjk1OGUzLi40MmQyYmYzZGE0YWE5NTRiYmE1MGY4NjgwY2I0MzNjZjFm
NDljYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApA
QCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2luaXQoV2ViS2l0
V2ViU3JjKiBzcmMpCiAKICAgICBwcml2LT5jcmVhdGVkSW5NYWluVGhyZWFkID0gaXNNYWluVGhy
ZWFkKCk7CiAKLSAgICBwcml2LT5hcHBzcmMgPSBHU1RfQVBQX1NSQyhnc3RfZWxlbWVudF9mYWN0
b3J5X21ha2UoImFwcHNyYyIsIDApKTsKKyAgICBwcml2LT5hcHBzcmMgPSBHU1RfQVBQX1NSQyhn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNyYyIsIG51bGxwdHIpKTsKICAgICBpZiAoIXBy
aXYtPmFwcHNyYykgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBj
cmVhdGUgYXBwc3JjIik7CiAgICAgICAgIHJldHVybjsKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19pbml0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIEdTVF9P
QkpFQ1RfRkxBR19TRVQocHJpdi0+c3JjcGFkLCBHU1RfUEFEX0ZMQUdfTkVFRF9QQVJFTlQpOwog
ICAgIGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKHByaXYtPnNyY3BhZCwgd2ViS2l0V2ViU3Jj
UXVlcnlXaXRoUGFyZW50KTsKIAotICAgIGdzdF9hcHBfc3JjX3NldF9jYWxsYmFja3MocHJpdi0+
YXBwc3JjLCAmYXBwc3JjQ2FsbGJhY2tzLCBzcmMsIDApOworICAgIGdzdF9hcHBfc3JjX3NldF9j
YWxsYmFja3MocHJpdi0+YXBwc3JjLCAmYXBwc3JjQ2FsbGJhY2tzLCBzcmMsIG51bGxwdHIpOwog
ICAgIGdzdF9hcHBfc3JjX3NldF9lbWl0X3NpZ25hbHMocHJpdi0+YXBwc3JjLCBGQUxTRSk7CiAg
ICAgZ3N0X2FwcF9zcmNfc2V0X3N0cmVhbV90eXBlKHByaXYtPmFwcHNyYywgR1NUX0FQUF9TVFJF
QU1fVFlQRV9TRUVLQUJMRSk7CiAKQEAgLTMwOCw5ICszMDgsOSBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3NyY19pbml0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIGxpa2VseSB0aGF0IGxp
YnNvdXAgYWxyZWFkeSBwcm92aWRlcyBuZXcgZGF0YSBiZWZvcmUKICAgICAvLyB0aGUgcXVldWUg
aXMgcmVhbGx5IGVtcHR5LgogICAgIC8vIFRoaXMgbWlnaHQgbmVlZCB0d2Vha2luZyBmb3IgcG9y
dHMgbm90IHVzaW5nIGxpYnNvdXAuCi0gICAgZ19vYmplY3Rfc2V0KHByaXYtPmFwcHNyYywgIm1p
bi1wZXJjZW50IiwgMjAsIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChwcml2LT5hcHBzcmMsICJt
aW4tcGVyY2VudCIsIDIwLCBudWxscHRyKTsKIAotICAgIGdzdF9hcHBfc3JjX3NldF9jYXBzKHBy
aXYtPmFwcHNyYywgMCk7CisgICAgZ3N0X2FwcF9zcmNfc2V0X2NhcHMocHJpdi0+YXBwc3JjLCBu
dWxscHRyKTsKICAgICBnc3RfYXBwX3NyY19zZXRfc2l6ZShwcml2LT5hcHBzcmMsIC0xKTsKIH0K
IApAQCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Rpc3Bvc2UoR09i
amVjdCogb2JqZWN0KQogICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMob2Jq
ZWN0KTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCi0gICAg
cHJpdi0+cGxheWVyID0gMDsKKyAgICBwcml2LT5wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgR1NU
X0NBTExfUEFSRU5UKEdfT0JKRUNUX0NMQVNTLCBkaXNwb3NlLCAob2JqZWN0KSk7CiB9CkBAIC0z
MzksNyArMzM5LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2V0UHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wSUQsIGNvbnN0IEdWYWx1ZSoKIAogICAgIHN3aXRjaCAocHJv
cElEKSB7CiAgICAgY2FzZSBQUk9QX0xPQ0FUSU9OOgotICAgICAgICBnc3RfdXJpX2hhbmRsZXJf
c2V0X3VyaShyZWludGVycHJldF9jYXN0PEdzdFVSSUhhbmRsZXIqPihzcmMpLCBnX3ZhbHVlX2dl
dF9zdHJpbmcodmFsdWUpLCAwKTsKKyAgICAgICAgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkocmVp
bnRlcnByZXRfY2FzdDxHc3RVUklIYW5kbGVyKj4oc3JjKSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZh
bHVlKSwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9LRUVQX0FMSVZF
OgogICAgICAgICBzcmMtPnByaXYtPmtlZXBBbGl2ZSA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpOwpAQCAtNDMzLDEzICs0MzMsMTMgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3RvcChX
ZWJLaXRXZWJTcmMqIHNyYykKICAgICBpZiAoIXdhc1NlZWtpbmcpIHsKICAgICAgICAgcHJpdi0+
c2l6ZSA9IDA7CiAgICAgICAgIHByaXYtPnJlcXVlc3RlZE9mZnNldCA9IDA7Ci0gICAgICAgIHBy
aXYtPnBsYXllciA9IDA7CisgICAgICAgIHByaXYtPnBsYXllciA9IG51bGxwdHI7CiAgICAgfQog
CiAgICAgbG9ja2VyLnVubG9jaygpOwogCiAgICAgaWYgKHByaXYtPmFwcHNyYykgewotICAgICAg
ICBnc3RfYXBwX3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIDApOworICAgICAgICBnc3RfYXBw
X3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIG51bGxwdHIpOwogICAgICAgICBpZiAoIXdhc1Nl
ZWtpbmcpCiAgICAgICAgICAgICBnc3RfYXBwX3NyY19zZXRfc2l6ZShwcml2LT5hcHBzcmMsIC0x
KTsKICAgICB9CkBAIC02MTUsNyArNjE1LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJu
IHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXQKICAg
ICAgICAgaWYgKCFwcml2LT5hcHBzcmMpIHsKICAgICAgICAgICAgIGdzdF9lbGVtZW50X3Bvc3Rf
bWVzc2FnZShlbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdz
dF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZV9uZXcoZWxlbWVudCwgImFwcHNyYyIpKTsKLSAgICAg
ICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgTUlTU0lOR19QTFVHSU4sICgwKSwg
KCJubyBhcHBzcmMiKSk7CisgICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUs
IE1JU1NJTkdfUExVR0lOLCAobnVsbHB0ciksICgibm8gYXBwc3JjIikpOwogICAgICAgICAgICAg
cmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKICAgICAgICAgfQogICAgICAgICBicmVh
azsKQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnlX
aXRoUGFyZW50KEdzdFBhZCogcGFkLCBHc3RPYmplY3QqIHBhcmVudCwgR3N0UQogICAgIGNhc2Ug
R1NUX1FVRVJZX0RVUkFUSU9OOiB7CiAgICAgICAgIEdzdEZvcm1hdCBmb3JtYXQ7CiAKLSAgICAg
ICAgZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKHF1ZXJ5LCAmZm9ybWF0LCBOVUxMKTsKKyAgICAg
ICAgZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKHF1ZXJ5LCAmZm9ybWF0LCBudWxscHRyKTsKIAog
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgImR1cmF0aW9uIHF1ZXJ5IGluIGZvcm1hdCAl
cyIsIGdzdF9mb3JtYXRfZ2V0X25hbWUoZm9ybWF0KSk7CiAgICAgICAgIFdURjo6R011dGV4TG9j
a2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwpAQCAtNzEwLDcg
KzcxMCw3IEBAIHN0YXRpYyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdldFR5cGUoR1R5cGUp
CiAKIGNvbnN0IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQog
ewotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsiaHR0cCIsICJodHRwcyIs
ICJibG9iIiwgMCB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsiaHR0
cCIsICJodHRwcyIsICJibG9iIiwgbnVsbHB0ciB9OwogICAgIHJldHVybiBwcm90b2NvbHM7CiB9
CiAKQEAgLTkzNiw3ICs5MzYsNyBAQCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9u
c2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICB9IGVsc2UK
ICAgICAgICAgZ3N0X2FwcF9zcmNfc2V0X3NpemUocHJpdi0+YXBwc3JjLCAtMSk7CiAKLSAgICBn
c3RfYXBwX3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIDApOworICAgIGdzdF9hcHBfc3JjX3Nl
dF9jYXBzKHByaXYtPmFwcHNyYywgbnVsbHB0cik7CiB9CiAKIHZvaWQgU3RyZWFtaW5nQ2xpZW50
OjpoYW5kbGVEYXRhUmVjZWl2ZWQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKQEAgLTEw
MDMsNyArMTAwMyw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVjZWl2ZWQo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIAogICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0g
Z3N0X2FwcF9zcmNfcHVzaF9idWZmZXIocHJpdi0+YXBwc3JjLCBwcml2LT5idWZmZXIubGVha1Jl
ZigpKTsKICAgICBpZiAocmV0ICE9IEdTVF9GTE9XX09LICYmIHJldCAhPSBHU1RfRkxPV19FT1Mp
Ci0gICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgRkFJTEVELCAoMCksICgwKSk7
CisgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgRkFJTEVELCAobnVsbHB0ciks
IChudWxscHRyKSk7CiB9CiAKIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVOb3RpZnlGaW5p
c2hlZCgpCkBAIC0xMTgyLDcgKzExODIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50OjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvcgogICAg
IFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOwogCiAgICAgR1NUX0VS
Uk9SX09CSkVDVChzcmMsICJIYXZlIGZhaWx1cmU6ICVzIiwgZXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKS51dGY4KCkuZGF0YSgpKTsKLSAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09V
UkNFLCBGQUlMRUQsICgiJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpLCAoMCkpOworICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIEZBSUxF
RCwgKCIlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSksIChu
dWxscHRyKSk7CiAgICAgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbShzcmMtPnByaXYtPmFwcHNy
Yyk7CiB9CiAKQEAgLTExOTcsNyArMTE5Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQ6Ondhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKQogICAgIHVyaS5yZXNldChnX3N0
cmR1cChzcmMtPnByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSkpOwogICAgIGxvY2tlci51bmxvY2so
KTsKIAotICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIE9QRU5fUkVBRCwgKCJB
Y2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgdXJpLmdldCgpKSwgKDApKTsKKyAgICBHU1Rf
RUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBPUEVOX1JFQUQsICgiQWNjZXNzIHRvIFwiJXNc
IiB3YXMgYmxvY2tlZCIsIHVyaS5nZXQoKSksIChudWxscHRyKSk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKQpA
QCAtMTIxMSw3ICsxMjExLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6
Y2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopCiAgICAgdXJpLnJlc2V0KGdfc3RyZHVwKHNy
Yy0+cHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpKSk7CiAgICAgbG9ja2VyLnVubG9jaygpOwogCi0g
ICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgT1BFTl9SRUFELCAoIkNhbid0IHNo
b3cgXCIlc1wiIiwgdXJpLmdldCgpKSwgKDApKTsKKyAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMs
IFJFU09VUkNFLCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCB1cmkuZ2V0KCkpLCAo
bnVsbHB0cikpOwogfQogCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMTA3ZGVkYTU2
NmEwMjRmZWUwOThmZDg0YmFmOGVmODFlNmI2ZjZkNi4uNTJjYTY2ODY3NmJmZDllMDkwNGM1ZDZk
YjllOTY0YjQ4ZGUyYzFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Myw3ICs1OTMsNyBAQCBHc3RVUklUeXBlIHdlYktp
dE1lZGlhU3JjVXJpR2V0VHlwZShHVHlwZSkKIAogY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRN
ZWRpYVNyY0dldFByb3RvY29scyhHVHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcHJv
dG9jb2xzW10gPSB7Im1lZGlhc291cmNlYmxvYiIsIDAgfTsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciogcHJvdG9jb2xzW10gPSB7Im1lZGlhc291cmNlYmxvYiIsIG51bGxwdHIgfTsKICAgICByZXR1
cm4gcHJvdG9jb2xzOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>