<?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>168257</bug_id>
          
          <creation_ts>2017-02-13 14:55:10 -0800</creation_ts>
          <short_desc>Add JSC_sweepSynchronously and fix JSC_useZombieMode options.</short_desc>
          <delta_ts>2017-02-14 11:15:28 -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 Local 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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</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>1276379</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 14:55:10 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276382</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 14:56:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/30451496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276387</commentid>
    <comment_count>2</comment_count>
      <attachid>301396</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 15:00:41 -0800</bug_when>
    <thetext>Created attachment 301396
proposed patch.

Let&apos;s get some EWS testing on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276456</commentid>
    <comment_count>3</comment_count>
      <attachid>301396</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 16:59:34 -0800</bug_when>
    <thetext>Comment on attachment 301396
proposed patch.

Looks ready for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276462</commentid>
    <comment_count>4</comment_count>
      <attachid>301396</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-02-13 17:14:09 -0800</bug_when>
    <thetext>Comment on attachment 301396
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276475</commentid>
    <comment_count>5</comment_count>
      <attachid>301396</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 17:28:04 -0800</bug_when>
    <thetext>Comment on attachment 301396
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=301396&amp;action=review

&gt; Source/JavaScriptCore/heap/Heap.cpp:1060
&gt; +        sweepSynchronously();
&gt; +        if (Options::useZombieMode())
&gt; +            zombifyDeadObjects();

Turns out this is not needed because collectSync() above will take care of invoking sweepSynchronously() and zombifyDeadObjects() if needed.  I&apos;ll also add some GC logging when zombifying.  Updated patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276480</commentid>
    <comment_count>6</comment_count>
      <attachid>301396</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 17:32:42 -0800</bug_when>
    <thetext>Comment on attachment 301396
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=301396&amp;action=review

&gt;&gt; Source/JavaScriptCore/heap/Heap.cpp:1060
&gt;&gt; +            zombifyDeadObjects();
&gt; 
&gt; Turns out this is not needed because collectSync() above will take care of invoking sweepSynchronously() and zombifyDeadObjects() if needed.  I&apos;ll also add some GC logging when zombifying.  Updated patch coming soon.

Correction: sweepSyncronously is still needed if neither Options::sweepSynchronously() or Options::useZombieMode() are set because collectSync() does not sweep synchronously by default.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276489</commentid>
    <comment_count>7</comment_count>
      <attachid>301428</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 17:43:35 -0800</bug_when>
    <thetext>Created attachment 301428
proposed patch with fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276493</commentid>
    <comment_count>8</comment_count>
      <attachid>301428</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-02-13 17:48:13 -0800</bug_when>
    <thetext>Comment on attachment 301428
proposed patch with fixes.

View in context: https://bugs.webkit.org/attachment.cgi?id=301428&amp;action=review

LGTM

&gt; Source/JavaScriptCore/heap/Heap.cpp:1043
&gt; +        dataLog(&quot;=&gt; &quot;, capacity() / 1024, &quot;kb, &quot;, after - before, &quot;ms] &quot;);

Why not put the &quot;\n&quot; here?

&gt; Source/JavaScriptCore/heap/Heap.cpp:1980
&gt; +        dataLog(&quot;=&gt; &quot;, capacity() / 1024, &quot;kb, &quot;, after - before, &quot;ms] &quot;);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276494</commentid>
    <comment_count>9</comment_count>
      <attachid>301428</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-13 17:55:56 -0800</bug_when>
    <thetext>Comment on attachment 301428
proposed patch with fixes.

View in context: https://bugs.webkit.org/attachment.cgi?id=301428&amp;action=review

Thanks for the review.

&gt;&gt; Source/JavaScriptCore/heap/Heap.cpp:1043
&gt;&gt; +        dataLog(&quot;=&gt; &quot;, capacity() / 1024, &quot;kb, &quot;, after - before, &quot;ms] &quot;);
&gt; 
&gt; Why not put the &quot;\n&quot; here?

Because this function may be called from Heap::finalize() which has its own logging which wraps this line.  Putting a &apos;\n&apos; here will premature terminate the &quot;[GC: finalize ...]&quot; logging in Heap::finalize().

&gt;&gt; Source/JavaScriptCore/heap/Heap.cpp:1980
&gt;&gt; +        dataLog(&quot;=&gt; &quot;, capacity() / 1024, &quot;kb, &quot;, after - before, &quot;ms] &quot;);
&gt; 
&gt; ditto

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276834</commentid>
    <comment_count>10</comment_count>
      <attachid>301526</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-14 11:10:16 -0800</bug_when>
    <thetext>Created attachment 301526
proposed patch.

One more time: this time, re-define useZombieMode as the combination of sweepSynchronously + scribbleFreeCells.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276836</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-14 11:15:28 -0800</bug_when>
    <thetext>Thanks for the reviews.  Landed in r212310: &lt;http://trac.webkit.org/r212310&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301396</attachid>
            <date>2017-02-13 15:00:41 -0800</date>
            <delta_ts>2017-02-13 17:43:35 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-168257.patch</filename>
            <type>text/plain</type>
            <size>4451</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyMjQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDE3LTAyLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgSlNDX3N3ZWVwU3luY2hyb25vdXNseSBhbmQgZml4IEpTQ191c2Vab21iaWVNb2RlIG9wdGlv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgy
NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNDUxNDk2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAg
KEpTQzo6SGVhcDo6c3dlZXBTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29s
bGVjdEFsbEdhcmJhZ2UpOgorICAgICAgICAoSlNDOjpIZWFwOjpmaW5hbGl6ZSk6CisgICAgICAg
IChKU0M6OkhlYXA6OmRpZEZpbmlzaENvbGxlY3Rpb24pOgorICAgICAgICAqIGhlYXAvSGVhcC5o
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE3LTAyLTEyICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEMgbG9vcCBidWlsZCBmaXggYXR0ZW1w
dCBhZnRlciByMjEyMjA3LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJl
dmlzaW9uIDIxMjI0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDI5LDYgKzEwMjksMjEgQEAgdm9pZCBIZWFwOjphZGRUb1JlbWVt
YmVyZWRTZXQoY29uc3QgSlNDZQogICAgIG1fbXV0YXRvck1hcmtTdGFjay0+YXBwZW5kKGNlbGwp
OwogfQogCit2b2lkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpCit7CisgICAgZG91YmxlIGJl
Zm9yZSA9IDA7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsKKyAgICAgICAgZGF0YUxvZygi
W0Z1bGwgc3dlZXA6ICIsIGNhcGFjaXR5KCkgLyAxMDI0LCAia2IgIik7CisgICAgICAgIGJlZm9y
ZSA9IGN1cnJlbnRUaW1lTVMoKTsKKyAgICB9CisgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOwor
ICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5rKCk7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsK
KyAgICAgICAgZG91YmxlIGFmdGVyID0gY3VycmVudFRpbWVNUygpOworICAgICAgICBkYXRhTG9n
KCI9PiAiLCBjYXBhY2l0eSgpIC8gMTAyNCwgImtiLCAiLCBhZnRlciAtIGJlZm9yZSwgIm1zXVxu
Iik7CisgICAgfQorfQorCiB2b2lkIEhlYXA6OmNvbGxlY3RBbGxHYXJiYWdlKCkKIHsKICAgICBp
ZiAoIW1faXNTYWZlVG9Db2xsZWN0KQpAQCAtMTA0MCwxNyArMTA1NSw5IEBAIHZvaWQgSGVhcDo6
Y29sbGVjdEFsbEdhcmJhZ2UoKQogICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VJbW1vcnRh
bE9iamVjdHMoKSkpCiAgICAgICAgIHN3ZWVwZXIoKS0+d2lsbEZpbmlzaFN3ZWVwaW5nKCk7CiAg
ICAgZWxzZSB7Ci0gICAgICAgIGRvdWJsZSBiZWZvcmUgPSAwOwotICAgICAgICBpZiAoT3B0aW9u
czo6bG9nR0MoKSkgewotICAgICAgICAgICAgZGF0YUxvZygiW0Z1bGwgc3dlZXA6ICIsIGNhcGFj
aXR5KCkgLyAxMDI0LCAia2IgIik7Ci0gICAgICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1T
KCk7Ci0gICAgICAgIH0KLSAgICAgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOwotICAgICAgICBt
X29iamVjdFNwYWNlLnNocmluaygpOwotICAgICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSkgewot
ICAgICAgICAgICAgZG91YmxlIGFmdGVyID0gY3VycmVudFRpbWVNUygpOwotICAgICAgICAgICAg
ZGF0YUxvZygiPT4gIiwgY2FwYWNpdHkoKSAvIDEwMjQsICJrYiwgIiwgYWZ0ZXIgLSBiZWZvcmUs
ICJtc11cbiIpOwotICAgICAgICB9CisgICAgICAgIHN3ZWVwU3luY2hyb25vdXNseSgpOworICAg
ICAgICBpZiAoT3B0aW9uczo6dXNlWm9tYmllTW9kZSgpKQorICAgICAgICAgICAgem9tYmlmeURl
YWRPYmplY3RzKCk7CiAgICAgfQogICAgIG1fb2JqZWN0U3BhY2UuYXNzZXJ0Tm9VbnN3ZXB0KCk7
CiAKQEAgLTE1OTYsNiArMTYwMywxMSBAQCB2b2lkIEhlYXA6OmZpbmFsaXplKCkKICAgICBpZiAo
SGFzT3duUHJvcGVydHlDYWNoZSogY2FjaGUgPSB2bSgpLT5oYXNPd25Qcm9wZXJ0eUNhY2hlKCkp
CiAgICAgICAgIGNhY2hlLT5jbGVhcigpOwogCisgICAgaWYgKE9wdGlvbnM6OnN3ZWVwU3luY2hy
b25vdXNseSgpKQorICAgICAgICBzd2VlcFN5bmNocm9ub3VzbHkoKTsKKyAgICBpZiAoT3B0aW9u
czo6dXNlWm9tYmllTW9kZSgpKQorICAgICAgICB6b21iaWZ5RGVhZE9iamVjdHMoKTsKKwogICAg
IGlmIChPcHRpb25zOjpsb2dHQygpKSB7CiAgICAgICAgIE1vbm90b25pY1RpbWUgYWZ0ZXIgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgZGF0YUxvZygoYWZ0ZXIgLSBiZWZvcmUpLm1p
bGxpc2Vjb25kcygpLCAibXNdXG4iKTsKQEAgLTE4MjksOSArMTg0MSw2IEBAIHZvaWQgSGVhcDo6
ZGlkRmluaXNoQ29sbGVjdGlvbihkb3VibGUgZ2MKICAgICBpZiAoT3B0aW9uczo6cmVjb3JkR0NQ
YXVzZVRpbWVzKCkpCiAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjpyZWNvcmRHQ1BhdXNlVGltZShn
Y1N0YXJ0VGltZSwgZ2NFbmRUaW1lKTsKIAotICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2Rl
KCkpCi0gICAgICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotCiAgICAgaWYgKE9wdGlvbnM6OmR1
bXBPYmplY3RTdGF0aXN0aWNzKCkpCiAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjpkdW1wT2JqZWN0
U3RhdGlzdGljcyh0aGlzKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2
aXNpb24gMjEyMjQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZUlmTm90RG9uZVJlY2VudGx5KCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgpOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgc3dlZXBTeW5jaHJvbm91c2x5KCk7CiAKICAgICBib29sIHNob3VsZENvbGxl
Y3RIZXVyaXN0aWMoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgJKHJldmlzaW9uIDIxMjI0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCw3IEBAIHR5cGVkZWYg
Y29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIFwKICAgICB2KGJvb2wsIHVzZVpvbWJpZU1v
ZGUsIGZhbHNlLCBOb3JtYWwsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIHNjcmliYmxlIG92ZXIgZGVh
ZCBvYmplY3RzIHdpdGggMHhkZWFkYmVlZiIpIFwKICAgICB2KGJvb2wsIHVzZUltbW9ydGFsT2Jq
ZWN0cywgZmFsc2UsIE5vcm1hbCwgImRlYnVnZ2luZyBvcHRpb24gdG8ga2VlcCBhbGwgb2JqZWN0
cyBhbGl2ZSBmb3JldmVyIikgXAorICAgIHYoYm9vbCwgc3dlZXBTeW5jaHJvbm91c2x5LCBmYWxz
ZSwgTm9ybWFsLCAiZGVidWdnaW5nIG9wdGlvbiB0byBzd2VlcCBhbGwgZGVhZCBvYmplY3RzIHN5
bmNocm9ub3VzbHkgYXQgR0MgZW5kIGJlZm9yZSByZXN1bWluZyBtdXRhdG9yIikgXAogICAgIHYo
Ym9vbCwgZHVtcE9iamVjdFN0YXRpc3RpY3MsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KHVuc2lnbmVkLCBtYXhTaW5nbGVBbGxvY2F0aW9uU2l6ZSwgMCwgQ29uZmlndXJhYmxlLCAi
ZGVidWdnaW5nIG9wdGlvbiB0byBsaW1pdCBpbmRpdmlkdWFsIGFsbG9jYXRpb25zIHRvIGEgbWF4
IHNpemUgKDAgPSBsaW1pdCBub3Qgc2V0LCBOID0gbGltaXQgc2l6ZSBpbiBieXRlcykiKSBcCiAg
ICAgXAo=
</data>
<flag name="review"
          id="323237"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301428</attachid>
            <date>2017-02-13 17:43:35 -0800</date>
            <delta_ts>2017-02-14 11:10:16 -0800</delta_ts>
            <desc>proposed patch with fixes.</desc>
            <filename>bug-168257.patch</filename>
            <type>text/plain</type>
            <size>5224</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyMjQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDE3LTAyLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgSlNDX3N3ZWVwU3luY2hyb25vdXNseSBhbmQgZml4IEpTQ191c2Vab21iaWVNb2RlIG9wdGlv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgy
NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNDUxNDk2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAg
KEpTQzo6SGVhcDo6c3dlZXBTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29s
bGVjdEFsbEdhcmJhZ2UpOgorICAgICAgICAoSlNDOjpIZWFwOjpmaW5hbGl6ZSk6CisgICAgICAg
IChKU0M6OkhlYXA6OmRpZEZpbmlzaENvbGxlY3Rpb24pOgorICAgICAgICAqIGhlYXAvSGVhcC5o
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE3LTAyLTEyICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEMgbG9vcCBidWlsZCBmaXggYXR0ZW1w
dCBhZnRlciByMjEyMjA3LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJl
dmlzaW9uIDIxMjI0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDI5LDYgKzEwMjksMjEgQEAgdm9pZCBIZWFwOjphZGRUb1JlbWVt
YmVyZWRTZXQoY29uc3QgSlNDZQogICAgIG1fbXV0YXRvck1hcmtTdGFjay0+YXBwZW5kKGNlbGwp
OwogfQogCit2b2lkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpCit7CisgICAgZG91YmxlIGJl
Zm9yZSA9IDA7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsKKyAgICAgICAgZGF0YUxvZygi
W0Z1bGwgc3dlZXA6ICIsIGNhcGFjaXR5KCkgLyAxMDI0LCAia2IgIik7CisgICAgICAgIGJlZm9y
ZSA9IGN1cnJlbnRUaW1lTVMoKTsKKyAgICB9CisgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOwor
ICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5rKCk7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsK
KyAgICAgICAgZG91YmxlIGFmdGVyID0gY3VycmVudFRpbWVNUygpOworICAgICAgICBkYXRhTG9n
KCI9PiAiLCBjYXBhY2l0eSgpIC8gMTAyNCwgImtiLCAiLCBhZnRlciAtIGJlZm9yZSwgIm1zXSAi
KTsKKyAgICB9Cit9CisKIHZvaWQgSGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2UoKQogewogICAgIGlm
ICghbV9pc1NhZmVUb0NvbGxlY3QpCkBAIC0xMDM5LDE4ICsxMDU0LDEwIEBAIHZvaWQgSGVhcDo6
Y29sbGVjdEFsbEdhcmJhZ2UoKQogICAgIERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQygqdGhpcyk7
CiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUltbW9ydGFsT2JqZWN0cygpKSkKICAgICAg
ICAgc3dlZXBlcigpLT53aWxsRmluaXNoU3dlZXBpbmcoKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
ZG91YmxlIGJlZm9yZSA9IDA7Ci0gICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7Ci0gICAg
ICAgICAgICBkYXRhTG9nKCJbRnVsbCBzd2VlcDogIiwgY2FwYWNpdHkoKSAvIDEwMjQsICJrYiAi
KTsKLSAgICAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKLSAgICAgICAgfQotICAg
ICAgICBtX29iamVjdFNwYWNlLnN3ZWVwKCk7Ci0gICAgICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5r
KCk7Ci0gICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7Ci0gICAgICAgICAgICBkb3VibGUg
YWZ0ZXIgPSBjdXJyZW50VGltZU1TKCk7Ci0gICAgICAgICAgICBkYXRhTG9nKCI9PiAiLCBjYXBh
Y2l0eSgpIC8gMTAyNCwgImtiLCAiLCBhZnRlciAtIGJlZm9yZSwgIm1zXVxuIik7Ci0gICAgICAg
IH0KKyAgICBpZiAoIU9wdGlvbnM6OnN3ZWVwU3luY2hyb25vdXNseSgpICYmICFPcHRpb25zOjp1
c2Vab21iaWVNb2RlKCkpIHsKKyAgICAgICAgc3dlZXBTeW5jaHJvbm91c2x5KCk7CisgICAgICAg
IGlmIChPcHRpb25zOjpsb2dHQygpKQorICAgICAgICAgICAgZGF0YUxvZygiXG4iKTsKICAgICB9
CiAgICAgbV9vYmplY3RTcGFjZS5hc3NlcnROb1Vuc3dlcHQoKTsKIApAQCAtMTU5Niw2ICsxNjAz
LDExIEBAIHZvaWQgSGVhcDo6ZmluYWxpemUoKQogICAgIGlmIChIYXNPd25Qcm9wZXJ0eUNhY2hl
KiBjYWNoZSA9IHZtKCktPmhhc093blByb3BlcnR5Q2FjaGUoKSkKICAgICAgICAgY2FjaGUtPmNs
ZWFyKCk7CiAKKyAgICBpZiAoT3B0aW9uczo6c3dlZXBTeW5jaHJvbm91c2x5KCkpCisgICAgICAg
IHN3ZWVwU3luY2hyb25vdXNseSgpOworICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkp
CisgICAgICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOworCiAgICAgaWYgKE9wdGlvbnM6OmxvZ0dD
KCkpIHsKICAgICAgICAgTW9ub3RvbmljVGltZSBhZnRlciA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwogICAgICAgICBkYXRhTG9nKChhZnRlciAtIGJlZm9yZSkubWlsbGlzZWNvbmRzKCksICJtc11c
biIpOwpAQCAtMTgyOSw5ICsxODQxLDYgQEAgdm9pZCBIZWFwOjpkaWRGaW5pc2hDb2xsZWN0aW9u
KGRvdWJsZSBnYwogICAgIGlmIChPcHRpb25zOjpyZWNvcmRHQ1BhdXNlVGltZXMoKSkKICAgICAg
ICAgSGVhcFN0YXRpc3RpY3M6OnJlY29yZEdDUGF1c2VUaW1lKGdjU3RhcnRUaW1lLCBnY0VuZFRp
bWUpOwogCi0gICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkKLSAgICAgICAgem9tYmlm
eURlYWRPYmplY3RzKCk7Ci0KICAgICBpZiAoT3B0aW9uczo6ZHVtcE9iamVjdFN0YXRpc3RpY3Mo
KSkKICAgICAgICAgSGVhcFN0YXRpc3RpY3M6OmR1bXBPYmplY3RTdGF0aXN0aWNzKHRoaXMpOwog
CkBAIC0xOTU3LDEwICsxOTY2LDE5IEBAIHB1YmxpYzoKIAogdm9pZCBIZWFwOjp6b21iaWZ5RGVh
ZE9iamVjdHMoKQogeworICAgIGRvdWJsZSBiZWZvcmUgPSAwOworICAgIGlmIChPcHRpb25zOjps
b2dHQygpKSB7CisgICAgICAgIGRhdGFMb2coIltab21iaWZ5aW5nIHN3ZWVwOiAiLCBjYXBhY2l0
eSgpIC8gMTAyNCwgImtiICIpOworICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1TKCk7Cisg
ICAgfQogICAgIC8vIFN3ZWVwIG5vdyBiZWNhdXNlIGRlc3RydWN0b3JzIHdpbGwgY3Jhc2ggb25j
ZSB3ZSdyZSB6b21iaWZpZWQuCiAgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOwogICAgIEhlYXBJ
dGVyYXRpb25TY29wZSBpdGVyYXRpb25TY29wZSgqdGhpcyk7CiAgICAgbV9vYmplY3RTcGFjZS5m
b3JFYWNoRGVhZENlbGwoaXRlcmF0aW9uU2NvcGUsIFpvbWJpZnkoKSk7CisgICAgaWYgKE9wdGlv
bnM6OmxvZ0dDKCkpIHsKKyAgICAgICAgZG91YmxlIGFmdGVyID0gY3VycmVudFRpbWVNUygpOwor
ICAgICAgICBkYXRhTG9nKCI9PiAiLCBjYXBhY2l0eSgpIC8gMTAyNCwgImtiLCAiLCBhZnRlciAt
IGJlZm9yZSwgIm1zXSAiKTsKKyAgICB9CiB9CiAKIGJvb2wgSGVhcDo6c2hvdWxkRG9GdWxsQ29s
bGVjdGlvbihzdGQ6Om9wdGlvbmFsPENvbGxlY3Rpb25TY29wZT4gc2NvcGUpIGNvbnN0CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAyMTIyNDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcs
NyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGNvbGxlY3RBbGxHYXJi
YWdlSWZOb3REb25lUmVjZW50bHkoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGNvbGxl
Y3RBbGxHYXJiYWdlKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzd2VlcFN5bmNocm9u
b3VzbHkoKTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGVjdEhldXJpc3RpYygpOwogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjEyMjQ0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDQsNiArMzQ0LDcgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7
CiAgICAgXAogICAgIHYoYm9vbCwgdXNlWm9tYmllTW9kZSwgZmFsc2UsIE5vcm1hbCwgImRlYnVn
Z2luZyBvcHRpb24gdG8gc2NyaWJibGUgb3ZlciBkZWFkIG9iamVjdHMgd2l0aCAweGRlYWRiZWVm
IikgXAogICAgIHYoYm9vbCwgdXNlSW1tb3J0YWxPYmplY3RzLCBmYWxzZSwgTm9ybWFsLCAiZGVi
dWdnaW5nIG9wdGlvbiB0byBrZWVwIGFsbCBvYmplY3RzIGFsaXZlIGZvcmV2ZXIiKSBcCisgICAg
dihib29sLCBzd2VlcFN5bmNocm9ub3VzbHksIGZhbHNlLCBOb3JtYWwsICJkZWJ1Z2dpbmcgb3B0
aW9uIHRvIHN3ZWVwIGFsbCBkZWFkIG9iamVjdHMgc3luY2hyb25vdXNseSBhdCBHQyBlbmQgYmVm
b3JlIHJlc3VtaW5nIG11dGF0b3IiKSBcCiAgICAgdihib29sLCBkdW1wT2JqZWN0U3RhdGlzdGlj
cywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIG1heFNpbmdsZUFs
bG9jYXRpb25TaXplLCAwLCBDb25maWd1cmFibGUsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIGxpbWl0
IGluZGl2aWR1YWwgYWxsb2NhdGlvbnMgdG8gYSBtYXggc2l6ZSAoMCA9IGxpbWl0IG5vdCBzZXQs
IE4gPSBsaW1pdCBzaXplIGluIGJ5dGVzKSIpIFwKICAgICBcCg==
</data>
<flag name="review"
          id="323247"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301526</attachid>
            <date>2017-02-14 11:10:16 -0800</date>
            <delta_ts>2017-02-14 11:11:42 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-168257.patch</filename>
            <type>text/plain</type>
            <size>7911</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyMzA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE3LTAyLTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgSlNDX3N3ZWVwU3luY2hyb25vdXNseSBhbmQgZml4IEpTQ191c2Vab21iaWVNb2RlIG9wdGlv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgy
NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNDUxNDk2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTQ191c2Vab21iaWVNb2RlIG5vdyBiYXNp
Y2FsbHkgZW5hYmxlcyBKU0Nfc3dlZXBTeW5jaHJvbm91c2x5IGFuZAorICAgICAgICBKU0Nfc2Ny
aWJibGVGcmVlQ2VsbHMsIHdoaWNoIHRvZ2V0aGVyIGRvZXMgdGhlIGpvYiBvZiB6b21iaWZ5aW5n
IGRlYWQgb2JqZWN0cworICAgICAgICBpbW1lZGlhdGVseSBhZnRlciBhIEdDLgorCisgICAgICAg
ICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6c3dlZXBTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2UpOgorICAgICAgICAoSlND
OjpIZWFwOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkhlYXA6OmRpZEZpbmlzaENvbGxlY3Rp
b24pOgorICAgICAgICAoSlNDOjpab21iaWZ5Ojp2aXNpdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlpvbWJpZnk6Om9wZXJhdG9yKCkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpIZWFwOjp6
b21iaWZ5RGVhZE9iamVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAg
ICAgICAoSlNDOjpIZWFwOjppc1pvbWJpZmllZCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIwMTctMDItMTMgIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgYXN5bmNEaXNhc3NlbWJseSBjcmFz
aGVzIG9uIGlPUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDIxMjI0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDI5LDYgKzEwMjksMjEgQEAgdm9pZCBIZWFwOjphZGRUb1JlbWVtYmVyZWRT
ZXQoY29uc3QgSlNDZQogICAgIG1fbXV0YXRvck1hcmtTdGFjay0+YXBwZW5kKGNlbGwpOwogfQog
Cit2b2lkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpCit7CisgICAgZG91YmxlIGJlZm9yZSA9
IDA7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsKKyAgICAgICAgZGF0YUxvZygiW0Z1bGwg
c3dlZXA6ICIsIGNhcGFjaXR5KCkgLyAxMDI0LCAia2IgIik7CisgICAgICAgIGJlZm9yZSA9IGN1
cnJlbnRUaW1lTVMoKTsKKyAgICB9CisgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOworICAgIG1f
b2JqZWN0U3BhY2Uuc2hyaW5rKCk7CisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsKKyAgICAg
ICAgZG91YmxlIGFmdGVyID0gY3VycmVudFRpbWVNUygpOworICAgICAgICBkYXRhTG9nKCI9PiAi
LCBjYXBhY2l0eSgpIC8gMTAyNCwgImtiLCAiLCBhZnRlciAtIGJlZm9yZSwgIm1zXSAiKTsKKyAg
ICB9Cit9CisKIHZvaWQgSGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2UoKQogewogICAgIGlmICghbV9p
c1NhZmVUb0NvbGxlY3QpCkBAIC0xMDM5LDE4ICsxMDU0LDEyIEBAIHZvaWQgSGVhcDo6Y29sbGVj
dEFsbEdhcmJhZ2UoKQogICAgIERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQygqdGhpcyk7CiAgICAg
aWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUltbW9ydGFsT2JqZWN0cygpKSkKICAgICAgICAgc3dl
ZXBlcigpLT53aWxsRmluaXNoU3dlZXBpbmcoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZG91Ymxl
IGJlZm9yZSA9IDA7Ci0gICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7Ci0gICAgICAgICAg
ICBkYXRhTG9nKCJbRnVsbCBzd2VlcDogIiwgY2FwYWNpdHkoKSAvIDEwMjQsICJrYiAiKTsKLSAg
ICAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKLSAgICAgICAgfQotICAgICAgICBt
X29iamVjdFNwYWNlLnN3ZWVwKCk7Ci0gICAgICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5rKCk7Ci0g
ICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7Ci0gICAgICAgICAgICBkb3VibGUgYWZ0ZXIg
PSBjdXJyZW50VGltZU1TKCk7Ci0gICAgICAgICAgICBkYXRhTG9nKCI9PiAiLCBjYXBhY2l0eSgp
IC8gMTAyNCwgImtiLCAiLCBhZnRlciAtIGJlZm9yZSwgIm1zXVxuIik7Ci0gICAgICAgIH0KKwor
ICAgIGJvb2wgYWxyZWFkeVN3ZXB0SW5Db2xsZWN0U3luYyA9IE9wdGlvbnM6OnN3ZWVwU3luY2hy
b25vdXNseSgpOworICAgIGlmICghYWxyZWFkeVN3ZXB0SW5Db2xsZWN0U3luYykgeworICAgICAg
ICBzd2VlcFN5bmNocm9ub3VzbHkoKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCisg
ICAgICAgICAgICBkYXRhTG9nKCJcbiIpOwogICAgIH0KICAgICBtX29iamVjdFNwYWNlLmFzc2Vy
dE5vVW5zd2VwdCgpOwogCkBAIC0xNTk2LDYgKzE2MDUsOSBAQCB2b2lkIEhlYXA6OmZpbmFsaXpl
KCkKICAgICBpZiAoSGFzT3duUHJvcGVydHlDYWNoZSogY2FjaGUgPSB2bSgpLT5oYXNPd25Qcm9w
ZXJ0eUNhY2hlKCkpCiAgICAgICAgIGNhY2hlLT5jbGVhcigpOwogCisgICAgaWYgKE9wdGlvbnM6
OnN3ZWVwU3luY2hyb25vdXNseSgpKQorICAgICAgICBzd2VlcFN5bmNocm9ub3VzbHkoKTsKKwog
ICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7CiAgICAgICAgIE1vbm90b25pY1RpbWUgYWZ0ZXIg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgZGF0YUxvZygoYWZ0ZXIgLSBiZWZvcmUp
Lm1pbGxpc2Vjb25kcygpLCAibXNdXG4iKTsKQEAgLTE4MjksOSArMTg0MSw2IEBAIHZvaWQgSGVh
cDo6ZGlkRmluaXNoQ29sbGVjdGlvbihkb3VibGUgZ2MKICAgICBpZiAoT3B0aW9uczo6cmVjb3Jk
R0NQYXVzZVRpbWVzKCkpCiAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjpyZWNvcmRHQ1BhdXNlVGlt
ZShnY1N0YXJ0VGltZSwgZ2NFbmRUaW1lKTsKIAotICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVN
b2RlKCkpCi0gICAgICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotCiAgICAgaWYgKE9wdGlvbnM6
OmR1bXBPYmplY3RTdGF0aXN0aWNzKCkpCiAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjpkdW1wT2Jq
ZWN0U3RhdGlzdGljcyh0aGlzKTsKIApAQCAtMTkzMywzNiArMTk0Miw2IEBAIHZvaWQgSGVhcDo6
Y29sbGVjdEFsbEdhcmJhZ2VJZk5vdERvbmVSZWMKICAgICBjb2xsZWN0QWxsR2FyYmFnZSgpOwog
fQogCi1jbGFzcyBab21iaWZ5IDogcHVibGljIE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7Ci1w
dWJsaWM6Ci0gICAgaW5saW5lIHZvaWQgdmlzaXQoSGVhcENlbGwqIGNlbGwpIGNvbnN0Ci0gICAg
ewotICAgICAgICB2b2lkKiogY3VycmVudCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHZvaWQqKj4o
Y2VsbCk7Ci0KLSAgICAgICAgLy8gV2Ugd2FudCB0byBtYWludGFpbiB6YXBwZWQtbmVzcyBiZWNh
dXNlIHRoYXQncyBob3cgd2Uga25vdyBpZiB3ZSd2ZSBjYWxsZWQgCi0gICAgICAgIC8vIHRoZSBk
ZXN0cnVjdG9yLgotICAgICAgICBpZiAoY2VsbC0+aXNaYXBwZWQoKSkKLSAgICAgICAgICAgIGN1
cnJlbnQrKzsKLQotICAgICAgICB2b2lkKiBsaW1pdCA9IHN0YXRpY19jYXN0PHZvaWQqPihyZWlu
dGVycHJldF9jYXN0PGNoYXIqPihjZWxsKSArIGNlbGwtPmNlbGxTaXplKCkpOwotICAgICAgICBm
b3IgKDsgY3VycmVudCA8IGxpbWl0OyBjdXJyZW50KyspCi0gICAgICAgICAgICAqY3VycmVudCA9
IHpvbWJpZmllZEJpdHM7Ci0gICAgfQotICAgIEl0ZXJhdGlvblN0YXR1cyBvcGVyYXRvcigpKEhl
YXBDZWxsKiBjZWxsLCBIZWFwQ2VsbDo6S2luZCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHZpc2l0
KGNlbGwpOwotICAgICAgICByZXR1cm4gSXRlcmF0aW9uU3RhdHVzOjpDb250aW51ZTsKLSAgICB9
Ci19OwotCi12b2lkIEhlYXA6OnpvbWJpZnlEZWFkT2JqZWN0cygpCi17Ci0gICAgLy8gU3dlZXAg
bm93IGJlY2F1c2UgZGVzdHJ1Y3RvcnMgd2lsbCBjcmFzaCBvbmNlIHdlJ3JlIHpvbWJpZmllZC4K
LSAgICBtX29iamVjdFNwYWNlLnN3ZWVwKCk7Ci0gICAgSGVhcEl0ZXJhdGlvblNjb3BlIGl0ZXJh
dGlvblNjb3BlKCp0aGlzKTsKLSAgICBtX29iamVjdFNwYWNlLmZvckVhY2hEZWFkQ2VsbChpdGVy
YXRpb25TY29wZSwgWm9tYmlmeSgpKTsKLX0KLQogYm9vbCBIZWFwOjpzaG91bGREb0Z1bGxDb2xs
ZWN0aW9uKHN0ZDo6b3B0aW9uYWw8Q29sbGVjdGlvblNjb3BlPiBzY29wZSkgY29uc3QKIHsKICAg
ICBpZiAoIU9wdGlvbnM6OnVzZUdlbmVyYXRpb25hbEdDKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5oCShyZXZpc2lvbiAyMTIyNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDggKzg1LDYgQEAgY2xhc3MgU3BlY3Vs
YXRpdmVKSVQ7CiBjbGFzcyBXb3JrbGlzdDsKIH0KIAotc3RhdGljIHZvaWQqIGNvbnN0IHpvbWJp
ZmllZEJpdHMgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KDB4ZGVhZGJlZWYpKTsKLQogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxKU0NlbGwqPiBQcm90ZWN0
Q291bnRTZXQ7CiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqPiBUeXBlQ291bnRT
ZXQ7CiAKQEAgLTE2Nyw2ICsxNjUsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGNvbGxlY3RBbGxHYXJiYWdlSWZOb3REb25lUmVjZW50bHkoKTsKICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGNvbGxlY3RBbGxHYXJiYWdlKCk7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzd2VlcFN5bmNocm9ub3VzbHkoKTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGVjdEhl
dXJpc3RpYygpOwogICAgIApAQCAtMjU5LDggKzI1OCw2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiB2b2lkIHJlbGVhc2VTb29uKFJldGFpblB0cjxUPiYmKTsKICNlbmRpZgog
Ci0gICAgc3RhdGljIGJvb2wgaXNab21iaWZpZWQoSlNDZWxsKiBjZWxsKSB7IHJldHVybiAqKHZv
aWQqKiljZWxsID09IHpvbWJpZmllZEJpdHM7IH0KLQogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcmVnaXN0ZXJXZWFrR0NNYXAodm9pZCogd2Vha0dDTWFwLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gcHJ1bmluZ0NhbGxiYWNrKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHVucmVnaXN0
ZXJXZWFrR0NNYXAodm9pZCogd2Vha0dDTWFwKTsKIApAQCAtNDQ4LDcgKzQ0NSw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVBbGxvY2F0aW9uTGltaXRzKCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hDb2xsZWN0aW9uKGRvdWJsZSBnY1N0YXJ0VGltZSk7CiAgICAgdm9pZCByZXN1bWVDb21waWxl
clRocmVhZHMoKTsKLSAgICB2b2lkIHpvbWJpZnlEZWFkT2JqZWN0cygpOwogICAgIHZvaWQgZ2F0
aGVyRXh0cmFIZWFwU25hcHNob3REYXRhKEhlYXBQcm9maWxlciYpOwogICAgIHZvaWQgcmVtb3Zl
RGVhZEhlYXBTbmFwc2hvdE5vZGVzKEhlYXBQcm9maWxlciYpOwogICAgIHZvaWQgZmluYWxpemUo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZp
c2lvbiAyMTIyNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDM0LDYgKzQzNCwxMiBAQCBzdGF0aWMgdm9pZCByZWNvbXB1
dGVEZXBlbmRlbnRPcHRpb25zKCkKICAgICBlbHNlCiAgICAgICAgIGZhc3RTZXRNYXhTaW5nbGVB
bGxvY2F0aW9uU2l6ZShzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICNlbmRp
ZgorCisgICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkgeworICAgICAgICBPcHRpb25z
Ojpzd2VlcFN5bmNocm9ub3VzbHkoKSA9IHRydWU7CisgICAgICAgIE9wdGlvbnM6OnNjcmliYmxl
RnJlZUNlbGxzKCkgPSB0cnVlOworICAgIH0KKwogICAgIGlmIChPcHRpb25zOjp1c2VTaWdpbGxD
cmFzaEFuYWx5emVyKCkpCiAgICAgICAgIGVuYWJsZVNpZ2lsbENyYXNoQW5hbHl6ZXIoKTsKIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDIx
MjI0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQyLDggKzM0Miw5IEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3Ry
aW5nOwogICAgIHYoYm9vbCwgZm9yY2VXZWFrUmFuZG9tU2VlZCwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXAogICAgIHYodW5zaWduZWQsIGZvcmNlZFdlYWtSYW5kb21TZWVkLCAwLCBOb3JtYWws
IG51bGxwdHIpIFwKICAgICBcCi0gICAgdihib29sLCB1c2Vab21iaWVNb2RlLCBmYWxzZSwgTm9y
bWFsLCAiZGVidWdnaW5nIG9wdGlvbiB0byBzY3JpYmJsZSBvdmVyIGRlYWQgb2JqZWN0cyB3aXRo
IDB4ZGVhZGJlZWYiKSBcCisgICAgdihib29sLCB1c2Vab21iaWVNb2RlLCBmYWxzZSwgTm9ybWFs
LCAiZGVidWdnaW5nIG9wdGlvbiB0byBzY3JpYmJsZSBvdmVyIGRlYWQgb2JqZWN0cyB3aXRoIDB4
YmFkYmVlZjAiKSBcCiAgICAgdihib29sLCB1c2VJbW1vcnRhbE9iamVjdHMsIGZhbHNlLCBOb3Jt
YWwsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIGtlZXAgYWxsIG9iamVjdHMgYWxpdmUgZm9yZXZlciIp
IFwKKyAgICB2KGJvb2wsIHN3ZWVwU3luY2hyb25vdXNseSwgZmFsc2UsIE5vcm1hbCwgImRlYnVn
Z2luZyBvcHRpb24gdG8gc3dlZXAgYWxsIGRlYWQgb2JqZWN0cyBzeW5jaHJvbm91c2x5IGF0IEdD
IGVuZCBiZWZvcmUgcmVzdW1pbmcgbXV0YXRvciIpIFwKICAgICB2KGJvb2wsIGR1bXBPYmplY3RT
dGF0aXN0aWNzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgbWF4
U2luZ2xlQWxsb2NhdGlvblNpemUsIDAsIENvbmZpZ3VyYWJsZSwgImRlYnVnZ2luZyBvcHRpb24g
dG8gbGltaXQgaW5kaXZpZHVhbCBhbGxvY2F0aW9ucyB0byBhIG1heCBzaXplICgwID0gbGltaXQg
bm90IHNldCwgTiA9IGxpbWl0IHNpemUgaW4gYnl0ZXMpIikgXAogICAgIFwK
</data>
<flag name="review"
          id="323327"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>