<?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>69531</bug_id>
          
          <creation_ts>2011-10-06 09:18:02 -0700</creation_ts>
          <short_desc>animation-iteration-count does not handle floating point values correctly.</short_desc>
          <delta_ts>2012-03-13 12:51:16 -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>Layout and Rendering</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>http://dev.w3.org/csswg/css3-animations/#animation-iteration-count</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>479196</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-10-06 09:18:02 -0700</bug_when>
    <thetext>The CSS Animation spec defines this value as a Number and non-integers should end the animation partway through a cycle. This is not currently implemented in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574479</commentid>
    <comment_count>1</comment_count>
      <attachid>130948</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-08 18:43:31 -0800</bug_when>
    <thetext>Created attachment 130948
Patch

Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576074</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-03-12 05:23:39 -0700</bug_when>
    <thetext>I&apos;m out Monday. I can look at this Tue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576082</commentid>
    <comment_count>3</comment_count>
      <attachid>130948</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-12 05:40:47 -0700</bug_when>
    <thetext>Comment on attachment 130948
Patch

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

Could you please add in the changelog the link to the spec?

http://dev.w3.org/csswg/css3-animations/#the-animation-iteration-count-property-

&gt; LayoutTests/animations/fill-mode-iteration-count-non-integer.html:134
&gt; +&lt;/html&gt;

I think this test should be converted to use the animation JS helpers if possible : http://trac.webkit.org/browser/branches/chromium/1025/LayoutTests/animations/animation-border-overflow.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576116</commentid>
    <comment_count>4</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-12 07:50:03 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 130948 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130948&amp;action=review
&gt; 
&gt; Could you please add in the changelog the link to the spec?
&gt; 
&gt; http://dev.w3.org/csswg/css3-animations/#the-animation-iteration-count-property-
&gt; 

Ok

&gt; &gt; LayoutTests/animations/fill-mode-iteration-count-non-integer.html:134
&gt; &gt; +&lt;/html&gt;
&gt; 
&gt; I think this test should be converted to use the animation JS helpers if possible : http://trac.webkit.org/browser/branches/chromium/1025/LayoutTests/animations/animation-border-overflow.html

Yeah, but the animation JS helpers just works when the animation are running.  When the animation ends i can&apos;t get the elapsed time or any other animation property. In fact, initially i tried to use animation JS helpers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577567</commentid>
    <comment_count>5</comment_count>
      <attachid>130948</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-03-13 11:12:44 -0700</bug_when>
    <thetext>Comment on attachment 130948
Patch

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

I think Alexis asked for a link to the spec in the ChangeLog. Sorry that you inherited the bad {} style from existing tests (probably my fault).

&gt; LayoutTests/animations/fill-mode-iteration-count-non-integer.html:86
&gt; +            if (Math.abs(expectedValue - realValue) &lt; allowance) {
&gt; +              result += &quot;PASS&quot;;
&gt; +            } else {
&gt; +              result += &quot;FAIL&quot;;
&gt; +            }

Single lines - no {}

&gt; LayoutTests/animations/fill-mode-iteration-count-non-integer.html:104
&gt; +            if (Math.abs(expectedValue - realValue) &lt; allowance) {
&gt; +              result += &quot;PASS&quot;;
&gt; +            } else {
&gt; +              result += &quot;FAIL&quot;;
&gt; +            }

Single lines - no {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577637</commentid>
    <comment_count>6</comment_count>
      <attachid>130948</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 12:07:25 -0700</bug_when>
    <thetext>Comment on attachment 130948
Patch

Clearing flags on attachment: 130948

Committed r110588: &lt;http://trac.webkit.org/changeset/110588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577638</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 12:07:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577692</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-03-13 12:49:35 -0700</bug_when>
    <thetext>Oops! I set cq+ when reviewing, even though there were a few small changes to be made :(

They are not showstoppers, but maybe we should clean them up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577694</commentid>
    <comment_count>9</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-13 12:51:16 -0700</bug_when>
    <thetext>Ok, doing that.
(In reply to comment #8)
&gt; Oops! I set cq+ when reviewing, even though there were a few small changes to be made :(
&gt; 
&gt; They are not showstoppers, but maybe we should clean them up.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130948</attachid>
            <date>2012-03-08 18:43:31 -0800</date>
            <delta_ts>2012-03-13 12:07:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-animation-iteration-count-does-not-handle-floating-p.patch</filename>
            <type>text/plain</type>
            <size>22651</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAzNjAxZjQ3NzZjZjI5MGY2ZGZlMzVkZjE5NTI1OGEyNDZmZjM0ZWExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2Ftc3VuZy5jb20+CkRh
dGU6IFRodSwgOCBNYXIgMjAxMiAxNzowMzowNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGFuaW1h
dGlvbi1pdGVyYXRpb24tY291bnQgZG9lcyBub3QgaGFuZGxlIGZsb2F0aW5nIHBvaW50CiB2YWx1
ZXMgY29ycmVjdGx5LgoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTIgKysKIC4uLmwtbW9kZS1pdGVyYXRpb24tY291bnQtbm9uLWlu
dGVnZXItZXhwZWN0ZWQudHh0IHwgICAxNyArKysKIC4uLi9maWxsLW1vZGUtaXRlcmF0aW9uLWNv
dW50LW5vbi1pbnRlZ2VyLmh0bWwgICAgIHwgIDEzNCArKysrKysrKysrKysrKysrKysrKwogLi4u
ZnJhbWVzLWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci1leHBlY3RlZC50eHQgfCAgICAyICsK
IC4uLi9rZXlmcmFtZXMtaXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwgICAgIHwgICA1
OSArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAzMiArKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZUFwcGx5UHJvcGVydHkuY3BwICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwICAgICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCAgICB8ICAgMTQgKystCiAuLi4vV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwICB8ICAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaCAgICAgIHwgICAgOCArLQog
MTMgZmlsZXMgY2hhbmdlZCwgMjc1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWl0ZXJhdGlv
bi1jb3VudC1ub24taW50ZWdlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1pdGVyYXRpb24tY291bnQtbm9uLWludGVnZXIu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWVz
LWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1pdGVyYXRpb24tY291bnQtbm9u
LWludGVnZXIuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2OTU0YTQyLi45Y2Q1MGM2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMDMtMDggIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50IGRvZXMgbm90IGhhbmRsZSBm
bG9hdGluZyBwb2ludCB2YWx1ZXMgY29ycmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1j
b3VudC1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlv
bnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1lcy1pdGVyYXRpb24tY291bnQtbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1lcy1pdGVy
YXRpb24tY291bnQtbm9uLWludGVnZXIuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMDggIFJvYmVy
dCBLcm9lZ2VyICA8cmprcm9lZ2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
bW9yZSBjb21wcmVoZW5zaXZlIHRlc3RzIGZvciBnZXN0dXJlIHNjcm9sbGluZwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtaXRlcmF0aW9uLWNvdW50LW5vbi1p
bnRlZ2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWl0
ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOTg1YjdjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBv
ZiB0aGUgbGVmdCBwcm9wZXJ0eSB3aXRoIGZvdXIgZGlmZmVyZW50IGZpbGwgbW9kZXMuIEl0IGFu
aW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4gSXQgdGFrZXMg
c25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbi4K
K05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK0JvdGggaXRlcmF0aW5nCitQQVNTIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFT
UyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAyMDAgYWN0dWFsOiAyMDAK
K1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYyBleHBlY3RlZDogMTAwIGFjdHVhbDog
MTAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhwZWN0ZWQ6IDIwMCBhY3R1
YWw6IDIwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVkOiAyMDAg
YWN0dWFsOiAyMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDEw
MCBhY3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYiBleHBlY3RlZDog
MTAwIGFjdHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVk
OiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhwZWN0
ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZSBleHBl
Y3RlZDogMzAwIGFjdHVhbDogMzAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci5odG1sIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtaXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QxOWFkYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWl0ZXJhdGlvbi1jb3VudC1u
b24taW50ZWdlci5odG1sCkBAIC0wLDAgKzEsMTM0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMg
Ii0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBhbmltYXRpb24gd2l0aCBmaWxsIG1v
ZGVzIGFuZCBub24gaW50ZWdlciBpdGVyYXRpb24gY291bnQ8L3RpdGxlPgorICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgbGVmdDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tZGVsYXk6IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC4yczsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tbmFtZTogYW5pbTsKKyAgICB9CisgICAgQC13ZWJraXQta2V5ZnJh
bWVzIGFuaW0geworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7IH0KKyAgICAgICAgdG8gICB7
IGxlZnQ6IDMwMHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEuNTsKKyAgICB9CisgICAgI2Igewor
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmls
bC1tb2RlOiBiYWNrd2FyZHM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291
bnQ6IDAuNTsKKyAgICB9CisgICAgI2MgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOworICAgICAgLXdl
YmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxLjU7CisgICAgfQorICAgICNkIHsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogYm90aDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDog
MS41OworICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgICAgLXdlYmtpdC1hbmlt
YXRpb24taXRlcmF0aW9uLWNvdW50OiAyLjU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgY29uc3QgbnVtQW5pbXMgPSA1Owor
ICAgIHZhciBhbmltc0ZpbmlzaGVkID0gMDsKKyAgICBjb25zdCBhbGxvd2FuY2UgPSA1OworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAge2lkOiAiYSIsIHN0YXJ0OiAxMDAsIGVu
ZDogMTAwfSwKKyAgICAgIHtpZDogImIiLCBzdGFydDogMjAwLCBlbmQ6IDEwMH0sCisgICAgICB7
aWQ6ICJjIiwgc3RhcnQ6IDEwMCwgZW5kOiAzMDB9LAorICAgICAge2lkOiAiZCIsIHN0YXJ0OiAy
MDAsIGVuZDogMzAwfSwKKyAgICAgIHtpZDogImUiLCBzdGFydDogMjAwLCBlbmQ6IDMwMH0KKyAg
ICBdOworICAgIHZhciByZXN1bHQgPSAiIjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKKyAgICAgICAgaWYgKCsrYW5pbXNG
aW5pc2hlZCA9PSBudW1BbmltcykgeworICAgICAgICAgICAgc2V0VGltZW91dChlbmRUZXN0LCAw
KTsgLy8gdGhpcyBzZXQgdGltZW91dCBzaG91bGQgYmUgb2sgaW4gdGhlIHRlc3QgZW52aXJvbm1l
bnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGp1
c3QgZ2l2aW5nIHN0eWxlIGEgY2hhbmNlIHRvIHJlc29sdmUKKyAgICAgICAgfQorICAgIH07CisK
KyAgICBmdW5jdGlvbiBlbmRUZXN0KCkgeworCisgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4
cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZhbHVlc1tpXS5pZCk7CisgICAgICAgICAgICB2YXIg
ZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLmVuZDsKKyAgICAgICAgICAgIHZhciBy
ZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7Cisg
ICAgICAgICAgICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxv
d2FuY2UpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXN1bHQgKz0gIiAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVj
dGVkVmFsdWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVh
bDogIiArIHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworCisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4
cGVjdGVkVmFsdWVzW2ldLmlkKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhw
ZWN0ZWRWYWx1ZXNbaV0uc3RhcnQ7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQiKS5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOworICAgICAgICAgICAgaWYgKE1h
dGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7CisgICAgICAg
ICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0
ICs9ICIgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVkVmFsdWVzW2ldLmlk
ICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDogIiArIHJlYWxWYWx1
ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCJ3ZWJraXRBbmltYXRpb25FbmQiLCBhbmltYXRpb25FbmRlZCwgZmFsc2UpOworICAgIH07CisK
KyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmlt
YXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVudAorZmlsbCBtb2Rl
cy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5Lgor
SXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBlbmQgb2YgdGhlIGFu
aW1hdGlvbi4KKzxkaXYgaWQ9ImEiIGNsYXNzPSJib3giPgorICBOb25lCis8L2Rpdj4KKzxkaXYg
aWQ9ImIiIGNsYXNzPSJib3giPgorICBCYWNrd2FyZHMKKzwvZGl2PgorPGRpdiBpZD0iYyIgY2xh
c3M9ImJveCI+CisgIEZvcndhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImQiIGNsYXNzPSJib3giPgor
ICBCb3RoCis8L2Rpdj4KKzxkaXYgaWQ9ImUiIGNsYXNzPSJib3giPgorICBCb3RoIGl0ZXJhdGlu
ZworPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1pdGVyYXRpb24tY291
bnQtbm9uLWludGVnZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlm
cmFtZXMtaXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTJjYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmlt
YXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBhIG5vbiBpbnRlZ2VyIGl0ZXJhdGlvbiBj
b3VudC4KK1BBU1MgZW5kIG9mIGFuaW1hdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0aW9uLWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1pdGVyYXRpb24tY291bnQtbm9uLWludGVnZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzZlMDY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0aW9uLWNv
dW50LW5vbi1pbnRlZ2VyLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgorICA8dGl0bGU+S2V5ZnJhbWVzIHRlc3Q8L3RpdGxlPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgICNib3ggeworICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIHRvcDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRp
b246IDJzOworICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVh
cjsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogImFuaW0iOworICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDAuMzsKKyAgICB9CisgICAgQC13ZWJraXQt
a2V5ZnJhbWVzICJhbmltIiB7CisgICAgICAgIGZyb20geyBsZWZ0OiA1MHB4OyB9CisgICAgICAg
IDIwJSAgeyBsZWZ0OiAxMDBweDsgfQorICAgICAgICA0MCUgIHsgbGVmdDogMTAwcHg7IH0KKyAg
ICAgICAgNjAlICB7IGxlZnQ6IDIwMHB4OyB9CisgICAgICAgIDgwJSAgeyBsZWZ0OiAyMDBweDsg
fQorICAgICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKyAgICAKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRBbmlt
YXRpb25FbmQiLCBmdW5jdGlvbihldmVudCl7CisgICAgICAgIHZhciByZXN1bHQ7CisgICAgICAg
IGlmIChldmVudC5lbGFwc2VkVGltZSA8IDEpCisgICAgICAgICAgICByZXN1bHQgPSAiUEFTUyBl
bmQgb2YgYW5pbWF0aW9uIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gIkZB
SUwgZW5kIG9mIGFuaW1hdGlvbiI7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICB9LCBmYWxzZSk7CisgICAgCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRoZSBsZWZ0IHByb3BlcnR5IHdp
dGggYSBub24gaW50ZWdlciBpdGVyYXRpb24gY291bnQuCis8ZGl2IGlkPSJib3giPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggODhiZDNhOS4uODJmM2EyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAz
LTA4ICBJZ29yIE9saXZlaXJhICA8aWdvci5vQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCBkb2VzIG5vdCBoYW5kbGUgZmxvYXRpbmcgcG9pbnQg
dmFsdWVzIGNvcnJlY3RseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NTMxCisKKyAgICAgICAgSW1wbGVtZW50cyBzdXBwb3J0IGZvciBub24taW50
ZWdlcnMgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCBudW1iZXJzLgorICAgICAgICBOb24taW50
ZWdlciBudW1iZXJzIHdpbGwgY2F1c2UgdGhlIGFuaW1hdGlvbiB0byBlbmQgcGFydC13YXkgdGhy
b3VnaCBhIGN5Y2xlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBhbmltYXRpb25zL2ZpbGwtbW9kZS1pdGVyYXRpb24tY291bnQtbm9uLWlu
dGVnZXIuaHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy9rZXlmcmFtZXMtaXRlcmF0aW9u
LWNvdW50LW5vbi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25JdGVyYXRpb25D
b3VudCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSk6
CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAg
KiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkJhc2U6OmZyYWN0aW9uYWxUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlv
bkJhc2U6OnByb2dyZXNzKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjpwYXVzZUFu
aW1hdGlvbkF0VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb246OnNldEl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKEFuaW1h
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmluaXRpYWxBbmltYXRpb25JdGVy
YXRpb25Db3VudCk6CisKIDIwMTItMDMtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTWFjIGJ1aWxkIGZpeCBmb3IgbWljcm8gZGF0YSBBUEkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4
IDZjNDk3ZjYuLjFkN2Q0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMDk0LDcgKzIwOTQsNyBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUoaW50IHByb3BlcgogICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxl
LT5hbmltYXRpb25zKCk7CiAgICAgICAgICAgICBpZiAodCkgewogICAgICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaW50IGl0ZXJhdGlvbkNvdW50ID0gdC0+YW5pbWF0aW9uKGkpLT5pdGVyYXRpb25Db3VudCgp
OworICAgICAgICAgICAgICAgICAgICBkb3VibGUgaXRlcmF0aW9uQ291bnQgPSB0LT5hbmltYXRp
b24oaSktPml0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRp
b25Db3VudCA9PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLT5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVJbmZpbml0ZSkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGVkZjc2YjMuLjU5MTczODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCkBAIC0zNDQ0LDcgKzM0NDQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBD
U1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoKQogICAgIENTU1BhcnNlclZh
bHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CiAgICAgaWYgKHZhbHVlLT5pZCA9
PSBDU1NWYWx1ZUluZmluaXRlKQogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCktPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpOwotICAgIGlmICh2YWxpZFVuaXQodmFsdWUsIEZJ
bnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpKQorICAgIGlmICh2YWxpZFVuaXQodmFsdWUsIEZO
dW1iZXIgfCBGTm9uTmVnLCBtX3N0cmljdCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVQcmltaXRp
dmVOdW1lcmljVmFsdWUodmFsdWUpOwogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAppbmRleCBjZmQ2OTMxLi44MDBmOTU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcApAQCAtMTg0
Miw3ICsxODQyLDcgQEAgQ1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcGVy
dHkoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRp
cmVjdGlvbiwgQXBwbHlQcm9wZXJ0eUFuaW1hdGlvbjxBbmltYXRpb246OkFuaW1hdGlvbkRpcmVj
dGlvbiwgJkFuaW1hdGlvbjo6ZGlyZWN0aW9uLCAmQW5pbWF0aW9uOjpzZXREaXJlY3Rpb24sICZB
bmltYXRpb246OmlzRGlyZWN0aW9uU2V0LCAmQW5pbWF0aW9uOjpjbGVhckRpcmVjdGlvbiwgJkFu
aW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkRpcmVjdGlvbiwgJkNTU1N0eWxlU2VsZWN0b3I6Om1h
cEFuaW1hdGlvbkRpcmVjdGlvbiwgJlJlbmRlclN0eWxlOjphY2Nlc3NBbmltYXRpb25zLCAmUmVu
ZGVyU3R5bGU6OmFuaW1hdGlvbnM+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkR1cmF0aW9uLCBBcHBseVByb3BlcnR5
QW5pbWF0aW9uPGRvdWJsZSwgJkFuaW1hdGlvbjo6ZHVyYXRpb24sICZBbmltYXRpb246OnNldER1
cmF0aW9uLCAmQW5pbWF0aW9uOjppc0R1cmF0aW9uU2V0LCAmQW5pbWF0aW9uOjpjbGVhckR1cmF0
aW9uLCAmQW5pbWF0aW9uOjppbml0aWFsQW5pbWF0aW9uRHVyYXRpb24sICZDU1NTdHlsZVNlbGVj
dG9yOjptYXBBbmltYXRpb25EdXJhdGlvbiwgJlJlbmRlclN0eWxlOjphY2Nlc3NBbmltYXRpb25z
LCAmUmVuZGVyU3R5bGU6OmFuaW1hdGlvbnM+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlLCBBcHBseVBy
b3BlcnR5QW5pbWF0aW9uPHVuc2lnbmVkLCAmQW5pbWF0aW9uOjpmaWxsTW9kZSwgJkFuaW1hdGlv
bjo6c2V0RmlsbE1vZGUsICZBbmltYXRpb246OmlzRmlsbE1vZGVTZXQsICZBbmltYXRpb246OmNs
ZWFyRmlsbE1vZGUsICZBbmltYXRpb246OmluaXRpYWxBbmltYXRpb25GaWxsTW9kZSwgJkNTU1N0
eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkZpbGxNb2RlLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0Fu
aW1hdGlvbnMsICZSZW5kZXJTdHlsZTo6YW5pbWF0aW9ucz46OmNyZWF0ZUhhbmRsZXIoKSk7Ci0g
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9u
Q291bnQsIEFwcGx5UHJvcGVydHlBbmltYXRpb248aW50LCAmQW5pbWF0aW9uOjppdGVyYXRpb25D
b3VudCwgJkFuaW1hdGlvbjo6c2V0SXRlcmF0aW9uQ291bnQsICZBbmltYXRpb246OmlzSXRlcmF0
aW9uQ291bnRTZXQsICZBbmltYXRpb246OmNsZWFySXRlcmF0aW9uQ291bnQsICZBbmltYXRpb246
OmluaXRpYWxBbmltYXRpb25JdGVyYXRpb25Db3VudCwgJkNTU1N0eWxlU2VsZWN0b3I6Om1hcEFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50LCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0FuaW1hdGlvbnMsICZS
ZW5kZXJTdHlsZTo6YW5pbWF0aW9ucz46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQsIEFwcGx5
UHJvcGVydHlBbmltYXRpb248ZG91YmxlLCAmQW5pbWF0aW9uOjppdGVyYXRpb25Db3VudCwgJkFu
aW1hdGlvbjo6c2V0SXRlcmF0aW9uQ291bnQsICZBbmltYXRpb246OmlzSXRlcmF0aW9uQ291bnRT
ZXQsICZBbmltYXRpb246OmNsZWFySXRlcmF0aW9uQ291bnQsICZBbmltYXRpb246OmluaXRpYWxB
bmltYXRpb25JdGVyYXRpb25Db3VudCwgJkNTU1N0eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkl0
ZXJhdGlvbkNvdW50LCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0FuaW1hdGlvbnMsICZSZW5kZXJTdHls
ZTo6YW5pbWF0aW9ucz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVy
KENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uTmFtZSwgQXBwbHlQcm9wZXJ0eUFuaW1hdGlvbjxj
b25zdCBTdHJpbmcmLCAmQW5pbWF0aW9uOjpuYW1lLCAmQW5pbWF0aW9uOjpzZXROYW1lLCAmQW5p
bWF0aW9uOjppc05hbWVTZXQsICZBbmltYXRpb246OmNsZWFyTmFtZSwgJkFuaW1hdGlvbjo6aW5p
dGlhbEFuaW1hdGlvbk5hbWUsICZDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25OYW1lLCAm
UmVuZGVyU3R5bGU6OmFjY2Vzc0FuaW1hdGlvbnMsICZSZW5kZXJTdHlsZTo6YW5pbWF0aW9ucz46
OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uUGxheVN0YXRlLCBBcHBseVByb3BlcnR5QW5pbWF0aW9uPEVBbmltUGxheVN0
YXRlLCAmQW5pbWF0aW9uOjpwbGF5U3RhdGUsICZBbmltYXRpb246OnNldFBsYXlTdGF0ZSwgJkFu
aW1hdGlvbjo6aXNQbGF5U3RhdGVTZXQsICZBbmltYXRpb246OmNsZWFyUGxheVN0YXRlLCAmQW5p
bWF0aW9uOjppbml0aWFsQW5pbWF0aW9uUGxheVN0YXRlLCAmQ1NTU3R5bGVTZWxlY3Rvcjo6bWFw
QW5pbWF0aW9uUGxheVN0YXRlLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0FuaW1hdGlvbnMsICZSZW5k
ZXJTdHlsZTo6YW5pbWF0aW9ucz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24sIEFwcGx5UHJv
cGVydHlBbmltYXRpb248Y29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4sICZBbmltYXRp
b246OnRpbWluZ0Z1bmN0aW9uLCAmQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbiwgJkFuaW1h
dGlvbjo6aXNUaW1pbmdGdW5jdGlvblNldCwgJkFuaW1hdGlvbjo6Y2xlYXJUaW1pbmdGdW5jdGlv
biwgJkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uLCAmQ1NTU3R5bGVT
ZWxlY3Rvcjo6bWFwQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24sICZSZW5kZXJTdHlsZTo6YWNjZXNz
QW5pbWF0aW9ucywgJlJlbmRlclN0eWxlOjphbmltYXRpb25zPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBlOTgyM2Q1Li5lOTBj
MjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00NDI3LDcg
KzQ0MjcsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNv
dW50KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZQogICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQogICAgICAgICBhbmltYXRpb24tPnNl
dEl0ZXJhdGlvbkNvdW50KC0xKTsKICAgICBlbHNlCi0gICAgICAgIGFuaW1hdGlvbi0+c2V0SXRl
cmF0aW9uQ291bnQoaW50KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpKTsKKyAgICAg
ICAgYW5pbWF0aW9uLT5zZXRJdGVyYXRpb25Db3VudChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRW
YWx1ZSgpKTsKIH0KIAogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25OYW1lKEFu
aW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggMWU2NjVlYy4uMjAyYzdiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAg
LTE2ODgsOCArMTY4OCwxMSBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6ZnJhY3Rpb25hbFRpbWUo
ZG91YmxlIHNjYWxlLCBkb3VibGUgZWxhcHNlZFRpbWUsIGRvdWJsZSBvZgogICAgICAgICBmcmFj
dGlvbmFsVGltZSA9IDA7CiAKICAgICBpbnQgaW50ZWdyYWxUaW1lID0gc3RhdGljX2Nhc3Q8aW50
PihmcmFjdGlvbmFsVGltZSk7Ci0gICAgaWYgKG1fYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgp
ICE9IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKLSAgICAgICAgaW50ZWdyYWxU
aW1lID0gbWluKGludGVncmFsVGltZSwgbV9hbmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkgLSAx
KTsKKyAgICBjb25zdCBpbnQgaW50ZWdyYWxJdGVyYXRpb25Db3VudCA9IHN0YXRpY19jYXN0PGlu
dD4obV9hbmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkpOworICAgIGNvbnN0IGJvb2wgaXRlcmF0
aW9uQ291bnRIYXNGcmFjdGlvbmFsID0gbV9hbmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkgLSBp
bnRlZ3JhbEl0ZXJhdGlvbkNvdW50OworICAgIGlmIChtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291
bnQoKSAhPSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUgJiYgIWl0ZXJhdGlvbkNv
dW50SGFzRnJhY3Rpb25hbCkKKyAgICAgICAgaW50ZWdyYWxUaW1lID0gbWluKGludGVncmFsVGlt
ZSwgaW50ZWdyYWxJdGVyYXRpb25Db3VudCAtIDEpOworCiAgICAgZnJhY3Rpb25hbFRpbWUgLT0g
aW50ZWdyYWxUaW1lOwogCiAgICAgaWYgKCgobV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFu
aW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKSAmJiAoaW50ZWdyYWxUaW1lICYg
MSkpCkBAIC0xNzE2LDggKzE3MTksMTEgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OnByb2dyZXNz
KGRvdWJsZSBzY2FsZSwgZG91YmxlIG9mZnNldCwgY29uc3QgVGltaW5nRnVuY3Rpb24KIAogICAg
IGlmIChwb3N0QWN0aXZlKCkgfHwgIW1fYW5pbWF0aW9uLT5kdXJhdGlvbigpKQogICAgICAgICBy
ZXR1cm4gMS4wOwotICAgIGlmIChtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSA+IDAgJiYg
ZWxhcHNlZFRpbWUgPj0gZHVyKQotICAgICAgICByZXR1cm4gKG1fYW5pbWF0aW9uLT5pdGVyYXRp
b25Db3VudCgpICUgMikgPyAxLjAgOiAwLjA7CisgICAgaWYgKG1fYW5pbWF0aW9uLT5pdGVyYXRp
b25Db3VudCgpID4gMCAmJiBlbGFwc2VkVGltZSA+PSBkdXIpIHsKKyAgICAgICAgY29uc3QgaW50
IGludGVncmFsSXRlcmF0aW9uQ291bnQgPSBzdGF0aWNfY2FzdDxpbnQ+KG1fYW5pbWF0aW9uLT5p
dGVyYXRpb25Db3VudCgpKTsKKyAgICAgICAgY29uc3QgYm9vbCBpdGVyYXRpb25Db3VudEhhc0Zy
YWN0aW9uYWwgPSBtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSAtIGludGVncmFsSXRlcmF0
aW9uQ291bnQ7CisgICAgICAgIHJldHVybiAoaW50ZWdyYWxJdGVyYXRpb25Db3VudCAlIDIgfHwg
aXRlcmF0aW9uQ291bnRIYXNGcmFjdGlvbmFsKSA/IDEuMCA6IDAuMDsKKyAgICB9CiAKICAgICBj
b25zdCBkb3VibGUgZnJhY3Rpb25hbFRpbWUgPSB0aGlzLT5mcmFjdGlvbmFsVGltZShzY2FsZSwg
ZWxhcHNlZFRpbWUsIG9mZnNldCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDE0YTU0MTMuLjcwZDYxOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcApAQCAtNTA4LDcgKzUwOCw3IEBAIGJvb2wgQ29tcG9zaXRlQW5pbWF0aW9uOjpwYXVz
ZUFuaW1hdGlvbkF0VGltZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGRvdWJsZSB0CiAgICAg
aWYgKCFrZXlmcmFtZUFuaW0gfHwgIWtleWZyYW1lQW5pbS0+cnVubmluZygpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpbnQgY291bnQgPSBrZXlmcmFtZUFuaW0tPm1fYW5pbWF0aW9u
LT5pdGVyYXRpb25Db3VudCgpOworICAgIGRvdWJsZSBjb3VudCA9IGtleWZyYW1lQW5pbS0+bV9h
bmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCk7CiAgICAgaWYgKCh0ID49IDAuMCkgJiYgKChjb3Vu
dCA9PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpIHx8ICh0IDw9IGNvdW50ICog
a2V5ZnJhbWVBbmltLT5kdXJhdGlvbigpKSkpIHsKICAgICAgICAga2V5ZnJhbWVBbmltLT5mcmVl
emVBdFRpbWUodCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCmluZGV4IDE3NWQ5NWEuLjNmMThmZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kdXJhdGlvbjsgfQogCiAgICAgZW51bSB7IEl0ZXJhdGlvbkNvdW50SW5maW5pdGUgPSAtMSB9
OwotICAgIGludCBpdGVyYXRpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlcmF0aW9uQ291
bnQ7IH0KKyAgICBkb3VibGUgaXRlcmF0aW9uQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJh
dGlvbkNvdW50OyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CiAgICAgRUFuaW1QbGF5U3RhdGUgcGxheVN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RUFuaW1QbGF5U3RhdGU+KG1fcGxheVN0YXRlKTsgfQogICAgIGludCBwcm9wZXJ0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHk7IH0KQEAgLTExOSw3ICsxMTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXREaXJlY3Rpb24oQW5pbWF0aW9uRGlyZWN0aW9uIGQpIHsgbV9kaXJl
Y3Rpb24gPSBkOyBtX2RpcmVjdGlvblNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldER1cmF0aW9u
KGRvdWJsZSBkKSB7IEFTU0VSVChkID49IDApOyBtX2R1cmF0aW9uID0gZDsgbV9kdXJhdGlvblNl
dCA9IHRydWU7IH0KICAgICB2b2lkIHNldEZpbGxNb2RlKHVuc2lnbmVkIGYpIHsgbV9maWxsTW9k
ZSA9IGY7IG1fZmlsbE1vZGVTZXQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRJdGVyYXRpb25Db3Vu
dChpbnQgYykgeyBtX2l0ZXJhdGlvbkNvdW50ID0gYzsgbV9pdGVyYXRpb25Db3VudFNldCA9IHRy
dWU7IH0KKyAgICB2b2lkIHNldEl0ZXJhdGlvbkNvdW50KGRvdWJsZSBjKSB7IG1faXRlcmF0aW9u
Q291bnQgPSBjOyBtX2l0ZXJhdGlvbkNvdW50U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0TmFt
ZShjb25zdCBTdHJpbmcmIG4pIHsgbV9uYW1lID0gbjsgbV9uYW1lU2V0ID0gdHJ1ZTsgfQogICAg
IHZvaWQgc2V0UGxheVN0YXRlKEVBbmltUGxheVN0YXRlIGQpIHsgbV9wbGF5U3RhdGUgPSBkOyBt
X3BsYXlTdGF0ZVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFByb3BlcnR5KGludCB0KSB7IG1f
cHJvcGVydHkgPSB0OyBtX3Byb3BlcnR5U2V0ID0gdHJ1ZTsgfQpAQCAtMTQ1LDcgKzE0NSw3IEBA
IHByaXZhdGU6CiAgICAgCiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBpbnQgbV9wcm9wZXJ0eTsK
LSAgICBpbnQgbV9pdGVyYXRpb25Db3VudDsKKyAgICBkb3VibGUgbV9pdGVyYXRpb25Db3VudDsK
ICAgICBkb3VibGUgbV9kZWxheTsKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAgICBSZWZQdHI8
VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVuY3Rpb247CkBAIC0xNzEsNyArMTcxLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBBbmltYXRpb25EaXJlY3Rpb24gaW5pdGlhbEFuaW1hdGlvbkRpcmVj
dGlvbigpIHsgcmV0dXJuIEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbDsgfQogICAgIHN0YXRpYyBk
b3VibGUgaW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRp
YyB1bnNpZ25lZCBpbml0aWFsQW5pbWF0aW9uRmlsbE1vZGUoKSB7IHJldHVybiBBbmltYXRpb25G
aWxsTW9kZU5vbmU7IH0KLSAgICBzdGF0aWMgaW50IGluaXRpYWxBbmltYXRpb25JdGVyYXRpb25D
b3VudCgpIHsgcmV0dXJuIDE7IH0KKyAgICBzdGF0aWMgZG91YmxlIGluaXRpYWxBbmltYXRpb25J
dGVyYXRpb25Db3VudCgpIHsgcmV0dXJuIDEuMDsgfQogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcm
IGluaXRpYWxBbmltYXRpb25OYW1lKCk7CiAgICAgc3RhdGljIEVBbmltUGxheVN0YXRlIGluaXRp
YWxBbmltYXRpb25QbGF5U3RhdGUoKSB7IHJldHVybiBBbmltUGxheVN0YXRlUGxheWluZzsgfQog
ICAgIHN0YXRpYyBpbnQgaW5pdGlhbEFuaW1hdGlvblByb3BlcnR5KCkgeyByZXR1cm4gY0FuaW1h
dGVBbGw7IH0KLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>