<?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>168977</bug_id>
          
          <creation_ts>2017-02-28 10:52:02 -0800</creation_ts>
          <short_desc>Remove setExclusiveThread() and peers from the JSLock.</short_desc>
          <delta_ts>2017-02-28 13:58:42 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1281811</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 10:52:02 -0800</bug_when>
    <thetext>JSLock::setExclusiveThread() was only used by WebCore.  Benchmarking with Speedometer, we see that removal of exclusive thread status has no measurable impact on performance.  So, let&apos;s remove the code for handling exclusive thread status, and simplify the JSLock code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281821</commentid>
    <comment_count>1</comment_count>
      <attachid>302951</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 11:05:26 -0800</bug_when>
    <thetext>Created attachment 302951
proposed patch.

Let&apos;s get some EWS testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281823</commentid>
    <comment_count>2</comment_count>
      <attachid>302952</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 11:10:14 -0800</bug_when>
    <thetext>Created attachment 302952
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281847</commentid>
    <comment_count>3</comment_count>
      <attachid>302957</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 11:44:25 -0800</bug_when>
    <thetext>Created attachment 302957
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281896</commentid>
    <comment_count>4</comment_count>
      <attachid>302957</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 13:00:25 -0800</bug_when>
    <thetext>Comment on attachment 302957
proposed patch.

Time for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281906</commentid>
    <comment_count>5</comment_count>
      <attachid>302957</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-28 13:24:00 -0800</bug_when>
    <thetext>Comment on attachment 302957
proposed patch.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281940</commentid>
    <comment_count>6</comment_count>
      <attachid>302957</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-28 13:58:38 -0800</bug_when>
    <thetext>Comment on attachment 302957
proposed patch.

Clearing flags on attachment: 302957

Committed r213175: &lt;http://trac.webkit.org/changeset/213175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281941</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-28 13:58:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302951</attachid>
            <date>2017-02-28 11:05:26 -0800</date>
            <delta_ts>2017-02-28 11:10:14 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-168977.patch</filename>
            <type>text/plain</type>
            <size>9411</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5kIHBlZXJzIGZyb20gdGhlIEpTTG9jay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTTG9jazo6c2V0
RXhjbHVzaXZlVGhyZWFkKCkgd2FzIG9ubHkgdXNlZCBieSBXZWJDb3JlLiAgQmVuY2htYXJraW5n
IHdpdGgKKyAgICAgICAgU3BlZWRvbWV0ZXIsIHdlIHNlZSB0aGF0IHJlbW92YWwgb2YgZXhjbHVz
aXZlIHRocmVhZCBzdGF0dXMgaGFzIG5vIG1lYXN1cmFibGUKKyAgICAgICAgaW1wYWN0IG9uIHBl
cmZvcm1hbmNlLiAgU28sIGxldCdzIHJlbW92ZSB0aGUgY29kZSBmb3IgaGFuZGxpbmcgZXhjbHVz
aXZlIHRocmVhZAorICAgICAgICBzdGF0dXMsIGFuZCBzaW1wbGlmeSB0aGUgSlNMb2NrIGNvZGUu
CisKKyAgICAgICAgRm9yIHRoZSByZWNvcmRzLCBleGNsdXNpdmUgdGhyZWFkIHN0YXR1cyBkb2Vz
IGltcHJvdmUgSlNMb2NrIGxvY2tpbmcvdW5sb2NraW5nCisgICAgICAgIHRpbWUgYnkgdXAgdG8g
MjAlLiAgSG93ZXZlciwgdGhpcyBkaWZmZXJlbmNlIGlzIG5vdCBtZWFzdXJhYmxlIGluIHRoZSB3
YXkgV2ViQ29yZQorICAgICAgICB1c2VzIHRoZSBKU0xvY2sgYXMgY29uZmlybWVkIGJ5IFNwZWVk
b21ldGVyLgorCisgICAgICAgIEFsc28gYXBwbGllZCBhIG1pbm9yIG9wdGltaXphdGlvbiBpbiBK
U0xvY2s6OmxvY2soKSB0byBhc3N1bWUgdGhlIGluaXRpYWwgbG9jaworICAgICAgICBlbnRyeSBj
YXNlIChhcyBvcHBvc2VkIHRvIHRoZSByZS1lbnRyeSBjYXNlKS4gIFRoaXMgYXBwZWFycyB0byBz
aG93cyBhIHNtYWxsCisgICAgICAgIGZyYWN0aW9uYWwgaW1wcm92ZW1lbnQgKGFib3V0IDUlKSBp
biBKU0xvY2sgY3VtdWxhdGl2ZSBsb2NraW5nIGFuZCB1bmxvY2tpbmcKKyAgICAgICAgdGltZSBp
biBhIG1pY3JvLWJlbmNobWFyay4KKworICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpKU0xv
Y2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6OmxvY2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6
OnVubG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xv
Y2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6OmRyb3BBbGxMb2Nrcyk6CisgICAgICAgIChKU0M6
OkpTTG9jazo6Z3JhYkFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpzZXRFeGNsdXNp
dmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAg
IChKU0M6OkpTTG9jazo6b3duZXJUaHJlYWQpOgorICAgICAgICAoSlNDOjpKU0xvY2s6Omhhc0V4
Y2x1c2l2ZVRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTTG9jazo6ZXhjbHVzaXZl
VGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6
OlZNOjpoYXNFeGNsdXNpdmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6ZXhj
bHVzaXZlVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OnNldEV4Y2x1c2l2ZVRo
cmVhZCk6IERlbGV0ZWQuCisKIDIwMTctMDItMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gY29uZmlndXJlIEpTQyBvcHRpb25z
IGZyb20gYSBmaWxlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDIxMzE1MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
NCw4ICsyMzQsNiBAQCBib29sIE1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6Om9wZXJhdG9yPT0oCiAK
IHZvaWQgTWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQoKQogewotICAgIEFTU0VSVCgh
bV9oZWFwLT52bSgpLT5oYXNFeGNsdXNpdmVUaHJlYWQoKSB8fCBtX2hlYXAtPnZtKCktPmV4Y2x1
c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpKTsKLQogICAgIGlmICh0
aHJlYWRTcGVjaWZpY0dldChtX3RocmVhZFNwZWNpZmljRm9yTWFjaGluZVRocmVhZHMpKSB7CiAj
aWZuZGVmIE5ERUJVRwogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFk
c011dGV4KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAko
cmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDgsIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03OCw3ICs3OCw2IEBAIEpTTG9jazo6SlNM
b2NrKFZNKiB2bSkKICAgICA6IG1fb3duZXJUaHJlYWRJRChzdGQ6OnRocmVhZDo6aWQoKSkKICAg
ICAsIG1fbG9ja0NvdW50KDApCiAgICAgLCBtX2xvY2tEcm9wRGVwdGgoMCkKLSAgICAsIG1faGFz
RXhjbHVzaXZlVGhyZWFkKGZhbHNlKQogICAgICwgbV92bSh2bSkKICAgICAsIG1fZW50cnlBdG9t
aWNTdHJpbmdUYWJsZShudWxscHRyKQogewpAQCAtOTQsMTMgKzkzLDYgQEAgdm9pZCBKU0xvY2s6
OndpbGxEZXN0cm95Vk0oVk0qIHZtKQogICAgIG1fdm0gPSBudWxscHRyOwogfQogCi12b2lkIEpT
TG9jazo6c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6dGhyZWFkOjppZCB0aHJlYWRJZCkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVCghbV9sb2NrQ291bnQgJiYgbV9vd25lclRocmVhZElEID09IHN0ZDo6
dGhyZWFkOjppZCgpKTsKLSAgICBtX2hhc0V4Y2x1c2l2ZVRocmVhZCA9ICh0aHJlYWRJZCAhPSBz
dGQ6OnRocmVhZDo6aWQoKSk7Ci0gICAgbV9vd25lclRocmVhZElEID0gdGhyZWFkSWQ7Ci19Ci0K
IHZvaWQgSlNMb2NrOjpsb2NrKCkKIHsKICAgICBsb2NrKDEpOwpAQCAtMTA5LDE1ICsxMDEsMTYg
QEAgdm9pZCBKU0xvY2s6OmxvY2soKQogdm9pZCBKU0xvY2s6OmxvY2soaW50cHRyX3QgbG9ja0Nv
dW50KQogewogICAgIEFTU0VSVChsb2NrQ291bnQgPiAwKTsKLSAgICBpZiAoY3VycmVudFRocmVh
ZElzSG9sZGluZ0xvY2soKSkgewotICAgICAgICBtX2xvY2tDb3VudCArPSBsb2NrQ291bnQ7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1faGFzRXhjbHVzaXZlVGhyZWFkKSB7
CisgICAgYm9vbCBzdWNjZXNzID0gbV9sb2NrLnRyeUxvY2soKTsKKyAgICBpZiAoVU5MSUtFTFko
IXN1Y2Nlc3MpKSB7CisgICAgICAgIGlmIChjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKSB7
CisgICAgICAgICAgICBtX2xvY2tDb3VudCArPSBsb2NrQ291bnQ7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICAgICAgbV9sb2NrLmxvY2soKTsKLSAgICAgICAgbV9vd25lclRo
cmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCk7CiAgICAgfQorCisgICAgbV9vd25l
clRocmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCk7CiAgICAgQVNTRVJUKCFtX2xv
Y2tDb3VudCk7CiAgICAgbV9sb2NrQ291bnQgPSBsb2NrQ291bnQ7CiAKQEAgLTE3NSwxMSArMTY4
LDggQEAgdm9pZCBKU0xvY2s6OnVubG9jayhpbnRwdHJfdCB1bmxvY2tDb3VudAogICAgIG1fbG9j
a0NvdW50IC09IHVubG9ja0NvdW50OwogCiAgICAgaWYgKCFtX2xvY2tDb3VudCkgewotICAgICAg
ICAKLSAgICAgICAgaWYgKCFtX2hhc0V4Y2x1c2l2ZVRocmVhZCkgewotICAgICAgICAgICAgbV9v
d25lclRocmVhZElEID0gc3RkOjp0aHJlYWQ6OmlkKCk7Ci0gICAgICAgICAgICBtX2xvY2sudW5s
b2NrKCk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9vd25lclRocmVhZElEID0gc3RkOjp0aHJlYWQ6
OmlkKCk7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKICAgICB9CiB9CiAKQEAgLTIxNCwyMCAr
MjA0LDEyIEBAIHZvaWQgSlNMb2NrOjp1bmxvY2soRXhlY1N0YXRlKiBleGVjKQogCiBib29sIEpT
TG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKQogewotICAgIEFTU0VSVCghbV9oYXNF
eGNsdXNpdmVUaHJlYWQgfHwgKGV4Y2x1c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190aHJlYWQ6
OmdldF9pZCgpKSk7Ci0gICAgaWYgKG1faGFzRXhjbHVzaXZlVGhyZWFkKQotICAgICAgICByZXR1
cm4gISFtX2xvY2tDb3VudDsKICAgICByZXR1cm4gbV9vd25lclRocmVhZElEID09IHN0ZDo6dGhp
c190aHJlYWQ6OmdldF9pZCgpOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIG51
bWJlciBvZiBsb2NrcyB0aGF0IHdlcmUgZHJvcHBlZC4KIHVuc2lnbmVkIEpTTG9jazo6ZHJvcEFs
bExvY2tzKERyb3BBbGxMb2NrcyogZHJvcHBlcikKIHsKLSAgICBpZiAobV9oYXNFeGNsdXNpdmVU
aHJlYWQpIHsKLSAgICAgICAgQVNTRVJUKGV4Y2x1c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190
aHJlYWQ6OmdldF9pZCgpKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAgaWYgKCFj
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjQ3
LDcgKzIyOSw3IEBAIHVuc2lnbmVkIEpTTG9jazo6ZHJvcEFsbExvY2tzKERyb3BBbGxMb2MKIAog
dm9pZCBKU0xvY2s6OmdyYWJBbGxMb2NrcyhEcm9wQWxsTG9ja3MqIGRyb3BwZXIsIHVuc2lnbmVk
IGRyb3BwZWRMb2NrQ291bnQpCiB7Ci0gICAgQVNTRVJUKCFtX2hhc0V4Y2x1c2l2ZVRocmVhZCB8
fCAhZHJvcHBlZExvY2tDb3VudCk7CisgICAgQVNTRVJUKCFkcm9wcGVkTG9ja0NvdW50KTsKIAog
ICAgIC8vIElmIG5vIGxvY2tzIHdlcmUgZHJvcHBlZCwgbm90aGluZyB0byBkbyEKICAgICBpZiAo
IWRyb3BwZWRMb2NrQ291bnQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0xvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suaAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNMb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA4LCAyMDA5LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTMsMTQgKzkzLDcgQEAgcHVibGlj
OgogCiAgICAgVk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogCi0gICAgYm9vbCBoYXNFeGNsdXNp
dmVUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2hhc0V4Y2x1c2l2ZVRocmVhZDsgfQotICAgIHN0
ZDo6dGhyZWFkOjppZCBleGNsdXNpdmVUaHJlYWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1faGFzRXhjbHVzaXZlVGhyZWFkKTsKLSAgICAgICAgcmV0dXJuIG1fb3duZXJUaHJlYWRJ
RDsKLSAgICB9CiAgICAgc3RkOjp0aHJlYWQ6OmlkIG93bmVyVGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gbV9vd25lclRocmVhZElEOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRFeGNs
dXNpdmVUaHJlYWQoc3RkOjp0aHJlYWQ6OmlkKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29s
IGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCk7CiAKICAgICB2b2lkIHdpbGxEZXN0cm95Vk0o
Vk0qKTsKQEAgLTEzNiw3ICsxMjksNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dGhyZWFkOjppZCBt
X293bmVyVGhyZWFkSUQ7CiAgICAgaW50cHRyX3QgbV9sb2NrQ291bnQ7CiAgICAgdW5zaWduZWQg
bV9sb2NrRHJvcERlcHRoOwotICAgIGJvb2wgbV9oYXNFeGNsdXNpdmVUaHJlYWQ7CiAgICAgYm9v
bCBtX3Nob3VsZFJlbGVhc2VIZWFwQWNjZXNzOwogICAgIFZNKiBtX3ZtOwogICAgIEF0b21pY1N0
cmluZ1RhYmxlKiBtX2VudHJ5QXRvbWljU3RyaW5nVGFibGU7IApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMTMxNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTEsMTAgKzYxMSw2IEBAIHB1Ymxp
YzoKICAgICBSVFRyYWNlTGlzdCogbV9ydFRyYWNlTGlzdDsKICNlbmRpZgogCi0gICAgYm9vbCBo
YXNFeGNsdXNpdmVUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPmhhc0V4Y2x1c2l2
ZVRocmVhZCgpOyB9Ci0gICAgc3RkOjp0aHJlYWQ6OmlkIGV4Y2x1c2l2ZVRocmVhZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYXBpTG9jay0+ZXhjbHVzaXZlVGhyZWFkKCk7IH0KLSAgICB2b2lkIHNldEV4
Y2x1c2l2ZVRocmVhZChzdGQ6OnRocmVhZDo6aWQgdGhyZWFkSWQpIHsgbV9hcGlMb2NrLT5zZXRF
eGNsdXNpdmVUaHJlYWQodGhyZWFkSWQpOyB9Ci0KICAgICBzdGQ6OnRocmVhZDo6aWQgb3duZXJU
aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPm93bmVyVGhyZWFkKCk7IH0KIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXREYXRlQ2FjaGUoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIxMzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5kIHBlZXJz
IGZyb20gdGhlIEpTTG9jay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2ODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMgc2hvdWxkIGFscmVhZHkgYmUgY292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NvbW1vblZN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6CisKIDIwMTctMDItMjcgIERh
dmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGZsZXhib3ggdG8g
QmxpbmsncyB0aXAgb2YgdHJlZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29t
bW9uVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1v
blZNLmNwcAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q29tbW9uVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDkgKzUzLDcgQEAgVk0mIGNvbW1vblZNU2xv
dygpCiAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIGdf
Y29tbW9uVk1Pck51bGwgPSAmVk06OmNyZWF0ZUxlYWtlZChMYXJnZUhlYXApLmxlYWtSZWYoKTsK
ICAgICBnX2NvbW1vblZNT3JOdWxsLT5oZWFwLmFjcXVpcmVBY2Nlc3MoKTsgLy8gQXQgYW55IHRp
bWUsIHdlIG1heSBkbyB0aGluZ3MgdGhhdCBhZmZlY3QgdGhlIEdDLgotI2lmICFQTEFURk9STShJ
T1MpCi0gICAgZ19jb21tb25WTU9yTnVsbC0+c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6dGhpc190
aHJlYWQ6OmdldF9pZCgpKTsKLSNlbHNlCisjaWYgUExBVEZPUk0oSU9TKQogICAgIGdfY29tbW9u
Vk1Pck51bGwtPmhlYXAuc2V0UnVuTG9vcChXZWJUaHJlYWRSdW5Mb29wKCkpOwogICAgIGdfY29t
bW9uVk1Pck51bGwtPmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFkKCk7CiAj
ZW5kaWYK
</data>
<flag name="review"
          id="324636"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302952</attachid>
            <date>2017-02-28 11:10:14 -0800</date>
            <delta_ts>2017-02-28 11:44:25 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-168977.patch</filename>
            <type>text/plain</type>
            <size>9396</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5kIHBlZXJzIGZyb20gdGhlIEpTTG9jay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTTG9jazo6c2V0
RXhjbHVzaXZlVGhyZWFkKCkgd2FzIG9ubHkgdXNlZCBieSBXZWJDb3JlLiAgQmVuY2htYXJraW5n
IHdpdGgKKyAgICAgICAgU3BlZWRvbWV0ZXIsIHdlIHNlZSB0aGF0IHJlbW92YWwgb2YgZXhjbHVz
aXZlIHRocmVhZCBzdGF0dXMgaGFzIG5vIG1lYXN1cmFibGUKKyAgICAgICAgaW1wYWN0IG9uIHBl
cmZvcm1hbmNlLiAgU28sIGxldCdzIHJlbW92ZSB0aGUgY29kZSBmb3IgaGFuZGxpbmcgZXhjbHVz
aXZlIHRocmVhZAorICAgICAgICBzdGF0dXMsIGFuZCBzaW1wbGlmeSB0aGUgSlNMb2NrIGNvZGUu
CisKKyAgICAgICAgRm9yIHRoZSByZWNvcmRzLCBleGNsdXNpdmUgdGhyZWFkIHN0YXR1cyBkb2Vz
IGltcHJvdmUgSlNMb2NrIGxvY2tpbmcvdW5sb2NraW5nCisgICAgICAgIHRpbWUgYnkgdXAgdG8g
MjAlLiAgSG93ZXZlciwgdGhpcyBkaWZmZXJlbmNlIGlzIG5vdCBtZWFzdXJhYmxlIGluIHRoZSB3
YXkgV2ViQ29yZQorICAgICAgICB1c2VzIHRoZSBKU0xvY2sgYXMgY29uZmlybWVkIGJ5IFNwZWVk
b21ldGVyLgorCisgICAgICAgIEFsc28gYXBwbGllZCBhIG1pbm9yIG9wdGltaXphdGlvbiBpbiBK
U0xvY2s6OmxvY2soKSB0byBhc3N1bWUgdGhlIGluaXRpYWwgbG9jaworICAgICAgICBlbnRyeSBj
YXNlIChhcyBvcHBvc2VkIHRvIHRoZSByZS1lbnRyeSBjYXNlKS4gIFRoaXMgYXBwZWFycyB0byBz
aG93cyBhIHNtYWxsCisgICAgICAgIGZyYWN0aW9uYWwgaW1wcm92ZW1lbnQgKGFib3V0IDUlKSBp
biBKU0xvY2sgY3VtdWxhdGl2ZSBsb2NraW5nIGFuZCB1bmxvY2tpbmcKKyAgICAgICAgdGltZSBp
biBhIG1pY3JvLWJlbmNobWFyay4KKworICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpKU0xv
Y2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6OmxvY2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6
OnVubG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xv
Y2spOgorICAgICAgICAoSlNDOjpKU0xvY2s6OmRyb3BBbGxMb2Nrcyk6CisgICAgICAgIChKU0M6
OkpTTG9jazo6Z3JhYkFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpzZXRFeGNsdXNp
dmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAg
IChKU0M6OkpTTG9jazo6b3duZXJUaHJlYWQpOgorICAgICAgICAoSlNDOjpKU0xvY2s6Omhhc0V4
Y2x1c2l2ZVRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTTG9jazo6ZXhjbHVzaXZl
VGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6
OlZNOjpoYXNFeGNsdXNpdmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6ZXhj
bHVzaXZlVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OnNldEV4Y2x1c2l2ZVRo
cmVhZCk6IERlbGV0ZWQuCisKIDIwMTctMDItMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gY29uZmlndXJlIEpTQyBvcHRpb25z
IGZyb20gYSBmaWxlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDIxMzE1MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
NCw4ICsyMzQsNiBAQCBib29sIE1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6Om9wZXJhdG9yPT0oCiAK
IHZvaWQgTWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQoKQogewotICAgIEFTU0VSVCgh
bV9oZWFwLT52bSgpLT5oYXNFeGNsdXNpdmVUaHJlYWQoKSB8fCBtX2hlYXAtPnZtKCktPmV4Y2x1
c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpKTsKLQogICAgIGlmICh0
aHJlYWRTcGVjaWZpY0dldChtX3RocmVhZFNwZWNpZmljRm9yTWFjaGluZVRocmVhZHMpKSB7CiAj
aWZuZGVmIE5ERUJVRwogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFk
c011dGV4KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAko
cmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDgsIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03OCw3ICs3OCw2IEBAIEpTTG9jazo6SlNM
b2NrKFZNKiB2bSkKICAgICA6IG1fb3duZXJUaHJlYWRJRChzdGQ6OnRocmVhZDo6aWQoKSkKICAg
ICAsIG1fbG9ja0NvdW50KDApCiAgICAgLCBtX2xvY2tEcm9wRGVwdGgoMCkKLSAgICAsIG1faGFz
RXhjbHVzaXZlVGhyZWFkKGZhbHNlKQogICAgICwgbV92bSh2bSkKICAgICAsIG1fZW50cnlBdG9t
aWNTdHJpbmdUYWJsZShudWxscHRyKQogewpAQCAtOTQsMTMgKzkzLDYgQEAgdm9pZCBKU0xvY2s6
OndpbGxEZXN0cm95Vk0oVk0qIHZtKQogICAgIG1fdm0gPSBudWxscHRyOwogfQogCi12b2lkIEpT
TG9jazo6c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6dGhyZWFkOjppZCB0aHJlYWRJZCkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVCghbV9sb2NrQ291bnQgJiYgbV9vd25lclRocmVhZElEID09IHN0ZDo6
dGhyZWFkOjppZCgpKTsKLSAgICBtX2hhc0V4Y2x1c2l2ZVRocmVhZCA9ICh0aHJlYWRJZCAhPSBz
dGQ6OnRocmVhZDo6aWQoKSk7Ci0gICAgbV9vd25lclRocmVhZElEID0gdGhyZWFkSWQ7Ci19Ci0K
IHZvaWQgSlNMb2NrOjpsb2NrKCkKIHsKICAgICBsb2NrKDEpOwpAQCAtMTA5LDE1ICsxMDEsMTYg
QEAgdm9pZCBKU0xvY2s6OmxvY2soKQogdm9pZCBKU0xvY2s6OmxvY2soaW50cHRyX3QgbG9ja0Nv
dW50KQogewogICAgIEFTU0VSVChsb2NrQ291bnQgPiAwKTsKLSAgICBpZiAoY3VycmVudFRocmVh
ZElzSG9sZGluZ0xvY2soKSkgewotICAgICAgICBtX2xvY2tDb3VudCArPSBsb2NrQ291bnQ7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1faGFzRXhjbHVzaXZlVGhyZWFkKSB7
CisgICAgYm9vbCBzdWNjZXNzID0gbV9sb2NrLnRyeUxvY2soKTsKKyAgICBpZiAoVU5MSUtFTFko
IXN1Y2Nlc3MpKSB7CisgICAgICAgIGlmIChjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKSB7
CisgICAgICAgICAgICBtX2xvY2tDb3VudCArPSBsb2NrQ291bnQ7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICAgICAgbV9sb2NrLmxvY2soKTsKLSAgICAgICAgbV9vd25lclRo
cmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCk7CiAgICAgfQorCisgICAgbV9vd25l
clRocmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCk7CiAgICAgQVNTRVJUKCFtX2xv
Y2tDb3VudCk7CiAgICAgbV9sb2NrQ291bnQgPSBsb2NrQ291bnQ7CiAKQEAgLTE3NSwxMSArMTY4
LDggQEAgdm9pZCBKU0xvY2s6OnVubG9jayhpbnRwdHJfdCB1bmxvY2tDb3VudAogICAgIG1fbG9j
a0NvdW50IC09IHVubG9ja0NvdW50OwogCiAgICAgaWYgKCFtX2xvY2tDb3VudCkgewotICAgICAg
ICAKLSAgICAgICAgaWYgKCFtX2hhc0V4Y2x1c2l2ZVRocmVhZCkgewotICAgICAgICAgICAgbV9v
d25lclRocmVhZElEID0gc3RkOjp0aHJlYWQ6OmlkKCk7Ci0gICAgICAgICAgICBtX2xvY2sudW5s
b2NrKCk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9vd25lclRocmVhZElEID0gc3RkOjp0aHJlYWQ6
OmlkKCk7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKICAgICB9CiB9CiAKQEAgLTIxNCwyMCAr
MjA0LDEyIEBAIHZvaWQgSlNMb2NrOjp1bmxvY2soRXhlY1N0YXRlKiBleGVjKQogCiBib29sIEpT
TG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKQogewotICAgIEFTU0VSVCghbV9oYXNF
eGNsdXNpdmVUaHJlYWQgfHwgKGV4Y2x1c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190aHJlYWQ6
OmdldF9pZCgpKSk7Ci0gICAgaWYgKG1faGFzRXhjbHVzaXZlVGhyZWFkKQotICAgICAgICByZXR1
cm4gISFtX2xvY2tDb3VudDsKICAgICByZXR1cm4gbV9vd25lclRocmVhZElEID09IHN0ZDo6dGhp
c190aHJlYWQ6OmdldF9pZCgpOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIG51
bWJlciBvZiBsb2NrcyB0aGF0IHdlcmUgZHJvcHBlZC4KIHVuc2lnbmVkIEpTTG9jazo6ZHJvcEFs
bExvY2tzKERyb3BBbGxMb2NrcyogZHJvcHBlcikKIHsKLSAgICBpZiAobV9oYXNFeGNsdXNpdmVU
aHJlYWQpIHsKLSAgICAgICAgQVNTRVJUKGV4Y2x1c2l2ZVRocmVhZCgpID09IHN0ZDo6dGhpc190
aHJlYWQ6OmdldF9pZCgpKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAgaWYgKCFj
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjQ3
LDggKzIyOSw2IEBAIHVuc2lnbmVkIEpTTG9jazo6ZHJvcEFsbExvY2tzKERyb3BBbGxMb2MKIAog
dm9pZCBKU0xvY2s6OmdyYWJBbGxMb2NrcyhEcm9wQWxsTG9ja3MqIGRyb3BwZXIsIHVuc2lnbmVk
IGRyb3BwZWRMb2NrQ291bnQpCiB7Ci0gICAgQVNTRVJUKCFtX2hhc0V4Y2x1c2l2ZVRocmVhZCB8
fCAhZHJvcHBlZExvY2tDb3VudCk7Ci0KICAgICAvLyBJZiBubyBsb2NrcyB3ZXJlIGRyb3BwZWQs
IG5vdGhpbmcgdG8gZG8hCiAgICAgaWYgKCFkcm9wcGVkTG9ja0NvdW50KQogICAgICAgICByZXR1
cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAkocmV2aXNpb24g
MjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4
LCAyMDA5LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtOTMsMTQgKzkzLDcgQEAgcHVibGljOgogCiAgICAgVk0qIHZt
KCkgeyByZXR1cm4gbV92bTsgfQogCi0gICAgYm9vbCBoYXNFeGNsdXNpdmVUaHJlYWQoKSBjb25z
dCB7IHJldHVybiBtX2hhc0V4Y2x1c2l2ZVRocmVhZDsgfQotICAgIHN0ZDo6dGhyZWFkOjppZCBl
eGNsdXNpdmVUaHJlYWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faGFzRXhjbHVz
aXZlVGhyZWFkKTsKLSAgICAgICAgcmV0dXJuIG1fb3duZXJUaHJlYWRJRDsKLSAgICB9CiAgICAg
c3RkOjp0aHJlYWQ6OmlkIG93bmVyVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9vd25lclRocmVh
ZElEOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRFeGNsdXNpdmVUaHJlYWQoc3Rk
Ojp0aHJlYWQ6OmlkKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGN1cnJlbnRUaHJlYWRJ
c0hvbGRpbmdMb2NrKCk7CiAKICAgICB2b2lkIHdpbGxEZXN0cm95Vk0oVk0qKTsKQEAgLTEzNiw3
ICsxMjksNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dGhyZWFkOjppZCBtX293bmVyVGhyZWFkSUQ7
CiAgICAgaW50cHRyX3QgbV9sb2NrQ291bnQ7CiAgICAgdW5zaWduZWQgbV9sb2NrRHJvcERlcHRo
OwotICAgIGJvb2wgbV9oYXNFeGNsdXNpdmVUaHJlYWQ7CiAgICAgYm9vbCBtX3Nob3VsZFJlbGVh
c2VIZWFwQWNjZXNzOwogICAgIFZNKiBtX3ZtOwogICAgIEF0b21pY1N0cmluZ1RhYmxlKiBtX2Vu
dHJ5QXRvbWljU3RyaW5nVGFibGU7IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CShyZXZpc2lvbiAyMTMxNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02MTEsMTAgKzYxMSw2IEBAIHB1YmxpYzoKICAgICBSVFRyYWNl
TGlzdCogbV9ydFRyYWNlTGlzdDsKICNlbmRpZgogCi0gICAgYm9vbCBoYXNFeGNsdXNpdmVUaHJl
YWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPmhhc0V4Y2x1c2l2ZVRocmVhZCgpOyB9Ci0g
ICAgc3RkOjp0aHJlYWQ6OmlkIGV4Y2x1c2l2ZVRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXBp
TG9jay0+ZXhjbHVzaXZlVGhyZWFkKCk7IH0KLSAgICB2b2lkIHNldEV4Y2x1c2l2ZVRocmVhZChz
dGQ6OnRocmVhZDo6aWQgdGhyZWFkSWQpIHsgbV9hcGlMb2NrLT5zZXRFeGNsdXNpdmVUaHJlYWQo
dGhyZWFkSWQpOyB9Ci0KICAgICBzdGQ6OnRocmVhZDo6aWQgb3duZXJUaHJlYWQoKSBjb25zdCB7
IHJldHVybiBtX2FwaUxvY2stPm93bmVyVGhyZWFkKCk7IH0KIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgcmVzZXREYXRlQ2FjaGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE1
MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5kIHBlZXJzIGZyb20gdGhlIEpTTG9j
ay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBiZWNhdXNlIHRoaXMgc2hvdWxkIGFscmVhZHkgYmUgY292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6CisKIDIwMTctMDItMjcgIERhdmUgSHlhdHQgIDxoeWF0
dEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGZsZXhib3ggdG8gQmxpbmsncyB0aXAgb2Yg
dHJlZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAkocmV2aXNp
b24gMjEzMTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTUzLDkgKzUzLDcgQEAgVk0mIGNvbW1vblZNU2xvdygpCiAgICAgU2NyaXB0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIGdfY29tbW9uVk1Pck51bGwg
PSAmVk06OmNyZWF0ZUxlYWtlZChMYXJnZUhlYXApLmxlYWtSZWYoKTsKICAgICBnX2NvbW1vblZN
T3JOdWxsLT5oZWFwLmFjcXVpcmVBY2Nlc3MoKTsgLy8gQXQgYW55IHRpbWUsIHdlIG1heSBkbyB0
aGluZ3MgdGhhdCBhZmZlY3QgdGhlIEdDLgotI2lmICFQTEFURk9STShJT1MpCi0gICAgZ19jb21t
b25WTU9yTnVsbC0+c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgp
KTsKLSNlbHNlCisjaWYgUExBVEZPUk0oSU9TKQogICAgIGdfY29tbW9uVk1Pck51bGwtPmhlYXAu
c2V0UnVuTG9vcChXZWJUaHJlYWRSdW5Mb29wKCkpOwogICAgIGdfY29tbW9uVk1Pck51bGwtPmhl
YXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFkKCk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302957</attachid>
            <date>2017-02-28 11:44:25 -0800</date>
            <delta_ts>2017-02-28 13:58:38 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-168977.patch</filename>
            <type>text/plain</type>
            <size>11526</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzMTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5kIHBlZXJzIGZyb20gdGhlIEpTTG9jay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTTG9jazo6c2V0
RXhjbHVzaXZlVGhyZWFkKCkgd2FzIG9ubHkgdXNlZCBieSBXZWJDb3JlLiAgQmVuY2htYXJraW5n
IHdpdGgKKyAgICAgICAgU3BlZWRvbWV0ZXIsIHdlIHNlZSB0aGF0IHJlbW92YWwgb2YgZXhjbHVz
aXZlIHRocmVhZCBzdGF0dXMgaGFzIG5vIG1lYXN1cmFibGUKKyAgICAgICAgaW1wYWN0IG9uIHBl
cmZvcm1hbmNlLiAgU28sIGxldCdzIHJlbW92ZSB0aGUgY29kZSBmb3IgaGFuZGxpbmcgZXhjbHVz
aXZlIHRocmVhZAorICAgICAgICBzdGF0dXMsIGFuZCBzaW1wbGlmeSB0aGUgSlNMb2NrIGNvZGUu
CisKKyAgICAgICAgRm9yIHRoZSByZWNvcmRzLCBleGNsdXNpdmUgdGhyZWFkIHN0YXR1cyBkb2Vz
IGltcHJvdmUgSlNMb2NrIGxvY2tpbmcvdW5sb2NraW5nCisgICAgICAgIHRpbWUgYnkgdXAgdG8g
MjAlLiAgSG93ZXZlciwgdGhpcyBkaWZmZXJlbmNlIGlzIG5vdCBtZWFzdXJhYmxlIGluIHRoZSB3
YXkgV2ViQ29yZQorICAgICAgICB1c2VzIHRoZSBKU0xvY2sgYXMgY29uZmlybWVkIGJ5IFNwZWVk
b21ldGVyLgorCisgICAgICAgIEFsc28gYXBwbGllZCBhIG1pbm9yIG9wdGltaXphdGlvbiBpbiBK
U0xvY2s6OmxvY2soKSB0byBhc3N1bWUgdGhlIGluaXRpYWwgbG9jaworICAgICAgICBlbnRyeSBj
YXNlIChhcyBvcHBvc2VkIHRvIHRoZSByZS1lbnRyeSBjYXNlKS4gIFRoaXMgYXBwZWFycyB0byBz
aG93cyBhIHNtYWxsCisgICAgICAgIGZyYWN0aW9uYWwgaW1wcm92ZW1lbnQgKGFib3V0IDUlKSBp
biBKU0xvY2sgY3VtdWxhdGl2ZSBsb2NraW5nIGFuZCB1bmxvY2tpbmcKKyAgICAgICAgdGltZSBp
biBhIG1pY3JvLWJlbmNobWFyay4KKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAg
IChKU0M6OkhlYXA6OkhlYXApOgorICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6Ok1hY2hpbmVUaHJlYWRzKToKKyAgICAg
ICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQpOgorICAgICAgICAqIGhl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmg6CisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgor
ICAgICAgICAoSlNDOjpKU0xvY2s6OkpTTG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6bG9j
ayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6dW5sb2NrKToKKyAgICAgICAgKEpTQzo6SlNMb2Nr
OjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6ZHJv
cEFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpncmFiQWxsTG9ja3MpOgorICAgICAg
ICAoSlNDOjpKU0xvY2s6OnNldEV4Y2x1c2l2ZVRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU0xvY2suaDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpvd25lclRocmVhZCk6Cisg
ICAgICAgIChKU0M6OkpTTG9jazo6aGFzRXhjbHVzaXZlVGhyZWFkKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpleGNsdXNpdmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06Omhhc0V4Y2x1c2l2ZVRocmVhZCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlZNOjpleGNsdXNpdmVUaHJlYWQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpWTTo6c2V0RXhjbHVzaXZlVGhyZWFkKTogRGVsZXRlZC4KKwogMjAxNy0wMi0yOCAg
TWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYWJpbGl0
eSB0byBjb25maWd1cmUgSlNDIG9wdGlvbnMgZnJvbSBhIGZpbGUKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAyMTMxNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4LDcgKzI1OCw3IEBAIEhl
YXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fb2JqZWN0U3BhY2Uo
dGhpcykKICAgICAsIG1fZXh0cmFNZW1vcnlTaXplKDApCiAgICAgLCBtX2RlcHJlY2F0ZWRFeHRy
YU1lbW9yeVNpemUoMCkKLSAgICAsIG1fbWFjaGluZVRocmVhZHMoc3RkOjptYWtlX3VuaXF1ZTxN
YWNoaW5lVGhyZWFkcz4odGhpcykpCisgICAgLCBtX21hY2hpbmVUaHJlYWRzKHN0ZDo6bWFrZV91
bmlxdWU8TWFjaGluZVRocmVhZHM+KCkpCiAgICAgLCBtX2NvbGxlY3RvclNsb3RWaXNpdG9yKHN0
ZDo6bWFrZV91bmlxdWU8U2xvdFZpc2l0b3I+KCp0aGlzLCAiQyIpKQogICAgICwgbV9tdXRhdG9y
U2xvdFZpc2l0b3Ioc3RkOjptYWtlX3VuaXF1ZTxTbG90VmlzaXRvcj4oKnRoaXMsICJNIikpCiAg
ICAgLCBtX211dGF0b3JNYXJrU3RhY2soc3RkOjptYWtlX3VuaXF1ZTxNYXJrU3RhY2tBcnJheT4o
KSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNr
TWFya2VyLmNwcAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDE0ICsxOTAs
MTAgQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2VuZGlmCiB9
CiAKLU1hY2hpbmVUaHJlYWRzOjpNYWNoaW5lVGhyZWFkcyhIZWFwKiBoZWFwKQorTWFjaGluZVRo
cmVhZHM6Ok1hY2hpbmVUaHJlYWRzKCkKICAgICA6IG1fcmVnaXN0ZXJlZFRocmVhZHMoMCkKICAg
ICAsIG1fdGhyZWFkU3BlY2lmaWNGb3JNYWNoaW5lVGhyZWFkcygwKQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICAsIG1faGVhcChoZWFwKQotI2VuZGlmCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGhl
YXApOwogICAgIHRocmVhZFNwZWNpZmljS2V5Q3JlYXRlKCZtX3RocmVhZFNwZWNpZmljRm9yTWFj
aGluZVRocmVhZHMsIHJlbW92ZVRocmVhZCk7CiAgICAgYWN0aXZlTWFjaGluZVRocmVhZHNNYW5h
Z2VyKCkuYWRkKHRoaXMpOwogfQpAQCAtMjM0LDggKzIzMCw2IEBAIGJvb2wgTWFjaGluZVRocmVh
ZHM6OlRocmVhZDo6b3BlcmF0b3I9PSgKIAogdm9pZCBNYWNoaW5lVGhyZWFkczo6YWRkQ3VycmVu
dFRocmVhZCgpCiB7Ci0gICAgQVNTRVJUKCFtX2hlYXAtPnZtKCktPmhhc0V4Y2x1c2l2ZVRocmVh
ZCgpIHx8IG1faGVhcC0+dm0oKS0+ZXhjbHVzaXZlVGhyZWFkKCkgPT0gc3RkOjp0aGlzX3RocmVh
ZDo6Z2V0X2lkKCkpOwotCiAgICAgaWYgKHRocmVhZFNwZWNpZmljR2V0KG1fdGhyZWFkU3BlY2lm
aWNGb3JNYWNoaW5lVGhyZWFkcykpIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmgJKHJldmlzaW9uIDIxMzE1MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHN0cnVjdCBDdXJyZW50VGhyZWFkU3RhdGUgewog
Y2xhc3MgTWFjaGluZVRocmVhZHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hY2hpbmVU
aHJlYWRzKTsKIHB1YmxpYzoKLSAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CisgICAgTWFjaGlu
ZVRocmVhZHMoKTsKICAgICB+TWFjaGluZVRocmVhZHMoKTsKIAogICAgIHZvaWQgZ2F0aGVyQ29u
c2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENv
ZGVCbG9ja1NldCYsIEN1cnJlbnRUaHJlYWRTdGF0ZSopOwpAQCAtMTYzLDkgKzE2Myw2IEBAIHBy
aXZhdGU6CiAgICAgTG9jayBtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CiAgICAgVGhyZWFkKiBt
X3JlZ2lzdGVyZWRUaHJlYWRzOwogICAgIFdURjo6VGhyZWFkU3BlY2lmaWNLZXkgbV90aHJlYWRT
cGVjaWZpY0Zvck1hY2hpbmVUaHJlYWRzOwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBIZWFw
KiBtX2hlYXA7Ci0jZW5kaWYKIH07CiAKICNkZWZpbmUgREVDTEFSRV9BTkRfQ09NUFVURV9DVVJS
RU5UX1RIUkVBRF9TVEFURShzdGF0ZU5hbWUpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNMb2NrLmNwcAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03OCw3
ICs3OCw2IEBAIEpTTG9jazo6SlNMb2NrKFZNKiB2bSkKICAgICA6IG1fb3duZXJUaHJlYWRJRChz
dGQ6OnRocmVhZDo6aWQoKSkKICAgICAsIG1fbG9ja0NvdW50KDApCiAgICAgLCBtX2xvY2tEcm9w
RGVwdGgoMCkKLSAgICAsIG1faGFzRXhjbHVzaXZlVGhyZWFkKGZhbHNlKQogICAgICwgbV92bSh2
bSkKICAgICAsIG1fZW50cnlBdG9taWNTdHJpbmdUYWJsZShudWxscHRyKQogewpAQCAtOTQsMTMg
KzkzLDYgQEAgdm9pZCBKU0xvY2s6OndpbGxEZXN0cm95Vk0oVk0qIHZtKQogICAgIG1fdm0gPSBu
dWxscHRyOwogfQogCi12b2lkIEpTTG9jazo6c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6dGhyZWFk
OjppZCB0aHJlYWRJZCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVCghbV9sb2NrQ291bnQgJiYgbV9v
d25lclRocmVhZElEID09IHN0ZDo6dGhyZWFkOjppZCgpKTsKLSAgICBtX2hhc0V4Y2x1c2l2ZVRo
cmVhZCA9ICh0aHJlYWRJZCAhPSBzdGQ6OnRocmVhZDo6aWQoKSk7Ci0gICAgbV9vd25lclRocmVh
ZElEID0gdGhyZWFkSWQ7Ci19Ci0KIHZvaWQgSlNMb2NrOjpsb2NrKCkKIHsKICAgICBsb2NrKDEp
OwpAQCAtMTA5LDE1ICsxMDEsMTYgQEAgdm9pZCBKU0xvY2s6OmxvY2soKQogdm9pZCBKU0xvY2s6
OmxvY2soaW50cHRyX3QgbG9ja0NvdW50KQogewogICAgIEFTU0VSVChsb2NrQ291bnQgPiAwKTsK
LSAgICBpZiAoY3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSkgewotICAgICAgICBtX2xvY2tD
b3VudCArPSBsb2NrQ291bnQ7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1f
aGFzRXhjbHVzaXZlVGhyZWFkKSB7CisgICAgYm9vbCBzdWNjZXNzID0gbV9sb2NrLnRyeUxvY2so
KTsKKyAgICBpZiAoVU5MSUtFTFkoIXN1Y2Nlc3MpKSB7CisgICAgICAgIGlmIChjdXJyZW50VGhy
ZWFkSXNIb2xkaW5nTG9jaygpKSB7CisgICAgICAgICAgICBtX2xvY2tDb3VudCArPSBsb2NrQ291
bnQ7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgbV9sb2NrLmxvY2so
KTsKLSAgICAgICAgbV9vd25lclRocmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCk7
CiAgICAgfQorCisgICAgbV9vd25lclRocmVhZElEID0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lk
KCk7CiAgICAgQVNTRVJUKCFtX2xvY2tDb3VudCk7CiAgICAgbV9sb2NrQ291bnQgPSBsb2NrQ291
bnQ7CiAKQEAgLTE3NSwxMSArMTY4LDggQEAgdm9pZCBKU0xvY2s6OnVubG9jayhpbnRwdHJfdCB1
bmxvY2tDb3VudAogICAgIG1fbG9ja0NvdW50IC09IHVubG9ja0NvdW50OwogCiAgICAgaWYgKCFt
X2xvY2tDb3VudCkgewotICAgICAgICAKLSAgICAgICAgaWYgKCFtX2hhc0V4Y2x1c2l2ZVRocmVh
ZCkgewotICAgICAgICAgICAgbV9vd25lclRocmVhZElEID0gc3RkOjp0aHJlYWQ6OmlkKCk7Ci0g
ICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9vd25lclRo
cmVhZElEID0gc3RkOjp0aHJlYWQ6OmlkKCk7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKICAg
ICB9CiB9CiAKQEAgLTIxNCwyMCArMjA0LDEyIEBAIHZvaWQgSlNMb2NrOjp1bmxvY2soRXhlY1N0
YXRlKiBleGVjKQogCiBib29sIEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKQog
ewotICAgIEFTU0VSVCghbV9oYXNFeGNsdXNpdmVUaHJlYWQgfHwgKGV4Y2x1c2l2ZVRocmVhZCgp
ID09IHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpKSk7Ci0gICAgaWYgKG1faGFzRXhjbHVzaXZl
VGhyZWFkKQotICAgICAgICByZXR1cm4gISFtX2xvY2tDb3VudDsKICAgICByZXR1cm4gbV9vd25l
clRocmVhZElEID09IHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpOwogfQogCiAvLyBUaGlzIGZ1
bmN0aW9uIHJldHVybnMgdGhlIG51bWJlciBvZiBsb2NrcyB0aGF0IHdlcmUgZHJvcHBlZC4KIHVu
c2lnbmVkIEpTTG9jazo6ZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyogZHJvcHBlcikKIHsKLSAg
ICBpZiAobV9oYXNFeGNsdXNpdmVUaHJlYWQpIHsKLSAgICAgICAgQVNTRVJUKGV4Y2x1c2l2ZVRo
cmVhZCgpID09IHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpKTsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotCiAgICAgaWYgKCFjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKQogICAgICAg
ICByZXR1cm4gMDsKIApAQCAtMjQ3LDggKzIyOSw2IEBAIHVuc2lnbmVkIEpTTG9jazo6ZHJvcEFs
bExvY2tzKERyb3BBbGxMb2MKIAogdm9pZCBKU0xvY2s6OmdyYWJBbGxMb2NrcyhEcm9wQWxsTG9j
a3MqIGRyb3BwZXIsIHVuc2lnbmVkIGRyb3BwZWRMb2NrQ291bnQpCiB7Ci0gICAgQVNTRVJUKCFt
X2hhc0V4Y2x1c2l2ZVRocmVhZCB8fCAhZHJvcHBlZExvY2tDb3VudCk7Ci0KICAgICAvLyBJZiBu
byBsb2NrcyB3ZXJlIGRyb3BwZWQsIG5vdGhpbmcgdG8gZG8hCiAgICAgaWYgKCFkcm9wcGVkTG9j
a0NvdW50KQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suaAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA4LCAyMDA5LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTMsMTQgKzkzLDcgQEAg
cHVibGljOgogCiAgICAgVk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogCi0gICAgYm9vbCBoYXNF
eGNsdXNpdmVUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2hhc0V4Y2x1c2l2ZVRocmVhZDsgfQot
ICAgIHN0ZDo6dGhyZWFkOjppZCBleGNsdXNpdmVUaHJlYWQoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1faGFzRXhjbHVzaXZlVGhyZWFkKTsKLSAgICAgICAgcmV0dXJuIG1fb3duZXJU
aHJlYWRJRDsKLSAgICB9CiAgICAgc3RkOjp0aHJlYWQ6OmlkIG93bmVyVGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gbV9vd25lclRocmVhZElEOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
ZXRFeGNsdXNpdmVUaHJlYWQoc3RkOjp0aHJlYWQ6OmlkKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBib29sIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCk7CiAKICAgICB2b2lkIHdpbGxEZXN0
cm95Vk0oVk0qKTsKQEAgLTEzNiw3ICsxMjksNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dGhyZWFk
OjppZCBtX293bmVyVGhyZWFkSUQ7CiAgICAgaW50cHRyX3QgbV9sb2NrQ291bnQ7CiAgICAgdW5z
aWduZWQgbV9sb2NrRHJvcERlcHRoOwotICAgIGJvb2wgbV9oYXNFeGNsdXNpdmVUaHJlYWQ7CiAg
ICAgYm9vbCBtX3Nob3VsZFJlbGVhc2VIZWFwQWNjZXNzOwogICAgIFZNKiBtX3ZtOwogICAgIEF0
b21pY1N0cmluZ1RhYmxlKiBtX2VudHJ5QXRvbWljU3RyaW5nVGFibGU7IApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMTMxNTEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTEsMTAgKzYxMSw2IEBA
IHB1YmxpYzoKICAgICBSVFRyYWNlTGlzdCogbV9ydFRyYWNlTGlzdDsKICNlbmRpZgogCi0gICAg
Ym9vbCBoYXNFeGNsdXNpdmVUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPmhhc0V4
Y2x1c2l2ZVRocmVhZCgpOyB9Ci0gICAgc3RkOjp0aHJlYWQ6OmlkIGV4Y2x1c2l2ZVRocmVhZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYXBpTG9jay0+ZXhjbHVzaXZlVGhyZWFkKCk7IH0KLSAgICB2b2lk
IHNldEV4Y2x1c2l2ZVRocmVhZChzdGQ6OnRocmVhZDo6aWQgdGhyZWFkSWQpIHsgbV9hcGlMb2Nr
LT5zZXRFeGNsdXNpdmVUaHJlYWQodGhyZWFkSWQpOyB9Ci0KICAgICBzdGQ6OnRocmVhZDo6aWQg
b3duZXJUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPm93bmVyVGhyZWFkKCk7IH0K
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXREYXRlQ2FjaGUoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIxMzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAyLTI4ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc2V0RXhjbHVzaXZlVGhyZWFkKCkgYW5k
IHBlZXJzIGZyb20gdGhlIEpTTG9jay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMgc2hvdWxkIGFscmVhZHkg
YmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0Nv
bW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6CisKIDIwMTctMDIt
MjcgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGZsZXhi
b3ggdG8gQmxpbmsncyB0aXAgb2YgdHJlZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ29tbW9uVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NvbW1vblZNLmNwcAkocmV2aXNpb24gMjEzMTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ29tbW9uVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDkgKzUzLDcgQEAgVk0mIGNvbW1v
blZNU2xvdygpCiAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwog
ICAgIGdfY29tbW9uVk1Pck51bGwgPSAmVk06OmNyZWF0ZUxlYWtlZChMYXJnZUhlYXApLmxlYWtS
ZWYoKTsKICAgICBnX2NvbW1vblZNT3JOdWxsLT5oZWFwLmFjcXVpcmVBY2Nlc3MoKTsgLy8gQXQg
YW55IHRpbWUsIHdlIG1heSBkbyB0aGluZ3MgdGhhdCBhZmZlY3QgdGhlIEdDLgotI2lmICFQTEFU
Rk9STShJT1MpCi0gICAgZ19jb21tb25WTU9yTnVsbC0+c2V0RXhjbHVzaXZlVGhyZWFkKHN0ZDo6
dGhpc190aHJlYWQ6OmdldF9pZCgpKTsKLSNlbHNlCisjaWYgUExBVEZPUk0oSU9TKQogICAgIGdf
Y29tbW9uVk1Pck51bGwtPmhlYXAuc2V0UnVuTG9vcChXZWJUaHJlYWRSdW5Mb29wKCkpOwogICAg
IGdfY29tbW9uVk1Pck51bGwtPmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFk
KCk7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>