<?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>128471</bug_id>
          
          <creation_ts>2014-02-08 13:38:17 -0800</creation_ts>
          <short_desc>Switch the rest of CSS code from OwnPtr over to std::unique_ptr</short_desc>
          <delta_ts>2014-02-09 00:54:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978423</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-08 13:38:17 -0800</bug_when>
    <thetext>Switch the rest of CSS code from OwnPtr over to std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978424</commentid>
    <comment_count>1</comment_count>
      <attachid>223583</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-08 13:48:07 -0800</bug_when>
    <thetext>Created attachment 223583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978425</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-08 13:50:08 -0800</bug_when>
    <thetext>Attachment 223583 did not pass style-queue:


ERROR: Source/WebCore/css/CSSParser.cpp:11607:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
ERROR: Source/WebCore/css/CSSParser.cpp:11639:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978476</commentid>
    <comment_count>3</comment_count>
      <attachid>223583</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-08 17:43:53 -0800</bug_when>
    <thetext>Comment on attachment 223583
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978552</commentid>
    <comment_count>4</comment_count>
      <attachid>223583</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-09 00:53:58 -0800</bug_when>
    <thetext>Comment on attachment 223583
Patch

Clearing flags on attachment: 223583

Committed r163747: &lt;http://trac.webkit.org/changeset/163747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978553</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-09 00:54:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223583</attachid>
            <date>2014-02-08 13:48:07 -0800</date>
            <delta_ts>2014-02-09 00:53:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128471-20140208224800.patch</filename>
            <type>text/plain</type>
            <size>45907</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI2NjU5NWVlOWM2ZmZl
MDkyYmNkMThiNmNmNmU1M2VjMmJjMjkzZS4uODU4MzcxNjAxZDE1YmRjMmM0YzNiMTFmNzk0NjU1
NTM3ZDBiZDcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTAyLTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTd2l0Y2ggdGhlIHJl
c3Qgb2YgQ1NTIGNvZGUgZnJvbSBPd25QdHIgb3ZlciB0byBzdGQ6OnVuaXF1ZV9wdHIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGhlIHJl
bWFpbmluZyB1c2VzIG9mIE93blB0ciBpbiB0aGUgQ1NTIGNvZGUgd2l0aCBzdGQ6OnVuaXF1ZV9w
dHIsIGNvdmVyaW5nCisgICAgICAgIHRoZSBDU1NQYXJzZXIsIENTU1BhcnNlclNlbGVjdG9yIGFu
ZCBDU1NTZWxlY3RvciBjbGFzc2VzIGFuZCBhIGZldyBhZGRpdGlvbmFsLCBjbG9zZWx5IHJlbGF0
ZWQgY2xhc3Nlcy4KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hl
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6Om1hcmtTdXBwb3J0c1J1bGVIZWFkZXJTdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUtleWZyYW1lc1J1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpyZXdyaXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnJld3JpdGVTcGVjaWZpZXJzKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyU2VsZWN0b3I6On5DU1NQYXJzZXJTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6aW5zZXJ0VGFnSGlzdG9yeSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6YXBwZW5kVGFnSGlzdG9yeSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6cHJlcGVuZFRhZ1NlbGVjdG9yKToKKyAgICAgICAgKiBj
c3MvQ1NTUGFyc2VyVmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rv
cjo6cmVsZWFzZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9y
OjpzZXRUYWdIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpj
bGVhclRhZ0hpc3RvcnkpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0U2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3Rvcik6CisgICAg
ICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5oOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3Qu
Y3BwOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSdWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZTo6cGFyc2VyQWRvcHRTZWxlY3RvclZlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVQYWdlOjpwYXJzZXJBZG9wdFNlbGVjdG9y
VmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVJlZ2lvbjo6Y3JlYXRlKToKKwog
MjAxNC0wMi0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hh
bmdlIFRleHRJdGVyYXRvciB0byB1c2UgU3RyaW5nVmlldywgcHJlcGFyaW5nIHRvIHdlYW4gaXQg
ZnJvbSBkZXByZWNhdGVkQ2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5k
ZXggZjZmZDQyNWZhNDczZGJlZTA1ZDY5NzlhNGVhZTE5MDI2MGE1Mjk2Zi4uNzQ2ODYxZWJjNDA1
OGYwZTY4MTY4YzA1ZTRiZjBiNGRhYmE4MjU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
LmluCkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5BU3Ry
aW5nKGludCB5eXR5cGUpCiAldHlwZSA8c2VsZWN0b3I+IGF0dHJpYiBjbGFzcyBwYWdlX3NlbGVj
dG9yIHBzZXVkbyBwc2V1ZG9fcGFnZSBzZWxlY3RvciBzZWxlY3Rvcl93aXRoX3RyYWlsaW5nX3do
aXRlc3BhY2Ugc2ltcGxlX3NlbGVjdG9yIHNwZWNpZmllciBzcGVjaWZpZXJfbGlzdAogJWRlc3Ry
dWN0b3IgeyBkZWxldGUgJCQ7IH0gYXR0cmliIGNsYXNzIHBhZ2Vfc2VsZWN0b3IgcHNldWRvIHBz
ZXVkb19wYWdlIHNlbGVjdG9yIHNlbGVjdG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVzcGFjZSBzaW1w
bGVfc2VsZWN0b3Igc3BlY2lmaWVyIHNwZWNpZmllcl9saXN0CiAKLSV1bmlvbiB7IFZlY3RvcjxP
d25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Piogc2VsZWN0b3JMaXN0OyB9CisldW5pb24geyBWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9yTGlzdDsgfQog
JXR5cGUgPHNlbGVjdG9yTGlzdD4gc2VsZWN0b3JfbGlzdCBzaW1wbGVfc2VsZWN0b3JfbGlzdAog
JWRlc3RydWN0b3IgeyBkZWxldGUgJCQ7IH0gc2VsZWN0b3JfbGlzdCBzaW1wbGVfc2VsZWN0b3Jf
bGlzdAogCkBAIC0zMTcsNyArMzE3LDcgQEAgd2Via2l0X2RlY2xzOiBXRUJLSVRfREVDTFNfU1lN
ICd7JyBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGkKIHdlYmtp
dF92YWx1ZToKICAgICBXRUJLSVRfVkFMVUVfU1lNICd7JyBtYXliZV9zcGFjZSBleHByICd9JyB7
CiAgICAgICAgIGlmICgkNCkgewotICAgICAgICAgICAgcGFyc2VyLT5tX3ZhbHVlTGlzdCA9IGFk
b3B0UHRyKCQ0KTsKKyAgICAgICAgICAgIHBhcnNlci0+bV92YWx1ZUxpc3QgPSBzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PigkNCk7CiAgICAgICAgICAgICBpbnQgb2xkUGFyc2Vk
UHJvcGVydGllcyA9IHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKTsKICAgICAgICAg
ICAgIGlmICghcGFyc2VyLT5wYXJzZVZhbHVlKHBhcnNlci0+bV9pZCwgcGFyc2VyLT5tX2ltcG9y
dGFudCkpCiAgICAgICAgICAgICAgICAgcGFyc2VyLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHBh
cnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAtIG9sZFBhcnNlZFByb3BlcnRpZXMpOwpA
QCAtMzMzLDcgKzMzMyw3IEBAIHdlYmtpdF9zZWxlY3RvcjoKICAgICAgICAgaWYgKCQ0KSB7CiAg
ICAgICAgICAgICBpZiAocGFyc2VyLT5tX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3IpCiAg
ICAgICAgICAgICAgICAgcGFyc2VyLT5tX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3ItPmFk
b3B0U2VsZWN0b3JWZWN0b3IoKiQ0KTsKLSAgICAgICAgICAgIHBhcnNlci0+cmVjeWNsZVNlbGVj
dG9yVmVjdG9yKGFkb3B0UHRyKCQ0KSk7CisgICAgICAgICAgICBwYXJzZXItPnJlY3ljbGVTZWxl
Y3RvclZlY3RvcihzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4+PigkNCkpOwogICAgICAgICB9CiAgICAgfQogOwpAQCAtNTAxLDcgKzUwMSw3
IEBAIG1lZGlhX3F1ZXJ5X2V4cDoKICAgICBtYXliZV9tZWRpYV9yZXN0cmljdG9yIG1heWJlX3Nw
YWNlICcoJyBtYXliZV9zcGFjZSBJREVOVCBtYXliZV9zcGFjZSBtYXliZV9tZWRpYV92YWx1ZSAn
KScgbWF5YmVfc3BhY2UgewogICAgICAgICAvLyBJZiByZXN0cmljdG9yIGlzIHNwZWNpZmllZCwg
bWVkaWEgcXVlcnkgZXhwcmVzc2lvbiBpcyBpbnZhbGlkLgogICAgICAgICAvLyBDcmVhdGUgZW1w
dHkgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiBhbmQgY29udGludWUgcGFyc2luZyBtZWRpYSBxdWVy
eS4KLSAgICAgICAgT3duUHRyPENTU1BhcnNlclZhbHVlTGlzdD4gbWVkaWFWYWx1ZSA9IGFkb3B0
UHRyKCQ3KTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclZhbHVlTGlzdD4gbWVk
aWFWYWx1ZSgkNyk7CiAgICAgICAgIGlmICgkMSAhPSBNZWRpYVF1ZXJ5OjpOb25lKQogICAgICAg
ICAgICAgJCQgPSBuZXcgTWVkaWFRdWVyeUV4cChlbXB0eVN0cmluZygpLCBudWxscHRyKTsKICAg
ICAgICAgZWxzZSB7CkBAIC01OTcsMTAgKzU5NywxMCBAQCBhdF9ydWxlX2hlYWRlcl9lbmRfbWF5
YmVfc3BhY2U6CiAKIG1lZGlhOgogICAgIGJlZm9yZV9tZWRpYV9ydWxlIE1FRElBX1NZTSBtYXli
ZV9zcGFjZSBtZWRpYV9saXN0IGF0X3J1bGVfaGVhZGVyX2VuZCAneycgYXRfcnVsZV9ib2R5X3N0
YXJ0IG1heWJlX3NwYWNlIGJsb2NrX3J1bGVfbGlzdCBzYXZlX2Jsb2NrIHsKLSAgICAgICAgJCQg
PSBwYXJzZXItPmNyZWF0ZU1lZGlhUnVsZShhZG9wdFJlZigkNCksIGFkb3B0UHRyKCQ5KS5nZXQo
KSkubGVha1JlZigpOworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlTWVkaWFSdWxlKGFkb3B0
UmVmKCQ0KSwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+Pigk
OSkuZ2V0KCkpLmxlYWtSZWYoKTsKICAgICB9CiAgICAgfCBiZWZvcmVfbWVkaWFfcnVsZSBNRURJ
QV9TWU0gYXRfcnVsZV9oZWFkZXJfZW5kX21heWJlX3NwYWNlICd7JyBhdF9ydWxlX2JvZHlfc3Rh
cnQgbWF5YmVfc3BhY2UgYmxvY2tfcnVsZV9saXN0IHNhdmVfYmxvY2sgewotICAgICAgICAkJCA9
IHBhcnNlci0+Y3JlYXRlRW1wdHlNZWRpYVJ1bGUoYWRvcHRQdHIoJDcpLmdldCgpKS5sZWFrUmVm
KCk7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVFbXB0eU1lZGlhUnVsZShzdGQ6OnVuaXF1
ZV9wdHI8VmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4+KCQ3KS5nZXQoKSkubGVha1JlZigp
OwogICAgIH0KICAgICB8IGJlZm9yZV9tZWRpYV9ydWxlIE1FRElBX1NZTSBhdF9ydWxlX2hlYWRl
cl9lbmRfbWF5YmVfc3BhY2UgJzsnIHsKICAgICAgICAgJCQgPSBudWxscHRyOwpAQCAtNjEyLDcg
KzYxMiw3IEBAIG1lZGlhOgogCiBzdXBwb3J0czoKICAgICBiZWZvcmVfc3VwcG9ydHNfcnVsZSBT
VVBQT1JUU19TWU0gbWF5YmVfc3BhY2Ugc3VwcG9ydHNfY29uZGl0aW9uIGF0X3N1cHBvcnRzX3J1
bGVfaGVhZGVyX2VuZCAneycgYXRfcnVsZV9ib2R5X3N0YXJ0IG1heWJlX3NwYWNlIGJsb2NrX3J1
bGVfbGlzdCBzYXZlX2Jsb2NrIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZVN1cHBvcnRz
UnVsZSgkNCwgYWRvcHRQdHIoJDkpLmdldCgpKS5sZWFrUmVmKCk7CisgICAgICAgICQkID0gcGFy
c2VyLT5jcmVhdGVTdXBwb3J0c1J1bGUoJDQsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRy
PFN0eWxlUnVsZUJhc2U+Pj4oJDkpLmdldCgpKS5sZWFrUmVmKCk7CiAgICAgfQogICAgIHwgYmVm
b3JlX3N1cHBvcnRzX3J1bGUgU1VQUE9SVFNfU1lNIHN1cHBvcnRzX2Vycm9yIHsKICAgICAgICAg
JCQgPSBudWxscHRyOwpAQCAtNjYxLDkgKzY2MSw5IEBAIHN1cHBvcnRzX2RlY2xhcmF0aW9uX2Nv
bmRpdGlvbjoKICAgICAnKCcgbWF5YmVfc3BhY2UgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIGV4
cHIgcHJpb3JpdHkgJyknIG1heWJlX3NwYWNlIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKLSAgICAg
ICAgT3duUHRyPENTU1BhcnNlckV4cHJlc3Npb24+IHByb3BlcnR5VmFsdWUgPSBhZG9wdFB0cigk
Nik7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJFeHByZXNzaW9uPiBwcm9wZXJ0
eVZhbHVlKCQ2KTsKICAgICAgICAgaWYgKCQzICYmIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAg
ICAgIHAtPm1fdmFsdWVMaXN0ID0gcHJvcGVydHlWYWx1ZS5yZWxlYXNlKCk7CisgICAgICAgICAg
ICBwLT5tX3ZhbHVlTGlzdCA9IHN0ZDo6bW92ZShwcm9wZXJ0eVZhbHVlKTsKICAgICAgICAgICAg
IGludCBvbGRQYXJzZWRQcm9wZXJ0aWVzID0gcC0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKTsK
ICAgICAgICAgICAgICQkID0gcC0+cGFyc2VWYWx1ZSgkMywgJDcpOwogICAgICAgICAgICAgLy8g
V2UganVzdCBuZWVkIHRvIGtub3cgaWYgdGhlIGRlY2xhcmF0aW9uIGlzIHN1cHBvcnRlZCBhcyBp
dCBpcyB3cml0dGVuLiBSb2xsYmFjayBhbnkgYWRkaXRpb25zLgpAQCAtNjg1LDcgKzY4NSw3IEBA
IGJlZm9yZV9rZXlmcmFtZXNfcnVsZToKIAoga2V5ZnJhbWVzOgogICAgIGJlZm9yZV9rZXlmcmFt
ZXNfcnVsZSBXRUJLSVRfS0VZRlJBTUVTX1NZTSBtYXliZV9zcGFjZSBrZXlmcmFtZV9uYW1lIGF0
X3J1bGVfaGVhZGVyX2VuZF9tYXliZV9zcGFjZSAneycgYXRfcnVsZV9ib2R5X3N0YXJ0IG1heWJl
X3NwYWNlIGtleWZyYW1lc19ydWxlIGNsb3NpbmdfYnJhY2UgewotICAgICAgICAkJCA9IHBhcnNl
ci0+Y3JlYXRlS2V5ZnJhbWVzUnVsZSgkNCwgYWRvcHRQdHIoJDkpKS5sZWFrUmVmKCk7CisgICAg
ICAgICQkID0gcGFyc2VyLT5jcmVhdGVLZXlmcmFtZXNSdWxlKCQ0LCBzdGQ6OnVuaXF1ZV9wdHI8
VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPj4+KCQ5KSkubGVha1JlZigpOwogICAgIH0KICAg
ICA7CiAgIApAQCAtNzAwLDcgKzcwMCw3IEBAIGtleWZyYW1lc19ydWxlOgogICAgIH0KICAgICA7
CiAKLWtleWZyYW1lX3J1bGU6IGtleV9saXN0IG1heWJlX3NwYWNlICd7JyBtYXliZV9zcGFjZSBk
ZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgeyAkJCA9IHBhcnNlci0+Y3JlYXRlS2V5ZnJh
bWUoKmFkb3B0UHRyKCQxKSkubGVha1JlZigpOyB9IDsKK2tleWZyYW1lX3J1bGU6IGtleV9saXN0
IG1heWJlX3NwYWNlICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJh
Y2UgeyAkJCA9IHBhcnNlci0+Y3JlYXRlS2V5ZnJhbWUoKnN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJWYWx1ZUxpc3Q+KCQxKSkubGVha1JlZigpOyB9IDsKIAoga2V5X2xpc3Q6CiAgICAga2V5IHsK
QEAgLTc0NCw3ICs3NDQsNyBAQCBwYWdlOgogICAgIGJlZm9yZV9wYWdlX3J1bGUgUEFHRV9TWU0g
bWF5YmVfc3BhY2UgcGFnZV9zZWxlY3RvciBhdF9ydWxlX2hlYWRlcl9lbmRfbWF5YmVfc3BhY2UK
ICAgICAneycgYXRfcnVsZV9ib2R5X3N0YXJ0IG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlv
biBkZWNsYXJhdGlvbnNfYW5kX21hcmdpbnMgY2xvc2luZ19icmFjZSB7CiAgICAgICAgIGlmICgk
NCkKLSAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVQYWdlUnVsZShhZG9wdFB0cigkNCkp
LmxlYWtSZWYoKTsKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVQYWdlUnVsZShzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KCQ0KSkubGVha1JlZigpOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIC8vIENsZWFyIHByb3BlcnRpZXMgaW4gdGhlIGludmFsaWQgQHBh
Z2UgcnVsZS4KICAgICAgICAgICAgIHBhcnNlci0+Y2xlYXJQcm9wZXJ0aWVzKCk7CkBAIC05MDQs
OSArOTA0LDkgQEAgYmVmb3JlX3JlZ2lvbl9ydWxlOgogCiByZWdpb246CiAgICAgYmVmb3JlX3Jl
Z2lvbl9ydWxlIFdFQktJVF9SRUdJT05fUlVMRV9TWU0gbWF5YmVfc3BhY2Ugc2VsZWN0b3JfbGlz
dCBhdF9ydWxlX2hlYWRlcl9lbmQgJ3snIGF0X3J1bGVfYm9keV9zdGFydCBtYXliZV9zcGFjZSBi
bG9ja192YWxpZF9ydWxlX2xpc3Qgc2F2ZV9ibG9jayB7Ci0gICAgICAgIE93blB0cjxWZWN0b3I8
UmVmUHRyPFN0eWxlUnVsZUJhc2U+Pj4gcnVsZUxpc3QgPSBhZG9wdFB0cigkOSk7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+Pj4gcnVsZUxpc3Qo
JDkpOwogICAgICAgICBpZiAoJDQpCi0gICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlUmVn
aW9uUnVsZShhZG9wdFB0cigkNCkuZ2V0KCksIHJ1bGVMaXN0LmdldCgpKS5sZWFrUmVmKCk7Cisg
ICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlUmVnaW9uUnVsZShzdGQ6OnVuaXF1ZV9wdHI8
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigkNCkuZ2V0KCksIHJ1
bGVMaXN0LmdldCgpKS5sZWFrUmVmKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgJCQg
PSBudWxscHRyOwogICAgICAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgpOwpAQCAtOTQwLDcg
Kzk0MCw3IEBAIGF0X3NlbGVjdG9yX2VuZDogeyBwYXJzZXItPm1hcmtTZWxlY3RvckVuZCgpOyB9
IDsKIHJ1bGVzZXQ6CiAgICAgYmVmb3JlX3NlbGVjdG9yX2xpc3Qgc2VsZWN0b3JfbGlzdCBhdF9z
ZWxlY3Rvcl9lbmQgYXRfcnVsZV9oZWFkZXJfZW5kICd7JyBhdF9ydWxlX2JvZHlfc3RhcnQgbWF5
YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFj
ZSB7CiAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVTdHlsZVJ1bGUoJDIpLmxlYWtSZWYoKTsK
LSAgICAgICAgcGFyc2VyLT5yZWN5Y2xlU2VsZWN0b3JWZWN0b3IoYWRvcHRQdHIoJDIpKTsKKyAg
ICAgICAgcGFyc2VyLT5yZWN5Y2xlU2VsZWN0b3JWZWN0b3Ioc3RkOjp1bmlxdWVfcHRyPFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4oJDIpKTsKICAgICB9CiAgIDsK
IApAQCAtOTUwLDE4ICs5NTAsMTggQEAgc2VsZWN0b3JfbGlzdDoKICAgICBzZWxlY3RvciAlcHJl
YyBVTklNUE9SVEFOVF9UT0sgewogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlmICgk
MSkgewotICAgICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZVNlbGVjdG9yVmVjdG9yKCkubGVh
a1B0cigpOwotICAgICAgICAgICAgJCQtPmFwcGVuZChhZG9wdFB0cigkMSkpOworICAgICAgICAg
ICAgJCQgPSBwYXJzZXItPmNyZWF0ZVNlbGVjdG9yVmVjdG9yKCkucmVsZWFzZSgpOworICAgICAg
ICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KCQxKSk7
CiAgICAgICAgICAgICBwYXJzZXItPnVwZGF0ZUxhc3RTZWxlY3RvckxpbmVBbmRQb3NpdGlvbigp
OwogICAgICAgICB9CiAgICAgfQogICAgIHwgc2VsZWN0b3JfbGlzdCBhdF9zZWxlY3Rvcl9lbmQg
JywnIG1heWJlX3NwYWNlIGJlZm9yZV9zZWxlY3Rvcl9ncm91cF9pdGVtIHNlbGVjdG9yICVwcmVj
IFVOSU1QT1JUQU5UX1RPSyB7Ci0gICAgICAgIE93blB0cjxWZWN0b3I8T3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPj4+IHNlbGVjdG9yTGlzdCA9IGFkb3B0UHRyKCQxKTsKLSAgICAgICAgT3duUHRy
PENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvciA9IGFkb3B0UHRyKCQ2KTsKKyAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4g
c2VsZWN0b3JMaXN0KCQxKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPiBzZWxlY3RvcigkNik7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYgKHNl
bGVjdG9yTGlzdCAmJiBzZWxlY3RvcikgewotICAgICAgICAgICAgJCQgPSBzZWxlY3Rvckxpc3Qu
bGVha1B0cigpOwotICAgICAgICAgICAgJCQtPmFwcGVuZChzZWxlY3Rvci5yZWxlYXNlKCkpOwor
ICAgICAgICAgICAgJCQgPSBzZWxlY3Rvckxpc3QucmVsZWFzZSgpOworICAgICAgICAgICAgJCQt
PmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAgICAgICAgIHBhcnNlci0+dXBkYXRl
TGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9uKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC05Nzgs
MjEgKzk3OCwyMSBAQCBzZWxlY3RvcjoKICAgICBzaW1wbGVfc2VsZWN0b3IKICAgICB8IHNlbGVj
dG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVzcGFjZQogICAgIHwgc2VsZWN0b3Jfd2l0aF90cmFpbGlu
Z193aGl0ZXNwYWNlIHNpbXBsZV9zZWxlY3RvciB7Ci0gICAgICAgIE93blB0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4gbGVmdCA9IGFkb3B0UHRyKCQxKTsKLSAgICAgICAgT3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiByaWdodCA9IGFkb3B0UHRyKCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPiBsZWZ0KCQxKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPiByaWdodCgkMik7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAg
aWYgKGxlZnQgJiYgcmlnaHQpIHsKLSAgICAgICAgICAgIHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5
KENTU1NlbGVjdG9yOjpEZXNjZW5kYW50LCBsZWZ0LnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICAk
JCA9IHJpZ2h0LmxlYWtQdHIoKTsKKyAgICAgICAgICAgIHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5
KENTU1NlbGVjdG9yOjpEZXNjZW5kYW50LCBzdGQ6Om1vdmUobGVmdCkpOworICAgICAgICAgICAg
JCQgPSByaWdodC5yZWxlYXNlKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgfCBzZWxlY3RvciBj
b21iaW5hdG9yIHNpbXBsZV9zZWxlY3RvciB7Ci0gICAgICAgIE93blB0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4gbGVmdCA9IGFkb3B0UHRyKCQxKTsKLSAgICAgICAgT3duUHRyPENTU1BhcnNlclNlbGVj
dG9yPiByaWdodCA9IGFkb3B0UHRyKCQzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPiBsZWZ0KCQxKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNl
clNlbGVjdG9yPiByaWdodCgkMyk7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYg
KGxlZnQgJiYgcmlnaHQpIHsKLSAgICAgICAgICAgIHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5KCQy
LCBsZWZ0LnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICAkJCA9IHJpZ2h0LmxlYWtQdHIoKTsKKyAg
ICAgICAgICAgIHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5KCQyLCBzdGQ6Om1vdmUobGVmdCkpOwor
ICAgICAgICAgICAgJCQgPSByaWdodC5yZWxlYXNlKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
fCBzZWxlY3RvciBlcnJvciB7CkBAIC0xMDQwLDE3ICsxMDQwLDE3IEBAIHNpbXBsZV9zZWxlY3Rv
cl9saXN0OgogICAgIHNpbXBsZV9zZWxlY3RvciAlcHJlYyBVTklNUE9SVEFOVF9UT0sgewogICAg
ICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlmICgkMSkgewotICAgICAgICAgICAgJCQgPSBw
YXJzZXItPmNyZWF0ZVNlbGVjdG9yVmVjdG9yKCkubGVha1B0cigpOwotICAgICAgICAgICAgJCQt
PmFwcGVuZChhZG9wdFB0cigkMSkpOworICAgICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZVNl
bGVjdG9yVmVjdG9yKCkucmVsZWFzZSgpOworICAgICAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KCQxKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
fCBzaW1wbGVfc2VsZWN0b3JfbGlzdCBtYXliZV9zcGFjZSAnLCcgbWF5YmVfc3BhY2Ugc2ltcGxl
X3NlbGVjdG9yICVwcmVjIFVOSU1QT1JUQU5UX1RPSyB7Ci0gICAgICAgIE93blB0cjxWZWN0b3I8
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4+IGxpc3QgPSBhZG9wdFB0cigkMSk7Ci0gICAgICAg
IE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IgPSBhZG9wdFB0cigkNSk7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4+IGxpc3QoJDEpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+IHNlbGVjdG9yKCQ1KTsKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAobGlz
dCAmJiBzZWxlY3RvcikgewotICAgICAgICAgICAgJCQgPSBsaXN0LmxlYWtQdHIoKTsKLSAgICAg
ICAgICAgICQkLT5hcHBlbmQoc2VsZWN0b3IucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICQkID0g
bGlzdC5yZWxlYXNlKCk7CisgICAgICAgICAgICAkJC0+YXBwZW5kKHN0ZDo6bW92ZShzZWxlY3Rv
cikpOwogICAgICAgICB9CiAgICAgfQogICAgIHwgc2ltcGxlX3NlbGVjdG9yX2xpc3QgZXJyb3Ig
ewpAQCAtMTA3NCwxMSArMTA3NCwxMSBAQCBlbGVtZW50X25hbWU6CiBzcGVjaWZpZXJfbGlzdDoK
ICAgICBzcGVjaWZpZXIKICAgICB8IHNwZWNpZmllcl9saXN0IHNwZWNpZmllciB7Ci0gICAgICAg
IE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbGlzdCA9IGFkb3B0UHRyKCQxKTsKLSAgICAgICAg
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBzcGVjaWZpZXIgPSBhZG9wdFB0cigkMik7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbGlzdCgkMSk7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc3BlY2lmaWVyKCQyKTsKICAgICAg
ICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAobGlzdCAmJiBzcGVjaWZpZXIpCi0gICAgICAg
ICAgICAkJCA9IHBhcnNlci0+cmV3cml0ZVNwZWNpZmllcnMobGlzdC5yZWxlYXNlKCksIHNwZWNp
Zmllci5yZWxlYXNlKCkpLmxlYWtQdHIoKTsKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5yZXdy
aXRlU3BlY2lmaWVycyhzdGQ6Om1vdmUobGlzdCksIHN0ZDo6bW92ZShzcGVjaWZpZXIpKS5yZWxl
YXNlKCk7CiAgICAgfQogICAgIHwgc3BlY2lmaWVyX2xpc3QgZXJyb3IgewogICAgICAgICAkJCA9
IG51bGxwdHI7CkBAIC0xMjA1LDcgKzEyMDUsNyBAQCBwc2V1ZG86CiAgICAgICAgIGlmICgkNSkg
ewogICAgICAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2Vy
U2VsZWN0b3I+KCk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzKTsKLSAgICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVjdG9y
KCphZG9wdFB0cigkNSkpOworICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0
b3IoKnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4+KCQ1KSk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUoJDMpOwogICAgICAg
ICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0N1
ZSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKQEAgLTEyMjIsNyAr
MTIyMiw3IEBAIHBzZXVkbzoKICAgICAgICAgaWYgKCQ0KSB7CiAgICAgICAgICAgICBhdXRvIHNl
bGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAg
ICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwotICAgICAg
ICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKmFkb3B0UHRyKCQ0KSk7CisgICAg
ICAgICAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3Rvcigqc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4oJDQpKTsKICAgICAgICAg
ICAgICQyLmxvd2VyKCk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUoJDIpOwogICAg
ICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0FueSkKQEAgLTEyNzAsMTQgKzEyNzAsMTQgQEAgcHNldWRvOgogICAgIH0KICAgICAvLyB1c2Vk
IGJ5IDpub3QKICAgICB8ICc6JyBOT1RGVU5DVElPTiBtYXliZV9zcGFjZSBzaW1wbGVfc2VsZWN0
b3IgbWF5YmVfc3BhY2UgJyknIHsKLSAgICAgICAgT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBz
ZWxlY3RvciA9IGFkb3B0UHRyKCQ0KTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNl
clNlbGVjdG9yPiBzZWxlY3RvcigkNCk7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAg
aWYgKHNlbGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpbXBsZSgpKSB7CiAgICAgICAgICAgICAkJCA9
IG5ldyBDU1NQYXJzZXJTZWxlY3RvcjsKICAgICAgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpOwogCi0gICAgICAgICAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPj4gc2VsZWN0b3JWZWN0b3I7Ci0gICAgICAgICAgICBzZWxlY3RvclZlY3Rvci5h
cHBlbmQoc2VsZWN0b3IucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsKKyAgICAgICAgICAgIHNl
bGVjdG9yVmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAgICAgICAgICQk
LT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKIAogICAgICAgICAgICAgJDIu
bG93ZXIoKTsKQEAgLTEzMjYsOSArMTMyNiw5IEBAIGRlY2xhcmF0aW9uOgogICAgIHByb3BlcnR5
ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW9yaXR5IHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAg
ICAgICAgYm9vbCBpc1Byb3BlcnR5UGFyc2VkID0gZmFsc2U7Ci0gICAgICAgIE93blB0cjxDU1NQ
YXJzZXJWYWx1ZUxpc3Q+IHByb3BlcnR5VmFsdWUgPSBhZG9wdFB0cigkNCk7CisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJWYWx1ZUxpc3Q+IHByb3BlcnR5VmFsdWUoJDQpOwogICAg
ICAgICBpZiAoJDEgJiYgcHJvcGVydHlWYWx1ZSkgewotICAgICAgICAgICAgcGFyc2VyLT5tX3Zh
bHVlTGlzdCA9IHByb3BlcnR5VmFsdWUucmVsZWFzZSgpOworICAgICAgICAgICAgcGFyc2VyLT5t
X3ZhbHVlTGlzdCA9IHN0ZDo6bW92ZShwcm9wZXJ0eVZhbHVlKTsKICAgICAgICAgICAgIGludCBv
bGRQYXJzZWRQcm9wZXJ0aWVzID0gcGFyc2VyLT5tX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOwog
ICAgICAgICAgICAgJCQgPSBwYXJzZXItPnBhcnNlVmFsdWUoJDEsICQ1KTsKICAgICAgICAgICAg
IGlmICghJCQpCkBAIC0xNDU5LDcgKzE0NTksNyBAQCBmdW5jdGlvbjoKICAgICBGVU5DVElPTiBt
YXliZV9zcGFjZSBleHByIGNsb3NpbmdfcGFyZW50aGVzaXMgewogICAgICAgICBDU1NQYXJzZXJG
dW5jdGlvbiogZiA9IG5ldyBDU1NQYXJzZXJGdW5jdGlvbjsKICAgICAgICAgZi0+bmFtZSA9ICQx
OwotICAgICAgICBmLT5hcmdzID0gYWRvcHRQdHIoJDMpOworICAgICAgICBmLT5hcmdzID0gc3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclZhbHVlTGlzdD4oJDMpOwogICAgICAgICAkJC5pZCA9IENT
U1ZhbHVlSW52YWxpZDsKICAgICAgICAgJCQudW5pdCA9IENTU1BhcnNlclZhbHVlOjpGdW5jdGlv
bjsKICAgICAgICAgJCQuZnVuY3Rpb24gPSBmOwpAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAgZnVuY3Rp
b246CiAgICAgRlVOQ1RJT04gbWF5YmVfc3BhY2UgY2xvc2luZ19wYXJlbnRoZXNpcyB7CiAgICAg
ICAgIENTU1BhcnNlckZ1bmN0aW9uKiBmID0gbmV3IENTU1BhcnNlckZ1bmN0aW9uOwogICAgICAg
ICBmLT5uYW1lID0gJDE7Ci0gICAgICAgIGYtPmFyZ3MgPSBhZG9wdFB0cihuZXcgQ1NTUGFyc2Vy
VmFsdWVMaXN0KTsKKyAgICAgICAgZi0+YXJncyA9IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJW
YWx1ZUxpc3Q+KG5ldyBDU1NQYXJzZXJWYWx1ZUxpc3QpOwogICAgICAgICAkJC5pZCA9IENTU1Zh
bHVlSW52YWxpZDsKICAgICAgICAgJCQudW5pdCA9IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbjsK
ICAgICAgICAgJCQuZnVuY3Rpb24gPSBmOwpAQCAtMTUzMywxMCArMTUzMywxMCBAQCB2YWxpZF9j
YWxjX2Z1bmNfZXhwcjoKICAgICAgICAgJCQtPmFkZFZhbHVlKCQxKTsKICAgICB9CiAgICAgfCBj
YWxjX2Z1bmNfZXhwciBjYWxjX2Z1bmNfb3BlcmF0b3IgY2FsY19mdW5jX3Rlcm0gewotICAgICAg
ICBPd25QdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBleHByZXNzaW9uID0gYWRvcHRQdHIoJDEpOwor
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBleHByZXNzaW9uKCQx
KTsKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAoZXhwcmVzc2lvbiAmJiAkMikg
ewotICAgICAgICAgICAgJCQgPSBleHByZXNzaW9uLmxlYWtQdHIoKTsKKyAgICAgICAgICAgICQk
ID0gZXhwcmVzc2lvbi5yZWxlYXNlKCk7CiAgICAgICAgICAgICBDU1NQYXJzZXJWYWx1ZSB2Owog
ICAgICAgICAgICAgdi5pZCA9IENTU1ZhbHVlSW52YWxpZDsKICAgICAgICAgICAgIHYudW5pdCA9
IENTU1BhcnNlclZhbHVlOjpPcGVyYXRvcjsKQEAgLTE1NDksOCArMTU0OSw4IEBAIHZhbGlkX2Nh
bGNfZnVuY19leHByOgogCiAgICAgfQogICAgIHwgY2FsY19mdW5jX2V4cHIgY2FsY19mdW5jX29w
ZXJhdG9yIGNhbGNfZnVuY19wYXJlbl9leHByIHsKLSAgICAgICAgT3duUHRyPENTU1BhcnNlclZh
bHVlTGlzdD4gbGVmdCA9IGFkb3B0UHRyKCQxKTsKLSAgICAgICAgT3duUHRyPENTU1BhcnNlclZh
bHVlTGlzdD4gcmlnaHQgPSBhZG9wdFB0cigkMyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJWYWx1ZUxpc3Q+IGxlZnQoJDEpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NT
UGFyc2VyVmFsdWVMaXN0PiByaWdodCgkMyk7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAg
ICAgaWYgKGxlZnQgJiYgJDIgJiYgcmlnaHQpIHsKICAgICAgICAgICAgIENTU1BhcnNlclZhbHVl
IHY7CkBAIC0xNTU5LDcgKzE1NTksNyBAQCB2YWxpZF9jYWxjX2Z1bmNfZXhwcjoKICAgICAgICAg
ICAgIHYuaVZhbHVlID0gJDI7CiAgICAgICAgICAgICBsZWZ0LT5hZGRWYWx1ZSh2KTsKICAgICAg
ICAgICAgIGxlZnQtPmV4dGVuZCgqcmlnaHQpOwotICAgICAgICAgICAgJCQgPSBsZWZ0LmxlYWtQ
dHIoKTsKKyAgICAgICAgICAgICQkID0gbGVmdC5yZWxlYXNlKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgfCBjYWxjX2Z1bmNfcGFyZW5fZXhwcgpAQCAtMTU2OCwxMSArMTU2OCwxMSBAQCB2YWxp
ZF9jYWxjX2Z1bmNfZXhwcjoKIGNhbGNfZnVuY19leHByX2xpc3Q6CiAgICAgY2FsY19mdW5jX2V4
cHIgY2FsY19tYXliZV9zcGFjZQogICAgIHwgY2FsY19mdW5jX2V4cHJfbGlzdCAnLCcgbWF5YmVf
c3BhY2UgY2FsY19mdW5jX2V4cHIgY2FsY19tYXliZV9zcGFjZSB7Ci0gICAgICAgIE93blB0cjxD
U1NQYXJzZXJWYWx1ZUxpc3Q+IGxpc3QgPSBhZG9wdFB0cigkMSk7Ci0gICAgICAgIE93blB0cjxD
U1NQYXJzZXJWYWx1ZUxpc3Q+IGV4cHJlc3Npb24gPSBhZG9wdFB0cigkNCk7CisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJWYWx1ZUxpc3Q+IGxpc3QoJDEpOworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBleHByZXNzaW9uKCQ0KTsKICAgICAgICAg
JCQgPSBudWxscHRyOwogICAgICAgICBpZiAobGlzdCAmJiBleHByZXNzaW9uKSB7Ci0gICAgICAg
ICAgICAkJCA9IGxpc3QubGVha1B0cigpOworICAgICAgICAgICAgJCQgPSBsaXN0LnJlbGVhc2Uo
KTsKICAgICAgICAgICAgIENTU1BhcnNlclZhbHVlIHY7CiAgICAgICAgICAgICB2LmlkID0gQ1NT
VmFsdWVJbnZhbGlkOwogICAgICAgICAgICAgdi51bml0ID0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJh
dG9yOwpAQCAtMTU4Nyw3ICsxNTg3LDcgQEAgY2FsY19mdW5jdGlvbjoKICAgICBDQUxDRlVOQ1RJ
T04gbWF5YmVfc3BhY2UgY2FsY19mdW5jX2V4cHIgY2FsY19tYXliZV9zcGFjZSBjbG9zaW5nX3Bh
cmVudGhlc2lzIHsKICAgICAgICAgQ1NTUGFyc2VyRnVuY3Rpb24qIGYgPSBuZXcgQ1NTUGFyc2Vy
RnVuY3Rpb247CiAgICAgICAgIGYtPm5hbWUgPSAkMTsKLSAgICAgICAgZi0+YXJncyA9IGFkb3B0
UHRyKCQzKTsKKyAgICAgICAgZi0+YXJncyA9IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJWYWx1
ZUxpc3Q+KCQzKTsKICAgICAgICAgJCQuaWQgPSBDU1NWYWx1ZUludmFsaWQ7CiAgICAgICAgICQk
LnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb247CiAgICAgICAgICQkLmZ1bmN0aW9uID0g
ZjsKQEAgLTE2MDYsNyArMTYwNiw3IEBAIG1pbl9vcl9tYXhfZnVuY3Rpb246CiAgICAgbWluX29y
X21heCBtYXliZV9zcGFjZSBjYWxjX2Z1bmNfZXhwcl9saXN0IGNsb3NpbmdfcGFyZW50aGVzaXMg
ewogICAgICAgICBDU1NQYXJzZXJGdW5jdGlvbiogZiA9IG5ldyBDU1NQYXJzZXJGdW5jdGlvbjsK
ICAgICAgICAgZi0+bmFtZSA9ICQxOwotICAgICAgICBmLT5hcmdzID0gYWRvcHRQdHIoJDMpOwor
ICAgICAgICBmLT5hcmdzID0gc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclZhbHVlTGlzdD4oJDMp
OwogICAgICAgICAkJC5pZCA9IENTU1ZhbHVlSW52YWxpZDsKICAgICAgICAgJCQudW5pdCA9IENT
U1BhcnNlclZhbHVlOjpGdW5jdGlvbjsKICAgICAgICAgJCQuZnVuY3Rpb24gPSBmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxNTA0YWVkYjJiMDA2NTJkNzA2MGE1M2YwYWRmM2JjM2Nk
MGEzYTA3Li45ZWE5YjBiZDIwOWJkYTYzM2U4NDhhYTc2MTgwMjBkOTA0MmUxNTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBpbnQKICAgICBzZXRTdHlsZVNoZWV0KHNoZWV0KTsKICAgICBtX2RlZmF1bHROYW1lc3BhY2Ug
PSBzdGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgogICAgIGlmIChydWxl
U291cmNlRGF0YVJlc3VsdCkKLSAgICAgICAgbV9jdXJyZW50UnVsZURhdGFTdGFjayA9IGFkb3B0
UHRyKG5ldyBSdWxlU291cmNlRGF0YUxpc3QoKSk7CisgICAgICAgIG1fY3VycmVudFJ1bGVEYXRh
U3RhY2sgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVTb3VyY2VEYXRhTGlzdD4oKTsKICAgICBtX3J1
bGVTb3VyY2VEYXRhUmVzdWx0ID0gcnVsZVNvdXJjZURhdGFSZXN1bHQ7CiAKICAgICBtX2xvZ0Vy
cm9ycyA9IGxvZ0Vycm9ycyAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpICYmICFzaGVl
dC0+YmFzZVVSTCgpLmlzRW1wdHkoKSAmJiBzaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpLT5w
YWdlKCk7CkBAIC00MzksNyArNDM5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoU3R5
bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludAogICAgIHNl
dHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBhcnNlKHRoaXMpOwogICAgIHNo
ZWV0LT5zaHJpbmtUb0ZpdCgpOwotICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2suY2xlYXIoKTsK
KyAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLnJlc2V0KCk7CiAgICAgbV9ydWxlU291cmNlRGF0
YVJlc3VsdCA9IDA7CiAgICAgbV9ydWxlID0gMDsKICAgICBtX2lnbm9yZUVycm9yc0luRGVjbGFy
YXRpb24gPSBmYWxzZTsKQEAgLTE0MjEsNyArMTQyMSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZURlY2xhcmF0aW9uKE11dGFibGVTdHlsZVByb3BlcnRpZXMqIGRlY2xhcmF0aW9uLCBjb25zdCBT
dHJpCiAKICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHJ1bGVTb3VyY2VEYXRhID0gcHJw
UnVsZVNvdXJjZURhdGE7CiAgICAgaWYgKHJ1bGVTb3VyY2VEYXRhKSB7Ci0gICAgICAgIG1fY3Vy
cmVudFJ1bGVEYXRhU3RhY2sgPSBhZG9wdFB0cihuZXcgUnVsZVNvdXJjZURhdGFMaXN0KCkpOwor
ICAgICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlU291
cmNlRGF0YUxpc3Q+KCk7CiAgICAgICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmFwcGVuZChy
dWxlU291cmNlRGF0YSk7CiAgICAgfQogCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VEZWNsYXJhdGlvbihNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlv
biwgY29uc3QgU3RyaQogICAgICAgICB9CiAKICAgICAgICAgZml4VW5wYXJzZWRQcm9wZXJ0eVJh
bmdlcyhydWxlU291cmNlRGF0YS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudFJ1bGVEYXRhU3Rh
Y2suY2xlYXIoKTsKKyAgICAgICAgbV9jdXJyZW50UnVsZURhdGFTdGFjay5yZXNldCgpOwogICAg
IH0KIAogICAgIHJldHVybiBvazsKQEAgLTIwNjEsMTIgKzIwNjEsMTIgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BJZDEsIHByb3BJZDI7CiAgICAgICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CiAgICAgICAgIGlmIChwYXJzZUZpbGxQcm9wZXJ0eShwcm9wSWQsIHByb3BJZDEs
IHByb3BJZDIsIHZhbDEsIHZhbDIpKSB7Ci0gICAgICAgICAgICBPd25QdHI8U2hvcnRoYW5kU2Nv
cGU+IHNob3J0aGFuZFNjb3BlOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNob3J0aGFu
ZFNjb3BlPiBzaG9ydGhhbmRTY29wZTsKICAgICAgICAgICAgIGlmIChwcm9wSWQgPT0gQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kUG9zaXRpb24gfHwKICAgICAgICAgICAgICAgICBwcm9wSWQgPT0gQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0IHx8CiAgICAgICAgICAgICAgICAgcHJvcElkID09IENT
U1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uIHx8CiAgICAgICAgICAgICAgICAgcHJvcElkID09
IENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdCkgewotICAgICAgICAgICAgICAgIHNob3J0aGFu
ZFNjb3BlID0gYWRvcHRQdHIobmV3IFNob3J0aGFuZFNjb3BlKHRoaXMsIHByb3BJZCkpOworICAg
ICAgICAgICAgICAgIHNob3J0aGFuZFNjb3BlID0gc3RkOjptYWtlX3VuaXF1ZTxTaG9ydGhhbmRT
Y29wZT4odGhpcywgcHJvcElkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFkZFByb3Bl
cnR5KHByb3BJZDEsIHZhbDEucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgaWYg
KHZhbDIpCkBAIC0xMTM4Myw3ICsxMTM4Myw3IEBAIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4g
Q1NTUGFyc2VyOjpjcmVhdGVTdXBwb3J0c1J1bGUoYm9vbCBjb25kaXRpb25Jc1N1cHBvcnRlCiB2
b2lkIENTU1BhcnNlcjo6bWFya1N1cHBvcnRzUnVsZUhlYWRlclN0YXJ0KCkKIHsKICAgICBpZiAo
IW1fc3VwcG9ydHNSdWxlRGF0YVN0YWNrKQotICAgICAgICBtX3N1cHBvcnRzUnVsZURhdGFTdGFj
ayA9IGFkb3B0UHRyKG5ldyBSdWxlU291cmNlRGF0YUxpc3QoKSk7CisgICAgICAgIG1fc3VwcG9y
dHNSdWxlRGF0YVN0YWNrID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlU291cmNlRGF0YUxpc3Q+KCk7
CiAKICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IGRhdGEgPSBDU1NSdWxlU291cmNlRGF0
YTo6Y3JlYXRlKENTU1J1bGVTb3VyY2VEYXRhOjpTVVBQT1JUU19SVUxFKTsKICAgICBkYXRhLT5y
dWxlSGVhZGVyUmFuZ2Uuc3RhcnQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CkBAIC0xMTQ3OSw5ICsx
MTQ3OSw5IEBAIHZvaWQgQ1NTUGFyc2VyOjpsb2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyKQogICAgIGNvbnNvbGUuYWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpD
U1MsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWVzc2FnZSwgbV9zdHlsZVNoZWV0LT5iYXNlVVJM
KCkuc3RyaW5nKCksIGxpbmVOdW1iZXIgKyAxLCAwKTsKIH0KIAotUGFzc1JlZlB0cjxTdHlsZVJ1
bGVLZXlmcmFtZXM+IENTU1BhcnNlcjo6Y3JlYXRlS2V5ZnJhbWVzUnVsZShjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NPd25QdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPj4+IHBvcEtleWZy
YW1lcykKK1Bhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVzPiBDU1NQYXJzZXI6OmNyZWF0ZUtl
eWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJl
ZlB0cjxTdHlsZUtleWZyYW1lPj4+IHBvcEtleWZyYW1lcykKIHsKLSAgICBPd25QdHI8VmVjdG9y
PFJlZlB0cjxTdHlsZUtleWZyYW1lPj4+IGtleWZyYW1lcyA9IHBvcEtleWZyYW1lczsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPj4+IGtleWZyYW1lcyA9
IHN0ZDo6bW92ZShwb3BLZXlmcmFtZXMpOwogICAgIG1fYWxsb3dJbXBvcnRSdWxlcyA9IG1fYWxs
b3dOYW1lc3BhY2VEZWNsYXJhdGlvbnMgPSBmYWxzZTsKICAgICBSZWZQdHI8U3R5bGVSdWxlS2V5
ZnJhbWVzPiBydWxlID0gU3R5bGVSdWxlS2V5ZnJhbWVzOjpjcmVhdGUoKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGtleWZyYW1lcy0+c2l6ZSgpOyArK2kpCkBAIC0xMTQ5MSw3ICsxMTQ5
MSw3IEBAIFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVzPiBDU1NQYXJzZXI6OmNyZWF0ZUtl
eWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBuYW1lCiAgICAgcmV0dXJuIHJ1bGUucmVsZWFzZSgp
OwogfQogCi1QYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVS
dWxlKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Piogc2VsZWN0b3JzKQorUGFzc1Jl
ZlB0cjxTdHlsZVJ1bGVCYXNlPiBDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycykKIHsKICAgICBSZWZQ
dHI8U3R5bGVSdWxlPiBydWxlOwogICAgIGlmIChzZWxlY3RvcnMpIHsKQEAgLTExNTg1LDExICsx
MTU4NSwxMSBAQCB2b2lkIENTU1BhcnNlcjo6cmV3cml0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5h
bWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcgogCiAgICAgLy8gRm9yIHNoYWRvdy1J
RCBwc2V1ZG8tZWxlbWVudHMgdG8gYmUgY29ycmVjdGx5IG1hdGNoZWQsIHRoZSBTaGFkb3dEZXNj
ZW5kYW50IGNvbWJpbmF0b3IgaGFzIHRvIGJlIHVzZWQuCiAgICAgLy8gV2UgdGhlcmVmb3JlIGNy
ZWF0ZSBhIG5ldyBTZWxlY3RvciB3aXRoIHRoYXQgY29tYmluYXRvciBoZXJlIGluIGFueSBjYXNl
LCBldmVuIGlmIG1hdGNoaW5nIGFueSAoaG9zdCkgZWxlbWVudCBpbiBhbnkgbmFtZXNwYWNlIChp
LmUuICcqJykuCi0gICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnNldFRhZ0hpc3RvcnkoYWRvcHRQ
dHIobmV3IENTU1BhcnNlclNlbGVjdG9yKHRhZykpKTsKKyAgICBsYXN0U2hhZG93RGVzY2VuZGFu
dC0+c2V0VGFnSGlzdG9yeShzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPih0YWcp
KTsKICAgICBsYXN0U2hhZG93RGVzY2VuZGFudC0+c2V0UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlNo
YWRvd0Rlc2NlbmRhbnQpOwogfQogCi1Pd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1BhcnNl
cjo6cmV3cml0ZVNwZWNpZmllcnMoT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBzcGVjaWZpZXJz
LCBPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IG5ld1NwZWNpZmllcikKK3N0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTUGFyc2VyOjpyZXdyaXRlU3BlY2lmaWVycyhzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNwZWNpZmllcnMsIHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4gbmV3U3BlY2lmaWVyKQogewogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBpZiAobmV3U3BlY2lmaWVyLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBuZXdT
cGVjaWZpZXItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKSB7CkBAIC0x
MTU5NywyNyArMTE1OTcsMjcgQEAgT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBDU1NQYXJzZXI6
OnJld3JpdGVTcGVjaWZpZXJzKE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4KICAgICBpZiAobmV3
U3BlY2lmaWVyLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSkgewogI2VuZGlmCiAgICAgICAgIC8v
IFVua25vd24gcHNldWRvIGVsZW1lbnQgYWx3YXlzIGdvZXMgYXQgdGhlIHRvcCBvZiBzZWxlY3Rv
ciBjaGFpbi4KLSAgICAgICAgbmV3U3BlY2lmaWVyLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVj
dG9yOjpTaGFkb3dEZXNjZW5kYW50LCBzcGVjaWZpZXJzLnJlbGVhc2UoKSk7CisgICAgICAgIG5l
d1NwZWNpZmllci0+YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFu
dCwgc3RkOjptb3ZlKHNwZWNpZmllcnMpKTsKICAgICAgICAgcmV0dXJuIG5ld1NwZWNpZmllcjsK
ICAgICB9CiAgICAgaWYgKHNwZWNpZmllcnMtPmlzQ3VzdG9tUHNldWRvRWxlbWVudCgpKSB7CiAg
ICAgICAgIC8vIFNwZWNpZmllcnMgZm9yIHVua25vd24gcHNldWRvIGVsZW1lbnQgZ28gcmlnaHQg
YmVoaW5kIGl0IGluIHRoZSBjaGFpbi4KLSAgICAgICAgc3BlY2lmaWVycy0+aW5zZXJ0VGFnSGlz
dG9yeShDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IsIG5ld1NwZWNpZmllci5yZWxlYXNlKCksIENT
U1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50KTsKKyAgICAgICAgc3BlY2lmaWVycy0+aW5zZXJ0
VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IsIHN0ZDo6bW92ZShuZXdTcGVjaWZp
ZXIpLCBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudCk7CiAgICAgICAgIHJldHVybiBzcGVj
aWZpZXJzOwogICAgIH0KLSAgICBzcGVjaWZpZXJzLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVj
dG9yOjpTdWJTZWxlY3RvciwgbmV3U3BlY2lmaWVyLnJlbGVhc2UoKSk7CisgICAgc3BlY2lmaWVy
cy0+YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IsIHN0ZDo6bW92ZShu
ZXdTcGVjaWZpZXIpKTsKICAgICByZXR1cm4gc3BlY2lmaWVyczsKIH0KIAotUGFzc1JlZlB0cjxT
dHlsZVJ1bGVCYXNlPiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKFBhc3NPd25QdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+IHBhZ2VTZWxlY3RvcikKK1Bhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NT
UGFyc2VyOjpjcmVhdGVQYWdlUnVsZShzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
IHBhZ2VTZWxlY3RvcikKIHsKICAgICAvLyBGSVhNRTogTWFyZ2luIGF0LXJ1bGVzIGFyZSBpZ25v
cmVkLgogICAgIG1fYWxsb3dJbXBvcnRSdWxlcyA9IG1fYWxsb3dOYW1lc3BhY2VEZWNsYXJhdGlv
bnMgPSBmYWxzZTsKICAgICBSZWZQdHI8U3R5bGVSdWxlUGFnZT4gcnVsZTsKICAgICBpZiAocGFn
ZVNlbGVjdG9yKSB7CiAgICAgICAgIHJ1bGUgPSBTdHlsZVJ1bGVQYWdlOjpjcmVhdGUoY3JlYXRl
U3R5bGVQcm9wZXJ0aWVzKCkpOwotICAgICAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVj
dG9yPj4gc2VsZWN0b3JWZWN0b3I7Ci0gICAgICAgIHNlbGVjdG9yVmVjdG9yLmFwcGVuZChwYWdl
U2VsZWN0b3IpOworICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4gc2VsZWN0b3JWZWN0b3I7CisgICAgICAgIHNlbGVjdG9yVmVjdG9yLmFwcGVuZChzdGQ6
Om1vdmUocGFnZVNlbGVjdG9yKSk7CiAgICAgICAgIHJ1bGUtPnBhcnNlckFkb3B0U2VsZWN0b3JW
ZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwogICAgICAgICBwcm9jZXNzQW5kQWRkTmV3UnVsZVRvU291
cmNlVHJlZUlmTmVlZGVkKCk7CiAgICAgfSBlbHNlCkBAIC0xMTYyNiwyMiArMTE2MjYsMjIgQEAg
UGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKFBhc3NP
d25QdHI8Q1NTUGFyc2VyU2VsZWN0b3IKICAgICByZXR1cm4gcnVsZS5yZWxlYXNlKCk7CiB9CiAK
LU93blB0cjxWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4+IENTU1BhcnNlcjo6Y3Jl
YXRlU2VsZWN0b3JWZWN0b3IoKQorc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4gQ1NTUGFyc2VyOjpjcmVhdGVTZWxlY3RvclZlY3Rvcigp
CiB7CiAgICAgaWYgKG1fcmVjeWNsZWRTZWxlY3RvclZlY3RvcikgewogICAgICAgICBtX3JlY3lj
bGVkU2VsZWN0b3JWZWN0b3ItPnNocmluaygwKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZSht
X3JlY3ljbGVkU2VsZWN0b3JWZWN0b3IpOwogICAgIH0KLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pik7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigpOwog
fQogCi12b2lkIENTU1BhcnNlcjo6cmVjeWNsZVNlbGVjdG9yVmVjdG9yKE93blB0cjxWZWN0b3I8
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4+IHZlY3RvcikKK3ZvaWQgQ1NTUGFyc2VyOjpyZWN5
Y2xlU2VsZWN0b3JWZWN0b3Ioc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+Pj4gdmVjdG9yKQogewogICAgIGlmICh2ZWN0b3IgJiYgIW1fcmVj
eWNsZWRTZWxlY3RvclZlY3RvcikKICAgICAgICAgbV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9yID0g
c3RkOjptb3ZlKHZlY3Rvcik7CiB9CiAKLVBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFy
c2VyOjpjcmVhdGVSZWdpb25SdWxlKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Piog
cmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0KiBydWxlcykKK1Bhc3NSZWZQdHI8U3R5bGVSdWxlQmFz
ZT4gQ1NTUGFyc2VyOjpjcmVhdGVSZWdpb25SdWxlKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+PiogcmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0KiBydWxlcykKIHsKICAg
ICBpZiAoIWNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlZ2lvblNlbGVjdG9yIHx8ICFydWxlcykg
ewogICAgICAgICBwb3BSdWxlRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDJjNmVm
NThhZGM2MWExNzdkZmI4NjA3MjdkNTAxMDdiYzAwYzdmODcuLmU2ZDcyZTI4NDc2NjkwMWNiNGJj
ZGUzMjkyNzdkNjEzNDA0ZmU4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI4NywyMCAr
Mjg3LDIwIEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlRm9udFZhcmlhbnRMaWdhdHVyZXMoYm9v
bCBpbXBvcnRhbnQpOwogCiAgICAgLy8gRmFzdGVyIHRoYW4gZG9pbmcgYSBuZXcvZGVsZXRlIGVh
Y2ggdGltZSBzaW5jZSBpdCBrZWVwcyBvbmUgdmVjdG9yLgotICAgIE93blB0cjxWZWN0b3I8T3du
UHRyPENTU1BhcnNlclNlbGVjdG9yPj4+IGNyZWF0ZVNlbGVjdG9yVmVjdG9yKCk7Ci0gICAgdm9p
ZCByZWN5Y2xlU2VsZWN0b3JWZWN0b3IoT3duUHRyPFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+Pj4pOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPj4+IGNyZWF0ZVNlbGVjdG9yVmVjdG9yKCk7CisgICAgdm9pZCByZWN5
Y2xlU2VsZWN0b3JWZWN0b3Ioc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+Pj4pOwogCiAgICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiBj
cmVhdGVJbXBvcnRSdWxlKGNvbnN0IENTU1BhcnNlclN0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFR
dWVyeVNldD4pOwogICAgIFBhc3NSZWZQdHI8U3R5bGVLZXlmcmFtZT4gY3JlYXRlS2V5ZnJhbWUo
Q1NTUGFyc2VyVmFsdWVMaXN0Jik7Ci0gICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+
IGNyZWF0ZUtleWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiwgUGFzc093blB0cjxWZWN0b3I8UmVm
UHRyPFN0eWxlS2V5ZnJhbWU+Pj4pOworICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVz
PiBjcmVhdGVLZXlmcmFtZXNSdWxlKGNvbnN0IFN0cmluZyYsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0
b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+Pj4pOwogCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PFN0eWxlUnVsZUJhc2U+PiBSdWxlTGlzdDsKICAgICBQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+
IGNyZWF0ZU1lZGlhUnVsZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+LCBSdWxlTGlzdCopOwog
ICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlRW1wdHlNZWRpYVJ1bGUoUnVsZUxp
c3QqKTsKLSAgICBQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IGNyZWF0ZVN0eWxlUnVsZShWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycyk7CisgICAgUGFzc1JlZlB0
cjxTdHlsZVJ1bGVCYXNlPiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4+KiBzZWxlY3RvcnMpOwogICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxl
QmFzZT4gY3JlYXRlRm9udEZhY2VSdWxlKCk7Ci0gICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNl
PiBjcmVhdGVQYWdlUnVsZShQYXNzT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBwYWdlU2VsZWN0
b3IpOwotICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlUmVnaW9uUnVsZShWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHJlZ2lvblNlbGVjdG9yLCBSdWxlTGlzdCog
cnVsZXMpOworICAgIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlUGFnZVJ1bGUoc3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBwYWdlU2VsZWN0b3IpOworICAgIFBhc3NS
ZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlUmVnaW9uUnVsZShWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHJlZ2lvblNlbGVjdG9yLCBSdWxlTGlzdCogcnVsZXMp
OwogICAgIHZvaWQgY3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9yOjpNYXJnaW5Cb3hUeXBl
KTsKICNpZiBFTkFCTEUoQ1NTM19DT05ESVRJT05BTF9SVUxFUykKICAgICBQYXNzUmVmUHRyPFN0
eWxlUnVsZUJhc2U+IGNyZWF0ZVN1cHBvcnRzUnVsZShib29sIGNvbmRpdGlvbklzU3VwcG9ydGVk
LCBSdWxlTGlzdCopOwpAQCAtMzE3LDcgKzMxNyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmV3
cml0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3Bh
Y2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUsIENTU1BhcnNlclNlbGVj
dG9yJiwgYm9vbCBpc05hbWVzcGFjZVBsYWNlaG9sZGVyID0gZmFsc2UpOwogICAgIHZvaWQgcmV3
cml0ZVNwZWNpZmllcnNXaXRoTmFtZXNwYWNlSWZOZWVkZWQoQ1NTUGFyc2VyU2VsZWN0b3ImKTsK
LSAgICBPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHJld3JpdGVTcGVjaWZpZXJzKE93blB0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4sIE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4pOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gcmV3cml0ZVNwZWNpZmllcnMoc3RkOjp1bmlx
dWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiwgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPik7CiAKICAgICB2b2lkIGludmFsaWRCbG9ja0hpdCgpOwogCkBAIC0zMzYsNyArMzM2LDcg
QEAgcHVibGljOgogICAgIFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBtX3J1bGU7CiAgICAgUmVmUHRy
PFN0eWxlS2V5ZnJhbWU+IG1fa2V5ZnJhbWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVl
cnk+IG1fbWVkaWFRdWVyeTsKLSAgICBPd25QdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBtX3ZhbHVl
TGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBtX3ZhbHVlTGlz
dDsKICNpZiBFTkFCTEUoQ1NTM19DT05ESVRJT05BTF9SVUxFUykKICAgICBib29sIG1fc3VwcG9y
dHNDb25kaXRpb247CiAjZW5kaWYKQEAgLTM2Miw3ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgc2l6
ZV90IG1fcGFyc2VkVGV4dFByZWZpeExlbmd0aDsKICAgICBTb3VyY2VSYW5nZSBtX3NlbGVjdG9y
UmFuZ2U7CiAgICAgU291cmNlUmFuZ2UgbV9wcm9wZXJ0eVJhbmdlOwotICAgIE93blB0cjxSdWxl
U291cmNlRGF0YUxpc3Q+IG1fY3VycmVudFJ1bGVEYXRhU3RhY2s7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVTb3VyY2VEYXRhTGlzdD4gbV9jdXJyZW50UnVsZURhdGFTdGFjazsKICAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IG1fY3VycmVudFJ1bGVEYXRhOwogICAgIFJ1bGVTb3VyY2VE
YXRhTGlzdCogbV9ydWxlU291cmNlRGF0YVJlc3VsdDsKIApAQCAtNTU5LDEyICs1NTksMTIgQEAg
cHJpdmF0ZToKIAogICAgIGludCAoQ1NTUGFyc2VyOjoqbV9sZXhGdW5jKSh2b2lkKik7CiAKLSAg
ICBPd25QdHI8VmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PiBtX3JlY3ljbGVkU2Vs
ZWN0b3JWZWN0b3I7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+Pj4gbV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9yOwogCiAgICAgUmVm
UHRyPENTU0NhbGNWYWx1ZT4gbV9wYXJzZWRDYWxjdWxhdGlvbjsKIAogI2lmIEVOQUJMRShDU1Mz
X0NPTkRJVElPTkFMX1JVTEVTKQotICAgIE93blB0cjxSdWxlU291cmNlRGF0YUxpc3Q+IG1fc3Vw
cG9ydHNSdWxlRGF0YVN0YWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU291cmNlRGF0YUxp
c3Q+IG1fc3VwcG9ydHNSdWxlRGF0YVN0YWNrOwogI2VuZGlmCiAKICAgICAvLyBkZWZpbmVzIHVu
aXRzIGFsbG93ZWQgZm9yIGEgY2VydGFpbiBwcm9wZXJ0eSwgdXNlZCBpbiBwYXJzZVVuaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggOWI0N2Q1Yjc2Y2VmMjAwZjI3
ZGJjMjQ1NTRiOWI2OTI1YTliMGE3NC4uYjJiMGQ2NDQyNmRmNDVhNzI3OTE2N2MyYTljM2YwYzQ4
MDlmZTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTE0Nywx
MiArMTQ3LDEyIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlclZhbHVlOjpjcmVhdGVD
U1NWYWx1ZSgpCiB9CiAKIENTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3RvcigpCi0g
ICAgOiBtX3NlbGVjdG9yKGFkb3B0UHRyKG5ldyBDU1NTZWxlY3RvcikpCisgICAgOiBtX3NlbGVj
dG9yKHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KCkpCiB7CiB9CiAKIENTU1BhcnNlclNl
bGVjdG9yOjpDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdRTmFtZSkK
LSAgICA6IG1fc2VsZWN0b3IoYWRvcHRQdHIobmV3IENTU1NlbGVjdG9yKHRhZ1FOYW1lKSkpCisg
ICAgOiBtX3NlbGVjdG9yKHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KHRhZ1FOYW1lKSkK
IHsKIH0KIApAQCAtMTYwLDIyICsxNjAsMjIgQEAgQ1NTUGFyc2VyU2VsZWN0b3I6On5DU1NQYXJz
ZXJTZWxlY3RvcigpCiB7CiAgICAgaWYgKCFtX3RhZ0hpc3RvcnkpCiAgICAgICAgIHJldHVybjsK
LSAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiwgMTY+IHRvRGVsZXRlOwotICAg
IE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IgPSBtX3RhZ0hpc3RvcnkucmVsZWFz
ZSgpOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+LCAxNj4g
dG9EZWxldGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3Rv
ciA9IHN0ZDo6bW92ZShtX3RhZ0hpc3RvcnkpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbmV4dCA9IHNlbGVjdG9yLT5tX3RhZ0hpc3Rvcnku
cmVsZWFzZSgpOwotICAgICAgICB0b0RlbGV0ZS5hcHBlbmQoc2VsZWN0b3IucmVsZWFzZSgpKTsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBuZXh0ID0gc3RkOjpt
b3ZlKHNlbGVjdG9yLT5tX3RhZ0hpc3RvcnkpOworICAgICAgICB0b0RlbGV0ZS5hcHBlbmQoc3Rk
Ojptb3ZlKHNlbGVjdG9yKSk7CiAgICAgICAgIGlmICghbmV4dCkKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBzZWxlY3RvciA9IG5leHQucmVsZWFzZSgpOworICAgICAgICBzZWxlY3RvciA9
IHN0ZDo6bW92ZShuZXh0KTsKICAgICB9CiB9CiAKLXZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFk
b3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxl
Y3RvclZlY3RvcikKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFkb3B0U2VsZWN0b3JWZWN0b3Io
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxlY3RvclZlY3Rv
cikKIHsKLSAgICBPd25QdHI8Q1NTU2VsZWN0b3JMaXN0PiBzZWxlY3Rvckxpc3QgPSBhZG9wdFB0
cihuZXcgQ1NTU2VsZWN0b3JMaXN0KTsKKyAgICBhdXRvIHNlbGVjdG9yTGlzdCA9IHN0ZDo6bWFr
ZV91bmlxdWU8Q1NTU2VsZWN0b3JMaXN0PigpOwogICAgIHNlbGVjdG9yTGlzdC0+YWRvcHRTZWxl
Y3RvclZlY3RvcihzZWxlY3RvclZlY3Rvcik7Ci0gICAgbV9zZWxlY3Rvci0+c2V0U2VsZWN0b3JM
aXN0KHNlbGVjdG9yTGlzdC5yZWxlYXNlKCkpOworICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9y
TGlzdChzdGQ6Om1vdmUoc2VsZWN0b3JMaXN0KSk7CiB9CiAKIGJvb2wgQ1NTUGFyc2VyU2VsZWN0
b3I6OmlzU2ltcGxlKCkgY29uc3QKQEAgLTE5OCwzMiArMTk4LDMyIEBAIGJvb2wgQ1NTUGFyc2Vy
U2VsZWN0b3I6OmlzU2ltcGxlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
Q1NTUGFyc2VyU2VsZWN0b3I6Omluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9u
IGJlZm9yZSwgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IsIENTU1NlbGVj
dG9yOjpSZWxhdGlvbiBhZnRlcikKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6Omluc2VydFRhZ0hp
c3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGJlZm9yZSwgc3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPiBzZWxlY3RvciwgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGFmdGVyKQogewog
ICAgIGlmIChtX3RhZ0hpc3RvcnkpCi0gICAgICAgIHNlbGVjdG9yLT5zZXRUYWdIaXN0b3J5KG1f
dGFnSGlzdG9yeS5yZWxlYXNlKCkpOworICAgICAgICBzZWxlY3Rvci0+c2V0VGFnSGlzdG9yeShz
dGQ6Om1vdmUobV90YWdIaXN0b3J5KSk7CiAgICAgc2V0UmVsYXRpb24oYmVmb3JlKTsKICAgICBz
ZWxlY3Rvci0+c2V0UmVsYXRpb24oYWZ0ZXIpOwotICAgIG1fdGFnSGlzdG9yeSA9IHNlbGVjdG9y
OworICAgIG1fdGFnSGlzdG9yeSA9IHN0ZDo6bW92ZShzZWxlY3Rvcik7CiB9CiAKLXZvaWQgQ1NT
UGFyc2VyU2VsZWN0b3I6OmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJl
bGF0aW9uLCBQYXNzT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvcikKK3ZvaWQgQ1NT
UGFyc2VyU2VsZWN0b3I6OmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJl
bGF0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlbGVjdG9yKQogewog
ICAgIENTU1BhcnNlclNlbGVjdG9yKiBlbmQgPSB0aGlzOwogICAgIHdoaWxlIChlbmQtPnRhZ0hp
c3RvcnkoKSkKICAgICAgICAgZW5kID0gZW5kLT50YWdIaXN0b3J5KCk7CiAgICAgZW5kLT5zZXRS
ZWxhdGlvbihyZWxhdGlvbik7Ci0gICAgZW5kLT5zZXRUYWdIaXN0b3J5KHNlbGVjdG9yKTsKKyAg
ICBlbmQtPnNldFRhZ0hpc3Rvcnkoc3RkOjptb3ZlKHNlbGVjdG9yKSk7CiB9CiAKIHZvaWQgQ1NT
UGFyc2VyU2VsZWN0b3I6OnByZXBlbmRUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdRTmFtZSwgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpCiB7Ci0gICAgT3duUHRyPENTU1Bh
cnNlclNlbGVjdG9yPiBzZWNvbmQgPSBhZG9wdFB0cihuZXcgQ1NTUGFyc2VyU2VsZWN0b3IpOwot
ICAgIHNlY29uZC0+bV9zZWxlY3RvciA9IG1fc2VsZWN0b3IucmVsZWFzZSgpOwotICAgIHNlY29u
ZC0+bV90YWdIaXN0b3J5ID0gbV90YWdIaXN0b3J5LnJlbGVhc2UoKTsKLSAgICBtX3RhZ0hpc3Rv
cnkgPSBzZWNvbmQucmVsZWFzZSgpOworICAgIGF1dG8gc2Vjb25kID0gc3RkOjptYWtlX3VuaXF1
ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKKyAgICBzZWNvbmQtPm1fc2VsZWN0b3IgPSBzdGQ6Om1v
dmUobV9zZWxlY3Rvcik7CisgICAgc2Vjb25kLT5tX3RhZ0hpc3RvcnkgPSBzdGQ6Om1vdmUobV90
YWdIaXN0b3J5KTsKKyAgICBtX3RhZ0hpc3RvcnkgPSBzdGQ6Om1vdmUoc2Vjb25kKTsKIAotICAg
IG1fc2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgQ1NTU2VsZWN0b3IodGFnUU5hbWUsIHRhZ0lzRm9y
TmFtZXNwYWNlUnVsZSkpOworICAgIG1fc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1Nl
bGVjdG9yPih0YWdRTmFtZSwgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKTsKICAgICBtX3NlbGVjdG9y
LT5tX3JlbGF0aW9uID0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMjMzYjhjMmNjM2VmZDQzYzNmZjljM2Y3MTk5ZjE0
OTgwOTM4ZmViNy4uY2IzNGU5ZGI3OTRlYzU2NGE5MDQ1MDRjOWNjZGNjZDVlNmI3ODkyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMTY1LDcgKzE2NSw3IEBAIHN0cnVj
dCBDU1NQYXJzZXJGdW5jdGlvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgQ1NTUGFyc2VyU3RyaW5nIG5hbWU7Ci0gICAgT3duUHRyPENTU1BhcnNlclZhbHVl
TGlzdD4gYXJnczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBhcmdz
OwogfTsKIAogY2xhc3MgQ1NTUGFyc2VyU2VsZWN0b3IgewpAQCAtMTc1LDcgKzE3NSw3IEBAIHB1
YmxpYzoKICAgICBleHBsaWNpdCBDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgfkNTU1BhcnNlclNlbGVjdG9yKCk7CiAKLSAgICBQYXNzT3duUHRyPENTU1NlbGVj
dG9yPiByZWxlYXNlU2VsZWN0b3IoKSB7IHJldHVybiBtX3NlbGVjdG9yLnJlbGVhc2UoKTsgfQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rvcj4gcmVsZWFzZVNlbGVjdG9yKCkgeyByZXR1
cm4gc3RkOjptb3ZlKG1fc2VsZWN0b3IpOyB9CiAKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0VmFsdWUodmFsdWUpOyB9CiAgICAg
dm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdmFsdWUsIGJvb2wgaXNDYXNl
SW5zZW5zaXRpdmUpIHsgbV9zZWxlY3Rvci0+c2V0QXR0cmlidXRlKHZhbHVlLCBpc0Nhc2VJbnNl
bnNpdGl2ZSk7IH0KQEAgLTE4NCw3ICsxODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWxh
dGlvbihDU1NTZWxlY3Rvcjo6UmVsYXRpb24gdmFsdWUpIHsgbV9zZWxlY3Rvci0+bV9yZWxhdGlv
biA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRGb3JQYWdlKCkgeyBtX3NlbGVjdG9yLT5zZXRGb3JQ
YWdlKCk7IH0KIAotICAgIHZvaWQgYWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENT
U1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9yVmVjdG9yKTsKKyAgICB2b2lkIGFkb3B0U2VsZWN0
b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxl
Y3RvclZlY3Rvcik7CiAKICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvVHlwZSgpOyB9CiAgICAgYm9vbCBpc0N1
c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yLT5pc0N1c3RvbVBz
ZXVkb0VsZW1lbnQoKTsgfQpAQCAtMTkzLDE1ICsxOTMsMTUgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzU2hhZG93RGVzY2VuZGFudCgpIGNvbnN0OwogCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIHRh
Z0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3RhZ0hpc3RvcnkuZ2V0KCk7IH0KLSAgICB2b2lk
IHNldFRhZ0hpc3RvcnkoUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IpIHsg
bV90YWdIaXN0b3J5ID0gc2VsZWN0b3I7IH0KLSAgICB2b2lkIGNsZWFyVGFnSGlzdG9yeSgpIHsg
bV90YWdIaXN0b3J5LmNsZWFyKCk7IH0KLSAgICB2b2lkIGluc2VydFRhZ0hpc3RvcnkoQ1NTU2Vs
ZWN0b3I6OlJlbGF0aW9uIGJlZm9yZSwgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4sIENT
U1NlbGVjdG9yOjpSZWxhdGlvbiBhZnRlcik7Ci0gICAgdm9pZCBhcHBlbmRUYWdIaXN0b3J5KENT
U1NlbGVjdG9yOjpSZWxhdGlvbiwgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4pOworICAg
IHZvaWQgc2V0VGFnSGlzdG9yeShzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNl
bGVjdG9yKSB7IG1fdGFnSGlzdG9yeSA9IHN0ZDo6bW92ZShzZWxlY3Rvcik7IH0KKyAgICB2b2lk
IGNsZWFyVGFnSGlzdG9yeSgpIHsgbV90YWdIaXN0b3J5LnJlc2V0KCk7IH0KKyAgICB2b2lkIGlu
c2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGJlZm9yZSwgc3RkOjp1bmlxdWVf
cHRyPENTU1BhcnNlclNlbGVjdG9yPiwgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGFmdGVyKTsKKyAg
ICB2b2lkIGFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uLCBzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KTsKICAgICB2b2lkIHByZXBlbmRUYWdTZWxlY3Rvcihj
b25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUgPSBmYWxzZSk7
CiAKIHByaXZhdGU6Ci0gICAgT3duUHRyPENTU1NlbGVjdG9yPiBtX3NlbGVjdG9yOwotICAgIE93
blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbV90YWdIaXN0b3J5OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxDU1NTZWxlY3Rvcj4gbV9zZWxlY3RvcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+IG1fdGFnSGlzdG9yeTsKIH07CiAKIGlubGluZSBib29sIENTU1BhcnNlclNlbGVj
dG9yOjpoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCmluZGV4IDA5NTIxZGRjOGY2NDA1OTZmOWU3Y2JiZDYxMTNmNjYxYjFkNjZjNTIuLmViMzcy
MzdmZjRhNjgwZjdkYjA0ZTQ3OTBlZjViOTRlN2VkNWVjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmNwcApAQCAtNjUzLDEwICs2NTMsMTAgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJn
dW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKICAgICBtX2RhdGEubV9yYXJlRGF0YS0+
bV9hcmd1bWVudCA9IHZhbHVlOwogfQogCi12b2lkIENTU1NlbGVjdG9yOjpzZXRTZWxlY3Rvckxp
c3QoUGFzc093blB0cjxDU1NTZWxlY3Rvckxpc3Q+IHNlbGVjdG9yTGlzdCkKK3ZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldFNlbGVjdG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBz
ZWxlY3Rvckxpc3QpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKLSAgICBtX2RhdGEubV9yYXJl
RGF0YS0+bV9zZWxlY3Rvckxpc3QgPSBzZWxlY3Rvckxpc3Q7CisgICAgbV9kYXRhLm1fcmFyZURh
dGEtPm1fc2VsZWN0b3JMaXN0ID0gc3RkOjptb3ZlKHNlbGVjdG9yTGlzdCk7CiB9CiAKIGJvb2wg
Q1NTU2VsZWN0b3I6OnBhcnNlTnRoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5k
ZXggOThjMjZkYTIxMzViNWQyYmY1ODVjZTg0ZDhmNWFlMTY4ZDc1ZmQyNC4uMDY5MWZhYzc3MGMy
OWFlN2NlMjc4MmZjMmRiMjIyZjRjMmQwYjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
QEAgLTI1LDggKzI1LDYgQEAKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENTU1NlbGVjdG9yTGlzdDsKQEAgLTIwOCw3ICsy
MDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3Qg
QXRvbWljU3RyaW5nJik7CiAgICAgICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKTsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVu
dChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxpc3QoUGFz
c093blB0cjxDU1NTZWxlY3Rvckxpc3Q+KTsKKyAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxpc3Qo
c3RkOjp1bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4pOwogCiAgICAgICAgIGJvb2wgcGFyc2VO
dGgoKSBjb25zdDsKICAgICAgICAgYm9vbCBtYXRjaE50aChpbnQgY291bnQpIGNvbnN0OwpAQCAt
MjYzLDcgKzI2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFF1YWxpZmll
ZE5hbWUgbV9hdHRyaWJ1dGU7IC8vIHVzZWQgZm9yIGF0dHJpYnV0ZSBzZWxlY3RvcgogICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIG1fYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lOwogICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIG1fYXJndW1lbnQ7IC8vIFVzZWQgZm9yIDpjb250YWlucywgOmxh
bmcgYW5kIDpudGgtKgotICAgICAgICAgICAgT3duUHRyPENTU1NlbGVjdG9yTGlzdD4gbV9zZWxl
Y3Rvckxpc3Q7IC8vIFVzZWQgZm9yIDotd2Via2l0LWFueSBhbmQgOm5vdAorICAgICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4gbV9zZWxlY3Rvckxpc3Q7IC8vIFVzZWQg
Zm9yIDotd2Via2l0LWFueSBhbmQgOm5vdAogICAgICAgICAKICAgICAgICAgcHJpdmF0ZToKICAg
ICAgICAgICAgIFJhcmVEYXRhKFBhc3NSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4gdmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAppbmRleCAwNTljMDA3NmFkZDllNDBk
MjI3ZDU1MmJiYzVkYmE3NzliYmU3MzdmLi5hNjc1ZDFhOTkyN2JlMjQ4M2VlZWFhMWMwZGJlODA2
MGE0YzU3NzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcApAQCAtNTIs
NyArNTIsNyBAQCB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHQoQ1NTU2VsZWN0b3JMaXN0JiBs
aXN0KQogICAgIGxpc3QubV9zZWxlY3RvckFycmF5ID0gMDsKIH0KIAotdm9pZCBDU1NTZWxlY3Rv
ckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4+JiBzZWxlY3RvclZlY3RvcikKK3ZvaWQgQ1NTU2VsZWN0b3JMaXN0OjphZG9wdFNlbGVjdG9y
VmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0
b3JWZWN0b3IpCiB7CiAgICAgZGVsZXRlU2VsZWN0b3JzKCk7CiAgICAgc2l6ZV90IGZsYXR0ZW5l
ZFNpemUgPSAwOwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHRT
ZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbAogICAg
ICAgICB3aGlsZSAoY3VycmVudCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8v
IE1vdmUgaXRlbSBmcm9tIHRoZSBwYXJzZXIgc2VsZWN0b3IgdmVjdG9yIGludG8gbV9zZWxlY3Rv
ckFycmF5IHdpdGhvdXQgaW52b2tpbmcgZGVzdHJ1Y3RvciAoVWdoLikKLSAgICAgICAgICAgICAg
ICBDU1NTZWxlY3RvciogY3VycmVudFNlbGVjdG9yID0gY3VycmVudC0+cmVsZWFzZVNlbGVjdG9y
KCkubGVha1B0cigpOworICAgICAgICAgICAgICAgIENTU1NlbGVjdG9yKiBjdXJyZW50U2VsZWN0
b3IgPSBjdXJyZW50LT5yZWxlYXNlU2VsZWN0b3IoKS5yZWxlYXNlKCk7CiAgICAgICAgICAgICAg
ICAgbWVtY3B5KCZtX3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0sIGN1cnJlbnRTZWxlY3Rvciwg
c2l6ZW9mKENTU1NlbGVjdG9yKSk7CiAKICAgICAgICAgICAgICAgICAvLyBGcmVlIHRoZSB1bmRl
cmx5aW5nIG1lbW9yeSB3aXRob3V0IGludm9raW5nIHRoZSBkZXN0cnVjdG9yLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5oCmluZGV4IDAxNzM0MDFkZjBhMTc3MGQyYTQxZjExMGJiZWJk
MDc4NTMyMjEzYjAuLjM3YmI0YjNjN2MzNTY2YjFkMTg1ZDk2Mjk2NmU0ZjYwYmE4ODU0MjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZp
bmUgQ1NTU2VsZWN0b3JMaXN0X2gKIAogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVk
ZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDcgKzQyLDcgQEAgcHVi
bGljOgogICAgIH5DU1NTZWxlY3Rvckxpc3QoKTsKIAogICAgIHZvaWQgYWRvcHQoQ1NTU2VsZWN0
b3JMaXN0JiBsaXN0KTsKLSAgICB2b2lkIGFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxlY3RvclZlY3Rvcik7CisgICAgdm9pZCBhZG9wdFNl
bGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYg
c2VsZWN0b3JWZWN0b3IpOwogICAgIHZvaWQgYWRvcHRTZWxlY3RvckFycmF5KENTU1NlbGVjdG9y
KiBzZWxlY3RvcnMpIHsgQVNTRVJUKCFtX3NlbGVjdG9yQXJyYXkpOyBtX3NlbGVjdG9yQXJyYXkg
PSBzZWxlY3RvcnM7IH0KIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9z
ZWxlY3RvckFycmF5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCmluZGV4IDRiNDU5
NjAzYmMyZTBlNTYxMmI0MDg3OTkyMjRjYTEwNjFjM2IxMzMuLmNjODI0ZDYwMDE3NjMzY2EzNjI5
NWU1NjdkMTRlZDI1NWI5MDM0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCkBA
IC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAKICNpbmNsdWRlICJD
U1NQYXJzZXJWYWx1ZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSdWxlLmNwcAppbmRleCA4Nzk0M2JlM2Q2YTZkYjI0MTRhMjM3NTY1NGIxY2Q5NTM3
YmY1YzMzLi4xMmYyZDhiNjhkYjY3YjYxMzFiY2MxMGM5MzExMDU5N2IxZmU5ZGVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIFN0eWxlUnVsZVN1cHBvcnRz
OjpTdHlsZVJ1bGVTdXBwb3J0cyhjb25zdCBTdHlsZVJ1bGVTdXBwb3J0cyYgbykKIH0KICNlbmRp
ZgogCi1TdHlsZVJ1bGVSZWdpb246OlN0eWxlUnVsZVJlZ2lvbihWZWN0b3I8T3duUHRyPENTU1Bh
cnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4m
IGFkb3B0UnVsZXMpCitTdHlsZVJ1bGVSZWdpb246OlN0eWxlUnVsZVJlZ2lvbihWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0
cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMpCiAgICAgOiBTdHlsZVJ1bGVHcm91cChSZWdp
b24sIGFkb3B0UnVsZXMpCiB7CiAgICAgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3Rv
cigqc2VsZWN0b3JzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAppbmRleCA1NDIyNmI5N2NmODVhMDU3
MWMzNDkwYjg3OWFiZWNhMDJkYjc4ODQ4Li43MDQwZjA2ZDUwZDUzNzk4MjM1MDk3ZTJiMmUwNDEx
Yzc3YTIyMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVi
bGljOgogICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyYgcHJvcGVydGllcygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvcGVydGllcy5nZXQoKTsgfQogICAgIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIG11
dGFibGVQcm9wZXJ0aWVzKCk7CiAgICAgCi0gICAgdm9pZCBwYXJzZXJBZG9wdFNlbGVjdG9yVmVj
dG9yKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JzKSB7IG1fc2Vs
ZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQorICAgIHZvaWQgcGFy
c2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNl
bGVjdG9yPj4mIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yVmVjdG9y
KHNlbGVjdG9ycyk7IH0KICAgICB2b2lkIHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlzdChDU1NTZWxl
Y3Rvckxpc3QmIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdChzZWxlY3RvcnMpOyB9
CiAgICAgdm9pZCBwYXJzZXJBZG9wdFNlbGVjdG9yQXJyYXkoQ1NTU2VsZWN0b3IqIHNlbGVjdG9y
cykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yQXJyYXkoc2VsZWN0b3JzKTsgfQogCkBA
IC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyYgcHJv
cGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsgfQogICAgIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmIG11dGFibGVQcm9wZXJ0aWVzKCk7CiAKLSAgICB2b2lkIHBhcnNl
ckFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBz
ZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMp
OyB9CisgICAgdm9pZCBwYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFk
b3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQogICAgIHZvaWQgd3JhcHBlckFkb3B0U2Vs
ZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFk
b3B0KHNlbGVjdG9ycyk7IH0KIAogICAgIFBhc3NSZWY8U3R5bGVSdWxlUGFnZT4gY29weSgpIGNv
bnN0IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlUGFnZSgqdGhpcykpOyB9CkBAIC0y
NDEsNyArMjQxLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgU3R5bGVSdWxlUmVnaW9uIDogcHVibGlj
IFN0eWxlUnVsZUdyb3VwIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZjxTdHlsZVJ1bGVS
ZWdpb24+IGNyZWF0ZShWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9y
cywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMpCisgICAgc3RhdGlj
IFBhc3NSZWY8U3R5bGVSdWxlUmVnaW9uPiBjcmVhdGUoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4+KiBzZWxlY3RvcnMsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFz
ZT4+JiBhZG9wdFJ1bGVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5
bGVSdWxlUmVnaW9uKHNlbGVjdG9ycywgYWRvcHRSdWxlcykpOwogICAgIH0KQEAgLTI1MSw3ICsy
NTEsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZjxTdHlsZVJ1bGVSZWdpb24+IGNvcHkoKSBjb25z
dCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZVJlZ2lvbigqdGhpcykpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgU3R5bGVSdWxlUmVnaW9uKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+PiosIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBhZG9wdFJ1bGVzKTsKKyAgICBT
dHlsZVJ1bGVSZWdpb24oVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+
KiwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMpOwogICAgIFN0eWxl
UnVsZVJlZ2lvbihjb25zdCBTdHlsZVJ1bGVSZWdpb24mKTsKICAgICAKICAgICBDU1NTZWxlY3Rv
ckxpc3QgbV9zZWxlY3Rvckxpc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>