<?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>185121</bug_id>
          
          <creation_ts>2018-04-29 10:36:10 -0700</creation_ts>
          <short_desc>Use WordLock instead of std::mutex for Threading</short_desc>
          <delta_ts>2018-04-30 10:31:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418904</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-29 10:36:10 -0700</bug_when>
    <thetext>Use WordLock instead of std::mutex for Threading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418906</commentid>
    <comment_count>1</comment_count>
      <attachid>339094</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-29 10:40:27 -0700</bug_when>
    <thetext>Created attachment 339094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418913</commentid>
    <comment_count>2</comment_count>
      <attachid>339097</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-29 11:40:32 -0700</bug_when>
    <thetext>Created attachment 339097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419014</commentid>
    <comment_count>3</comment_count>
      <attachid>339097</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-04-30 09:55:41 -0700</bug_when>
    <thetext>Comment on attachment 339097
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419023</commentid>
    <comment_count>4</comment_count>
      <attachid>339097</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-30 10:03:07 -0700</bug_when>
    <thetext>Comment on attachment 339097
Patch

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419037</commentid>
    <comment_count>5</comment_count>
      <attachid>339097</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-30 10:30:31 -0700</bug_when>
    <thetext>Comment on attachment 339097
Patch

Clearing flags on attachment: 339097

Committed r231158: &lt;https://trac.webkit.org/changeset/231158&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419038</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-30 10:30:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419039</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-30 10:31:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/39839649&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339094</attachid>
            <date>2018-04-29 10:40:27 -0700</date>
            <delta_ts>2018-04-29 11:40:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185121-20180430024026.patch</filename>
            <type>text/plain</type>
            <size>16363</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MzgwMzRkN2QzOTNjNmI4Y2M1NGY5YzZmZmQ5ODgyZGEwZWE2YTQ0Li4wNDRkMzI1NGY3YzdjNDNi
ZDY3M2U4M2UwMDdlY2Q1NmY2YTA3ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNC0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgV29yZExvY2sgaW5zdGVhZCBvZiBzdGQ6Om11dGV4IGZvciBU
aHJlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTEyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRocmVhZEdyb3VwIHN0YXJ0cyB1c2luZyBXb3JkTG9jay4KKworICAgICAgICAqIGhlYXAvTWFj
aGluZVN0YWNrTWFya2VyLmg6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnZXRMb2Nr
KToKKwogMjAxOC0wNC0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzNy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZDcxMzBj
YTE1ZjU5NTIyZDg0OTgxMGJjMDA3MmY0MDQwYTcyNzk5Yi4uZWNmZDYyM2VmZGJlNzcwY2Y2NTRi
NGQ2ZDBiZGNlZTkwYWZjZDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxOC0wNC0yOSAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgV29yZExv
Y2sgaW5zdGVhZCBvZiBzdGQ6Om11dGV4IGZvciBUaHJlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTEyMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlZm9yZSByMjMxMTUxLCBXb3JkTG9jayBk
ZXBlbmRzIG9uIFRocmVhZFNwZWNpZmljLiBJdCBtZWFucyB0aGF0IG91ciBUaHJlYWRpbmcgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgY2Fubm90IHVzZSB0aGlzIGxvY2sgc2luY2UgVGhyZWFkaW5n
IHByaW1pdGl2ZXMgY291bGQgdG91Y2ggdGhlc2UgbG9ja3MgYWZ0ZXIgVGhyZWFkU3BlY2lmaWMK
KyAgICAgICAgZm9yIHRoYXQgV29yZExvY2sgaXMgZGVzdHJveWVkLgorCisgICAgICAgIE5vdyBX
b3JkTG9jayBpcyBjaGFuZ2VkIG5vdCB0byB1c2UgVGhyZWFkU3BlY2lmaWMuIFNvIGl0IGRvZXMg
bm90IGRlcGVuZCBvbiBvdXIgVGhyZWFkaW5nCisgICAgICAgIG1lY2hhbmlzbSBhbmQgb3VyIFRo
cmVhZGluZyBjYW4gc3RhcnQgdXNpbmcgV29yZExvY2sgaW50ZXJuYWxseS4KKworICAgICAgICBU
aGlzIHBhdGNoIGNoYW5nZXMgV1RGOjpUaHJlYWQgYW5kIFdURjo6VGhyZWFkR3JvdXAgdG8gdXNl
IFdvcmRMb2NrIGluc3RlYWQgb2Ygc3RkOjptdXRleC4KKworICAgICAgICBBbmQgYWRkIGNvbnN0
ZXhwciB0byBleHBsaWNpdGx5IGRlc2NyaWJlIHRoYXQgTG9jaywgQ29uZGl0aW9uLCBhbmQgV29y
ZExvY2sgY29uc3RydWN0b3JzIGFyZSBjb25zdGV4cHIuCisKKyAgICAgICAgKiB3dGYvQ29uZGl0
aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkR3JvdXAu
aDoKKyAgICAgICAgKFdURjo6VGhyZWFkR3JvdXA6OmdldExvY2spOgorICAgICAgICAqIHd0Zi9U
aHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmRpZEV4aXQpOgorICAgICAgICAo
V1RGOjpUaHJlYWQ6OmFkZFRvVGhyZWFkR3JvdXApOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OnJl
bW92ZUZyb21UaHJlYWRHcm91cCk6CisgICAgICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAg
ICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6Y2hh
bmdlUHJpb3JpdHkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OndhaXRGb3JDb21wbGV0aW9uKToK
KyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXRhY2gpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OnNp
Z25hbCk6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXN0YWJsaXNoUGxhdGZvcm1TcGVjaWZpY0hh
bmRsZSk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6OlRo
cmVhZDo6Y2hhbmdlUHJpb3JpdHkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OndhaXRGb3JDb21w
bGV0aW9uKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXRhY2gpOgorICAgICAgICAoV1RGOjpU
aHJlYWQ6OmVzdGFibGlzaFBsYXRmb3JtU3BlY2lmaWNIYW5kbGUpOgorICAgICAgICAoV1RGOjpU
aHJlYWQ6OmluaXRpYWxpemVUTFNLZXkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmN1cnJlbnRE
eWluZyk6CisgICAgICAgIChXVEY6OlRocmVhZDo6Z2V0KToKKyAgICAgICAgKFdURjo6VGhyZWFk
Ojppbml0aWFsaXplVExTKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXN0cnVjdFRMUyk6Cisg
ICAgICAgIChXVEY6OnRocmVhZE1hcE11dGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvV29y
ZExvY2suaDoKKwogMjAxOC0wNC0yOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBSZXF1aXJlIEdDQyA2CmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXgg
YzM3ODdjYjg3MWM5ZDE5MDM3ZDViYzlmMzRlMGQxNzI1MzAwZmNiMy4uY2YzMWE2NWRmY2M1ZmYy
NmRkM2JkOWY0OTAwYzcxZjI3ZGQ2YzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTA0LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAg
ICAgIFVzZSBXb3JkTG9jayBpbnN0ZWFkIG9mIHN0ZDo6bXV0ZXggZm9yIFRocmVhZGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnN0ZXhw
ciB0byBleHBsaWNpdGx5IGRlc2NyaWJlIHRoYXQgYm1hbGxvYzo6TXV0ZXggY29uc3RydWN0b3Ig
aXMgY29uc3RleHByLgorCisgICAgICAgICogYm1hbGxvYy9NdXRleC5oOgorCiAyMDE4LTA0LTIz
ICBUaW5nLVdlaSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KIAogICAgICAgICBJbmNsdWRlIHN0
ZGlvLmggYmVmb3JlIHVzaW5nIHN0ZGVycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaAppbmRleCAxZDc5NGRiMTIxOGZmZjhlMjI3ODQwYzg4ODY4
YTc4YzdmNTU2ZDMyLi41ZmUwN2MzNTVjZmFlMTNmYzA1MzdiODJjNWQwODk0N2UwNzc1ODkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApA
QCAtNTAsNyArNTAsNyBAQCBjbGFzcyBNYWNoaW5lVGhyZWFkcyB7CiAgICAgLy8gT25seSBuZWVk
cyB0byBiZSBjYWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhlIHNhbWUgaGVhcCBmcm9t
IG11bHRpcGxlIHRocmVhZHMuCiAgICAgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCkgeyBtX3RocmVh
ZEdyb3VwLT5hZGRDdXJyZW50VGhyZWFkKCk7IH0KIAotICAgIHN0ZDo6bXV0ZXgmIGdldExvY2so
KSB7IHJldHVybiBtX3RocmVhZEdyb3VwLT5nZXRMb2NrKCk7IH0KKyAgICBXb3JkTG9jayYgZ2V0
TG9jaygpIHsgcmV0dXJuIG1fdGhyZWFkR3JvdXAtPmdldExvY2soKTsgfQogICAgIGNvbnN0IExp
c3RIYXNoU2V0PFJlZjxUaHJlYWQ+PiYgdGhyZWFkcyhjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKSBjb25zdCB7IHJldHVybiBtX3RocmVhZEdyb3VwLT50aHJlYWRzKGxvY2tlcik7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oIGIvU291cmNl
L1dURi93dGYvQ29uZGl0aW9uLmgKaW5kZXggNTEyZjEwZjJhZDUzY2FlYmE4MDc5ZDYwNmY2NzZj
YzlmYzJjMGVkYy4uNzVjOGVhNWQ5MTI4OGEzYjU2ZDc3ZWQzNDk3YWEyYzM5ZGYxMDRkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYv
Q29uZGl0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQ29uZGl0aW9uIHsKICAgICAvLyBh
cmUgdW5saWtlbHkgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGNvc3Qgb2YgY29udmVyc2lvbnMsIGl0
IGlzIGJldHRlciB0byB1c2UgTW9ub3RvbmljVGltZS4KICAgICB1c2luZyBUaW1lID0gUGFya2lu
Z0xvdDo6VGltZTsKIAotICAgIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
Q29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtpbmcgcXVldWUg
d2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0aGUgbG9jayBq
dXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3YWtldXAuIFJl
dHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCBkM2M3
MjE1MmMxYzRkODE4N2QwMDRjMmJiODJhMTAyN2QyNGZhODczLi5lMzk0NzBlMWU1ZDI5NWE0NTIx
YzdhMGQxMmExN2U1NGYxZjc4NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgK
KysrIGIvU291cmNlL1dURi93dGYvTG9jay5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIExvY2sg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2spOwogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIExv
Y2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZEdyb3VwLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRHcm91cC5o
CmluZGV4IDg4ZTQxOWExMTEyNjA3NzRmZDMyY2IxODBjYjI3Nzg4OTFhNjNhZWYuLmY1M2NlMzE5
NmMyYmRkNjA2MmExYjJhZGM2NmVmNzliMTBjZWNmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZEdyb3VwLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkR3JvdXAuaApAQCAt
NTEsNyArNTEsNyBAQCBjbGFzcyBUaHJlYWRHcm91cCA6IHB1YmxpYyBzdGQ6OmVuYWJsZV9zaGFy
ZWRfZnJvbV90aGlzPFRocmVhZEdyb3VwPiB7CiAKICAgICBjb25zdCBMaXN0SGFzaFNldDxSZWY8
VGhyZWFkPj4mIHRocmVhZHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdCB7IHJldHVybiBt
X3RocmVhZHM7IH0KIAotICAgIHN0ZDo6bXV0ZXgmIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBXb3JkTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIH5UaHJlYWRHcm91cCgpOwogCkBAIC02Myw4ICs2Myw4IEBAIGNsYXNz
IFRocmVhZEdyb3VwIDogcHVibGljIHN0ZDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8VGhyZWFk
R3JvdXA+IHsKICAgICAgICAgcmV0dXJuIHNoYXJlZF9mcm9tX3RoaXMoKTsKICAgICB9CiAKLSAg
ICAvLyBXZSB1c2Ugc3RkOjptdXRleCBzaW5jZSBpdCBjYW4gYmUgdXNlZCB3aGVuIGRlYWxsb2Nh
dGluZyBUTFMuCi0gICAgc3RkOjptdXRleCBtX2xvY2s7CisgICAgLy8gV2UgdXNlIFdvcmRMb2Nr
IHNpbmNlIGl0IGNhbiBiZSB1c2VkIHdoZW4gZGVhbGxvY2F0aW5nIFRMUy4KKyAgICBXb3JkTG9j
ayBtX2xvY2s7CiAgICAgTGlzdEhhc2hTZXQ8UmVmPFRocmVhZD4+IG1fdGhyZWFkczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwCmluZGV4IGVlOGFkOTRjNDgwNWQwYTczNDYxMDE1ODdmOGY2ZmFjNzYw
ZmYxY2MuLmQ0Y2U0ZmM1MjY0ZWU1YzI5YmVhNmFkMTYxYzAzOThlZTQ4MDY2M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgVGhyZWFkOjpkaWRFeGl0KCkKICAg
ICBpZiAoc2hvdWxkUmVtb3ZlVGhyZWFkRnJvbVRocmVhZEdyb3VwKCkpIHsKICAgICAgICAgVmVj
dG9yPHN0ZDo6c2hhcmVkX3B0cjxUaHJlYWRHcm91cD4+IHRocmVhZEdyb3VwczsKICAgICAgICAg
ewotICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4
KTsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIHRocmVhZEdyb3VwIDogbV90aHJlYWRHcm91cHMpIHsKICAgICAgICAg
ICAgICAgICAvLyBJZiBUaHJlYWRHcm91cCBpcyBqdXN0IGJlaW5nIGRlc3Ryb3llZCwKICAgICAg
ICAgICAgICAgICAvLyB3ZSBkbyBub3QgbmVlZCB0byBwZXJmb3JtIHVucmVnaXN0ZXJpbmcuCkBA
IC0xOTAsOCArMTkwLDggQEAgdm9pZCBUaHJlYWQ6OmRpZEV4aXQoKQogICAgICAgICAgICAgbV9p
c1NodXR0aW5nRG93biA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChhdXRvJiB0aHJl
YWRHcm91cCA6IHRocmVhZEdyb3VwcykgewotICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6bXV0ZXg+IHRocmVhZEdyb3VwTG9ja2VyKHRocmVhZEdyb3VwLT5nZXRMb2NrKCkpOwotICAg
ICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAg
ICAgICAgICAgIGF1dG8gdGhyZWFkR3JvdXBMb2NrZXIgPSBob2xkTG9jayh0aHJlYWRHcm91cC0+
Z2V0TG9jaygpKTsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7
CiAgICAgICAgICAgICB0aHJlYWRHcm91cC0+bV90aHJlYWRzLnJlbW92ZSgqdGhpcyk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFRocmVhZDo6ZGlkRXhpdCgp
CiAKICAgICAvLyBXZSB3b3VsZCBsaWtlIHRvIHNheSAidGhyZWFkIGlzIGV4aXRlZCIgYWZ0ZXIg
dW5yZWdpc3RlcmluZyB0aHJlYWRzIGZyb20gdGhyZWFkIGdyb3Vwcy4KICAgICAvLyBTbyB3ZSBu
ZWVkIHRvIHNlcGFyYXRlIG1faXNTaHV0dGluZ0Rvd24gZnJvbSBtX2RpZEV4aXQuCi0gICAgc3Rk
Ojpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAgIG1fZGlkRXhpdCA9IHRydWU7CiB9CiAKIFRocmVh
ZEdyb3VwQWRkUmVzdWx0IFRocmVhZDo6YWRkVG9UaHJlYWRHcm91cChjb25zdCBBYnN0cmFjdExv
Y2tlciYgdGhyZWFkR3JvdXBMb2NrZXIsIFRocmVhZEdyb3VwJiB0aHJlYWRHcm91cCkKIHsKICAg
ICBVTlVTRURfUEFSQU0odGhyZWFkR3JvdXBMb2NrZXIpOwotICAgIHN0ZDo6bG9ja19ndWFyZDxz
dGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X211dGV4KTsKICAgICBpZiAobV9pc1NodXR0aW5nRG93bikKICAgICAgICAgcmV0dXJuIFRocmVh
ZEdyb3VwQWRkUmVzdWx0OjpOb3RBZGRlZDsKICAgICBpZiAodGhyZWFkR3JvdXAubV90aHJlYWRz
LmFkZCgqdGhpcykuaXNOZXdFbnRyeSkgewpAQCAtMjIwLDcgKzIyMCw3IEBAIFRocmVhZEdyb3Vw
QWRkUmVzdWx0IFRocmVhZDo6YWRkVG9UaHJlYWRHcm91cChjb25zdCBBYnN0cmFjdExvY2tlciYg
dGhyZWFkR3JvdXBMCiB2b2lkIFRocmVhZDo6cmVtb3ZlRnJvbVRocmVhZEdyb3VwKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiB0aHJlYWRHcm91cExvY2tlciwgVGhyZWFkR3JvdXAmIHRocmVhZEdyb3Vw
KQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7Ci0gICAgc3RkOjpsb2Nr
X2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbXV0ZXgpOwogICAgIGlmIChtX2lzU2h1dHRpbmdEb3duKQogICAgICAgICByZXR1
cm47CiAgICAgbV90aHJlYWRHcm91cHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0gKGF1dG8gd2Vh
a1B0cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCA5N2NiZTU0MThiOWNmYmE5YjMyNmNlZDQ3MWFjODFm
YmUxYWQ0NzI1Li40N2UwMTlmYjk1Yzg4ZDQ1NGZjMWI1NGY5MTRkNjMzZjU3YjY0NDE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmcuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV29yZExvY2suaD4KIAogI2lmIFVTRShQVEhSRUFE
UykgJiYgIU9TKERBUldJTikKICNpbmNsdWRlIDxzaWduYWwuaD4KQEAgLTI3Myw4ICsyNzQsOSBA
QCBjbGFzcyBUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAg
ICAgYm9vbCBtX2RpZEV4aXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0Rlc3Ryb3llZE9uY2Ug
eyBmYWxzZSB9OwogCi0gICAgLy8gV29yZExvY2sgJiBMb2NrIHJlbHkgb24gVGhyZWFkU3BlY2lm
aWMuIEJ1dCBUaHJlYWQgb2JqZWN0IGNhbiBiZSBkZXN0cm95ZWQgZXZlbiBhZnRlciBUaHJlYWRT
cGVjaWZpYyB0aGluZ3MgYXJlIGRlc3Ryb3llZC4KLSAgICBzdGQ6Om11dGV4IG1fbXV0ZXg7Cisg
ICAgLy8gTG9jayAmIFBhcmtpbmdMb3QgcmVseSBvbiBUaHJlYWRTcGVjaWZpYy4gQnV0IFRocmVh
ZCBvYmplY3QgY2FuIGJlIGRlc3Ryb3llZCBldmVuIGFmdGVyIFRocmVhZFNwZWNpZmljIHRoaW5n
cyBhcmUgZGVzdHJveWVkLgorICAgIC8vIFVzZSBXb3JkTG9jayBzaW5jZSBXb3JkTG9jayBkb2Vz
IG5vdCBkZXBlbmQgb24gVGhyZWFkU3BlY2lmaWMgYW5kIHRoaXMgIlRocmVhZCIuCisgICAgV29y
ZExvY2sgbV9tdXRleDsKICAgICBTdGFja0JvdW5kcyBtX3N0YWNrIHsgU3RhY2tCb3VuZHM6OmVt
cHR5Qm91bmRzKCkgfTsKICAgICBWZWN0b3I8c3RkOjp3ZWFrX3B0cjxUaHJlYWRHcm91cD4+IG1f
dGhyZWFkR3JvdXBzOwogICAgIFBsYXRmb3JtVGhyZWFkSGFuZGxlIG1faGFuZGxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IGRkYWM3Mzc0YTNjNmY5NTI1Y2VlNjIwNjNm
ZjU5ZWZmMTc2MTc4N2YuLjgwYjEyMTI1ODFjMDY5MmQ1ZTVhNDYyYWQ0OTM2MzI4MDY4M2E0ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2
b2lkIFRocmVhZDo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0
aHJlYWROYW1lKQogCiB2b2lkIFRocmVhZDo6Y2hhbmdlUHJpb3JpdHkoaW50IGRlbHRhKQogewot
ICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKIAogICAgIGludCBwb2xpY3k7CiAgICAgc3Ry
dWN0IHNjaGVkX3BhcmFtIHBhcmFtOwpAQCAtMjczLDcgKzI3Myw3IEBAIGludCBUaHJlYWQ6Ondh
aXRGb3JDb21wbGV0aW9uKCkKIHsKICAgICBwdGhyZWFkX3QgaGFuZGxlOwogICAgIHsKLSAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKICAgICAgICAgaGFuZGxlID0gbV9oYW5k
bGU7CiAgICAgfQogCkBAIC0yODQsNyArMjg0LDcgQEAgaW50IFRocmVhZDo6d2FpdEZvckNvbXBs
ZXRpb24oKQogICAgIGVsc2UgaWYgKGpvaW5SZXN1bHQpCiAgICAgICAgIExPR19FUlJPUigiVGhy
ZWFkICVwIHdhcyB1bmFibGUgdG8gYmUgam9pbmVkLlxuIiwgdGhpcyk7CiAKLSAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9tdXRleCk7CiAgICAgQVNTRVJUKGpvaW5hYmxlU3RhdGUoKSA9PSBKb2luYWJs
ZSk7CiAKICAgICAvLyBJZiB0aGUgdGhyZWFkIGhhcyBhbHJlYWR5IGV4aXRlZCwgdGhlbiBkbyBu
b3RoaW5nLiBJZiB0aGUgdGhyZWFkIGhhc24ndCBleGl0ZWQgeWV0LCB0aGVuIGp1c3Qgc2lnbmFs
IHRoYXQgd2UndmUgYWxyZWFkeSBqb2luZWQgb24gaXQuCkBAIC0yOTcsNyArMjk3LDcgQEAgaW50
IFRocmVhZDo6d2FpdEZvckNvbXBsZXRpb24oKQogCiB2b2lkIFRocmVhZDo6ZGV0YWNoKCkKIHsK
LSAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgaW50IGRldGFjaFJlc3VsdCA9IHB0
aHJlYWRfZGV0YWNoKG1faGFuZGxlKTsKICAgICBpZiAoZGV0YWNoUmVzdWx0KQogICAgICAgICBM
T0dfRVJST1IoIlRocmVhZCAlcCB3YXMgdW5hYmxlIHRvIGJlIGRldGFjaGVkXG4iLCB0aGlzKTsK
QEAgLTMxOSw3ICszMTksNyBAQCBUaHJlYWQmIFRocmVhZDo6aW5pdGlhbGl6ZUN1cnJlbnRUTFMo
KQogCiBib29sIFRocmVhZDo6c2lnbmFsKGludCBzaWduYWxOdW1iZXIpCiB7Ci0gICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAgIGlmIChoYXNFeGl0ZWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGludCBlcnJObyA9IHB0aHJlYWRfa2lsbChtX2hhbmRsZSwgc2lnbmFsTnVt
YmVyKTsKQEAgLTQ0MCw3ICs0NDAsNyBAQCBzaXplX3QgVGhyZWFkOjpnZXRSZWdpc3RlcnMoUGxh
dGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykKIAogdm9pZCBUaHJlYWQ6OmVzdGFibGlzaFBsYXRm
b3JtU3BlY2lmaWNIYW5kbGUocHRocmVhZF90IGhhbmRsZSkKIHsKLSAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9tdXRleCk7CiAgICAgbV9oYW5kbGUgPSBoYW5kbGU7CiAjaWYgT1MoREFSV0lOKQogICAg
IG1fcGxhdGZvcm1UaHJlYWQgPSBwdGhyZWFkX21hY2hfdGhyZWFkX25wKGhhbmRsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAppbmRleCA2ZjNkNDFkNmEwNDU3ZmFiMGMwNmU4ZWQxYjlkOTVjMzhj
NTA1YzIwLi40ZTY1YTVlNDI3N2U0NDE5ZTgwNjY1Mjk3OTY5NTMxNTk5OGE1NmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1dpbi5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBib29sIFRocmVhZDo6ZXN0YWJs
aXNoSGFuZGxlKE5ld1RocmVhZENvbnRleHQqIGRhdGEpCiAKIHZvaWQgVGhyZWFkOjpjaGFuZ2VQ
cmlvcml0eShpbnQgZGVsdGEpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxv
Y2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAg
IFNldFRocmVhZFByaW9yaXR5KG1faGFuZGxlLCBUSFJFQURfUFJJT1JJVFlfTk9STUFMICsgZGVs
dGEpOwogfQogCkBAIC0xNzgsNyArMTc4LDcgQEAgaW50IFRocmVhZDo6d2FpdEZvckNvbXBsZXRp
b24oKQogewogICAgIEhBTkRMRSBoYW5kbGU7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbXV0ZXgpOwogICAgICAgICBoYW5kbGUgPSBtX2hhbmRsZTsKICAgICB9CiAKQEAg
LTE4Niw3ICsxODYsNyBAQCBpbnQgVGhyZWFkOjp3YWl0Rm9yQ29tcGxldGlvbigpCiAgICAgaWYg
KGpvaW5SZXN1bHQgPT0gV0FJVF9GQUlMRUQpCiAgICAgICAgIExPR19FUlJPUigiVGhyZWFkICVw
IHdhcyBmb3VuZCB0byBiZSBkZWFkbG9ja2VkIHRyeWluZyB0byBxdWl0IiwgdGhpcyk7CiAKLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgQVNTRVJUKGpvaW5hYmxlU3RhdGUoKSA9
PSBKb2luYWJsZSk7CiAKICAgICAvLyBUaGUgdGhyZWFkIGhhcyBhbHJlYWR5IGV4aXRlZCwgZG8g
bm90aGluZy4KQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFRocmVhZDo6ZGV0YWNoKCkKICAgICAv
LyBGbHNDYWxsYmFjayBhdXRvbWF0aWNhbGx5LiBGbHNDYWxsYmFjayB3aWxsIGNhbGwgQ2xvc2VI
YW5kbGUgdG8gY2xlYW4gdXAKICAgICAvLyByZXNvdXJjZS4gU28gaW4gdGhpcyBmdW5jdGlvbiwg
d2UganVzdCBtYXJrIHRoZSB0aHJlYWQgYXMgZGV0YWNoZWQgdG8KICAgICAvLyBhdm9pZCBjYWxs
aW5nIHdhaXRGb3JDb21wbGV0aW9uIGZvciB0aGlzIHRocmVhZC4KLSAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9tdXRleCk7CiAgICAgaWYgKCFoYXNFeGl0ZWQoKSkKICAgICAgICAgZGlkQmVjb21lRGV0
YWNoZWQoKTsKIH0KQEAgLTI2MSwxOCArMjYxLDE0IEBAIFRocmVhZElkZW50aWZpZXIgVGhyZWFk
OjpjdXJyZW50SUQoKQogCiB2b2lkIFRocmVhZDo6ZXN0YWJsaXNoUGxhdGZvcm1TcGVjaWZpY0hh
bmRsZShIQU5ETEUgaGFuZGxlLCBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKQogewotICAgIHN0
ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX211dGV4KTsKICAgICBtX2hhbmRsZSA9IGhhbmRsZTsKICAgICBtX2lk
ID0gdGhyZWFkSUQ7CiB9CiAKICNkZWZpbmUgSW52YWxpZFRocmVhZCByZWludGVycHJldF9jYXN0
PFRocmVhZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMHhiYmFkYmVlZikpCiAKLXN0YXRpYyBz
dGQ6Om11dGV4JiB0aHJlYWRNYXBNdXRleCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PHN0ZDo6bXV0ZXg+IG11dGV4OwotICAgIHJldHVybiBtdXRleC5nZXQoKTsKLX0KK3N0YXRpYyBX
b3JkTG9jayB0aHJlYWRNYXBNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8VGhyZWFkSWRlbnRpZmll
ciwgVGhyZWFkKj4mIHRocmVhZE1hcCgpCiB7CkBAIC0yODIsNyArMjc4LDYgQEAgc3RhdGljIEhh
c2hNYXA8VGhyZWFkSWRlbnRpZmllciwgVGhyZWFkKj4mIHRocmVhZE1hcCgpCiAKIHZvaWQgVGhy
ZWFkOjppbml0aWFsaXplVExTS2V5KCkKIHsKLSAgICB0aHJlYWRNYXBNdXRleCgpOwogICAgIHRo
cmVhZE1hcCgpOwogICAgIHRocmVhZFNwZWNpZmljS2V5Q3JlYXRlKCZzX2tleSwgZGVzdHJ1Y3RU
TFMpOwogfQpAQCAtMjkxLDE0ICsyODYsMTQgQEAgVGhyZWFkKiBUaHJlYWQ6OmN1cnJlbnREeWlu
ZygpCiB7CiAgICAgQVNTRVJUKHNfa2V5ICE9IEludmFsaWRUaHJlYWRTcGVjaWZpY0tleSk7CiAg
ICAgLy8gQWZ0ZXIgRkxTIGlzIGRlc3Ryb3llZCwgdGhpcyBtYXAgb2ZmZXJzIHRoZSB2YWx1ZSB1
bnRpbCB0aGUgc2Vjb25kIHRocmVhZCBleGl0IGNhbGxiYWNrIGlzIGNhbGxlZC4KLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKHRocmVhZE1hcE11dGV4KCkpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sodGhyZWFkTWFwTXV0ZXgpOwogICAgIHJldHVybiB0aHJlYWRN
YXAoKS5nZXQoY3VycmVudElEKCkpOwogfQogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd29ya2Fy
b3VuZCBjb2RlIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzMxNzkzMjEzPiBpcyBmaXhlZC4KIFJlZlB0
cjxUaHJlYWQ+IFRocmVhZDo6Z2V0KFRocmVhZElkZW50aWZpZXIgaWQpCiB7Ci0gICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcih0aHJlYWRNYXBNdXRleCgpKTsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKHRocmVhZE1hcE11dGV4KTsKICAgICBUaHJlYWQqIHRocmVhZCA9
IHRocmVhZE1hcCgpLmdldChpZCk7CiAgICAgaWYgKHRocmVhZCkKICAgICAgICAgcmV0dXJuIHRo
cmVhZDsKQEAgLTMxNCw3ICszMDksNyBAQCBUaHJlYWQmIFRocmVhZDo6aW5pdGlhbGl6ZVRMUyhS
ZWY8VGhyZWFkPiYmIHRocmVhZCkKICAgICBhdXRvJiB0aHJlYWRJblRMUyA9IHRocmVhZC5sZWFr
UmVmKCk7CiAgICAgdGhyZWFkU3BlY2lmaWNTZXQoc19rZXksICZ0aHJlYWRJblRMUyk7CiAgICAg
ewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKHRocmVhZE1hcE11
dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHRocmVhZE1hcE11dGV4KTsK
ICAgICAgICAgdGhyZWFkTWFwKCkuYWRkKGlkLCAmdGhyZWFkSW5UTFMpOwogICAgIH0KICAgICBy
ZXR1cm4gdGhyZWFkSW5UTFM7CkBAIC0zNDgsNyArMzQzLDcgQEAgdm9pZCBUaHJlYWQ6OmRlc3Ry
dWN0VExTKHZvaWQqIGRhdGEpCiAKICAgICBpZiAodGhyZWFkLT5tX2lzRGVzdHJveWVkT25jZSkg
ewogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9j
a2VyKHRocmVhZE1hcE11dGV4KCkpOworICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayh0aHJlYWRNYXBNdXRleCk7CiAgICAgICAgICAgICBBU1NFUlQodGhyZWFkTWFwKCkuY29udGFp
bnModGhyZWFkLT5pZCgpKSk7CiAgICAgICAgICAgICB0aHJlYWRNYXAoKS5yZW1vdmUodGhyZWFk
LT5pZCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29yZExvY2su
aCBiL1NvdXJjZS9XVEYvd3RmL1dvcmRMb2NrLmgKaW5kZXggYmYxMzU0YTZiODZjZTcyZDZhYzdi
ZTE0MzBhOTM1OWNmMjM0M2UyNC4uOGE5MGMxZTgxYWE5ZjY0NjMyNDJlNTZkYzIwODI3YWYxZWY0
NTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29yZExvY2suaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JkTG9jay5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdvcmRMb2NrIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JkTG9jayk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgV29yZExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHBy
IFdvcmRMb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBsb2NrKCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL011dGV4LmgKaW5kZXggYThjNWVlNmIwMmE2NzJhM2U3YjQ0OGQ3ZWYyYTlhNGE0ZmYxZmMz
MS4uZTE4ZGU4NDA4ZmI5ZDY2MDIwOTY2YmM2OGNjNzQ0MDUyYjY4YjczOCAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvTXV0ZXguaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgYm1hbGxvYyB7CiAKIGNsYXNz
IE11dGV4IHsKIHB1YmxpYzoKLSAgICBNdXRleCgpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
TXV0ZXgoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKTsKICAgICBib29sIHRyeV9sb2Nr
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339097</attachid>
            <date>2018-04-29 11:40:32 -0700</date>
            <delta_ts>2018-04-30 10:30:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185121-20180430034031.patch</filename>
            <type>text/plain</type>
            <size>17709</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MzgwMzRkN2QzOTNjNmI4Y2M1NGY5YzZmZmQ5ODgyZGEwZWE2YTQ0Li4wNDRkMzI1NGY3YzdjNDNi
ZDY3M2U4M2UwMDdlY2Q1NmY2YTA3ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNC0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgV29yZExvY2sgaW5zdGVhZCBvZiBzdGQ6Om11dGV4IGZvciBU
aHJlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTEyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRocmVhZEdyb3VwIHN0YXJ0cyB1c2luZyBXb3JkTG9jay4KKworICAgICAgICAqIGhlYXAvTWFj
aGluZVN0YWNrTWFya2VyLmg6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnZXRMb2Nr
KToKKwogMjAxOC0wNC0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzNy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZDcxMzBj
YTE1ZjU5NTIyZDg0OTgxMGJjMDA3MmY0MDQwYTcyNzk5Yi4uZWNmZDYyM2VmZGJlNzcwY2Y2NTRi
NGQ2ZDBiZGNlZTkwYWZjZDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxOC0wNC0yOSAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgV29yZExv
Y2sgaW5zdGVhZCBvZiBzdGQ6Om11dGV4IGZvciBUaHJlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTEyMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlZm9yZSByMjMxMTUxLCBXb3JkTG9jayBk
ZXBlbmRzIG9uIFRocmVhZFNwZWNpZmljLiBJdCBtZWFucyB0aGF0IG91ciBUaHJlYWRpbmcgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgY2Fubm90IHVzZSB0aGlzIGxvY2sgc2luY2UgVGhyZWFkaW5n
IHByaW1pdGl2ZXMgY291bGQgdG91Y2ggdGhlc2UgbG9ja3MgYWZ0ZXIgVGhyZWFkU3BlY2lmaWMK
KyAgICAgICAgZm9yIHRoYXQgV29yZExvY2sgaXMgZGVzdHJveWVkLgorCisgICAgICAgIE5vdyBX
b3JkTG9jayBpcyBjaGFuZ2VkIG5vdCB0byB1c2UgVGhyZWFkU3BlY2lmaWMuIFNvIGl0IGRvZXMg
bm90IGRlcGVuZCBvbiBvdXIgVGhyZWFkaW5nCisgICAgICAgIG1lY2hhbmlzbSBhbmQgb3VyIFRo
cmVhZGluZyBjYW4gc3RhcnQgdXNpbmcgV29yZExvY2sgaW50ZXJuYWxseS4KKworICAgICAgICBU
aGlzIHBhdGNoIGNoYW5nZXMgV1RGOjpUaHJlYWQgYW5kIFdURjo6VGhyZWFkR3JvdXAgdG8gdXNl
IFdvcmRMb2NrIGluc3RlYWQgb2Ygc3RkOjptdXRleC4KKworICAgICAgICBBbmQgYWRkIGNvbnN0
ZXhwciB0byBleHBsaWNpdGx5IGRlc2NyaWJlIHRoYXQgTG9jaywgQ29uZGl0aW9uLCBhbmQgV29y
ZExvY2sgY29uc3RydWN0b3JzIGFyZSBjb25zdGV4cHIuCisKKyAgICAgICAgKiB3dGYvQ29uZGl0
aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkR3JvdXAu
aDoKKyAgICAgICAgKFdURjo6VGhyZWFkR3JvdXA6OmdldExvY2spOgorICAgICAgICAqIHd0Zi9U
aHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmRpZEV4aXQpOgorICAgICAgICAo
V1RGOjpUaHJlYWQ6OmFkZFRvVGhyZWFkR3JvdXApOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OnJl
bW92ZUZyb21UaHJlYWRHcm91cCk6CisgICAgICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAg
ICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6Y2hh
bmdlUHJpb3JpdHkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OndhaXRGb3JDb21wbGV0aW9uKToK
KyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXRhY2gpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OnNp
Z25hbCk6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXN0YWJsaXNoUGxhdGZvcm1TcGVjaWZpY0hh
bmRsZSk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6OlRo
cmVhZDo6Y2hhbmdlUHJpb3JpdHkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OndhaXRGb3JDb21w
bGV0aW9uKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXRhY2gpOgorICAgICAgICAoV1RGOjpU
aHJlYWQ6OmVzdGFibGlzaFBsYXRmb3JtU3BlY2lmaWNIYW5kbGUpOgorICAgICAgICAoV1RGOjpU
aHJlYWQ6OmluaXRpYWxpemVUTFNLZXkpOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmN1cnJlbnRE
eWluZyk6CisgICAgICAgIChXVEY6OlRocmVhZDo6Z2V0KToKKyAgICAgICAgKFdURjo6VGhyZWFk
Ojppbml0aWFsaXplVExTKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpkZXN0cnVjdFRMUyk6Cisg
ICAgICAgIChXVEY6OnRocmVhZE1hcE11dGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvV29y
ZExvY2suaDoKKwogMjAxOC0wNC0yOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBSZXF1aXJlIEdDQyA2CmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXgg
YzM3ODdjYjg3MWM5ZDE5MDM3ZDViYzlmMzRlMGQxNzI1MzAwZmNiMy4uY2YzMWE2NWRmY2M1ZmYy
NmRkM2JkOWY0OTAwYzcxZjI3ZGQ2YzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTA0LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAg
ICAgIFVzZSBXb3JkTG9jayBpbnN0ZWFkIG9mIHN0ZDo6bXV0ZXggZm9yIFRocmVhZGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnN0ZXhw
ciB0byBleHBsaWNpdGx5IGRlc2NyaWJlIHRoYXQgYm1hbGxvYzo6TXV0ZXggY29uc3RydWN0b3Ig
aXMgY29uc3RleHByLgorCisgICAgICAgICogYm1hbGxvYy9NdXRleC5oOgorCiAyMDE4LTA0LTIz
ICBUaW5nLVdlaSBMYW4gIDxsYW50dzQ0QGdtYWlsLmNvbT4KIAogICAgICAgICBJbmNsdWRlIHN0
ZGlvLmggYmVmb3JlIHVzaW5nIHN0ZGVycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaAppbmRleCAxZDc5NGRiMTIxOGZmZjhlMjI3ODQwYzg4ODY4
YTc4YzdmNTU2ZDMyLi41ZmUwN2MzNTVjZmFlMTNmYzA1MzdiODJjNWQwODk0N2UwNzc1ODkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApA
QCAtNTAsNyArNTAsNyBAQCBjbGFzcyBNYWNoaW5lVGhyZWFkcyB7CiAgICAgLy8gT25seSBuZWVk
cyB0byBiZSBjYWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhlIHNhbWUgaGVhcCBmcm9t
IG11bHRpcGxlIHRocmVhZHMuCiAgICAgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCkgeyBtX3RocmVh
ZEdyb3VwLT5hZGRDdXJyZW50VGhyZWFkKCk7IH0KIAotICAgIHN0ZDo6bXV0ZXgmIGdldExvY2so
KSB7IHJldHVybiBtX3RocmVhZEdyb3VwLT5nZXRMb2NrKCk7IH0KKyAgICBXb3JkTG9jayYgZ2V0
TG9jaygpIHsgcmV0dXJuIG1fdGhyZWFkR3JvdXAtPmdldExvY2soKTsgfQogICAgIGNvbnN0IExp
c3RIYXNoU2V0PFJlZjxUaHJlYWQ+PiYgdGhyZWFkcyhjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKSBjb25zdCB7IHJldHVybiBtX3RocmVhZEdyb3VwLT50aHJlYWRzKGxvY2tlcik7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oIGIvU291cmNl
L1dURi93dGYvQ29uZGl0aW9uLmgKaW5kZXggNTEyZjEwZjJhZDUzY2FlYmE4MDc5ZDYwNmY2NzZj
YzlmYzJjMGVkYy4uNzVjOGVhNWQ5MTI4OGEzYjU2ZDc3ZWQzNDk3YWEyYzM5ZGYxMDRkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYv
Q29uZGl0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQ29uZGl0aW9uIHsKICAgICAvLyBh
cmUgdW5saWtlbHkgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGNvc3Qgb2YgY29udmVyc2lvbnMsIGl0
IGlzIGJldHRlciB0byB1c2UgTW9ub3RvbmljVGltZS4KICAgICB1c2luZyBUaW1lID0gUGFya2lu
Z0xvdDo6VGltZTsKIAotICAgIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
Q29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtpbmcgcXVldWUg
d2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0aGUgbG9jayBq
dXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3YWtldXAuIFJl
dHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCBkM2M3
MjE1MmMxYzRkODE4N2QwMDRjMmJiODJhMTAyN2QyNGZhODczLi5lMzk0NzBlMWU1ZDI5NWE0NTIx
YzdhMGQxMmExN2U1NGYxZjc4NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgK
KysrIGIvU291cmNlL1dURi93dGYvTG9jay5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIExvY2sg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2spOwogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIExv
Y2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZEdyb3VwLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRHcm91cC5o
CmluZGV4IDg4ZTQxOWExMTEyNjA3NzRmZDMyY2IxODBjYjI3Nzg4OTFhNjNhZWYuLmY1M2NlMzE5
NmMyYmRkNjA2MmExYjJhZGM2NmVmNzliMTBjZWNmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZEdyb3VwLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkR3JvdXAuaApAQCAt
NTEsNyArNTEsNyBAQCBjbGFzcyBUaHJlYWRHcm91cCA6IHB1YmxpYyBzdGQ6OmVuYWJsZV9zaGFy
ZWRfZnJvbV90aGlzPFRocmVhZEdyb3VwPiB7CiAKICAgICBjb25zdCBMaXN0SGFzaFNldDxSZWY8
VGhyZWFkPj4mIHRocmVhZHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdCB7IHJldHVybiBt
X3RocmVhZHM7IH0KIAotICAgIHN0ZDo6bXV0ZXgmIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBXb3JkTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIH5UaHJlYWRHcm91cCgpOwogCkBAIC02Myw4ICs2Myw4IEBAIGNsYXNz
IFRocmVhZEdyb3VwIDogcHVibGljIHN0ZDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8VGhyZWFk
R3JvdXA+IHsKICAgICAgICAgcmV0dXJuIHNoYXJlZF9mcm9tX3RoaXMoKTsKICAgICB9CiAKLSAg
ICAvLyBXZSB1c2Ugc3RkOjptdXRleCBzaW5jZSBpdCBjYW4gYmUgdXNlZCB3aGVuIGRlYWxsb2Nh
dGluZyBUTFMuCi0gICAgc3RkOjptdXRleCBtX2xvY2s7CisgICAgLy8gV2UgdXNlIFdvcmRMb2Nr
IHNpbmNlIGl0IGNhbiBiZSB1c2VkIHdoZW4gZGVhbGxvY2F0aW5nIFRMUy4KKyAgICBXb3JkTG9j
ayBtX2xvY2s7CiAgICAgTGlzdEhhc2hTZXQ8UmVmPFRocmVhZD4+IG1fdGhyZWFkczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwCmluZGV4IGVlOGFkOTRjNDgwNWQwYTczNDYxMDE1ODdmOGY2ZmFjNzYw
ZmYxY2MuLmQ0Y2U0ZmM1MjY0ZWU1YzI5YmVhNmFkMTYxYzAzOThlZTQ4MDY2M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgVGhyZWFkOjpkaWRFeGl0KCkKICAg
ICBpZiAoc2hvdWxkUmVtb3ZlVGhyZWFkRnJvbVRocmVhZEdyb3VwKCkpIHsKICAgICAgICAgVmVj
dG9yPHN0ZDo6c2hhcmVkX3B0cjxUaHJlYWRHcm91cD4+IHRocmVhZEdyb3VwczsKICAgICAgICAg
ewotICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4
KTsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIHRocmVhZEdyb3VwIDogbV90aHJlYWRHcm91cHMpIHsKICAgICAgICAg
ICAgICAgICAvLyBJZiBUaHJlYWRHcm91cCBpcyBqdXN0IGJlaW5nIGRlc3Ryb3llZCwKICAgICAg
ICAgICAgICAgICAvLyB3ZSBkbyBub3QgbmVlZCB0byBwZXJmb3JtIHVucmVnaXN0ZXJpbmcuCkBA
IC0xOTAsOCArMTkwLDggQEAgdm9pZCBUaHJlYWQ6OmRpZEV4aXQoKQogICAgICAgICAgICAgbV9p
c1NodXR0aW5nRG93biA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChhdXRvJiB0aHJl
YWRHcm91cCA6IHRocmVhZEdyb3VwcykgewotICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6bXV0ZXg+IHRocmVhZEdyb3VwTG9ja2VyKHRocmVhZEdyb3VwLT5nZXRMb2NrKCkpOwotICAg
ICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAg
ICAgICAgICAgIGF1dG8gdGhyZWFkR3JvdXBMb2NrZXIgPSBob2xkTG9jayh0aHJlYWRHcm91cC0+
Z2V0TG9jaygpKTsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7
CiAgICAgICAgICAgICB0aHJlYWRHcm91cC0+bV90aHJlYWRzLnJlbW92ZSgqdGhpcyk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFRocmVhZDo6ZGlkRXhpdCgp
CiAKICAgICAvLyBXZSB3b3VsZCBsaWtlIHRvIHNheSAidGhyZWFkIGlzIGV4aXRlZCIgYWZ0ZXIg
dW5yZWdpc3RlcmluZyB0aHJlYWRzIGZyb20gdGhyZWFkIGdyb3Vwcy4KICAgICAvLyBTbyB3ZSBu
ZWVkIHRvIHNlcGFyYXRlIG1faXNTaHV0dGluZ0Rvd24gZnJvbSBtX2RpZEV4aXQuCi0gICAgc3Rk
Ojpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAgIG1fZGlkRXhpdCA9IHRydWU7CiB9CiAKIFRocmVh
ZEdyb3VwQWRkUmVzdWx0IFRocmVhZDo6YWRkVG9UaHJlYWRHcm91cChjb25zdCBBYnN0cmFjdExv
Y2tlciYgdGhyZWFkR3JvdXBMb2NrZXIsIFRocmVhZEdyb3VwJiB0aHJlYWRHcm91cCkKIHsKICAg
ICBVTlVTRURfUEFSQU0odGhyZWFkR3JvdXBMb2NrZXIpOwotICAgIHN0ZDo6bG9ja19ndWFyZDxz
dGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X211dGV4KTsKICAgICBpZiAobV9pc1NodXR0aW5nRG93bikKICAgICAgICAgcmV0dXJuIFRocmVh
ZEdyb3VwQWRkUmVzdWx0OjpOb3RBZGRlZDsKICAgICBpZiAodGhyZWFkR3JvdXAubV90aHJlYWRz
LmFkZCgqdGhpcykuaXNOZXdFbnRyeSkgewpAQCAtMjIwLDcgKzIyMCw3IEBAIFRocmVhZEdyb3Vw
QWRkUmVzdWx0IFRocmVhZDo6YWRkVG9UaHJlYWRHcm91cChjb25zdCBBYnN0cmFjdExvY2tlciYg
dGhyZWFkR3JvdXBMCiB2b2lkIFRocmVhZDo6cmVtb3ZlRnJvbVRocmVhZEdyb3VwKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiB0aHJlYWRHcm91cExvY2tlciwgVGhyZWFkR3JvdXAmIHRocmVhZEdyb3Vw
KQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRHcm91cExvY2tlcik7Ci0gICAgc3RkOjpsb2Nr
X2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbXV0ZXgpOwogICAgIGlmIChtX2lzU2h1dHRpbmdEb3duKQogICAgICAgICByZXR1
cm47CiAgICAgbV90aHJlYWRHcm91cHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0gKGF1dG8gd2Vh
a1B0cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCA5N2NiZTU0MThiOWNmYmE5YjMyNmNlZDQ3MWFjODFm
YmUxYWQ0NzI1Li40N2UwMTlmYjk1Yzg4ZDQ1NGZjMWI1NGY5MTRkNjMzZjU3YjY0NDE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmcuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV29yZExvY2suaD4KIAogI2lmIFVTRShQVEhSRUFE
UykgJiYgIU9TKERBUldJTikKICNpbmNsdWRlIDxzaWduYWwuaD4KQEAgLTI3Myw4ICsyNzQsOSBA
QCBjbGFzcyBUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CiAg
ICAgYm9vbCBtX2RpZEV4aXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0Rlc3Ryb3llZE9uY2Ug
eyBmYWxzZSB9OwogCi0gICAgLy8gV29yZExvY2sgJiBMb2NrIHJlbHkgb24gVGhyZWFkU3BlY2lm
aWMuIEJ1dCBUaHJlYWQgb2JqZWN0IGNhbiBiZSBkZXN0cm95ZWQgZXZlbiBhZnRlciBUaHJlYWRT
cGVjaWZpYyB0aGluZ3MgYXJlIGRlc3Ryb3llZC4KLSAgICBzdGQ6Om11dGV4IG1fbXV0ZXg7Cisg
ICAgLy8gTG9jayAmIFBhcmtpbmdMb3QgcmVseSBvbiBUaHJlYWRTcGVjaWZpYy4gQnV0IFRocmVh
ZCBvYmplY3QgY2FuIGJlIGRlc3Ryb3llZCBldmVuIGFmdGVyIFRocmVhZFNwZWNpZmljIHRoaW5n
cyBhcmUgZGVzdHJveWVkLgorICAgIC8vIFVzZSBXb3JkTG9jayBzaW5jZSBXb3JkTG9jayBkb2Vz
IG5vdCBkZXBlbmQgb24gVGhyZWFkU3BlY2lmaWMgYW5kIHRoaXMgIlRocmVhZCIuCisgICAgV29y
ZExvY2sgbV9tdXRleDsKICAgICBTdGFja0JvdW5kcyBtX3N0YWNrIHsgU3RhY2tCb3VuZHM6OmVt
cHR5Qm91bmRzKCkgfTsKICAgICBWZWN0b3I8c3RkOjp3ZWFrX3B0cjxUaHJlYWRHcm91cD4+IG1f
dGhyZWFkR3JvdXBzOwogICAgIFBsYXRmb3JtVGhyZWFkSGFuZGxlIG1faGFuZGxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IGRkYWM3Mzc0YTNjNmY5NTI1Y2VlNjIwNjNm
ZjU5ZWZmMTc2MTc4N2YuLjgwYjEyMTI1ODFjMDY5MmQ1ZTVhNDYyYWQ0OTM2MzI4MDY4M2E0ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2
b2lkIFRocmVhZDo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0
aHJlYWROYW1lKQogCiB2b2lkIFRocmVhZDo6Y2hhbmdlUHJpb3JpdHkoaW50IGRlbHRhKQogewot
ICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKIAogICAgIGludCBwb2xpY3k7CiAgICAgc3Ry
dWN0IHNjaGVkX3BhcmFtIHBhcmFtOwpAQCAtMjczLDcgKzI3Myw3IEBAIGludCBUaHJlYWQ6Ondh
aXRGb3JDb21wbGV0aW9uKCkKIHsKICAgICBwdGhyZWFkX3QgaGFuZGxlOwogICAgIHsKLSAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKICAgICAgICAgaGFuZGxlID0gbV9oYW5k
bGU7CiAgICAgfQogCkBAIC0yODQsNyArMjg0LDcgQEAgaW50IFRocmVhZDo6d2FpdEZvckNvbXBs
ZXRpb24oKQogICAgIGVsc2UgaWYgKGpvaW5SZXN1bHQpCiAgICAgICAgIExPR19FUlJPUigiVGhy
ZWFkICVwIHdhcyB1bmFibGUgdG8gYmUgam9pbmVkLlxuIiwgdGhpcyk7CiAKLSAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9tdXRleCk7CiAgICAgQVNTRVJUKGpvaW5hYmxlU3RhdGUoKSA9PSBKb2luYWJs
ZSk7CiAKICAgICAvLyBJZiB0aGUgdGhyZWFkIGhhcyBhbHJlYWR5IGV4aXRlZCwgdGhlbiBkbyBu
b3RoaW5nLiBJZiB0aGUgdGhyZWFkIGhhc24ndCBleGl0ZWQgeWV0LCB0aGVuIGp1c3Qgc2lnbmFs
IHRoYXQgd2UndmUgYWxyZWFkeSBqb2luZWQgb24gaXQuCkBAIC0yOTcsNyArMjk3LDcgQEAgaW50
IFRocmVhZDo6d2FpdEZvckNvbXBsZXRpb24oKQogCiB2b2lkIFRocmVhZDo6ZGV0YWNoKCkKIHsK
LSAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgaW50IGRldGFjaFJlc3VsdCA9IHB0
aHJlYWRfZGV0YWNoKG1faGFuZGxlKTsKICAgICBpZiAoZGV0YWNoUmVzdWx0KQogICAgICAgICBM
T0dfRVJST1IoIlRocmVhZCAlcCB3YXMgdW5hYmxlIHRvIGJlIGRldGFjaGVkXG4iLCB0aGlzKTsK
QEAgLTMxOSw3ICszMTksNyBAQCBUaHJlYWQmIFRocmVhZDo6aW5pdGlhbGl6ZUN1cnJlbnRUTFMo
KQogCiBib29sIFRocmVhZDo6c2lnbmFsKGludCBzaWduYWxOdW1iZXIpCiB7Ci0gICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAgIGlmIChoYXNFeGl0ZWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGludCBlcnJObyA9IHB0aHJlYWRfa2lsbChtX2hhbmRsZSwgc2lnbmFsTnVt
YmVyKTsKQEAgLTQ0MCw3ICs0NDAsNyBAQCBzaXplX3QgVGhyZWFkOjpnZXRSZWdpc3RlcnMoUGxh
dGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykKIAogdm9pZCBUaHJlYWQ6OmVzdGFibGlzaFBsYXRm
b3JtU3BlY2lmaWNIYW5kbGUocHRocmVhZF90IGhhbmRsZSkKIHsKLSAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9tdXRleCk7CiAgICAgbV9oYW5kbGUgPSBoYW5kbGU7CiAjaWYgT1MoREFSV0lOKQogICAg
IG1fcGxhdGZvcm1UaHJlYWQgPSBwdGhyZWFkX21hY2hfdGhyZWFkX25wKGhhbmRsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAppbmRleCA2ZjNkNDFkNmEwNDU3ZmFiMGMwNmU4ZWQxYjlkOTVjMzhj
NTA1YzIwLi40ZTY1YTVlNDI3N2U0NDE5ZTgwNjY1Mjk3OTY5NTMxNTk5OGE1NmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1dpbi5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBib29sIFRocmVhZDo6ZXN0YWJs
aXNoSGFuZGxlKE5ld1RocmVhZENvbnRleHQqIGRhdGEpCiAKIHZvaWQgVGhyZWFkOjpjaGFuZ2VQ
cmlvcml0eShpbnQgZGVsdGEpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxv
Y2tlcihtX211dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOwogICAg
IFNldFRocmVhZFByaW9yaXR5KG1faGFuZGxlLCBUSFJFQURfUFJJT1JJVFlfTk9STUFMICsgZGVs
dGEpOwogfQogCkBAIC0xNzgsNyArMTc4LDcgQEAgaW50IFRocmVhZDo6d2FpdEZvckNvbXBsZXRp
b24oKQogewogICAgIEhBTkRMRSBoYW5kbGU7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbXV0ZXgpOwogICAgICAgICBoYW5kbGUgPSBtX2hhbmRsZTsKICAgICB9CiAKQEAg
LTE4Niw3ICsxODYsNyBAQCBpbnQgVGhyZWFkOjp3YWl0Rm9yQ29tcGxldGlvbigpCiAgICAgaWYg
KGpvaW5SZXN1bHQgPT0gV0FJVF9GQUlMRUQpCiAgICAgICAgIExPR19FUlJPUigiVGhyZWFkICVw
IHdhcyBmb3VuZCB0byBiZSBkZWFkbG9ja2VkIHRyeWluZyB0byBxdWl0IiwgdGhpcyk7CiAKLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgQVNTRVJUKGpvaW5hYmxlU3RhdGUoKSA9
PSBKb2luYWJsZSk7CiAKICAgICAvLyBUaGUgdGhyZWFkIGhhcyBhbHJlYWR5IGV4aXRlZCwgZG8g
bm90aGluZy4KQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFRocmVhZDo6ZGV0YWNoKCkKICAgICAv
LyBGbHNDYWxsYmFjayBhdXRvbWF0aWNhbGx5LiBGbHNDYWxsYmFjayB3aWxsIGNhbGwgQ2xvc2VI
YW5kbGUgdG8gY2xlYW4gdXAKICAgICAvLyByZXNvdXJjZS4gU28gaW4gdGhpcyBmdW5jdGlvbiwg
d2UganVzdCBtYXJrIHRoZSB0aHJlYWQgYXMgZGV0YWNoZWQgdG8KICAgICAvLyBhdm9pZCBjYWxs
aW5nIHdhaXRGb3JDb21wbGV0aW9uIGZvciB0aGlzIHRocmVhZC4KLSAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjptdXRleD4gbG9ja2VyKG1fbXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9tdXRleCk7CiAgICAgaWYgKCFoYXNFeGl0ZWQoKSkKICAgICAgICAgZGlkQmVjb21lRGV0
YWNoZWQoKTsKIH0KQEAgLTI2MSwxOCArMjYxLDE0IEBAIFRocmVhZElkZW50aWZpZXIgVGhyZWFk
OjpjdXJyZW50SUQoKQogCiB2b2lkIFRocmVhZDo6ZXN0YWJsaXNoUGxhdGZvcm1TcGVjaWZpY0hh
bmRsZShIQU5ETEUgaGFuZGxlLCBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKQogewotICAgIHN0
ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrZXIobV9tdXRleCk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX211dGV4KTsKICAgICBtX2hhbmRsZSA9IGhhbmRsZTsKICAgICBtX2lk
ID0gdGhyZWFkSUQ7CiB9CiAKICNkZWZpbmUgSW52YWxpZFRocmVhZCByZWludGVycHJldF9jYXN0
PFRocmVhZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMHhiYmFkYmVlZikpCiAKLXN0YXRpYyBz
dGQ6Om11dGV4JiB0aHJlYWRNYXBNdXRleCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PHN0ZDo6bXV0ZXg+IG11dGV4OwotICAgIHJldHVybiBtdXRleC5nZXQoKTsKLX0KK3N0YXRpYyBX
b3JkTG9jayB0aHJlYWRNYXBNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8VGhyZWFkSWRlbnRpZmll
ciwgVGhyZWFkKj4mIHRocmVhZE1hcCgpCiB7CkBAIC0yODIsNyArMjc4LDYgQEAgc3RhdGljIEhh
c2hNYXA8VGhyZWFkSWRlbnRpZmllciwgVGhyZWFkKj4mIHRocmVhZE1hcCgpCiAKIHZvaWQgVGhy
ZWFkOjppbml0aWFsaXplVExTS2V5KCkKIHsKLSAgICB0aHJlYWRNYXBNdXRleCgpOwogICAgIHRo
cmVhZE1hcCgpOwogICAgIHRocmVhZFNwZWNpZmljS2V5Q3JlYXRlKCZzX2tleSwgZGVzdHJ1Y3RU
TFMpOwogfQpAQCAtMjkxLDE0ICsyODYsMTQgQEAgVGhyZWFkKiBUaHJlYWQ6OmN1cnJlbnREeWlu
ZygpCiB7CiAgICAgQVNTRVJUKHNfa2V5ICE9IEludmFsaWRUaHJlYWRTcGVjaWZpY0tleSk7CiAg
ICAgLy8gQWZ0ZXIgRkxTIGlzIGRlc3Ryb3llZCwgdGhpcyBtYXAgb2ZmZXJzIHRoZSB2YWx1ZSB1
bnRpbCB0aGUgc2Vjb25kIHRocmVhZCBleGl0IGNhbGxiYWNrIGlzIGNhbGxlZC4KLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKHRocmVhZE1hcE11dGV4KCkpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sodGhyZWFkTWFwTXV0ZXgpOwogICAgIHJldHVybiB0aHJlYWRN
YXAoKS5nZXQoY3VycmVudElEKCkpOwogfQogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd29ya2Fy
b3VuZCBjb2RlIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzMxNzkzMjEzPiBpcyBmaXhlZC4KIFJlZlB0
cjxUaHJlYWQ+IFRocmVhZDo6Z2V0KFRocmVhZElkZW50aWZpZXIgaWQpCiB7Ci0gICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcih0aHJlYWRNYXBNdXRleCgpKTsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKHRocmVhZE1hcE11dGV4KTsKICAgICBUaHJlYWQqIHRocmVhZCA9
IHRocmVhZE1hcCgpLmdldChpZCk7CiAgICAgaWYgKHRocmVhZCkKICAgICAgICAgcmV0dXJuIHRo
cmVhZDsKQEAgLTMxNCw3ICszMDksNyBAQCBUaHJlYWQmIFRocmVhZDo6aW5pdGlhbGl6ZVRMUyhS
ZWY8VGhyZWFkPiYmIHRocmVhZCkKICAgICBhdXRvJiB0aHJlYWRJblRMUyA9IHRocmVhZC5sZWFr
UmVmKCk7CiAgICAgdGhyZWFkU3BlY2lmaWNTZXQoc19rZXksICZ0aHJlYWRJblRMUyk7CiAgICAg
ewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKHRocmVhZE1hcE11
dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHRocmVhZE1hcE11dGV4KTsK
ICAgICAgICAgdGhyZWFkTWFwKCkuYWRkKGlkLCAmdGhyZWFkSW5UTFMpOwogICAgIH0KICAgICBy
ZXR1cm4gdGhyZWFkSW5UTFM7CkBAIC0zNDgsNyArMzQzLDcgQEAgdm9pZCBUaHJlYWQ6OmRlc3Ry
dWN0VExTKHZvaWQqIGRhdGEpCiAKICAgICBpZiAodGhyZWFkLT5tX2lzRGVzdHJveWVkT25jZSkg
ewogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9j
a2VyKHRocmVhZE1hcE11dGV4KCkpOworICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayh0aHJlYWRNYXBNdXRleCk7CiAgICAgICAgICAgICBBU1NFUlQodGhyZWFkTWFwKCkuY29udGFp
bnModGhyZWFkLT5pZCgpKSk7CiAgICAgICAgICAgICB0aHJlYWRNYXAoKS5yZW1vdmUodGhyZWFk
LT5pZCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29yZExvY2su
aCBiL1NvdXJjZS9XVEYvd3RmL1dvcmRMb2NrLmgKaW5kZXggYmYxMzU0YTZiODZjZTcyZDZhYzdi
ZTE0MzBhOTM1OWNmMjM0M2UyNC4uOGE5MGMxZTgxYWE5ZjY0NjMyNDJlNTZkYzIwODI3YWYxZWY0
NTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29yZExvY2suaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JkTG9jay5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdvcmRMb2NrIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JkTG9jayk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgV29yZExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHBy
IFdvcmRMb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBsb2NrKCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL011dGV4LmgKaW5kZXggYThjNWVlNmIwMmE2NzJhM2U3YjQ0OGQ3ZWYyYTlhNGE0ZmYxZmMz
MS4uZTE4ZGU4NDA4ZmI5ZDY2MDIwOTY2YmM2OGNjNzQ0MDUyYjY4YjczOCAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvTXV0ZXguaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgYm1hbGxvYyB7CiAKIGNsYXNz
IE11dGV4IHsKIHB1YmxpYzoKLSAgICBNdXRleCgpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
TXV0ZXgoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKTsKICAgICBib29sIHRyeV9sb2Nr
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NWY3OTQ0MDc1N2Q0M2JiYzJhNTMzNjc2NDQ1NjlkZGZmMjc4NzQxYS4uMzM1M2NjZWNlYzliOWE0
YTFkNDIzZGE4NTQwNTE2NzY0ZjMwNWQ5MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTA0LTI5ICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBXb3JkTG9jayBp
bnN0ZWFkIG9mIHN0ZDo6bXV0ZXggZm9yIFRocmVhZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TaWdu
YWxzLmNwcDoKKyAgICAgICAgKFRFU1QpOgorCiAyMDE4LTA0LTI4ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2V0IEhUVFBPbmx5IGZsYWcgd2hl
biBjb252ZXJ0aW5nIENvb2tpZSB0byBOU0hUVFBDb29raWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NpZ25hbHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU2lnbmFscy5jcHAKaW5kZXggNGI5ZTgzNDAyOWRiNzBmMDU5MjkzNWU3NDFhNmMy
YzYzY2RkMmIyNS4uNjgwYzlmNTk1MDE0ZDZiYmY4NjczNzNmMjNlZWIwMWUyZmU5MjAxMCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2lnbmFscy5jcHAKQEAgLTU0LDcgKzU0LDcg
QEAgVEVTVChTaWduYWxzLCBTaWduYWxzV29ya09uRXhpdCkKIAogICAgIGJvb2wgc2lnbmFsRmly
ZWQ7CiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2tlcihz
dGF0aWNfY2FzdDxSZWZsZWN0ZWRUaHJlYWQmPihyZWNlaXZlclRocmVhZC5nZXQoKSkubV9tdXRl
eCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8V29yZExvY2s+IGxvY2tlcihzdGF0aWNfY2Fz
dDxSZWZsZWN0ZWRUaHJlYWQmPihyZWNlaXZlclRocmVhZC5nZXQoKSkubV9tdXRleCk7CiAgICAg
ICAgIHJlY2VpdmVyU2hvdWxkS2VlcFJ1bm5pbmcuc3RvcmUoZmFsc2UpOwogICAgICAgICBFWFBF
Q1RfRkFMU0Uoc3RhdGljX2Nhc3Q8UmVmbGVjdGVkVGhyZWFkJj4ocmVjZWl2ZXJUaHJlYWQuZ2V0
KCkpLmhhc0V4aXRlZCgpKTsKICAgICAgICAgc2xlZXAoMV9zKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>