<?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>151527</bug_id>
          
          <creation_ts>2015-11-20 16:47:43 -0800</creation_ts>
          <short_desc>Renaming PageCache suspension code to support more reasons for suspension.</short_desc>
          <delta_ts>2015-11-20 17:42:22 -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>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>150515</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kat Graff">kgraff</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143898</commentid>
    <comment_count>0</comment_count>
    <who name="Kat Graff">kgraff</who>
    <bug_when>2015-11-20 16:47:43 -0800</bug_when>
    <thetext>Renaming various functions that support document-level suspension, currently all named specifically for page cache suspension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143899</commentid>
    <comment_count>1</comment_count>
      <attachid>266018</attachid>
    <who name="Kat Graff">kgraff</who>
    <bug_when>2015-11-20 16:50:26 -0800</bug_when>
    <thetext>Created attachment 266018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143900</commentid>
    <comment_count>2</comment_count>
      <attachid>266019</attachid>
    <who name="Kat Graff">kgraff</who>
    <bug_when>2015-11-20 16:52:51 -0800</bug_when>
    <thetext>Created attachment 266019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143911</commentid>
    <comment_count>3</comment_count>
      <attachid>266019</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 17:42:18 -0800</bug_when>
    <thetext>Comment on attachment 266019
Patch

Clearing flags on attachment: 266019

Committed r192711: &lt;http://trac.webkit.org/changeset/192711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143912</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 17:42:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266018</attachid>
            <date>2015-11-20 16:50:26 -0800</date>
            <delta_ts>2015-11-20 16:52:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151527-20151120165014.patch</filename>
            <type>text/plain</type>
            <size>25404</size>
            <attacher name="Kat Graff">kgraff</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1YzdmNThlNGYzNWFj
ODFjMjUzMjcxMzIzNTVjZWVlYzI4MTUwNy4uNzM5ZjFjYjllOTAyMTYxYmZiYmIyZWU0ZjA3NWVi
MzVjNGM0MGUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE1LTExLTIwICBLYXRs
eW4gR3JhZmYgIDxrZ3JhZmZAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBiYWNrZ3JvdW5k
IHRhYnMgc2hvdWxkIGJlIGZ1bGx5IHN1c3BlbmRlZCB3aGVyZSBwb3NzaWJsZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTUyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIHRoaXMgaXMgc2ltcGx5IGEgcmVmYWN0b3IuCisKKyAgICAgICAgUmVuYW1lZCBFbGVtZW50
OjogYW5kIERvY3VtZW50OjogZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpLAorICAg
ICAgICBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSwKKyAgICAgICAgcmVnaXN0ZXJG
b3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKCksCisgICAgICAgIHVucmVnaXN0ZXJGb3JQ
YWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKCkgdG8gcHJlcGFyZSB0byBzdXBwb3J0CisgICAg
ICAgIGFsdGVybmF0ZSByZWFzb25zIGZvciBkb2N1bWVudC1sZXZlbCBzdXNwZW5zaW9uLgorCisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWUpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpkb2N1bWVudFdp
bGxTdXNwZW5kRm9yUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNr
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5yZWdpc3RlckZvclBh
Z2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3MpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUpOiBE
ZWxldGVkLgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEZyYW1lOjpDYWNoZWRGcmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Ojp+SFRNTEZvcm1FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5z
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Ojpkb2N1bWVudERpZFJl
c3VtZUZyb21QYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6On5IVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlZ2lzdGVyRm9yU3VzcGVuc2lvbkNhbGxiYWNrSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dW5yZWdpc3RlckZv
clN1c3BlbnNpb25DYWxsYmFja0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6cHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21Q
YWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aERvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRo
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZv
ckRvY3VtZW50U3VzcGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9t
UGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6fkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZE1v
dmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5k
Rm9yUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92
aXNpb25hbExvYWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6flNWR1NWR0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U1ZHRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U1ZHRWxlbWVudDo6cHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTVkdFbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2Fj
aGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6ZG9jdW1lbnRE
aWRSZXN1bWVGcm9tUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5oOgorCiAyMDE1LTExLTE5ICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVy
aWNzc29uLmNvbT4KIAogICAgICAgICBXZWJSVEM6IEluaXRpYWwgdGVzdGluZyBvZiB1cGRhdGVk
IFJUQ1BlZXJDb25uZWN0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzQ3Y2Nm
ZWJmOTU1Yzg4NzhlOTViNTgxYzY1NWE5YWUxYTBmMmQ3Yi4uNTE5ZmZiMDNkYmZhMjQ1ZDg2M2I1
MTAxZGJlNWY3MTNkMDBkMzQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NTA0LDEy
ICs0NTA0LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OmRvY3VtZW50V2lsbEJlY29tZUluYWN0aXZlKCkK
ICAgICAgICAgcmVuZGVyVmlldygpLT5zZXRJc0luV2luZG93KGZhbHNlKTsKIH0KIAotdm9pZCBE
b2N1bWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpCit2b2lkIERvY3VtZW50
OjpzdXNwZW5kKCkKIHsKICAgICBkb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSgpOwogCiAgICAg
Zm9yIChhdXRvKiBlbGVtZW50IDogbV9kb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja0VsZW1lbnRz
KQotICAgICAgICBlbGVtZW50LT5kb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCk7Cisg
ICAgICAgIGVsZW1lbnQtPnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKIAogI2lmbmRl
ZiBOREVCVUcKICAgICAvLyBDbGVhciB0aGUgdXBkYXRlIGZsYWcgdG8gYmUgYWJsZSB0byBjaGVj
ayBpZiB0aGUgdmlld3BvcnQgYXJndW1lbnRzIHVwZGF0ZQpAQCAtNDUyMywxMiArNDUyMywxMiBA
QCB2b2lkIERvY3VtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkKICAgICB9
CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpIAor
dm9pZCBEb2N1bWVudDo6cmVzdW1lKCkKIHsKICAgICBWZWN0b3I8RWxlbWVudCo+IGVsZW1lbnRz
OwogICAgIGNvcHlUb1ZlY3RvcihtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMs
IGVsZW1lbnRzKTsKICAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBlbGVtZW50cykKLSAgICAgICAg
ZWxlbWVudC0+ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgICAgIGVsZW1l
bnQtPnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsKIAogICAgIGlmIChyZW5kZXJWaWV3
KCkpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRvdyh0cnVlKTsKQEAgLTQ1NDAs
MTIgKzQ1NDAsMTIgQEAgdm9pZCBEb2N1bWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNh
Y2hlKCkKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEJlY29tZUZy
YW1lc2V0KGlzRnJhbWVTZXQoKSk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJlZ2lzdGVyRm9yUGFn
ZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50KiBlKQordm9pZCBEb2N1bWVudDo6cmVn
aXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3MoRWxlbWVudCogZSkKIHsKICAgICBt
X2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMuYWRkKGUpOwogfQogCi12b2lkIERv
Y3VtZW50Ojp1bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50
KiBlKQordm9pZCBEb2N1bWVudDo6dW5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxi
YWNrcyhFbGVtZW50KiBlKQogewogICAgIG1fZG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tFbGVt
ZW50cy5yZW1vdmUoZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGI1ZmYzZDRlYzM3MWMy
MWY2MGU3NjRiMmQ4MTUzOWYwZTI3ZjQwNWMuLmYxYTBlNTY5ZjNiMGVmYmFlNmExZjZmMWVjODUw
NmU4NzZmODM1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDAyLDE0ICsxMDAyLDE0IEBA
IHB1YmxpYzoKICAgICBib29sIGluUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pblBhZ2VD
YWNoZTsgfQogICAgIHZvaWQgc2V0SW5QYWdlQ2FjaGUoYm9vbCBmbGFnKTsKIAotICAgIC8vIEVs
ZW1lbnRzIGNhbiByZWdpc3RlciB0aGVtc2VsdmVzIGZvciB0aGUgImRvY3VtZW50V2lsbFN1c3Bl
bmRGb3JQYWdlQ2FjaGUoKSIgYW5kICAKLSAgICAvLyAiZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFn
ZUNhY2hlKCkiIGNhbGxiYWNrcwotICAgIHZvaWQgcmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5z
aW9uQ2FsbGJhY2tzKEVsZW1lbnQqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVT
dXNwZW5zaW9uQ2FsbGJhY2tzKEVsZW1lbnQqKTsKKyAgICAvLyBFbGVtZW50cyBjYW4gcmVnaXN0
ZXIgdGhlbXNlbHZlcyBmb3IgdGhlICJzdXNwZW5kKCkiIGFuZAorICAgIC8vICJyZXN1bWUoKSIg
Y2FsbGJhY2tzCisgICAgdm9pZCByZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNr
cyhFbGVtZW50Kik7CisgICAgdm9pZCB1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2Fs
bGJhY2tzKEVsZW1lbnQqKTsKIAogICAgIHZvaWQgZG9jdW1lbnRXaWxsQmVjb21lSW5hY3RpdmUo
KTsKLSAgICB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKLSAgICB2b2lk
IGRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOworICAgIHZvaWQgc3VzcGVuZCgpOwor
ICAgIHZvaWQgcmVzdW1lKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyRm9yTWVkaWFWb2x1bWVDYWxs
YmFja3MoRWxlbWVudCopOwogICAgIHZvaWQgdW5yZWdpc3RlckZvck1lZGlhVm9sdW1lQ2FsbGJh
Y2tzKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDlhNzI0MDdiMzdmMzI4OWZmN2Y5
YmM4ZDQ4YTNlYjdmNjczM2M4ZjIuLjI0MTgwZDFhMTYwMTc0MDk2N2E3MWQ1YWNkMDU2ZDExZjY0
MjJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzQ2LDggKzM0Niw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldE1pbmltdW1TaXplRm9yUmVzaXppbmcoY29uc3QgTGF5b3V0U2l6ZSYpOwogCiAg
ICAgLy8gVXNlIERvY3VtZW50OjpyZWdpc3RlckZvckRvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNr
cygpIHRvIHN1YnNjcmliZSB0byB0aGVzZQotICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudFdpbGxT
dXNwZW5kRm9yUGFnZUNhY2hlKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlkUmVz
dW1lRnJvbVBhZ2VDYWNoZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZUZyb21Eb2N1bWVudFN1
c3BlbnNpb24oKSB7IH0KIAogICAgIC8vIFVzZSBEb2N1bWVudDo6cmVnaXN0ZXJGb3JNZWRpYVZv
bHVtZUNhbGxiYWNrcygpIHRvIHN1YnNjcmliZSB0byB0aGlzCiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhVm9sdW1lRGlkQ2hhbmdlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUu
Y3BwCmluZGV4IDM4ZGM5NjliOGE1ZTMyODNiOWJmM2I4ZDlhOThmYWE0NDE0ZDk3NjIuLjQ1ZTY0
YmFlOGVjNWFkNGMwZjZmMmIzYTBmMWY2YTY4MTk4MGZmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBDYWNoZWRGcmFtZUJh
c2U6OnJlc3RvcmUoKQogICAgICAgICBtX2RvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLm5lZWRUb3VjaEV2ZW50cyh0cnVlKTsKICNlbmRpZgogCi0gICAgbV9kb2N1bWVudC0+ZG9j
dW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgbV9kb2N1bWVudC0+cmVzdW1lKCk7
CiB9CiAKIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCkBAIC0xNjUsNyAr
MTY1LDcgQEAgQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICAvLyBi
dXQgYWZ0ZXIgd2UndmUgZmlyZWQgdGhlIHBhZ2VoaWRlIGV2ZW50LCBpbiBjYXNlIHRoYXQgY3Jl
YXRlcyBtb3JlIG9iamVjdHMuCiAgICAgLy8gU3VzcGVuZGluZyBtdXN0IGFsc28gaGFwcGVuIGFm
dGVyIHdlJ3ZlIHJlY3Vyc2VkIG92ZXIgY2hpbGQgZnJhbWVzLCBpbiBjYXNlCiAgICAgLy8gdGhv
c2UgY3JlYXRlIG1vcmUgb2JqZWN0cy4KLSAgICBtX2RvY3VtZW50LT5kb2N1bWVudFdpbGxTdXNw
ZW5kRm9yUGFnZUNhY2hlKCk7CisgICAgbV9kb2N1bWVudC0+c3VzcGVuZCgpOwogICAgIG1fZG9j
dW1lbnQtPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKICAg
ICBtX2RvY3VtZW50LT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlBh
Z2VDYWNoZSk7CiAgICAgbV9jYWNoZWRGcmFtZVNjcmlwdERhdGEgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNjcmlwdENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIENhY2hl
ZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAKICAgICBmcmFtZS52aWV3KCktPmNs
ZWFyU2Nyb2xsYWJsZUFyZWFzKCk7CiAKLSAgICAvLyBkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY2FuIHNldCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBj
bGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4KKyAgICAvLyBzdXNwZW5kKCkgY2FuIHNldCB1cCBhIGxh
eW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBjbGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4K
ICAgICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAgLy8gRGVjb25zdHJ1Y3QgdGhlIEZyYW1l
VHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcAppbmRleCA4ODhmMGY0MGJmNzY2N2I3ZDgxNjE2YjQ5YmRjYWNmNzIyNjhlMGU5Li5l
Zjk1OTQxOGUxNWI2M2ExYjM1ZWZiNTA0ZmEzNDA1MGM5YWE1MGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC04NCw3ICs4NCw3IEBAIEhUTUxGb3JtRWxlbWVu
dDo6fkhUTUxGb3JtRWxlbWVudCgpCiB7CiAgICAgZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigp
LndpbGxEZWxldGVGb3JtKHRoaXMpOwogICAgIGlmICghc2hvdWxkQXV0b2NvbXBsZXRlKCkpCi0g
ICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFj
a3ModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVu
c2lvbkNhbGxiYWNrcyh0aGlzKTsKIAogICAgIGZvciAoYXV0byYgYXNzb2NpYXRlZEVsZW1lbnQg
OiBtX2Fzc29jaWF0ZWRFbGVtZW50cykKICAgICAgICAgYXNzb2NpYXRlZEVsZW1lbnQtPmZvcm1X
aWxsQmVEZXN0cm95ZWQoKTsKQEAgLTQ5Miw5ICs0OTIsOSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaQogICAgICAgICBtX2F0dHJpYnV0ZXMuc2V0QWNjZXB0Q2hhcnNldCh2YWx1ZSk7CiAgICAg
ZWxzZSBpZiAobmFtZSA9PSBhdXRvY29tcGxldGVBdHRyKSB7CiAgICAgICAgIGlmICghc2hvdWxk
QXV0b2NvbXBsZXRlKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yUGFnZUNh
Y2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCkucmVn
aXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25D
YWxsYmFja3ModGhpcyk7CisgICAgICAgICAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JEb2N1
bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKQEAgLTgxMCw3ICs4MTAs
NyBAQCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBIVE1MRm9ybUVsZW1lbnQ6Om5hbWVkRWxlbWVudHMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBuYW1lZEl0ZW1zOwogfQogCi12
b2lkIEhUTUxGb3JtRWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKK3Zv
aWQgSFRNTEZvcm1FbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsKICAg
ICBBU1NFUlQoIXNob3VsZEF1dG9jb21wbGV0ZSgpKTsKIApAQCAtODI0LDggKzgyNCw4IEBAIHZv
aWQgSFRNTEZvcm1FbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9j
dW1lbnQpCiB7CiAgICAgaWYgKCFzaG91bGRBdXRvY29tcGxldGUoKSkgewogICAgICAgICBpZiAo
b2xkRG9jdW1lbnQpCi0gICAgICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3RlckZvclBhZ2VD
YWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7Ci0gICAgICAgIGRvY3VtZW50KCkucmVnaXN0
ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOworICAgICAgICAgICAgb2xk
RG9jdW1lbnQtPnVucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7
CisgICAgICAgIGRvY3VtZW50KCkucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFj
a3ModGhpcyk7CiAgICAgfQogCiAgICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50
KG9sZERvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDU2
NDYyYWMwMWU5YjczNDJjMzFlMmZjOWZlNzc0NWVhYjk0ZjJiMDEuLjkwMTk4YjYxMzkzZmNjYmE0
NmM3NzRlNDExYWQxMWU4ZDEzMzEzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9t
UGFnZUNhY2hlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZUZyb21Eb2N1bWVu
dFN1c3BlbnNpb24oKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdE
b2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBiMWY4YTgzY2EzNzIyYWY4N2ExZDYyYTM5
ZDc1NmQ0OTgwNDUwNDg5Li45NzA2OTQxZjRhNGI0Y2I3ZThiZGE1MDVjYTRhMmFiNTFlYmUzYzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3Qo
U2hhZG93Um9vdCopCiBIVE1MSW5wdXRFbGVtZW50Ojp+SFRNTElucHV0RWxlbWVudCgpCiB7CiAg
ICAgaWYgKG5lZWRzU3VzcGVuc2lvbkNhbGxiYWNrKCkpCi0gICAgICAgIGRvY3VtZW50KCkudW5y
ZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAgIGRv
Y3VtZW50KCkudW5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsK
IAogICAgIC8vIE5lZWQgdG8gcmVtb3ZlIGZvcm0gYXNzb2NpYXRpb24gd2hpbGUgdGhpcyBpcyBz
dGlsbCBhbiBIVE1MSW5wdXRFbGVtZW50CiAgICAgLy8gc28gdGhhdCB2aXJ0dWFsIGZ1bmN0aW9u
cyBhcmUgY2FsbGVkIGNvcnJlY3RseS4KQEAgLTEzOTksMTMgKzEzOTksMTMgQEAgYm9vbCBIVE1M
SW5wdXRFbGVtZW50OjpuZWVkc1N1c3BlbnNpb25DYWxsYmFjaygpCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnJlZ2lzdGVyRm9yU3VzcGVuc2lvbkNhbGxiYWNrSWZOZWVkZWQoKQogewogICAgIGlm
IChuZWVkc1N1c3BlbnNpb25DYWxsYmFjaygpKQotICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVy
Rm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQo
KS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0KIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50Ojp1bnJlZ2lzdGVyRm9yU3VzcGVuc2lvbkNhbGxiYWNrSWZOZWVk
ZWQoKQogewogICAgIGlmICghbmVlZHNTdXNwZW5zaW9uQ2FsbGJhY2soKSkKLSAgICAgICAgZG9j
dW1lbnQoKS51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsK
KyAgICAgICAgZG9jdW1lbnQoKS51bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJh
Y2tzKHRoaXMpOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29u
dHJvbCgpIGNvbnN0CkBAIC0xNDMxLDEyICsxNDMxLDEyIEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6b25TZWFyY2goKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc2VhcmNoRXZlbnQsIHRydWUsIGZhbHNlKSk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVu
dDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgQVNTRVJUKG5lZWRzU3Vz
cGVuc2lvbkNhbGxiYWNrKCkpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAg
Ly8gPGlucHV0IHR5cGU9Y29sb3I+IHVzZXMgZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNo
ZSB0byBkZXRhY2ggdGhlIGNvbG9yIHBpY2tlciBVSSwKKyAgICAvLyA8aW5wdXQgdHlwZT1jb2xv
cj4gdXNlcyBwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uIHRvIGRldGFjaCB0aGUgY29sb3Ig
cGlja2VyIFVJLAogICAgIC8vIHNvIGl0IHNob3VsZCBub3QgYmUgcmVzZXQgd2hlbiBiZWluZyBs
b2FkZWQgZnJvbSBwYWdlIGNhY2hlLgogICAgIGlmIChpc0NvbG9yQ29udHJvbCgpKSAKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpk
b2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKQogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQ
YWdlQ2FjaGUoKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwcmVwYXJlRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkKIHsKICAgICBpZiAoIWlzQ29sb3JDb250cm9sKCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTE1MDIsNyArMTUwMiw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGlkTW92ZVRvTmV3
RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogICAgIGlmIChvbGREb2N1bWVudCkgewog
ICAgICAgICAvLyBBbHdheXMgdW5yZWdpc3RlciBmb3IgY2FjaGUgY2FsbGJhY2tzIHdoZW4gbGVh
dmluZyBhIGRvY3VtZW50LCBldmVuIGlmIHdlIHdvdWxkIG90aGVyd2lzZSBsaWtlIHRvIGJlIHJl
Z2lzdGVyZWQKICAgICAgICAgaWYgKG5lZWRzU3VzcGVuc2lvbkNhbGxiYWNrKQotICAgICAgICAg
ICAgb2xkRG9jdW1lbnQtPnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tz
KHRoaXMpOworICAgICAgICAgICAgb2xkRG9jdW1lbnQtPnVucmVnaXN0ZXJGb3JEb2N1bWVudFN1
c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAgICAgICAgIGlmIChpc1JhZGlvQnV0dG9uKCkpCiAg
ICAgICAgICAgICBvbGREb2N1bWVudC0+Zm9ybUNvbnRyb2xsZXIoKS5jaGVja2VkUmFkaW9CdXR0
b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0x
NTEyLDcgKzE1MTIsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3Vt
ZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKICAgICB9CiAKICAgICBpZiAobmVlZHNTdXNwZW5z
aW9uQ2FsbGJhY2spCi0gICAgICAgIGRvY3VtZW50KCkucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNw
ZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yRG9j
dW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICBpZiAobV9oYXNUb3VjaEV2ZW50SGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggZGQyYmQ0ZGFjMzkzNzU3ODlmNmI3NWMxNWEyYjgzYmNjZWM1
MDJhZS4uZTBlZTQ1MTlmYjdkZWE0OGQwZTIwYWVmMTA2ODlkOGY1MGQ3Njg2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTM3Niw5ICszNzYsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBpc0luUmFuZ2UoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkgb3ZlcnJpZGUg
ZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKSBv
dmVycmlkZSBmaW5hbDsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICB2aXJ0dWFs
IHZvaWQgZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJpZGUg
ZmluYWw7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0
ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNGFjYWQ0YjFhZDZjMTc1MzJkZDQ5
ZjExNWZhZWNlZjY0MGZjMjRkOS4uNGRhZjRhNmVlZDQ3N2FmZTgwOWI0YTBiOTQ2NGQ3MDVjMjc2
NWM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01NDUs
NyArNTQ1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZWdpc3RlcldpdGhEb2N1bWVudChE
b2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCi0gICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2Fs
bGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9u
Q2FsbGJhY2tzKHRoaXMpOwogI2VuZGlmCiAKICAgICBkb2N1bWVudC5yZWdpc3RlckZvckFsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoKnRoaXMpOwpAQCAt
NTc5LDcgKzU3OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dW5yZWdpc3RlcldpdGhEb2N1
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCi0gICAgZG9jdW1lbnQudW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3Bl
bnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgZG9jdW1lbnQudW5yZWdpc3RlckZvckRvY3VtZW50
U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICNlbmRpZgogCiAgICAgZG9jdW1lbnQudW5yZWdp
c3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3Mo
KnRoaXMpOwpAQCAtNjA1LDEyICs2MDUsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRN
b3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiB9CiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpkb2N1bWVu
dFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFy
ZUZvckRvY3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgbV9tZWRpYVNlc3Npb24tPnVucmVnaXN0
ZXJXaXRoRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgbV9tZWRpYVNlc3Npb24tPnJl
Z2lzdGVyV2l0aERvY3VtZW50KGRvY3VtZW50KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCBhMDNmMmM0ZmM2ZmRlZjZmMmVhN2YyZjRlM2UwODU2NWFlZWZm
YjU5Li5kNGUzOGQwMDIyYWY0YTIxYjQ4NTA1ODY2ZTM3YWZhYzU0MGRjNGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzQ3LDggKzc0Nyw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1cGRhdGVDYXB0aW9uQ29udGFpbmVyKCk7CiAKICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudFdpbGxTdXNwZW5k
Rm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50
RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmly
dHVhbCB2b2lkIHJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKSBvdmVycmlkZSBmaW5hbDsK
IAogICAgIGVudW0gY2xhc3MgVXBkYXRlTWVkaWFTdGF0ZSB7CiAgICAgICAgIEFzeW5jaHJvbm91
c2x5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
aW5kZXggM2Y2ZWM0ZWQ4ZGY4MTZlZDNiMmM3MTRjN2Y4MDE4MjA4NjkxNjQ1Yy4uZWUyNjk2ZmQw
OWZmZmNkODAwYWE1MWRlYzYyYmI2ODE1YWRlOTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6SFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6On5IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KCkKIHsKICAgICBpZiAobV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNr
cykKLSAgICAgICAgZG9jdW1lbnQoKS51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNh
bGxiYWNrcyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS51bnJlZ2lzdGVyRm9yRG9jdW1lbnRT
dXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogfQogCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGUgc3RhdGUpCkBAIC0yMDAsNyArMjAwLDcg
QEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGUKICAgICAvLyBpbmFjdGl2ZSBvciByZWFjdGl2YXRl
cyBzbyBpdCBjYW4gY2xlYXIgdGhlIHJlbmRlcmVyIGJlZm9yZSBnb2luZyBpbnRvIHRoZSBwYWdl
IGNhY2hlLgogICAgIGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcykgewog
ICAgICAgICBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzID0gdHJ1ZTsKLSAgICAg
ICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhp
cyk7CisgICAgICAgIGRvY3VtZW50KCkucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxs
YmFja3ModGhpcyk7CiAgICAgfQogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID09IERpc3BsYXlp
bmdTbmFwc2hvdCkgewpAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxl
bWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogewogICAgIGlm
IChtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKSB7Ci0gICAgICAgIG9sZERvY3Vt
ZW50LT51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKLSAg
ICAgICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3Mo
dGhpcyk7CisgICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5z
aW9uQ2FsbGJhY2tzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yRG9jdW1l
bnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIH0KIAogICAgIGlmIChtX2ltYWdlTG9h
ZGVyKQpAQCAtMzExLDE5ICszMTEsMTkgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAgICAgSFRNTFBsdWdJ
bkVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKIH0KIAotdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkK
K3ZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lv
bigpCiB7CiAgICAgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIFN0eWxlOjpkZXRhY2hSZW5kZXJU
cmVlKCp0aGlzKTsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5k
Rm9yUGFnZUNhY2hlKCk7CisgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnByZXBhcmVGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpkb2N1bWVu
dERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKQordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpy
ZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxj
KFJlY29uc3RydWN0UmVuZGVyVHJlZSk7CiAKLSAgICBIVE1MUGx1Z0luRWxlbWVudDo6ZG9jdW1l
bnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlc3Vt
ZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oCmluZGV4IDQxZWU4NjE3MWZlNmQ5ZGE5OWU3MmEwNDEyMjBkOTY5Y2Uy
ZDI4ODEuLjBlNzRlNWRjMDE4ZWYwYzAwYTExMGNmMTdhODgwMzUxNWUwM2RiNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0xMjAsOCArMTIw
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBvdmVy
cmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlkUmVz
dW1lRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2
b2lkIHJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKSBvdmVycmlkZSBmaW5hbDsKIAogICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSBvdmVycmlkZSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDFiYWU0YTI0MDU5
MTI1MTBlOGMyNzM5NzMyOTNhMDk0NGNhMDEyOTQuLjkyMWJiZjE4OWY5MmNiODkwNDkwMDU0OTYx
NDJmMGRlNzBiYTBlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAt
MTgyMCw3ICsxODIwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkKICAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUu
cGFnZSgpKQogICAgICAgICAgICAgbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVE
b2NUeXBlKCZtX2ZyYW1lKTsKICNlbmRpZgotICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmRv
Y3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOworICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnJlc3VtZSgpOwogCiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIHVwZGF0ZSB2aWV3
IHNpemUgYW5kIHRoZXJlYnkgdXBkYXRlIHNjcm9sbGJhcnMuCiAjaWYgUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDk0OGQyYjU0YjY4MTc3MmM2YWVm
N2Y0YWFkZjRhMzBjMTFhMWUxZGYuLjYyZTlkZDExNTI3YWEzZmNhMDRhMDA2MTEyYzBlYmQ0OGNl
ZTkwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcg
QEAgaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3UKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTVkdF
bGVtZW50KCk7Ci0gICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2Fs
bGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9u
Q2FsbGJhY2tzKHRoaXMpOwogfQogCiBSZWY8U1ZHU1ZHRWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
QEAgLTg1LDE1ICs4NSwxNSBAQCBTVkdTVkdFbGVtZW50Ojp+U1ZHU1ZHRWxlbWVudCgpCiB7CiAg
ICAgaWYgKG1fdmlld1NwZWMpCiAgICAgICAgIG1fdmlld1NwZWMtPnJlc2V0Q29udGV4dEVsZW1l
bnQoKTsKLSAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2Fs
bGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVu
c2lvbkNhbGxiYWNrcyh0aGlzKTsKICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS5yZW1vdmVUaW1lQ29udGFpbmVyKHRoaXMpOwogfQogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OmRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKIHsKICAgICBpZiAob2xk
RG9jdW1lbnQpCi0gICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3Vz
cGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKLSAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yUGFnZUNh
Y2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgb2xkRG9jdW1lbnQtPnVucmVn
aXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgZG9jdW1lbnQo
KS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKIH0KIApA
QCAtNjU4LDEyICs2NTgsMTIgQEAgdm9pZCBTVkdTVkdFbGVtZW50Ojppbmhlcml0Vmlld0F0dHJp
YnV0ZXMoY29uc3QgU1ZHVmlld0VsZW1lbnQmIHZpZXdFbGVtZW50KQogICAgICAgICB2aWV3LnNl
dFpvb21BbmRQYW5CYXNlVmFsdWUoem9vbUFuZFBhbigpKTsKIH0KIAotdm9pZCBTVkdTVkdFbGVt
ZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgU1ZHU1ZHRWxlbWVu
dDo6cHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgcGF1c2VBbmltYXRpb25z
KCk7CiB9CiAKLXZvaWQgU1ZHU1ZHRWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNh
Y2hlKCkKK3ZvaWQgU1ZHU1ZHRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigp
CiB7CiAgICAgdW5wYXVzZUFuaW1hdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5oCmluZGV4IGU1OTU4ZTkyMzk1NTZlZGFhYTVlM2VmMWQ2ZjE2ZjQxZmUxYWQwYTEuLjI4Zjc3
YWNiMzI2NWU1Nzc0ZDFjMzk0MDE4ZTVlNWYzMzRjYWUzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaApAQCAtMTM5LDggKzEzOSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3Bh
Y2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBGcmFtZSogZnJhbWVGb3JDdXJyZW50U2NhbGUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266019</attachid>
            <date>2015-11-20 16:52:51 -0800</date>
            <delta_ts>2015-11-20 17:42:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151527-20151120165238.patch</filename>
            <type>text/plain</type>
            <size>25414</size>
            <attacher name="Kat Graff">kgraff</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1YzdmNThlNGYzNWFj
ODFjMjUzMjcxMzIzNTVjZWVlYzI4MTUwNy4uNTE2N2RmMmRkZTUxZTFiMTJlZTQ2MWM1ODIxZGQ1
YzI4NWE0M2MzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE1LTExLTIwICBLYXRs
eW4gR3JhZmYgIDxrZ3JhZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtaW5nIFBhZ2VDYWNo
ZSBzdXNwZW5zaW9uIGNvZGUgdG8gc3VwcG9ydCBtb3JlIHJlYXNvbnMgZm9yIHN1c3BlbnNpb24u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYmVjYXVzZSB0aGlzIGlzIHNpbXBseSBhIHJlZmFjdG9yLgorCisgICAgICAgIFJlbmFt
ZWQgRWxlbWVudDo6IGFuZCBEb2N1bWVudDo6IGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2Fj
aGUoKSwKKyAgICAgICAgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCksCisgICAgICAg
IHJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcygpLAorICAgICAgICB1bnJl
Z2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcygpIHRvIHByZXBhcmUgdG8gc3Vw
cG9ydAorICAgICAgICBhbHRlcm5hdGUgcmVhc29ucyBmb3IgZG9jdW1lbnQtbGV2ZWwgc3VzcGVu
c2lvbi4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lv
bkNhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5yZWdpc3RlckZvckRv
Y3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNp
b25DYWxsYmFja3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVucmVn
aXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6cHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFn
ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6fkhUTUxGb3Jt
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cmVzdW1lRnJvbURvY3Vt
ZW50U3VzcGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRpZE1v
dmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZG9j
dW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp+SFRNTElucHV0RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyZWdpc3RlckZvclN1c3BlbnNpb25D
YWxsYmFja0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVu
cmVnaXN0ZXJGb3JTdXNwZW5zaW9uQ2FsbGJhY2tJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZG9jdW1lbnREaWRS
ZXN1bWVGcm9tUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZWdpc3Rl
cldpdGhEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1bnJl
Z2lzdGVyV2l0aERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRvY3VtZW50RGlk
UmVzdW1lRnJvbVBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6On5IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZG9jdW1lbnRX
aWxsU3VzcGVuZEZvclBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUpOiBEZWxl
dGVkLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6On5TVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5k
Rm9yUGFnZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuaDoKKwogMjAxNS0xMS0xOSAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJl
cmdrdmlzdEBlcmljc3Nvbi5jb20+CiAKICAgICAgICAgV2ViUlRDOiBJbml0aWFsIHRlc3Rpbmcg
b2YgdXBkYXRlZCBSVENQZWVyQ29ubmVjdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDc0N2NjZmViZjk1NWM4ODc4ZTk1YjU4MWM2NTVhOWFlMWEwZjJkN2IuLjUxOWZmYjAzZGJm
YTI0NWQ4NjNiNTEwMWRiZTVmNzEzZDAwZDM0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNDUwNCwxMiArNDUwNCwxMiBAQCB2b2lkIERvY3VtZW50Ojpkb2N1bWVudFdpbGxCZWNvbWVJ
bmFjdGl2ZSgpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRvdyhmYWxzZSk7CiB9
CiAKLXZvaWQgRG9jdW1lbnQ6OmRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKQordm9p
ZCBEb2N1bWVudDo6c3VzcGVuZCgpCiB7CiAgICAgZG9jdW1lbnRXaWxsQmVjb21lSW5hY3RpdmUo
KTsKIAogICAgIGZvciAoYXV0byogZWxlbWVudCA6IG1fZG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJh
Y2tFbGVtZW50cykKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VD
YWNoZSgpOworICAgICAgICBlbGVtZW50LT5wcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7
CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgLy8gQ2xlYXIgdGhlIHVwZGF0ZSBmbGFnIHRvIGJlIGFi
bGUgdG8gY2hlY2sgaWYgdGhlIHZpZXdwb3J0IGFyZ3VtZW50cyB1cGRhdGUKQEAgLTQ1MjMsMTIg
KzQ1MjMsMTIgQEAgdm9pZCBEb2N1bWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNo
ZSgpCiAgICAgfQogfQogCi12b2lkIERvY3VtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdl
Q2FjaGUoKSAKK3ZvaWQgRG9jdW1lbnQ6OnJlc3VtZSgpCiB7CiAgICAgVmVjdG9yPEVsZW1lbnQq
PiBlbGVtZW50czsKICAgICBjb3B5VG9WZWN0b3IobV9kb2N1bWVudFN1c3BlbnNpb25DYWxsYmFj
a0VsZW1lbnRzLCBlbGVtZW50cyk7CiAgICAgZm9yIChhdXRvKiBlbGVtZW50IDogZWxlbWVudHMp
Ci0gICAgICAgIGVsZW1lbnQtPmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOworICAg
ICAgICBlbGVtZW50LT5yZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiAKICAgICBpZiAo
cmVuZGVyVmlldygpKQogICAgICAgICByZW5kZXJWaWV3KCktPnNldElzSW5XaW5kb3codHJ1ZSk7
CkBAIC00NTQwLDEyICs0NTQwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1l
RnJvbVBhZ2VDYWNoZSgpCiAgICAgbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hE
aWRCZWNvbWVGcmFtZXNldChpc0ZyYW1lU2V0KCkpOwogfQogCi12b2lkIERvY3VtZW50OjpyZWdp
c3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3MoRWxlbWVudCogZSkKK3ZvaWQgRG9j
dW1lbnQ6OnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVsZW1lbnQqIGUp
CiB7CiAgICAgbV9kb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja0VsZW1lbnRzLmFkZChlKTsKIH0K
IAotdm9pZCBEb2N1bWVudDo6dW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFj
a3MoRWxlbWVudCogZSkKK3ZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3Bl
bnNpb25DYWxsYmFja3MoRWxlbWVudCogZSkKIHsKICAgICBtX2RvY3VtZW50U3VzcGVuc2lvbkNh
bGxiYWNrRWxlbWVudHMucmVtb3ZlKGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiNWZm
M2Q0ZWMzNzFjMjFmNjBlNzY0YjJkODE1MzlmMGUyN2Y0MDVjLi5mMWEwZTU2OWYzYjBlZmJhZTZh
MWY2ZjFlYzg1MDZlODc2ZjgzNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAwMiwxNCAr
MTAwMiwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpblBhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5QYWdlQ2FjaGU7IH0KICAgICB2b2lkIHNldEluUGFnZUNhY2hlKGJvb2wgZmxhZyk7CiAK
LSAgICAvLyBFbGVtZW50cyBjYW4gcmVnaXN0ZXIgdGhlbXNlbHZlcyBmb3IgdGhlICJkb2N1bWVu
dFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkiIGFuZCAgCi0gICAgLy8gImRvY3VtZW50RGlkUmVz
dW1lRnJvbVBhZ2VDYWNoZSgpIiBjYWxsYmFja3MKLSAgICB2b2lkIHJlZ2lzdGVyRm9yUGFnZUNh
Y2hlU3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50Kik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyRm9y
UGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50Kik7CisgICAgLy8gRWxlbWVudHMg
Y2FuIHJlZ2lzdGVyIHRoZW1zZWx2ZXMgZm9yIHRoZSAic3VzcGVuZCgpIiBhbmQKKyAgICAvLyAi
cmVzdW1lKCkiIGNhbGxiYWNrcworICAgIHZvaWQgcmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNp
b25DYWxsYmFja3MoRWxlbWVudCopOworICAgIHZvaWQgdW5yZWdpc3RlckZvckRvY3VtZW50U3Vz
cGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50Kik7CiAKICAgICB2b2lkIGRvY3VtZW50V2lsbEJlY29t
ZUluYWN0aXZlKCk7Ci0gICAgdm9pZCBkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCk7
Ci0gICAgdm9pZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIHN1
c3BlbmQoKTsKKyAgICB2b2lkIHJlc3VtZSgpOwogCiAgICAgdm9pZCByZWdpc3RlckZvck1lZGlh
Vm9sdW1lQ2FsbGJhY2tzKEVsZW1lbnQqKTsKICAgICB2b2lkIHVucmVnaXN0ZXJGb3JNZWRpYVZv
bHVtZUNhbGxiYWNrcyhFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5YTcyNDA3YjM3
ZjMyODlmZjdmOWJjOGQ0OGEzZWI3ZjY3MzNjOGYyLi4yNDE4MGQxYTE2MDE3NDA5NjdhNzFkNWFj
ZDA1NmQxMWY2NDIyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTM0Niw4ICszNDYsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKGNvbnN0IExheW91dFNp
emUmKTsKIAogICAgIC8vIFVzZSBEb2N1bWVudDo6cmVnaXN0ZXJGb3JEb2N1bWVudEFjdGl2YXRp
b25DYWxsYmFja3MoKSB0byBzdWJzY3JpYmUgdG8gdGhlc2UKLSAgICB2aXJ0dWFsIHZvaWQgZG9j
dW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkb2N1
bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZUZvckRvY3VtZW50U3VzcGVuc2lvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9t
RG9jdW1lbnRTdXNwZW5zaW9uKCkgeyB9CiAKICAgICAvLyBVc2UgRG9jdW1lbnQ6OnJlZ2lzdGVy
Rm9yTWVkaWFWb2x1bWVDYWxsYmFja3MoKSB0byBzdWJzY3JpYmUgdG8gdGhpcwogICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVZvbHVtZURpZENoYW5nZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZEZyYW1lLmNwcAppbmRleCAzOGRjOTY5YjhhNWUzMjgzYjliZjNiOGQ5YTk4ZmFhNDQxNGQ5
NzYyLi40NWU2NGJhZThlYzVhZDRjMGY2ZjJiM2EwZjFmNmE2ODE5ODBmZjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgQ2Fj
aGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5uZWVkVG91Y2hFdmVudHModHJ1ZSk7CiAjZW5kaWYKIAotICAgIG1fZG9j
dW1lbnQtPmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOworICAgIG1fZG9jdW1lbnQt
PnJlc3VtZSgpOwogfQogCiBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQpA
QCAtMTY1LDcgKzE2NSw3IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUp
CiAgICAgLy8gYnV0IGFmdGVyIHdlJ3ZlIGZpcmVkIHRoZSBwYWdlaGlkZSBldmVudCwgaW4gY2Fz
ZSB0aGF0IGNyZWF0ZXMgbW9yZSBvYmplY3RzLgogICAgIC8vIFN1c3BlbmRpbmcgbXVzdCBhbHNv
IGhhcHBlbiBhZnRlciB3ZSd2ZSByZWN1cnNlZCBvdmVyIGNoaWxkIGZyYW1lcywgaW4gY2FzZQog
ICAgIC8vIHRob3NlIGNyZWF0ZSBtb3JlIG9iamVjdHMuCi0gICAgbV9kb2N1bWVudC0+ZG9jdW1l
bnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpOworICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoKTsK
ICAgICBtX2RvY3VtZW50LT5zdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJh
Y2tzKCk7CiAgICAgbV9kb2N1bWVudC0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9N
T2JqZWN0OjpQYWdlQ2FjaGUpOwogICAgIG1fY2FjaGVkRnJhbWVTY3JpcHREYXRhID0gc3RkOjpt
YWtlX3VuaXF1ZTxTY3JpcHRDYWNoZWRGcmFtZURhdGE+KGZyYW1lKTsKQEAgLTE3OSw3ICsxNzks
NyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogCiAgICAgZnJhbWUu
dmlldygpLT5jbGVhclNjcm9sbGFibGVBcmVhcygpOwogCi0gICAgLy8gZG9jdW1lbnRXaWxsU3Vz
cGVuZEZvclBhZ2VDYWNoZSgpIGNhbiBzZXQgdXAgYSBsYXlvdXQgdGltZXIgb24gdGhlIEZyYW1l
Vmlldywgc28gY2xlYXIgdGltZXJzIGFmdGVyIHRoYXQuCisgICAgLy8gc3VzcGVuZCgpIGNhbiBz
ZXQgdXAgYSBsYXlvdXQgdGltZXIgb24gdGhlIEZyYW1lVmlldywgc28gY2xlYXIgdGltZXJzIGFm
dGVyIHRoYXQuCiAgICAgZnJhbWUuY2xlYXJUaW1lcnMoKTsKIAogICAgIC8vIERlY29uc3RydWN0
IHRoZSBGcmFtZVRyZWUsIHRvIHJlc3RvcmUgaXQgbGF0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKaW5kZXggODg4ZjBmNDBiZjc2NjdiN2Q4MTYxNmI0OWJkY2FjZjcy
MjY4ZTBlOS4uZWY5NTk0MThlMTViNjNhMWIzNWVmYjUwNGZhMzQwNTBjOWFhNTBkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtODQsNyArODQsNyBAQCBIVE1M
Rm9ybUVsZW1lbnQ6On5IVE1MRm9ybUVsZW1lbnQoKQogewogICAgIGRvY3VtZW50KCkuZm9ybUNv
bnRyb2xsZXIoKS53aWxsRGVsZXRlRm9ybSh0aGlzKTsKICAgICBpZiAoIXNob3VsZEF1dG9jb21w
bGV0ZSgpKQotICAgICAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5z
aW9uQ2FsbGJhY2tzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JEb2N1
bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAKICAgICBmb3IgKGF1dG8mIGFzc29jaWF0
ZWRFbGVtZW50IDogbV9hc3NvY2lhdGVkRWxlbWVudHMpCiAgICAgICAgIGFzc29jaWF0ZWRFbGVt
ZW50LT5mb3JtV2lsbEJlRGVzdHJveWVkKCk7CkBAIC00OTIsOSArNDkyLDkgQEAgdm9pZCBIVE1M
Rm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmkKICAgICAgICAgbV9hdHRyaWJ1dGVzLnNldEFjY2VwdENoYXJzZXQodmFs
dWUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gYXV0b2NvbXBsZXRlQXR0cikgewogICAgICAgICBp
ZiAoIXNob3VsZEF1dG9jb21wbGV0ZSgpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3Rl
ckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAgICAgICBkb2N1
bWVudCgpLnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVT
dXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQoKS51bnJlZ2lz
dGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIH0KICAgICBlbHNl
CiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CkBAIC04
MTAsNyArODEwLDcgQEAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gSFRNTEZvcm1FbGVtZW50OjpuYW1l
ZEVsZW1lbnRzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKICAgICByZXR1cm4gbmFtZWRJdGVt
czsKIH0KIAotdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VD
YWNoZSgpCit2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lv
bigpCiB7CiAgICAgQVNTRVJUKCFzaG91bGRBdXRvY29tcGxldGUoKSk7CiAKQEAgLTgyNCw4ICs4
MjQsOCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1l
bnQqIG9sZERvY3VtZW50KQogewogICAgIGlmICghc2hvdWxkQXV0b2NvbXBsZXRlKCkpIHsKICAg
ICAgICAgaWYgKG9sZERvY3VtZW50KQotICAgICAgICAgICAgb2xkRG9jdW1lbnQtPnVucmVnaXN0
ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwotICAgICAgICBkb2N1bWVu
dCgpLnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAg
ICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJh
Y2tzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5z
aW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIH0KIAogICAgIEhUTUxFbGVtZW50OjpkaWRNb3ZlVG9O
ZXdEb2N1bWVudChvbGREb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aAppbmRleCA1NjQ2MmFjMDFlOWI3MzQyYzMxZTJmYzlmZTc3NDVlYWI5NGYyYjAxLi45MDE5OGI2
MTM5M2ZjY2JhNDZjNzc0ZTQxMWFkMTFlOGQxMzMxMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmgKQEAgLTE1MCw3ICsxNTAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlk
UmVzdW1lRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVG
cm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlk
TW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYjFmOGE4M2NhMzcyMmFm
ODdhMWQ2MmEzOWQ3NTZkNDk4MDQ1MDQ4OS4uOTcwNjk0MWY0YTRiNGNiN2U4YmRhNTA1Y2E0YTJh
YjUxZWJlM2M1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBA
IC0xNTAsNyArMTUwLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRT
aGFkb3dSb290KFNoYWRvd1Jvb3QqKQogSFRNTElucHV0RWxlbWVudDo6fkhUTUxJbnB1dEVsZW1l
bnQoKQogewogICAgIGlmIChuZWVkc1N1c3BlbnNpb25DYWxsYmFjaygpKQotICAgICAgICBkb2N1
bWVudCgpLnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwor
ICAgICAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFj
a3ModGhpcyk7CiAKICAgICAvLyBOZWVkIHRvIHJlbW92ZSBmb3JtIGFzc29jaWF0aW9uIHdoaWxl
IHRoaXMgaXMgc3RpbGwgYW4gSFRNTElucHV0RWxlbWVudAogICAgIC8vIHNvIHRoYXQgdmlydHVh
bCBmdW5jdGlvbnMgYXJlIGNhbGxlZCBjb3JyZWN0bHkuCkBAIC0xMzk5LDEzICsxMzk5LDEzIEBA
IGJvb2wgSFRNTElucHV0RWxlbWVudDo6bmVlZHNTdXNwZW5zaW9uQ2FsbGJhY2soKQogdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpyZWdpc3RlckZvclN1c3BlbnNpb25DYWxsYmFja0lmTmVlZGVkKCkK
IHsKICAgICBpZiAobmVlZHNTdXNwZW5zaW9uQ2FsbGJhY2soKSkKLSAgICAgICAgZG9jdW1lbnQo
KS5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAg
IGRvY3VtZW50KCkucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7
CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dW5yZWdpc3RlckZvclN1c3BlbnNpb25DYWxs
YmFja0lmTmVlZGVkKCkKIHsKICAgICBpZiAoIW5lZWRzU3VzcGVuc2lvbkNhbGxiYWNrKCkpCi0g
ICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFj
a3ModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVu
c2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1JlcXVp
cmVkRm9ybUNvbnRyb2woKSBjb25zdApAQCAtMTQzMSwxMiArMTQzMSwxMiBAQCB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6Om9uU2VhcmNoKCkKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnNlYXJjaEV2ZW50LCB0cnVlLCBmYWxzZSkpOwogfQogCi12b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpCit2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKQogewogICAgIEFTU0VS
VChuZWVkc1N1c3BlbnNpb25DYWxsYmFjaygpKTsKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQotICAgIC8vIDxpbnB1dCB0eXBlPWNvbG9yPiB1c2VzIGRvY3VtZW50V2lsbFN1c3BlbmRG
b3JQYWdlQ2FjaGUgdG8gZGV0YWNoIHRoZSBjb2xvciBwaWNrZXIgVUksCisgICAgLy8gPGlucHV0
IHR5cGU9Y29sb3I+IHVzZXMgcHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbiB0byBkZXRhY2gg
dGhlIGNvbG9yIHBpY2tlciBVSSwKICAgICAvLyBzbyBpdCBzaG91bGQgbm90IGJlIHJlc2V0IHdo
ZW4gYmVpbmcgbG9hZGVkIGZyb20gcGFnZSBjYWNoZS4KICAgICBpZiAoaXNDb2xvckNvbnRyb2wo
KSkgCiAgICAgICAgIHJldHVybjsKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKIH0KIAogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQotdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpkb2N1bWVudFdpbGxT
dXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6cHJlcGFyZUZvckRv
Y3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgaWYgKCFpc0NvbG9yQ29udHJvbCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xNTAyLDcgKzE1MDIsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKICAgICBpZiAob2xkRG9j
dW1lbnQpIHsKICAgICAgICAgLy8gQWx3YXlzIHVucmVnaXN0ZXIgZm9yIGNhY2hlIGNhbGxiYWNr
cyB3aGVuIGxlYXZpbmcgYSBkb2N1bWVudCwgZXZlbiBpZiB3ZSB3b3VsZCBvdGhlcndpc2UgbGlr
ZSB0byBiZSByZWdpc3RlcmVkCiAgICAgICAgIGlmIChuZWVkc1N1c3BlbnNpb25DYWxsYmFjaykK
LSAgICAgICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lv
bkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9y
RG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgICAgICBpZiAoaXNSYWRpb0J1
dHRvbigpKQogICAgICAgICAgICAgb2xkRG9jdW1lbnQtPmZvcm1Db250cm9sbGVyKCkuY2hlY2tl
ZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRvbih0aGlzKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQpAQCAtMTUxMiw3ICsxNTEyLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaWRNb3Zl
VG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAgICAgfQogCiAgICAgaWYgKG5l
ZWRzU3VzcGVuc2lvbkNhbGxiYWNrKQotICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yUGFn
ZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5yZWdp
c3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgaWYgKG1faGFzVG91Y2hFdmVudEhhbmRsZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGRkMmJkNGRhYzM5Mzc1Nzg5ZjZiNzVjMTVh
MmI4M2JjY2VjNTAyYWUuLmUwZWU0NTE5ZmI3ZGVhNDhkMGUyMGFlZjEwNjg5ZDhmNTBkNzY4NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zNzYsOSArMzc2LDkg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJblJhbmdlKCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCBib29sIGlzT3V0T2ZSYW5nZSgpIGNvbnN0IG92ZXJyaWRlIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgp
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgb3ZlcnJpZGUgZmluYWw7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0g
ICAgdmlydHVhbCB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBvdmVycmlk
ZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbigp
IG92ZXJyaWRlIGZpbmFsOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3Vy
Y2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRhY2FkNGIxYWQ2
YzE3NTMyZGQ0OWYxMTVmYWVjZWY2NDBmYzI0ZDkuLjRkYWY0YTZlZWQ0NzdhZmU4MDliNGEwYjk0
NjRkNzA1YzI3NjVjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVnaXN0ZXJXaXRo
RG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3Vz
cGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICBkb2N1bWVudC5yZWdpc3RlckZvckRvY3VtZW50
U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICNlbmRpZgogCiAgICAgZG9jdW1lbnQucmVnaXN0
ZXJGb3JBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKCp0
aGlzKTsKQEAgLTU3OSw3ICs1NzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVucmVnaXN0
ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIGRvY3VtZW50LnVucmVnaXN0ZXJGb3JQYWdl
Q2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50LnVucmVnaXN0ZXJG
b3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAjZW5kaWYKIAogICAgIGRvY3Vt
ZW50LnVucmVnaXN0ZXJGb3JBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2Vk
Q2FsbGJhY2tzKCp0aGlzKTsKQEAgLTYwNSwxMiArNjA1LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogfQogCiAj
aWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpCit2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24oKQogewogICAgIG1fbWVkaWFTZXNzaW9u
LT51bnJlZ2lzdGVyV2l0aERvY3VtZW50KGRvY3VtZW50KCkpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpCit2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKQogewogICAgIG1fbWVkaWFT
ZXNzaW9uLT5yZWdpc3RlcldpdGhEb2N1bWVudChkb2N1bWVudCgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYTAzZjJjNGZjNmZkZWY2ZjJlYTdmMmY0ZTNl
MDg1NjVhZWVmZmI1OS4uZDRlMzhkMDAyMmFmNGEyMWI0ODUwNTg2NmUzN2FmYWM1NDBkYzRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTc0Nyw4ICs3NDcsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ2FwdGlvbkNvbnRhaW5lcigpOwogCiAjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRX
aWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgdm9p
ZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2
aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbigpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJp
ZGUgZmluYWw7CiAKICAgICBlbnVtIGNsYXNzIFVwZGF0ZU1lZGlhU3RhdGUgewogICAgICAgICBB
c3luY2hyb25vdXNseSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCmluZGV4IDNmNmVjNGVkOGRmODE2ZWQzYjJjNzE0YzdmODAxODIwODY5MTY0NWMu
LmVlMjY5NmZkMDlmZmZjZDgwMGFhNTFkZWM2MmJiNjgxNWFkZTk5NzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAtMTIzLDcgKzEyMyw3
IEBAIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp+SFRN
TFBsdWdJbkltYWdlRWxlbWVudCgpCiB7CiAgICAgaWYgKG1fbmVlZHNEb2N1bWVudEFjdGl2YXRp
b25DYWxsYmFja3MpCi0gICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1
c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudW5yZWdpc3RlckZv
ckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlIHN0YXRlKQpAQCAtMjAw
LDcgKzIwMCw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlCiAgICAgLy8gaW5hY3RpdmUgb3Ig
cmVhY3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50
byB0aGUgcGFnZSBjYWNoZS4KICAgICBpZiAoIW1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxs
YmFja3MpIHsKICAgICAgICAgbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyA9IHRy
dWU7Ci0gICAgICAgIGRvY3VtZW50KCkucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2Fs
bGJhY2tzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIH0KIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA9
PSBEaXNwbGF5aW5nU25hcHNob3QpIHsKQEAgLTMwMSw4ICszMDEsOCBAQCB2b2lkIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiB2b2lkIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkK
IHsKICAgICBpZiAobV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcykgewotICAgICAg
ICBvbGREb2N1bWVudC0+dW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3Mo
dGhpcyk7Ci0gICAgICAgIGRvY3VtZW50KCkucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9u
Q2FsbGJhY2tzKHRoaXMpOworICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3RlckZvckRvY3Vt
ZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3Rl
ckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICAgICB9CiAKICAgICBpZiAo
bV9pbWFnZUxvYWRlcikKQEAgLTMxMSwxOSArMzExLDE5IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogICAg
IEhUTUxQbHVnSW5FbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCk7CiB9
CiAKLXZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBh
Z2VDYWNoZSgpCit2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnByZXBhcmVGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKQogewogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICBTdHlsZTo6ZGV0
YWNoUmVuZGVyVHJlZSgqdGhpcyk7CiAKLSAgICBIVE1MUGx1Z0luRWxlbWVudDo6ZG9jdW1lbnRX
aWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpOworICAgIEhUTUxQbHVnSW5FbGVtZW50OjpwcmVwYXJl
Rm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiB9CiAKLXZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpCiB7CiAgICAgc2V0TmVlZHNT
dHlsZVJlY2FsYyhSZWNvbnN0cnVjdFJlbmRlclRyZWUpOwogCi0gICAgSFRNTFBsdWdJbkVsZW1l
bnQ6OmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOworICAgIEhUTUxQbHVnSW5FbGVt
ZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJ
bkltYWdlRWxlbWVudDo6c3RhcnRMb2FkaW5nSW1hZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCA0MWVlODYxNzFmZTZkOWRhOTllNzJhMDQx
MjIwZDk2OWNlMmQyODgxLi4wZTc0ZTVkYzAxOGVmMGMwMGExMTBjZjE3YTg4MDM1MTVlMDNkYjU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAt
MTIwLDggKzEyMCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRl
cmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGUgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRXaWxsU3Vz
cGVuZEZvclBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgdm9pZCBkb2N1
bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZUZvckRvY3VtZW50U3VzcGVuc2lvbigpIG92ZXJyaWRlIGZpbmFsOworICAg
IHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkgb3ZlcnJpZGUgZmlu
YWw7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJy
aWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkg
b3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAx
YmFlNGEyNDA1OTEyNTEwZThjMjczOTczMjkzYTA5NDRjYTAxMjk0Li45MjFiYmYxODlmOTJjYjg5
MDQ5MDA1NDk2MTQyZjBkZTcwYmEwZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTE4MjAsNyArMTgyMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zp
c2lvbmFsTG9hZCgpCiAgICAgICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKSAm
JiBtX2ZyYW1lLnBhZ2UoKSkKICAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5k
aWRSZWNlaXZlRG9jVHlwZSgmbV9mcmFtZSk7CiAjZW5kaWYKLSAgICAgICAgbV9mcmFtZS5kb2N1
bWVudCgpLT5kb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKTsKKyAgICAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5yZXN1bWUoKTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dCB0byB1
cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgogI2lmIFBMQVRG
T1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCA5NDhkMmI1NGI2
ODE3NzJjNmFlZjdmNGFhZGY0YTMwYzExYTFlMWRmLi42MmU5ZGQxMTUyN2FhM2ZjYTA0YTAwNjEx
MmMwZWJkNDhjZWU5MDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC02
OCw3ICs2OCw3IEBAIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1CiB7CiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OnN2Z1RhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVz
Rm9yU1ZHU1ZHRWxlbWVudCgpOwotICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3Vz
cGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICBkb2N1bWVudC5yZWdpc3RlckZvckRvY3VtZW50
U3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0KIAogUmVmPFNWR1NWR0VsZW1lbnQ+IFNWR1NW
R0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCkBAIC04NSwxNSArODUsMTUgQEAgU1ZHU1ZHRWxlbWVudDo6flNWR1NWR0VsZW1l
bnQoKQogewogICAgIGlmIChtX3ZpZXdTcGVjKQogICAgICAgICBtX3ZpZXdTcGVjLT5yZXNldENv
bnRleHRFbGVtZW50KCk7Ci0gICAgZG9jdW1lbnQoKS51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3Vz
cGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKKyAgICBkb2N1bWVudCgpLnVucmVnaXN0ZXJGb3JEb2N1
bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdF
eHRlbnNpb25zKCkucmVtb3ZlVGltZUNvbnRhaW5lcih0aGlzKTsKIH0KIAogdm9pZCBTVkdTVkdF
bGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiB7CiAg
ICAgaWYgKG9sZERvY3VtZW50KQotICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3RlckZvclBh
Z2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7Ci0gICAgZG9jdW1lbnQoKS5yZWdpc3Rl
ckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAgIG9sZERvY3Vt
ZW50LT51bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKHRoaXMpOworICAg
IGRvY3VtZW50KCkucmVnaXN0ZXJGb3JEb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7
CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVu
dCk7CiB9CiAKQEAgLTY1OCwxMiArNjU4LDEyIEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6aW5oZXJp
dFZpZXdBdHRyaWJ1dGVzKGNvbnN0IFNWR1ZpZXdFbGVtZW50JiB2aWV3RWxlbWVudCkKICAgICAg
ICAgdmlldy5zZXRab29tQW5kUGFuQmFzZVZhbHVlKHpvb21BbmRQYW4oKSk7CiB9CiAKLXZvaWQg
U1ZHU1ZHRWxlbWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpCit2b2lkIFNW
R1NWR0VsZW1lbnQ6OnByZXBhcmVGb3JEb2N1bWVudFN1c3BlbnNpb24oKQogewogICAgIHBhdXNl
QW5pbWF0aW9ucygpOwogfQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OmRvY3VtZW50RGlkUmVzdW1l
RnJvbVBhZ2VDYWNoZSgpCit2b2lkIFNWR1NWR0VsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1
c3BlbnNpb24oKQogewogICAgIHVucGF1c2VBbmltYXRpb25zKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuaAppbmRleCBlNTk1OGU5MjM5NTU2ZWRhYWE1ZTNlZjFkNmYxNmY0MWZlMWFk
MGExLi4yOGY3N2FjYjMyNjVlNTc3NGQxYzM5NDAxOGU1ZTVmMzM0Y2FlMzk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmgKQEAgLTEzOSw4ICsxMzksOCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUo
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNh
Y2hlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lRnJvbURvY3VtZW50U3Vz
cGVuc2lvbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29v
cmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgRnJhbWUqIGZyYW1lRm9yQ3VycmVudFNjYWxlKCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>