<?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>137030</bug_id>
          
          <creation_ts>2014-09-23 10:44:26 -0700</creation_ts>
          <short_desc>Have Document::accessSVGExtensions() return a reference</short_desc>
          <delta_ts>2014-09-23 11:44:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1036756</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-23 10:44:26 -0700</bug_when>
    <thetext>Have Document::accessSVGExtensions() return a reference instead of a pointer as it can never return null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036758</commentid>
    <comment_count>1</comment_count>
      <attachid>238547</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-23 10:54:22 -0700</bug_when>
    <thetext>Created attachment 238547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036775</commentid>
    <comment_count>2</comment_count>
      <attachid>238547</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-23 11:44:47 -0700</bug_when>
    <thetext>Comment on attachment 238547
Patch

Clearing flags on attachment: 238547

Committed r173883: &lt;http://trac.webkit.org/changeset/173883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036776</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-23 11:44:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238547</attachid>
            <date>2014-09-23 10:54:22 -0700</date>
            <delta_ts>2014-09-23 11:44:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137030-20140923105421.patch</filename>
            <type>text/plain</type>
            <size>42840</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkxMTgzYWFiNDcxYzI2
OWVmNTAzYzA4MzAyZTYyNDBlMTYzMWJhNy4uZDk5MTU5MWFiOWQ0N2YyMmYyN2U5ZDVhMGQ3Njgz
NDYxYTU3NDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDE0LTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSGF2ZSBEb2N1bWVudDo6YWNj
ZXNzU1ZHRXh0ZW5zaW9ucygpIHJldHVybiBhIHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDMwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2ZSBEb2N1bWVudDo6YWNjZXNzU1ZHRXh0
ZW5zaW9ucygpIHJldHVybiBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEKKyAgICAgICAgcG9pbnRl
ciBhcyBpdCBjYW4gbmV2ZXIgcmV0dXJuIG51bGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbik6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6YWNjZXNzU1ZHRXh0ZW5zaW9ucyk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6fkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZy
b20pOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
UGxhaW5UZXh0TWFya3VwKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRl
ckVmZmVjdFJlbmRlcmVyOjpidWlsZFJlZmVyZW5jZUZpbHRlcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVG
cm9tQ2FjaGVBbmRJbnZhbGlkYXRlRGVwZW5kZW5jaWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN2
Z0V4dGVuc2lvbnNGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXJCeUlkKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFJlbmRlclNWR1Jlc291
cmNlQnlJZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJQZW5kaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNlcyk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvdXJj
ZXNDYWNoZUZyb21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZXNvdXJjZXNDYWNo
ZTo6cmVzb3VyY2VEZXN0cm95ZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6On5TVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0VsZW1lbnQ6OnJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGVtZW50OjpyZW1vdmVkRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdF
bGVtZW50Ojp2aWV3cG9ydEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpidWlsZFBl
bmRpbmdSZXNvdXJjZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojph
Y2Nlc3NEb2N1bWVudFNWR0V4dGVuc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSk6CisgICAgICAg
ICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1Zp
ZXdCb3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6Omluc2VydGVkSW50byk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKToKKyAg
ICAgICAgKiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01Q
YXRoRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TVBhdGhFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcyk6CisgICAgICAgICogc3ZnL1NW
R1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6aW52YWxpZGF0
ZU1QYXRoRGVwZW5kZW5jaWVzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVt
ZW50Ojp+U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpp
bnNlcnRlZEludG8pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cmVtb3ZlZEZy
b20pOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RS
ZWZFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmNs
ZWFyUmVzb3VyY2VSZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxl
bWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZl
cmVuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jl
c291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRvQ2xpcFBhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUpOgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU01JTEVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NNSUxFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSk6CisKIDIwMTQtMDkt
MjMgIEVkdWFyZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gQWRkcyBpbXBsZW1lbnRhdGlvbiBvZiBzdWJ0bGUgY3J5cHRvIEhNQUMgYWxnb3JpdGhtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZDVjZTA1ZDJmYzZlMDQ0MzFjZWQ1
MjRlYWEzYjE3ZDk0YjQwOTcyOC4uYWU4NTVlYzkxNzc3NDZjNzYyOWE4NTRkMDk4ZTliMjc1YzRj
OWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNTczLDcgKzU3Myw3
IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIGlmIChkb2N1bWVudCgpLnN2Z0V4dGVuc2lvbnMoKSkgewogICAg
ICAgICBFbGVtZW50KiBzaGFkb3dIb3N0ID0gdGhpcy0+c2hhZG93SG9zdCgpOwogICAgICAgICBp
ZiAoIXNoYWRvd0hvc3QgfHwgIXNoYWRvd0hvc3QtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRh
ZykpCi0gICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVidWls
ZEVsZW1lbnRzKCk7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS5yZWJ1aWxkRWxlbWVudHMoKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmll
ZEV2ZW50KCk7CkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVD
aGlsZHJlbigpCiAgICAgaWYgKGRvY3VtZW50KCkuc3ZnRXh0ZW5zaW9ucygpKSB7CiAgICAgICAg
IEVsZW1lbnQqIHNoYWRvd0hvc3QgPSB0aGlzLT5zaGFkb3dIb3N0KCk7CiAgICAgICAgIGlmICgh
c2hhZG93SG9zdCB8fCAhc2hhZG93SG9zdC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dXNlVGFnKSkK
LSAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZWJ1aWxkRWxl
bWVudHMoKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJl
YnVpbGRFbGVtZW50cygpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZl
bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQyZDBlMGRhZTIzOGRlMGE3ZjY3YTM5
MzU0MWJiNjUzMjc4YTE4ZmMuLjE1N2ViZTk0ZjE3NWE5MDE5ZjA4NTRiNTVjZTI0NmE2NTUwNjlh
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKIHZvaWQgRG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKCkK
IHsKICAgICBpZiAoc3ZnRXh0ZW5zaW9ucygpKQotICAgICAgICBhY2Nlc3NTVkdFeHRlbnNpb25z
KCktPnBhdXNlQW5pbWF0aW9ucygpOworICAgICAgICBhY2Nlc3NTVkdFeHRlbnNpb25zKCkucGF1
c2VBbmltYXRpb25zKCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAg
ICAgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKQEAgLTI0NDAsNyArMjQ0MCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0Q2xvc2UoKQogICAgIC8vIGhlcmUsIGluc3RlYWQg
b2YgZG9pbmcgaXQgZnJvbSBTVkdFbGVtZW50OjpmaW5pc2hlZFBhcnNpbmdDaGlsZHJlbiAoaWYg
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD0iZmFsc2UiLAogICAgIC8vIHdoaWNoIGlzIHRoZSBk
ZWZhdWx0LCBmb3IgPSd0cnVlJyBpdHMgZmlyZWQgYXQgYSBsYXRlciB0aW1lLCBvbmNlIGFsbCBl
eHRlcm5hbCByZXNvdXJjZXMgZmluaXNoZWQgbG9hZGluZykuCiAgICAgaWYgKHN2Z0V4dGVuc2lv
bnMoKSkKLSAgICAgICAgYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5kaXNwYXRjaFNWR0xvYWRFdmVu
dFRvT3V0ZXJtb3N0U1ZHRWxlbWVudHMoKTsKKyAgICAgICAgYWNjZXNzU1ZHRXh0ZW5zaW9ucygp
LmRpc3BhdGNoU1ZHTG9hZEV2ZW50VG9PdXRlcm1vc3RTVkdFbGVtZW50cygpOwogCiAgICAgZGlz
cGF0Y2hXaW5kb3dMb2FkRXZlbnQoKTsKICAgICBlbnF1ZXVlUGFnZXNob3dFdmVudChQYWdlc2hv
d0V2ZW50Tm90UGVyc2lzdGVkKTsKQEAgLTI1MDUsNyArMjUwNSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OmltcGxpY2l0Q2xvc2UoKQogI2VuZGlmCiAKICAgICBpZiAoc3ZnRXh0ZW5zaW9ucygpKQotICAg
ICAgICBhY2Nlc3NTVkdFeHRlbnNpb25zKCktPnN0YXJ0QW5pbWF0aW9ucygpOworICAgICAgICBh
Y2Nlc3NTVkdFeHRlbnNpb25zKCkuc3RhcnRBbmltYXRpb25zKCk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OnNldFBhcnNpbmcoYm9vbCBiKQpAQCAtNDQ2NCwxMSArNDQ2NCwxMSBAQCBjb25zdCBTVkdE
b2N1bWVudEV4dGVuc2lvbnMqIERvY3VtZW50OjpzdmdFeHRlbnNpb25zKCkKICAgICByZXR1cm4g
bV9zdmdFeHRlbnNpb25zLmdldCgpOwogfQogCi1TVkdEb2N1bWVudEV4dGVuc2lvbnMqIERvY3Vt
ZW50OjphY2Nlc3NTVkdFeHRlbnNpb25zKCkKK1NWR0RvY3VtZW50RXh0ZW5zaW9ucyYgRG9jdW1l
bnQ6OmFjY2Vzc1NWR0V4dGVuc2lvbnMoKQogewogICAgIGlmICghbV9zdmdFeHRlbnNpb25zKQog
ICAgICAgICBtX3N2Z0V4dGVuc2lvbnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0RvY3VtZW50RXh0
ZW5zaW9ucz4odGhpcyk7Ci0gICAgcmV0dXJuIG1fc3ZnRXh0ZW5zaW9ucy5nZXQoKTsKKyAgICBy
ZXR1cm4gKm1fc3ZnRXh0ZW5zaW9uczsKIH0KIAogYm9vbCBEb2N1bWVudDo6aGFzU1ZHUm9vdE5v
ZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5MGRmMDcwZjg1NzNiMGY3OWI1ZjYy
MWM4MTA0YmVhMzQzMDM4ZjZkLi5jZGQyMDgyMDYzZjhhNTYyMDk1MmVlOGY4ZDdiMGQwNTNmNzJi
NTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTA5NCw3ICsxMDk0LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRlOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBzdmdFeHRlbnNp
b25zKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBhY2Nlc3NT
VkdFeHRlbnNpb25zKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU1ZHRG9jdW1lbnRFeHRlbnNpb25z
JiBhY2Nlc3NTVkdFeHRlbnNpb25zKCk7CiAKICAgICB2b2lkIGluaXRTZWN1cml0eUNvbnRleHQo
KTsKICAgICB2b2lkIGluaXRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCAzZTA2ZWQ3MGMyNTE1YTI4NTRjNTc3YTBhNjI0N2YzM2Q3YjE1ZWE2Li5lN2Rh
Njc0MDY2MDFlZDRkNjZjODIzZTVlMTIzM2RiMjkxMGYwZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgRWxlbWVudDo6fkVsZW1lbnQoKQogICAgICAgICBkZXRh
Y2hBbGxBdHRyTm9kZXNGcm9tRWxlbWVudCgpOwogCiAgICAgaWYgKGhhc1BlbmRpbmdSZXNvdXJj
ZXMoKSkgewotICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVtb3Zl
RWxlbWVudEZyb21QZW5kaW5nUmVzb3VyY2VzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLmFj
Y2Vzc1NWR0V4dGVuc2lvbnMoKS5yZW1vdmVFbGVtZW50RnJvbVBlbmRpbmdSZXNvdXJjZXModGhp
cyk7CiAgICAgICAgIEFTU0VSVCghaGFzUGVuZGluZ1Jlc291cmNlcygpKTsKICAgICB9CiB9CkBA
IC0xNDEwLDcgKzE0MTAsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUmIGluc2VydGlvblBvaW50KQogICAgIENvbnRhaW5lck5vZGU6OnJlbW92ZWRGcm9tKGluc2Vy
dGlvblBvaW50KTsKIAogICAgIGlmIChoYXNQZW5kaW5nUmVzb3VyY2VzKCkpCi0gICAgICAgIGRv
Y3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZW1vdmVFbGVtZW50RnJvbVBlbmRpbmdS
ZXNvdXJjZXModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygp
LnJlbW92ZUVsZW1lbnRGcm9tUGVuZGluZ1Jlc291cmNlcyh0aGlzKTsKIH0KIAogdm9pZCBFbGVt
ZW50Ojp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCmluZGV4IDZjMjJiZmUyOGExMDRlYmFmMTU0NjAxZGZlOGM5ODg5YjJmMjFlZGQu
LjQzZTY5NTczNDBhZGJlNDU2YmZjYmZjYjM0NWZjNzBjOGJlNDg4MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAKQEAgLTc0Niw3ICs3NDYsNyBAQCBib29sIGlzUGxhaW5UZXh0TWFya3Vw
KE5vZGUqIG5vZGUpCiAgICAgaWYgKCFpc0hUTUxEaXZFbGVtZW50KG5vZGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBIVE1MRGl2RWxlbWVudCYgZWxlbWVudCA9IHRvSFRNTERpdkVs
ZW1lbnQoKm5vZGUpOworICAgIEhUTUxEaXZFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8SFRN
TERpdkVsZW1lbnQ+KCpub2RlKTsKICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNw
cAppbmRleCBkM2I0ZDhhOTgxYmMwYTY2NThjMjllOGJmOWM0ZWY4YjBiYmRhMDE0Li41MGU2NTk2
ZDBhNzM1YmU4N2E1MjY4Y2NlNjg0MTk0OTg3ZDhjMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0NhY2hlZEZyYW1lLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6
cmVzdG9yZSgpCiAgICAgbV9jYWNoZWRGcmFtZVNjcmlwdERhdGEtPnJlc3RvcmUoZnJhbWUpOwog
CiAgICAgaWYgKG1fZG9jdW1lbnQtPnN2Z0V4dGVuc2lvbnMoKSkKLSAgICAgICAgbV9kb2N1bWVu
dC0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT51bnBhdXNlQW5pbWF0aW9ucygpOworICAgICAgICBt
X2RvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVzZUFuaW1hdGlvbnMoKTsKIAog
ICAgIGZyYW1lLmFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudChtX2RvY3Vt
ZW50LmdldCgpKTsKICAgICBtX2RvY3VtZW50LT5yZXN1bWVBY3RpdmVET01PYmplY3RzKEFjdGl2
ZURPTU9iamVjdDo6RG9jdW1lbnRXaWxsQmVjb21lSW5hY3RpdmUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKaW5kZXggZjMxZTdiOTRi
N2I1MTE3NmNmN2MzNDUxMzkwYjg1ZDYwYzgyNzA3Ny4uYWVmOTAyZDk5OTk1NjZkNDQxYjM0ZjU0
MDE4N2E2NTkyMjNiOGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmls
dGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIEdyYXBoaWNzQ29udGV4dCog
RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmlucHV0Q29udGV4dCgpCiBQYXNzUmVmUHRyPEZpbHRlckVm
ZmVjdD4gRmlsdGVyRWZmZWN0UmVuZGVyZXI6OmJ1aWxkUmVmZXJlbmNlRmlsdGVyKFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyLCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gcHJldmlvdXNFZmZlY3Qs
IFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbiogZmlsdGVyT3BlcmF0aW9uKQogewogICAgIGlmICgh
cmVuZGVyZXIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9ICZyZW5kZXJlci0+ZG9jdW1lbnQoKTsKIApAQCAtMTAw
LDE1ICsxMDAsMTUgQEAgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IEZpbHRlckVmZmVjdFJlbmRl
cmVyOjpidWlsZFJlZmVyZW5jZUZpbHRlcihSZW5kZXJFbGVtZW4KICAgICAgICAgZG9jdW1lbnQg
PSBjYWNoZWRTVkdEb2N1bWVudC0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEVsZW1lbnQq
IGZpbHRlciA9IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJZChmaWx0ZXJPcGVyYXRpb24tPmZyYWdt
ZW50KCkpOwogICAgIGlmICghZmlsdGVyKSB7CiAgICAgICAgIC8vIEFsdGhvdWdoIHdlIGRpZCBu
b3QgZmluZCB0aGUgcmVmZXJlbmNlZCBmaWx0ZXIsIGl0IG1pZ2h0IGV4aXN0IGxhdGVyIGluIHRo
ZSBkb2N1bWVudC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2tpcHMgYW5vbnltb3VzIFJlbmRl
ck9iamVjdHMuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzEwODU+CiAgICAgICAgIGlmIChFbGVt
ZW50KiBlbGVtZW50ID0gcmVuZGVyZXItPmVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPmFkZFBlbmRpbmdSZXNvdXJjZShmaWx0ZXJPcGVyYXRp
b24tPmZyYWdtZW50KCksIGVsZW1lbnQpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IGRvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKGZpbHRl
ck9wZXJhdGlvbi0+ZnJhZ21lbnQoKSwgZWxlbWVudCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGVmZmVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAKaW5kZXggMGZh
NTE5ZWY5NTU3YWI1YjkyZDBhZDFmMTVhNmUyMDYxMDUzN2ZmMC4uNzViN2MwYzcyYmQ3NjMxODg3
MGE2N2E5ZmIxNTY1NWRjZDk0N2ZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgcmVtb3ZlRnJvbUNhY2hlQW5kSW52YWxpZGF0ZURlcGVuZGVuY2llcyhSZW5k
ZXJFbGVtZW50JiByZW5kZQogCiAgICAgaWYgKCFyZW5kZXJlci5lbGVtZW50KCkgfHwgIXJlbmRl
cmVyLmVsZW1lbnQoKS0+aXNTVkdFbGVtZW50KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBIYXNo
U2V0PFNWR0VsZW1lbnQqPiogZGVwZW5kZW5jaWVzID0gcmVuZGVyZXIuZG9jdW1lbnQoKS5hY2Nl
c3NTVkdFeHRlbnNpb25zKCktPnNldE9mRWxlbWVudHNSZWZlcmVuY2luZ1RhcmdldChkb3duY2Fz
dDxTVkdFbGVtZW50PihyZW5kZXJlci5lbGVtZW50KCkpKTsKKyAgICBIYXNoU2V0PFNWR0VsZW1l
bnQqPiogZGVwZW5kZW5jaWVzID0gcmVuZGVyZXIuZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNp
b25zKCkuc2V0T2ZFbGVtZW50c1JlZmVyZW5jaW5nVGFyZ2V0KGRvd25jYXN0PFNWR0VsZW1lbnQ+
KHJlbmRlcmVyLmVsZW1lbnQoKSkpOwogICAgIGlmICghZGVwZW5kZW5jaWVzKQogICAgICAgICBy
ZXR1cm47CiAgICAgZm9yIChhdXRvKiBlbGVtZW50IDogKmRlcGVuZGVuY2llcykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyLmNwcAppbmRleCBjMWE0YjU1NDQ2YTk2NjNjNzE1NzliNDEwY2Q3M2ZhMjg2Mzkx
MTY3Li42YWU1MjE3MzM5ZDQzYTlhOTYwNWM2NDIyNWU0NjNkY2FiZTdjMTg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyLmNwcApAQCAtMzEsOCArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
YXRpYyBpbmxpbmUgU1ZHRG9jdW1lbnRFeHRlbnNpb25zJiBzdmdFeHRlbnNpb25zRnJvbUVsZW1l
bnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICAvLyBGSVhNRTogYWNjZXNzU1ZHRXh0ZW5z
aW9ucygpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UuCi0gICAgcmV0dXJuICplbGVtZW50LmRv
Y3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpOworICAgIHJldHVybiBlbGVtZW50LmRvY3Vt
ZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpOwogfQogCiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcjo6UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoU1ZHRWxlbWVudCYgZWxlbWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKaW5kZXggNGE4NzNiNDMy
ZjBkNzgwZDVkZWQ1MzkxZjQwOTU2ZDY3MzcwNDBiMi4uYTM4MDZlNjI4MzVjNjFkY2E1MDRlMjJi
ZWMyMTk2MDQ0YjYyNjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaApAQCAtODAsMTIgKzgwLDEyIEBA
IFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciwgaXNT
VkdSZXNvdXJjZUNvbnRhaW5lcigpKQogaW5saW5lIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
KiBnZXRSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lckJ5SWQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBBdG9taWNTdHJpbmcmIGlkKQogewogICAgIGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lciogcmVuZGVyUmVzb3VyY2UgPSBkb2N1bWVudC5hY2Nlc3NTVkdFeHRl
bnNpb25zKCktPnJlc291cmNlQnlJZChpZCkpCisgICAgaWYgKFJlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyKiByZW5kZXJSZXNvdXJjZSA9IGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5y
ZXNvdXJjZUJ5SWQoaWQpKQogICAgICAgICByZXR1cm4gcmVuZGVyUmVzb3VyY2U7CiAKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgUmVu
ZGVyZXI+CkBAIC05NCw3ICs5NCw3IEBAIFJlbmRlcmVyKiBnZXRSZW5kZXJTVkdSZXNvdXJjZUJ5
SWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogICAgIGlmIChS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogY29udGFpbmVyID0gZ2V0UmVuZGVyU1ZHUmVzb3Vy
Y2VDb250YWluZXJCeUlkKGRvY3VtZW50LCBpZCkpCiAgICAgICAgIHJldHVybiBjb250YWluZXIt
PmNhc3Q8UmVuZGVyZXI+KCk7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNv
dXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3Bw
CmluZGV4IDRmM2Q0NWYxODJhMDhjM2JjODQxMmJiMDc0MGQxODdlZDFhMGY5OTYuLjhjZGM4NjI0
MGUyZDhiYTFmYTUzMzNlODdjMDM2NTYzM2I1MWRiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKQEAgLTE3Miw5ICsxNzIsOSBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiBwYWludGluZ1Jlc291cmNlRnJvbVNW
R1BhaW50KERvY3VtZW50JgogICAgIHJldHVybiBjb250YWluZXI7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCByZWdpc3RlclBlbmRpbmdSZXNvdXJjZShTVkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4
dGVuc2lvbnMsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFNWR0VsZW1lbnQmIGVsZW1lbnQpCitz
dGF0aWMgaW5saW5lIHZvaWQgcmVnaXN0ZXJQZW5kaW5nUmVzb3VyY2UoU1ZHRG9jdW1lbnRFeHRl
bnNpb25zJiBleHRlbnNpb25zLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBTVkdFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGV4dGVuc2lvbnMtPmFkZFBlbmRpbmdSZXNvdXJjZShpZCwgJmVsZW1l
bnQpOworICAgIGV4dGVuc2lvbnMuYWRkUGVuZGluZ1Jlc291cmNlKGlkLCAmZWxlbWVudCk7CiB9
CiAKIGJvb2wgU1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNlcyhjb25zdCBSZW5kZXJF
bGVtZW50JiByZW5kZXJlciwgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlKQpAQCAtMTg5
LDggKzE4OSw3IEBAIGJvb2wgU1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNlcyhjb25z
dCBSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgU1ZHCiAKICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAKLSAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMq
IGV4dGVuc2lvbnMgPSBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCk7Ci0gICAgQVNTRVJU
KGV4dGVuc2lvbnMpOworICAgIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyYgZXh0ZW5zaW9ucyA9IGRv
Y3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKTsKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
dGFnTmFtZSA9IGVsZW1lbnQubG9jYWxOYW1lKCk7CiAgICAgaWYgKHRhZ05hbWUuaXNOdWxsKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0Nh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUu
Y3BwCmluZGV4IGY5MjY2MDEzOTc2MDFjNzhjNGM2YTA1NDliMDA0ZjI2MGZmZGJhMDguLmE5NTBj
NDBjZGY4ZTRjODY5YWVkOWExZjAwZWEwOWMzNTQ3ZjcyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCkBAIC03Nyw5ICs3Nyw3
IEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OnJlbW92ZVJlc291cmNlc0Zyb21SZW5kZXJlcihS
ZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIAogc3RhdGljIGlubGluZSBTVkdSZXNvdXJjZXNDYWNo
ZSYgcmVzb3VyY2VzQ2FjaGVGcm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVy
ZXIpCiB7Ci0gICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNpb25zID0gcmVuZGVyZXIu
ZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCk7Ci0gICAgQVNTRVJUKGV4dGVuc2lvbnMp
OwotICAgIHJldHVybiBleHRlbnNpb25zLT5yZXNvdXJjZXNDYWNoZSgpOworICAgIHJldHVybiBy
ZW5kZXJlci5kb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXNvdXJjZXNDYWNoZSgp
OwogfQogCiBTVkdSZXNvdXJjZXMqIFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNG
b3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKQEAgLTE3NSw5ICsxNzMs
NyBAQCB2b2lkIFNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZChSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lciYgcmVzb3VyY2UpCiAgICAgICAgIC8vIE1hcmsgdXNlcnMgb2YgZGVz
dHJveWVkIHJlc291cmNlcyBhcyBwZW5kaW5nIHJlc29sdXRpb24gYmFzZWQgb24gdGhlIGlkIG9m
IHRoZSBvbGQgcmVzb3VyY2UuCiAgICAgICAgIEVsZW1lbnQmIHJlc291cmNlRWxlbWVudCA9IHJl
c291cmNlLmVsZW1lbnQoKTsKICAgICAgICAgRWxlbWVudCogY2xpZW50RWxlbWVudCA9IGl0Lmtl
eS0+ZWxlbWVudCgpOwotICAgICAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMg
PSBjbGllbnRFbGVtZW50LT5kb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKTsKLQotICAg
ICAgICBleHRlbnNpb25zLT5hZGRQZW5kaW5nUmVzb3VyY2UocmVzb3VyY2VFbGVtZW50LmdldElk
QXR0cmlidXRlKCksIGNsaWVudEVsZW1lbnQpOworICAgICAgICBjbGllbnRFbGVtZW50LT5kb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRQZW5kaW5nUmVzb3VyY2UocmVzb3VyY2VF
bGVtZW50LmdldElkQXR0cmlidXRlKCksIGNsaWVudEVsZW1lbnQpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4IGQyZjY5NDkwYmQ1YTY3ZjRkNDIwMzUyYjRjZmMw
MWM4NzM5OTk4ODMuLjI1YzExNjBkMDRiMDI4Yzc2OGFlZWNiNDM1NTVkY2VjM2JmOTFkZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAgLTI4OSw4ICsyODksOCBAQCBTVkdFbGVtZW50
Ojp+U1ZHRWxlbWVudCgpCiAKICAgICAgICAgbV9zdmdSYXJlRGF0YSA9IG51bGxwdHI7CiAgICAg
fQotICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZWJ1aWxkQWxsRWxlbWVu
dFJlZmVyZW5jZXNGb3JUYXJnZXQoKnRoaXMpOwotICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLT5yZW1vdmVBbGxFbGVtZW50UmVmZXJlbmNlc0ZvclRhcmdldCh0aGlzKTsKKyAg
ICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZWJ1aWxkQWxsRWxlbWVudFJlZmVy
ZW5jZXNGb3JUYXJnZXQoKnRoaXMpOworICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLnJlbW92ZUFsbEVsZW1lbnRSZWZlcmVuY2VzRm9yVGFyZ2V0KHRoaXMpOwogfQogCiBzaG9y
dCBTVkdFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0CkBAIC0zNDcsMTUgKzM0NywxNSBAQCB2b2lk
IFNWR0VsZW1lbnQ6OnJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihTVkdQYXJzaW5nRXJyb3Ig
ZXJyb3IsIGNvbnN0IFF1YWxpZgogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgZXJyb3JT
dHJpbmcgPSAiPCIgKyB0YWdOYW1lKCkgKyAiPiBhdHRyaWJ1dGUgIiArIG5hbWUudG9TdHJpbmco
KSArICI9XCIiICsgdmFsdWUgKyAiXCIiOwotICAgIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyogZXh0
ZW5zaW9ucyA9IGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpOworICAgIFNWR0RvY3Vt
ZW50RXh0ZW5zaW9ucyYgZXh0ZW5zaW9ucyA9IGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpOwogCiAgICAgaWYgKGVycm9yID09IE5lZ2F0aXZlVmFsdWVGb3JiaWRkZW5FcnJvcikgewot
ICAgICAgICBleHRlbnNpb25zLT5yZXBvcnRFcnJvcigiSW52YWxpZCBuZWdhdGl2ZSB2YWx1ZSBm
b3IgIiArIGVycm9yU3RyaW5nKTsKKyAgICAgICAgZXh0ZW5zaW9ucy5yZXBvcnRFcnJvcigiSW52
YWxpZCBuZWdhdGl2ZSB2YWx1ZSBmb3IgIiArIGVycm9yU3RyaW5nKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChlcnJvciA9PSBQYXJzaW5nQXR0cmlidXRlRmFpbGVkRXJyb3Ip
IHsKLSAgICAgICAgZXh0ZW5zaW9ucy0+cmVwb3J0RXJyb3IoIkludmFsaWQgdmFsdWUgZm9yICIg
KyBlcnJvclN0cmluZyk7CisgICAgICAgIGV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkludmFsaWQg
dmFsdWUgZm9yICIgKyBlcnJvclN0cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTM4Niw4ICszODYsOCBAQCB2b2lkIFNWR0VsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUmIHJvb3RQYXJlbnQpCiAgICAgU3R5bGVkRWxlbWVudDo6cmVtb3ZlZEZyb20ocm9vdFBhcmVu
dCk7CiAKICAgICBpZiAod2FzSW5Eb2N1bWVudCkgewotICAgICAgICBkb2N1bWVudCgpLmFjY2Vz
c1NWR0V4dGVuc2lvbnMoKS0+Y2xlYXJUYXJnZXREZXBlbmRlbmNpZXMoKnRoaXMpOwotICAgICAg
ICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVtb3ZlQWxsRWxlbWVudFJlZmVy
ZW5jZXNGb3JUYXJnZXQodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5z
aW9ucygpLmNsZWFyVGFyZ2V0RGVwZW5kZW5jaWVzKCp0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVtb3ZlQWxsRWxlbWVudFJlZmVyZW5jZXNGb3JUYXJn
ZXQodGhpcyk7CiAgICAgfQogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6aW52YWxpZGF0ZUFsbElu
c3RhbmNlc09mRWxlbWVudCh0aGlzKTsKIH0KQEAgLTQxOSwxMyArNDE5LDYgQEAgU1ZHRWxlbWVu
dCogU1ZHRWxlbWVudDo6dmlld3BvcnRFbGVtZW50KCkgY29uc3QKIAogICAgIHJldHVybiBudWxs
cHRyOwogfQotCi1TVkdEb2N1bWVudEV4dGVuc2lvbnMqIFNWR0VsZW1lbnQ6OmFjY2Vzc0RvY3Vt
ZW50U1ZHRXh0ZW5zaW9ucygpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBm
b3IgdXNlIGJ5IFNWR0FuaW1hdGVkUHJvcGVydHkgdG8gYXZvaWQKLSAgICAvLyBnbG9iYWwgaW5j
bHVzaW9uIG9mIERvY3VtZW50LmggaW4gU1ZHIGNvZGUuCi0gICAgcmV0dXJuIGRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOwotfQogIAogdm9pZCBTVkdFbGVtZW50OjptYXBJbnN0YW5j
ZVRvRWxlbWVudChTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlKQogewpAQCAtNzQ0LDcgKzcz
Nyw3IEBAIHZvaWQgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgU3R5bGVkRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpOwogCiAgICAgaWYgKG5hbWUgPT0g
SFRNTE5hbWVzOjppZEF0dHIpCi0gICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLT5yZWJ1aWxkQWxsRWxlbWVudFJlZmVyZW5jZXNGb3JUYXJnZXQoKnRoaXMpOworICAgICAg
ICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZWJ1aWxkQWxsRWxlbWVudFJlZmVy
ZW5jZXNGb3JUYXJnZXQoKnRoaXMpOwogCiAgICAgLy8gQ2hhbmdlcyB0byB0aGUgc3R5bGUgYXR0
cmlidXRlIGFyZSBwcm9jZXNzZWQgbGF6aWx5IChzZWUgRWxlbWVudDo6Z2V0QXR0cmlidXRlKCkg
YW5kIHJlbGF0ZWQgbWV0aG9kcyksCiAgICAgLy8gc28gd2UgZG9uJ3Qgd2FudCBjaGFuZ2VzIHRv
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgdG8gcmVzdWx0IGluIGV4dHJhIHdvcmsgaGVyZS4KQEAgLTEw
ODEsMjAgKzEwNzQsMjAgQEAgdm9pZCBTVkdFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZXNJ
Zk5lZWRlZCgpCiAgICAgaWYgKCFuZWVkc1BlbmRpbmdSZXNvdXJjZUhhbmRsaW5nKCkgfHwgIWlu
RG9jdW1lbnQoKSB8fCBpc0luU2hhZG93VHJlZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBT
VkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4
dGVuc2lvbnMoKTsKKyAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMmIGV4dGVuc2lvbnMgPSBkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKTsKICAgICBTdHJpbmcgcmVzb3VyY2VJZCA9IGdl
dElkQXR0cmlidXRlKCk7Ci0gICAgaWYgKCFleHRlbnNpb25zLT5pc0lkT2ZQZW5kaW5nUmVzb3Vy
Y2UocmVzb3VyY2VJZCkpCisgICAgaWYgKCFleHRlbnNpb25zLmlzSWRPZlBlbmRpbmdSZXNvdXJj
ZShyZXNvdXJjZUlkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTWFyayBwZW5kaW5nIHJl
c291cmNlcyBhcyBwZW5kaW5nIGZvciByZW1vdmFsLgotICAgIGV4dGVuc2lvbnMtPm1hcmtQZW5k
aW5nUmVzb3VyY2VzRm9yUmVtb3ZhbChyZXNvdXJjZUlkKTsKKyAgICBleHRlbnNpb25zLm1hcmtQ
ZW5kaW5nUmVzb3VyY2VzRm9yUmVtb3ZhbChyZXNvdXJjZUlkKTsKIAogICAgIC8vIFJlYnVpbGQg
cGVuZGluZyByZXNvdXJjZXMgZm9yIGVhY2ggY2xpZW50IG9mIGEgcGVuZGluZyByZXNvdXJjZSB0
aGF0IGlzIGJlaW5nIHJlbW92ZWQuCi0gICAgd2hpbGUgKEVsZW1lbnQqIGNsaWVudEVsZW1lbnQg
PSBleHRlbnNpb25zLT5yZW1vdmVFbGVtZW50RnJvbVBlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFs
TWFwKHJlc291cmNlSWQpKSB7CisgICAgd2hpbGUgKEVsZW1lbnQqIGNsaWVudEVsZW1lbnQgPSBl
eHRlbnNpb25zLnJlbW92ZUVsZW1lbnRGcm9tUGVuZGluZ1Jlc291cmNlc0ZvclJlbW92YWxNYXAo
cmVzb3VyY2VJZCkpIHsKICAgICAgICAgQVNTRVJUKGNsaWVudEVsZW1lbnQtPmhhc1BlbmRpbmdS
ZXNvdXJjZXMoKSk7CiAgICAgICAgIGlmIChjbGllbnRFbGVtZW50LT5oYXNQZW5kaW5nUmVzb3Vy
Y2VzKCkpIHsKICAgICAgICAgICAgIGNsaWVudEVsZW1lbnQtPmJ1aWxkUGVuZGluZ1Jlc291cmNl
KCk7Ci0gICAgICAgICAgICBleHRlbnNpb25zLT5jbGVhckhhc1BlbmRpbmdSZXNvdXJjZXNJZlBv
c3NpYmxlKGNsaWVudEVsZW1lbnQpOworICAgICAgICAgICAgZXh0ZW5zaW9ucy5jbGVhckhhc1Bl
bmRpbmdSZXNvdXJjZXNJZlBvc3NpYmxlKGNsaWVudEVsZW1lbnQpOwogICAgICAgICB9CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggYjA5YjcxZDY3NTFjOTYxZGJkZDMxZjcz
MGZhMTFkNDBhMGVmNmVkMi4uNmJkZTdiYzQxYjUzZjczYWJlZjliMzkxNzIyMmVmYzYxNGRlZGVh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC03NCw4ICs3NCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEluc3RhbmNlVXBkYXRlc0Jsb2NrZWQoYm9vbCk7CiAgICAgdmlydHVhbCBBZmZp
bmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpD
VE1TY29wZSkgY29uc3Q7CiAKLSAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIGFjY2Vzc0RvY3Vt
ZW50U1ZHRXh0ZW5zaW9ucygpOwotCiAgICAgdmlydHVhbCBib29sIGlzU1ZHR3JhcGhpY3NFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGaWx0ZXJF
ZmZlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYWRp
ZW50U3RvcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA4MWFmNWQxOTdjMjI0NmYx
ODdmODljZTFiODczNGNiNTFjOTdjM2Y5Li5hMjU5MjEwOTQ2ZWEwNzNjMGQ0ODA5OTE3Mzc5MTQ1
OGQ5ZTg1MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dAogICAgICAgICAgICAgc2V0T3JkZXJYQmFzZVZhbHVlKHgpOwogICAgICAgICAgICAgc2V0T3Jk
ZXJZQmFzZVZhbHVlKHkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZXBvcnRXYXJuaW5nKAorICAgICAgICAgICAgZG9jdW1l
bnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2FybmluZygKICAgICAgICAgICAgICAg
ICAiZmVDb252b2x2ZU1hdHJpeDogcHJvYmxlbSBwYXJzaW5nIG9yZGVyPVwiIiArIHZhbHVlCiAg
ICAgICAgICAgICAgICAgKyAiXCIuIEZpbHRlcmVkIGVsZW1lbnQgd2lsbCBub3QgYmUgZGlzcGxh
eWVkLiIpOwogICAgICAgICByZXR1cm47CkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QKICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAg
c2V0RWRnZU1vZGVCYXNlVmFsdWUocHJvcGVydHlWYWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZXBvcnRXYXJuaW5nKAor
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2Fybmlu
ZygKICAgICAgICAgICAgICAgICAiZmVDb252b2x2ZU1hdHJpeDogcHJvYmxlbSBwYXJzaW5nIGVk
Z2VNb2RlPVwiIiArIHZhbHVlCiAgICAgICAgICAgICAgICAgKyAiXCIuIEZpbHRlcmVkIGVsZW1l
bnQgd2lsbCBub3QgYmUgZGlzcGxheWVkLiIpOwogICAgICAgICByZXR1cm47CkBAIC0xNjYsNyAr
MTY2LDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgaWYgKGRpdmlzb3IpCiAg
ICAgICAgICAgICBzZXREaXZpc29yQmFzZVZhbHVlKGRpdmlzb3IpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVwb3J0V2Fybmlu
ZygKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydFdh
cm5pbmcoCiAgICAgICAgICAgICAgICAgImZlQ29udm9sdmVNYXRyaXg6IHByb2JsZW0gcGFyc2lu
ZyBkaXZpc29yPVwiIiArIHZhbHVlCiAgICAgICAgICAgICAgICAgKyAiXCIuIEZpbHRlcmVkIGVs
ZW1lbnQgd2lsbCBub3QgYmUgZGlzcGxheWVkLiIpOwogICAgICAgICByZXR1cm47CkBAIC0xOTMs
NyArMTkzLDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgICAgIHNldEtlcm5l
bFVuaXRMZW5ndGhYQmFzZVZhbHVlKHgpOwogICAgICAgICAgICAgc2V0S2VybmVsVW5pdExlbmd0
aFlCYXNlVmFsdWUoeSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZG9jdW1lbnQoKS5h
Y2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9ydFdhcm5pbmcoCisgICAgICAgICAgICBkb2N1bWVu
dCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKAogICAgICAgICAgICAgICAg
ICJmZUNvbnZvbHZlTWF0cml4OiBwcm9ibGVtIHBhcnNpbmcga2VybmVsVW5pdExlbmd0aD1cIiIg
KyB2YWx1ZQogICAgICAgICAgICAgICAgICsgIlwiLiBGaWx0ZXJlZCBlbGVtZW50IHdpbGwgbm90
IGJlIGRpc3BsYXllZC4iKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZv
aWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJmYWxzZSIp
CiAgICAgICAgICAgICBzZXRQcmVzZXJ2ZUFscGhhQmFzZVZhbHVlKGZhbHNlKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9y
dFdhcm5pbmcoCisgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5y
ZXBvcnRXYXJuaW5nKAogICAgICAgICAgICAgICAgICJmZUNvbnZvbHZlTWF0cml4OiBwcm9ibGVt
IHBhcnNpbmcgcHJlc2VydmVBbHBoYUF0dHI9XCIiICsgdmFsdWUKICAgICAgICAgICAgICAgICAr
ICJcIi4gRmlsdGVyZWQgZWxlbWVudCB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuIik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dC5jcHAKaW5kZXggODQ1NDRiZmIxMjY1ZDBlOGM4OWVkODY2MTVhYzdhMDE1OGYyMDBkOC4uZjhi
YzhhMTJlYWFhZGI1YTRhYjYwMmUzMWRmNDE1ZThjOTVhODY4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTExNCw3ICsxMTQsNyBA
QCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQQogICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA+IDAp
CiAgICAgICAgICAgICBzZXRFZGdlTW9kZUJhc2VWYWx1ZShwcm9wZXJ0eVZhbHVlKTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJl
cG9ydFdhcm5pbmcoCisgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS5yZXBvcnRXYXJuaW5nKAogICAgICAgICAgICAgICAgICJmZUdhdXNzaWFuQmx1cjogcHJvYmxl
bSBwYXJzaW5nIGVkZ2VNb2RlPVwiIiArIHZhbHVlCiAgICAgICAgICAgICAgICAgKyAiXCIuIEZp
bHRlcmVkIGVsZW1lbnQgd2lsbCBub3QgYmUgZGlzcGxheWVkLiIpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3MDQ1MGQ4M2Q3
MTViZDcwNDMxYjRjMzMxMzcwMGRkYjAxMWMzYjE2Li5kZjdiYWQyNTAxZTU2MGMxMmExYjhjNzIw
YTA5OTE3MjNiOWE0NjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJj
ZVJlZmVyZW5jZXMoKQogICAgICAgICBtX2NhY2hlZEltYWdlID0gMDsKICAgICB9CiAKLSAgICBk
b2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVtb3ZlQWxsVGFyZ2V0UmVmZXJlbmNl
c0ZvckVsZW1lbnQodGhpcyk7CisgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCku
cmVtb3ZlQWxsVGFyZ2V0UmVmZXJlbmNlc0ZvckVsZW1lbnQodGhpcyk7CiB9CiAKIHZvaWQgU1ZH
RkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKQEAgLTEwMCwxMyArMTAwLDEz
IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKICAgICAg
ICAgaWYgKGlkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlcXVlc3RJbWFnZVJlc291cmNlKCk7
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNp
b25zKCktPmFkZFBlbmRpbmdSZXNvdXJjZShpZCwgdGhpcyk7CisgICAgICAgICAgICBkb2N1bWVu
dCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRQZW5kaW5nUmVzb3VyY2UoaWQsIHRoaXMpOwog
ICAgICAgICAgICAgQVNTRVJUKGhhc1BlbmRpbmdSZXNvdXJjZXMoKSk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKHRhcmdldC0+aXNTVkdFbGVtZW50KCkpIHsKICAgICAgICAgLy8gUmVnaXN0
ZXIgdXMgd2l0aCB0aGUgdGFyZ2V0IGluIHRoZSBkZXBlbmRlbmNpZXMgbWFwLiBBbnkgY2hhbmdl
IG9mIGhyZWZFbGVtZW50CiAgICAgICAgIC8vIHRoYXQgbGVhZHMgdG8gcmVsYXlvdXQvcmVwYWlu
dGluZyBub3cgaW5mb3JtcyB1cywgc28gd2UgY2FuIHJlYWN0IHRvIGl0LgotICAgICAgICBkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+YWRkRWxlbWVudFJlZmVyZW5jaW5nVGFyZ2V0
KHRoaXMsIGRvd25jYXN0PFNWR0VsZW1lbnQ+KHRhcmdldCkpOworICAgICAgICBkb2N1bWVudCgp
LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRFbGVtZW50UmVmZXJlbmNpbmdUYXJnZXQodGhpcywg
ZG93bmNhc3Q8U1ZHRWxlbWVudD4odGFyZ2V0KSk7CiAgICAgfQogCiAgICAgaW52YWxpZGF0ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAppbmRleCBlMzBlMjcwNjVmN2Vk
NmYzOGIxYjAxNzFhMmQ1Y2U0OWUxZmNlN2FiLi5mY2NiM2EyMmNkOWEyNGJmNTM0NWJiZTFmOGUz
ZjkyMzE0ZjM2Y2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcApAQCAt
NTYsMjEgKzU2LDIxIEBAIGJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goRG9jdW1l
bnQqIGRvYywgY29uc3QgVUNoYXIqJiBjLCBjb25zdCBVQ2hhcioKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRl
bnNpb25zKCktPnJlcG9ydFdhcm5pbmcoIlByb2JsZW0gcGFyc2luZyB2aWV3Qm94PVwiIiArIHN0
ciArICJcIiIpOworICAgICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJu
aW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmICh3aWR0aCA8IDAuMCkgeyAvLyBjaGVjayB0
aGF0IHdpZHRoIGlzIHBvc2l0aXZlCi0gICAgICAgIGRvYy0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygp
LT5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgVmlld0JveCB3aWR0aCBpcyBub3Qg
YWxsb3dlZCIpOworICAgICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJv
cigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgVmlld0JveCB3aWR0aCBpcyBub3QgYWxsb3dlZCIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmIChoZWlnaHQgPCAwLjApIHsgLy8g
Y2hlY2sgdGhhdCBoZWlnaHQgaXMgcG9zaXRpdmUKLSAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRl
bnNpb25zKCktPnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdo
dCBpcyBub3QgYWxsb3dlZCIpOworICAgICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5y
ZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgVmlld0JveCBoZWlnaHQgaXMgbm90IGFs
bG93ZWQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBza2lwT3B0aW9uYWxT
VkdTcGFjZXMoYywgZW5kKTsKICAgICBpZiAoYyA8IGVuZCkgeyAvLyBub3RoaW5nIHNob3VsZCBj
b21lIGFmdGVyIHRoZSBsYXN0LCBmb3VydGggbnVtYmVyCi0gICAgICAgIGRvYy0+YWNjZXNzU1ZH
RXh0ZW5zaW9ucygpLT5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIg
KyBzdHIgKyAiXCIiKTsKKyAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0
V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
RWxlbWVudC5jcHAKaW5kZXggOTQ3MDA4YTVkM2MzOTZhNTY2MWU2ZTMxYmExYWFiMzFmMjA3MTJm
YS4uNTg0MDNjZTcxY2FjYWY5YzIyOTI2YzA5NjI5ZjBkYzgyNTU3MWFhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKQEAgLTI3Miw3ICsyNzIsNyBAQCBOb2Rl
OjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IFNWR0ZvbnRGYWNlRWxlbWVudDo6aW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZAogICAgICAgICBBU1NFUlQoIW1fZm9udEVsZW1lbnQpOwogICAg
ICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKICAgICB9Ci0gICAgZG9jdW1lbnQoKS5hY2Nlc3NT
VkdFeHRlbnNpb25zKCktPnJlZ2lzdGVyU1ZHRm9udEZhY2VFbGVtZW50KHRoaXMpOworICAgIGRv
Y3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlZ2lzdGVyU1ZHRm9udEZhY2VFbGVtZW50
KHRoaXMpOwogCiAgICAgcmVidWlsZEZvbnRGYWNlKCk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRv
bmU7CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnJlbW92ZWRG
cm9tKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCiAKICAgICBpZiAocm9vdFBhcmVudC5pbkRv
Y3VtZW50KCkpIHsKICAgICAgICAgbV9mb250RWxlbWVudCA9IDA7Ci0gICAgICAgIGRvY3VtZW50
KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT51bnJlZ2lzdGVyU1ZHRm9udEZhY2VFbGVtZW50KHRo
aXMpOworICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS51bnJlZ2lzdGVy
U1ZHRm9udEZhY2VFbGVtZW50KHRoaXMpOwogICAgICAgICBtX2ZvbnRGYWNlUnVsZS0+bXV0YWJs
ZVByb3BlcnRpZXMoKS5jbGVhcigpOwogCiAgICAgICAgIGRvY3VtZW50KCkuc3R5bGVSZXNvbHZl
ckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1l
bnQuY3BwCmluZGV4IGZmYmFjODlkMTdhNWI1YWE2OTM1YThmMGE0YzU0MzhmZDNiZTI5ZjYuLjJj
M2NlN2E1OTk5MzU4ZmFlMWIyOTYzNDBiZjYwMDNkZDY5NzMwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCkBAIC02NiwxNyArNjYsMTcgQEAgdm9pZCBTVkdNUGF0aEVs
ZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKICAgICBFbGVtZW50KiB0YXJnZXQgPSBTVkdV
UklSZWZlcmVuY2U6OnRhcmdldEVsZW1lbnRGcm9tSVJJU3RyaW5nKGhyZWYoKSwgZG9jdW1lbnQo
KSwgJmlkKTsKICAgICBpZiAoIXRhcmdldCkgewogICAgICAgICAvLyBEbyBub3QgcmVnaXN0ZXIg
YXMgcGVuZGluZyBpZiB3ZSBhcmUgYWxyZWFkeSBwZW5kaW5nIHRoaXMgcmVzb3VyY2UuCi0gICAg
ICAgIGlmIChkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+aXNQZW5kaW5nUmVzb3Vy
Y2UodGhpcywgaWQpKQorICAgICAgICBpZiAoZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25z
KCkuaXNQZW5kaW5nUmVzb3VyY2UodGhpcywgaWQpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIGlmICghaWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vz
c1NWR0V4dGVuc2lvbnMoKS0+YWRkUGVuZGluZ1Jlc291cmNlKGlkLCB0aGlzKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZShp
ZCwgdGhpcyk7CiAgICAgICAgICAgICBBU1NFUlQoaGFzUGVuZGluZ1Jlc291cmNlcygpKTsKICAg
ICAgICAgfQogICAgIH0gZWxzZSBpZiAodGFyZ2V0LT5pc1NWR0VsZW1lbnQoKSkgewogICAgICAg
ICAvLyBSZWdpc3RlciB1cyB3aXRoIHRoZSB0YXJnZXQgaW4gdGhlIGRlcGVuZGVuY2llcyBtYXAu
IEFueSBjaGFuZ2Ugb2YgaHJlZkVsZW1lbnQKICAgICAgICAgLy8gdGhhdCBsZWFkcyB0byByZWxh
eW91dC9yZXBhaW50aW5nIG5vdyBpbmZvcm1zIHVzLCBzbyB3ZSBjYW4gcmVhY3QgdG8gaXQuCi0g
ICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5hZGRFbGVtZW50UmVmZXJl
bmNpbmdUYXJnZXQodGhpcywgZG93bmNhc3Q8U1ZHRWxlbWVudD4odGFyZ2V0KSk7CisgICAgICAg
IGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZEVsZW1lbnRSZWZlcmVuY2luZ1Rh
cmdldCh0aGlzLCBkb3duY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQpKTsKICAgICB9CiAKICAgICB0
YXJnZXRQYXRoQ2hhbmdlZCgpOwpAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR01QYXRoRWxlbWVu
dDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQogCiB2b2lkIFNWR01QYXRoRWxlbWVudDo6Y2xlYXJS
ZXNvdXJjZVJlZmVyZW5jZXMoKQogewotICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLT5yZW1vdmVBbGxUYXJnZXRSZWZlcmVuY2VzRm9yRWxlbWVudCh0aGlzKTsKKyAgICBkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZW1vdmVBbGxUYXJnZXRSZWZlcmVuY2VzRm9y
RWxlbWVudCh0aGlzKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBT
VkdNUGF0aEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiByb290UGFyZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggMDEyOTgzZDNjMmY3OGZkZTkz
YjQ4MjI0NTYwMTJhNmE0YWE0NzE1ZS4uZjMyMzk5OGUyNGUwZmM1NGNmODA3NGUxZTQ3YzQ1ODlk
ZTFmNzcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBAIC0yMzMsMTQg
KzIzMywxNCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbgogCiAgICAgaWYgKG5hbWUgPT0gU1ZH
TmFtZXM6OmRBdHRyKSB7CiAgICAgICAgIGlmICghYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21T
dHJpbmcodmFsdWUsIG1fcGF0aEJ5dGVTdHJlYW0uZ2V0KCksIFVuYWx0ZXJlZFBhcnNpbmcpKQot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9ydEVycm9y
KCJQcm9ibGVtIHBhcnNpbmcgZD1cIiIgKyB2YWx1ZSArICJcIiIpOworICAgICAgICAgICAgZG9j
dW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3IoIlByb2JsZW0gcGFyc2lu
ZyBkPVwiIiArIHZhbHVlICsgIlwiIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobmFtZSA9PSBTVkdOYW1lczo6cGF0aExlbmd0aEF0dHIpIHsKICAgICAgICAgc2V0UGF0aExl
bmd0aEJhc2VWYWx1ZSh2YWx1ZS50b0Zsb2F0KCkpOwogICAgICAgICBpZiAocGF0aExlbmd0aEJh
c2VWYWx1ZSgpIDwgMCkKLSAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLT5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgcGF0aCBhdHRyaWJ1dGUgPHBh
dGhMZW5ndGg+IGlzIG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vz
c1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgcGF0aCBh
dHRyaWJ1dGUgPHBhdGhMZW5ndGg+IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjppbnZhbGlk
YXRlTVBhdGhEZXBlbmRlbmNpZXMoKQogewogICAgIC8vIDxtcGF0aD4gY2FuIG9ubHkgcmVmZXJl
bmNlIDxwYXRoPiBidXQgdGhpcyBkZXBlbmRlbmN5IGlzIG5vdCBoYW5kbGVkIGluCiAgICAgLy8g
bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uIHNvIHdlIHVwZGF0ZSBh
bnkgbXBhdGggZGVwZW5kZW5jaWVzIG1hbnVhbGx5LgotICAgIGlmIChIYXNoU2V0PFNWR0VsZW1l
bnQqPiogZGVwZW5kZW5jaWVzID0gZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnNl
dE9mRWxlbWVudHNSZWZlcmVuY2luZ1RhcmdldCh0aGlzKSkgeworICAgIGlmIChIYXNoU2V0PFNW
R0VsZW1lbnQqPiogZGVwZW5kZW5jaWVzID0gZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25z
KCkuc2V0T2ZFbGVtZW50c1JlZmVyZW5jaW5nVGFyZ2V0KHRoaXMpKSB7CiAgICAgICAgIGZvciAo
YXV0byogZWxlbWVudCA6ICpkZXBlbmRlbmNpZXMpIHsKICAgICAgICAgICAgIGlmIChpc1NWR01Q
YXRoRWxlbWVudChlbGVtZW50KSkKICAgICAgICAgICAgICAgICBkb3duY2FzdDxTVkdNUGF0aEVs
ZW1lbnQ+KCplbGVtZW50KS50YXJnZXRQYXRoQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5RWxlbWVudC5jcHAKaW5kZXggOTVlZjk1MDE2M2FkZWVhODZlNWIxNmUxOWIzNzM1MGIxMTE3
NDM0MC4uMTEyYzIwZjAwNzAwMWI4ZWFkMWQ3MTQyYmJmNjQwNzJhMGQzMWEzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgU1ZHUG9s
eUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0dHIpIHsKICAg
ICAgICAgU1ZHUG9pbnRMaXN0IG5ld0xpc3Q7CiAgICAgICAgIGlmICghcG9pbnRzTGlzdEZyb21T
VkdEYXRhKG5ld0xpc3QsIHZhbHVlKSkKLSAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZH
RXh0ZW5zaW9ucygpLT5yZXBvcnRFcnJvcigiUHJvYmxlbSBwYXJzaW5nIHBvaW50cz1cIiIgKyB2
YWx1ZSArICJcIiIpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25z
KCkucmVwb3J0RXJyb3IoIlByb2JsZW0gcGFyc2luZyBwb2ludHM9XCIiICsgdmFsdWUgKyAiXCIi
KTsKIAogICAgICAgICBpZiAoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogd3JhcHBlciA9IFNWR0FuaW1h
dGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9p
bnRMaXN0Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxTVkdBbmltYXRlZFBvaW50TGlzdCo+KHdyYXBwZXIpLT5kZXRhY2hMaXN0V3JhcHBlcnMo
bmV3TGlzdC5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDhk
MzQ5NGZlYWIzZDE2NDQxNDgxOTBiYWVhZmQ5MmRlMTNjYmYxMTAuLjdkMDhkMTg5ZjE0NjM2OGRh
MGIwMWRmM2Q4Mzg1MDFiNGNkZDMxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBTVkdTVkdFbGVtZW50Ojp+U1ZHU1ZHRWxlbWVudCgpCiAg
ICAgZG9jdW1lbnQoKS51bnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0
aGlzKTsKICAgICAvLyBUaGVyZSBhcmUgY2FzZXMgd2hlcmUgcmVtb3ZlZEZyb21Eb2N1bWVudCgp
IGlzIG5vdCBjYWxsZWQuCiAgICAgLy8gc2VlIENvbnRhaW5lck5vZGU6OnJlbW92ZUFsbENoaWxk
cmVuLCBjYWxsZWQgYnkgaXRzIGRlc3RydWN0b3IuCi0gICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdF
eHRlbnNpb25zKCktPnJlbW92ZVRpbWVDb250YWluZXIodGhpcyk7CisgICAgZG9jdW1lbnQoKS5h
Y2Nlc3NTVkdFeHRlbnNpb25zKCkucmVtb3ZlVGltZUNvbnRhaW5lcih0aGlzKTsKIH0KIAogdm9p
ZCBTVkdTVkdFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1l
bnQpCkBAIC00ODEsNyArNDgxLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1NWR0Vs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWwKIE5vZGU6Oklu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZHU1ZHRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCiB7CiAgICAgaWYgKHJvb3RQYXJlbnQuaW5Eb2N1bWVu
dCgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5hZGRUaW1l
Q29udGFpbmVyKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS5hZGRUaW1lQ29udGFpbmVyKHRoaXMpOwogCiAgICAgICAgIC8vIEFuaW1hdGlvbnMgYXJlIHN0
YXJ0ZWQgYXQgdGhlIGVuZCBvZiBkb2N1bWVudCBwYXJzaW5nIGFuZCBhZnRlciBmaXJpbmcgdGhl
IGxvYWQgZXZlbnQsCiAgICAgICAgIC8vIGJ1dCBpZiB3ZSBtaXNzIHRoYXQgdHJhaW4gKGRlZmVy
cmVkIHByb2dyYW1tYXRpYyBlbGVtZW50IGluc2VydGlvbiBmb3IgZXhhbXBsZSkgd2UgbmVlZApA
QCAtNDk1LDcgKzQ5NSw3IEBAIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZH
U1ZHRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIHJvCiB2b2lkIFNWR1NWR0Vs
ZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCiB7CiAgICAgaWYg
KHJvb3RQYXJlbnQuaW5Eb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4
dGVuc2lvbnMoKS0+cmVtb3ZlVGltZUNvbnRhaW5lcih0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVtb3ZlVGltZUNvbnRhaW5lcih0aGlzKTsKICAgICBT
VkdHcmFwaGljc0VsZW1lbnQ6OnJlbW92ZWRGcm9tKHJvb3RQYXJlbnQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCBmYWIwMjIxMDcyYjZjMTlmYjY2ZjIxNDRl
ZmM3OGNhYTVkZTNlMmZjLi5iMDEyNDhjNDMyZjc2ZjA0Zjg2ZmU3M2E1NzZkMmY5MGNhNWQ3ZGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE3NSw3ICsxNzUsNyBA
QCB2b2lkIFNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQoKQogICAgIFN0cmluZyBpZDsKICAg
ICBTVkdVUklSZWZlcmVuY2U6OnRhcmdldEVsZW1lbnRGcm9tSVJJU3RyaW5nKGhyZWYoKSwgZG9j
dW1lbnQoKSwgJmlkKTsKICAgICBpZiAoIWlkLmlzRW1wdHkoKSkKLSAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPmFkZFBlbmRpbmdSZXNvdXJjZShpZCwgdGhpcyk7Cisg
ICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJj
ZShpZCwgdGhpcyk7CiB9CiAKIGJvb2wgU1ZHVFJlZkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpAQCAtMjYzLDcgKzI2Myw3IEBAIHZv
aWQgU1ZHVFJlZkVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKICAgICAgICAgaWYgKGlk
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBkb2N1bWVudCgpLmFj
Y2Vzc1NWR0V4dGVuc2lvbnMoKS0+YWRkUGVuZGluZ1Jlc291cmNlKGlkLCB0aGlzKTsKKyAgICAg
ICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKGlk
LCB0aGlzKTsKICAgICAgICAgQVNTRVJUKGhhc1BlbmRpbmdSZXNvdXJjZXMoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
CmluZGV4IDM2NzcxMjA3Zjg4ZjdlZDE4YjIzNjY2Y2I4ODg5Zjk0Mzk2MGNiZWUuLmNkYjk5NWJm
NTdiOWFiZjkwMTc4ZjZhZTkxMzRjMmZiZWZiMDgxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFNWR1RleHRQYXRoRWxlbWVu
dDo6flNWR1RleHRQYXRoRWxlbWVudCgpCiAKIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpjbGVh
clJlc291cmNlUmVmZXJlbmNlcygpCiB7Ci0gICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNp
b25zKCktPnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JFbGVtZW50KHRoaXMpOworICAgIGRv
Y3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNG
b3JFbGVtZW50KHRoaXMpOwogfQogCiBib29sIFNWR1RleHRQYXRoRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkBAIC0xNjIsMTcgKzE2
MiwxNyBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQog
ICAgIEVsZW1lbnQqIHRhcmdldCA9IFNWR1VSSVJlZmVyZW5jZTo6dGFyZ2V0RWxlbWVudEZyb21J
UklTdHJpbmcoaHJlZigpLCBkb2N1bWVudCgpLCAmaWQpOwogICAgIGlmICghdGFyZ2V0KSB7CiAg
ICAgICAgIC8vIERvIG5vdCByZWdpc3RlciBhcyBwZW5kaW5nIGlmIHdlIGFyZSBhbHJlYWR5IHBl
bmRpbmcgdGhpcyByZXNvdXJjZS4KLSAgICAgICAgaWYgKGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLT5pc1BlbmRpbmdSZXNvdXJjZSh0aGlzLCBpZCkpCisgICAgICAgIGlmIChkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5pc1BlbmRpbmdSZXNvdXJjZSh0aGlzLCBpZCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFpZC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5hZGRQZW5kaW5nUmVz
b3VyY2UoaWQsIHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNp
b25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKGlkLCB0aGlzKTsKICAgICAgICAgICAgIEFTU0VSVCho
YXNQZW5kaW5nUmVzb3VyY2VzKCkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICh0YXJnZXQt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKSB7CiAgICAgICAgIC8vIFJlZ2lzdGVyIHVz
IHdpdGggdGhlIHRhcmdldCBpbiB0aGUgZGVwZW5kZW5jaWVzIG1hcC4gQW55IGNoYW5nZSBvZiBo
cmVmRWxlbWVudAogICAgICAgICAvLyB0aGF0IGxlYWRzIHRvIHJlbGF5b3V0L3JlcGFpbnRpbmcg
bm93IGluZm9ybXMgdXMsIHNvIHdlIGNhbiByZWFjdCB0byBpdC4KLSAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPmFkZEVsZW1lbnRSZWZlcmVuY2luZ1RhcmdldCh0aGlz
LCBkb3duY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQpKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hY2Nl
c3NTVkdFeHRlbnNpb25zKCkuYWRkRWxlbWVudFJlZmVyZW5jaW5nVGFyZ2V0KHRoaXMsIGRvd25j
YXN0PFNWR0VsZW1lbnQ+KHRhcmdldCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCmluZGV4IDU1NmNhZmY5NWRiYjQyYmFkN2U3NjRiYjFkZmE2MDA3NzYzMTEw
ZTguLmRlMGFjOGQ0NjE5NjhiMDM4OGViZDVhMTBmNGMyNTI3YWQ0YTkyZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIFNWR1VzZUVs
ZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIAogICAgIG1fbmVlZHNTaGFkb3dUcmVl
UmVjcmVhdGlvbiA9IGZhbHNlOwogCi0gICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25z
KCktPnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JFbGVtZW50KHRoaXMpOworICAgIGRvY3Vt
ZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JF
bGVtZW50KHRoaXMpOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291
cmNlKCkKQEAgLTQxMSw3ICs0MTEsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmJ1aWxkUGVuZGlu
Z1Jlc291cmNlKCkKICAgICAgICAgaWYgKGlkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICByZWZlcmVuY2VkRG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygp
LT5hZGRQZW5kaW5nUmVzb3VyY2UoaWQsIHRoaXMpOworICAgICAgICByZWZlcmVuY2VkRG9jdW1l
bnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZShpZCwgdGhpcyk7
CiAgICAgICAgIEFTU0VSVChoYXNQZW5kaW5nUmVzb3VyY2VzKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNTUwLDcgKzU1MCw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dG9DbGlwUGF0
aChQYXRoJiBwYXRoKQogICAgIGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSAmJiBkb3duY2FzdDxT
VkdFbGVtZW50Pigqbm9kZSkuaXNTVkdHcmFwaGljc0VsZW1lbnQoKSkgewogICAgICAgICBpZiAo
IWlzRGlyZWN0UmVmZXJlbmNlKGRvd25jYXN0PFNWR0VsZW1lbnQ+KCpub2RlKSkpIHsKICAgICAg
ICAgICAgIC8vIFNwZWM6IEluZGlyZWN0IHJlZmVyZW5jZXMgYXJlIGFuIGVycm9yICgxNC4zLjUp
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVwb3J0RXJy
b3IoIk5vdCBhbGxvd2VkIHRvIHVzZSBpbmRpcmVjdCByZWZlcmVuY2UgaW4gPGNsaXAtcGF0aD4i
KTsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVy
cm9yKCJOb3QgYWxsb3dlZCB0byB1c2UgaW5kaXJlY3QgcmVmZXJlbmNlIGluIDxjbGlwLXBhdGg+
Iik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0b1NWR0dyYXBoaWNzRWxlbWVudCgq
bm9kZSkudG9DbGlwUGF0aChwYXRoKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBBdm9pZCBtYW51
YWwgcmVzb2x1dGlvbiBvZiB4L3kgaGVyZS4gSXRzIHBvdGVudGlhbGx5IGhhcm1mdWwuCkBAIC01
OTMsNyArNTkzLDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZShTVkdF
bGVtZW50KiB0YXJnZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGEKICAgICAgICAgLy8gV2Ugb25s
eSBuZWVkIHRvIHRyYWNrIGZpcnN0IGRlZ3JlZSA8dXNlPiBkZXBlbmRlbmNpZXMuIEluZGlyZWN0
IHJlZmVyZW5jZXMgYXJlIGhhbmRsZWQKICAgICAgICAgLy8gYXMgdGhlIGludmFsaWRhdGlvbiBi
dWJibGVzIHVwIHRoZSBkZXBlbmRlbmN5IGNoYWluLgogICAgICAgICBpZiAoIWZvdW5kVXNlKSB7
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+YWRkRWxlbWVu
dFJlZmVyZW5jaW5nVGFyZ2V0KHRoaXMsIHRhcmdldCk7CisgICAgICAgICAgICBkb2N1bWVudCgp
LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRFbGVtZW50UmVmZXJlbmNpbmdUYXJnZXQodGhpcywg
dGFyZ2V0KTsKICAgICAgICAgICAgIGZvdW5kVXNlID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSBpZiAoaXNEaXNhbGxvd2VkRWxlbWVudCgqdGFyZ2V0KSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCA5N2NiMjI2MmU4ZjM5
MTYxZjhiMjZkMjEyYTIzY2IyM2IyNDQ2YWZlLi5mMGEwODUxMjY3NmMzMWY2MTM1NDBiMWQxMWE1
NTdhODEwYzAxZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NW
R1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NN
SUxFbGVtZW50LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIFNWR1NNSUxFbGVtZW50Ojp+U1ZHU01J
TEVsZW1lbnQoKQogCiB2b2lkIFNWR1NNSUxFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNl
cygpCiB7Ci0gICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlbW92ZUFsbFRh
cmdldFJlZmVyZW5jZXNGb3JFbGVtZW50KHRoaXMpOworICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZH
RXh0ZW5zaW9ucygpLnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JFbGVtZW50KHRoaXMpOwog
fQogCiB2b2lkIFNWR1NNSUxFbGVtZW50OjpjbGVhclRhcmdldCgpCkBAIC0xNzgsMTcgKzE3OCwx
NyBAQCB2b2lkIFNWR1NNSUxFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAKICAgICBp
ZiAoIXN2Z1RhcmdldCkgewogICAgICAgICAvLyBEbyBub3QgcmVnaXN0ZXIgYXMgcGVuZGluZyBp
ZiB3ZSBhcmUgYWxyZWFkeSBwZW5kaW5nIHRoaXMgcmVzb3VyY2UuCi0gICAgICAgIGlmIChkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+aXNQZW5kaW5nUmVzb3VyY2UodGhpcywgaWQp
KQorICAgICAgICBpZiAoZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuaXNQZW5kaW5n
UmVzb3VyY2UodGhpcywgaWQpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICgh
aWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lv
bnMoKS0+YWRkUGVuZGluZ1Jlc291cmNlKGlkLCB0aGlzKTsKKyAgICAgICAgICAgIGRvY3VtZW50
KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZShpZCwgdGhpcyk7CiAg
ICAgICAgICAgICBBU1NFUlQoaGFzUGVuZGluZ1Jlc291cmNlcygpKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIFJlZ2lzdGVyIHVzIHdpdGggdGhlIHRhcmdldCBpbiB0aGUg
ZGVwZW5kZW5jaWVzIG1hcC4gQW55IGNoYW5nZSBvZiBocmVmRWxlbWVudAogICAgICAgICAvLyB0
aGF0IGxlYWRzIHRvIHJlbGF5b3V0L3JlcGFpbnRpbmcgbm93IGluZm9ybXMgdXMsIHNvIHdlIGNh
biByZWFjdCB0byBpdC4KLSAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkt
PmFkZEVsZW1lbnRSZWZlcmVuY2luZ1RhcmdldCh0aGlzLCBzdmdUYXJnZXQpOworICAgICAgICBk
b2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRFbGVtZW50UmVmZXJlbmNpbmdUYXJn
ZXQodGhpcywgc3ZnVGFyZ2V0KTsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>