<?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>203867</bug_id>
          
          <creation_ts>2019-11-05 15:05:14 -0800</creation_ts>
          <short_desc>JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should fire its watchpoint as the last step.</short_desc>
          <delta_ts>2019-11-06 16:29:57 -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>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>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587562</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-05 15:05:14 -0800</bug_when>
    <thetext>JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should make all the array structures SlowPut before firing the watchpoint.  Otherwise, the concurrent JIT may think it&apos;s grabbing the slow put version of the structure, but is actually grabbing the non-SlowPut version because it beat the mutator in a race to read the structure before the mutator makes it SlowPut.

&lt;rdar://problem/56813514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587574</commentid>
    <comment_count>1</comment_count>
      <attachid>382858</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-05 16:13:09 -0800</bug_when>
    <thetext>Created attachment 382858
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587576</commentid>
    <comment_count>2</comment_count>
      <attachid>382858</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-11-05 16:15:44 -0800</bug_when>
    <thetext>Comment on attachment 382858
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587611</commentid>
    <comment_count>3</comment_count>
      <attachid>382858</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-05 17:16:57 -0800</bug_when>
    <thetext>Comment on attachment 382858
proposed patch.

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

r=me too

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should make all
&gt; +        the array structures SlowPut before firing the watchpoint.  Otherwise, the
&gt; +        concurrent JIT may think it&apos;s grabbing the slow put version of the structure, but
&gt; +        is actually grabbing the non-SlowPut version because it happened to beat the
&gt; +        mutator in a race to read the structure before the mutator makes it SlowPut.

put below &quot;Reviewed by&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587613</commentid>
    <comment_count>4</comment_count>
      <attachid>382858</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-05 17:27:46 -0800</bug_when>
    <thetext>Comment on attachment 382858
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        mutator in a race to read the structure before the mutator makes it SlowPut.
&gt; 
&gt; put below &quot;Reviewed by&quot;

Thanks for catch that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587636</commentid>
    <comment_count>5</comment_count>
      <attachid>382881</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-05 18:20:01 -0800</bug_when>
    <thetext>Created attachment 382881
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587671</commentid>
    <comment_count>6</comment_count>
      <attachid>382881</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-05 21:11:09 -0800</bug_when>
    <thetext>Comment on attachment 382881
patch for landing.

Attachment 382881 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/13217556

New failing tests:
stress/toctou-having-a-bad-time-new-array.js.dfg-eager
stress/toctou-having-a-bad-time-new-array.js.ftl-eager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587721</commentid>
    <comment_count>7</comment_count>
      <attachid>382905</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 01:30:53 -0800</bug_when>
    <thetext>Created attachment 382905
proposed patch.

I added more code to placate a DFG_ASSERT in SpeculativeJIT::compileNewArray().  We could just remove that assert, but I felt that there&apos;s some value in keeping it.  So, let&apos;s get another review to see if anyone is strongly opposed to this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587773</commentid>
    <comment_count>8</comment_count>
      <attachid>382905</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-06 07:41:10 -0800</bug_when>
    <thetext>Comment on attachment 382905
proposed patch.

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:7987
&gt; +        sleep(Seconds::fromMicroseconds(100));

This is crazy. We can’t have code in the compiler like this loop. We should restructure the code to not have this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587815</commentid>
    <comment_count>9</comment_count>
      <attachid>382933</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 09:55:33 -0800</bug_when>
    <thetext>Created attachment 382933
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587852</commentid>
    <comment_count>10</comment_count>
      <attachid>382933</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-06 11:53:38 -0800</bug_when>
    <thetext>Comment on attachment 382933
proposed patch.

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:8004
&gt; +    if (!globalObject-&gt;hasStartedTransitioningToHavingABadTime() &amp;&amp; !isHavingABadTime &amp;&amp; !hasAnyArrayStorage(node-&gt;indexingType())) {

this is super localized to this one place (there is probably other code you&apos;re not catching). It&apos;s also not really needed. I&apos;m not a fan of adding more code to appease an assertion like this with a huge comment. It seems better to just remove the assertion if that&apos;s valid. (Also note: the FTL has no such assertion.) It&apos;s not worth bending over backwards for an assertion we know is ultimately wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587975</commentid>
    <comment_count>11</comment_count>
      <attachid>382977</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 16:13:28 -0800</bug_when>
    <thetext>Created attachment 382977
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587977</commentid>
    <comment_count>12</comment_count>
      <attachid>382977</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-06 16:15:21 -0800</bug_when>
    <thetext>Comment on attachment 382977
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:1584
&gt; +    // Make sure that all allocations or indexed storage transitions that are inlining
&gt; +    // the assumption that it&apos;s safe to transition to a non-SlowPut array storage don&apos;t
&gt; +    // do so anymore.

maybe also worth a note on the store ordering here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587982</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 16:28:15 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to Saam Barati from comment #12)
&gt; Comment on attachment 382977 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382977&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:1584
&gt; &gt; +    // Make sure that all allocations or indexed storage transitions that are inlining
&gt; &gt; +    // the assumption that it&apos;s safe to transition to a non-SlowPut array storage don&apos;t
&gt; &gt; +    // do so anymore.
&gt; 
&gt; maybe also worth a note on the store ordering here?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587986</commentid>
    <comment_count>14</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 16:29:57 -0800</bug_when>
    <thetext>Landed in r252160: &lt;http://trac.webkit.org/r252160&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382858</attachid>
            <date>2019-11-05 16:13:09 -0800</date>
            <delta_ts>2019-11-05 18:20:01 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203867.patch</filename>
            <type>text/plain</type>
            <size>4324</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIxMDkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBs
YXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzOiBBZGRlZC4KKwog
MjAxOS0xMS0wNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBE
b24ndCB1c2UgbWVtbW92ZS9tZW1jcHkvbWVtc2V0IGZvciBtZW1vcnkgdGhhdCBjYW4gYmUgc2Nh
bm5lZCBjb25jdXJyZW50bHkKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xv
bmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1h
LWJhZC10aW1lLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS1qaXRQb2xpY3lTY2Fs
ZT0wIikKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJl
KQorLy9AIHNsb3cKKworZm9yIChsZXQgaiA9IDA7IGogPCA1MDA7IGorKykgeworICAgIHJ1blN0
cmluZyhgCisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICAidXNlIHN0cmlj
dCI7CisgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOworICAgICAgICB9CisgICAgICAgIG5v
SW5saW5lKHRlc3QpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAg
ICAgICAgICB0ZXN0KCk7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJv
dG90eXBlLCAwLCB7fSk7CisgICAgICAgIHRlc3QoKTsKKyAgICBgKTsKK30KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUxOTExKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE5LTExLTA1
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBKU0dsb2JhbE9iamVj
dDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3Vs
ZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBsYXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2lu
dEFuZE1ha2VBbGxBcnJheVN0cnVjdHVyZXNTbG93UHV0KCkgc2hvdWxkIG1ha2UgYWxsCisgICAg
ICAgIHRoZSBhcnJheSBzdHJ1Y3R1cmVzIFNsb3dQdXQgYmVmb3JlIGZpcmluZyB0aGUgd2F0Y2hw
b2ludC4gIE90aGVyd2lzZSwgdGhlCisgICAgICAgIGNvbmN1cnJlbnQgSklUIG1heSB0aGluayBp
dCdzIGdyYWJiaW5nIHRoZSBzbG93IHB1dCB2ZXJzaW9uIG9mIHRoZSBzdHJ1Y3R1cmUsIGJ1dAor
ICAgICAgICBpcyBhY3R1YWxseSBncmFiYmluZyB0aGUgbm9uLVNsb3dQdXQgdmVyc2lvbiBiZWNh
dXNlIGl0IGhhcHBlbmVkIHRvIGJlYXQgdGhlCisgICAgICAgIG11dGF0b3IgaW4gYSByYWNlIHRv
IHJlYWQgdGhlIHN0cnVjdHVyZSBiZWZvcmUgdGhlIG11dGF0b3IgbWFrZXMgaXQgU2xvd1B1dC4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Zmly
ZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlTdHJ1Y3R1cmVzU2xvd1B1dCk6CisKIDIwMTktMTAt
MzEgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEdU
SyBidWlsZCBhZnRlciByMjUxODg2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAyNTE5MTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE1MTYsMTIgKzE1MTYsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2lu
dEFuZE1hCiAgICAgaWYgKGlzSGF2aW5nQUJhZFRpbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxsIGFsbG9jYXRpb25zIG9yIGluZGV4ZWQgc3RvcmFnZSB0
cmFuc2l0aW9ucyB0aGF0IGFyZSBpbmxpbmluZwotICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQg
aXQncyBzYWZlIHRvIHRyYW5zaXRpb24gdG8gYSBub24tU2xvd1B1dCBhcnJheSBzdG9yYWdlIGRv
bid0Ci0gICAgLy8gZG8gc28gYW55bW9yZS4KLSAgICBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2lu
dC0+ZmlyZUFsbCh2bSwgIkhhdmluZyBhIGJhZCB0aW1lIik7Ci0gICAgQVNTRVJUKGlzSGF2aW5n
QUJhZFRpbWUoKSk7IC8vIFRoZSB3YXRjaHBvaW50IGlzIHdoYXQgdGVsbHMgdXMgdGhhdCB3ZSdy
ZSBoYXZpbmcgYSBiYWQgdGltZS4KLSAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgSlNB
cnJheSBhbGxvY2F0aW9ucyB0aGF0IGxvYWQgdGhlIGFwcHJvcHJpYXRlIHN0cnVjdHVyZSBmcm9t
CiAgICAgLy8gdGhpcyBvYmplY3Qgbm93IGxvYWQgYSBzdHJ1Y3R1cmUgdGhhdCB1c2VzIFNsb3dQ
dXQuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE51bWJlck9mQXJyYXlJbmRleGluZ01v
ZGVzOyArK2kpCkBAIC0xNTM1LDYgKzE1MjksMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6Zmly
ZVdhdGNocG9pbnRBbmRNYQogICAgIG1fcmVnRXhwTWF0Y2hlc0FycmF5V2l0aEdyb3Vwc1N0cnVj
dHVyZS5zZXQodm0sIHRoaXMsIHNsb3dQdXRTdHJ1Y3R1cmUpOwogICAgIHNsb3dQdXRTdHJ1Y3R1
cmUgPSBDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVNsb3dQdXRTdHJ1Y3R1cmUodm0sIHRoaXMsIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKTsKICAgICBtX2Nsb25lZEFyZ3VtZW50c1N0cnVjdHVyZS5z
ZXQodm0sIHRoaXMsIHNsb3dQdXRTdHJ1Y3R1cmUpOworCisgICAgLy8gTWFrZSBzdXJlIHRoYXQg
YWxsIGFsbG9jYXRpb25zIG9yIGluZGV4ZWQgc3RvcmFnZSB0cmFuc2l0aW9ucyB0aGF0IGFyZSBp
bmxpbmluZworICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQncyBzYWZlIHRvIHRyYW5zaXRp
b24gdG8gYSBub24tU2xvd1B1dCBhcnJheSBzdG9yYWdlIGRvbid0CisgICAgLy8gZG8gc28gYW55
bW9yZS4KKyAgICBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC0+ZmlyZUFsbCh2bSwgIkhhdmlu
ZyBhIGJhZCB0aW1lIik7CisgICAgQVNTRVJUKGlzSGF2aW5nQUJhZFRpbWUoKSk7IC8vIFRoZSB3
YXRjaHBvaW50IGlzIHdoYXQgdGVsbHMgdXMgdGhhdCB3ZSdyZSBoYXZpbmcgYSBiYWQgdGltZS4K
IH07CiAKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCg==
</data>
<flag name="review"
          id="398633"
          type_id="1"
          status="+"
          setter="rmorisset"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382881</attachid>
            <date>2019-11-05 18:20:01 -0800</date>
            <delta_ts>2019-11-06 01:30:53 -0800</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-203867.patch</filename>
            <type>text/plain</type>
            <size>4378</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIxMTIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBs
YXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvYmluIE1vcmlzc2V0IGFuZCBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIHN0
cmVzcy9yYWN5LXNsb3ctcHV0LWNsb25lZC1hcmd1bWVudHMtd2hlbi1oYXZpbmctYS1iYWQtdGlt
ZS5qczogQWRkZWQuCisKIDIwMTktMTEtMDQgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgRG9uJ3QgdXNlIG1lbW1vdmUvbWVtY3B5L21lbXNldCBmb3IgbWVtb3J5
IHRoYXQgY2FuIGJlIHNjYW5uZWQgY29uY3VycmVudGx5CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9y
YWN5LXNsb3ctcHV0LWNsb25lZC1hcmd1bWVudHMtd2hlbi1oYXZpbmctYS1iYWQtdGltZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yYWN5LXNsb3ctcHV0LWNsb25lZC1hcmd1bWVu
dHMtd2hlbi1oYXZpbmctYS1iYWQtdGltZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0
cmVzcy9yYWN5LXNsb3ctcHV0LWNsb25lZC1hcmd1bWVudHMtd2hlbi1oYXZpbmctYS1iYWQtdGlt
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACisvL0AgcmVxdWlyZU9wdGlvbnMo
Ii0taml0UG9saWN5U2NhbGU9MCIpCisvL0Agc2tpcCBpZiBbImFybSIsICJtaXBzIl0uaW5jbHVk
ZT8oJGFyY2hpdGVjdHVyZSkKKy8vQCBzbG93IQorCitmb3IgKGxldCBqID0gMDsgaiA8IDUwMDsg
aisrKSB7CisgICAgcnVuU3RyaW5nKGAKKyAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAg
ICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgbm9JbmxpbmUodGVzdCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTA7IGkrKykKKyAgICAgICAgICAgIHRlc3QoKTsKKyAgICAgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KE9iamVjdC5wcm90b3R5cGUsIDAsIHt9KTsKKyAgICAgICAgdGVzdCgpOworICAgIGAp
OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTIxMTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTktMTEtMDUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2ludEFuZE1ha2VBbGxBcnJheVN0cnVjdHVy
ZXNTbG93UHV0KCkgc2hvdWxkIGZpcmUgaXRzIHdhdGNocG9pbnQgYXMgdGhlIGxhc3Qgc3RlcC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzg2Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY4MTM1MTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Um9iaW4gTW9yaXNzZXQgYW5kIFNhYW0gQmFyYXRpLgorCisgICAgICAgIEpTR2xvYmFsT2JqZWN0
OjpmaXJlV2F0Y2hwb2ludEFuZE1ha2VBbGxBcnJheVN0cnVjdHVyZXNTbG93UHV0KCkgc2hvdWxk
IG1ha2UgYWxsCisgICAgICAgIHRoZSBhcnJheSBzdHJ1Y3R1cmVzIFNsb3dQdXQgYmVmb3JlIGZp
cmluZyB0aGUgd2F0Y2hwb2ludC4gIE90aGVyd2lzZSwgdGhlCisgICAgICAgIGNvbmN1cnJlbnQg
SklUIG1heSB0aGluayBpdCdzIGdyYWJiaW5nIHRoZSBzbG93IHB1dCB2ZXJzaW9uIG9mIHRoZSBz
dHJ1Y3R1cmUsIGJ1dAorICAgICAgICBpcyBhY3R1YWxseSBncmFiYmluZyB0aGUgbm9uLVNsb3dQ
dXQgdmVyc2lvbiBiZWNhdXNlIGl0IGhhcHBlbmVkIHRvIGJlYXQgdGhlCisgICAgICAgIG11dGF0
b3IgaW4gYSByYWNlIHRvIHJlYWQgdGhlIHN0cnVjdHVyZSBiZWZvcmUgdGhlIG11dGF0b3IgbWFr
ZXMgaXQgU2xvd1B1dC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCk6CisKIDIwMTktMTEtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFn
YWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkFzc2VtYmx5XSBBbGxvdyB0aWVyaW5nIHVw
IGZyb20gTExJbnQgdG8gQkJRCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAyNTIxMTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1NjUsMTIgKzE1NjUsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2ludEFu
ZE1hCiAgICAgaWYgKGlzSGF2aW5nQUJhZFRpbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Ly8gTWFrZSBzdXJlIHRoYXQgYWxsIGFsbG9jYXRpb25zIG9yIGluZGV4ZWQgc3RvcmFnZSB0cmFu
c2l0aW9ucyB0aGF0IGFyZSBpbmxpbmluZwotICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQn
cyBzYWZlIHRvIHRyYW5zaXRpb24gdG8gYSBub24tU2xvd1B1dCBhcnJheSBzdG9yYWdlIGRvbid0
Ci0gICAgLy8gZG8gc28gYW55bW9yZS4KLSAgICBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC0+
ZmlyZUFsbCh2bSwgIkhhdmluZyBhIGJhZCB0aW1lIik7Ci0gICAgQVNTRVJUKGlzSGF2aW5nQUJh
ZFRpbWUoKSk7IC8vIFRoZSB3YXRjaHBvaW50IGlzIHdoYXQgdGVsbHMgdXMgdGhhdCB3ZSdyZSBo
YXZpbmcgYSBiYWQgdGltZS4KLSAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgSlNBcnJh
eSBhbGxvY2F0aW9ucyB0aGF0IGxvYWQgdGhlIGFwcHJvcHJpYXRlIHN0cnVjdHVyZSBmcm9tCiAg
ICAgLy8gdGhpcyBvYmplY3Qgbm93IGxvYWQgYSBzdHJ1Y3R1cmUgdGhhdCB1c2VzIFNsb3dQdXQu
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE51bWJlck9mQXJyYXlJbmRleGluZ01vZGVz
OyArK2kpCkBAIC0xNTg0LDYgKzE1NzgsMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6ZmlyZVdh
dGNocG9pbnRBbmRNYQogICAgIG1fcmVnRXhwTWF0Y2hlc0FycmF5V2l0aEdyb3Vwc1N0cnVjdHVy
ZS5zZXQodm0sIHRoaXMsIHNsb3dQdXRTdHJ1Y3R1cmUpOwogICAgIHNsb3dQdXRTdHJ1Y3R1cmUg
PSBDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVNsb3dQdXRTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpKTsKICAgICBtX2Nsb25lZEFyZ3VtZW50c1N0cnVjdHVyZS5zZXQo
dm0sIHRoaXMsIHNsb3dQdXRTdHJ1Y3R1cmUpOworCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxs
IGFsbG9jYXRpb25zIG9yIGluZGV4ZWQgc3RvcmFnZSB0cmFuc2l0aW9ucyB0aGF0IGFyZSBpbmxp
bmluZworICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQncyBzYWZlIHRvIHRyYW5zaXRpb24g
dG8gYSBub24tU2xvd1B1dCBhcnJheSBzdG9yYWdlIGRvbid0CisgICAgLy8gZG8gc28gYW55bW9y
ZS4KKyAgICBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC0+ZmlyZUFsbCh2bSwgIkhhdmluZyBh
IGJhZCB0aW1lIik7CisgICAgQVNTRVJUKGlzSGF2aW5nQUJhZFRpbWUoKSk7IC8vIFRoZSB3YXRj
aHBvaW50IGlzIHdoYXQgdGVsbHMgdXMgdGhhdCB3ZSdyZSBoYXZpbmcgYSBiYWQgdGltZS4KIH07
CiAKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCg==
</data>
<flag name="commit-queue"
          id="398661"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382905</attachid>
            <date>2019-11-06 01:30:53 -0800</date>
            <delta_ts>2019-11-06 09:55:33 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203867.patch</filename>
            <type>text/plain</type>
            <size>10550</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIxMjcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBs
YXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzOiBBZGRlZC4KKwog
MjAxOS0xMS0wNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBE
b24ndCB1c2UgbWVtbW92ZS9tZW1jcHkvbWVtc2V0IGZvciBtZW1vcnkgdGhhdCBjYW4gYmUgc2Nh
bm5lZCBjb25jdXJyZW50bHkKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xv
bmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1h
LWJhZC10aW1lLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS1qaXRQb2xpY3lTY2Fs
ZT0wIikKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJl
KQorLy9AIHNsb3chCisKK2ZvciAobGV0IGogPSAwOyBqIDwgNTAwOyBqKyspIHsKKyAgICBydW5T
dHJpbmcoYAorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAgICAgInVzZSBzdHJp
Y3QiOworICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKKyAgICAgICAgfQorICAgICAgICBu
b0lubGluZSh0ZXN0KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAg
ICAgICAgICAgdGVzdCgpOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnBy
b3RvdHlwZSwgMCwge30pOworICAgICAgICB0ZXN0KCk7CisgICAgYCk7Cit9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjEyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAxOS0xMS0w
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3Q6OmZpcmVXYXRjaHBvaW50QW5kTWFrZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQoKSBzaG91
bGQgZmlyZSBpdHMgd2F0Y2hwb2ludCBhcyB0aGUgbGFzdCBzdGVwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODY3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NjgxMzUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlT
dHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBtYWtlIGFsbAorICAgICAgICB0aGUgYXJyYXkgc3Ry
dWN0dXJlcyBTbG93UHV0IGJlZm9yZSBmaXJpbmcgdGhlIHdhdGNocG9pbnQuICBPdGhlcndpc2Us
IHRoZQorICAgICAgICBjb25jdXJyZW50IEpJVCBtYXkgdGhpbmsgaXQncyBncmFiYmluZyB0aGUg
c2xvdyBwdXQgdmVyc2lvbiBvZiB0aGUgc3RydWN0dXJlLCBidXQKKyAgICAgICAgaXMgYWN0dWFs
bHkgZ3JhYmJpbmcgdGhlIG5vbi1TbG93UHV0IHZlcnNpb24gYmVjYXVzZSBpdCBoYXBwZW5lZCB0
byBiZWF0IHRoZQorICAgICAgICBtdXRhdG9yIGluIGEgcmFjZSB0byByZWFkIHRoZSBzdHJ1Y3R1
cmUgYmVmb3JlIHRoZSBtdXRhdG9yIG1ha2VzIGl0IFNsb3dQdXQuCisKKyAgICAgICAgQWxzbyBp
bXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nOgorICAgICAgICAxLiBBZGRlZCBhIG5vdGlvbiBvZiBo
YXNTdGFydGVkVHJhbnNpdGlvbmluZ1RvSGF2aW5nQUJhZFRpbWUgdG8gSlNHbG9iYWxPYmplY3Qu
CisgICAgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGdldCBhIGNvbnNpc3RlbnQgYXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uCisgICAgICAgICAgIGFuZCBpc0hh
dmluZ0FCYWRUaW1lIHN0YXR1cyB3aXRob3V0IGxvY2tpbmcuICBXZSB1c2UgdGhpcyBpbgorICAg
ICAgICAgICBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KCkgaW4gb3JkZXIgdG8gbWFr
ZSB0aGUgREZHX0FTU0VSVCB0aGVyZQorICAgICAgICAgICBwb3NzaWJsZS4KKworICAgICAgICAy
LiBNYWtlIG1vcmUgZmllbGRzIGluIEpTR2xvYmFsT2JqZWN0IHByb3RlY3RlZCByYXRoZXIgdGhh
biBsZWF2aW5nIGFsbCBvZiB0aGVtCisgICAgICAgICAgIHB1YmxpYy4KKworICAgICAgICAzLiBN
b3ZlZCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHRvIHNvbWUgcGFkZGluZyBzcGFjZSBhbmQg
cmVkdWNlIHRoZSBzaXplIG9mCisgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0IGEgYml0LiAgVGhl
IGRpZmZlcmVuY2UgaXMgbm90IHNpZ25pZmljYW50LCBidXQgc2luY2Ugd2UncmUKKyAgICAgICAg
ICAgYWxyZWFkeSB0b3VjaGluZyB0aGUgZmllbGRzLCB3ZSBtaWdodCBhcyB3ZWxsIG1ha2UgdGhp
cyBjaGFuZ2UuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlTdHJ1Y3R1cmVzU2xvd1B1dCk6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aGFzU3RhcnRlZFRyYW5zaXRpb25pbmdUb0hhdmluZ0FCYWRUaW1lIGNvbnN0KToKKwog
MjAxOS0xMS0wNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OjpSdW5Mb29wIHNob3VsZCBub3QgZGVwZW5kIG9uIGlzTWFpblRocmVhZCgpIGlkaW9tLgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHJldmlzaW9uIDI1MjEyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTc3LDggKzc5NzcsMTcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNwcmVhZChOb2RlKgogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZU5ld0FycmF5KE5vZGUqIG5vZGUpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYyk7Ci0gICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBzdHJ1Y3R1cmUgPSBtX2ppdC5ncmFwaCgp
LnJlZ2lzdGVyU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGlu
Z1R5cGVEdXJpbmdBbGxvY2F0aW9uKG5vZGUtPmluZGV4aW5nVHlwZSgpKSk7Ci0gICAgaWYgKCFn
bG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSAmJiAhaGFzQW55QXJyYXlTdG9yYWdlKG5v
ZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmVGb3JJ
bmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uOworICAgIGJvb2wgaXNIYXZpbmdBQmFkVGltZTsK
KyAgICBmb3IgKDs7KSB7CisgICAgICAgIGlzSGF2aW5nQUJhZFRpbWUgPSBnbG9iYWxPYmplY3Qt
PmlzSGF2aW5nQUJhZFRpbWUoKTsKKyAgICAgICAgYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5
cGVEdXJpbmdBbGxvY2F0aW9uID0gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24obm9kZS0+aW5kZXhpbmdUeXBlKCkpOworICAgICAgICBp
ZiAoaXNIYXZpbmdBQmFkVGltZSA9PSBnbG9iYWxPYmplY3QtPmhhc1N0YXJ0ZWRUcmFuc2l0aW9u
aW5nVG9IYXZpbmdBQmFkVGltZSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNsZWVw
KFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoMTAwKSk7CisgICAgfQorICAgIFJlZ2lzdGVyZWRT
dHJ1Y3R1cmUgc3RydWN0dXJlID0gbV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVjdHVyZShhcnJh
eVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24pOworICAgIGlmICghaXNI
YXZpbmdBQmFkVGltZSAmJiAhaGFzQW55QXJyYXlTdG9yYWdlKG5vZGUtPmluZGV4aW5nVHlwZSgp
KSkgewogICAgICAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIHN0cnVjdHVyZS0+
aW5kZXhpbmdUeXBlKCkgPT0gbm9kZS0+aW5kZXhpbmdUeXBlKCksIHN0cnVjdHVyZS0+aW5kZXhp
bmdUeXBlKCksIG5vZGUtPmluZGV4aW5nVHlwZSgpKTsKICAgICAgICAgQVNTRVJUKAogICAgICAg
ICAgICAgaGFzVW5kZWNpZGVkKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCkBAIC04MTIyLDcg
KzgxMzEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXkoTm9kCiAgICAg
R1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogCiAgICAgY2FsbE9wZXJhdGlvbigK
LSAgICAgICAgb3BlcmF0aW9uTmV3QXJyYXksIHJlc3VsdC5ncHIoKSwgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgZ2xvYmFsT2JqZWN0KSwgbV9qaXQuZ3JhcGgoKS5yZWdpc3Rl
clN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVy
aW5nQWxsb2NhdGlvbihub2RlLT5pbmRleGluZ1R5cGUoKSkpLAorICAgICAgICBvcGVyYXRpb25O
ZXdBcnJheSwgcmVzdWx0LmdwcigpLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBo
LCBnbG9iYWxPYmplY3QpLCBtX2ppdC5ncmFwaCgpLnJlZ2lzdGVyU3RydWN0dXJlKGFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbiksCiAgICAgICAgIHN0YXRpY19j
YXN0PHZvaWQqPihidWZmZXIpLCBzaXplX3Qobm9kZS0+bnVtQ2hpbGRyZW4oKSkpOwogICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDI1MjEyNykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU2NSwxMiArMTU2NSw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmZpcmVXYXRjaHBv
aW50QW5kTWEKICAgICBpZiAoaXNIYXZpbmdBQmFkVGltZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgYWxsb2NhdGlvbnMgb3IgaW5kZXhlZCBzdG9yYWdl
IHRyYW5zaXRpb25zIHRoYXQgYXJlIGlubGluaW5nCi0gICAgLy8gdGhlIGFzc3VtcHRpb24gdGhh
dCBpdCdzIHNhZmUgdG8gdHJhbnNpdGlvbiB0byBhIG5vbi1TbG93UHV0IGFycmF5IHN0b3JhZ2Ug
ZG9uJ3QKLSAgICAvLyBkbyBzbyBhbnltb3JlLgotICAgIG1faGF2aW5nQUJhZFRpbWVXYXRjaHBv
aW50LT5maXJlQWxsKHZtLCAiSGF2aW5nIGEgYmFkIHRpbWUiKTsKLSAgICBBU1NFUlQoaXNIYXZp
bmdBQmFkVGltZSgpKTsgLy8gVGhlIHdhdGNocG9pbnQgaXMgd2hhdCB0ZWxscyB1cyB0aGF0IHdl
J3JlIGhhdmluZyBhIGJhZCB0aW1lLgotICAgIAorICAgIG1faGFzU3RhcnRlZFRyYW5zaXRpb25p
bmdUb0hhdmluZ0FCYWRUaW1lID0gdHJ1ZTsKKyAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOwor
CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxsIEpTQXJyYXkgYWxsb2NhdGlvbnMgdGhhdCBsb2Fk
IHRoZSBhcHByb3ByaWF0ZSBzdHJ1Y3R1cmUgZnJvbQogICAgIC8vIHRoaXMgb2JqZWN0IG5vdyBs
b2FkIGEgc3RydWN0dXJlIHRoYXQgdXNlcyBTbG93UHV0LgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBOdW1iZXJPZkFycmF5SW5kZXhpbmdNb2RlczsgKytpKQpAQCAtMTU4NCw2ICsxNTgx
LDEyIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmZpcmVXYXRjaHBvaW50QW5kTWEKICAgICBtX3Jl
Z0V4cE1hdGNoZXNBcnJheVdpdGhHcm91cHNTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzbG93UHV0
U3RydWN0dXJlKTsKICAgICBzbG93UHV0U3RydWN0dXJlID0gQ2xvbmVkQXJndW1lbnRzOjpjcmVh
dGVTbG93UHV0U3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7CiAg
ICAgbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzbG93UHV0U3RydWN0
dXJlKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGFsbCBhbGxvY2F0aW9ucyBvciBpbmRleGVk
IHN0b3JhZ2UgdHJhbnNpdGlvbnMgdGhhdCBhcmUgaW5saW5pbmcKKyAgICAvLyB0aGUgYXNzdW1w
dGlvbiB0aGF0IGl0J3Mgc2FmZSB0byB0cmFuc2l0aW9uIHRvIGEgbm9uLVNsb3dQdXQgYXJyYXkg
c3RvcmFnZSBkb24ndAorICAgIC8vIGRvIHNvIGFueW1vcmUuCisgICAgbV9oYXZpbmdBQmFkVGlt
ZVdhdGNocG9pbnQtPmZpcmVBbGwodm0sICJIYXZpbmcgYSBiYWQgdGltZSIpOworICAgIEFTU0VS
VChpc0hhdmluZ0FCYWRUaW1lKCkpOyAvLyBUaGUgd2F0Y2hwb2ludCBpcyB3aGF0IHRlbGxzIHVz
IHRoYXQgd2UncmUgaGF2aW5nIGEgYmFkIHRpbWUuCiB9OwogCiB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpoYXZlQUJhZFRpbWUoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAyNTIxMjcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NDksNiArNDQ5LDcgQEAgcHVibGljOgogICAgIFdlYWtSYW5kb20gbV93ZWFrUmFuZG9tOwogICAg
IFJlZ0V4cEdsb2JhbERhdGEgbV9yZWdFeHBHbG9iYWxEYXRhOwogCitwdWJsaWM6CiAgICAgSlND
YWxsZWUqIHN0YWNrT3ZlcmZsb3dGcmFtZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tP
dmVyZmxvd0ZyYW1lQ2FsbGVlLmdldCgpOyB9CiAKICAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBh
cnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KCkgeyByZXR1cm4gbV9hcnJheUl0ZXJh
dG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0OyB9CkBAIC00NjQsNiArNDY1LDggQEAgcHVibGljOgog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChWTTo6Y2FuVXNlSklUKCkpOwogICAgICAgICByZXR1cm4g
bV9udW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQ7CiAgICAgfQorCitwcm90ZWN0ZWQ6CiAgICAg
Ly8gSWYgdGhpcyBoYXNuJ3QgYmVlbiBpbnZhbGlkYXRlZCwgaXQgbWVhbnMgdGhlIGFycmF5IGl0
ZXJhdG9yIHByb3RvY29sCiAgICAgLy8gaXMgbm90IG9ic2VydmFibGUgdG8gdXNlciBjb2RlIHll
dC4KICAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hw
b2ludFNldDsKQEAgLTQ5MCw2ICs0OTMsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRT
ZXQ+PiBtX3NldFByb3RvdHlwZUFkZFdhdGNocG9pbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9i
amVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+
PiBtX251bWJlclByb3RvdHlwZVRvU3RyaW5nV2F0Y2hwb2ludDsKIAorcHVibGljOgogICAgIGJv
b2wgaXNBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgp
OwogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2Vy
dmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmRO
b25PYnNlcnZhYmxlKCk7CkBAIC00OTcsMTggKzUwMSwyMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c01hcFByb3RvdHlwZVNldEZhc3RBbmROb25PYnNlcnZhYmxlKCk7CiAgICAgYm9vbCBpc1NldFBy
b3RvdHlwZUFkZEZhc3RBbmROb25PYnNlcnZhYmxlKCk7CiAKK3Byb3RlY3RlZDoKICNpZiBFTkFC
TEUoREZHX0pJVCkKICAgICB1c2luZyBSZWZlcmVuY2VkR2xvYmFsUHJvcGVydHlXYXRjaHBvaW50
U2V0cyA9IEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiwgUmVmPFdhdGNocG9pbnRT
ZXQ+LCBJZGVudGlmaWVyUmVwSGFzaD47CiAgICAgUmVmZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0
Y2hwb2ludFNldHMgbV9yZWZlcmVuY2VkR2xvYmFsUHJvcGVydHlXYXRjaHBvaW50U2V0czsKICAg
ICBDb25jdXJyZW50SlNMb2NrIG1fcmVmZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNl
dHNMb2NrOwogI2VuZGlmCiAKK3ByaXZhdGU6CisgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzIHsgZmFsc2UgfTsKK3Byb3RlY3RlZDoKICAgICBib29sIG1fZXZhbEVuYWJsZWQgeyB0
cnVlIH07CiAgICAgYm9vbCBtX3dlYkFzc2VtYmx5RW5hYmxlZCB7IHRydWUgfTsKICAgICB1bnNp
Z25lZCBtX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2ggeyAxIH07CiAgICAgU3RyaW5nIG1fZXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgIFN0cmluZyBtX3dlYkFzc2VtYmx5RGlzYWJsZWRF
cnJvck1lc3NhZ2U7CiAgICAgUnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOworICAgIGJvb2wg
bV9oYXNTdGFydGVkVHJhbnNpdGlvbmluZ1RvSGF2aW5nQUJhZFRpbWUgeyBmYWxzZSB9OwogICAg
IENvbnNvbGVDbGllbnQqIG1fY29uc29sZUNsaWVudCB7IG51bGxwdHIgfTsKICAgICBPcHRpb25h
bDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGltaXQ7CiAKQEAgLTkwOSw2ICs5MTgsNyBAQCBwdWJs
aWM6CiAgICAgV2F0Y2hwb2ludFNldCogaGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkgeyByZXR1
cm4gbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQuZ2V0KCk7IH0KICAgICBXYXRjaHBvaW50U2V0
KiB2YXJJbmplY3Rpb25XYXRjaHBvaW50KCkgeyByZXR1cm4gbV92YXJJbmplY3Rpb25XYXRjaHBv
aW50LmdldCgpOyB9CiAgICAgICAgIAorICAgIGJvb2wgaGFzU3RhcnRlZFRyYW5zaXRpb25pbmdU
b0hhdmluZ0FCYWRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdGFydGVkVHJhbnNpdGlvbmlu
Z1RvSGF2aW5nQUJhZFRpbWU7IH0KICAgICBib29sIGlzSGF2aW5nQUJhZFRpbWUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1faGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50LT5oYXNCZWVu
SW52YWxpZGF0ZWQoKTsKQEAgLTEwNDUsNyArMTA1NSw2IEBAIHByaXZhdGU6CiAKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjbGVhclJhcmVEYXRhKEpTQ2VsbCopOwogCi0gICAg
Ym9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2UgfTsKICNpZiBKU0NfT0JKQ19B
UElfRU5BQkxFRAogICAgIFJldGFpblB0cjxKU1dyYXBwZXJNYXA+IG1fd3JhcHBlck1hcDsKICNl
bmRpZgo=
</data>
<flag name="review"
          id="398672"
          type_id="1"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382933</attachid>
            <date>2019-11-06 09:55:33 -0800</date>
            <delta_ts>2019-11-06 16:13:28 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203867.patch</filename>
            <type>text/plain</type>
            <size>10915</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIxNDApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBs
YXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzOiBBZGRlZC4KKwog
MjAxOS0xMS0wNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBE
b24ndCB1c2UgbWVtbW92ZS9tZW1jcHkvbWVtc2V0IGZvciBtZW1vcnkgdGhhdCBjYW4gYmUgc2Nh
bm5lZCBjb25jdXJyZW50bHkKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xv
bmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1h
LWJhZC10aW1lLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS1qaXRQb2xpY3lTY2Fs
ZT0wIikKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJl
KQorLy9AIHNsb3chCisKK2ZvciAobGV0IGogPSAwOyBqIDwgNTAwOyBqKyspIHsKKyAgICBydW5T
dHJpbmcoYAorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAgICAgInVzZSBzdHJp
Y3QiOworICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKKyAgICAgICAgfQorICAgICAgICBu
b0lubGluZSh0ZXN0KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAg
ICAgICAgICAgdGVzdCgpOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnBy
b3RvdHlwZSwgMCwge30pOworICAgICAgICB0ZXN0KCk7CisgICAgYCk7Cit9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjE0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAxOS0xMS0w
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3Q6OmZpcmVXYXRjaHBvaW50QW5kTWFrZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQoKSBzaG91
bGQgZmlyZSBpdHMgd2F0Y2hwb2ludCBhcyB0aGUgbGFzdCBzdGVwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODY3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NjgxMzUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlT
dHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBtYWtlIGFsbAorICAgICAgICB0aGUgYXJyYXkgc3Ry
dWN0dXJlcyBTbG93UHV0IGJlZm9yZSBmaXJpbmcgdGhlIHdhdGNocG9pbnQuICBPdGhlcndpc2Us
IHRoZQorICAgICAgICBjb25jdXJyZW50IEpJVCBtYXkgdGhpbmsgaXQncyBncmFiYmluZyB0aGUg
c2xvdyBwdXQgdmVyc2lvbiBvZiB0aGUgc3RydWN0dXJlLCBidXQKKyAgICAgICAgaXMgYWN0dWFs
bHkgZ3JhYmJpbmcgdGhlIG5vbi1TbG93UHV0IHZlcnNpb24gYmVjYXVzZSBpdCBoYXBwZW5lZCB0
byBiZWF0IHRoZQorICAgICAgICBtdXRhdG9yIGluIGEgcmFjZSB0byByZWFkIHRoZSBzdHJ1Y3R1
cmUgYmVmb3JlIHRoZSBtdXRhdG9yIG1ha2VzIGl0IFNsb3dQdXQuCisKKyAgICAgICAgQWxzbyBp
bXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nOgorICAgICAgICAxLiBBZGRlZCBhIG5vdGlvbiBvZiBo
YXNTdGFydGVkVHJhbnNpdGlvbmluZ1RvSGF2aW5nQUJhZFRpbWUgdG8gSlNHbG9iYWxPYmplY3Qu
CisgICAgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIHRlc3QgaWYgd2UgY2FuIHRydXN0IHRoZSBh
cnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24KKyAgICAgICAgICAg
dmFsdWUgd2UgcmVhZCBhZnRlciBjaGVja2luZyBmb3IgIWlzSGF2aW5nQUJhZFRpbWUoKS4gIFdl
IHVzZSB0aGlzIGluCisgICAgICAgICAgIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXko
KSBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgREZHX0FTU0VSVCB0aGVyZQorICAgICAgICAg
ICBjYW5ub3QgZmFpbCB3aXRoIGEgZmFsc2UgcG9zaXRpdmUuCisKKyAgICAgICAgMi4gTWFrZSBt
b3JlIGZpZWxkcyBpbiBKU0dsb2JhbE9iamVjdCBwcm90ZWN0ZWQgcmF0aGVyIHRoYW4gbGVhdmlu
ZyBhbGwgb2YgdGhlbQorICAgICAgICAgICBwdWJsaWMuCisKKyAgICAgICAgMy4gTW92ZWQgbV9u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyB0byBzb21lIHBhZGRpbmcgc3BhY2UgYW5kIHJlZHVjZSB0
aGUgc2l6ZSBvZgorICAgICAgICAgICBKU0dsb2JhbE9iamVjdCBhIGJpdC4gIFRoZSBkaWZmZXJl
bmNlIGlzIG5vdCBzaWduaWZpY2FudCwgYnV0IHNpbmNlIHdlJ3JlCisgICAgICAgICAgIGFscmVh
ZHkgdG91Y2hpbmcgdGhlIGZpZWxkcywgd2UgbWlnaHQgYXMgd2VsbCBtYWtlIHRoaXMgY2hhbmdl
LgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpcmVX
YXRjaHBvaW50QW5kTWFrZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Omhh
c1N0YXJ0ZWRUcmFuc2l0aW9uaW5nVG9IYXZpbmdBQmFkVGltZSBjb25zdCk6CisKIDIwMTktMTEt
MDUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFdURjo6UnVuTG9v
cCBzaG91bGQgbm90IGRlcGVuZCBvbiBpc01haW5UaHJlYWQoKSBpZGlvbS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lv
biAyNTIxNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzk3Nyw4ICs3OTc3LDMxIEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTcHJlYWQoTm9kZSoKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVO
ZXdBcnJheShOb2RlKiBub2RlKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwor
CisgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBwdXJwb3NlZnVsbHkgZG9pbmcgcmVhZHMgaW4gdGhp
cyBvcmRlcjoKKyAgICAvLyAgICAxLiByZWFkIGlzSGF2aW5nQUJhZFRpbWUoKQorICAgIC8vICAg
IDIuIHJlYWQgYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uCisg
ICAgLy8gICAgMy4gcmVhZCBoYXNTdGFydGVkVHJhbnNpdGlvbmluZ1RvSGF2aW5nQUJhZFRpbWUo
KQorICAgIC8vCisgICAgLy8gSWYgaXNIYXZpbmdBQmFkVGltZSgpIHJldHVybnMgdHJ1ZSwgdGhl
biB3ZSB3b24ndCBlbnRlciB0aGUgaWYgc3RhdGVtZW50IGhlcmUsIHdoaWNoCisgICAgLy8gaXMg
d2hhdCB3ZSB3YW50LgorICAgIC8vCisgICAgLy8gSWYgaXNIYXZpbmdBQmFkVGltZSgpIHJldHVy
bnMgZmFsc2UgYW5kIHdlIGhhdmVuJ3Qgc3RhcnRlZCB0cmFuc2l0aW9uaW5nIHRvIEhhdmluZ0FC
YWRUaW1lLAorICAgIC8vIHRoZW4gdGhlIHJlYWQgYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5
cGVEdXJpbmdBbGxvY2F0aW9uIHdpbGwgYmUgdGhlIG9uZSB3ZSdyZQorICAgIC8vIGV4cGVjdGlu
ZyBpbiB0aGUgREZHX0FTU0VSVCBiZWxvdy4gSGVuY2UsIGl0J3Mgc2FmZSB0byBlbnRlciB0aGUg
aWYgc3RhdGVtZW50IGNsYXVzZS4KKyAgICAvLworICAgIC8vIElmIGlzSGF2aW5nQUJhZFRpbWUo
KSByZXR1cm5zIGZhbHNlIGJ1dCB3ZSd2ZSBzdGFydGVkIHRyYW5zaXRpb25pbmcgdG8gSGF2aW5n
QUJhZFRpbWUsCisgICAgLy8gdGhlbiB3ZSBjYW4ndCB0cnVzdCB0aGUgcmVhZCBhcnJheVN0cnVj
dHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24uIEp1c3QKKyAgICAvLyB0cmVhdCB0
aGlzIGFzIGFscmVhZHkgSGF2aW5nQUJhZFRpbWUgYW5kIGRvbid0IGVudGVyIHRoZSBpZiBzdGF0
ZW1lbnQgY2xhdXNlIHRvIGF2b2lkCisgICAgLy8gdGhlIERGR19BU1NFUlQuIEJleW9uZCB0aGF0
LCB3ZSBkb24ndCByZWFsbHkgY2FyZSBhYm91dCB0aGUgY29kZSBiZWluZyBnZW5lcmF0ZWQgYmVj
YXVzZQorICAgIC8vIHdpdGggdXMgdHJhbnNpdGlvbmluZyB0byBIYXZpbmdBQmFkVGltZSwgdGhl
IEhhdmluZ0FCYWRUaW1lIHdhdGNocG9pbnQgaXMgZ29pbmcgdG8gZmlyZQorICAgIC8vIGFueXdh
eSwgYW5kIHRoaXMgY29kZSB3aWxsIGdldCBpbnZhbGlkYXRlZCBzb29uLiBXZSBqdXN0IGRvbid0
IHdhbnQgdG8gY3Jhc2ggZHVlIHRvIHRoaXMKKyAgICAvLyBhc3NlcnRpb24gZmFpbHVyZSBpbiB0
aGUgREZHIGNvbXBpbGVyLgorCisgICAgYm9vbCBpc0hhdmluZ0FCYWRUaW1lID0gZ2xvYmFsT2Jq
ZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCk7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBzdHJ1Y3R1
cmUgPSBtX2ppdC5ncmFwaCgpLnJlZ2lzdGVyU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+YXJyYXlT
dHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKG5vZGUtPmluZGV4aW5nVHlw
ZSgpKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSAmJiAhaGFz
QW55QXJyYXlTdG9yYWdlKG5vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworCisgICAgaWYgKCFnbG9i
YWxPYmplY3QtPmhhc1N0YXJ0ZWRUcmFuc2l0aW9uaW5nVG9IYXZpbmdBQmFkVGltZSgpICYmICFp
c0hhdmluZ0FCYWRUaW1lICYmICFoYXNBbnlBcnJheVN0b3JhZ2Uobm9kZS0+aW5kZXhpbmdUeXBl
KCkpKSB7CiAgICAgICAgIERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgc3RydWN0dXJl
LT5pbmRleGluZ1R5cGUoKSA9PSBub2RlLT5pbmRleGluZ1R5cGUoKSwgc3RydWN0dXJlLT5pbmRl
eGluZ1R5cGUoKSwgbm9kZS0+aW5kZXhpbmdUeXBlKCkpOwogICAgICAgICBBU1NFUlQoCiAgICAg
ICAgICAgICBoYXNVbmRlY2lkZWQoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJl
dmlzaW9uIDI1MjE0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2NSwxMiArMTU2NSw5IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OmZpcmVXYXRjaHBvaW50QW5kTWEKICAgICBpZiAoaXNIYXZpbmdBQmFkVGlt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgYWxsb2Nh
dGlvbnMgb3IgaW5kZXhlZCBzdG9yYWdlIHRyYW5zaXRpb25zIHRoYXQgYXJlIGlubGluaW5nCi0g
ICAgLy8gdGhlIGFzc3VtcHRpb24gdGhhdCBpdCdzIHNhZmUgdG8gdHJhbnNpdGlvbiB0byBhIG5v
bi1TbG93UHV0IGFycmF5IHN0b3JhZ2UgZG9uJ3QKLSAgICAvLyBkbyBzbyBhbnltb3JlLgotICAg
IG1faGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50LT5maXJlQWxsKHZtLCAiSGF2aW5nIGEgYmFkIHRp
bWUiKTsKLSAgICBBU1NFUlQoaXNIYXZpbmdBQmFkVGltZSgpKTsgLy8gVGhlIHdhdGNocG9pbnQg
aXMgd2hhdCB0ZWxscyB1cyB0aGF0IHdlJ3JlIGhhdmluZyBhIGJhZCB0aW1lLgotICAgIAorICAg
IG1faGFzU3RhcnRlZFRyYW5zaXRpb25pbmdUb0hhdmluZ0FCYWRUaW1lID0gdHJ1ZTsKKyAgICBX
VEY6OnN0b3JlU3RvcmVGZW5jZSgpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxsIEpTQXJy
YXkgYWxsb2NhdGlvbnMgdGhhdCBsb2FkIHRoZSBhcHByb3ByaWF0ZSBzdHJ1Y3R1cmUgZnJvbQog
ICAgIC8vIHRoaXMgb2JqZWN0IG5vdyBsb2FkIGEgc3RydWN0dXJlIHRoYXQgdXNlcyBTbG93UHV0
LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOdW1iZXJPZkFycmF5SW5kZXhpbmdNb2Rl
czsgKytpKQpAQCAtMTU4NCw2ICsxNTgxLDEyIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmZpcmVX
YXRjaHBvaW50QW5kTWEKICAgICBtX3JlZ0V4cE1hdGNoZXNBcnJheVdpdGhHcm91cHNTdHJ1Y3R1
cmUuc2V0KHZtLCB0aGlzLCBzbG93UHV0U3RydWN0dXJlKTsKICAgICBzbG93UHV0U3RydWN0dXJl
ID0gQ2xvbmVkQXJndW1lbnRzOjpjcmVhdGVTbG93UHV0U3RydWN0dXJlKHZtLCB0aGlzLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSk7CiAgICAgbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmUuc2V0
KHZtLCB0aGlzLCBzbG93UHV0U3RydWN0dXJlKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGFs
bCBhbGxvY2F0aW9ucyBvciBpbmRleGVkIHN0b3JhZ2UgdHJhbnNpdGlvbnMgdGhhdCBhcmUgaW5s
aW5pbmcKKyAgICAvLyB0aGUgYXNzdW1wdGlvbiB0aGF0IGl0J3Mgc2FmZSB0byB0cmFuc2l0aW9u
IHRvIGEgbm9uLVNsb3dQdXQgYXJyYXkgc3RvcmFnZSBkb24ndAorICAgIC8vIGRvIHNvIGFueW1v
cmUuCisgICAgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQtPmZpcmVBbGwodm0sICJIYXZpbmcg
YSBiYWQgdGltZSIpOworICAgIEFTU0VSVChpc0hhdmluZ0FCYWRUaW1lKCkpOyAvLyBUaGUgd2F0
Y2hwb2ludCBpcyB3aGF0IHRlbGxzIHVzIHRoYXQgd2UncmUgaGF2aW5nIGEgYmFkIHRpbWUuCiB9
OwogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRpbWUoVk0mIHZtKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lv
biAyNTIxNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDksNiArNDQ5LDcgQEAgcHVibGljOgogICAgIFdlYWtS
YW5kb20gbV93ZWFrUmFuZG9tOwogICAgIFJlZ0V4cEdsb2JhbERhdGEgbV9yZWdFeHBHbG9iYWxE
YXRhOwogCitwdWJsaWM6CiAgICAgSlNDYWxsZWUqIHN0YWNrT3ZlcmZsb3dGcmFtZUNhbGxlZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tPdmVyZmxvd0ZyYW1lQ2FsbGVlLmdldCgpOyB9CiAKICAg
ICBJbmxpbmVXYXRjaHBvaW50U2V0JiBhcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0
KCkgeyByZXR1cm4gbV9hcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0OyB9CkBAIC00
NjQsNiArNDY1LDggQEAgcHVibGljOgogICAgICAgICBSRUxFQVNFX0FTU0VSVChWTTo6Y2FuVXNl
SklUKCkpOwogICAgICAgICByZXR1cm4gbV9udW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQ7CiAg
ICAgfQorCitwcm90ZWN0ZWQ6CiAgICAgLy8gSWYgdGhpcyBoYXNuJ3QgYmVlbiBpbnZhbGlkYXRl
ZCwgaXQgbWVhbnMgdGhlIGFycmF5IGl0ZXJhdG9yIHByb3RvY29sCiAgICAgLy8gaXMgbm90IG9i
c2VydmFibGUgdG8gdXNlciBjb2RlIHlldC4KICAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fYXJy
YXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDsKQEAgLTQ5MCw2ICs0OTMsNyBAQCBwdWJs
aWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRj
aHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX3NldFByb3RvdHlwZUFkZFdhdGNocG9pbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBv
aW50PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX251bWJlclByb3RvdHlwZVRvU3RyaW5nV2F0Y2hw
b2ludDsKIAorcHVibGljOgogICAgIGJvb2wgaXNBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9j
b2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVJdGVyYXRv
clByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90eXBl
SXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKCk7CkBAIC00OTcsMTggKzUwMSwy
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01hcFByb3RvdHlwZVNldEZhc3RBbmROb25PYnNlcnZh
YmxlKCk7CiAgICAgYm9vbCBpc1NldFByb3RvdHlwZUFkZEZhc3RBbmROb25PYnNlcnZhYmxlKCk7
CiAKK3Byb3RlY3RlZDoKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICB1c2luZyBSZWZlcmVuY2Vk
R2xvYmFsUHJvcGVydHlXYXRjaHBvaW50U2V0cyA9IEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJp
bmdJbXBsPiwgUmVmPFdhdGNocG9pbnRTZXQ+LCBJZGVudGlmaWVyUmVwSGFzaD47CiAgICAgUmVm
ZXJlbmNlZEdsb2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHMgbV9yZWZlcmVuY2VkR2xvYmFsUHJv
cGVydHlXYXRjaHBvaW50U2V0czsKICAgICBDb25jdXJyZW50SlNMb2NrIG1fcmVmZXJlbmNlZEds
b2JhbFByb3BlcnR5V2F0Y2hwb2ludFNldHNMb2NrOwogI2VuZGlmCiAKK3ByaXZhdGU6CisgICAg
Ym9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2UgfTsKK3Byb3RlY3RlZDoKICAg
ICBib29sIG1fZXZhbEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3dlYkFzc2VtYmx5RW5h
YmxlZCB7IHRydWUgfTsKICAgICB1bnNpZ25lZCBtX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2gg
eyAxIH07CiAgICAgU3RyaW5nIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgIFN0cmlu
ZyBtX3dlYkFzc2VtYmx5RGlzYWJsZWRFcnJvck1lc3NhZ2U7CiAgICAgUnVudGltZUZsYWdzIG1f
cnVudGltZUZsYWdzOworICAgIGJvb2wgbV9oYXNTdGFydGVkVHJhbnNpdGlvbmluZ1RvSGF2aW5n
QUJhZFRpbWUgeyBmYWxzZSB9OwogICAgIENvbnNvbGVDbGllbnQqIG1fY29uc29sZUNsaWVudCB7
IG51bGxwdHIgfTsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGltaXQ7CiAK
QEAgLTkwOSw2ICs5MTgsMTMgQEAgcHVibGljOgogICAgIFdhdGNocG9pbnRTZXQqIGhhdmluZ0FC
YWRUaW1lV2F0Y2hwb2ludCgpIHsgcmV0dXJuIG1faGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50Lmdl
dCgpOyB9CiAgICAgV2F0Y2hwb2ludFNldCogdmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpIHsgcmV0
dXJuIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludC5nZXQoKTsgfQogICAgICAgICAKKyAgICBib29s
IGhhc1N0YXJ0ZWRUcmFuc2l0aW9uaW5nVG9IYXZpbmdBQmFkVGltZSgpIGNvbnN0CisgICAgewor
ICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBtX2hh
c1N0YXJ0ZWRUcmFuc2l0aW9uaW5nVG9IYXZpbmdBQmFkVGltZTsKKyAgICAgICAgV1RGOjpsb2Fk
TG9hZEZlbmNlKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIGJvb2wgaXNI
YXZpbmdBQmFkVGltZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9oYXZpbmdBQmFk
VGltZVdhdGNocG9pbnQtPmhhc0JlZW5JbnZhbGlkYXRlZCgpOwpAQCAtMTA0NSw3ICsxMDYxLDYg
QEAgcHJpdmF0ZToKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFy
ZURhdGEoSlNDZWxsKik7CiAKLSAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgeyBm
YWxzZSB9OwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECiAgICAgUmV0YWluUHRyPEpTV3JhcHBl
ck1hcD4gbV93cmFwcGVyTWFwOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="398694"
          type_id="1"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382977</attachid>
            <date>2019-11-06 16:13:28 -0800</date>
            <delta_ts>2019-11-06 16:15:21 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203867.patch</filename>
            <type>text/plain</type>
            <size>7207</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIxNDApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJy
YXlTdHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBmaXJlIGl0cyB3YXRjaHBvaW50IGFzIHRoZSBs
YXN0IHN0ZXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM4NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODEzNTE0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzOiBBZGRlZC4KKwog
MjAxOS0xMS0wNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBE
b24ndCB1c2UgbWVtbW92ZS9tZW1jcHkvbWVtc2V0IGZvciBtZW1vcnkgdGhhdCBjYW4gYmUgc2Nh
bm5lZCBjb25jdXJyZW50bHkKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xv
bmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1wdXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1h
LWJhZC10aW1lLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JhY3ktc2xvdy1w
dXQtY2xvbmVkLWFyZ3VtZW50cy13aGVuLWhhdmluZy1hLWJhZC10aW1lLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS1qaXRQb2xpY3lTY2Fs
ZT0wIikKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJl
KQorLy9AIHNsb3chCisKK2ZvciAobGV0IGogPSAwOyBqIDwgNTAwOyBqKyspIHsKKyAgICBydW5T
dHJpbmcoYAorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAgICAgInVzZSBzdHJp
Y3QiOworICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKKyAgICAgICAgfQorICAgICAgICBu
b0lubGluZSh0ZXN0KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAg
ICAgICAgICAgdGVzdCgpOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnBy
b3RvdHlwZSwgMCwge30pOworICAgICAgICB0ZXN0KCk7CisgICAgYCk7Cit9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0xMS0w
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3Q6OmZpcmVXYXRjaHBvaW50QW5kTWFrZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQoKSBzaG91
bGQgZmlyZSBpdHMgd2F0Y2hwb2ludCBhcyB0aGUgbGFzdCBzdGVwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODY3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NjgxMzUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYWtlQWxsQXJyYXlT
dHJ1Y3R1cmVzU2xvd1B1dCgpIHNob3VsZCBtYWtlIGFsbAorICAgICAgICB0aGUgYXJyYXkgc3Ry
dWN0dXJlcyBTbG93UHV0IGJlZm9yZSBmaXJpbmcgdGhlIHdhdGNocG9pbnQuICBPdGhlcndpc2Us
IHRoZQorICAgICAgICBjb25jdXJyZW50IEpJVCBtYXkgdGhpbmsgaXQncyBncmFiYmluZyB0aGUg
c2xvdyBwdXQgdmVyc2lvbiBvZiB0aGUgc3RydWN0dXJlLCBidXQKKyAgICAgICAgaXMgYWN0dWFs
bHkgZ3JhYmJpbmcgdGhlIG5vbi1TbG93UHV0IHZlcnNpb24gYmVjYXVzZSBpdCBoYXBwZW5lZCB0
byBiZWF0IHRoZQorICAgICAgICBtdXRhdG9yIGluIGEgcmFjZSB0byByZWFkIHRoZSBzdHJ1Y3R1
cmUgYmVmb3JlIHRoZSBtdXRhdG9yIG1ha2VzIGl0IFNsb3dQdXQuCisKKyAgICAgICAgQWxzbyBy
ZW1vdmVkIHNvbWUgYXNzZXJ0aW9ucyBpbiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgdGhhdCBhcmUg
dnVsbmVyYWJsZSB0byByYWNlcworICAgICAgICBiZXR3ZWVuIHdoZW4gdGhlIG11dGF0b3IgbWFr
ZXMgYWxsIGFycmF5IHN0cnVjdHVyZXMgU2xvd1B1dCBhbmQgd2hlbiBpdCBmaXJlcyB0aGUKKyAg
ICAgICAgSGF2aW5nQUJhZFRpbWUgd2F0Y2hwb2ludC4gIFRoZSBGVEwgZXF1aXZhbGVudCBkaWQg
bm90IGhhdmUgdGhlc2UgYXNzZXJ0aW9ucy4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVh
dGVSZXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Fy
cmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5
V2l0aFNwcmVhZCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2ludEFuZE1ha2VBbGxBcnJheVN0
cnVjdHVyZXNTbG93UHV0KToKKwogMjAxOS0xMS0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MTk0
MC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCShyZXZpc2lvbiAyNTIxNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgxNSw3ICs3ODE1LDYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZVJlc3QoTgogICAgICAgICAvLyBhbHdh
eXMgYmUgYm91bmRlZCBieSBzdGFjayBzaXplLiBSZWFsaXN0aWNhbGx5LCB3ZSB3b24ndCBiZSBh
YmxlIHRvIHB1c2ggZW5vdWdoCiAgICAgICAgIC8vIGFyZ3VtZW50cyB0byBoYXZlIGFycmF5TGVu
Z3RoIGV4Y2VlZCBNSU5fQVJSQVlfU1RPUkFHRV9DT05TVFJVQ1RJT05fTEVOR1RILgogICAgICAg
ICBib29sIHNob3VsZEFsbG93Rm9yQXJyYXlTdG9yYWdlU3RydWN0dXJlRm9yTGFyZ2VBcnJheXMg
PSBmYWxzZTsKLSAgICAgICAgQVNTRVJUKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYyktPnJlc3RQYXJhbWV0ZXJTdHJ1Y3R1cmUoKS0+aW5kZXhpbmdN
b2RlKCkgPT0gQXJyYXlXaXRoQ29udGlndW91cyB8fCBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5pc0hhdmluZ0FCYWRUaW1lKCkpOwogICAgICAg
ICBjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKG1faml0LmdyYXBoKCkuZ2xvYmFsT2Jq
ZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyksIGFycmF5UmVzdWx0R1BSLCBhcnJheUxlbmd0
aEdQUiwgQXJyYXlXaXRoQ29udGlndW91cywgc2hvdWxkQWxsb3dGb3JBcnJheVN0b3JhZ2VTdHJ1
Y3R1cmVGb3JMYXJnZUFycmF5cyk7CiAKICAgICAgICAgR1BSVGVtcG9yYXJ5IGFyZ3VtZW50c1N0
YXJ0KHRoaXMpOwpAQCAtNzk3OSw3ICs3OTc4LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU5ld0FycmF5KE5vZAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2pp
dC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgIFJl
Z2lzdGVyZWRTdHJ1Y3R1cmUgc3RydWN0dXJlID0gbV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxs
b2NhdGlvbihub2RlLT5pbmRleGluZ1R5cGUoKSkpOwogICAgIGlmICghZ2xvYmFsT2JqZWN0LT5p
c0hhdmluZ0FCYWRUaW1lKCkgJiYgIWhhc0FueUFycmF5U3RvcmFnZShub2RlLT5pbmRleGluZ1R5
cGUoKSkpIHsKLSAgICAgICAgREZHX0FTU0VSVChtX2ppdC5ncmFwaCgpLCBub2RlLCBzdHJ1Y3R1
cmUtPmluZGV4aW5nVHlwZSgpID09IG5vZGUtPmluZGV4aW5nVHlwZSgpLCBzdHJ1Y3R1cmUtPmlu
ZGV4aW5nVHlwZSgpLCBub2RlLT5pbmRleGluZ1R5cGUoKSk7CiAgICAgICAgIEFTU0VSVCgKICAg
ICAgICAgICAgIGhhc1VuZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQogICAgICAg
ICAgICAgfHwgaGFzSW50MzIoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKQEAgLTgxNzMsNyAr
ODE3MSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheVdpdGgKICAgICAg
ICAgICAgIC8vIGVuc3VyZWQgYWJvdmUgdGhhdCB0aGUgc3ByZWFkIGFycmF5IGxlbmd0aCB3aWxs
IGRlZmluaXRlbHkgZml0IGluIGEKICAgICAgICAgICAgIC8vIG5vbi1BcnJheVN0b3JhZ2Ugc2hh
cGVkIGFycmF5LgogICAgICAgICAgICAgYm9vbCBzaG91bGRBbGxvd0ZvckFycmF5U3RvcmFnZVN0
cnVjdHVyZUZvckxhcmdlQXJyYXlzID0gZmFsc2U7Ci0gICAgICAgICAgICBBU1NFUlQobV9qaXQu
Z3JhcGgoKS5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+cmVzdFBhcmFt
ZXRlclN0cnVjdHVyZSgpLT5pbmRleGluZ1R5cGUoKSA9PSBBcnJheVdpdGhDb250aWd1b3VzIHx8
IG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmlz
SGF2aW5nQUJhZFRpbWUoKSk7CiAgICAgICAgICAgICBjb21waWxlQWxsb2NhdGVOZXdBcnJheVdp
dGhTaXplKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YyksIHJlc3VsdEdQUiwgbGVuZ3RoR1BSLCBBcnJheVdpdGhDb250aWd1b3VzLCBzaG91bGRBbGxv
d0ZvckFycmF5U3RvcmFnZVN0cnVjdHVyZUZvckxhcmdlQXJyYXlzKTsKICAgICAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCShyZXZpc2lvbiAyNTIxNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjUsMTIgKzE1NjUsNiBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2ludEFuZE1hCiAgICAgaWYgKGlzSGF2aW5n
QUJhZFRpbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxs
IGFsbG9jYXRpb25zIG9yIGluZGV4ZWQgc3RvcmFnZSB0cmFuc2l0aW9ucyB0aGF0IGFyZSBpbmxp
bmluZwotICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQncyBzYWZlIHRvIHRyYW5zaXRpb24g
dG8gYSBub24tU2xvd1B1dCBhcnJheSBzdG9yYWdlIGRvbid0Ci0gICAgLy8gZG8gc28gYW55bW9y
ZS4KLSAgICBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC0+ZmlyZUFsbCh2bSwgIkhhdmluZyBh
IGJhZCB0aW1lIik7Ci0gICAgQVNTRVJUKGlzSGF2aW5nQUJhZFRpbWUoKSk7IC8vIFRoZSB3YXRj
aHBvaW50IGlzIHdoYXQgdGVsbHMgdXMgdGhhdCB3ZSdyZSBoYXZpbmcgYSBiYWQgdGltZS4KLSAg
ICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgSlNBcnJheSBhbGxvY2F0aW9ucyB0aGF0IGxv
YWQgdGhlIGFwcHJvcHJpYXRlIHN0cnVjdHVyZSBmcm9tCiAgICAgLy8gdGhpcyBvYmplY3Qgbm93
IGxvYWQgYSBzdHJ1Y3R1cmUgdGhhdCB1c2VzIFNsb3dQdXQuCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IE51bWJlck9mQXJyYXlJbmRleGluZ01vZGVzOyArK2kpCkBAIC0xNTg0LDYgKzE1
NzgsMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6ZmlyZVdhdGNocG9pbnRBbmRNYQogICAgIG1f
cmVnRXhwTWF0Y2hlc0FycmF5V2l0aEdyb3Vwc1N0cnVjdHVyZS5zZXQodm0sIHRoaXMsIHNsb3dQ
dXRTdHJ1Y3R1cmUpOwogICAgIHNsb3dQdXRTdHJ1Y3R1cmUgPSBDbG9uZWRBcmd1bWVudHM6OmNy
ZWF0ZVNsb3dQdXRTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsK
ICAgICBtX2Nsb25lZEFyZ3VtZW50c1N0cnVjdHVyZS5zZXQodm0sIHRoaXMsIHNsb3dQdXRTdHJ1
Y3R1cmUpOworCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgYWxsIGFsbG9jYXRpb25zIG9yIGluZGV4
ZWQgc3RvcmFnZSB0cmFuc2l0aW9ucyB0aGF0IGFyZSBpbmxpbmluZworICAgIC8vIHRoZSBhc3N1
bXB0aW9uIHRoYXQgaXQncyBzYWZlIHRvIHRyYW5zaXRpb24gdG8gYSBub24tU2xvd1B1dCBhcnJh
eSBzdG9yYWdlIGRvbid0CisgICAgLy8gZG8gc28gYW55bW9yZS4KKyAgICBtX2hhdmluZ0FCYWRU
aW1lV2F0Y2hwb2ludC0+ZmlyZUFsbCh2bSwgIkhhdmluZyBhIGJhZCB0aW1lIik7CisgICAgQVNT
RVJUKGlzSGF2aW5nQUJhZFRpbWUoKSk7IC8vIFRoZSB3YXRjaHBvaW50IGlzIHdoYXQgdGVsbHMg
dXMgdGhhdCB3ZSdyZSBoYXZpbmcgYSBiYWQgdGltZS4KIH07CiAKIHZvaWQgSlNHbG9iYWxPYmpl
Y3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCg==
</data>
<flag name="review"
          id="398738"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>