<?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>234928</bug_id>
          
          <creation_ts>2022-01-06 11:44:43 -0800</creation_ts>
          <short_desc>Don&apos;t dispatch &quot;focusin&quot; / &quot;focusout&quot; events if there are no listeners</short_desc>
          <delta_ts>2022-01-07 18:15:20 -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>DOM</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>234978</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1828687</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-06 11:44:43 -0800</bug_when>
    <thetext>Don&apos;t dispatch &quot;focusin&quot; / &quot;focusout&quot; events if there are no listeners, and drop their obsolete variants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828690</commentid>
    <comment_count>1</comment_count>
      <attachid>448517</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-06 11:47:45 -0800</bug_when>
    <thetext>Created attachment 448517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828691</commentid>
    <comment_count>2</comment_count>
      <attachid>448518</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-06 11:49:36 -0800</bug_when>
    <thetext>Created attachment 448518
Microbenchmark

r287686: 599.7ms
patch: 563.7ms (6% faster)
(50 runs)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828708</commentid>
    <comment_count>3</comment_count>
      <attachid>448517</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-01-06 12:14:18 -0800</bug_when>
    <thetext>Comment on attachment 448517
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828776</commentid>
    <comment_count>4</comment_count>
      <attachid>448517</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-06 16:18:59 -0800</bug_when>
    <thetext>Comment on attachment 448517
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +          a) Avoids creating and dispatching &quot;focusin&quot; / &quot;focusout&quot; events if it&apos;s
&gt; +             guaranteed there are no registered listeners for them. These events are
&gt; +             rather new and not widely popular: according to Chrome stats, only 16%
&gt; +             page loads use them [1], which is even less than `document.all`.

More than 1 out of 7 webpages listens for these events?

That sounds pretty popular to me!

But I guess a small optimization for those other pages is still good.

&gt; Source/WebCore/dom/Element.h:569
&gt; +    void dispatchFocusInEventIfNeeded(RefPtr&lt;Element&gt;&amp;&amp; oldFocusedElement);
&gt; +    void dispatchFocusOutEventIfNeeded(RefPtr&lt;Element&gt;&amp;&amp; newFocusedElement);

I don’t understand why these functions take RefPtr&lt;Element&gt;&amp;&amp;, given that all callers always call copyRef; we’re not using the rvalue reference to optimize anything. The arguments should just be Element*, and the RefPtr can be inside the function.

For some reason that pattern is popular here, but I don’t get it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829062</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-07 14:00:21 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 448517 [details]
&gt; Patch
&gt; 
&gt; r=me

Thanks Geoff!

(In reply to Darin Adler from comment #4)
&gt; More than 1 out of 7 webpages listens for these events?
&gt; 
&gt; That sounds pretty popular to me!
&gt; 
&gt; But I guess a small optimization for those other pages is still good.

Yeah, 17% is kinda a lot in comparison with most other events in ListenerType, yet focus() currently is relatively slow while being heavily used in some Speedometer2 subtests (but not this path that emits events), hence this patch.

&gt; &gt; Source/WebCore/dom/Element.h:569
&gt; &gt; +    void dispatchFocusInEventIfNeeded(RefPtr&lt;Element&gt;&amp;&amp; oldFocusedElement);
&gt; &gt; +    void dispatchFocusOutEventIfNeeded(RefPtr&lt;Element&gt;&amp;&amp; newFocusedElement);
&gt; 
&gt; I don’t understand why these functions take RefPtr&lt;Element&gt;&amp;&amp;, given that
&gt; all callers always call copyRef; we’re not using the rvalue reference to
&gt; optimize anything. The arguments should just be Element*, and the RefPtr can
&gt; be inside the function.

Since dispatchFocusEvent() / dispatchBlurEvent() have the same signature and their callers also call copyRef(), I will leave a FIXME for this to avoid bloating this patch.

Also, recalling your feedback on another change, I&apos;m landing this patch in two changes: https://bugs.webkit.org/show_bug.cgi?id=234978 removes the obsolete events, while this one adds the optimisation for &quot;focusin&quot; / &quot;focusout&quot; events.

While this adds a bit of churn (especially if we would have to revert, which I doubt), it makes obvious what LayoutTests changes are related to, and makes the conditional dispatch optimization easier to follow as a separate commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829148</commentid>
    <comment_count>6</comment_count>
      <attachid>448649</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-07 17:23:04 -0800</bug_when>
    <thetext>Created attachment 448649
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829172</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-07 18:14:55 -0800</bug_when>
    <thetext>Committed r287802 (245855@main): &lt;https://commits.webkit.org/245855@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448649.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829173</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-07 18:15:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/87282027&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448517</attachid>
            <date>2022-01-06 11:47:45 -0800</date>
            <delta_ts>2022-01-07 17:22:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234928-20220106194743.patch</filename>
            <type>text/plain</type>
            <size>16360</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzY4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAxLTA2ICBBbGV4ZXkg
U2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBkaXNwYXRjaCAi
Zm9jdXNpbiIgLyAiZm9jdXNvdXQiIGV2ZW50cyBpZiB0aGVyZSBhcmUgbm8gbGlzdGVuZXJzLCBh
bmQgZHJvcCB0aGVpciBvYnNvbGV0ZSB2YXJpYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0OTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaDoKKworICAgICAgICAgIGEpIEF2b2lk
cyBjcmVhdGluZyBhbmQgZGlzcGF0Y2hpbmcgImZvY3VzaW4iIC8gImZvY3Vzb3V0IiBldmVudHMg
aWYgaXQncworICAgICAgICAgICAgIGd1YXJhbnRlZWQgdGhlcmUgYXJlIG5vIHJlZ2lzdGVyZWQg
bGlzdGVuZXJzIGZvciB0aGVtLiBUaGVzZSBldmVudHMgYXJlCisgICAgICAgICAgICAgcmF0aGVy
IG5ldyBhbmQgbm90IHdpZGVseSBwb3B1bGFyOiBhY2NvcmRpbmcgdG8gQ2hyb21lIHN0YXRzLCBv
bmx5IDE2JQorICAgICAgICAgICAgIHBhZ2UgbG9hZHMgdXNlIHRoZW0gWzFdLCB3aGljaCBpcyBl
dmVuIGxlc3MgdGhhbiBgZG9jdW1lbnQuYWxsYC4KKworICAgICAgICAgIGIpIFJlbW92ZXMgb2Jz
b2xldGUgRE9NIExldmVsIDIgZXZlbnRzICJET01Gb2N1c0luIiAvICJET01Gb2N1c091dCIgYmVj
YXVzZQorICAgICAgICAgICAgIGFjY29yZGluZyB0byBDaHJvbWUgc3RhdHMsIG9ubHkgMC4wNCUg
b2YgcGFnZSBsb2FkcyB1c2UgdGhlbSBbMl0sIHdoaWNoIGlzCisgICAgICAgICAgICAgYmVsb3cg
dGhlIEJsaW5rIHJlbW92YWwgdGhyZXNob2xkIG9mIDAuMTAlLgorICAgICAgICAgICAgIEFsbCB0
aGUgInRvcCBzaXRlcyIgdGhhdCBhZG9wdGVkICJET01Gb2N1c0luIiAvICJET01Gb2N1c091dCIs
IGFyZSBub3cgZGVhZC4KKyAgICAgICAgICAgICBBbHNvLCB0aGVzZSBldmVudHMgd2VyZSBuZXZl
ciBpbXBsZW1lbnRlZCBpbiBGaXJlZm94LgorCisgICAgICAgIEFsdG9nZXRoZXIsIHRoaXMgY2hh
bmdlIGF2b2lkcyBjcmVhdGlvbiBvZiA0IEZvY3VzRXZlbnQgaW5zdGFuY2VzIHdoZW4gY2hhbmdp
bmcgZm9jdXMsCisgICAgICAgIGFkdmFuY2luZyBhdHRhY2hlZCBtaWNyb2JlbmNobWFyayBieSA2
JS4KKworICAgICAgICBbMV0gaHR0cHM6Ly9jaHJvbWVzdGF0dXMuY29tL21ldHJpY3MvZmVhdHVy
ZS90aW1lbGluZS9wb3B1bGFyaXR5LzQzMworICAgICAgICBbMl0gaHR0cHM6Ly9jaHJvbWVzdGF0
dXMuY29tL21ldHJpY3MvZmVhdHVyZS90aW1lbGluZS9wb3B1bGFyaXR5LzIxMQorCisgICAgICAg
IE5vIG5ldyB0ZXN0czogYSkgaXNuJ3QgYSBiZWhhdmlvciBjaGFuZ2UsIGIpIGlzIGEgZmVhdHVy
ZSByZW1vdmFsLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmRpc3BhdGNoRm9jdXNJbkV2ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6ZGlzcGF0Y2hGb2N1c0luRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisKIDIwMjItMDEtMDYgIEpl
YW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIENhY2hlZFJh
d1Jlc291cmNlQ2xpZW50IGFuZCByZWxhdGVkIG5ldHdvcmtpbmcgYWN0b3JzIHVzZSBTaGFyZWRC
dWZmZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI4NzY4NikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2NTcs
MTAgKzQ2NTcsNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50CiAg
ICAgICAgICAgICAgICAgbmV3Rm9jdXNlZEVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+ZGlzcGF0Y2hGb2N1c091dEV2ZW50
KGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50LCBuZXdGb2N1c2VkRWxlbWVudC5jb3B5UmVmKCkp
OyAvLyBET00gbGV2ZWwgMyBuYW1lIGZvciB0aGUgYnViYmxpbmcgYmx1ciBldmVudC4KLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVtb3ZlIGZpcmluZyBET01Gb2N1c091dEV2ZW50
IGV2ZW50IHdoZW4gd2UgYXJlIHN1cmUgbm8gY29udGVudCBkZXBlbmRzCi0gICAgICAgICAgICAv
LyBvbiBpdCwgcHJvYmFibHkgd2hlbiA8cmRhcjovL3Byb2JsZW0vODUwMzk1OD4gaXMgcmVzb2x2
ZWQuCi0gICAgICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+ZGlzcGF0Y2hGb2N1c091dEV2ZW50
KGV2ZW50TmFtZXMoKS5ET01Gb2N1c091dEV2ZW50LCBuZXdGb2N1c2VkRWxlbWVudC5jb3B5UmVm
KCkpOyAvLyBET00gbGV2ZWwgMiBuYW1lIGZvciBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAg
b2xkRm9jdXNlZEVsZW1lbnQtPmRpc3BhdGNoRm9jdXNPdXRFdmVudElmTmVlZGVkKG5ld0ZvY3Vz
ZWRFbGVtZW50LmNvcHlSZWYoKSk7IC8vIERPTSBsZXZlbCAzIGJ1YmJsaW5nIGJsdXIgZXZlbnQu
CiAKICAgICAgICAgICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50KSB7CiAgICAgICAgICAgICAgICAg
Ly8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC00NzI1LDE2ICs0NzIyLDcgQEAgYm9vbCBEb2N1
bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudAogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKLSAgICAgICAgbV9mb2N1c2VkRWxlbWVudC0+ZGlzcGF0Y2hGb2N1c0lu
RXZlbnQoZXZlbnROYW1lcygpLmZvY3VzaW5FdmVudCwgb2xkRm9jdXNlZEVsZW1lbnQuY29weVJl
ZigpKTsgLy8gRE9NIGxldmVsIDMgYnViYmxpbmcgZm9jdXMgZXZlbnQuCi0KLSAgICAgICAgaWYg
KG1fZm9jdXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVsZW1lbnQpIHsKLSAgICAgICAgICAgIC8v
IGhhbmRsZXIgc2hpZnRlZCBmb2N1cwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgZmlyaW5nIERPTUZvY3Vz
SW5FdmVudCBldmVudCB3aGVuIHdlIGFyZSBzdXJlIG5vIGNvbnRlbnQgZGVwZW5kcwotICAgICAg
ICAvLyBvbiBpdCwgcHJvYmFibHkgd2hlbiA8cmRhcjovL3Byb2JsZW0vODUwMzk1OD4gaXMgbS4K
LSAgICAgICAgbV9mb2N1c2VkRWxlbWVudC0+ZGlzcGF0Y2hGb2N1c0luRXZlbnQoZXZlbnROYW1l
cygpLkRPTUZvY3VzSW5FdmVudCwgb2xkRm9jdXNlZEVsZW1lbnQuY29weVJlZigpKTsgLy8gRE9N
IGxldmVsIDIgZm9yIGNvbXBhdGliaWxpdHkuCisgICAgICAgIG1fZm9jdXNlZEVsZW1lbnQtPmRp
c3BhdGNoRm9jdXNJbkV2ZW50SWZOZWVkZWQob2xkRm9jdXNlZEVsZW1lbnQuY29weVJlZigpKTsg
Ly8gRE9NIGxldmVsIDMgYnViYmxpbmcgZm9jdXMgZXZlbnQuCiAKICAgICAgICAgaWYgKG1fZm9j
dXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVsZW1lbnQpIHsKICAgICAgICAgICAgIC8vIGhhbmRs
ZXIgc2hpZnRlZCBmb2N1cwpAQCAtNTI5Niw2ICs1Mjg0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmFk
ZExpc3RlbmVyVHlwZUlmTmVlZGVkKGMKICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEZPUkNFVVBf
TElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucmVzaXpl
RXZlbnQpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShSRVNJWkVfTElTVEVORVIpOworICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZm9jdXNpbkV2ZW50KQorICAgICAgICBh
ZGRMaXN0ZW5lclR5cGUoRk9DVVNJTl9MSVNURU5FUik7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50KQorICAgICAgICBhZGRMaXN0ZW5lclR5cGUo
Rk9DVVNPVVRfTElTVEVORVIpOwogfQogCiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIERvY3VtZW50
Ojpvd25lckVsZW1lbnQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9u
IDI4NzY4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05MDYsNyArOTA2LDkgQEAgcHVibGljOgogICAgICAgICBGT1JDRUNIQU5HRURfTElTVEVO
RVIgICAgICAgICAgICAgICAgPSAxIDw8IDE0LAogICAgICAgICBGT1JDRURPV05fTElTVEVORVIg
ICAgICAgICAgICAgICAgICAgPSAxIDw8IDE1LAogICAgICAgICBGT1JDRVVQX0xJU1RFTkVSICAg
ICAgICAgICAgICAgICAgICAgPSAxIDw8IDE2LAotICAgICAgICBSRVNJWkVfTElTVEVORVIgICAg
ICAgICAgICAgICAgICAgICAgPSAxIDw8IDE3CisgICAgICAgIFJFU0laRV9MSVNURU5FUiAgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMTcsCisgICAgICAgIEZPQ1VTSU5fTElTVEVORVIgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMTgsCisgICAgICAgIEZPQ1VTT1VUX0xJU1RFTkVSICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMTksCiAgICAgfTsKIAogICAgIGJvb2wgaGFzTGlzdGVu
ZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIGNvbnN0IHsgcmV0dXJuIChtX2xpc3Rl
bmVyVHlwZXMgJiBsaXN0ZW5lclR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyODc2ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxODIsMTggKzMxODIsMjAgQEAgdm9pZCBFbGVtZW50OjpydW5Gb2N1c2lu
Z1N0ZXBzRm9yQXV0b2ZvYwogICAgIGZvY3VzKCk7CiB9CiAKLXZvaWQgRWxlbWVudDo6ZGlzcGF0
Y2hGb2N1c0luRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVu
dD4mJiBvbGRGb2N1c2VkRWxlbWVudCkKK3ZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0luRXZl
bnRJZk5lZWRlZChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCkKIHsKKyAgICBp
ZiAoIWRvY3VtZW50KCkuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpGT0NVU0lOX0xJU1RFTkVS
KSkKKyAgICAgICAgcmV0dXJuOwogICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQ6OmlzU2NyaXB0QWxs
b3dlZCgpIHx8ICFpc0luV2ViUHJvY2VzcygpKTsKLSAgICBBU1NFUlQoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5mb2N1c2luRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5ET01G
b2N1c0luRXZlbnQpOwotICAgIGRpc3BhdGNoU2NvcGVkRXZlbnQoRm9jdXNFdmVudDo6Y3JlYXRl
KGV2ZW50VHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bywgZG9jdW1lbnQoKS53aW5kb3dQcm94eSgpLCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50
KSkpOworICAgIGRpc3BhdGNoU2NvcGVkRXZlbnQoRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5mb2N1c2luRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8sIGRvY3VtZW50KCkud2luZG93UHJveHkoKSwgMCwgV1RGTW92ZShvbGRGb2N1c2Vk
RWxlbWVudCkpKTsKIH0KIAotdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxl
bWVudCkKK3ZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50SWZOZWVkZWQoUmVmUHRy
PEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CisgICAgaWYgKCFkb2N1bWVudCgpLmhh
c0xpc3RlbmVyVHlwZShEb2N1bWVudDo6Rk9DVVNPVVRfTElTVEVORVIpKQorICAgICAgICByZXR1
cm47CiAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihTY3JpcHRE
aXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZDo6aXNTY3JpcHRBbGxvd2VkKCkgfHwgIWlzSW5X
ZWJQcm9jZXNzKCkpOwotICAgIEFTU0VSVChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3Vz
b3V0RXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5ET01Gb2N1c091dEV2ZW50KTsK
LSAgICBkaXNwYXRjaFNjb3BlZEV2ZW50KEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIEV2
ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGRvY3VtZW50KCku
d2luZG93UHJveHkoKSwgMCwgV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsKKyAgICBkaXNw
YXRjaFNjb3BlZEV2ZW50KEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9jdXNvdXRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgZG9j
dW1lbnQoKS53aW5kb3dQcm94eSgpLCAwLCBXVEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSkpOwog
fQogCiB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBv
bGRGb2N1c2VkRWxlbWVudCwgRm9jdXNEaXJlY3Rpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJ
KHJldmlzaW9uIDI4NzY4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU2NSw4ICs1NjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaFdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxp
bmc+JiwgRXZlbnRJc0NhbmNlbGFibGUgPSBFdmVudElzQ2FuY2VsYWJsZTo6WWVzKTsKICAgICBi
b29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAg
Ym9vbCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVs
YXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMsIFNpbXVsYXRlZENsaWNr
VmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7Ci0gICAgdm9pZCBkaXNwYXRjaEZvY3Vz
SW5FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW50PiYmIG9s
ZEZvY3VzZWRFbGVtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNoRm9jdXNPdXRFdmVudChjb25zdCBB
dG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVtZW50
KTsKKyAgICB2b2lkIGRpc3BhdGNoRm9jdXNJbkV2ZW50SWZOZWVkZWQoUmVmUHRyPEVsZW1lbnQ+
JiYgb2xkRm9jdXNlZEVsZW1lbnQpOworICAgIHZvaWQgZGlzcGF0Y2hGb2N1c091dEV2ZW50SWZO
ZWVkZWQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1l
bnQsIEZvY3VzRGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQo
UmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpOwogICAgIHZvaWQgZGlzcGF0Y2hX
ZWJLaXRJbWFnZVJlYWR5RXZlbnRGb3JUZXN0aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmgJKHJldmlzaW9uIDI4NzY4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIG1hY3JvKERPTUFjdGl2YXRlKSBcCiAgICAgbWFjcm8oRE9NQ2hhcmFjdGVyRGF0YU1vZGlm
aWVkKSBcCiAgICAgbWFjcm8oRE9NQ29udGVudExvYWRlZCkgXAotICAgIG1hY3JvKERPTUZvY3Vz
SW4pIFwKLSAgICBtYWNybyhET01Gb2N1c091dCkgXAogICAgIG1hY3JvKERPTU5vZGVJbnNlcnRl
ZCkgXAogICAgIG1hY3JvKERPTU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCkgXAogICAgIG1hY3Jv
KERPTU5vZGVSZW1vdmVkKSBcCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI4NzcwNCkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMS0wNiAgQWxleGV5IFNodmF5a2EgIDxhc2h2YXlr
YUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgZGlzcGF0Y2ggImZvY3VzaW4iIC8gImZvY3Vz
b3V0IiBldmVudHMgaWYgdGhlcmUgYXJlIG5vIGxpc3RlbmVycywgYW5kIGRyb3AgdGhlaXIgb2Jz
b2xldGUgdmFyaWFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNDkyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6Cisg
ICAgICAgIChXSS5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuZGlzcGxheU5hbWUpOgor
CiAyMDIyLTAxLTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgU3RhcnQgdXNpbmcgQysrMjAKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGlt
ZWxpbmVSZWNvcmQuanMJKHJldmlzaW9uIDI4NzY4NikKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMjEyLDggKzIxMiw2IEBAIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlw
ZS5kaXNwbGEKICAgICAgICAgbmFtZU1hcC5zZXQoIkRPTUFjdGl2YXRlIiwgIkRPTSBBY3RpdmF0
ZSIpOwogICAgICAgICBuYW1lTWFwLnNldCgiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIiwgIkRP
TSBDaGFyYWN0ZXIgRGF0YSBNb2RpZmllZCIpOwogICAgICAgICBuYW1lTWFwLnNldCgiRE9NQ29u
dGVudExvYWRlZCIsICJET00gQ29udGVudCBMb2FkZWQiKTsKLSAgICAgICAgbmFtZU1hcC5zZXQo
IkRPTUZvY3VzSW4iLCAiRE9NIEZvY3VzIEluIik7Ci0gICAgICAgIG5hbWVNYXAuc2V0KCJET01G
b2N1c091dCIsICJET00gRm9jdXMgT3V0Iik7CiAgICAgICAgIG5hbWVNYXAuc2V0KCJET01Ob2Rl
SW5zZXJ0ZWQiLCAiRE9NIE5vZGUgSW5zZXJ0ZWQiKTsKICAgICAgICAgbmFtZU1hcC5zZXQoIkRP
TU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCIsICJET00gTm9kZSBJbnNlcnRlZCBJbnRvIERvY3Vt
ZW50Iik7CiAgICAgICAgIG5hbWVNYXAuc2V0KCJET01Ob2RlUmVtb3ZlZCIsICJET00gTm9kZSBS
ZW1vdmVkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODc2ODYpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMS0wNiAgQWxleGV5
IFNodmF5a2EgIDxhc2h2YXlrYUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgZGlzcGF0Y2gg
ImZvY3VzaW4iIC8gImZvY3Vzb3V0IiBldmVudHMgaWYgdGhlcmUgYXJlIG5vIGxpc3RlbmVycywg
YW5kIGRyb3AgdGhlaXIgb2Jzb2xldGUgdmFyaWFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDkyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9pbnNlcnQtaW4tb3Jw
aGFuZWQtc2VsZWN0aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvZm9jdXNp
bm91dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvZm9jdXNpbm91dC5odG1s
OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njb3BlZC9lZGl0aW5nLWNvbW1hbmRzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS90ZXh0YXJlYS1hdXRvZm9jdXMtcmVtb3ZhbC13
aGlsZS1mb2N1c2luZy13aXRoLXN0eWxlLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0
YXJlYS90ZXh0YXJlYS1hdXRvZm9jdXMtcmVtb3ZhbC13aGlsZS1mb2N1c2luZy5odG1sOgorCiAy
MDIyLTAxLTA2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBFbnN1
cmUgdGhhdCB0aGUgdG9wIGxheWVyIGlzIGFsd2F5cyBhbmNob3JlZCB0byB0aGUgUmVuZGVyVmll
dwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9pbnNlcnQtaW4tb3JwaGFuZWQt
c2VsZWN0aW9uLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9pbnNlcnQtaW4tb3JwaGFuZWQtc2VsZWN0aW9uLWNyYXNoLmh0bWwJKHJldmlzaW9u
IDI4NzY4NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvaW5zZXJ0LWluLW9ycGhh
bmVkLXNlbGVjdGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlCiAgICAgZG9jdW1lbnQuZGVz
aWduTW9kZSA9IGRvY3VtZW50LmRlc2lnbk1vZGUgPT0gIm9uIiA/ICJvZmYiIDogIm9uIjsKICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiB9KTsKLWRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIkRPTUZvY3VzSW4iLCAgZnVuY3Rpb24gKCkgeworZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXNpbiIsICBmdW5jdGlvbiAoKSB7CiAgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ0luc2VydFRleHQnKTsKICAgICBjb25zb2xlLmxvZygiVGhlIHRlc3QgUEFTUyBpZiBp
dCBkb2VzIG5vdCBDUkFTSC4iKTsKIH0pOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
Zm9jdXNpbm91dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvZm9jdXNpbm91dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI4NzY4NikKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2ZvY3VzaW5vdXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0zLDUgKzMsMyBAQCBQQVNTCiBQQVNTCiBQQVNTCiBQQVNTCi1QQVNTCi1QQVNTCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb2N1c2lub3V0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9jdXNpbm91dC5odG1sCShyZXZpc2lvbiAyODc2ODYp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb2N1c2lub3V0Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDIyICsyOSw2IEBAIGZ1bmN0aW9uIGJsdXJIYW5kbGVyKGV2ZW50KQogICAgIGVs
c2UKICAgICAgICAgd3JpdGVGYWlsZWQoJ3Jlc3VsdDInLCAiV3JvbmcgZXZlbnQgdHlwZSIpOwog
fQotCi1mdW5jdGlvbiBmb2N1c0hhbmRsZXJUd28oZXZlbnQpCi17Ci0gICAgaWYgKGV2ZW50LnR5
cGUgPT0gIkRPTUZvY3VzSW4iKQotICAgICAgICB3cml0ZVBhc3MoJ3Jlc3VsdDMnKTsKLSAgICBl
bHNlCi0gICAgICAgIHdyaXRlRmFpbGVkKCdyZXN1bHQzJywgIldyb25nIGV2ZW50IHR5cGUiKTsK
LX0KLQotZnVuY3Rpb24gYmx1ckhhbmRsZXJUd28oZXZlbnQpCi17Ci0gICAgaWYgKGV2ZW50LnR5
cGUgPT0gIkRPTUZvY3VzT3V0IikKLSAgICAgICAgd3JpdGVQYXNzKCdyZXN1bHQ0Jyk7Ci0gICAg
ZWxzZQotICAgICAgICB3cml0ZUZhaWxlZCgncmVzdWx0NCcsICJXcm9uZyBldmVudCB0eXBlIik7
Ci19CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0iZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZpZWxkJykuZm9jdXMoKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmllbGQnKS5i
bHVyKCkiPgpAQCAtNTUsMTUgKzM5LDExIEBAIGZ1bmN0aW9uIGJsdXJIYW5kbGVyVHdvKGV2ZW50
KQogCiA8ZGl2IGlkPSJyZXN1bHQxIj5GQUlMPC9kaXY+CiA8ZGl2IGlkPSJyZXN1bHQyIj5GQUlM
PC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQzIj5GQUlMPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQ0Ij5G
QUlMPC9kaXY+CiA8ZGl2IGlkPSJyZXN1bHQ1Ij5GQUlMPC9kaXY+CiA8ZGl2IGlkPSJyZXN1bHQ2
Ij5GQUlMPC9kaXY+CiAKIDxzY3JpcHQ+CiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZvY3VzSGFuZGxlciwgZmFsc2UpOwogZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgYmx1ckhhbmRsZXIsIGZh
bHNlKTsKLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Gb2N1
c0luIiwgZm9jdXNIYW5kbGVyVHdvLCBmYWxzZSk7Ci1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NRm9jdXNPdXQiLCBibHVySGFuZGxlclR3bywgZmFsc2UpOwog
PC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njb3BlZC9lZGl0aW5n
LWNvbW1hbmRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nv
cGVkL2VkaXRpbmctY29tbWFuZHMuaHRtbAkocmV2aXNpb24gMjg3Njg2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NvcGVkL2VkaXRpbmctY29tbWFuZHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNTMsOCArNTMsNiBAQCB2YXIgZXZlbnRzID0gewogICAgICdET01Ob2RlUmVtb3ZlZCc6
IGZhbHNlLAogICAgICdET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudCc6IGZhbHNlLAogICAgICdE
T01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQnOiB0cnVlLCAvLyB0aGlzIGV2ZW50IGNhbiBuZXZl
ciBiZSBvYnNlcnZlZC4KLSAgICAnRE9NRm9jdXNJbic6IGZhbHNlLAotICAgICdET01Gb2N1c091
dCc6IGZhbHNlLAogICAgICdmb2N1c2luJzogZmFsc2UsCiAgICAgJ2ZvY3Vzb3V0JzogZmFsc2Us
CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS90ZXh0YXJlYS1hdXRv
Zm9jdXMtcmVtb3ZhbC13aGlsZS1mb2N1c2luZy13aXRoLXN0eWxlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS90ZXh0YXJlYS1hdXRvZm9jdXMtcmVt
b3ZhbC13aGlsZS1mb2N1c2luZy13aXRoLXN0eWxlLmh0bWwJKHJldmlzaW9uIDI4NzY4NikKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEvdGV4dGFyZWEtYXV0b2ZvY3VzLXJlbW92
YWwtd2hpbGUtZm9jdXNpbmctd2l0aC1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDcg
KzksNyBAQCB2YXIgZG9jRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVuCiB0ZXh0QXJl
YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7CiB0ZXh0QXJlYS5zZXRBdHRy
aWJ1dGUoImF1dG9mb2N1cyIsICIiKTsKIHRleHRBcmVhLmFwcGVuZENoaWxkKGRvY3VtZW50Lmhl
YWQpOwotdGV4dEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigiRE9NRm9jdXNJbiIsIGZ1bmN0aW9uICgp
IHsgZG9jRWxlbWVudC5pbm5lckhUTUwgPSAiIjsgfSwgZmFsc2UpOwordGV4dEFyZWEuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZ1bmN0aW9uICgpIHsgZG9jRWxlbWVudC5pbm5lckhUTUwg
PSAiIjsgfSwgZmFsc2UpOwogZG9jRWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0QXJlYSk7CiBkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIsICJodG1sIiwgbnVsbCkuYWRvcHROb2RlKHRleHRBcmVhKTsKIHdpbmRvdy5zZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJl
YS90ZXh0YXJlYS1hdXRvZm9jdXMtcmVtb3ZhbC13aGlsZS1mb2N1c2luZy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEvdGV4dGFyZWEtYXV0b2ZvY3Vz
LXJlbW92YWwtd2hpbGUtZm9jdXNpbmcuaHRtbAkocmV2aXNpb24gMjg3Njg2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS90ZXh0YXJlYS1hdXRvZm9jdXMtcmVtb3ZhbC13aGls
ZS1mb2N1c2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKIH0KIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidGV4dGFyZWEiKTsKIHRleHRhcmVhLnNldEF0dHJpYnV0ZSgiYXV0b2ZvY3VzIiwgIiIpOwot
dGV4dGFyZWEuYWRkRXZlbnRMaXN0ZW5lcigiRE9NRm9jdXNJbiIsIGZ1bmN0aW9uICgpIHsgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICIiOyB9LCBmYWxzZSk7Cit0ZXh0YXJl
YS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gIiI7IH0sIGZhbHNlKTsKIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0YXJlYSk7CiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkg
PT4gewogICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlBBU1MgdW5sZXNzIGNyYXNoLiI7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>448518</attachid>
            <date>2022-01-06 11:49:36 -0800</date>
            <delta_ts>2022-01-06 11:49:36 -0800</delta_ts>
            <desc>Microbenchmark</desc>
            <filename>microbenchmark.html</filename>
            <type>text/html</type>
            <size>967</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPGJ1dHRvbiBpZD0iJHN0YXJ0
Ij5zdGFydDwvYnV0dG9uPgo8aDMgaWQ9IiRvdXRwdXQiPjwvaDM+CjxpbnB1dCBpZD0idGVzdDEi
Pgo8aW5wdXQgaWQ9InRlc3QyIj4KPHNjcmlwdD4KdmFyIHJ1bnMgPSAwOwp2YXIgd2FybVVwUnVu
cyA9IDU7CnZhciBkZWx0YVN1bSA9IDA7Cgp2YXIgJHRlc3QxID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiI3Rlc3QxIik7CnZhciAkdGVzdDIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGVz
dDIiKTsKCgokc3RhcnQub25jbGljayA9ICgpID0+IHsKICAgICRzdGFydC5kaXNhYmxlZCA9IHRy
dWU7CiAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgdmFyIHN0YXJ0ID0gRGF0ZS5ub3co
KTsKCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMF8wMDA7IGkrKykgewogICAgICAgICAg
ICBpZiAoaSAlIDIpCiAgICAgICAgICAgICAgICAkdGVzdDEuZm9jdXMoKTsKICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgJHRlc3QyLmZvY3VzKCk7CiAgICAgICAgfQoKICAgICAgICB2
YXIgZGVsdGEgPSBEYXRlLm5vdygpIC0gc3RhcnQ7CiAgICAgICAgcnVucysrOwoKICAgICAgICBp
ZiAocnVucyA8PSB3YXJtVXBSdW5zKSB7CiAgICAgICAgICAgICRvdXRwdXQudGV4dENvbnRlbnQg
PSBgd2FybS11cCBydW4gJHtydW5zfSAvICR7d2FybVVwUnVuc31gOwogICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgIGRlbHRhU3VtICs9IGRlbHRhOwogICAgICAgICAgICB2YXIgbWVhc3VyZWRS
dW5zID0gcnVucyAtIHdhcm1VcFJ1bnM7CiAgICAgICAgICAgICRvdXRwdXQudGV4dENvbnRlbnQg
PSBgQVZHOiAkeyhkZWx0YVN1bSAvIG1lYXN1cmVkUnVucykudG9GaXhlZCgyKX1tcyAoJHttZWFz
dXJlZFJ1bnN9IHJ1bnMpYDsKICAgICAgICB9CiAgICB9LCAxMDAwKTsKfTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448649</attachid>
            <date>2022-01-07 17:23:04 -0800</date>
            <delta_ts>2022-01-07 18:14:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234928-20220108012303.patch</filename>
            <type>text/plain</type>
            <size>6325</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4Nzc5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAxLTA3ICBBbGV4ZXkg
U2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBkaXNwYXRjaCAi
Zm9jdXNpbiIgLyAiZm9jdXNvdXQiIGV2ZW50cyBpZiB0aGVyZSBhcmUgbm8gbGlzdGVuZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ5MjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBUaGlzIHBhdGNoIGF2
b2lkcyBjcmVhdGluZyBhbmQgZGlzcGF0Y2hpbmcgImZvY3VzaW4iIC8gImZvY3Vzb3V0IiBldmVu
dHMgaWYgaXQncworICAgICAgICBndWFyYW50ZWVkIHRoZXJlIGFyZSBubyByZWdpc3RlcmVkIGxp
c3RlbmVycyBmb3IgdGhlbS4gVGhlc2UgZXZlbnRzIGFyZSByYXRoZXIgbmV3CisgICAgICAgIGFu
ZCBub3Qgd2lkZWx5IHBvcHVsYXI6IGFjY29yZGluZyB0byBDaHJvbWUgc3RhdHMsIG9ubHkgMTcl
IHBhZ2UgbG9hZHMgdXNlIHRoZW0gWzFdLAorICAgICAgICB3aGljaCBpcyBldmVuIGxlc3MgdGhh
biBgZG9jdW1lbnQuYWxsYC4KKworICAgICAgICBUb2dldGhlciB3aXRoIHIyODc3ODcsIGNyZWF0
aW9uIG9mIGZvdXIgRm9jdXNFdmVudCBpbnN0YW5jZXMgaXMgbm93IGF2b2lkZWQgd2hlbgorICAg
ICAgICBmb2N1cyBpcyBjaGFuZ2VkLCBhZHZhbmNpbmcgYXR0YWNoZWQgbWljcm9iZW5jaG1hcmsg
YnkgNiUuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vY2hyb21lc3RhdHVzLmNvbS9tZXRyaWNzL2Zl
YXR1cmUvdGltZWxpbmUvcG9wdWxhcml0eS80MzMKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5v
IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpkaXNwYXRjaEZvY3VzSW5FdmVudElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNJbkV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKwogMjAyMi0wMS0wNyAgQWxleGV5IFNodmF5a2EgIDxhc2h2YXlr
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG9ic29sZXRlIERPTSBMZXZlbCAyICJET01G
b2N1c0luIiAvICJET01Gb2N1c091dCIgZXZlbnRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDI4Nzc5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2NTgsNyArNDY1OCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZv
Y3VzZWRFbGVtZW50KEVsZW1lbnQKICAgICAgICAgICAgICAgICBuZXdGb2N1c2VkRWxlbWVudCA9
IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG9sZEZvY3VzZWRFbGVtZW50
LT5kaXNwYXRjaEZvY3VzT3V0RXZlbnQobmV3Rm9jdXNlZEVsZW1lbnQuY29weVJlZigpKTsgLy8g
RE9NIGxldmVsIDMgYnViYmxpbmcgYmx1ciBldmVudC4KKyAgICAgICAgICAgIG9sZEZvY3VzZWRF
bGVtZW50LT5kaXNwYXRjaEZvY3VzT3V0RXZlbnRJZk5lZWRlZChuZXdGb2N1c2VkRWxlbWVudC5j
b3B5UmVmKCkpOyAvLyBET00gbGV2ZWwgMyBidWJibGluZyBibHVyIGV2ZW50LgogCiAgICAgICAg
ICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCkgewogICAgICAgICAgICAgICAgIC8vIGhhbmRsZXIg
c2hpZnRlZCBmb2N1cwpAQCAtNDcyMyw3ICs0NzIzLDcgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9j
dXNlZEVsZW1lbnQoRWxlbWVudAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9mb2N1c2VkRWxlbWVudC0+ZGlzcGF0Y2hGb2N1c0luRXZlbnQob2xkRm9j
dXNlZEVsZW1lbnQuY29weVJlZigpKTsgLy8gRE9NIGxldmVsIDMgYnViYmxpbmcgZm9jdXMgZXZl
bnQuCisgICAgICAgIG1fZm9jdXNlZEVsZW1lbnQtPmRpc3BhdGNoRm9jdXNJbkV2ZW50SWZOZWVk
ZWQob2xkRm9jdXNlZEVsZW1lbnQuY29weVJlZigpKTsgLy8gRE9NIGxldmVsIDMgYnViYmxpbmcg
Zm9jdXMgZXZlbnQuCiAKICAgICAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNl
ZEVsZW1lbnQpIHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpAQCAtNTI4
NSw2ICs1Mjg1LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGMK
ICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEZPUkNFVVBfTElTVEVORVIpOwogICAgIGVsc2UgaWYg
KGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucmVzaXplRXZlbnQpCiAgICAgICAgIGFkZExpc3Rl
bmVyVHlwZShSRVNJWkVfTElTVEVORVIpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZm9jdXNpbkV2ZW50KQorICAgICAgICBhZGRMaXN0ZW5lclR5cGUoRk9DVVNJTl9M
SVNURU5FUik7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c291
dEV2ZW50KQorICAgICAgICBhZGRMaXN0ZW5lclR5cGUoRk9DVVNPVVRfTElTVEVORVIpOwogfQog
CiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIERvY3VtZW50Ojpvd25lckVsZW1lbnQoKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI4Nzc5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MDYsNyArOTA2LDkgQEAgcHVi
bGljOgogICAgICAgICBGT1JDRUNIQU5HRURfTElTVEVORVIgICAgICAgICAgICAgICAgPSAxIDw8
IDE0LAogICAgICAgICBGT1JDRURPV05fTElTVEVORVIgICAgICAgICAgICAgICAgICAgPSAxIDw8
IDE1LAogICAgICAgICBGT1JDRVVQX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgPSAxIDw8
IDE2LAotICAgICAgICBSRVNJWkVfTElTVEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8
IDE3CisgICAgICAgIFJFU0laRV9MSVNURU5FUiAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwg
MTcsCisgICAgICAgIEZPQ1VTSU5fTElTVEVORVIgICAgICAgICAgICAgICAgICAgICA9IDEgPDwg
MTgsCisgICAgICAgIEZPQ1VTT1VUX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICA9IDEgPDwg
MTksCiAgICAgfTsKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0
ZW5lclR5cGUpIGNvbnN0IHsgcmV0dXJuIChtX2xpc3RlbmVyVHlwZXMgJiBsaXN0ZW5lclR5cGUp
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyODc3OTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxODIsMTQgKzMx
ODIsMTggQEAgdm9pZCBFbGVtZW50OjpydW5Gb2N1c2luZ1N0ZXBzRm9yQXV0b2ZvYwogICAgIGZv
Y3VzKCk7CiB9CiAKLXZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0luRXZlbnQoUmVmUHRyPEVs
ZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpCit2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNJ
bkV2ZW50SWZOZWVkZWQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpCiB7Cisg
ICAgaWYgKCFkb2N1bWVudCgpLmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6Rk9DVVNJTl9MSVNU
RU5FUikpCisgICAgICAgIHJldHVybjsKICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkOjppc1Njcmlw
dEFsbG93ZWQoKSB8fCAhaXNJbldlYlByb2Nlc3MoKSk7CiAgICAgZGlzcGF0Y2hTY29wZWRFdmVu
dChGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZvY3VzaW5FdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgZG9jdW1lbnQoKS53aW5kb3dQ
cm94eSgpLCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQogCi12b2lkIEVsZW1l
bnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxl
bWVudCkKK3ZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50SWZOZWVkZWQoUmVmUHRy
PEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CisgICAgaWYgKCFkb2N1bWVudCgpLmhh
c0xpc3RlbmVyVHlwZShEb2N1bWVudDo6Rk9DVVNPVVRfTElTVEVORVIpKQorICAgICAgICByZXR1
cm47CiAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihTY3JpcHRE
aXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZDo6aXNTY3JpcHRBbGxvd2VkKCkgfHwgIWlzSW5X
ZWJQcm9jZXNzKCkpOwogICAgIGRpc3BhdGNoU2NvcGVkRXZlbnQoRm9jdXNFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vLCBkb2N1bWVudCgpLndpbmRvd1Byb3h5KCksIDAsIFdURk1vdmUo
bmV3Rm9jdXNlZEVsZW1lbnQpKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9u
IDI4Nzc5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU3MSw4ICs1NzEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaFNpbXVsYXRlZENs
aWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlv
bnMgPSBTZW5kTm9FdmVudHMsIFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVz
c2VkTG9vayk7CiAKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgY2hhbmdpbmcgc2lnbmF0dXJlIHRv
IGFjY2VwdCBFbGVtZW50KiBiZWNhdXNlIGFsbCBjYWxsZXJzIHBlcmZvcm0gY29weVJlZigpLgot
ICAgIHZvaWQgZGlzcGF0Y2hGb2N1c0luRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNl
ZEVsZW1lbnQpOwotICAgIHZvaWQgZGlzcGF0Y2hGb2N1c091dEV2ZW50KFJlZlB0cjxFbGVtZW50
PiYmIG5ld0ZvY3VzZWRFbGVtZW50KTsKKyAgICB2b2lkIGRpc3BhdGNoRm9jdXNJbkV2ZW50SWZO
ZWVkZWQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpOworICAgIHZvaWQgZGlz
cGF0Y2hGb2N1c091dEV2ZW50SWZOZWVkZWQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVs
ZW1lbnQpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1l
bnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQp
OwogICAgIHZvaWQgZGlzcGF0Y2hXZWJLaXRJbWFnZVJlYWR5RXZlbnRGb3JUZXN0aW5nKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>