<?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>159529</bug_id>
          
          <creation_ts>2016-07-07 15:34:11 -0700</creation_ts>
          <short_desc>Unexpected &quot;Out of memory&quot; error for &quot;x&quot;.repeat(-1)</short_desc>
          <delta_ts>2016-07-07 20:13:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208838</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 15:34:11 -0700</bug_when>
    <thetext>Summary:
Unexpected &quot;Out of memory&quot; error for &quot;x&quot;.repeat(-1)

Steps to Reproduce:
&gt;&gt;&gt; &quot;x&quot;.repeat(-1)
Exception: Error: Out of memory
&gt;&gt;&gt; &quot;xx&quot;.repeat(-1)
Exception: RangeError: String.prototype.repeat argument must be greater than or equal to 0 and not be infinity

Notes:
Seems like the single character optimization path doesn&apos;t properly handle negative numbers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208912</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 17:10:12 -0700</bug_when>
    <thetext>&lt;https://tc39.github.io/ecma262/#sec-string.prototype.repeat&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208915</commentid>
    <comment_count>2</comment_count>
      <attachid>283094</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 17:20:12 -0700</bug_when>
    <thetext>Created attachment 283094
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208936</commentid>
    <comment_count>3</comment_count>
      <attachid>283094</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-07 19:20:26 -0700</bug_when>
    <thetext>Comment on attachment 283094
[PATCH] Proposed Fix

cq-, I have been discussing this with Joe, he has plenty of improvements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208939</commentid>
    <comment_count>4</comment_count>
      <attachid>283100</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 19:42:16 -0700</bug_when>
    <thetext>Created attachment 283100
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208949</commentid>
    <comment_count>5</comment_count>
      <attachid>283100</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-07 20:13:49 -0700</bug_when>
    <thetext>Comment on attachment 283100
[PATCH] Proposed Fix

Clearing flags on attachment: 283100

Committed r202954: &lt;http://trac.webkit.org/changeset/202954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208950</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-07 20:13:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283094</attachid>
            <date>2016-07-07 17:20:12 -0700</date>
            <delta_ts>2016-07-07 19:42:16 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>repeat-1.patch</filename>
            <type>text/plain</type>
            <size>10543</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMmM1NGI1Li4wNWMxMTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBVbmV4
cGVjdGVkICJPdXQgb2YgbWVtb3J5IiBlcnJvciBmb3IgIngiLnJlcGVhdCgtMSkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvc2NyaXB0LXRlc3Rz
L3N0cmluZy1yZXBlYXQuanM6CisgICAgICAgICoganMvc3RyaW5nLXJlcGVhdC1leHBlY3RlZC50
eHQ6CisgICAgICAgIEV4dGVuZCB0ZXN0IHRvIGFkZCBzb21lIHRlc3RzIGZvciB0aGUgZmFzdCBw
YXRoIGZvciBzaW5nbGUgY2hhcmFjdGVycy4KKworMjAxNi0wNy0wNyAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3IsIHJlZ3Jlc3Np
b246IEpTL0pTT04gcHJldHR5LXByaW50aW5nIHNwb3JhZGljYWxseSBicm9rZW4gaW4gU1RQOAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTExCiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzIxODQzNT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcmVwZWF0LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL3N0cmluZy1yZXBlYXQuanMKaW5kZXggMjY4NGM1MC4uZmE5NTQ3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1yZXBlYXQuanMKKysrIGIvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1yZXBlYXQuanMKQEAgLTMxLDkgKzMxLDEy
IEBAIHNob3VsZEJlKCInJy5yZXBlYXQoMHhGRkZGRkZGRikiLCAiJyciKTsKIHNob3VsZEJlKCIn
Jy5yZXBlYXQoMHhGRkZGRkZGRiArIDEpIiwgIicnIik7CiAKIC8vIENoZWNrIHJhbmdlIGVycm9y
cy4KLXNob3VsZFRocm93KCInZm9vIGJhcicucmVwZWF0KC0xKSIsICInUmFuZ2VFcnJvcjogU3Ry
aW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gMCBhbmQgbm90IGJlIGluZmluaXR5JyIpOwotc2hvdWxkVGhyb3coIidmb28gYmFyJy5y
ZXBlYXQoSW5maW5pdHkpIiwgIidSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBh
cmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgaW5m
aW5pdHknIik7Ci1zaG91bGRUaHJvdygiJ2ZvbyBiYXInLnJlcGVhdCgtSW5maW5pdHkpIiwgIidS
YW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0
ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgaW5maW5pdHknIik7CitzaG91bGRUaHJv
dygiJ3gnLnJlcGVhdCgtMSkiLCAiJ1JhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0
IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBJ
bmZpbml0eSciKTsKK3Nob3VsZFRocm93KCIneCcucmVwZWF0KEluZmluaXR5KSIsICInUmFuZ2VF
cnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5JyIpOworc2hvdWxkVGhyb3coIid4
Jy5yZXBlYXQoLUluZmluaXR5KSIsICInUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBl
YXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJl
IEluZmluaXR5JyIpOworc2hvdWxkVGhyb3coIidmb28gYmFyJy5yZXBlYXQoLTEpIiwgIidSYW5n
ZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5pdHknIik7CitzaG91bGRUaHJvdygi
J2ZvbyBiYXInLnJlcGVhdChJbmZpbml0eSkiLCAiJ1JhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5
cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5k
IG5vdCBiZSBJbmZpbml0eSciKTsKK3Nob3VsZFRocm93KCInZm9vIGJhcicucmVwZWF0KC1JbmZp
bml0eSkiLCAiJ1JhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11
c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBJbmZpbml0eSciKTsK
IAogLy8gQ2hlY2sgb3V0IG9mIG1lbW9yeSBlcnJvcnMuCiBzaG91bGRUaHJvdygiJ2YnLnJlcGVh
dCgweEZGRkZGRkZGKSIsICInRXJyb3I6IE91dCBvZiBtZW1vcnknIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9zdHJpbmctcmVwZWF0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3N0cmluZy1yZXBlYXQtZXhwZWN0ZWQudHh0CmluZGV4IDZjZGJjZjguLjcyYjI4Y2QgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3N0cmluZy1yZXBlYXQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2pzL3N0cmluZy1yZXBlYXQtZXhwZWN0ZWQudHh0CkBAIC0zMCw5ICszMCwxMiBA
QCBQQVNTICfjg5UnLnJlcGVhdCgyKSBpcyAn44OV44OVJwogUEFTUyAnJy5yZXBlYXQoMTAwMCkg
aXMgJycKIFBBU1MgJycucmVwZWF0KDB4RkZGRkZGRkYpIGlzICcnCiBQQVNTICcnLnJlcGVhdCgw
eEZGRkZGRkZGICsgMSkgaXMgJycKLVBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgtMSkgdGhyZXcgZXhj
ZXB0aW9uIFJhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3Qg
YmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eS4KLVBBU1Mg
J2ZvbyBiYXInLnJlcGVhdChJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFN0
cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVx
dWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eS4KLVBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgtSW5m
aW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVh
dCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUg
aW5maW5pdHkuCitQQVNTICd4Jy5yZXBlYXQoLTEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9y
OiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5pdHkuCitQQVNTICd4Jy5yZXBlYXQoSW5maW5p
dHkpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBh
cmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5m
aW5pdHkuCitQQVNTICd4Jy5yZXBlYXQoLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5LgorUEFTUyAnZm9vIGJhcicucmVw
ZWF0KC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBl
YXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJl
IEluZmluaXR5LgorUEFTUyAnZm9vIGJhcicucmVwZWF0KEluZmluaXR5KSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5LgorUEFTUyAnZm9v
IGJhcicucmVwZWF0KC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFN0cmlu
Zy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvIDAgYW5kIG5vdCBiZSBJbmZpbml0eS4KIFBBU1MgJ2YnLnJlcGVhdCgweEZGRkZGRkZGKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTICdmJy5yZXBlYXQoMHhG
RkZGRkZGRiArIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KIFBBU1Mg
J2ZvbycucmVwZWF0KDB4RkZGRkZGRkZGKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBt
ZW1vcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBjYmJmNzAxLi5mNjVkZTMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNy0wNyAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFVuZXhwZWN0ZWQgIk91
dCBvZiBtZW1vcnkiIGVycm9yIGZvciAieCIucmVwZWF0KC0xKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9TdHJpbmdQcm90b3R5cGUu
anM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlcGVhdFNsb3dQYXRoKToKKyAgICAgICAgKHJl
cGVhdCk6CisgICAgICAgIE1vdmUgdGhlIEB0b0ludGVnZXIgYW5kIHJhbmdlIGNoZWNraW5nIHRv
IHRoZSBhbHdheXMgcGF0aCwKKyAgICAgICAgc2luY2UgdGhlIHNwZWMgZG9lcyBzYXkgaXQgc2hv
dWxkIGFsd2F5cyBoYXBwZW4uCisKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OnJlcGVhdENoYXJhY3Rlcik6CisgICAgICAgIFJlbW92ZSB1bnVz
ZWQgZnVuY3Rpb24uCisKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFj
dGVyKToKKyAgICAgICAgQVNTRVJUIGlmIGdpdmVuIGEgbmVnYXRpdmUgbnVtYmVyLiBUaGlzIGlz
IGEgcHJpdmF0ZSBmdW5jdGlvbgorICAgICAgICBvbmx5IHVzZWQgaW50ZXJuYWxseS4KKworICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9zdHJpbmctcmVwZWF0LWVkZ2UtY2FzZXMuanM6CisgICAgICAg
IChzaG91bGRUaHJvdyk6CisgICAgICAgIFVwZGF0ZSBleHBlY3RlZCBlcnJvciBtZXNzYWdlLgor
CiAyMDE2LTA3LTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IElubGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2VzcygpIGlzIHdyb25nIG9uIHNvbWUgcGxh
dGZvcm1zIGJlY2F1c2UgaXQgc2hvdWxkIGFsc28gY29uc2lkZXIgImxlbmd0aCIgbm90IGJlaW5n
IGFycmF5IGxlbmd0aApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1N0cmluZ1Byb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJp
bmdQcm90b3R5cGUuanMKaW5kZXggZWZiODU3Yi4uMzI4OGU4NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCkBAIC01MSwzNSArNTEs
MzEgQEAgZnVuY3Rpb24gcmVwZWF0U2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNl
IHN0cmljdCI7CiAKLSAgICB2YXIgcmVwZWF0Q291bnQgPSBAdG9JbnRlZ2VyKGNvdW50KTsKLSAg
ICBpZiAocmVwZWF0Q291bnQgPCAwIHx8IHJlcGVhdENvdW50ID09PSBASW5maW5pdHkpCi0gICAg
ICAgIHRocm93IG5ldyBAUmFuZ2VFcnJvcigiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1l
bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIGluZmluaXR5
Iik7Ci0KICAgICAvLyBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nLgotICAgIGlmIChyZXBlYXRDb3Vu
dCA9PT0gMCB8fCBzdHJpbmcubGVuZ3RoID09PSAwKQorICAgIGlmIChjb3VudCA9PT0gMCB8fCBz
dHJpbmcubGVuZ3RoID09PSAwKQogICAgICAgICByZXR1cm4gIiI7CiAKICAgICAvLyBSZXR1cm4g
dGhlIG9yaWdpbmFsIHN0cmluZy4KLSAgICBpZiAocmVwZWF0Q291bnQgPT09IDEpCisgICAgaWYg
KGNvdW50ID09PSAxKQogICAgICAgICByZXR1cm4gc3RyaW5nOwogCi0gICAgaWYgKHN0cmluZy5s
ZW5ndGggKiByZXBlYXRDb3VudCA+IEBNQVhfU1RSSU5HX0xFTkdUSCkKKyAgICBpZiAoc3RyaW5n
Lmxlbmd0aCAqIGNvdW50ID4gQE1BWF9TVFJJTkdfTEVOR1RIKQogICAgICAgICB0aHJvdyBuZXcg
QEVycm9yKCJPdXQgb2YgbWVtb3J5Iik7CiAKICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMSkg
ewotICAgICAgICAvLyBIZXJlLCB8cmVwZWF0Q291bnR8IGlzIGFsd2F5cyBJbnQzMi4KLSAgICAg
ICAgcmV0dXJuIEByZXBlYXRDaGFyYWN0ZXIoc3RyaW5nLCByZXBlYXRDb3VudCk7CisgICAgICAg
IC8vIEhlcmUsIHxjb3VudHwgaXMgYWx3YXlzIEludDMyLgorICAgICAgICByZXR1cm4gQHJlcGVh
dENoYXJhY3RlcihzdHJpbmcsIGNvdW50KTsKICAgICB9CiAKLSAgICAvLyBCaXQgb3BlcmF0aW9u
IG9udG8gfHJlcGVhdENvdW50fCBpcyBzYWZlIGJlY2F1c2UgfHJlcGVhdENvdW50fCBzaG91bGQg
YmUgd2l0aGluIEludDMyIHJhbmdlLAorICAgIC8vIEJpdCBvcGVyYXRpb24gb250byB8Y291bnR8
IGlzIHNhZmUgYmVjYXVzZSB8Y291bnR8IHNob3VsZCBiZSB3aXRoaW4gSW50MzIgcmFuZ2UsCiAg
ICAgLy8gUmVwZWF0IGxvZyBOIHRpbWVzIHRvIGdlbmVyYXRlIHRoZSByZXBlYXRlZCBzdHJpbmcg
cm9wZS4KICAgICB2YXIgcmVzdWx0ID0gIiI7CiAgICAgdmFyIG9wZXJhbmQgPSBzdHJpbmc7CiAg
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKHJlcGVhdENvdW50ICYgMSkKKyAgICAgICAg
aWYgKGNvdW50ICYgMSkKICAgICAgICAgICAgIHJlc3VsdCArPSBvcGVyYW5kOwotICAgICAgICBy
ZXBlYXRDb3VudCA+Pj0gMTsKLSAgICAgICAgaWYgKCFyZXBlYXRDb3VudCkKKyAgICAgICAgY291
bnQgPj49IDE7CisgICAgICAgIGlmICghY291bnQpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICBvcGVyYW5kICs9IG9wZXJhbmQ7CiAgICAgfQpAQCAtMTIxLDYgKzExNywxMSBA
QCBmdW5jdGlvbiByZXBlYXQoY291bnQpCiAgICAgfQogCiAgICAgdmFyIHN0cmluZyA9IEB0b1N0
cmluZyh0aGlzKTsKKyAgICBjb3VudCA9IEB0b0ludGVnZXIoY291bnQpOworCisgICAgaWYgKGNv
dW50IDwgMCB8fCBjb3VudCA9PT0gQEluZmluaXR5KQorICAgICAgICB0aHJvdyBuZXcgQFJhbmdl
RXJyb3IoIlN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0
aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBJbmZpbml0eSIpOworCiAgICAgaWYgKHN0cmlu
Zy5sZW5ndGggPT09IDEpIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IEByZXBlYXRDaGFyYWN0ZXIo
c3RyaW5nLCBjb3VudCk7CiAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBhN2Jh
N2M5Li4yOTVkMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTc0OSwyNSArNzQ5LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja09iamVjdENvZXJjaWJsZShKU1ZhbHVlIHRoaXNWYWx1ZSkKIH0KIAogdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUgcmVwZWF0Q2hh
cmFjdGVyKEV4ZWNTdGF0ZSogZXhlYywgQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIsIHVuc2lnbmVk
IHJlcGVhdENvdW50KQotewotICAgIENoYXJhY3RlclR5cGUqIGJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgYXV0byBpbXBsID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXBlYXRD
b3VudCwgYnVmZmVyKTsKLSAgICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVybiB0aHJvd091dE9m
TWVtb3J5RXJyb3IoZXhlYyk7Ci0KLSAgICBzdGQ6OmZpbGxfbihidWZmZXIsIHJlcGVhdENvdW50
LCBjaGFyYWN0ZXIpOwotCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIFdURk1vdmUoaW1wbCkp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0YXRpYyBpbmxpbmUg
SlNTdHJpbmcqIHJlcGVhdENoYXJhY3RlcihFeGVjU3RhdGUmIGV4ZWMsIENoYXJhY3RlclR5cGUg
Y2hhcmFjdGVyLCB1bnNpZ25lZCByZXBlYXRDb3VudCkKIHsKICAgICBDaGFyYWN0ZXJUeXBlKiBi
dWZmZXIgPSBudWxscHRyOwogICAgIGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVu
aW5pdGlhbGl6ZWQocmVwZWF0Q291bnQsIGJ1ZmZlcik7Ci0gICAgaWYgKCFpbXBsKQotICAgICAg
ICByZXR1cm4gdGhyb3dPdXRPZk1lbW9yeUVycm9yKCZleGVjKSwgbnVsbHB0cjsKKyAgICBpZiAo
IWltcGwpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKCZleGVjKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgc3RkOjpmaWxsX24oYnVmZmVyLCByZXBlYXRD
b3VudCwgY2hhcmFjdGVyKTsKIApAQCAtNzg4LDYgKzc3Nyw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAKICAgICBpbnQz
Ml90IHJlcGVhdENvdW50ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkuYXNJbnQzMigpOwor
ICAgIEFTU0VSVChyZXBlYXRDb3VudCA+PSAwKTsKKwogICAgIFVDaGFyIGNoYXJhY3RlciA9IHN0
cmluZy0+dmlldyhleGVjKVswXTsKICAgICBpZiAoIShjaGFyYWN0ZXIgJiB+MHhmZikpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVwZWF0Q2hhcmFjdGVyKCpleGVjLCBzdGF0aWNf
Y2FzdDxMQ2hhcj4oY2hhcmFjdGVyKSwgcmVwZWF0Q291bnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3RyaW5nLXJlcGVhdC1lZGdlLWNhc2VzLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmVwZWF0LWVkZ2Ut
Y2FzZXMuanMKaW5kZXggODZjYjFjOS4uOGJhOWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmVwZWF0LWVkZ2UtY2FzZXMuanMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmVwZWF0LWVkZ2UtY2Fz
ZXMuanMKQEAgLTQ5LDkgKzQ5LDkgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JN
ZXNzYWdlKSB7CiAgICAgc2hvdWxkQmUoU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQuY2FsbCgiIiwg
MHhGRkZGRkZGRkYpLCAiIik7CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBTdHJp
bmcucHJvdG90eXBlLnJlcGVhdC5jYWxsKCIiLCBJbmZpbml0eSk7Ci0gICAgfSwgYFJhbmdlRXJy
b3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFu
IG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eWApOworICAgIH0sIGBSYW5nZUVycm9y
OiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5pdHlgKTsKIAogICAgIHNob3VsZFRocm93KCgp
ID0+IHsKICAgICAgICAgU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQuY2FsbCgiIiwgLTIwMDApOwot
ICAgIH0sIGBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0
IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgaW5maW5pdHlgKTsKKyAg
ICB9LCBgUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBi
ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5YCk7CiB9Cg==
</data>
<flag name="review"
          id="306812"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="306813"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283100</attachid>
            <date>2016-07-07 19:42:16 -0700</date>
            <delta_ts>2016-07-07 20:13:49 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>repeat-2.patch</filename>
            <type>text/plain</type>
            <size>15864</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMmM1NGI1Li5kZmI4MGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBVbmV4
cGVjdGVkICJPdXQgb2YgbWVtb3J5IiBlcnJvciBmb3IgIngiLnJlcGVhdCgtMSkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGVkIHRlc3QgY292
ZXJhZ2UgZm9yOgorCisgICAgICAgICAgLSBmdW5jdGlvbiBwcm9wZXJ0aWVzCisgICAgICAgICAg
LSBmYXN0IHBhdGggd2l0aCBpbnZhbGlkIGNvdW50cworICAgICAgICAgIC0gb2JzZXJ2YWJsZSBz
aWRlIGVmZmVjdHMgZm9yIGZhc3QgcGF0aCB3aGljaCB3ZXJlIHdyb25nIGJlZm9yZQorCisgICAg
ICAgICoganMvc2NyaXB0LXRlc3RzL3N0cmluZy1yZXBlYXQuanM6CisgICAgICAgICoganMvc3Ry
aW5nLXJlcGVhdC1leHBlY3RlZC50eHQ6CisKKzIwMTYtMDctMDcgIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yLCByZWdyZXNzaW9u
OiBKUy9KU09OIHByZXR0eS1wcmludGluZyBzcG9yYWRpY2FsbHkgYnJva2VuIGluIFNUUDgKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUxMQogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjcyMTg0MzU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvc3RyaW5nLXJlcGVhdC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9zdHJpbmctcmVwZWF0LmpzCmluZGV4IDI2ODRjNTAuLjkxNzQzNzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcmVwZWF0LmpzCisrKyBiL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcmVwZWF0LmpzCkBAIC0xLDQgKzEsMTMgQEAK
LWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBFUzYgc3RyaW5nIGZ1bmN0aW9ucyBy
ZXBlYXQoKS4iKTsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIFN0cmluZy5wcm90b3R5
cGUucmVwZWF0LiIpOworCitzaG91bGRCZSgnU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQubGVuZ3Ro
JywgJzEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQu
bmFtZScsICdyZXBlYXQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKFN0cmluZy5wcm90b3R5cGUsICJyZXBlYXQiKS5jb25maWd1cmFibGUnLCAndHJ1ZScpOwor
c2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlw
ZSwgInJlcGVhdCIpLmVudW1lcmFibGUnLCAnZmFsc2UnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJyZXBlYXQiKS53cml0YWJs
ZScsICd0cnVlJyk7CitzaG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihT
dHJpbmcucHJvdG90eXBlLCAicmVwZWF0IikuZ2V0JywgJ3VuZGVmaW5lZCcpOworc2hvdWxkQmUo
J09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInJlcGVh
dCIpLnNldCcsICd1bmRlZmluZWQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJyZXBlYXQiKS52YWx1ZScsICdTdHJpbmcucHJv
dG90eXBlLnJlcGVhdCcpOwogCiBzaG91bGRCZSgiJ2ZvbyBiYXInLnJlcGVhdCgrMCkiLCAiJyci
KTsKIHNob3VsZEJlKCInZm9vIGJhcicucmVwZWF0KC0wKSIsICInJyIpOwpAQCAtMzEsOSArNDAs
MTIgQEAgc2hvdWxkQmUoIicnLnJlcGVhdCgweEZGRkZGRkZGKSIsICInJyIpOwogc2hvdWxkQmUo
IicnLnJlcGVhdCgweEZGRkZGRkZGICsgMSkiLCAiJyciKTsKIAogLy8gQ2hlY2sgcmFuZ2UgZXJy
b3JzLgotc2hvdWxkVGhyb3coIidmb28gYmFyJy5yZXBlYXQoLTEpIiwgIidSYW5nZUVycm9yOiBT
dHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byAwIGFuZCBub3QgYmUgaW5maW5pdHknIik7Ci1zaG91bGRUaHJvdygiJ2ZvbyBiYXIn
LnJlcGVhdChJbmZpbml0eSkiLCAiJ1JhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0
IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBp
bmZpbml0eSciKTsKLXNob3VsZFRocm93KCInZm9vIGJhcicucmVwZWF0KC1JbmZpbml0eSkiLCAi
J1JhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eSciKTsKK3Nob3VsZFRo
cm93KCIneCcucmVwZWF0KC0xKSIsICInUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBl
YXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJl
IEluZmluaXR5JyIpOworc2hvdWxkVGhyb3coIid4Jy5yZXBlYXQoSW5maW5pdHkpIiwgIidSYW5n
ZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5pdHknIik7CitzaG91bGRUaHJvdygi
J3gnLnJlcGVhdCgtSW5maW5pdHkpIiwgIidSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJl
cGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3Qg
YmUgSW5maW5pdHknIik7CitzaG91bGRUaHJvdygiJ2ZvbyBiYXInLnJlcGVhdCgtMSkiLCAiJ1Jh
bmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBJbmZpbml0eSciKTsKK3Nob3VsZFRocm93
KCInZm9vIGJhcicucmVwZWF0KEluZmluaXR5KSIsICInUmFuZ2VFcnJvcjogU3RyaW5nLnByb3Rv
dHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBh
bmQgbm90IGJlIEluZmluaXR5JyIpOworc2hvdWxkVGhyb3coIidmb28gYmFyJy5yZXBlYXQoLUlu
ZmluaXR5KSIsICInUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQg
bXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5JyIp
OwogCiAvLyBDaGVjayBvdXQgb2YgbWVtb3J5IGVycm9ycy4KIHNob3VsZFRocm93KCInZicucmVw
ZWF0KDB4RkZGRkZGRkYpIiwgIidFcnJvcjogT3V0IG9mIG1lbW9yeSciKTsKQEAgLTQzLDM5ICs1
NSw0OCBAQCBzaG91bGRUaHJvdygiJ2ZvbycucmVwZWF0KDB4RkZGRkZGRkZGICsgMSkiLCAiJ0Vy
cm9yOiBPdXQgb2YgbWVtb3J5JyIpOwogc2hvdWxkVGhyb3coIidmb28gYmFyJy5yZXBlYXQoMHhG
RkZGRkZGRikiLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5JyIpOwogc2hvdWxkVGhyb3coIidmb28g
YmFyJy5yZXBlYXQoMHhGRkZGRkZGRiArIDEpIiwgIidFcnJvcjogT3V0IG9mIG1lbW9yeSciKTsK
IAotLy8gQ2hlY2sgc2lkZSBlZmZlY3RzIGluIHJlcGVhdC4KLXZhciBzaWRlRWZmZWN0ID0gIiI7
Ci12YXIgc3RyaW5nUmVwZWF0ZWQgPSBuZXcgU3RyaW5nKCJmb28gYmFyIik7Ci1zdHJpbmdSZXBl
YXRlZC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgewotICAgIHNpZGVFZmZlY3QgKz0gIkEiOwotICAg
IHJldHVybiB0aGlzOwotfQotdmFyIGNvdW50ID0gbmV3IE51bWJlcigyKTsKLWNvdW50LnZhbHVl
T2YgPSBmdW5jdGlvbigpIHsKLSAgICBzaWRlRWZmZWN0ICs9ICJCIjsKLSAgICByZXR1cm4gdGhp
czsKLX0KLS8vIENhbGxpbmcgc3RyaW5nUmVwZWF0ZWQucmVwZWF0IGltcGxpY2l0bHkgY2FsbHMg
c3RyaW5nUmVwZWF0ZWQudG9TdHJpbmcoKSwKLS8vIGFuZCBjb3VudC52YWx1ZU9mKCksIGluIHRo
YXQgcmVzcGVjdGl2ZSBvcmRlci4KLXNob3VsZEJlKCJzdHJpbmdSZXBlYXRlZC5yZXBlYXQoY291
bnQpIiwgIidmb28gYmFyZm9vIGJhciciKTsKLXNob3VsZEJlKCJzaWRlRWZmZWN0ID09ICdBQici
LCAidHJ1ZSIpOwordmFyIHNpZGVFZmZlY3QsIHN0cmluZ1JlcGVhdGVkLCBjb3VudDsKK2Z1bmN0
aW9uIGNoZWNrU2lkZUVmZmVjdHMoc3RyKSB7CisgICAgLy8gQ2hlY2sgc2lkZSBlZmZlY3RzIGlu
IHJlcGVhdC4KKyAgICBzaWRlRWZmZWN0ID0gIiI7CisgICAgc3RyaW5nUmVwZWF0ZWQgPSBuZXcg
U3RyaW5nKHN0cik7CisgICAgc3RyaW5nUmVwZWF0ZWQudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgc2lkZUVmZmVjdCArPSAiQSI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0K
KyAgICBjb3VudCA9IG5ldyBOdW1iZXIoMik7CisgICAgY291bnQudmFsdWVPZiA9IGZ1bmN0aW9u
KCkgeworICAgICAgICBzaWRlRWZmZWN0ICs9ICJCIjsKKyAgICAgICAgcmV0dXJuIHRoaXM7Cisg
ICAgfQorICAgIC8vIENhbGxpbmcgc3RyaW5nUmVwZWF0ZWQucmVwZWF0IGltcGxpY2l0bHkgY2Fs
bHMgc3RyaW5nUmVwZWF0ZWQudG9TdHJpbmcoKSwKKyAgICAvLyBhbmQgY291bnQudmFsdWVPZigp
LCBpbiB0aGF0IHJlc3BlY3RpdmUgb3JkZXIuCisgICAgc2hvdWxkQmUoInN0cmluZ1JlcGVhdGVk
LnJlcGVhdChjb3VudCkiLCAiJyIgKyBzdHIgKyBzdHIgKyAiJyIpOworICAgIHNob3VsZEJlKCJz
aWRlRWZmZWN0ID09ICdBQiciLCAidHJ1ZSIpOwogCi0vLyBJZiBzdHJpbmdSZXBlYXRlZCB0aHJv
d3MgYW4gZXhjZXB0aW9uIGNvdW50LnZhbHVlT2YoKSBpcyBub3QgY2FsbGVkLgotc3RyaW5nUmVw
ZWF0ZWQudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsKLSAgICB0aHJvdyAiZXJyb3IiOwotfQotc2lk
ZUVmZmVjdCA9ICIiOwotc2hvdWxkVGhyb3coInN0cmluZ1JlcGVhdGVkLnJlcGVhdChjb3VudCki
LCAiJ2Vycm9yJyIpOwotc2hvdWxkQmUoInNpZGVFZmZlY3QgPT0gJyciLCAidHJ1ZSIpOworICAg
IC8vIElmIHN0cmluZ1JlcGVhdGVkLnRvU3RyaW5nKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBjb3Vu
dC52YWx1ZU9mKCkgaXMgbm90IGNhbGxlZC4KKyAgICBzdHJpbmdSZXBlYXRlZC50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiZXJyb3IiOworICAgIH0KKyAgICBzaWRlRWZm
ZWN0ID0gIiI7CisgICAgc2hvdWxkVGhyb3coInN0cmluZ1JlcGVhdGVkLnJlcGVhdChjb3VudCki
LCAiJ2Vycm9yJyIpOworICAgIHNob3VsZEJlKCJzaWRlRWZmZWN0ID09ICcnIiwgInRydWUiKTsK
IAotLy8gSWYgY291bnQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzdHJpbmdSZXBlYXRlZC50b1N0cmlu
ZygpIHdhcyBjYWxsZWQuCi1zdHJpbmdSZXBlYXRlZC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgewot
ICAgIHNpZGVFZmZlY3QgKz0gIkEiOwotICAgIHJldHVybiB0aGlzOworICAgIC8vIElmIGNvdW50
IHRocm93cyBhbiBleGNlcHRpb24gc3RyaW5nUmVwZWF0ZWQudG9TdHJpbmcoKSB3YXMgY2FsbGVk
LgorICAgIHN0cmluZ1JlcGVhdGVkLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHNp
ZGVFZmZlY3QgKz0gIkEiOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgY291bnQu
dmFsdWVPZiA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiZXJyb3IiOworICAgIH0KKyAg
ICBzaWRlRWZmZWN0ID0gIiI7CisgICAgc2hvdWxkVGhyb3coInN0cmluZ1JlcGVhdGVkLnJlcGVh
dChjb3VudCkiLCAiJ2Vycm9yJyIpOworICAgIHNob3VsZEJlKCJzaWRlRWZmZWN0ID09ICdBJyIs
ICJ0cnVlIik7CiB9Ci1jb3VudC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7Ci0gICAgdGhyb3cgImVy
cm9yIjsKLX0KLXNpZGVFZmZlY3QgPSAiIjsKLXNob3VsZFRocm93KCJzdHJpbmdSZXBlYXRlZC5y
ZXBlYXQoY291bnQpIiwgIidlcnJvciciKTsKLXNob3VsZEJlKCJzaWRlRWZmZWN0ID09ICdBJyIs
ICJ0cnVlIik7CisKKy8vIEZhc3QgcGF0aCBmb3Igc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcuCitj
aGVja1NpZGVFZmZlY3RzKCJ4Iik7CisKKy8vIFNsb3cgcGF0aCBmb3IgYW55IG90aGVyIHN0cmlu
Zy4KK2NoZWNrU2lkZUVmZmVjdHMoImZvbyBiYXIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3N0cmluZy1yZXBlYXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXJl
cGVhdC1leHBlY3RlZC50eHQKaW5kZXggNmNkYmNmOC4uZGI4ZTEyOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvc3RyaW5nLXJlcGVhdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
anMvc3RyaW5nLXJlcGVhdC1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxNiBAQAotVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgRVM2IHN0cmluZyBmdW5jdGlvbnMgcmVwZWF0KCkuCitUaGlzIHRlc3QgY2hl
Y2tzIFN0cmluZy5wcm90b3R5cGUucmVwZWF0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKIAorUEFTUyBTdHJpbmcucHJvdG90eXBlLnJlcGVhdC5sZW5ndGggaXMgMQorUEFTUyBTdHJp
bmcucHJvdG90eXBlLnJlcGVhdC5uYW1lIGlzICJyZXBlYXQiCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInJlcGVhdCIpLmNvbmZpZ3VyYWJs
ZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnBy
b3RvdHlwZSwgInJlcGVhdCIpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicmVwZWF0Iikud3JpdGFibGUg
aXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90
b3R5cGUsICJyZXBlYXQiKS5nZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInJlcGVhdCIpLnNldCBpcyB1bmRlZmlu
ZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBl
LCAicmVwZWF0IikudmFsdWUgaXMgU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQKIFBBU1MgJ2ZvbyBi
YXInLnJlcGVhdCgrMCkgaXMgJycKIFBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgtMCkgaXMgJycKIFBB
U1MgJ2ZvbyBiYXInLnJlcGVhdCgxKSBpcyAnZm9vIGJhcicKQEAgLTMwLDE1ICszOCwyNCBAQCBQ
QVNTICfjg5UnLnJlcGVhdCgyKSBpcyAn44OV44OVJwogUEFTUyAnJy5yZXBlYXQoMTAwMCkgaXMg
JycKIFBBU1MgJycucmVwZWF0KDB4RkZGRkZGRkYpIGlzICcnCiBQQVNTICcnLnJlcGVhdCgweEZG
RkZGRkZGICsgMSkgaXMgJycKLVBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgtMSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eS4KLVBBU1MgJ2Zv
byBiYXInLnJlcGVhdChJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFN0cmlu
Zy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eS4KLVBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgtSW5maW5p
dHkpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBh
cmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgaW5m
aW5pdHkuCitQQVNTICd4Jy5yZXBlYXQoLTEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBT
dHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5pdHkuCitQQVNTICd4Jy5yZXBlYXQoSW5maW5pdHkp
IHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJlcGVhdCBhcmd1
bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3QgYmUgSW5maW5p
dHkuCitQQVNTICd4Jy5yZXBlYXQoLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5LgorUEFTUyAnZm9vIGJhcicucmVwZWF0
KC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQg
YXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIElu
ZmluaXR5LgorUEFTUyAnZm9vIGJhcicucmVwZWF0KEluZmluaXR5KSB0aHJldyBleGNlcHRpb24g
UmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQgbXVzdCBiZSBncmVh
dGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5LgorUEFTUyAnZm9vIGJh
cicucmVwZWF0KC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFN0cmluZy5w
cm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv
IDAgYW5kIG5vdCBiZSBJbmZpbml0eS4KIFBBU1MgJ2YnLnJlcGVhdCgweEZGRkZGRkZGKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTICdmJy5yZXBlYXQoMHhGRkZG
RkZGRiArIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KIFBBU1MgJ2Zv
bycucmVwZWF0KDB4RkZGRkZGRkZGKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1v
cnkuCiBQQVNTICdmb28nLnJlcGVhdCgweEZGRkZGRkZGRiArIDEpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogT3V0IG9mIG1lbW9yeS4KIFBBU1MgJ2ZvbyBiYXInLnJlcGVhdCgweEZGRkZGRkZGKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTICdmb28gYmFyJy5yZXBl
YXQoMHhGRkZGRkZGRiArIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4K
K1BBU1Mgc3RyaW5nUmVwZWF0ZWQucmVwZWF0KGNvdW50KSBpcyAneHgnCitQQVNTIHNpZGVFZmZl
Y3QgPT0gJ0FCJyBpcyB0cnVlCitQQVNTIHN0cmluZ1JlcGVhdGVkLnJlcGVhdChjb3VudCkgdGhy
ZXcgZXhjZXB0aW9uIGVycm9yLgorUEFTUyBzaWRlRWZmZWN0ID09ICcnIGlzIHRydWUKK1BBU1Mg
c3RyaW5nUmVwZWF0ZWQucmVwZWF0KGNvdW50KSB0aHJldyBleGNlcHRpb24gZXJyb3IuCitQQVNT
IHNpZGVFZmZlY3QgPT0gJ0EnIGlzIHRydWUKIFBBU1Mgc3RyaW5nUmVwZWF0ZWQucmVwZWF0KGNv
dW50KSBpcyAnZm9vIGJhcmZvbyBiYXInCiBQQVNTIHNpZGVFZmZlY3QgPT0gJ0FCJyBpcyB0cnVl
CiBQQVNTIHN0cmluZ1JlcGVhdGVkLnJlcGVhdChjb3VudCkgdGhyZXcgZXhjZXB0aW9uIGVycm9y
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggY2JiZjcwMS4uNzQzNzA3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDctMDcgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBVbmV4cGVjdGVkICJPdXQgb2Yg
bWVtb3J5IiBlcnJvciBmb3IgIngiLnJlcGVhdCgtMSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzOgor
ICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZXBlYXRTbG93UGF0aCk6CisgICAgICAgIChyZXBlYXQp
OgorICAgICAgICBNb3ZlIHRoZSBAdG9JbnRlZ2VyIGFuZCByYW5nZSBjaGVja2luZyB0byB0aGUg
YWx3YXlzIHBhdGgsCisgICAgICAgIHNpbmNlIHRoZSBzcGVjIGRvZXMgc2F5IGl0IHNob3VsZCBh
bHdheXMgaGFwcGVuLiBBbHNvIHJlbW92ZQorICAgICAgICB0aGUgZHVwbGljYXRpb24gb2YgdGhl
IGZhc3QgcGF0aCBoZXJlLgorCisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpyZXBlYXRDaGFyYWN0ZXIpOgorICAgICAgICBSZW1vdmUgdW51c2Vk
IGZ1bmN0aW9uLgorCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rl
cik6CisgICAgICAgIEFTU0VSVCBpZiBnaXZlbiBhIG5lZ2F0aXZlIG51bWJlci4gVGhpcyBpcyBh
IHByaXZhdGUgZnVuY3Rpb24KKyAgICAgICAgb25seSB1c2VkIGludGVybmFsbHkuCisKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3Mvc3RyaW5nLXJlcGVhdC1lZGdlLWNhc2VzLmpzOgorICAgICAgICAo
c2hvdWxkVGhyb3cpOgorICAgICAgICBVcGRhdGUgZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZS4KKwog
MjAxNi0wNy0wNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bmxpbmVBY2Nlc3M6OnNpemVGb3JMZW5ndGhBY2Nlc3MoKSBpcyB3cm9uZyBvbiBzb21lIHBsYXRm
b3JtcyBiZWNhdXNlIGl0IHNob3VsZCBhbHNvIGNvbnNpZGVyICJsZW5ndGgiIG5vdCBiZWluZyBh
cnJheSBsZW5ndGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9T
dHJpbmdQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5n
UHJvdG90eXBlLmpzCmluZGV4IGVmYjg1N2IuLjJkMDgwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtNTEsMzUgKzUxLDI2
IEBAIGZ1bmN0aW9uIHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpCiB7CiAgICAgInVzZSBz
dHJpY3QiOwogCi0gICAgdmFyIHJlcGVhdENvdW50ID0gQHRvSW50ZWdlcihjb3VudCk7Ci0gICAg
aWYgKHJlcGVhdENvdW50IDwgMCB8fCByZXBlYXRDb3VudCA9PT0gQEluZmluaXR5KQotICAgICAg
ICB0aHJvdyBuZXcgQFJhbmdlRXJyb3IoIlN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50
IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBpbmZpbml0eSIp
OwotCiAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IHN0cmluZy4KLSAgICBpZiAocmVwZWF0Q291bnQg
PT09IDAgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkKKyAgICBpZiAoY291bnQgPT09IDAgfHwgc3Ry
aW5nLmxlbmd0aCA9PT0gMCkKICAgICAgICAgcmV0dXJuICIiOwogCiAgICAgLy8gUmV0dXJuIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuCi0gICAgaWYgKHJlcGVhdENvdW50ID09PSAxKQorICAgIGlmIChj
b3VudCA9PT0gMSkKICAgICAgICAgcmV0dXJuIHN0cmluZzsKIAotICAgIGlmIChzdHJpbmcubGVu
Z3RoICogcmVwZWF0Q291bnQgPiBATUFYX1NUUklOR19MRU5HVEgpCisgICAgaWYgKHN0cmluZy5s
ZW5ndGggKiBjb3VudCA+IEBNQVhfU1RSSU5HX0xFTkdUSCkKICAgICAgICAgdGhyb3cgbmV3IEBF
cnJvcigiT3V0IG9mIG1lbW9yeSIpOwogCi0gICAgaWYgKHN0cmluZy5sZW5ndGggPT09IDEpIHsK
LSAgICAgICAgLy8gSGVyZSwgfHJlcGVhdENvdW50fCBpcyBhbHdheXMgSW50MzIuCi0gICAgICAg
IHJldHVybiBAcmVwZWF0Q2hhcmFjdGVyKHN0cmluZywgcmVwZWF0Q291bnQpOwotICAgIH0KLQot
ICAgIC8vIEJpdCBvcGVyYXRpb24gb250byB8cmVwZWF0Q291bnR8IGlzIHNhZmUgYmVjYXVzZSB8
cmVwZWF0Q291bnR8IHNob3VsZCBiZSB3aXRoaW4gSW50MzIgcmFuZ2UsCisgICAgLy8gQml0IG9w
ZXJhdGlvbiBvbnRvIHxjb3VudHwgaXMgc2FmZSBiZWNhdXNlIHxjb3VudHwgc2hvdWxkIGJlIHdp
dGhpbiBJbnQzMiByYW5nZSwKICAgICAvLyBSZXBlYXQgbG9nIE4gdGltZXMgdG8gZ2VuZXJhdGUg
dGhlIHJlcGVhdGVkIHN0cmluZyByb3BlLgogICAgIHZhciByZXN1bHQgPSAiIjsKICAgICB2YXIg
b3BlcmFuZCA9IHN0cmluZzsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAocmVwZWF0
Q291bnQgJiAxKQorICAgICAgICBpZiAoY291bnQgJiAxKQogICAgICAgICAgICAgcmVzdWx0ICs9
IG9wZXJhbmQ7Ci0gICAgICAgIHJlcGVhdENvdW50ID4+PSAxOwotICAgICAgICBpZiAoIXJlcGVh
dENvdW50KQorICAgICAgICBjb3VudCA+Pj0gMTsKKyAgICAgICAgaWYgKCFjb3VudCkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIG9wZXJhbmQgKz0gb3BlcmFuZDsKICAgICB9
CkBAIC0xMjEsNiArMTEyLDExIEBAIGZ1bmN0aW9uIHJlcGVhdChjb3VudCkKICAgICB9CiAKICAg
ICB2YXIgc3RyaW5nID0gQHRvU3RyaW5nKHRoaXMpOworICAgIGNvdW50ID0gQHRvSW50ZWdlcihj
b3VudCk7CisKKyAgICBpZiAoY291bnQgPCAwIHx8IGNvdW50ID09PSBASW5maW5pdHkpCisgICAg
ICAgIHRocm93IG5ldyBAUmFuZ2VFcnJvcigiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1l
bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIEluZmluaXR5
Iik7CisKICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMSkgewogICAgICAgICB2YXIgcmVzdWx0
ID0gQHJlcGVhdENoYXJhY3RlcihzdHJpbmcsIGNvdW50KTsKICAgICAgICAgaWYgKHJlc3VsdCAh
PT0gbnVsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCmluZGV4IGE3YmE3YzkuLjI5NWQwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtNzQ5LDI1ICs3NDksMTQg
QEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrT2JqZWN0Q29lcmNpYmxlKEpTVmFsdWUgdGhpc1Zh
bHVlKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSByZXBlYXRDaGFyYWN0ZXIoRXhlY1N0YXRlKiBleGVjLCBDaGFyYWN0ZXJUeXBl
IGNoYXJhY3RlciwgdW5zaWduZWQgcmVwZWF0Q291bnQpCi17Ci0gICAgQ2hhcmFjdGVyVHlwZSog
YnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVV
bmluaXRpYWxpemVkKHJlcGVhdENvdW50LCBidWZmZXIpOwotICAgIGlmICghaW1wbCkKLSAgICAg
ICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKTsKLQotICAgIHN0ZDo6ZmlsbF9u
KGJ1ZmZlciwgcmVwZWF0Q291bnQsIGNoYXJhY3Rlcik7Ci0KLSAgICByZXR1cm4ganNTdHJpbmco
ZXhlYywgV1RGTW92ZShpbXBsKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPgogc3RhdGljIGlubGluZSBKU1N0cmluZyogcmVwZWF0Q2hhcmFjdGVyKEV4ZWNTdGF0ZSYg
ZXhlYywgQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIsIHVuc2lnbmVkIHJlcGVhdENvdW50KQogewog
ICAgIENoYXJhY3RlclR5cGUqIGJ1ZmZlciA9IG51bGxwdHI7CiAgICAgYXV0byBpbXBsID0gU3Ry
aW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXBlYXRDb3VudCwgYnVmZmVyKTsKLSAg
ICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoJmV4ZWMp
LCBudWxscHRyOworICAgIGlmICghaW1wbCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJy
b3IoJmV4ZWMpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKICAgICBzdGQ6OmZp
bGxfbihidWZmZXIsIHJlcGVhdENvdW50LCBjaGFyYWN0ZXIpOwogCkBAIC03ODgsNiArNzc3LDgg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFy
YWN0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKTsKIAogICAgIGludDMyX3QgcmVwZWF0Q291bnQgPSBleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKS5hc0ludDMyKCk7CisgICAgQVNTRVJUKHJlcGVhdENvdW50ID49IDApOworCiAgICAg
VUNoYXIgY2hhcmFjdGVyID0gc3RyaW5nLT52aWV3KGV4ZWMpWzBdOwogICAgIGlmICghKGNoYXJh
Y3RlciAmIH4weGZmKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXBlYXRDaGFy
YWN0ZXIoKmV4ZWMsIHN0YXRpY19jYXN0PExDaGFyPihjaGFyYWN0ZXIpLCByZXBlYXRDb3VudCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmct
cmVwZWF0LWVkZ2UtY2FzZXMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3N0cmluZy1yZXBlYXQtZWRnZS1jYXNlcy5qcwppbmRleCA4NmNiMWM5Li44YmE5ZTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N0cmluZy1yZXBlYXQt
ZWRnZS1jYXNlcy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N0
cmluZy1yZXBlYXQtZWRnZS1jYXNlcy5qcwpAQCAtNDksOSArNDksOSBAQCBmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKICAgICBzaG91bGRCZShTdHJpbmcucHJvdG90
eXBlLnJlcGVhdC5jYWxsKCIiLCAweEZGRkZGRkZGRiksICIiKTsKICAgICBzaG91bGRUaHJvdygo
KSA9PiB7CiAgICAgICAgIFN0cmluZy5wcm90b3R5cGUucmVwZWF0LmNhbGwoIiIsIEluZmluaXR5
KTsKLSAgICB9LCBgUmFuZ2VFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgYXJndW1lbnQg
bXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBhbmQgbm90IGJlIGluZmluaXR5YCk7
CisgICAgfSwgYFJhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucmVwZWF0IGFyZ3VtZW50IG11
c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5vdCBiZSBJbmZpbml0eWApOwog
CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBTdHJpbmcucHJvdG90eXBlLnJlcGVh
dC5jYWxsKCIiLCAtMjAwMCk7Ci0gICAgfSwgYFJhbmdlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUu
cmVwZWF0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgYW5kIG5v
dCBiZSBpbmZpbml0eWApOworICAgIH0sIGBSYW5nZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnJl
cGVhdCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIGFuZCBub3Qg
YmUgSW5maW5pdHlgKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>