<?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>225376</bug_id>
          
          <creation_ts>2021-05-04 17:49:29 -0700</creation_ts>
          <short_desc>Enable incremental sweeping of GCAwareJITStubRoutines.</short_desc>
          <delta_ts>2021-07-12 18:51:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>227888</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756746</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-04 17:49:29 -0700</bug_when>
    <thetext>This is in preparation for incremental sweeping of CodeBlocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756751</commentid>
    <comment_count>1</comment_count>
      <attachid>427718</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-04 18:20:28 -0700</bug_when>
    <thetext>Created attachment 427718
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756754</commentid>
    <comment_count>2</comment_count>
      <attachid>427719</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-04 18:26:57 -0700</bug_when>
    <thetext>Created attachment 427719
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756758</commentid>
    <comment_count>3</comment_count>
      <attachid>427719</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-04 18:35:01 -0700</bug_when>
    <thetext>Comment on attachment 427719
proposed patch.

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

&gt; Source/JavaScriptCore/heap/JITStubRoutineSet.h:77
&gt; +    WTF::Range&lt;uintptr_t&gt; m_range { 0, 0 };

Qualifying with WTF:: here is only needed because Clang thinks this is ambiguous vs WebCore::Range (despite the &quot;using WTF::Range&quot; above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756762</commentid>
    <comment_count>4</comment_count>
      <attachid>427721</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-04 18:41:05 -0700</bug_when>
    <thetext>Created attachment 427721
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756980</commentid>
    <comment_count>5</comment_count>
      <attachid>427721</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-05-05 10:18:01 -0700</bug_when>
    <thetext>Comment on attachment 427721
proposed patch.

I think this looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756984</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-05 10:28:59 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r277027: &lt;http://trac.webkit.org/r277027&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756985</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-05 10:29:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/77563716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776468</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-07-12 15:14:54 -0700</bug_when>
    <thetext>Reverting in https://bugs.webkit.org/show_bug.cgi?id=227888 due to bugs in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776527</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-07-12 18:51:07 -0700</bug_when>
    <thetext>Reverted in in r279861: &lt;http://trac.webkit.org/r279861&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427718</attachid>
            <date>2021-05-04 18:20:28 -0700</date>
            <delta_ts>2021-05-04 18:30:08 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225376.patch</filename>
            <type>text/plain</type>
            <size>12899</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2OTk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBA
CisyMDIxLTA1LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgb2YgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM3NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bWFrZXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAgICAgIDEuIEVuaGFuY2UgSklUU3R1
YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcygpIHRvIGJl
IGFibGUgdG8KKyAgICAgICAgICAgcnVuIGluIGFuIGluY3JlbWVudGFsIHRpbWUgc2xpY2UuCisK
KyAgICAgICAgMi4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om5vdGlmeUhhdmVSb3V0aW5lc1Rv
RGVsZXRlKCkgc28gdGhhdAorICAgICAgICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmU6Om9ic2Vy
dmVaZXJvUmVmQ291bnQoKSBjYW4gZmxhZyB0aGF0IHRoZSBHQyBtYXkgaGF2ZQorICAgICAgICAg
ICBzb21lIGRlYWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcyB0byBkZWxldGUuCisKKyAgICAgICAg
My4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om1heUhhdmVSb3V0aW5lc1RvRGVsZXRlKCkgc28g
dGhhdCBjbGllbnRzIGNhbiBkbworICAgICAgICAgICBhIGNoZWFwIGNoZWNrIGFoZWFkIG9mIHRp
bWUgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlJ3Mgd29yayB0byBkbywgYW5kIGF2b2lkCisgICAgICAg
ICAgIGNhbGxpbmcgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGFsdG9nZXRoZXIKKyAgICAgICAgICAgaWYgbm90IG5lZWRlZC4KKworICAg
ICAgICA0LiBBZGRlZCBIZWFwOjptYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKSBhbmQg
SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcygpCisgICAgICAgICAgIGFzIHdyYXBwZXJz
IGFyb3VuZCBKSVRTdHViUm91dGluZVNldDo6bWF5SGF2ZVJvdXRpbmVzVG9EZWxldGUoKSBhbmQK
KyAgICAgICAgICAgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGJlY2F1c2UgdGhlIHVzZSBvZgorICAgICAgICAgICB0aGUgSklUU3R1YlJv
dXRpbmVTZXQgaXMgYSBoZWFwIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKworICAg
ICAgICA1LiBFbmhhbmNlZCB0aGUgSW5jcmVtZW50YWxTd2VlcGVyIHRvIGFsc28gY2FsbCBIZWFw
OjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVkLgorCisg
ICAgICAgIDYuIEVuaGFuY2VkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpIHRvIGFsc28gY2Fs
bCBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVk
LgorCisgICAgICAgIDcuIFRpbWUgc2xpY2VzIGZvciBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJv
dXRpbmVzKCkgaXMgY3VycmVudGx5IHNldCBhdCB0aGUKKyAgICAgICAgICAgY3VycmVudCB2YWx1
ZXM6CisgICAgICAgICAgIGEuIG1heCBvZiAxIG1zICgxLzEwIG9mIHRoZSBJbmNyZWFtZW50YWxT
d2VlcGVyJ3MgdGltZSBzbGljZSkgd2hlbiBpbnZva2VkIGZyb20KKyAgICAgICAgICAgICAgdGhl
IEluY3JlYW1lbnRhbFN3ZWVwZXIuCisgICAgICAgICAgIGIuIG1heCBvZiA1IG1zIHdoZW4gaW52
b2tlZCBmcm9tIEhlYXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkuCisgICAgICAgICAg
IGMuIHVubGltaXRlZCB0aW1lICh3aXRoIGEgc2FuaXR5IGNoZWNrKSB3aGVuIGNhbGxlZCBmcm9t
IEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpLgorCisgICAgICAgICAgIFRoZSBjaG9pY2VzIG9m
IDFtcyBhbmQgNW1zIHdhcyBwaWNrZWQgdG8gbm90IGJlIHRvbyBsb25nLCBidXQgc3RpbGwgZGVs
ZXRlCisgICAgICAgICAgIHRoZSBidWxrIG9mIHRoZSBkZWFkIEdDQXdhcmVKSVRTdHViUm91dGlu
ZXMsIGJhc2VkIG9uIHdoYXQgbXkgaW5zdHJ1bWVudGF0aW9uCisgICAgICAgICAgIHRvbGQgbWUg
d2hlbiBydW5uaW5nIHRoZSBDTEkgdmVyc2lvbiBvZiBKZXRTdHJlYW0yLgorCisgICAgICAgICog
aGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxl
ZENvZGUpOgorICAgICAgICAoSlNDOjpIZWFwOjpzd2VlcFN5bmNocm9ub3VzbHkpOgorICAgICAg
ICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKToKKyAgICAgICAgKEpT
Qzo6SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcyk6CisgICAgICAgICogaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
U3dlZXApOgorICAgICAgICAqIGhlYXAvSklUU3R1YlJvdXRpbmVTZXQuY3BwOgorICAgICAgICAo
SlNDOjpKSVRTdHViUm91dGluZVNldDo6ZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRp
bmVzKToKKyAgICAgICAgKiBoZWFwL0pJVFN0dWJSb3V0aW5lU2V0Lmg6CisgICAgICAgIChKU0M6
OkpJVFN0dWJSb3V0aW5lU2V0OjptYXlIYXZlUm91dGluZXNUb0RlbGV0ZSk6CisgICAgICAgIChK
U0M6OkpJVFN0dWJSb3V0aW5lU2V0Ojpub3RpZnlIYXZlUm91dGluZXNUb0RlbGV0ZSk6CisgICAg
ICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5jcHA6CisgICAgICAgIChKU0M6OkdDQXdh
cmVKSVRTdHViUm91dGluZTo6b2JzZXJ2ZVplcm9SZWZDb3VudCk6CisgICAgICAgICogaml0L0pJ
VFN0dWJSb3V0aW5lLmg6CisgICAgICAgIChKU0M6OkpJVFN0dWJSb3V0aW5lOjpjcmVhdGVTZWxm
TWFuYWdlZFJvdXRpbmUpOiBEZWxldGVkLgorCiAyMDIxLTA1LTAzICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc3ludGF4IGVycm9yIG1lc3NhZ2UgZm9yIEFV
VE9QTFVTUExVUyB0b2tlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShy
ZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTczLDcgKzk3Myw4IEBAIHZvaWQgSGVhcDo6ZGVsZXRlVW5tYXJr
ZWRDb21waWxlZENvZGUoKQogICAgIC8vIFN3ZWVwaW5nIG11c3Qgb2NjdXIgYmVmb3JlIGRlbGV0
aW5nIHN0dWJzLCBvdGhlcndpc2UgdGhlIHN0dWJzIG1pZ2h0IHN0aWxsIHRoaW5rIHRoZXkncmUg
YWxpdmUgYXMgdGhleSBnZXQgZGVsZXRlZC4KICAgICAvLyBBbmQgQ29kZUJsb2NrIGRlc3RydWN0
b3IgaXMgYXNzdW1pbmcgdGhhdCBDb2RlQmxvY2sgZ2V0cyBkZXN0cm95ZWQgYmVmb3JlIFVubGlu
a2VkQ29kZUJsb2NrIGdldHMgZGVzdHJveWVkLgogICAgIHZtKCkuZm9yRWFjaENvZGVCbG9ja1Nw
YWNlKFtdIChhdXRvJiBzcGFjZSkgeyBzcGFjZS5zcGFjZS5zd2VlcCgpOyB9KTsKLSAgICBtX2pp
dFN0dWJSb3V0aW5lcy0+ZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7Cisg
ICAgaWYgKG1heUhhdmVKSVRTdHViUm91dGluZXNUb0RlbGV0ZSgpKQorICAgICAgICBkZWxldGVE
ZWFkSklUU3R1YlJvdXRpbmVzKDVfbXMpOwogfQogCiB2b2lkIEhlYXA6OmFkZFRvUmVtZW1iZXJl
ZFNldChjb25zdCBKU0NlbGwqIGNvbnN0Q2VsbCkKQEAgLTEwNDAsNiArMTA0MSwxNCBAQCB2b2lk
IEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpCiAgICAgfQogICAgIG1fb2JqZWN0U3BhY2Uuc3dl
ZXBCbG9ja3MoKTsKICAgICBtX29iamVjdFNwYWNlLnNocmluaygpOworCisgICAgdW5zaWduZWQg
cGFzc2VzID0gMDsKKyAgICB3aGlsZSAobWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkp
IHsKKyAgICAgICAgY29uc3RleHByIFNlY29uZHMgdW5saW1pdGVkVGltZSA9IDYwMF9zOworICAg
ICAgICBkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKHVubGltaXRlZFRpbWUpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVChwYXNzZXMrKyA8IDEwMCk7CisgICAgfQorCiAgICAgaWYgKFVOTElLRUxZ
KE9wdGlvbnM6OmxvZ0dDKCkpKSB7CiAgICAgICAgIE1vbm90b25pY1RpbWUgYWZ0ZXIgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgZGF0YUxvZygiPT4gIiwgY2FwYWNpdHkoKSAvIDEw
MjQsICJrYiwgIiwgKGFmdGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMoKSwgIm1zIik7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwNiw2ICs0MDYs
OSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTWFya2luZ0ZvckdDVmVyaWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lzTWFya2luZ0ZvckdDVmVyaWZpZXI7IH0KIAorICAgIHN0YXRpYyBib29sIG1h
eUhhdmVKSVRTdHViUm91dGluZXNUb0RlbGV0ZSgpOworICAgIHZvaWQgZGVsZXRlRGVhZEpJVFN0
dWJSb3V0aW5lcyhTZWNvbmRzIHRpbWVTbGljZSk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIEFsbG9jYXRpbmdTY29wZTsKICAgICBmcmllbmQgY2xhc3MgQ29kZUJsb2NrOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCShyZXZpc2lvbiAyNzY5NDEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkhlYXBD
ZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkluZGV4aW5nSGVhZGVyLmgiCisjaW5jbHVkZSAiSklU
U3R1YlJvdXRpbmVTZXQuaCIKICNpbmNsdWRlICJKU0Nhc3QuaCIKICNpbmNsdWRlICJTdHJ1Y3R1
cmUuaCIKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KQEAgLTI3OSw0ICsyODAsMTQgQEAgdm9pZCBI
ZWFwOjpmb3JFYWNoU2xvdFZpc2l0b3IoY29uc3QgRnVuYwogICAgICAgICBmdW5jKCp2aXNpdG9y
KTsKIH0KIAoraW5saW5lIGJvb2wgSGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRl
KCkKK3sKKyAgICByZXR1cm4gSklUU3R1YlJvdXRpbmVTZXQ6Om1heUhhdmVSb3V0aW5lc1RvRGVs
ZXRlKCk7Cit9CisKK2lubGluZSB2b2lkIEhlYXA6OmRlbGV0ZURlYWRKSVRTdHViUm91dGluZXMo
U2Vjb25kcyB0aW1lU2xpY2UpCit7CisgICAgbV9qaXRTdHViUm91dGluZXMtPmRlbGV0ZVVubWFy
a2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcyh0aW1lU2xpY2UpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50
YWxTd2VlcGVyLmNwcAkocmV2aXNpb24gMjc2OTQxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBzd2VlcFRpbWVT
bGljZSA9IDEwX21zOwogc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAu
MTA7CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8g
c3dlZXBUaW1lVG90YWw7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGVsZXRlSklUU3R1YlJv
dXRpbmVzVGltZVNsaWNlID0gc3RkOjptaW4oc3dlZXBUaW1lU2xpY2UgLyAxMCwgMV9tcyk7CiAK
IHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzY2hlZHVsZVRpbWVyKCkKIHsKQEAgLTU1LDcgKzU2
LDE3IEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1dvcmsoVk0mIHZtKQogCiB2b2lkIElu
Y3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcChWTSYgdm0sIE1vbm90b25pY1RpbWUgc3dlZXBCZWdp
blRpbWUpCiB7Ci0gICAgd2hpbGUgKHN3ZWVwTmV4dEJsb2NrKHZtKSkgeworICAgIGJvb2wgaGFz
TW9yZUJsb2Nrc1RvU3dlZXAgPSB0cnVlOworICAgIGJvb2wgaGFzTW9yZVdvcmsgPSB0cnVlOwor
ICAgIHdoaWxlIChoYXNNb3JlV29yaykgeworICAgICAgICBpZiAoaGFzTW9yZUJsb2Nrc1RvU3dl
ZXApCisgICAgICAgICAgICBoYXNNb3JlQmxvY2tzVG9Td2VlcCA9IHN3ZWVwTmV4dEJsb2NrKHZt
KTsKKworICAgICAgICBpZiAoSGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkp
CisgICAgICAgICAgICB2bS5oZWFwLmRlbGV0ZURlYWRKSVRTdHViUm91dGluZXMoZGVsZXRlSklU
U3R1YlJvdXRpbmVzVGltZVNsaWNlKTsKKworICAgICAgICBoYXNNb3JlV29yayA9IGhhc01vcmVC
bG9ja3NUb1N3ZWVwIHx8IEhlYXA6Om1heUhhdmVKSVRTdHViUm91dGluZXNUb0RlbGV0ZSgpOwor
CiAgICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3
ZWVwQmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SklUU3R1YlJvdXRpbmVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0pJVFN0dWJSb3V0aW5lU2V0LmNwcAkocmV2aXNpb24gMjc2OTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSklUU3R1YlJvdXRpbmVTZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw5ICsyOSwxNCBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJHQ0F3YXJl
SklUU3R1YlJvdXRpbmUuaCIKKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCit1c2luZyBXVEY6OlJhbmdlOworCitib29sIEpJVFN0dWJSb3V0aW5lU2V0OjpzX21heUhh
dmVSb3V0aW5lc1RvRGVsZXRlID0gZmFsc2U7CisKIEpJVFN0dWJSb3V0aW5lU2V0OjpKSVRTdHVi
Um91dGluZVNldCgpIHsgfQogSklUU3R1YlJvdXRpbmVTZXQ6On5KSVRTdHViUm91dGluZVNldCgp
CiB7CkBAIC0xMTMsMTkgKzExOCw0NiBAQCB2b2lkIEpJVFN0dWJSb3V0aW5lU2V0OjptYXJrU2xv
dyh1aW50cHRyCiAgICAgfQogfQogCi12b2lkIEpJVFN0dWJSb3V0aW5lU2V0OjpkZWxldGVVbm1h
cmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoKQordm9pZCBKSVRTdHViUm91dGluZVNldDo6ZGVs
ZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKFNlY29uZHMgdGltZVNsaWNlKQogewor
ICAgIEFTU0VSVChzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlKTsKKworICAgIE1vbm90b25pY1Rp
bWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgU2Vjb25kcyBlbGFwc2Vk
VGltZTsKKyAgICBjb25zdGV4cHIgdW5zaWduZWQgbWF4QmF0Y2hTaXplID0gMTAwOworCisgICAg
dW5zaWduZWQgZW5kSW5kZXggPSBtX3JvdXRpbmVzLnNpemUoKTsKKworICAgIC8vIENsZWFyIHRo
ZSBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0LgorICAgIC8v
IERlc3RydWN0aW5nIG9mIGEgTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSBjYW4gdHJpZ2dl
ciBtb3JlIHJvdXRpbmVzCisgICAgLy8gdG8gYmUgZGVsZXRlZCwgYW5kIHNvbWUgb2YgdGhvc2Ug
bWF5IGJlIHRoZSBvbmVzIHdlIGhhdmUgYWxyYWR5IGl0ZXJhdGVkCisgICAgLy8gcGFzcy4KKyAg
ICBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlID0gZmFsc2U7CisKICAgICB1bnNpZ25lZCBzcmNJ
bmRleCA9IDA7Ci0gICAgdW5zaWduZWQgZHN0SW5kZXggPSBzcmNJbmRleDsKLSAgICB3aGlsZSAo
c3JjSW5kZXggPCBtX3JvdXRpbmVzLnNpemUoKSkgewotICAgICAgICBSb3V0aW5lIHJvdXRpbmUg
PSBtX3JvdXRpbmVzW3NyY0luZGV4KytdOwotICAgICAgICBpZiAoIXJvdXRpbmUucm91dGluZS0+
bV9pc0pldHRpc29uZWQgfHwgcm91dGluZS5yb3V0aW5lLT5tX21heUJlRXhlY3V0aW5nKSB7Ci0g
ICAgICAgICAgICBtX3JvdXRpbmVzW2RzdEluZGV4KytdID0gcm91dGluZTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOworICAgIHdoaWxlIChzcmNJbmRleCA8IGVuZEluZGV4KSB7CisgICAgICAgIHVu
c2lnbmVkIGJhdGNoU2l6ZSA9IHN0ZDo6bWluPHVuc2lnbmVkPihtYXhCYXRjaFNpemUsIGVuZElu
ZGV4IC0gc3JjSW5kZXgpOworICAgICAgICB3aGlsZSAoYmF0Y2hTaXplLS0pIHsKKyAgICAgICAg
ICAgIFJvdXRpbmUgcm91dGluZSA9IG1fcm91dGluZXNbc3JjSW5kZXhdOworICAgICAgICAgICAg
aWYgKCFyb3V0aW5lLnJvdXRpbmUtPm1faXNKZXR0aXNvbmVkIHx8IHJvdXRpbmUucm91dGluZS0+
bV9tYXlCZUV4ZWN1dGluZykgeworICAgICAgICAgICAgICAgIHNyY0luZGV4Kys7CisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3JvdXRpbmVz
W3NyY0luZGV4XSA9IG1fcm91dGluZXNbLS1lbmRJbmRleF07CisKKyAgICAgICAgICAgIHJvdXRp
bmUucm91dGluZS0+ZGVsZXRlRnJvbUdDKCk7CisgICAgICAgIH0KKworICAgICAgICBlbGFwc2Vk
VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lOworICAgICAgICBpZiAoZWxh
cHNlZFRpbWUgPiB0aW1lU2xpY2UpIHsKKyAgICAgICAgICAgIC8vIFdlIHRpbWVkIG91dC4gQXNz
dW1lIHRoZXJlJ3MgbW9yZSB0byBkbywgYW5kIHRoYXQgd2Ugc2hvdWxkIGNoZWNrCisgICAgICAg
ICAgICAvLyBhZ2FpbiBuZXh0IHRpbWUgc2xpY2UuCisgICAgICAgICAgICBzX21heUhhdmVSb3V0
aW5lc1RvRGVsZXRlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIHJvdXRpbmUucm91dGluZS0+ZGVsZXRlRnJvbUdDKCk7CiAgICAgfQotICAgIG1fcm91dGlu
ZXMuc2hyaW5rQ2FwYWNpdHkoZHN0SW5kZXgpOworCisgICAgbV9yb3V0aW5lcy5zaHJpbmtDYXBh
Y2l0eShlbmRJbmRleCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9KSVRTdHViUm91dGluZVNldC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0pJVFN0dWJSb3V0aW5lU2V0LmgJKHJldmlz
aW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0pJVFN0dWJSb3V0aW5l
U2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvUmFu
Z2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLXVzaW5nIFdURjo6UmFuZ2U7Ci0KIG5h
bWVzcGFjZSBKU0MgewogCiBjbGFzcyBHQ0F3YXJlSklUU3R1YlJvdXRpbmU7CkBAIC02MSwxMCAr
NTksMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVwYXJlRm9yQ29uc2VydmF0aXZlU2Nhbigp
OwogICAgIAotICAgIHZvaWQgZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7
CisgICAgdm9pZCBkZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoU2Vjb25kcyB0
aW1lU2xpY2UpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9pZCB0cmFjZU1h
cmtlZFN0dWJSb3V0aW5lcyhWaXNpdG9yJik7Ci0gICAgCisKKyAgICBzdGF0aWMgYm9vbCBtYXlI
YXZlUm91dGluZXNUb0RlbGV0ZSgpIHsgcmV0dXJuIHNfbWF5SGF2ZVJvdXRpbmVzVG9EZWxldGU7
IH0KKyAgICBzdGF0aWMgdm9pZCBub3RpZnlIYXZlUm91dGluZXNUb0RlbGV0ZSgpIHsgc19tYXlI
YXZlUm91dGluZXNUb0RlbGV0ZSA9IHRydWU7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIG1hcmtT
bG93KHVpbnRwdHJfdCBhZGRyZXNzKTsKICAgICAKQEAgLTczLDcgKzc0LDkgQEAgcHJpdmF0ZToK
ICAgICAgICAgR0NBd2FyZUpJVFN0dWJSb3V0aW5lKiByb3V0aW5lOwogICAgIH07CiAgICAgVmVj
dG9yPFJvdXRpbmU+IG1fcm91dGluZXM7Ci0gICAgUmFuZ2U8dWludHB0cl90PiBtX3JhbmdlIHsg
MCwgMCB9OworICAgIFdURjo6UmFuZ2U8dWludHB0cl90PiBtX3JhbmdlIHsgMCwgMCB9OworCisg
ICAgc3RhdGljIGJvb2wgc19tYXlIYXZlUm91dGluZXNUb0RlbGV0ZTsKIH07CiAKICNlbHNlIC8v
ICFFTkFCTEUoSklUKQpAQCAtOTIsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJl
Rm9yQ29uc2VydmF0aXZlU2NhbigpIHsgfQogICAgIHZvaWQgZGVsZXRlVW5tYXJrZWRKZXR0aXNv
bmVkU3R1YlJvdXRpbmVzKCkgeyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9p
ZCB0cmFjZU1hcmtlZFN0dWJSb3V0aW5lcyhWaXNpdG9yJikgeyB9CisKKyAgICBzdGF0aWMgYm9v
bCBtYXlIYXZlUm91dGluZXNUb0RlbGV0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGlj
IHZvaWQgbm90aWZ5SGF2ZVJvdXRpbmVzVG9EZWxldGUoKSB7IH0KIH07CiAKICNlbmRpZiAvLyAh
RU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0
dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dD
QXdhcmVKSVRTdHViUm91dGluZS5jcHAJKHJldmlzaW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNiArNjIsNyBAQCB2b2lkIEdDQXdhcmVKSVRTdHViUm91dGluZTo6b2JzZXJ2ZVplcm9S
CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVmQ291bnQpOwogCiAgICAgbV9pc0pldHRpc29uZWQg
PSB0cnVlOworICAgIEpJVFN0dWJSb3V0aW5lU2V0Ojpub3RpZnlIYXZlUm91dGluZXNUb0RlbGV0
ZSgpOwogfQogCiB2b2lkIEdDQXdhcmVKSVRTdHViUm91dGluZTo6ZGVsZXRlRnJvbUdDKCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgJKHJldmlzaW9u
IDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDE0ICs1NSw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
ICAgIAotICAgIC8vIFVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIHBhc3MgYSBDb2RlUHRyIHRvIHNv
bWVvbmUgd2hvIGluc2lzdHMgb24gdGFraW5nCi0gICAgLy8gYSBSZWZQdHI8SklUU3R1YlJvdXRp
bmU+LgotICAgIHN0YXRpYyBSZWY8SklUU3R1YlJvdXRpbmU+IGNyZWF0ZVNlbGZNYW5hZ2VkUm91
dGluZSgKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFN0dWJSb3V0aW5lUHRyVGFn
PiByYXdDb2RlUG9pbnRlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpJ
VFN0dWJSb3V0aW5lKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz46
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihyYXdDb2RlUG9pbnRlcikpKTsKLSAgICB9Ci0gICAg
CiAgICAgdmlydHVhbCB+SklUU3R1YlJvdXRpbmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvdXRU
b0RpZSgpIHsgfQogICAgIAo=
</data>
<flag name="commit-queue"
          id="448416"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427719</attachid>
            <date>2021-05-04 18:26:57 -0700</date>
            <delta_ts>2021-05-04 18:43:05 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225376.patch</filename>
            <type>text/plain</type>
            <size>13154</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2OTk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBA
CisyMDIxLTA1LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgb2YgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM3NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bWFrZXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAgICAgIDEuIEVuaGFuY2UgSklUU3R1
YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcygpIHRvIGJl
IGFibGUgdG8KKyAgICAgICAgICAgcnVuIGluIGFuIGluY3JlbWVudGFsIHRpbWUgc2xpY2UuCisK
KyAgICAgICAgMi4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om5vdGlmeUhhdmVSb3V0aW5lc1Rv
RGVsZXRlKCkgc28gdGhhdAorICAgICAgICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmU6Om9ic2Vy
dmVaZXJvUmVmQ291bnQoKSBjYW4gZmxhZyB0aGF0IHRoZSBHQyBtYXkgaGF2ZQorICAgICAgICAg
ICBzb21lIGRlYWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcyB0byBkZWxldGUuCisKKyAgICAgICAg
My4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om1heUhhdmVSb3V0aW5lc1RvRGVsZXRlKCkgc28g
dGhhdCBjbGllbnRzIGNhbiBkbworICAgICAgICAgICBhIGNoZWFwIGNoZWNrIGFoZWFkIG9mIHRp
bWUgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlJ3Mgd29yayB0byBkbywgYW5kIGF2b2lkCisgICAgICAg
ICAgIGNhbGxpbmcgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGFsdG9nZXRoZXIKKyAgICAgICAgICAgaWYgbm90IG5lZWRlZC4KKworICAg
ICAgICA0LiBBZGRlZCBIZWFwOjptYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKSBhbmQg
SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcygpCisgICAgICAgICAgIGFzIHdyYXBwZXJz
IGFyb3VuZCBKSVRTdHViUm91dGluZVNldDo6bWF5SGF2ZVJvdXRpbmVzVG9EZWxldGUoKSBhbmQK
KyAgICAgICAgICAgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGJlY2F1c2UgdGhlIHVzZSBvZgorICAgICAgICAgICB0aGUgSklUU3R1YlJv
dXRpbmVTZXQgaXMgYSBoZWFwIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKworICAg
ICAgICA1LiBFbmhhbmNlZCB0aGUgSW5jcmVtZW50YWxTd2VlcGVyIHRvIGFsc28gY2FsbCBIZWFw
OjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVkLgorCisg
ICAgICAgIDYuIEVuaGFuY2VkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpIHRvIGFsc28gY2Fs
bCBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVk
LgorCisgICAgICAgIDcuIFRpbWUgc2xpY2VzIGZvciBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJv
dXRpbmVzKCkgaXMgY3VycmVudGx5IHNldCBhdCB0aGUKKyAgICAgICAgICAgY3VycmVudCB2YWx1
ZXM6CisgICAgICAgICAgIGEuIG1heCBvZiAxIG1zICgxLzEwIG9mIHRoZSBJbmNyZWFtZW50YWxT
d2VlcGVyJ3MgdGltZSBzbGljZSkgd2hlbiBpbnZva2VkIGZyb20KKyAgICAgICAgICAgICAgdGhl
IEluY3JlYW1lbnRhbFN3ZWVwZXIuCisgICAgICAgICAgIGIuIG1heCBvZiA1IG1zIHdoZW4gaW52
b2tlZCBmcm9tIEhlYXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkuCisgICAgICAgICAg
IGMuIHVubGltaXRlZCB0aW1lICh3aXRoIGEgc2FuaXR5IGNoZWNrKSB3aGVuIGNhbGxlZCBmcm9t
IEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpLgorCisgICAgICAgICAgIFRoZSBjaG9pY2VzIG9m
IDFtcyBhbmQgNW1zIHdlcmUgcGlja2VkIHRvIG5vdCBiZSB0b28gbG9uZywgYnV0IHdvdWxkIHN0
aWxsIGRlbGV0ZQorICAgICAgICAgICB0aGUgYnVsayBvZiB0aGUgZGVhZCBHQ0F3YXJlSklUU3R1
YlJvdXRpbmVzIHF1aWNrbHkgZW5vdWdoIGJhc2VkIG9uIGRhdGEgZnJvbSBteQorICAgICAgICAg
ICBpbnN0cnVtZW50ZWQgcnVucyB0aGUgQ0xJIHZlcnNpb24gb2YgSmV0U3RyZWFtMi4KKworICAg
ICAgICAgICBJIHRoaW5rIHRoZXNlIGhhcmRjb2RlZCB2YWx1ZXMgd2lsbCBkbyBmb3Igbm93LiAg
SWYgbmVlZCBiZSwgd2UgY2FuIHRyeSBzb21ldGhpbmcKKyAgICAgICAgICAgbW9yZSBzb3BoaXN0
aWNhdGVkIGxhdGVyLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6
SGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUpOgorICAgICAgICAoSlNDOjpIZWFwOjpz
d2VlcFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhl
YXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0
aW5lc1RvRGVsZXRlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0
aW5lcyk6CisgICAgICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAo
SlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXApOgorICAgICAgICAqIGhlYXAvSklUU3R1
YlJvdXRpbmVTZXQuY3BwOgorICAgICAgICAoSlNDOjpKSVRTdHViUm91dGluZVNldDo6ZGVsZXRl
VW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKToKKyAgICAgICAgKiBoZWFwL0pJVFN0dWJS
b3V0aW5lU2V0Lmg6CisgICAgICAgIChKU0M6OkpJVFN0dWJSb3V0aW5lU2V0OjptYXlIYXZlUm91
dGluZXNUb0RlbGV0ZSk6CisgICAgICAgIChKU0M6OkpJVFN0dWJSb3V0aW5lU2V0Ojpub3RpZnlI
YXZlUm91dGluZXNUb0RlbGV0ZSk6CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGlu
ZS5jcHA6CisgICAgICAgIChKU0M6OkdDQXdhcmVKSVRTdHViUm91dGluZTo6b2JzZXJ2ZVplcm9S
ZWZDb3VudCk6CisgICAgICAgICogaml0L0pJVFN0dWJSb3V0aW5lLmg6CisgICAgICAgIChKU0M6
OkpJVFN0dWJSb3V0aW5lOjpjcmVhdGVTZWxmTWFuYWdlZFJvdXRpbmUpOiBEZWxldGVkLgorCiAy
MDIxLTA1LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
c3ludGF4IGVycm9yIG1lc3NhZ2UgZm9yIEFVVE9QTFVTUExVUyB0b2tlbi4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTczLDcgKzk3Myw4
IEBAIHZvaWQgSGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUoKQogICAgIC8vIFN3ZWVw
aW5nIG11c3Qgb2NjdXIgYmVmb3JlIGRlbGV0aW5nIHN0dWJzLCBvdGhlcndpc2UgdGhlIHN0dWJz
IG1pZ2h0IHN0aWxsIHRoaW5rIHRoZXkncmUgYWxpdmUgYXMgdGhleSBnZXQgZGVsZXRlZC4KICAg
ICAvLyBBbmQgQ29kZUJsb2NrIGRlc3RydWN0b3IgaXMgYXNzdW1pbmcgdGhhdCBDb2RlQmxvY2sg
Z2V0cyBkZXN0cm95ZWQgYmVmb3JlIFVubGlua2VkQ29kZUJsb2NrIGdldHMgZGVzdHJveWVkLgog
ICAgIHZtKCkuZm9yRWFjaENvZGVCbG9ja1NwYWNlKFtdIChhdXRvJiBzcGFjZSkgeyBzcGFjZS5z
cGFjZS5zd2VlcCgpOyB9KTsKLSAgICBtX2ppdFN0dWJSb3V0aW5lcy0+ZGVsZXRlVW5tYXJrZWRK
ZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7CisgICAgaWYgKG1heUhhdmVKSVRTdHViUm91dGluZXNU
b0RlbGV0ZSgpKQorICAgICAgICBkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKDVfbXMpOwogfQog
CiB2b2lkIEhlYXA6OmFkZFRvUmVtZW1iZXJlZFNldChjb25zdCBKU0NlbGwqIGNvbnN0Q2VsbCkK
QEAgLTEwNDAsNiArMTA0MSwxNCBAQCB2b2lkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpCiAg
ICAgfQogICAgIG1fb2JqZWN0U3BhY2Uuc3dlZXBCbG9ja3MoKTsKICAgICBtX29iamVjdFNwYWNl
LnNocmluaygpOworCisgICAgdW5zaWduZWQgcGFzc2VzID0gMDsKKyAgICB3aGlsZSAobWF5SGF2
ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkpIHsKKyAgICAgICAgY29uc3RleHByIFNlY29uZHMg
dW5saW1pdGVkVGltZSA9IDYwMF9zOworICAgICAgICBkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVz
KHVubGltaXRlZFRpbWUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChwYXNzZXMrKyA8IDEwMCk7
CisgICAgfQorCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmxvZ0dDKCkpKSB7CiAgICAgICAg
IE1vbm90b25pY1RpbWUgYWZ0ZXIgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgZGF0
YUxvZygiPT4gIiwgY2FwYWNpdHkoKSAvIDEwMjQsICJrYiwgIiwgKGFmdGVyIC0gYmVmb3JlKS5t
aWxsaXNlY29uZHMoKSwgIm1zIik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShy
ZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwNiw2ICs0MDYsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTWFy
a2luZ0ZvckdDVmVyaWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lzTWFya2luZ0ZvckdDVmVyaWZp
ZXI7IH0KIAorICAgIHN0YXRpYyBib29sIG1heUhhdmVKSVRTdHViUm91dGluZXNUb0RlbGV0ZSgp
OworICAgIHZvaWQgZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcyhTZWNvbmRzIHRpbWVTbGljZSk7
CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEFsbG9jYXRpbmdTY29wZTsKICAgICBmcmll
bmQgY2xhc3MgQ29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
SW5saW5lcy5oCShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiSGVhcC5oIgogI2luY2x1ZGUgIkhlYXBDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkluZGV4
aW5nSGVhZGVyLmgiCisjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmVTZXQuaCIKICNpbmNsdWRlICJK
U0Nhc3QuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K
QEAgLTI3OSw0ICsyODAsMTQgQEAgdm9pZCBIZWFwOjpmb3JFYWNoU2xvdFZpc2l0b3IoY29uc3Qg
RnVuYwogICAgICAgICBmdW5jKCp2aXNpdG9yKTsKIH0KIAoraW5saW5lIGJvb2wgSGVhcDo6bWF5
SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkKK3sKKyAgICByZXR1cm4gSklUU3R1YlJvdXRp
bmVTZXQ6Om1heUhhdmVSb3V0aW5lc1RvRGVsZXRlKCk7Cit9CisKK2lubGluZSB2b2lkIEhlYXA6
OmRlbGV0ZURlYWRKSVRTdHViUm91dGluZXMoU2Vjb25kcyB0aW1lU2xpY2UpCit7CisgICAgbV9q
aXRTdHViUm91dGluZXMtPmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcyh0aW1l
U2xpY2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAkocmV2aXNpb24gMjc2OTQx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9IDEwX21zOwogc3RhdGljIGNvbnN0ZXhw
ciBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAuMTA7CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBz
d2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBUaW1lVG90YWw7CitzdGF0aWMgY29uc3Rl
eHByIFNlY29uZHMgZGVsZXRlSklUU3R1YlJvdXRpbmVzVGltZVNsaWNlID0gc3RkOjptaW4oc3dl
ZXBUaW1lU2xpY2UgLyAxMCwgMV9tcyk7CiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzY2hl
ZHVsZVRpbWVyKCkKIHsKQEAgLTU1LDcgKzU2LDE3IEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVy
Ojpkb1dvcmsoVk0mIHZtKQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcChWTSYg
dm0sIE1vbm90b25pY1RpbWUgc3dlZXBCZWdpblRpbWUpCiB7Ci0gICAgd2hpbGUgKHN3ZWVwTmV4
dEJsb2NrKHZtKSkgeworICAgIGJvb2wgaGFzTW9yZUJsb2Nrc1RvU3dlZXAgPSB0cnVlOworICAg
IGJvb2wgaGFzTW9yZVdvcmsgPSB0cnVlOworICAgIHdoaWxlIChoYXNNb3JlV29yaykgeworICAg
ICAgICBpZiAoaGFzTW9yZUJsb2Nrc1RvU3dlZXApCisgICAgICAgICAgICBoYXNNb3JlQmxvY2tz
VG9Td2VlcCA9IHN3ZWVwTmV4dEJsb2NrKHZtKTsKKworICAgICAgICBpZiAoSGVhcDo6bWF5SGF2
ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkpCisgICAgICAgICAgICB2bS5oZWFwLmRlbGV0ZURl
YWRKSVRTdHViUm91dGluZXMoZGVsZXRlSklUU3R1YlJvdXRpbmVzVGltZVNsaWNlKTsKKworICAg
ICAgICBoYXNNb3JlV29yayA9IGhhc01vcmVCbG9ja3NUb1N3ZWVwIHx8IEhlYXA6Om1heUhhdmVK
SVRTdHViUm91dGluZXNUb0RlbGV0ZSgpOworCiAgICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3ZWVwQmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxh
cHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSklUU3R1YlJvdXRpbmVTZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0pJVFN0dWJSb3V0aW5lU2V0LmNwcAko
cmV2aXNpb24gMjc2OTQxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSklUU3R1YlJv
dXRpbmVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSwxNCBAQAogI2lmIEVOQUJM
RShKSVQpCiAKICNpbmNsdWRlICJHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCIKKyNpbmNsdWRlIDxh
bGdvcml0aG0+CiAKIG5hbWVzcGFjZSBKU0MgewogCit1c2luZyBXVEY6OlJhbmdlOworCitib29s
IEpJVFN0dWJSb3V0aW5lU2V0OjpzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlID0gZmFsc2U7CisK
IEpJVFN0dWJSb3V0aW5lU2V0OjpKSVRTdHViUm91dGluZVNldCgpIHsgfQogSklUU3R1YlJvdXRp
bmVTZXQ6On5KSVRTdHViUm91dGluZVNldCgpCiB7CkBAIC0xMTMsMTkgKzExOCw0NiBAQCB2b2lk
IEpJVFN0dWJSb3V0aW5lU2V0OjptYXJrU2xvdyh1aW50cHRyCiAgICAgfQogfQogCi12b2lkIEpJ
VFN0dWJSb3V0aW5lU2V0OjpkZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoKQor
dm9pZCBKSVRTdHViUm91dGluZVNldDo6ZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRp
bmVzKFNlY29uZHMgdGltZVNsaWNlKQogeworICAgIEFTU0VSVChzX21heUhhdmVSb3V0aW5lc1Rv
RGVsZXRlKTsKKworICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgU2Vjb25kcyBlbGFwc2VkVGltZTsKKyAgICBjb25zdGV4cHIgdW5zaWduZWQg
bWF4QmF0Y2hTaXplID0gMTAwOworCisgICAgdW5zaWduZWQgZW5kSW5kZXggPSBtX3JvdXRpbmVz
LnNpemUoKTsKKworICAgIC8vIENsZWFyIHRoZSBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlIGZs
YWcgYmVmb3JlIHdlIHN0YXJ0LgorICAgIC8vIERlc3RydWN0aW5nIG9mIGEgTWFya2luZ0dDQXdh
cmVKSVRTdHViUm91dGluZSBjYW4gdHJpZ2dlciBtb3JlIHJvdXRpbmVzCisgICAgLy8gdG8gYmUg
ZGVsZXRlZCwgYW5kIHNvbWUgb2YgdGhvc2UgbWF5IGJlIHRoZSBvbmVzIHdlIGhhdmUgYWxyYWR5
IGl0ZXJhdGVkCisgICAgLy8gcGFzcy4KKyAgICBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlID0g
ZmFsc2U7CisKICAgICB1bnNpZ25lZCBzcmNJbmRleCA9IDA7Ci0gICAgdW5zaWduZWQgZHN0SW5k
ZXggPSBzcmNJbmRleDsKLSAgICB3aGlsZSAoc3JjSW5kZXggPCBtX3JvdXRpbmVzLnNpemUoKSkg
ewotICAgICAgICBSb3V0aW5lIHJvdXRpbmUgPSBtX3JvdXRpbmVzW3NyY0luZGV4KytdOwotICAg
ICAgICBpZiAoIXJvdXRpbmUucm91dGluZS0+bV9pc0pldHRpc29uZWQgfHwgcm91dGluZS5yb3V0
aW5lLT5tX21heUJlRXhlY3V0aW5nKSB7Ci0gICAgICAgICAgICBtX3JvdXRpbmVzW2RzdEluZGV4
KytdID0gcm91dGluZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgIHdoaWxlIChzcmNJbmRl
eCA8IGVuZEluZGV4KSB7CisgICAgICAgIHVuc2lnbmVkIGJhdGNoU2l6ZSA9IHN0ZDo6bWluPHVu
c2lnbmVkPihtYXhCYXRjaFNpemUsIGVuZEluZGV4IC0gc3JjSW5kZXgpOworICAgICAgICB3aGls
ZSAoYmF0Y2hTaXplLS0pIHsKKyAgICAgICAgICAgIFJvdXRpbmUgcm91dGluZSA9IG1fcm91dGlu
ZXNbc3JjSW5kZXhdOworICAgICAgICAgICAgaWYgKCFyb3V0aW5lLnJvdXRpbmUtPm1faXNKZXR0
aXNvbmVkIHx8IHJvdXRpbmUucm91dGluZS0+bV9tYXlCZUV4ZWN1dGluZykgeworICAgICAgICAg
ICAgICAgIHNyY0luZGV4Kys7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBtX3JvdXRpbmVzW3NyY0luZGV4XSA9IG1fcm91dGluZXNbLS1lbmRJ
bmRleF07CisKKyAgICAgICAgICAgIHJvdXRpbmUucm91dGluZS0+ZGVsZXRlRnJvbUdDKCk7Cisg
ICAgICAgIH0KKworICAgICAgICBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0g
c3RhcnRUaW1lOworICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPiB0aW1lU2xpY2UpIHsKKyAgICAg
ICAgICAgIC8vIFdlIHRpbWVkIG91dC4gQXNzdW1lIHRoZXJlJ3MgbW9yZSB0byBkbywgYW5kIHRo
YXQgd2Ugc2hvdWxkIGNoZWNrCisgICAgICAgICAgICAvLyBhZ2FpbiBuZXh0IHRpbWUgc2xpY2Uu
CisgICAgICAgICAgICBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIHJvdXRpbmUucm91dGluZS0+ZGVsZXRlRnJv
bUdDKCk7CiAgICAgfQotICAgIG1fcm91dGluZXMuc2hyaW5rQ2FwYWNpdHkoZHN0SW5kZXgpOwor
CisgICAgbV9yb3V0aW5lcy5zaHJpbmtDYXBhY2l0eShlbmRJbmRleCk7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFZpc2l0b3I+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9KSVRT
dHViUm91dGluZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0pJVFN0dWJSb3V0aW5lU2V0LmgJKHJldmlzaW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0pJVFN0dWJSb3V0aW5lU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDgg
KzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvUmFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKLXVzaW5nIFdURjo6UmFuZ2U7Ci0KIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBHQ0F3YXJl
SklUU3R1YlJvdXRpbmU7CkBAIC02MSwxMCArNTksMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBw
cmVwYXJlRm9yQ29uc2VydmF0aXZlU2NhbigpOwogICAgIAotICAgIHZvaWQgZGVsZXRlVW5tYXJr
ZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7CisgICAgdm9pZCBkZWxldGVVbm1hcmtlZEpldHRp
c29uZWRTdHViUm91dGluZXMoU2Vjb25kcyB0aW1lU2xpY2UpOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB0cmFjZU1hcmtlZFN0dWJSb3V0aW5lcyhWaXNpdG9yJik7Ci0g
ICAgCisKKyAgICBzdGF0aWMgYm9vbCBtYXlIYXZlUm91dGluZXNUb0RlbGV0ZSgpIHsgcmV0dXJu
IHNfbWF5SGF2ZVJvdXRpbmVzVG9EZWxldGU7IH0KKyAgICBzdGF0aWMgdm9pZCBub3RpZnlIYXZl
Um91dGluZXNUb0RlbGV0ZSgpIHsgc19tYXlIYXZlUm91dGluZXNUb0RlbGV0ZSA9IHRydWU7IH0K
KwogcHJpdmF0ZToKICAgICB2b2lkIG1hcmtTbG93KHVpbnRwdHJfdCBhZGRyZXNzKTsKICAgICAK
QEAgLTczLDcgKzc0LDkgQEAgcHJpdmF0ZToKICAgICAgICAgR0NBd2FyZUpJVFN0dWJSb3V0aW5l
KiByb3V0aW5lOwogICAgIH07CiAgICAgVmVjdG9yPFJvdXRpbmU+IG1fcm91dGluZXM7Ci0gICAg
UmFuZ2U8dWludHB0cl90PiBtX3JhbmdlIHsgMCwgMCB9OworICAgIFdURjo6UmFuZ2U8dWludHB0
cl90PiBtX3JhbmdlIHsgMCwgMCB9OworCisgICAgc3RhdGljIGJvb2wgc19tYXlIYXZlUm91dGlu
ZXNUb0RlbGV0ZTsKIH07CiAKICNlbHNlIC8vICFFTkFCTEUoSklUKQpAQCAtOTAsOCArOTMsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJNYXJrcygpIHsgfQogICAgIHZvaWQgbWFyayh2b2lk
KikgeyB9CiAgICAgdm9pZCBwcmVwYXJlRm9yQ29uc2VydmF0aXZlU2NhbigpIHsgfQotICAgIHZv
aWQgZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCkgeyB9CisgICAgdm9pZCBk
ZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoU2Vjb25kcykgeyB9CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9pZCB0cmFjZU1hcmtlZFN0dWJSb3V0aW5lcyhWaXNp
dG9yJikgeyB9CisKKyAgICBzdGF0aWMgYm9vbCBtYXlIYXZlUm91dGluZXNUb0RlbGV0ZSgpIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIHZvaWQgbm90aWZ5SGF2ZVJvdXRpbmVzVG9EZWxl
dGUoKSB7IH0KIH07CiAKICNlbmRpZiAvLyAhRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5jcHAJKHJldmlz
aW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJS
b3V0aW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIEdDQXdhcmVK
SVRTdHViUm91dGluZTo6b2JzZXJ2ZVplcm9SCiAgICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVmQ291
bnQpOwogCiAgICAgbV9pc0pldHRpc29uZWQgPSB0cnVlOworICAgIEpJVFN0dWJSb3V0aW5lU2V0
Ojpub3RpZnlIYXZlUm91dGluZXNUb0RlbGV0ZSgpOwogfQogCiB2b2lkIEdDQXdhcmVKSVRTdHVi
Um91dGluZTo6ZGVsZXRlRnJvbUdDKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YlJvdXRpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN0dWJSb3V0aW5lLmgJKHJldmlzaW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDE0ICs1NSw2
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIC8vIFVzZSB0aGlzIGlmIHlvdSB3
YW50IHRvIHBhc3MgYSBDb2RlUHRyIHRvIHNvbWVvbmUgd2hvIGluc2lzdHMgb24gdGFraW5nCi0g
ICAgLy8gYSBSZWZQdHI8SklUU3R1YlJvdXRpbmU+LgotICAgIHN0YXRpYyBSZWY8SklUU3R1YlJv
dXRpbmU+IGNyZWF0ZVNlbGZNYW5hZ2VkUm91dGluZSgKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiByYXdDb2RlUG9pbnRlcikKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpJVFN0dWJSb3V0aW5lKE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz46OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihyYXdD
b2RlUG9pbnRlcikpKTsKLSAgICB9Ci0gICAgCiAgICAgdmlydHVhbCB+SklUU3R1YlJvdXRpbmUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvdXRUb0RpZSgpIHsgfQogICAgIAo=
</data>
<flag name="commit-queue"
          id="448418"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427721</attachid>
            <date>2021-05-04 18:41:05 -0700</date>
            <delta_ts>2021-05-05 10:18:01 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225376.patch</filename>
            <type>text/plain</type>
            <size>13747</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2OTk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDIxLTA1LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgaW5jcmVtZW50YWwgc3dlZXBpbmcgb2YgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTM3NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bWFrZXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAgICAgIDEuIEVuaGFuY2UgSklUU3R1
YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcygpIHRvIGJl
IGFibGUgdG8KKyAgICAgICAgICAgcnVuIGluIGFuIGluY3JlbWVudGFsIHRpbWUgc2xpY2UuCisK
KyAgICAgICAgMi4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om5vdGlmeUhhdmVSb3V0aW5lc1Rv
RGVsZXRlKCkgc28gdGhhdAorICAgICAgICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmU6Om9ic2Vy
dmVaZXJvUmVmQ291bnQoKSBjYW4gZmxhZyB0aGF0IHRoZSBHQyBtYXkgaGF2ZQorICAgICAgICAg
ICBzb21lIGRlYWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lcyB0byBkZWxldGUuCisKKyAgICAgICAg
My4gQWRkZWQgSklUU3R1YlJvdXRpbmVTZXQ6Om1heUhhdmVSb3V0aW5lc1RvRGVsZXRlKCkgc28g
dGhhdCBjbGllbnRzIGNhbiBkbworICAgICAgICAgICBhIGNoZWFwIGNoZWNrIGFoZWFkIG9mIHRp
bWUgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlJ3Mgd29yayB0byBkbywgYW5kIGF2b2lkCisgICAgICAg
ICAgIGNhbGxpbmcgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGFsdG9nZXRoZXIKKyAgICAgICAgICAgaWYgbm90IG5lZWRlZC4KKworICAg
ICAgICA0LiBBZGRlZCBIZWFwOjptYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKSBhbmQg
SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcygpCisgICAgICAgICAgIGFzIHdyYXBwZXJz
IGFyb3VuZCBKSVRTdHViUm91dGluZVNldDo6bWF5SGF2ZVJvdXRpbmVzVG9EZWxldGUoKSBhbmQK
KyAgICAgICAgICAgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpIGJlY2F1c2UgdGhlIHVzZSBvZgorICAgICAgICAgICB0aGUgSklUU3R1YlJv
dXRpbmVTZXQgaXMgYSBoZWFwIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKworICAg
ICAgICA1LiBFbmhhbmNlZCB0aGUgSW5jcmVtZW50YWxTd2VlcGVyIHRvIGFsc28gY2FsbCBIZWFw
OjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVkLgorCisg
ICAgICAgIDYuIEVuaGFuY2VkIEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpIHRvIGFsc28gY2Fs
bCBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJvdXRpbmVzKCkKKyAgICAgICAgICAgaWYgbmVlZGVk
LgorCisgICAgICAgIDcuIFRpbWUgc2xpY2VzIGZvciBIZWFwOjpkZWxldGVEZWFkSklUU3R1YlJv
dXRpbmVzKCkgaXMgY3VycmVudGx5IHNldCBhdCB0aGUKKyAgICAgICAgICAgY3VycmVudCB2YWx1
ZXM6CisgICAgICAgICAgIGEuIG1heCBvZiAxIG1zICgxLzEwIG9mIHRoZSBJbmNyZWFtZW50YWxT
d2VlcGVyJ3MgdGltZSBzbGljZSkgd2hlbiBpbnZva2VkIGZyb20KKyAgICAgICAgICAgICAgdGhl
IEluY3JlYW1lbnRhbFN3ZWVwZXIuCisgICAgICAgICAgIGIuIG1heCBvZiA1IG1zIHdoZW4gaW52
b2tlZCBmcm9tIEhlYXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkuCisgICAgICAgICAg
IGMuIHVubGltaXRlZCB0aW1lICh3aXRoIGEgc2FuaXR5IGNoZWNrKSB3aGVuIGNhbGxlZCBmcm9t
IEhlYXA6OnN3ZWVwU3luY2hyb25vdXNseSgpLgorCisgICAgICAgICAgIFRoZSBjaG9pY2VzIG9m
IDFtcyBhbmQgNW1zIHdlcmUgcGlja2VkIHRvIG5vdCBiZSB0b28gbG9uZywgYnV0IHdvdWxkIHN0
aWxsIGRlbGV0ZQorICAgICAgICAgICB0aGUgYnVsayBvZiB0aGUgZGVhZCBHQ0F3YXJlSklUU3R1
YlJvdXRpbmVzIHF1aWNrbHkgZW5vdWdoIGJhc2VkIG9uIGRhdGEgZnJvbSBteQorICAgICAgICAg
ICBpbnN0cnVtZW50ZWQgcnVucyB0aGUgQ0xJIHZlcnNpb24gb2YgSmV0U3RyZWFtMi4KKworICAg
ICAgICAgICBJIHRoaW5rIHRoZXNlIGhhcmRjb2RlZCB2YWx1ZXMgd2lsbCBkbyBmb3Igbm93LiAg
SWYgbmVlZCBiZSwgd2UgY2FuIHRyeSBzb21ldGhpbmcKKyAgICAgICAgICAgbW9yZSBzb3BoaXN0
aWNhdGVkIGxhdGVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogaGVh
cC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENv
ZGUpOgorICAgICAgICAoSlNDOjpIZWFwOjpzd2VlcFN5bmNocm9ub3VzbHkpOgorICAgICAgICAq
IGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKToKKyAgICAgICAgKEpTQzo6
SGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcyk6CisgICAgICAgICogaGVhcC9JbmNyZW1l
bnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dl
ZXApOgorICAgICAgICAqIGhlYXAvSklUU3R1YlJvdXRpbmVTZXQuY3BwOgorICAgICAgICAoSlND
OjpKSVRTdHViUm91dGluZVNldDo6ZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVz
KToKKyAgICAgICAgKiBoZWFwL0pJVFN0dWJSb3V0aW5lU2V0Lmg6CisgICAgICAgIChKU0M6OkpJ
VFN0dWJSb3V0aW5lU2V0OjptYXlIYXZlUm91dGluZXNUb0RlbGV0ZSk6CisgICAgICAgIChKU0M6
OkpJVFN0dWJSb3V0aW5lU2V0Ojpub3RpZnlIYXZlUm91dGluZXNUb0RlbGV0ZSk6CisgICAgICAg
IChKU0M6OkpJVFN0dWJSb3V0aW5lU2V0OjpkZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91
dGluZXMpOgorICAgICAgICAqIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwOgorICAgICAg
ICAoSlNDOjpHQ0F3YXJlSklUU3R1YlJvdXRpbmU6Om9ic2VydmVaZXJvUmVmQ291bnQpOgorICAg
ICAgICAqIGppdC9KSVRTdHViUm91dGluZS5oOgorICAgICAgICAoSlNDOjpKSVRTdHViUm91dGlu
ZTo6Y3JlYXRlU2VsZk1hbmFnZWRSb3V0aW5lKTogRGVsZXRlZC4KKwogMjAyMS0wNS0wMyAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHN5bnRheCBlcnJvciBt
ZXNzYWdlIGZvciBBVVRPUExVU1BMVVMgdG9rZW4uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY3Miw2ICs2NzIsNyBAQCBzZXQoSmF2
YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBCiAgICAgaGVhcC9Jc29TdWJzcGFjZS5o
CiAgICAgaGVhcC9Jc29TdWJzcGFjZUlubGluZXMuaAogICAgIGhlYXAvSXNvU3Vic3BhY2VQZXJW
TS5oCisgICAgaGVhcC9KSVRTdHViUm91dGluZVNldC5oCiAgICAgaGVhcC9Mb2NhbEFsbG9jYXRv
ci5oCiAgICAgaGVhcC9Mb2NhbEFsbG9jYXRvcklubGluZXMuaAogICAgIGhlYXAvTG9ja0R1cmlu
Z01hcmtpbmcuaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05NzMsNyArOTczLDggQEAgdm9pZCBIZWFwOjpkZWxldGVVbm1hcmtlZENvbXBp
bGVkQ29kZSgpCiAgICAgLy8gU3dlZXBpbmcgbXVzdCBvY2N1ciBiZWZvcmUgZGVsZXRpbmcgc3R1
YnMsIG90aGVyd2lzZSB0aGUgc3R1YnMgbWlnaHQgc3RpbGwgdGhpbmsgdGhleSdyZSBhbGl2ZSBh
cyB0aGV5IGdldCBkZWxldGVkLgogICAgIC8vIEFuZCBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBpcyBh
c3N1bWluZyB0aGF0IENvZGVCbG9jayBnZXRzIGRlc3Ryb3llZCBiZWZvcmUgVW5saW5rZWRDb2Rl
QmxvY2sgZ2V0cyBkZXN0cm95ZWQuCiAgICAgdm0oKS5mb3JFYWNoQ29kZUJsb2NrU3BhY2UoW10g
KGF1dG8mIHNwYWNlKSB7IHNwYWNlLnNwYWNlLnN3ZWVwKCk7IH0pOwotICAgIG1faml0U3R1YlJv
dXRpbmVzLT5kZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoKTsKKyAgICBpZiAo
bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCkpCisgICAgICAgIGRlbGV0ZURlYWRKSVRT
dHViUm91dGluZXMoNV9tcyk7CiB9CiAKIHZvaWQgSGVhcDo6YWRkVG9SZW1lbWJlcmVkU2V0KGNv
bnN0IEpTQ2VsbCogY29uc3RDZWxsKQpAQCAtMTA0MCw2ICsxMDQxLDE0IEBAIHZvaWQgSGVhcDo6
c3dlZXBTeW5jaHJvbm91c2x5KCkKICAgICB9CiAgICAgbV9vYmplY3RTcGFjZS5zd2VlcEJsb2Nr
cygpOwogICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5rKCk7CisKKyAgICB1bnNpZ25lZCBwYXNzZXMg
PSAwOworICAgIHdoaWxlIChtYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKSkgeworICAg
ICAgICBjb25zdGV4cHIgU2Vjb25kcyB1bmxpbWl0ZWRUaW1lID0gNjAwX3M7CisgICAgICAgIGRl
bGV0ZURlYWRKSVRTdHViUm91dGluZXModW5saW1pdGVkVGltZSk7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHBhc3NlcysrIDwgMTAwKTsKKyAgICB9CisKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6bG9nR0MoKSkpIHsKICAgICAgICAgTW9ub3RvbmljVGltZSBhZnRlciA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogICAgICAgICBkYXRhTG9nKCI9PiAiLCBjYXBhY2l0eSgpIC8gMTAyNCwgImti
LCAiLCAoYWZ0ZXIgLSBiZWZvcmUpLm1pbGxpc2Vjb25kcygpLCAibXMiKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDI3Njk0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDA2LDYgKzQwNiw5IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNNYXJraW5nRm9yR0NWZXJpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faXNNYXJraW5nRm9yR0NWZXJpZmllcjsgfQogCisgICAgc3RhdGljIGJvb2wgbWF5SGF2ZUpJ
VFN0dWJSb3V0aW5lc1RvRGVsZXRlKCk7CisgICAgdm9pZCBkZWxldGVEZWFkSklUU3R1YlJvdXRp
bmVzKFNlY29uZHMgdGltZVNsaWNlKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQWxs
b2NhdGluZ1Njb3BlOwogICAgIGZyaWVuZCBjbGFzcyBDb2RlQmxvY2s7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgJKHJldmlzaW9uIDI3Njk0MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcENlbGxJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSW5kZXhpbmdIZWFkZXIuaCIKKyNpbmNsdWRlICJKSVRTdHViUm91
dGluZVNldC5oIgogI2luY2x1ZGUgIkpTQ2FzdC5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgog
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgpAQCAtMjc5LDQgKzI4MCwxNCBAQCB2b2lkIEhlYXA6OmZv
ckVhY2hTbG90VmlzaXRvcihjb25zdCBGdW5jCiAgICAgICAgIGZ1bmMoKnZpc2l0b3IpOwogfQog
CitpbmxpbmUgYm9vbCBIZWFwOjptYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKQorewor
ICAgIHJldHVybiBKSVRTdHViUm91dGluZVNldDo6bWF5SGF2ZVJvdXRpbmVzVG9EZWxldGUoKTsK
K30KKworaW5saW5lIHZvaWQgSGVhcDo6ZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcyhTZWNvbmRz
IHRpbWVTbGljZSkKK3sKKyAgICBtX2ppdFN0dWJSb3V0aW5lcy0+ZGVsZXRlVW5tYXJrZWRKZXR0
aXNvbmVkU3R1YlJvdXRpbmVzKHRpbWVTbGljZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwCShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG5h
bWVzcGFjZSBKU0Mgewogc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHN3ZWVwVGltZVNsaWNlID0g
MTBfbXM7CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4xMDsKIHN0
YXRpYyBjb25zdGV4cHIgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxpZXIgPSAxLjAgLyBzd2VlcFRp
bWVUb3RhbDsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBkZWxldGVKSVRTdHViUm91dGluZXNU
aW1lU2xpY2UgPSBzdGQ6Om1pbihzd2VlcFRpbWVTbGljZSAvIDEwLCAxX21zKTsKIAogdm9pZCBJ
bmNyZW1lbnRhbFN3ZWVwZXI6OnNjaGVkdWxlVGltZXIoKQogewpAQCAtNTUsNyArNTYsMTcgQEAg
dm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvV29yayhWTSYgdm0pCiAKIHZvaWQgSW5jcmVtZW50
YWxTd2VlcGVyOjpkb1N3ZWVwKFZNJiB2bSwgTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGltZSkK
IHsKLSAgICB3aGlsZSAoc3dlZXBOZXh0QmxvY2sodm0pKSB7CisgICAgYm9vbCBoYXNNb3JlQmxv
Y2tzVG9Td2VlcCA9IHRydWU7CisgICAgYm9vbCBoYXNNb3JlV29yayA9IHRydWU7CisgICAgd2hp
bGUgKGhhc01vcmVXb3JrKSB7CisgICAgICAgIGlmIChoYXNNb3JlQmxvY2tzVG9Td2VlcCkKKyAg
ICAgICAgICAgIGhhc01vcmVCbG9ja3NUb1N3ZWVwID0gc3dlZXBOZXh0QmxvY2sodm0pOworCisg
ICAgICAgIGlmIChIZWFwOjptYXlIYXZlSklUU3R1YlJvdXRpbmVzVG9EZWxldGUoKSkKKyAgICAg
ICAgICAgIHZtLmhlYXAuZGVsZXRlRGVhZEpJVFN0dWJSb3V0aW5lcyhkZWxldGVKSVRTdHViUm91
dGluZXNUaW1lU2xpY2UpOworCisgICAgICAgIGhhc01vcmVXb3JrID0gaGFzTW9yZUJsb2Nrc1Rv
U3dlZXAgfHwgSGVhcDo6bWF5SGF2ZUpJVFN0dWJSb3V0aW5lc1RvRGVsZXRlKCk7CisKICAgICAg
ICAgU2Vjb25kcyBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3dlZXBCZWdp
blRpbWU7CiAgICAgICAgIGlmIChlbGFwc2VkVGltZSA8IHN3ZWVwVGltZVNsaWNlKQogICAgICAg
ICAgICAgY29udGludWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9KSVRTdHVi
Um91dGluZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SklUU3R1YlJvdXRpbmVTZXQuY3BwCShyZXZpc2lvbiAyNzY5NDEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9KSVRTdHViUm91dGluZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDkgKzI5LDE0IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkdDQXdhcmVKSVRTdHVi
Um91dGluZS5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3Vz
aW5nIFdURjo6UmFuZ2U7CisKK2Jvb2wgSklUU3R1YlJvdXRpbmVTZXQ6OnNfbWF5SGF2ZVJvdXRp
bmVzVG9EZWxldGUgPSBmYWxzZTsKKwogSklUU3R1YlJvdXRpbmVTZXQ6OkpJVFN0dWJSb3V0aW5l
U2V0KCkgeyB9CiBKSVRTdHViUm91dGluZVNldDo6fkpJVFN0dWJSb3V0aW5lU2V0KCkKIHsKQEAg
LTExMywxOSArMTE4LDQ2IEBAIHZvaWQgSklUU3R1YlJvdXRpbmVTZXQ6Om1hcmtTbG93KHVpbnRw
dHIKICAgICB9CiB9CiAKLXZvaWQgSklUU3R1YlJvdXRpbmVTZXQ6OmRlbGV0ZVVubWFya2VkSmV0
dGlzb25lZFN0dWJSb3V0aW5lcygpCit2b2lkIEpJVFN0dWJSb3V0aW5lU2V0OjpkZWxldGVVbm1h
cmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoU2Vjb25kcyB0aW1lU2xpY2UpCiB7CisgICAgQVNT
RVJUKHNfbWF5SGF2ZVJvdXRpbmVzVG9EZWxldGUpOworCisgICAgTW9ub3RvbmljVGltZSBzdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBTZWNvbmRzIGVsYXBzZWRUaW1lOwor
ICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhCYXRjaFNpemUgPSAxMDA7CisKKyAgICB1bnNpZ25l
ZCBlbmRJbmRleCA9IG1fcm91dGluZXMuc2l6ZSgpOworCisgICAgLy8gQ2xlYXIgdGhlIHNfbWF5
SGF2ZVJvdXRpbmVzVG9EZWxldGUgZmxhZyBiZWZvcmUgd2Ugc3RhcnQuCisgICAgLy8gRGVzdHJ1
Y3Rpbmcgb2YgYSBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lIGNhbiB0cmlnZ2VyIG1vcmUg
cm91dGluZXMKKyAgICAvLyB0byBiZSBkZWxldGVkLCBhbmQgc29tZSBvZiB0aG9zZSBtYXkgYmUg
dGhlIG9uZXMgd2UgaGF2ZSBhbHJhZHkgaXRlcmF0ZWQKKyAgICAvLyBwYXNzLgorICAgIHNfbWF5
SGF2ZVJvdXRpbmVzVG9EZWxldGUgPSBmYWxzZTsKKwogICAgIHVuc2lnbmVkIHNyY0luZGV4ID0g
MDsKLSAgICB1bnNpZ25lZCBkc3RJbmRleCA9IHNyY0luZGV4OwotICAgIHdoaWxlIChzcmNJbmRl
eCA8IG1fcm91dGluZXMuc2l6ZSgpKSB7Ci0gICAgICAgIFJvdXRpbmUgcm91dGluZSA9IG1fcm91
dGluZXNbc3JjSW5kZXgrK107Ci0gICAgICAgIGlmICghcm91dGluZS5yb3V0aW5lLT5tX2lzSmV0
dGlzb25lZCB8fCByb3V0aW5lLnJvdXRpbmUtPm1fbWF5QmVFeGVjdXRpbmcpIHsKLSAgICAgICAg
ICAgIG1fcm91dGluZXNbZHN0SW5kZXgrK10gPSByb3V0aW5lOwotICAgICAgICAgICAgY29udGlu
dWU7CisgICAgd2hpbGUgKHNyY0luZGV4IDwgZW5kSW5kZXgpIHsKKyAgICAgICAgdW5zaWduZWQg
YmF0Y2hTaXplID0gc3RkOjptaW48dW5zaWduZWQ+KG1heEJhdGNoU2l6ZSwgZW5kSW5kZXggLSBz
cmNJbmRleCk7CisgICAgICAgIHdoaWxlIChiYXRjaFNpemUtLSkgeworICAgICAgICAgICAgUm91
dGluZSByb3V0aW5lID0gbV9yb3V0aW5lc1tzcmNJbmRleF07CisgICAgICAgICAgICBpZiAoIXJv
dXRpbmUucm91dGluZS0+bV9pc0pldHRpc29uZWQgfHwgcm91dGluZS5yb3V0aW5lLT5tX21heUJl
RXhlY3V0aW5nKSB7CisgICAgICAgICAgICAgICAgc3JjSW5kZXgrKzsKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fcm91dGluZXNbc3JjSW5k
ZXhdID0gbV9yb3V0aW5lc1stLWVuZEluZGV4XTsKKworICAgICAgICAgICAgcm91dGluZS5yb3V0
aW5lLT5kZWxldGVGcm9tR0MoKTsKKyAgICAgICAgfQorCisgICAgICAgIGVsYXBzZWRUaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWU7CisgICAgICAgIGlmIChlbGFwc2VkVGlt
ZSA+IHRpbWVTbGljZSkgeworICAgICAgICAgICAgLy8gV2UgdGltZWQgb3V0LiBBc3N1bWUgdGhl
cmUncyBtb3JlIHRvIGRvLCBhbmQgdGhhdCB3ZSBzaG91bGQgY2hlY2sKKyAgICAgICAgICAgIC8v
IGFnYWluIG5leHQgdGltZSBzbGljZS4KKyAgICAgICAgICAgIHNfbWF5SGF2ZVJvdXRpbmVzVG9E
ZWxldGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgcm91
dGluZS5yb3V0aW5lLT5kZWxldGVGcm9tR0MoKTsKICAgICB9Ci0gICAgbV9yb3V0aW5lcy5zaHJp
bmtDYXBhY2l0eShkc3RJbmRleCk7CisKKyAgICBtX3JvdXRpbmVzLnNocmlua0NhcGFjaXR5KGVu
ZEluZGV4KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0pJVFN0dWJSb3V0aW5lU2V0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSklUU3R1YlJvdXRpbmVTZXQuaAkocmV2aXNpb24gMjc2
OTQxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSklUU3R1YlJvdXRpbmVTZXQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9SYW5nZS5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotdXNpbmcgV1RGOjpSYW5nZTsKLQogbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIEdDQXdhcmVKSVRTdHViUm91dGluZTsKQEAgLTYxLDEwICs1OSwxMyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHByZXBhcmVGb3JDb25zZXJ2YXRpdmVTY2FuKCk7CiAgICAg
Ci0gICAgdm9pZCBkZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoKTsKKyAgICB2
b2lkIGRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5lcyhTZWNvbmRzIHRpbWVTbGlj
ZSk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPiB2b2lkIHRyYWNlTWFya2VkU3R1
YlJvdXRpbmVzKFZpc2l0b3ImKTsKLSAgICAKKworICAgIHN0YXRpYyBib29sIG1heUhhdmVSb3V0
aW5lc1RvRGVsZXRlKCkgeyByZXR1cm4gc19tYXlIYXZlUm91dGluZXNUb0RlbGV0ZTsgfQorICAg
IHN0YXRpYyB2b2lkIG5vdGlmeUhhdmVSb3V0aW5lc1RvRGVsZXRlKCkgeyBzX21heUhhdmVSb3V0
aW5lc1RvRGVsZXRlID0gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgbWFya1Nsb3codWlu
dHB0cl90IGFkZHJlc3MpOwogICAgIApAQCAtNzMsNyArNzQsOSBAQCBwcml2YXRlOgogICAgICAg
ICBHQ0F3YXJlSklUU3R1YlJvdXRpbmUqIHJvdXRpbmU7CiAgICAgfTsKICAgICBWZWN0b3I8Um91
dGluZT4gbV9yb3V0aW5lczsKLSAgICBSYW5nZTx1aW50cHRyX3Q+IG1fcmFuZ2UgeyAwLCAwIH07
CisgICAgV1RGOjpSYW5nZTx1aW50cHRyX3Q+IG1fcmFuZ2UgeyAwLCAwIH07CisKKyAgICBzdGF0
aWMgYm9vbCBzX21heUhhdmVSb3V0aW5lc1RvRGVsZXRlOwogfTsKIAogI2Vsc2UgLy8gIUVOQUJM
RShKSVQpCkBAIC05MCw4ICs5MywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1hcmtzKCkg
eyB9CiAgICAgdm9pZCBtYXJrKHZvaWQqKSB7IH0KICAgICB2b2lkIHByZXBhcmVGb3JDb25zZXJ2
YXRpdmVTY2FuKCkgeyB9Ci0gICAgdm9pZCBkZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91
dGluZXMoKSB7IH0KKyAgICB2b2lkIGRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0aW5l
cyhTZWNvbmRzKSB7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPiB2b2lkIHRyYWNl
TWFya2VkU3R1YlJvdXRpbmVzKFZpc2l0b3ImKSB7IH0KKworICAgIHN0YXRpYyBib29sIG1heUhh
dmVSb3V0aW5lc1RvRGVsZXRlKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgdm9pZCBu
b3RpZnlIYXZlUm91dGluZXNUb0RlbGV0ZSgpIHsgfQogfTsKIAogI2VuZGlmIC8vICFFTkFCTEUo
SklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRp
bmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMjc2OTQxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2
ICs2Miw3IEBAIHZvaWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lOjpvYnNlcnZlWmVyb1IKICAgICBS
RUxFQVNFX0FTU0VSVCghbV9yZWZDb3VudCk7CiAKICAgICBtX2lzSmV0dGlzb25lZCA9IHRydWU7
CisgICAgSklUU3R1YlJvdXRpbmVTZXQ6Om5vdGlmeUhhdmVSb3V0aW5lc1RvRGVsZXRlKCk7CiB9
CiAKIHZvaWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lOjpkZWxldGVGcm9tR0MoKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAkocmV2aXNpb24gMjc2OTQx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTUsMTQgKzU1LDYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0g
ICAgLy8gVXNlIHRoaXMgaWYgeW91IHdhbnQgdG8gcGFzcyBhIENvZGVQdHIgdG8gc29tZW9uZSB3
aG8gaW5zaXN0cyBvbiB0YWtpbmcKLSAgICAvLyBhIFJlZlB0cjxKSVRTdHViUm91dGluZT4uCi0g
ICAgc3RhdGljIFJlZjxKSVRTdHViUm91dGluZT4gY3JlYXRlU2VsZk1hbmFnZWRSb3V0aW5lKAot
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHJhd0Nv
ZGVQb2ludGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSklUU3R1YlJv
dXRpbmUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPjo6Y3JlYXRl
U2VsZk1hbmFnZWRDb2RlUmVmKHJhd0NvZGVQb2ludGVyKSkpOwotICAgIH0KLSAgICAKICAgICB2
aXJ0dWFsIH5KSVRTdHViUm91dGluZSgpOwogICAgIHZpcnR1YWwgdm9pZCBhYm91dFRvRGllKCkg
eyB9CiAgICAgCg==
</data>
<flag name="review"
          id="448439"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>