<?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>85372</bug_id>
          
          <creation_ts>2012-05-02 06:44:16 -0700</creation_ts>
          <short_desc>Fix multiple begin values support - especially with seeking through setCurrentTime</short_desc>
          <delta_ts>2012-05-03 01:44:49 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>614249</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-02 06:44:16 -0700</bug_when>
    <thetext>Multiple begin values aka. begin=&quot;0s; 2s&quot; aren&apos;t correctly handled - resulting in broken &amp; unexpected behavior.
Supporting seeking properly on documents containing such animations is very important, otherwise we can&apos;t reliable test animations using either reftests or the SVG JS animation test framework.

Testcase:
&lt;rect height=&quot;100&quot; fill=&quot;green&quot;&gt;
    &lt;animate attributeName=&quot;width&quot; begin=&quot;0s; 2s&quot; dur=&quot;8s&quot; from=&quot;0&quot; to=&quot;100&quot; fill=&quot;freeze&quot;/&gt;
&lt;/rect&gt;

What&apos;s expected?
Two times should be contained in the &apos;begin&apos; times list in SVGSMILElement: m_beginTimes = { 0s, 2s }.
The initial first resolved interval is: m_intervalBegin=0.0s, m_intervalEnd=8.0s.

During t=0s..1.9999s the m_intervalBegin/m_intervalEnd are correct.
At t=2s, a new interval can be started. m_intervalEnd should be set to nextBeginTime, where nextBeginTime=2s.
The current interval should get cropped to: m_intervalBegin=0s, m_intervalEnd=2s. The following call to resolveNextInterval() sees that elapsed &gt;= m_intervalEnd, and thus moves on to the next interval.
m_intervalBegin should be 2s and m_intervalEnd=10s after that.

In trunk this behavior is only partly implemented and broken. Especially broken together with seeking via SVGSVGElement.setCurrentTime.
That&apos;s because we don&apos;t correctly seek to the right interval in case of multiple begin values, eg. if we sample an animation with begin=&quot;0s; 3s&quot; dur=&quot;6s&quot; we always remain in the first interval and don&apos;t move on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614254</commentid>
    <comment_count>1</comment_count>
      <attachid>139804</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-02 06:49:04 -0700</bug_when>
    <thetext>Created attachment 139804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614256</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 06:52:28 -0700</bug_when>
    <thetext>Attachment 139804 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1
Source/WebCore/svg/animation/SVGSMILElement.cpp:786:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614326</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-02 08:32:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 139804 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1
&gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:786:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
This error is in purpose. I can&apos;t use !smilTime, I have to use smilTime == 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615072</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-03 00:33:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:786:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
&gt; This error is in purpose. I can&apos;t use !smilTime, I have to use smilTime == 0

Another way to get rid of the warning is to use !smilTime.value(), instead of smilTime == 0.
I could include this upon landing, if desired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615091</commentid>
    <comment_count>5</comment_count>
      <attachid>139804</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-05-03 01:24:46 -0700</bug_when>
    <thetext>Comment on attachment 139804
Patch

r=me. Fix the complain of the style bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615097</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-03 01:44:49 -0700</bug_when>
    <thetext>Committed r115947: &lt;http://trac.webkit.org/changeset/115947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139804</attachid>
            <date>2012-05-02 06:49:04 -0700</date>
            <delta_ts>2012-05-03 01:24:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85372-20120502154918.patch</filename>
            <type>text/plain</type>
            <size>28023</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg5NmQwOTI3Zjk5MzJi
ZmZhMzgyZjY3ZjVjYTViMzc3ZWY4YjIyZC4uN2NkODQ0ZmE1OThlMGY3NDcyZjFkN2MzN2RhNTIy
YWI2ZjVkOWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTAyICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIEZpeCBtdWx0
aXBsZSBiZWdpbiB2YWx1ZXMgc3VwcG9ydCAtIGVzcGVjaWFsbHkgd2l0aCBzZWVraW5nIHRocm91
Z2ggc2V0Q3VycmVudFRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTXVsdGlwbGUgYmVnaW4gdmFsdWVzIGFrYS4gYmVnaW49IjBzOyAycyIgYXJlbid0
IGNvcnJlY3RseSBoYW5kbGVkIC0gcmVzdWx0aW5nIGluIGJyb2tlbiAmIHVuZXhwZWN0ZWQgYmVo
YXZpb3IuCisgICAgICAgIFN1cHBvcnRpbmcgc2Vla2luZyBwcm9wZXJseSBvbiBkb2N1bWVudHMg
Y29udGFpbmluZyBzdWNoIGFuaW1hdGlvbnMgaXMgdmVyeSBpbXBvcnRhbnQsIG90aGVyd2lzZSB3
ZSBjYW4ndCByZWxpYWJsZQorICAgICAgICB0ZXN0IGFuaW1hdGlvbnMgdXNpbmcgZWl0aGVyIHJl
ZnRlc3RzIG9yIHRoZSBTVkcgSlMgYW5pbWF0aW9uIHRlc3QgZnJhbWV3b3JrLgorCisgICAgICAg
IFRlc3RjYXNlOgorICAgICAgICA8cmVjdCBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iPgorICAg
ICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0id2lkdGgiIGJlZ2luPSIwczsgMnMiIGR1
cj0iOHMiIGZyb209IjAiIHRvPSIxMDAiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8L3JlY3Q+
CisKKyAgICAgICAgV2hhdCdzIGV4cGVjdGVkPworICAgICAgICBUd28gdGltZXMgc2hvdWxkIGJl
IGNvbnRhaW5lZCBpbiB0aGUgJ2JlZ2luJyB0aW1lcyBsaXN0IGluIFNWR1NNSUxFbGVtZW50OiBt
X2JlZ2luVGltZXMgPSB7IDBzLCAycyB9LgorICAgICAgICBUaGUgaW5pdGlhbCBmaXJzdCByZXNv
bHZlZCBpbnRlcnZhbCBpczogbV9pbnRlcnZhbEJlZ2luPTAuMHMsIG1faW50ZXJ2YWxFbmQ9OC4w
cy4KKworICAgICAgICBEdXJpbmcgdD0wcy4uMS45OTk5cyB0aGUgbV9pbnRlcnZhbEJlZ2luL21f
aW50ZXJ2YWxFbmQgYXJlIGNvcnJlY3QuCisgICAgICAgIEF0IHQ9MnMsIGEgbmV3IGludGVydmFs
IGNhbiBiZSBzdGFydGVkLiBtX2ludGVydmFsRW5kIHNob3VsZCBiZSBzZXQgdG8gbmV4dEJlZ2lu
VGltZSwgd2hlcmUgbmV4dEJlZ2luVGltZT0ycy4KKyAgICAgICAgVGhlIGN1cnJlbnQgaW50ZXJ2
YWwgc2hvdWxkIGdldCBjcm9wcGVkIHRvOiBtX2ludGVydmFsQmVnaW49MHMsIG1faW50ZXJ2YWxF
bmQ9MnMuIFRoZSBmb2xsb3dpbmcgY2FsbCB0bworICAgICAgICByZXNvbHZlTmV4dEludGVydmFs
KCkgc2VlcyB0aGF0IGVsYXBzZWQgPj0gbV9pbnRlcnZhbEVuZCwgYW5kIHRodXMgbW92ZXMgb24g
dG8gdGhlIG5leHQgaW50ZXJ2YWwuCisgICAgICAgIG1faW50ZXJ2YWxCZWdpbiBzaG91bGQgYmUg
MnMgYW5kIG1faW50ZXJ2YWxFbmQ9MTBzIGFmdGVyIHRoYXQuCisKKyAgICAgICAgSW4gdHJ1bmsg
dGhpcyBiZWhhdmlvciBpcyBvbmx5IHBhcnRseSBpbXBsZW1lbnRlZCBhbmQgYnJva2VuLiBFc3Bl
Y2lhbGx5IGJyb2tlbiB0b2dldGhlciB3aXRoIHNlZWtpbmcgdmlhIFNWR1NWR0VsZW1lbnQuc2V0
Q3VycmVudFRpbWUuCisgICAgICAgIFRoYXQncyBiZWNhdXNlIHdlIGRvbid0IGNvcnJlY3RseSBz
ZWVrIHRvIHRoZSByaWdodCBpbnRlcnZhbCBpbiBjYXNlIG9mIG11bHRpcGxlIGJlZ2luIHZhbHVl
cywgZWcuIGlmIHdlIHNhbXBsZSBhbiBhbmltYXRpb24gd2l0aAorICAgICAgICBiZWdpbj0iMHM7
IDNzIiBkdXI9IjZzIiB3ZSBhbHdheXMgcmVtYWluIGluIHRoZSBmaXJzdCBpbnRlcnZhbCBhbmQg
ZG9uJ3QgbW92ZSBvbi4KKworICAgICAgICBGaXggYWxsIG9mIHRoZXNlIGlzc3VlcywgbWFraW5n
IGxvdHMgbW9yZSB0ZXN0cyB3b3JrIGluIERyLiBPbGFmIEhvZm1hbm5zIFNWRyBBbmltYXRpb24g
dGVzdCBzdWl0ZS4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvbXVsdGlwbGUtYmVn
aW4tYWRkaXRpdmUtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L211bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi1kaXNjcmV0ZS1leHBlY3RlZC5zdmcKKyAgICAgICAg
ICAgICAgIHN2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi1kaXNjcmV0ZS5z
dmcKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFuaW1hdGlv
bi1leHBlY3RlZC5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL211bHRpcGxlLWJl
Z2luLWFuaW1hdGlvbi5zdmcKKworICAgICAgICAqIHN2Zy9hbmltYXRpb24vU01JTFRpbWVDb250
YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U01JTFRpbWVDb250YWluZXI6OmJlZ2luKToK
KyAgICAgICAgKFdlYkNvcmU6OlNNSUxUaW1lQ29udGFpbmVyOjpzZXRFbGFwc2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNNSUxUaW1lQ29udGFpbmVyOjp1cGRhdGVBbmltYXRpb25zKToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmg6CisgICAgICAgIChTTUlMVGlt
ZUNvbnRhaW5lcik6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6ZmluZEluc3RhbmNlVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVzb2x2ZUludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50OjpyZXNvbHZlTmV4dEludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OmNoZWNrUmVz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6c2Vla1RvSW50ZXJ2YWxD
b3JyZXNwb25kaW5nVG9UaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50Ojpw
cm9ncmVzcyk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oOgorICAg
ICAgICAoU1ZHU01JTEVsZW1lbnQpOgorCiAyMDEyLTA1LTAyICBCZXRoIERha2luICA8YmRha2lu
QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUzMDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01J
TFRpbWVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGlt
ZUNvbnRhaW5lci5jcHAKaW5kZXggN2E5MmRkODU5YmI5Mzg3NDg4YTQzMGZjODIxNWI4YzFjNjVh
NjJkMC4uOTA1NzgyODlhOGE0ZmI5NzU3ZTNjMTVhYzM2NzNjMmJkODVmZGFkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKQEAg
LTg5LDggKzg5LDEwIEBAIHZvaWQgU01JTFRpbWVDb250YWluZXI6OmJlZ2luKCkKICAgICBBU1NF
UlQoIW1fYmVnaW5UaW1lKTsKICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWUoKTsKIAorICAg
IC8vIElmICdtX3ByZXNldFN0YXJ0VGltZScgaXMgc2V0LCB0aGUgdGltZWxpbmUgd2FzIG1vZGlm
aWVkIHZpYSBzZXRFbGFwc2VkKCkgYmVmb3JlIHRoZSBkb2N1bWVudCBiZWdhbi4KKyAgICAvLyBJ
biB0aGlzIGNhc2UgcGFzcyBvbiAnc2Vla1RvVGltZT10cnVlJyB0byB1cGRhdGVBbmltYXRpb25z
KCkuCiAgICAgbV9iZWdpblRpbWUgPSBub3cgLSBtX3ByZXNldFN0YXJ0VGltZTsKLSAgICB1cGRh
dGVBbmltYXRpb25zKFNNSUxUaW1lKG1fcHJlc2V0U3RhcnRUaW1lKSk7CisgICAgdXBkYXRlQW5p
bWF0aW9ucyhTTUlMVGltZShtX3ByZXNldFN0YXJ0VGltZSksIG1fcHJlc2V0U3RhcnRUaW1lID8g
dHJ1ZSA6IGZhbHNlKTsKICAgICBtX3ByZXNldFN0YXJ0VGltZSA9IDA7CiAKICAgICBpZiAobV9w
YXVzZVRpbWUpIHsKQEAgLTEyNiw2ICsxMjgsOSBAQCB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjpz
ZXRFbGFwc2VkKFNNSUxUaW1lIHRpbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBp
ZiAobV9iZWdpblRpbWUpCisgICAgICAgIG1fdGltZXIuc3RvcCgpOworCiAgICAgbV9iZWdpblRp
bWUgPSBjdXJyZW50VGltZSgpIC0gdGltZS52YWx1ZSgpOwogICAgIG1fYWNjdW11bGF0ZWRQYXVz
ZVRpbWUgPSAwOwogCkBAIC0xMzQsNyArMTM5LDcgQEAgdm9pZCBTTUlMVGltZUNvbnRhaW5lcjo6
c2V0RWxhcHNlZChTTUlMVGltZSB0aW1lKQogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCB0
b1Jlc2V0LnNpemUoKTsgKytuKQogICAgICAgICB0b1Jlc2V0W25dLT5yZXNldCgpOwogCi0gICAg
dXBkYXRlQW5pbWF0aW9ucyh0aW1lKTsKKyAgICB1cGRhdGVBbmltYXRpb25zKHRpbWUsIHRydWUp
OwogfQogCiB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjpzdGFydFRpbWVyKFNNSUxUaW1lIGZpcmVU
aW1lLCBTTUlMVGltZSBtaW5pbXVtRGVsYXkpCkBAIC0yMDIsNyArMjA3LDcgQEAgc3RhdGljIHZv
aWQgc29ydEJ5QXBwbHlPcmRlcihWZWN0b3I8U1ZHU01JTEVsZW1lbnQqPiYgc21pbEVsZW1lbnRz
KQogICAgIHN0ZDo6c29ydChzbWlsRWxlbWVudHMuYmVnaW4oKSwgc21pbEVsZW1lbnRzLmVuZCgp
LCBhcHBseU9yZGVyU29ydEZ1bmN0aW9uKTsKIH0KIAotdm9pZCBTTUlMVGltZUNvbnRhaW5lcjo6
dXBkYXRlQW5pbWF0aW9ucyhTTUlMVGltZSBlbGFwc2VkKQordm9pZCBTTUlMVGltZUNvbnRhaW5l
cjo6dXBkYXRlQW5pbWF0aW9ucyhTTUlMVGltZSBlbGFwc2VkLCBib29sIHNlZWtUb1RpbWUpCiB7
CiAgICAgU01JTFRpbWUgZWFybGllcnNGaXJlVGltZSA9IFNNSUxUaW1lOjp1bnJlc29sdmVkKCk7
CiAKQEAgLTI0Nyw3ICsyNTIsNyBAQCB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjp1cGRhdGVBbmlt
YXRpb25zKFNNSUxUaW1lIGVsYXBzZWQpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBUaGlzIHdp
bGwgY2FsY3VsYXRlIHRoZSBjb250cmlidXRpb24gZnJvbSB0aGUgYW5pbWF0aW9uIGFuZCBhZGQg
aXQgdG8gdGhlIHJlc3VsdHNFbGVtZW50LgotICAgICAgICBhbmltYXRpb24tPnByb2dyZXNzKGVs
YXBzZWQsIHJlc3VsdEVsZW1lbnQpOworICAgICAgICBhbmltYXRpb24tPnByb2dyZXNzKGVsYXBz
ZWQsIHJlc3VsdEVsZW1lbnQsIHNlZWtUb1RpbWUpOwogCiAgICAgICAgIFNNSUxUaW1lIG5leHRG
aXJlVGltZSA9IGFuaW1hdGlvbi0+bmV4dFByb2dyZXNzVGltZSgpOwogICAgICAgICBpZiAobmV4
dEZpcmVUaW1lLmlzRmluaXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5p
bWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9u
L1NNSUxUaW1lQ29udGFpbmVyLmgKaW5kZXggZjk2Y2I5OTJmNDIxMDNkMzZiOWJjNmExMzE3M2Jk
ZGUzOTdlMzYzNy4uNDEyMDJhMGY4NmE4ODVmNzM2MGExMTlhNWVhZTJmZWU2ODEzNDMyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuaApA
QCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgdGltZXJGaXJlZChUaW1l
cjxTTUlMVGltZUNvbnRhaW5lcj4qKTsKICAgICB2b2lkIHN0YXJ0VGltZXIoU01JTFRpbWUgZmly
ZVRpbWUsIFNNSUxUaW1lIG1pbmltdW1EZWxheSA9IDApOwotICAgIHZvaWQgdXBkYXRlQW5pbWF0
aW9ucyhTTUlMVGltZSBlbGFwc2VkKTsKKyAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoU01JTFRp
bWUgZWxhcHNlZCwgYm9vbCBzZWVrVG9UaW1lID0gZmFsc2UpOwogICAgIAogICAgIHZvaWQgdXBk
YXRlRG9jdW1lbnRPcmRlckluZGV4ZXMoKTsKICAgICB2b2lkIHNvcnRCeVByaW9yaXR5KFZlY3Rv
cjxTVkdTTUlMRWxlbWVudCo+JiBzbWlsRWxlbWVudHMsIFNNSUxUaW1lIGVsYXBzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCBk
M2U5NjQyNDAwNGIyNjkyOTI3ZWZiZmIwYjM0OWFmNTVlNGJkZDVlLi5iMWI1NjBiNmM4MjVjNWM1
MjU5Mzg0YjAyZmU1ZGRmYTAyZWIxNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtNjk2LDM3ICs2OTYsMzIgQEAgU01JTFRpbWUg
U1ZHU01JTEVsZW1lbnQ6OmZpbmRJbnN0YW5jZVRpbWUoQmVnaW5PckVuZCBiZWdpbk9yRW5kLCBT
TUlMVGltZSBtaW5pbXUKIAogICAgIGNvbnN0IFNNSUxUaW1lV2l0aE9yaWdpbiogcmVzdWx0ID0g
YmluYXJ5U2VhcmNoPGNvbnN0IFNNSUxUaW1lV2l0aE9yaWdpbiwgU01JTFRpbWUsIGV4dHJhY3RU
aW1lRnJvbVZlY3Rvcj4obGlzdC5iZWdpbigpLCBzaXplT2ZMaXN0LCBtaW5pbXVtVGltZSwgV1RG
OjpLZXlNdXN0Tm90QmVQcmVzZW50SW5BcnJheSk7CiAgICAgaW50IGluZGV4T2ZSZXN1bHQgPSBy
ZXN1bHQgLSBsaXN0LmJlZ2luKCk7Ci0gICAgaWYgKHNpemVPZkxpc3QgLSAxID4gaW5kZXhPZlJl
c3VsdCAmJiBsaXN0W2luZGV4T2ZSZXN1bHRdLnRpbWUoKSA8IG1pbmltdW1UaW1lKQotICAgICAg
ICArK2luZGV4T2ZSZXN1bHQ7Ci0KICAgICBBU1NFUlQoaW5kZXhPZlJlc3VsdCA8IHNpemVPZkxp
c3QpOwogICAgIGNvbnN0IFNNSUxUaW1lJiBjdXJyZW50VGltZSA9IGxpc3RbaW5kZXhPZlJlc3Vs
dF0udGltZSgpOwogCi0gICAgLy8gIlRoZSBzcGVjaWFsIHZhbHVlICJpbmRlZmluaXRlIiBkb2Vz
IG5vdCB5aWVsZCBhbiBpbnN0YW5jZSB0aW1lIGluIHRoZSBiZWdpbiBsaXN0LiIKKyAgICAvLyBU
aGUgc3BlY2lhbCB2YWx1ZSAiaW5kZWZpbml0ZSIgZG9lcyBub3QgeWllbGQgYW4gaW5zdGFuY2Ug
dGltZSBpbiB0aGUgYmVnaW4gbGlzdC4KICAgICBpZiAoY3VycmVudFRpbWUuaXNJbmRlZmluaXRl
KCkgJiYgYmVnaW5PckVuZCA9PSBCZWdpbikKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjp1bnJl
c29sdmVkKCk7CiAKICAgICBpZiAoY3VycmVudFRpbWUgPCBtaW5pbXVtVGltZSkKICAgICAgICAg
cmV0dXJuIGJlZ2luT3JFbmQgPT0gQmVnaW4gPyBTTUlMVGltZTo6dW5yZXNvbHZlZCgpIDogU01J
TFRpbWU6OmluZGVmaW5pdGUoKTsKKyAgICBpZiAoY3VycmVudFRpbWUgPiBtaW5pbXVtVGltZSkK
KyAgICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lOwogCi0gICAgLy8gSWYgdGhlIGVxdWFscyBpcyBO
T1QgYWNjZXB0ZWQsIHdlIGhhdmUgdG8gZmluZCBhIGJpZ2dlciBvbmUuCi0gICAgaWYgKGN1cnJl
bnRUaW1lID09IG1pbmltdW1UaW1lICYmICFlcXVhbHNNaW5pbXVtT0spIHsKLSAgICAgICAgaWYg
KGluZGV4T2ZSZXN1bHQgKyAxID49IHNpemVPZkxpc3QpCi0gICAgICAgICAgICByZXR1cm4gYmVn
aW5PckVuZCA9PSBCZWdpbiA/IFNNSUxUaW1lOjp1bnJlc29sdmVkKCkgOiBTTUlMVGltZTo6aW5k
ZWZpbml0ZSgpOwotICAgIH0KKyAgICBBU1NFUlQoY3VycmVudFRpbWUgPT0gbWluaW11bVRpbWUp
OworICAgIGlmIChlcXVhbHNNaW5pbXVtT0spCisgICAgICAgIHJldHVybiBjdXJyZW50VGltZTsK
IAotICAgIHdoaWxlIChpbmRleE9mUmVzdWx0IDwgc2l6ZU9mTGlzdCAtIDEgJiYgY3VycmVudFRp
bWUgPT0gbGlzdFtpbmRleE9mUmVzdWx0ICsgMV0udGltZSgpKQorICAgIC8vIElmIHRoZSBlcXVh
bHMgaXMgbm90IGFjY2VwdGVkLCByZXR1cm4gdGhlIG5leHQgYmlnZ2VyIGl0ZW0gaW4gdGhlIGxp
c3QuCisgICAgU01JTFRpbWUgbmV4dFRpbWUgPSBjdXJyZW50VGltZTsKKyAgICB3aGlsZSAoaW5k
ZXhPZlJlc3VsdCA8IHNpemVPZkxpc3QgLSAxKSB7CisgICAgICAgIG5leHRUaW1lID0gbGlzdFtp
bmRleE9mUmVzdWx0ICsgMV0udGltZSgpOworICAgICAgICBpZiAobmV4dFRpbWUgPiBtaW5pbXVt
VGltZSkKKyAgICAgICAgICAgIHJldHVybiBuZXh0VGltZTsKICAgICAgICAgKytpbmRleE9mUmVz
dWx0OwotCi0gICAgaWYgKGN1cnJlbnRUaW1lID4gbWluaW11bVRpbWUpCi0gICAgICAgIHJldHVy
biBjdXJyZW50VGltZTsKLSAgICBpZiAoY3VycmVudFRpbWUgPT0gbWluaW11bVRpbWUpIHsKLSAg
ICAgICAgaWYgKGluZGV4T2ZSZXN1bHQgKyAxIDwgc2l6ZU9mTGlzdCAtIDEpCi0gICAgICAgICAg
ICByZXR1cm4gbGlzdFtpbmRleE9mUmVzdWx0ICsgMV0udGltZSgpOwotICAgICAgICByZXR1cm4g
YmVnaW5PckVuZCA9PSBCZWdpbiA/IFNNSUxUaW1lOjp1bnJlc29sdmVkKCkgOiBTTUlMVGltZTo6
aW5kZWZpbml0ZSgpOwogICAgIH0KIAotICAgIHJldHVybiBjdXJyZW50VGltZTsKKyAgICByZXR1
cm4gYmVnaW5PckVuZCA9PSBCZWdpbiA/IFNNSUxUaW1lOjp1bnJlc29sdmVkKCkgOiBTTUlMVGlt
ZTo6aW5kZWZpbml0ZSgpOwogfQogCiBTTUlMVGltZSBTVkdTTUlMRWxlbWVudDo6cmVwZWF0aW5n
RHVyYXRpb24oKSBjb25zdApAQCAtNzY3LDEyICs3NjIsMTIgQEAgU01JTFRpbWUgU1ZHU01JTEVs
ZW1lbnQ6OnJlc29sdmVBY3RpdmVFbmQoU01JTFRpbWUgcmVzb2x2ZWRCZWdpbiwgU01JTFRpbWUg
cmVzb2wKIAogdm9pZCBTVkdTTUlMRWxlbWVudDo6cmVzb2x2ZUludGVydmFsKGJvb2wgZmlyc3Qs
IFNNSUxUaW1lJiBiZWdpblJlc3VsdCwgU01JTFRpbWUmIGVuZFJlc3VsdCkgY29uc3QKIHsKLSAg
ICAvLyBTZWUgdGhlIHBzZXVkb2NvZGUgaW4KLSAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDAxL1JFQy1zbWlsLWFuaW1hdGlvbi0yMDAxMDkwNC8jVGltaW5nLUJlZ2luRW5kLUxpZmVDeWNs
ZQorICAgIC8vIFNlZSB0aGUgcHNldWRvY29kZSBpbiBodHRwOi8vd3d3LnczLm9yZy9UUi9TTUlM
My9zbWlsLXRpbWluZy5odG1sI3E5MC4KICAgICBTTUlMVGltZSBiZWdpbkFmdGVyID0gZmlyc3Qg
PyAtbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IG1faW50ZXJ2YWxFbmQ7CiAg
ICAgU01JTFRpbWUgbGFzdEludGVydmFsVGVtcEVuZCA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46
OmluZmluaXR5KCk7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgU01JTFRpbWUgdGVtcEJl
Z2luID0gZmluZEluc3RhbmNlVGltZShCZWdpbiwgYmVnaW5BZnRlciwgdHJ1ZSk7CisgICAgICAg
IGJvb2wgZXF1YWxzTWluaW11bU9LID0gIWZpcnN0IHx8IG1faW50ZXJ2YWxFbmQgPiBtX2ludGVy
dmFsQmVnaW47CisgICAgICAgIFNNSUxUaW1lIHRlbXBCZWdpbiA9IGZpbmRJbnN0YW5jZVRpbWUo
QmVnaW4sIGJlZ2luQWZ0ZXIsIGVxdWFsc01pbmltdW1PSyk7CiAgICAgICAgIGlmICh0ZW1wQmVn
aW4uaXNVbnJlc29sdmVkKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgU01JTFRpbWUg
dGVtcEVuZDsKQEAgLTc4OCwxMyArNzgzLDExIEBAIHZvaWQgU1ZHU01JTEVsZW1lbnQ6OnJlc29s
dmVJbnRlcnZhbChib29sIGZpcnN0LCBTTUlMVGltZSYgYmVnaW5SZXN1bHQsIFNNSUxUaW1lCiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB0ZW1wRW5kID0gcmVzb2x2ZUFjdGl2ZUVuZCh0ZW1w
QmVnaW4sIHRlbXBFbmQpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh0ZW1wRW5kID4gMCB8fCAh
Zmlyc3QpIHsKKyAgICAgICAgaWYgKCFmaXJzdCB8fCAodGVtcEVuZCA+IDAgfHwgKHRlbXBCZWdp
biA9PSAwICYmIHRlbXBFbmQgPT0gMCkpKSB7CiAgICAgICAgICAgICBiZWdpblJlc3VsdCA9IHRl
bXBCZWdpbjsKICAgICAgICAgICAgIGVuZFJlc3VsdCA9IHRlbXBFbmQ7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3RhcnQoKSA9PSBSZXN0YXJ0TmV2ZXIp
Ci0gICAgICAgICAgICBicmVhazsKIAogICAgICAgICBiZWdpbkFmdGVyID0gdGVtcEVuZDsKICAg
ICAgICAgbGFzdEludGVydmFsVGVtcEVuZCA9IHRlbXBFbmQ7CkBAIC04MjAsNyArODEzLDcgQEAg
dm9pZCBTVkdTTUlMRWxlbWVudDo6cmVzb2x2ZUZpcnN0SW50ZXJ2YWwoKQogICAgIH0KIH0KIAot
dm9pZCBTVkdTTUlMRWxlbWVudDo6cmVzb2x2ZU5leHRJbnRlcnZhbCgpCit2b2lkIFNWR1NNSUxF
bGVtZW50OjpyZXNvbHZlTmV4dEludGVydmFsKGJvb2wgbm90aWZ5RGVwZW5kZW50cykKIHsKICAg
ICBTTUlMVGltZSBiZWdpbjsKICAgICBTTUlMVGltZSBlbmQ7CkBAIC04MzAsNyArODIzLDggQEAg
dm9pZCBTVkdTTUlMRWxlbWVudDo6cmVzb2x2ZU5leHRJbnRlcnZhbCgpCiAgICAgaWYgKCFiZWdp
bi5pc1VucmVzb2x2ZWQoKSAmJiBiZWdpbiAhPSBtX2ludGVydmFsQmVnaW4pIHsKICAgICAgICAg
bV9pbnRlcnZhbEJlZ2luID0gYmVnaW47CiAgICAgICAgIG1faW50ZXJ2YWxFbmQgPSBlbmQ7Ci0g
ICAgICAgIG5vdGlmeURlcGVuZGVudHNJbnRlcnZhbENoYW5nZWQoTmV3SW50ZXJ2YWwpOworICAg
ICAgICBpZiAobm90aWZ5RGVwZW5kZW50cykKKyAgICAgICAgICAgIG5vdGlmeURlcGVuZGVudHNJ
bnRlcnZhbENoYW5nZWQoTmV3SW50ZXJ2YWwpOwogICAgICAgICBtX25leHRQcm9ncmVzc1RpbWUg
PSBtaW4obV9uZXh0UHJvZ3Jlc3NUaW1lLCBtX2ludGVydmFsQmVnaW4pOwogICAgIH0KIH0KQEAg
LTg4NCwxNiArODc4LDE2IEBAIHZvaWQgU1ZHU01JTEVsZW1lbnQ6OmVuZExpc3RDaGFuZ2VkKFNN
SUxUaW1lKQogICAgIG1fbmV4dFByb2dyZXNzVGltZSA9IGVsYXBzZWQ7CiAgICAgcmVzY2hlZHVs
ZSgpOwogfQotICAgIAorCiB2b2lkIFNWR1NNSUxFbGVtZW50OjpjaGVja1Jlc3RhcnQoU01JTFRp
bWUgZWxhcHNlZCkKIHsKICAgICBBU1NFUlQoIW1faXNXYWl0aW5nRm9yRmlyc3RJbnRlcnZhbCk7
CiAgICAgQVNTRVJUKGVsYXBzZWQgPj0gbV9pbnRlcnZhbEJlZ2luKTsKLSAgICAKKwogICAgIFJl
c3RhcnQgcmVzdGFydCA9IHRoaXMtPnJlc3RhcnQoKTsKICAgICBpZiAocmVzdGFydCA9PSBSZXN0
YXJ0TmV2ZXIpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIGlmIChlbGFwc2VkIDwgbV9p
bnRlcnZhbEVuZCkgewogICAgICAgICBpZiAocmVzdGFydCAhPSBSZXN0YXJ0QWx3YXlzKQogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtOTAyLDExICs4OTYsNDUgQEAgdm9pZCBTVkdTTUlMRWxlbWVu
dDo6Y2hlY2tSZXN0YXJ0KFNNSUxUaW1lIGVsYXBzZWQpCiAgICAgICAgICAgICBtX2ludGVydmFs
RW5kID0gbmV4dEJlZ2luOwogICAgICAgICAgICAgbm90aWZ5RGVwZW5kZW50c0ludGVydmFsQ2hh
bmdlZChFeGlzdGluZ0ludGVydmFsKTsKICAgICAgICAgfQotICAgIH0gCisgICAgfQorCiAgICAg
aWYgKGVsYXBzZWQgPj0gbV9pbnRlcnZhbEVuZCkKLSAgICAgICAgcmVzb2x2ZU5leHRJbnRlcnZh
bCgpOworICAgICAgICByZXNvbHZlTmV4dEludGVydmFsKHRydWUpOwogfQotICAgIAorCit2b2lk
IFNWR1NNSUxFbGVtZW50OjpzZWVrVG9JbnRlcnZhbENvcnJlc3BvbmRpbmdUb1RpbWUoU01JTFRp
bWUgZWxhcHNlZCkKK3sKKyAgICBBU1NFUlQoIW1faXNXYWl0aW5nRm9yRmlyc3RJbnRlcnZhbCk7
CisgICAgQVNTRVJUKGVsYXBzZWQgPj0gbV9pbnRlcnZhbEJlZ2luKTsKKworICAgIC8vIE1hbnVh
bGx5IHNlZWsgZnJvbSBpbnRlcnZhbCB0byBpbnRlcnZhbCwganVzdCBhcyBpZiB0aGUgYW5pbWF0
aW9uIHdvdWxkIHJ1biByZWd1bGFyeS4KKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAvLyBG
aWd1cmUgb3V0IHRoZSBuZXh0IHZhbHVlIGluIHRoZSBiZWdpbiB0aW1lIGxpc3QgYWZ0ZXIgdGhl
IGN1cnJlbnQgaW50ZXJ2YWwgYmVnaW4uCisgICAgICAgIFNNSUxUaW1lIG5leHRCZWdpbiA9IGZp
bmRJbnN0YW5jZVRpbWUoQmVnaW4sIG1faW50ZXJ2YWxCZWdpbiwgZmFsc2UpOworCisgICAgICAg
IC8vIElmIHRoZSAnbmV4dEJlZ2luJyB0aW1lIGlzIHVucmVzb2x2ZWQgKGVnLiBqdXN0IG9uZSBk
ZWZpbmVkIGludGVydmFsKSwgd2UncmUgZG9uZSBzZWVraW5nLgorICAgICAgICBpZiAobmV4dEJl
Z2luLmlzVW5yZXNvbHZlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIElm
IHRoZSAnbmV4dEJlZ2luJyB0aW1lIGlzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjdXJy
ZW50IGludGVydmFsIGVuZCB0aW1lLCB3ZSdyZSBkb25lIHNlZWtpbmcuCisgICAgICAgIC8vIElm
IHRoZSAnZWxhcHNlZCcgdGltZSBpcyBzbWFsbGVyIHRoYW4gdGhlIG5leHQgYmVnaW4gaW50ZXJ2
YWwgdGltZSwgd2UncmUgZG9uZSBzZWVraW5nLgorICAgICAgICBpZiAobmV4dEJlZ2luIDwgbV9p
bnRlcnZhbEVuZCAmJiBlbGFwc2VkID49IG5leHRCZWdpbikgeworICAgICAgICAgICAgLy8gRW5k
IGN1cnJlbnQgaW50ZXJ2YWwsIGFuZCBzdGFydCBhIG5ldyBpbnRlcnZhbCBmcm9tIHRoZSAnbmV4
dEJlZ2luJyB0aW1lLgorICAgICAgICAgICAgbV9pbnRlcnZhbEVuZCA9IG5leHRCZWdpbjsKKyAg
ICAgICAgICAgIHJlc29sdmVOZXh0SW50ZXJ2YWwoZmFsc2UpOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgZGVzaXJlZCAnZWxhcHNlZCcgdGlt
ZSBpcyBwYXN0IHRoZSBjdXJyZW50IGludGVydmFsLCBhZHZhbmNlIHRvIHRoZSBuZXh0LgorICAg
ICAgICBpZiAoZWxhcHNlZCA+PSBtX2ludGVydmFsRW5kKSB7CisgICAgICAgICAgICByZXNvbHZl
TmV4dEludGVydmFsKGZhbHNlKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwogZmxvYXQgU1ZHU01JTEVsZW1lbnQ6OmNhbGN1
bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQoU01JTFRpbWUgZWxhcHNlZCwgdW5zaWduZWQm
IHJlcGVhdCkgY29uc3QKIHsKICAgICBTTUlMVGltZSBzaW1wbGVEdXJhdGlvbiA9IHRoaXMtPnNp
bXBsZUR1cmF0aW9uKCk7CkBAIC05NzQsNyArMTAwMiw3IEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6
OmlzQ29udHJpYnV0aW5nKFNNSUxUaW1lIGVsYXBzZWQpIGNvbnN0CiAgICAgcmV0dXJuIChtX2Fj
dGl2ZVN0YXRlID09IEFjdGl2ZSAmJiAoZmlsbCgpID09IEZpbGxGcmVlemUgfHwgZWxhcHNlZCA8
PSBtX2ludGVydmFsQmVnaW4gKyByZXBlYXRpbmdEdXJhdGlvbigpKSkgfHwgbV9hY3RpdmVTdGF0
ZSA9PSBGcm96ZW47CiB9CiAgICAgCi12b2lkIFNWR1NNSUxFbGVtZW50Ojpwcm9ncmVzcyhTTUlM
VGltZSBlbGFwc2VkLCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCkKK3ZvaWQgU1ZHU01J
TEVsZW1lbnQ6OnByb2dyZXNzKFNNSUxUaW1lIGVsYXBzZWQsIFNWR1NNSUxFbGVtZW50KiByZXN1
bHRFbGVtZW50LCBib29sIHNlZWtUb1RpbWUpCiB7CiAgICAgQVNTRVJUKG1fdGltZUNvbnRhaW5l
cik7CiAgICAgQVNTRVJUKG1faXNXYWl0aW5nRm9yRmlyc3RJbnRlcnZhbCB8fCBtX2ludGVydmFs
QmVnaW4uaXNGaW5pdGUoKSk7CkBAIC0xMDAzLDE1ICsxMDMxLDE5IEBAIHZvaWQgU1ZHU01JTEVs
ZW1lbnQ6OnByb2dyZXNzKFNNSUxUaW1lIGVsYXBzZWQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRF
bGVtZW50KQogICAgICAgICBtX2FjdGl2ZVN0YXRlID0gQWN0aXZlOwogICAgICAgICBzdGFydGVk
QWN0aXZlSW50ZXJ2YWwoKTsKICAgICB9Ci0gICAgCi0gICAgdW5zaWduZWQgcmVwZWF0OwotICAg
IGZsb2F0IHBlcmNlbnQgPSBjYWxjdWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0KGVsYXBz
ZWQsIHJlcGVhdCk7CiAKKyAgICAvLyBUaGlzIGNhbGwgbWF5IG9idGFpbiBhIG5ldyBpbnRlcnZh
bCAtLSBuZXZlciBjYWxsIGNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQoKSBiZWZv
cmUhCisgICAgaWYgKHNlZWtUb1RpbWUpIHsKKyAgICAgICAgc2Vla1RvSW50ZXJ2YWxDb3JyZXNw
b25kaW5nVG9UaW1lKGVsYXBzZWQpOworICAgICAgICBBU1NFUlQoZWxhcHNlZCA+PSBtX2ludGVy
dmFsQmVnaW4pOworICAgIH0KKworICAgIHVuc2lnbmVkIHJlcGVhdCA9IDA7CisgICAgZmxvYXQg
cGVyY2VudCA9IGNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQoZWxhcHNlZCwgcmVw
ZWF0KTsKICAgICBjaGVja1Jlc3RhcnQoZWxhcHNlZCk7CiAKICAgICBBY3RpdmVTdGF0ZSBvbGRB
Y3RpdmVTdGF0ZSA9IG1fYWN0aXZlU3RhdGU7CiAgICAgbV9hY3RpdmVTdGF0ZSA9IGRldGVybWlu
ZUFjdGl2ZVN0YXRlKGVsYXBzZWQpOwotICAgIAogICAgIGlmIChpc0NvbnRyaWJ1dGluZyhlbGFw
c2VkKSkgewogICAgICAgICBpZiAocmVzdWx0RWxlbWVudCkKICAgICAgICAgICAgIHVwZGF0ZUFu
aW1hdGlvbihwZXJjZW50LCByZXBlYXQsIHJlc3VsdEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCmluZGV4IDBjYjAxMzAwY2JhMDk0YTU0
ZTAzOTUwNTA1Y2NlZTE1YTY1MmMwMzcuLmZiM2IyMTNhN2I1MTcwYjRmY2RmMWRiNWNiMmI5MzU3
ZDRlMWM1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01J
TEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVt
ZW50LmgKQEAgLTg5LDcgKzg5LDggQEAgcHVibGljOgogICAgIFNNSUxUaW1lIHByZXZpb3VzSW50
ZXJ2YWxCZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNJbnRlcnZhbEJlZ2luOyB9CiAg
ICAgU01JTFRpbWUgc2ltcGxlRHVyYXRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgcHJvZ3Jlc3Mo
U01JTFRpbWUgZWxhcHNlZCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdHNFbGVtZW50KTsKKyAgICB2
b2lkIHNlZWtUb0ludGVydmFsQ29ycmVzcG9uZGluZ1RvVGltZShTTUlMVGltZSBlbGFwc2VkKTsK
KyAgICB2b2lkIHByb2dyZXNzKFNNSUxUaW1lIGVsYXBzZWQsIFNWR1NNSUxFbGVtZW50KiByZXN1
bHRzRWxlbWVudCwgYm9vbCBzZWVrVG9UaW1lKTsKICAgICBTTUlMVGltZSBuZXh0UHJvZ3Jlc3NU
aW1lKCkgY29uc3Q7CiAKICAgICB2b2lkIHJlc2V0KCk7CkBAIC0xMjksNyArMTMwLDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICBTTUlMVGltZSBmaW5kSW5zdGFuY2VUaW1lKEJlZ2luT3JFbmQsIFNN
SUxUaW1lIG1pbmltdW1UaW1lLCBib29sIGVxdWFsc01pbmltdW1PSykgY29uc3Q7CiAgICAgdm9p
ZCByZXNvbHZlRmlyc3RJbnRlcnZhbCgpOwotICAgIHZvaWQgcmVzb2x2ZU5leHRJbnRlcnZhbCgp
OworICAgIHZvaWQgcmVzb2x2ZU5leHRJbnRlcnZhbChib29sIG5vdGlmeURlcGVuZGVudHMpOwog
ICAgIHZvaWQgcmVzb2x2ZUludGVydmFsKGJvb2wgZmlyc3QsIFNNSUxUaW1lJiBiZWdpblJlc3Vs
dCwgU01JTFRpbWUmIGVuZFJlc3VsdCkgY29uc3Q7CiAgICAgU01JTFRpbWUgcmVzb2x2ZUFjdGl2
ZUVuZChTTUlMVGltZSByZXNvbHZlZEJlZ2luLCBTTUlMVGltZSByZXNvbHZlZEVuZCkgY29uc3Q7
CiAgICAgU01JTFRpbWUgcmVwZWF0aW5nRHVyYXRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMWY4YWFh
YTI0MWQyZWU0NWQwYjY3YzhhMzhkOGJlY2U5ZmU1Mzc1Li4wZjdjZWY5NDlkY2I3Yzk4MzBiZDQx
YzM1OGM2Zjc2YWQ5YTE1ZDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDUtMDIgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgRml4IG11
bHRpcGxlIGJlZ2luIHZhbHVlcyBzdXBwb3J0IC0gZXNwZWNpYWxseSB3aXRoIHNlZWtpbmcgdGhy
b3VnaCBzZXRDdXJyZW50VGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1h
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL211bHRp
cGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRpb24tZGlzY3JldGUtZXhwZWN0ZWQuc3Zn
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRp
b24tZGlzY3JldGUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9tdWx0aXBs
ZS1iZWdpbi1hbmltYXRpb24tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRpb24uc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMvbXVsdGlwbGUtYmVnaW4tYWRkaXRpdmUtYW5pbWF0aW9u
LnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL211bHRp
cGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1hdGlvbi5qczogQWRkZWQuCisgICAgICAgIChjaGVja0Jh
c2VWYWx1ZXMpOgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAg
ICAgKHNhbXBsZTMpOgorICAgICAgICAoc2FtcGxlNCk6CisgICAgICAgIChzYW1wbGU1KToKKyAg
ICAgICAgKHNhbXBsZTYpOgorICAgICAgICAoc2FtcGxlNyk6CisgICAgICAgIChzYW1wbGU4KToK
KyAgICAgICAgKHNhbXBsZTkpOgorICAgICAgICAoc2FtcGxlMTApOgorICAgICAgICAoc2FtcGxl
MTEpOgorICAgICAgICAoc2FtcGxlMTIpOgorICAgICAgICAoc2FtcGxlMTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorCiAyMDEyLTA1LTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgdGVzdF9leHBlY3RhdGlvbnMg
dXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvbXVsdGlwbGUt
YmVnaW4tYWRkaXRpdmUtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2QwNDg2Y2MzNzc2MjcxN2VlYzg3NjI2NzhjMzlhNGE2Mzc1NDJlNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2lu
LWFkZGl0aXZlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NCBAQAorU1ZHIDEu
MSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCisKK1RoaXMgdGVzdHMgYWRkaXRpdmU9J3N1bScg
c3VwcG9ydCBvbiBhbmltYXRlIGVsZW1lbnRzIHdpdGggbXVsdGlwbGUgYmVnaW4gdGltZXMKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUg
aXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC54LmFuaW1W
YWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyAxNjYuNjcKK1BBU1Mg
cmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyAz
NjYuNjAKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5pbVZh
bC52YWx1ZSBpcyAzNjYuNzMKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBy
ZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyA0OTkuOTMKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUg
aXMgNDAwCitQQVNTIHJlY3QueS5hbmltVmFsLnZhbHVlIGlzIDUwMC4wNgorUEFTUyByZWN0Lngu
YW5pbVZhbC52YWx1ZSBpcyA0MDAKK1BBU1MgcmVjdC55LmFuaW1WYWwudmFsdWUgaXMgNTY2LjY3
CitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIDQwMAorUEFTUyByZWN0LnkuYW5pbVZhbC52
YWx1ZSBpcyA2MzMuMzMKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgNDAwCitQQVNTIHJl
Y3QueS5hbmltVmFsLnZhbHVlIGlzIDYzMy4zMworUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBp
cyA0MDAKK1BBU1MgcmVjdC55LmFuaW1WYWwudmFsdWUgaXMgNzAwCitQQVNTIHJlY3QueC5hbmlt
VmFsLnZhbHVlIGlzIDQwMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyA3NjYuNjAKK1BB
U1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBp
cyA3NjYuNjcKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5p
bVZhbC52YWx1ZSBpcyA4MzMuMzMKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMAorUEFT
UyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyA5MDAKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUg
aXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyA5MDAKK1BBU1MgcmVjdC54LmFuaW1W
YWwudmFsdWUgaXMgMAorUEFTUyByZWN0LnkuYW5pbVZhbC52YWx1ZSBpcyA5MDAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hZGRpdGl2ZS1hbmltYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFkZGl0
aXZlLWFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODQ1ZDRiMGZmNGVkZWEwNzRlMzBiNmRi
NTBkMjU2N2NjZDIzYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9tdWx0aXBsZS1iZWdpbi1hZGRpdGl2ZS1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDE0
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5TTUlMVGVzdCgpIj4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL211bHRpcGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1hdGlvbi5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRpb24tZGlzY3JldGUtZXhwZWN0ZWQu
c3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvbXVsdGlwbGUtYmVnaW4tYW5pbWF0aW9u
LWRpc2NyZXRlLWV4cGVjdGVkLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODRiOWEwYWExOWU4MGE5OWYyYjZk
ZDZlMGMxYjQxMjMzMzIxMWE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvbXVsdGlwbGUtYmVnaW4tYW5pbWF0aW9uLWRpc2NyZXRlLWV4cGVjdGVkLnN2ZwpA
QCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBUaW55Ly9FTiIgImh0dHA6
Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLXRpbnkuZHRkIj4KKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0icmVkIi8+CisgICAgPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0
PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi1kaXNjcmV0ZS5zdmcgYi9MYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRpb24tZGlzY3JldGUu
c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlODlkNWUyMTZmMzIyMzQ3YThkNTlkNDNkMzZhODhiMjQ4NjMzM2UK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1i
ZWdpbi1hbmltYXRpb24tZGlzY3JldGUuc3ZnCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzND
Ly9EVEQgU1ZHIDEuMSBUaW55Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8x
LjEvRFREL3N2ZzExLXRpbnkuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiBvbmxvYWQ9ImxvYWRlZCgpIj4KKzxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
IiBmaWxsPSJncmVlbiI+CisgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0id2lkdGgiIGF0dHJp
YnV0ZVR5cGU9IlhNTCIgY2FsY01vZGU9ImRpc2NyZXRlIiBiZWdpbj0iMHM7IDNzIiBmcm9tPSIx
MDAiIHRvPSIwIiBkdXI9IjhzIi8+Cis8L3JlY3Q+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisKK2Z1bmN0aW9uIGxvYWRlZCgpIHsKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
c2V0Q3VycmVudFRpbWUoNi41KTsKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucGF1c2VB
bmltYXRpb25zKCk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvbXVsdGlwbGUtYmVn
aW4tYW5pbWF0aW9uLWV4cGVjdGVkLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL211
bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUxNWMzYTAx
ZmIzYmM0ZmI5ODAyMzQ5ZjRhZmJhZDA5NjE3NWJhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi1leHBlY3RlZC5z
dmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEgVGlueS8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS10aW55LmR0ZCI+Cis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPHJlY3Qgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL211bHRpcGxlLWJlZ2luLWFuaW1hdGlvbi5zdmcgYi9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1hbmltYXRpb24uc3ZnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmNTlmNGFhNzdjMjI3YWFiNTNhMzI4YjU4MDIyYmIzMGFmM2RjYWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9tdWx0aXBsZS1iZWdpbi1h
bmltYXRpb24uc3ZnCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBU
aW55Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLXRp
bnkuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBvbmxvYWQ9
ImxvYWRlZCgpIj4KKzxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIj4K
KyAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJ3aWR0aCIgYXR0cmlidXRlVHlwZT0iWE1MIiBi
ZWdpbj0iMHM7IDJzIiBmcm9tPSIwIiB0bz0iMjAwIiBkdXI9IjRzIiBmaWxsPSJmcmVlemUiLz4K
KzwvcmVjdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gbG9hZGVk
KCkgeworICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRDdXJyZW50VGltZSg0KTsKKyAg
ICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucGF1c2VBbmltYXRpb25zKCk7CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL211bHRpcGxlLWJlZ2luLWFkZGl0aXZlLWFu
aW1hdGlvbi5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMvbXVsdGlw
bGUtYmVnaW4tYWRkaXRpdmUtYW5pbWF0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTk3M2UzZmYxNzIz
ZWE0ZGJhZWQyZjQzNjZiNGJiZDEzZTQ0YmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL211bHRpcGxlLWJlZ2luLWFkZGl0aXZlLWFuaW1h
dGlvbi5zdmcKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEgVGlueS8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS10aW55LmR0
ZCI+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAw
IDEwMDAgMTAwMCI+Cis8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4i
PgorICAgIDxhbmltYXRlIGlkPSJhbjEiIGF0dHJpYnV0ZU5hbWU9InkiIGF0dHJpYnV0ZVR5cGU9
IlhNTCIgYmVnaW49IjBzIiBkdXI9IjEycyIgZnJvbT0iMTAwIiB0bz0iOTAwIiBmaWxsPSJmcmVl
emUiIC8+CisgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieCIgYXR0cmlidXRlVHlwZT0iWE1M
IiBjYWxjTW9kZT0iZGlzY3JldGUiIGJlZ2luPSIwczsgMnMiIGZyb209IjAiIHRvPSI0MDAiIGR1
cj0iOHMiIGFkZGl0aXZlPSJzdW0iIC8+Cis8L3JlY3Q+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9tdWx0aXBsZS1iZWdpbi1hZGRp
dGl2ZS1hbmltYXRpb24uanMgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvbXVsdGlwbGUtYmVnaW4tYWRkaXRpdmUtYW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNGNk
Njg4ZjMyNzQ2MWYxZTQ4ZTg5YjA4ZDk0ZTUzYWJjYjczZjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtYmVnaW4tYWRk
aXRpdmUtYW5pbWF0aW9uLmpzCkBAIC0wLDAgKzEsMTE3IEBACitkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyBhZGRpdGl2ZT0nc3VtJyBzdXBwb3J0IG9uIGFuaW1hdGUgZWxlbWVudHMgd2l0aCBtdWx0
aXBsZSBiZWdpbiB0aW1lcyIpOworZW1iZWRTVkdUZXN0Q2FzZSgicmVzb3VyY2VzL211bHRpcGxl
LWJlZ2luLWFkZGl0aXZlLWFuaW1hdGlvbi5zdmciKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRl
c3QKK2Z1bmN0aW9uIGNoZWNrQmFzZVZhbHVlcygpIHsKK3JldHVybjsKKyAgICBzaG91bGRCZSgi
cmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJyZWN0LnkuYmFzZVZh
bC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgc2hvdWxkQmUo
InJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LnkuYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBjaGVja0Jhc2VWYWx1ZXMoKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC54LmFuaW1WYWwudmFs
dWUiLCAiMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QueS5hbmltVmFsLnZhbHVl
IiwgIjE2Ni42NyIpOworICAgIGNoZWNrQmFzZVZhbHVlcygpOworfQorCitmdW5jdGlvbiBzYW1w
bGUzKCkgeworICAgIHNob3VsZEJlKCJyZWN0LnguYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC55LmFuaW1WYWwudmFsdWUiLCAiMzY2LjYwIik7Cisg
ICAgY2hlY2tCYXNlVmFsdWVzKCk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7CisgICAgc2hv
dWxkQmUoInJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJyZWN0LnkuYW5pbVZhbC52YWx1ZSIsICIzNjYuNzMiKTsKKyAgICBjaGVja0Jhc2VWYWx1
ZXMoKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNSgpIHsKKyAgICBzaG91bGRCZSgicmVjdC54LmFu
aW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QueS5hbmlt
VmFsLnZhbHVlIiwgIjQ5OS45MyIpOworICAgIGNoZWNrQmFzZVZhbHVlcygpOworfQorCitmdW5j
dGlvbiBzYW1wbGU2KCkgeworICAgIHNob3VsZEJlKCJyZWN0LnguYW5pbVZhbC52YWx1ZSIsICI0
MDAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LnkuYW5pbVZhbC52YWx1ZSIsICI1
MDAuMDYiKTsKKyAgICBjaGVja0Jhc2VWYWx1ZXMoKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNygp
IHsKKyAgICBzaG91bGRCZSgicmVjdC54LmFuaW1WYWwudmFsdWUiLCAiNDAwIik7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC55LmFuaW1WYWwudmFsdWUiLCAiNTY2LjY3Iik7CisgICAg
Y2hlY2tCYXNlVmFsdWVzKCk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTgoKSB7CisgICAgc2hvdWxk
QmUoInJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjQwMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInJlY3QueS5hbmltVmFsLnZhbHVlIiwgIjYzMy4zMyIpOworICAgIGNoZWNrQmFzZVZhbHVl
cygpOworfQorCitmdW5jdGlvbiBzYW1wbGU5KCkgeworICAgIHNob3VsZEJlKCJyZWN0LnguYW5p
bVZhbC52YWx1ZSIsICI0MDAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LnkuYW5p
bVZhbC52YWx1ZSIsICI3MDAiKTsKKyAgICBjaGVja0Jhc2VWYWx1ZXMoKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMTAoKSB7CisgICAgc2hvdWxkQmUoInJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjQw
MCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QueS5hbmltVmFsLnZhbHVlIiwgIjc2
Ni42MCIpOworICAgIGNoZWNrQmFzZVZhbHVlcygpOworfQorCitmdW5jdGlvbiBzYW1wbGUxMSgp
IHsKKyAgICBzaG91bGRCZSgicmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3QueS5hbmltVmFsLnZhbHVlIiwgIjc2Ni42NyIpOworICAgIGNo
ZWNrQmFzZVZhbHVlcygpOworfQorCitmdW5jdGlvbiBzYW1wbGUxMigpIHsKKyAgICBzaG91bGRC
ZSgicmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InJlY3QueS5hbmltVmFsLnZhbHVlIiwgIjgzMy4zMyIpOworICAgIGNoZWNrQmFzZVZhbHVlcygp
OworfQorCitmdW5jdGlvbiBzYW1wbGUxMygpIHsKKyAgICBzaG91bGRCZSgicmVjdC54LmFuaW1W
YWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QueS5hbmltVmFs
LnZhbHVlIiwgIjkwMCIpOworICAgIGNoZWNrQmFzZVZhbHVlcygpOworfQorCitmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKKyAgICByZWN0ID0gcm9vdFNWR0VsZW1lbnQub3duZXJEb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgicmVjdCIpWzBdOworCisgICAgLy8gQWxsIGFuaW1hdGlvbnMg
aW4gdGhlIHRlc3QgZmlsZSB1c2UgdGhlIHNhbWUgZHVyYXRpb24sIHNvIGl0J3Mgbm90IG5lZWRl
ZCB0byBsaXN0IGFsbCBzYW1wbGUgcG9pbnRzIGluZGl2aWR1YWxseSBmb3IgYW41L2FuNi9hbjcv
YW44LgorICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9u
SWQsIHRpbWUsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuMSIsIDAuMCwgICAgc2FtcGxl
MV0sCisgICAgICAgIFsiYW4xIiwgMS4wLCAgICBzYW1wbGUyXSwKKyAgICAgICAgWyJhbjEiLCAz
Ljk5OSwgIHNhbXBsZTNdLAorICAgICAgICBbImFuMSIsIDQuMDAxLCAgc2FtcGxlNF0sCisgICAg
ICAgIFsiYW4xIiwgNS45OTksICBzYW1wbGU1XSwKKyAgICAgICAgWyJhbjEiLCA2LjAwMSwgIHNh
bXBsZTZdLAorICAgICAgICBbImFuMSIsIDcuMCwgICAgc2FtcGxlN10sCisgICAgICAgIFsiYW4x
IiwgNy45OTksICBzYW1wbGU4XSwKKyAgICAgICAgWyJhbjEiLCA4LjAwMSwgIHNhbXBsZThdLAor
ICAgICAgICBbImFuMSIsIDkuMCwgICAgc2FtcGxlOV0sCisgICAgICAgIFsiYW4xIiwgOS45OTks
ICBzYW1wbGUxMF0sCisgICAgICAgIFsiYW4xIiwgMTAuMDAxLCBzYW1wbGUxMV0sCisgICAgICAg
IFsiYW4xIiwgMTEuMCwgICBzYW1wbGUxMl0sCisgICAgICAgIFsiYW4xIiwgMTEuOTk5LCBzYW1w
bGUxM10sCisgICAgICAgIFsiYW4xIiwgMTIuMDAxLCBzYW1wbGUxM10sCisgICAgICAgIFsiYW4x
IiwgNjAuMCwgICBzYW1wbGUxM10KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBl
Y3RlZFZhbHVlcyk7Cit9CisKK3dpbmRvdy5hbmltYXRpb25TdGFydHNJbW1lZGlhdGVseSA9IHRy
dWU7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="145525"
          type_id="1"
          status="+"
          setter="zherczeg"
    />
          </attachment>
      

    </bug>

</bugzilla>