<?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>235996</bug_id>
          
          <creation_ts>2022-02-01 18:42:07 -0800</creation_ts>
          <short_desc>Speed-up JSON.stringify() by avoiding &quot;toJSON&quot; property lookups</short_desc>
          <delta_ts>2022-02-02 17:06:24 -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>All</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1836289</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-01 18:42:07 -0800</bug_when>
    <thetext>Speed-up JSON.stringify() by avoiding &quot;toJSON&quot; property lookups</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836290</commentid>
    <comment_count>1</comment_count>
      <attachid>450601</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-01 18:45:49 -0800</bug_when>
    <thetext>Created attachment 450601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836291</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-01 18:46:11 -0800</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #1)
&gt; Created attachment 450601 [details]
&gt; Patch

                                              r288790                   patch

json-stringify-empty-array               109.4195+-0.3423     ^     89.3711+-0.2926        ^ definitely 1.2243x faster
json-stringify-array-replacer             26.5174+-0.0323           26.5100+-0.0257
json-stringify-many-objects              243.2980+-2.4751     ^    228.2883+-0.8872        ^ definitely 1.0657x faster
json-stringify-many-objects-to-json      170.5229+-0.3290     ^    152.2288+-0.4103        ^ definitely 1.1202x faster
vanilla-todomvc-json-stringify           192.3345+-0.4409     ^    185.5248+-0.2852        ^ definitely 1.0367x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836294</commentid>
    <comment_count>3</comment_count>
      <attachid>450601</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-01 18:47:48 -0800</bug_when>
    <thetext>Comment on attachment 450601
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        it accounts for 10-15% of running time. EmberJS* subtests rely on JSON.stringify() as

MacBookPro17,1:

VanillaJS-TodoMVC: 50ms
Vanilla-ES2015-TodoMVC: 65ms

JSON.stringify() takes 5-10ms, way slower on MiniBrowser than JSC shell for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836298</commentid>
    <comment_count>4</comment_count>
      <attachid>450601</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-01 18:53:23 -0800</bug_when>
    <thetext>Comment on attachment 450601
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        While we could come up with a solution that doesn&apos;t involve creating StructureRareData
&gt; +        for all structures we stringify, like keeping a list of StructureIDs w/o &quot;toJSON&quot; method,
&gt; +        which will be correct as long as `m_hasFastObjectProperties || m_isJSArray` is true for all
&gt; +        seen objects, that would probably miss some edge case, won&apos;t persist between JSON.stringify()
&gt; +        calls, and won&apos;t speed-up structures with &quot;toJSON&quot; methods like Dates.

Can you also include what your solution actually was, instead of potential alternate solutions? And how it works</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836445</commentid>
    <comment_count>5</comment_count>
      <attachid>450648</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-02 08:52:02 -0800</bug_when>
    <thetext>Created attachment 450648
Patch

Expand ChangeLog on actual solution and handle CachedSpecialPropertyKey::ToJSON in more places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836470</commentid>
    <comment_count>6</comment_count>
      <attachid>450648</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-02 09:09:28 -0800</bug_when>
    <thetext>Comment on attachment 450648
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836688</commentid>
    <comment_count>7</comment_count>
      <attachid>450648</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-02-02 16:13:09 -0800</bug_when>
    <thetext>Comment on attachment 450648
Patch

Thank you Saam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836711</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-02 17:05:07 -0800</bug_when>
    <thetext>Committed r289020 (246728@main): &lt;https://commits.webkit.org/246728@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450648.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836713</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-02 17:06:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/88409665&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450601</attachid>
            <date>2022-02-01 18:45:49 -0800</date>
            <delta_ts>2022-02-02 08:51:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235996-20220202024547.patch</filename>
            <type>text/plain</type>
            <size>6382</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODg5MzUpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTAxICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFw
cGxlLmNvbT4KKworICAgICAgICBTcGVlZC11cCBKU09OLnN0cmluZ2lmeSgpIGJ5IGF2b2lkaW5n
ICJ0b0pTT04iIHByb3BlcnR5IGxvb2t1cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTk5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2pzb24tc3RyaW5naWZ5LW1hbnkt
b2JqZWN0cy10by1qc29uLmpzOgorICAgICAgICBNYWtlIHRoaXMgdGVzdCBhIGxpdHRsZSBtb3Jl
IHJlYWxpc3RpYyBieSBtb3ZpbmcgInRvSlNPTiIgb250byBwcm90b3R5cGUuCisKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvdmFuaWxsYS10b2RvbXZjLWpzb24tc3RyaW5naWZ5LmpzOiBBZGRl
ZC4KKwogMjAyMi0wMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODg1MzguCkluZGV4OiBKU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9qc29uLXN0cmluZ2lmeS1tYW55LW9iamVjdHMtdG8tanNvbi5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXN0cmluZ2lmeS1tYW55
LW9iamVjdHMtdG8tanNvbi5qcwkocmV2aXNpb24gMjg4NzkwKQorKysgSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvanNvbi1zdHJpbmdpZnktbWFueS1vYmplY3RzLXRvLWpzb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACi1jb25zdCB0b0pTT04gPSAoKSA9PiAnJzsKK2Z1bmN0aW9u
IEMoKSB7fQorQy5wcm90b3R5cGUudG9KU09OID0gKCkgPT4gJyc7CiBjb25zdCB2YWx1ZSA9IHt9
OwogZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkKLSAgICB2YWx1ZVtpXSA9IHt0b0pTT059
OworICAgIHZhbHVlWyJrIiArIGldID0gbmV3IEM7CiBmb3IgKGxldCBpID0gMDsgaSA8IDFlNSAv
IDQ7ICsraSkKICAgICBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CkluZGV4OiBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy92YW5pbGxhLXRvZG9tdmMtanNvbi1zdHJpbmdpZnkuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvdmFuaWxsYS10b2RvbXZjLWpzb24tc3RyaW5naWZ5
LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3ZhbmlsbGEtdG9k
b212Yy1qc29uLXN0cmluZ2lmeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACiso
ZnVuY3Rpb24oKSB7CisgICAgdmFyIHRvZG9zID0gbmV3IEFycmF5KDY3KTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDY3OyBpKyspCisgICAgICAgIHRvZG9zW2ldID0geyB0aXRsZTogIlNvbWV0
aGluZyB0byBkbyIsIGNvbXBsZXRlZDogdHJ1ZSwgaWQ6IGkgfTsKKyAgICB2YXIgc3RhdGUgPSB7
IHRvZG9zIH07CisKKyAgICB2YXIganNvbjsKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IDJlNDsg
aisrKQorICAgICAgICBqc29uID0gSlNPTi5zdHJpbmdpZnkoc3RhdGUpOworCisgICAgaWYgKGpz
b24ubGVuZ3RoICE9PSAzNTUyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBhc3NlcnRp
b24hIik7Cit9KSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODg3
OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMjItMDItMDEgIEFsZXhleSBTaHZheWthICA8YXNodmF5a2FAYXBw
bGUuY29tPgorCisgICAgICAgIFNwZWVkLXVwIEpTT04uc3RyaW5naWZ5KCkgYnkgYXZvaWRpbmcg
InRvSlNPTiIgcHJvcGVydHkgbG9va3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlZWRvbWV0ZXIyL1ZhbmlsbGEqIHN1YnRlc3RzIGFyZSBoaWdo
bHkgcmVsaWFudCBvbiBKU09OLnN0cmluZ2lmeSgpIGZvciAic3RvcmFnZSI6CisgICAgICAgIGl0
IGFjY291bnRzIGZvciAxMC0xNSUgb2YgcnVubmluZyB0aW1lLiBFbWJlckpTKiBzdWJ0ZXN0cyBy
ZWx5IG9uIEpTT04uc3RyaW5naWZ5KCkgYXMKKyAgICAgICAgd2VsbCwgYWx0aG91Z2ggdGhleSBh
cmUgc2lnbmlmaWNhbnRseSBzbG93ZXIgb3ZlcmFsbCwgYW5kIGFsc28gZW5jb3VudGVyIG9ubHkg
YSBmZXcKKyAgICAgICAgZGlmZmVyZW50IHN0cnVjdHVyZXMuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgbGV2ZXJhZ2VzIGNhY2hlU3BlY2lhbFByb3BlcnR5KCkgdG8gYXZvaWQgInRvSlNPTiIgbG9v
a3VwcywgcHJvZ3Jlc3NpbmcgdGhlCisgICAgICAgIG1pY3JvYmVuY2htYXJrLCB3aGljaCB3YXMg
Y2FyZWZ1bGx5IGV4dHJhY3RlZCBmcm9tIFNwZWVkb21ldGVyMi9WYW5pbGxhKiBzdWJ0ZXN0cywg
YnkgMy43JS4KKworICAgICAgICBXaGlsZSB3ZSBjb3VsZCBjb21lIHVwIHdpdGggYSBzb2x1dGlv
biB0aGF0IGRvZXNuJ3QgaW52b2x2ZSBjcmVhdGluZyBTdHJ1Y3R1cmVSYXJlRGF0YQorICAgICAg
ICBmb3IgYWxsIHN0cnVjdHVyZXMgd2Ugc3RyaW5naWZ5LCBsaWtlIGtlZXBpbmcgYSBsaXN0IG9m
IFN0cnVjdHVyZUlEcyB3L28gInRvSlNPTiIgbWV0aG9kLAorICAgICAgICB3aGljaCB3aWxsIGJl
IGNvcnJlY3QgYXMgbG9uZyBhcyBgbV9oYXNGYXN0T2JqZWN0UHJvcGVydGllcyB8fCBtX2lzSlNB
cnJheWAgaXMgdHJ1ZSBmb3IgYWxsCisgICAgICAgIHNlZW4gb2JqZWN0cywgdGhhdCB3b3VsZCBw
cm9iYWJseSBtaXNzIHNvbWUgZWRnZSBjYXNlLCB3b24ndCBwZXJzaXN0IGJldHdlZW4gSlNPTi5z
dHJpbmdpZnkoKQorICAgICAgICBjYWxscywgYW5kIHdvbid0IHNwZWVkLXVwIHN0cnVjdHVyZXMg
d2l0aCAidG9KU09OIiBtZXRob2RzIGxpa2UgRGF0ZXMuCisKKyAgICAgICAgKiBydW50aW1lL0pT
T05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6dG9KU09OKToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlUmFyZURhdGE6OmNhY2hlU3BlY2lhbFByb3BlcnR5U2xvdyk6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oOgorCiAyMDIyLTAxLTI4ICBEaWVnbyBQaW5vIEdhcmNpYSAg
PGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVW5yZXZpZXdlZCwgZml4IG5vbi11
bmlmaWVkIGJ1aWxkIGFmdGVyIHIyODg3NTgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAyODg3OTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkz
LDggKzI5MywyMCBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgU3RyaW5naWZpZXI6OnRvSlNPCiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHNjb3BlLmFzc2Vy
dE5vRXhjZXB0aW9uKCk7CiAKLSAgICBKU1ZhbHVlIHRvSlNPTkZ1bmN0aW9uID0gYmFzZVZhbHVl
LmdldChtX2dsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dG9KU09OKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIEpTVmFsdWUgdG9KU09ORnVuY3Rpb247
CisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKQorICAgICAgICB0b0pTT05GdW5jdGlvbiA9
IGFzT2JqZWN0KGJhc2VWYWx1ZSktPnN0cnVjdHVyZSh2bSktPmNhY2hlZFNwZWNpYWxQcm9wZXJ0
eShDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6OlRvSlNPTik7CisKKyAgICBpZiAoIXRvSlNPTkZ1
bmN0aW9uKSB7CisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgICAgIGJvb2wgaGFzUHJvcGVydHkg
PSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KG1fZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5h
bWVzLT50b0pTT04sIHNsb3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgICAgICB0b0pTT05GdW5jdGlvbiA9IGhhc1Byb3BlcnR5ID8gc2xvdC5nZXRWYWx1
ZShtX2dsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dG9KU09OKSA6IGpzVW5kZWZpbmVk
KCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAgICAg
aWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKQorICAgICAgICAgICAgYXNPYmplY3QoYmFzZVZhbHVl
KS0+c3RydWN0dXJlKHZtKS0+Y2FjaGVTcGVjaWFsUHJvcGVydHkobV9nbG9iYWxPYmplY3QsIHZt
LCB0b0pTT05GdW5jdGlvbiwgQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpUb0pTT04sIHNsb3Qp
OworICAgIH0KIAogICAgIGF1dG8gY2FsbERhdGEgPSBnZXRDYWxsRGF0YSh2bSwgdG9KU09ORnVu
Y3Rpb24pOwogICAgIGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOb25lKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmNwcAkocmV2aXNpb24gMjg4NzkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2
LDkgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVTcGVjaWFsUHJvcAogICAgIGNhc2Ug
Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpUb1ByaW1pdGl2ZToKICAgICAgICAgdWlkID0gdm0u
cHJvcGVydHlOYW1lcy0+dG9QcmltaXRpdmVTeW1ib2wuaW1wbCgpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleTo6VG9KU09OOgorICAgICAgICB1aWQg
PSB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04uaW1wbCgpOworICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBpZiAoIW93blN0cnVjdHVyZS0+cHJvcGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgp
IHx8IG93blN0cnVjdHVyZS0+aXNQcm94eSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHJldmlzaW9uIDI4ODc5MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDggKzUyLDkgQEAgZW51bSBjbGFzcyBDYWNoZWRTcGVjaWFsUHJv
cGVydHlLZXkgOiB1aQogICAgIFRvU3RyaW5nLAogICAgIFZhbHVlT2YsCiAgICAgVG9QcmltaXRp
dmUsCisgICAgVG9KU09OLAogfTsKLXN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZD
YWNoZWRTcGVjaWFsUHJvcGVydHlLZXlzID0gNDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtYmVyT2ZDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXlzID0gNTsKIAogY2xhc3MgU3RydWN0dXJl
UmFyZURhdGE7CiBjbGFzcyBTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450648</attachid>
            <date>2022-02-02 08:52:02 -0800</date>
            <delta_ts>2022-02-02 17:05:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235996-20220202165201.patch</filename>
            <type>text/plain</type>
            <size>8140</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODg5NTIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTAyICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFw
cGxlLmNvbT4KKworICAgICAgICBTcGVlZC11cCBKU09OLnN0cmluZ2lmeSgpIGJ5IGF2b2lkaW5n
ICJ0b0pTT04iIHByb3BlcnR5IGxvb2t1cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTk5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2pzb24tc3RyaW5naWZ5LW1hbnkt
b2JqZWN0cy10by1qc29uLmpzOgorICAgICAgICBNYWtlIHRoaXMgdGVzdCBhIGxpdHRsZSBtb3Jl
IHJlYWxpc3RpYyBieSBtb3ZpbmcgInRvSlNPTiIgb250byBwcm90b3R5cGUuCisKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvdmFuaWxsYS10b2RvbXZjLWpzb24tc3RyaW5naWZ5LmpzOiBBZGRl
ZC4KKwogMjAyMi0wMi0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIHdhc20gYXRvbWljIG9wY29kZXMgc2hvdWxkIGJlIHJlamVjdGVkIGlmIGFs
aWdubWVudCBpcyBub3QgZXF1YWwgdG8gbmF0dXJhbCB3aWR0aApJbmRleDogSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvanNvbi1zdHJpbmdpZnktbWFueS1vYmplY3RzLXRvLWpzb24uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1zdHJpbmdpZnktbWFueS1vYmpl
Y3RzLXRvLWpzb24uanMJKHJldmlzaW9uIDI4ODk1MikKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2pzb24tc3RyaW5naWZ5LW1hbnktb2JqZWN0cy10by1qc29uLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNyBAQAotY29uc3QgdG9KU09OID0gKCkgPT4gJyc7CitmdW5jdGlvbiBDKCkg
e30KK0MucHJvdG90eXBlLnRvSlNPTiA9ICgpID0+ICcnOwogY29uc3QgdmFsdWUgPSB7fTsKIGZv
ciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgdmFsdWVbaV0gPSB7dG9KU09OfTsKKyAg
ICB2YWx1ZVsiayIgKyBpXSA9IG5ldyBDOwogZm9yIChsZXQgaSA9IDA7IGkgPCAxZTUgLyA0OyAr
K2kpCiAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpOwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvdmFuaWxsYS10b2RvbXZjLWpzb24tc3RyaW5naWZ5LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL3ZhbmlsbGEtdG9kb212Yy1qc29uLXN0cmluZ2lmeS5qcwko
bm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy92YW5pbGxhLXRvZG9tdmMt
anNvbi1zdHJpbmdpZnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorKGZ1bmN0
aW9uKCkgeworICAgIHZhciB0b2RvcyA9IG5ldyBBcnJheSg2Nyk7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCA2NzsgaSsrKQorICAgICAgICB0b2Rvc1tpXSA9IHsgdGl0bGU6ICJTb21ldGhpbmcg
dG8gZG8iLCBjb21wbGV0ZWQ6IHRydWUsIGlkOiBpIH07CisgICAgdmFyIHN0YXRlID0geyB0b2Rv
cyB9OworCisgICAgdmFyIGpzb247CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCAyZTQ7IGorKykK
KyAgICAgICAganNvbiA9IEpTT04uc3RyaW5naWZ5KHN0YXRlKTsKKworICAgIGlmIChqc29uLmxl
bmd0aCAhPT0gMzU1MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uISIp
OworfSkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg4OTUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM0IEBACisyMDIyLTAyLTAyICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNv
bT4KKworICAgICAgICBTcGVlZC11cCBKU09OLnN0cmluZ2lmeSgpIGJ5IGF2b2lkaW5nICJ0b0pT
T04iIHByb3BlcnR5IGxvb2t1cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTk5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWVkb21ldGVyMi9WYW5pbGxhKiBzdWJ0ZXN0cyBhcmUgaGlnaGx5IHJl
bGlhbnQgb24gSlNPTi5zdHJpbmdpZnkoKSBmb3IgInN0b3JhZ2UiOgorICAgICAgICBpdCBhY2Nv
dW50cyBmb3IgMTAtMTUlIG9mIHJ1bm5pbmcgdGltZS4gRW1iZXJKUyogc3VidGVzdHMgcmVseSBv
biBKU09OLnN0cmluZ2lmeSgpIGFzCisgICAgICAgIHdlbGwsIGFsdGhvdWdoIHRoZXkgYXJlIHNp
Z25pZmljYW50bHkgc2xvd2VyIG92ZXJhbGwsIGFuZCBhbHNvIGVuY291bnRlciBvbmx5IGEgZmV3
CisgICAgICAgIGRpZmZlcmVudCBzdHJ1Y3R1cmVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2Fj
aGVzICJ0b0pTT04iIHByb3BlcnRpZXMgb24gU3RydWN0dXJlJ3MgcmFyZSBkYXRhOyBpdCdzIHRo
ZSBzYW1lIHRlY2huaXF1ZQorICAgICAgICB3ZSBhcmUgdXNpbmcgaW4gdG9QcmltaXRpdmUoKSB0
byBhdm9pZCAidG9TdHJpbmciIC8gInZhbHVlT2YiIGxvb2t1cHMuIFRoZSBtaWNyb2JlbmNobWFy
aywKKyAgICAgICAgd2hpY2ggd2FzIGNhcmVmdWxseSBleHRyYWN0ZWQgZnJvbSBTcGVlZG9tZXRl
cjIvVmFuaWxsYSogc3VidGVzdHMsIHByb2dyZXNzZWQgYnkgMy43JS4KKworICAgICAgICBXaGls
ZSB3ZSBjb3VsZCBjb21lIHVwIHdpdGggYSBzb2x1dGlvbiB0aGF0IGRvZXNuJ3QgaW52b2x2ZSBj
cmVhdGluZyBTdHJ1Y3R1cmVSYXJlRGF0YQorICAgICAgICBmb3IgYWxsIHN0cnVjdHVyZXMgd2Ug
c3RyaW5naWZ5LCBsaWtlIGtlZXBpbmcgYSBsaXN0IG9mIFN0cnVjdHVyZUlEcyB3L28gInRvSlNP
TiIgbWV0aG9kLAorICAgICAgICB3aGljaCB3aWxsIGJlIGNvcnJlY3QgYXMgbG9uZyBhcyBgbV9o
YXNGYXN0T2JqZWN0UHJvcGVydGllcyB8fCBtX2lzSlNBcnJheWAgaXMgdHJ1ZSBmb3IgYWxsCisg
ICAgICAgIHNlZW4gb2JqZWN0cywgdGhhdCB3b3VsZCBwcm9iYWJseSBtaXNzIHNvbWUgZWRnZSBj
YXNlLCB3b24ndCBwZXJzaXN0IGJldHdlZW4gSlNPTi5zdHJpbmdpZnkoKQorICAgICAgICBjYWxs
cywgYW5kIHdvbid0IHNwZWVkLXVwIHN0cnVjdHVyZXMgd2l0aCAidG9KU09OIiBtZXRob2RzIGxp
a2UgRGF0ZXMuCisKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFNwZWNpYWxQcm9wZXJ0eUFkYXB0
aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNwZWNpYWxQ
cm9wZXJ0eUFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6ZmlyZUludGVybmFsKToKKyAgICAg
ICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6
dG9KU09OKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlU3BlY2lhbFByb3BlcnR5U2xvdyk6Cisg
ICAgICAgIChKU0M6OkNhY2hlZFNwZWNpYWxQcm9wZXJ0eUFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0
eVZhbHVlV2F0Y2hwb2ludDo6aGFuZGxlRmlyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1
cmVSYXJlRGF0YS5oOgorCiAyMDIyLTAyLTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gd2FzbSBhdG9taWMgb3Bjb2RlcyBzaG91bGQgYmUgcmVq
ZWN0ZWQgaWYgYWxpZ25tZW50IGlzIG5vdCBlcXVhbCB0byBuYXR1cmFsIHdpZHRoCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRTcGVjaWFsUHJvcGVydHlBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NhY2hlZFNwZWNpYWxQcm9wZXJ0eUFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5jcHAJKHJldmlzaW9uIDI4ODk1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NhY2hlZFNwZWNpYWxQcm9wZXJ0eUFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDggQEAgdm9pZCBDYWNoZWRTcGVjaWFsUHJvcGVy
dHlBZGFwdGl2ZVN0cnVjdAogICAgICAgICBrZXkgPSBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6
OlRvU3RyaW5nOwogICAgIGVsc2UgaWYgKG1fa2V5LnVpZCgpID09IHZtLnByb3BlcnR5TmFtZXMt
PnZhbHVlT2YuaW1wbCgpKQogICAgICAgICBrZXkgPSBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6
OlZhbHVlT2Y7CisgICAgZWxzZSBpZiAobV9rZXkudWlkKCkgPT0gdm0ucHJvcGVydHlOYW1lcy0+
dG9KU09OLmltcGwoKSkKKyAgICAgICAga2V5ID0gQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpU
b0pTT047CiAgICAgZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX2tleS51aWQoKSA9PSB2bS5wcm9w
ZXJ0eU5hbWVzLT50b1ByaW1pdGl2ZVN5bWJvbC5pbXBsKCkpOwogICAgICAgICBrZXkgPSBDYWNo
ZWRTcGVjaWFsUHJvcGVydHlLZXk6OlRvUHJpbWl0aXZlOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDI4ODk1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTMsOCArMjkzLDIwIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6
dG9KU08KICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgc2Nv
cGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKIAotICAgIEpTVmFsdWUgdG9KU09ORnVuY3Rpb24gPSBi
YXNlVmFsdWUuZ2V0KG1fZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04pOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1ZSB0b0pTT05G
dW5jdGlvbjsKKyAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkpCisgICAgICAgIHRvSlNPTkZ1
bmN0aW9uID0gYXNPYmplY3QoYmFzZVZhbHVlKS0+c3RydWN0dXJlKHZtKS0+Y2FjaGVkU3BlY2lh
bFByb3BlcnR5KENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleTo6VG9KU09OKTsKKworICAgIGlmICgh
dG9KU09ORnVuY3Rpb24pIHsKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKKyAgICAgICAgYm9vbCBoYXNQ
cm9wZXJ0eSA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QobV9nbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPnRvSlNPTiwgc2xvdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgICAgIHRvSlNPTkZ1bmN0aW9uID0gaGFzUHJvcGVydHkgPyBzbG90
LmdldFZhbHVlKG1fZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04pIDoganNV
bmRlZmluZWQoKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKwor
ICAgICAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkpCisgICAgICAgICAgICBhc09iamVjdChi
YXNlVmFsdWUpLT5zdHJ1Y3R1cmUodm0pLT5jYWNoZVNwZWNpYWxQcm9wZXJ0eShtX2dsb2JhbE9i
amVjdCwgdm0sIHRvSlNPTkZ1bmN0aW9uLCBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6OlRvSlNP
Tiwgc2xvdCk7CisgICAgfQogCiAgICAgYXV0byBjYWxsRGF0YSA9IGdldENhbGxEYXRhKHZtLCB0
b0pTT05GdW5jdGlvbik7CiAgICAgaWYgKGNhbGxEYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5vbmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuY3BwCShyZXZpc2lvbiAyODg5NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NSw2ICsxMzUsOSBAQCB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZVNwZWNpYWxQcm9wCiAg
ICAgY2FzZSBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6OlRvUHJpbWl0aXZlOgogICAgICAgICB1
aWQgPSB2bS5wcm9wZXJ0eU5hbWVzLT50b1ByaW1pdGl2ZVN5bWJvbC5pbXBsKCk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5OjpUb0pTT046CisgICAg
ICAgIHVpZCA9IHZtLnByb3BlcnR5TmFtZXMtPnRvSlNPTi5pbXBsKCk7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIGlmICghb3duU3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2Fj
aGVhYmxlKCkgfHwgb3duU3RydWN0dXJlLT5pc1Byb3h5KCkpIHsKQEAgLTI2Nyw2ICsyNzAsOCBA
QCB2b2lkIENhY2hlZFNwZWNpYWxQcm9wZXJ0eUFkYXB0aXZlSW5mZXJyCiAgICAgICAgIGtleSA9
IENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleTo6VG9TdHJpbmc7CiAgICAgZWxzZSBpZiAodGhpcy0+
a2V5KCkudWlkKCkgPT0gdm0ucHJvcGVydHlOYW1lcy0+dmFsdWVPZi5pbXBsKCkpCiAgICAgICAg
IGtleSA9IENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleTo6VmFsdWVPZjsKKyAgICBlbHNlIGlmICh0
aGlzLT5rZXkoKS51aWQoKSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04uaW1wbCgpKQorICAg
ICAgICBrZXkgPSBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk6OlRvSlNPTjsKICAgICBlbHNlIHsK
ICAgICAgICAgQVNTRVJUKHRoaXMtPmtleSgpLnVpZCgpID09IHZtLnByb3BlcnR5TmFtZXMtPnRv
UHJpbWl0aXZlU3ltYm9sLmltcGwoKSk7CiAgICAgICAgIGtleSA9IENhY2hlZFNwZWNpYWxQcm9w
ZXJ0eUtleTo6VG9QcmltaXRpdmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHJldmlzaW9uIDI4ODk1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDggKzUyLDkgQEAgZW51bSBjbGFzcyBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXkg
OiB1aQogICAgIFRvU3RyaW5nLAogICAgIFZhbHVlT2YsCiAgICAgVG9QcmltaXRpdmUsCisgICAg
VG9KU09OLAogfTsKLXN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZDYWNoZWRTcGVj
aWFsUHJvcGVydHlLZXlzID0gNDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZD
YWNoZWRTcGVjaWFsUHJvcGVydHlLZXlzID0gNTsKIAogY2xhc3MgU3RydWN0dXJlUmFyZURhdGE7
CiBjbGFzcyBTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>