<?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>132556</bug_id>
          
          <creation_ts>2014-05-04 21:01:56 -0700</creation_ts>
          <short_desc>jsSubstring() should be lazy</short_desc>
          <delta_ts>2014-05-04 23:10:36 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006553</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-04 21:01:56 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006554</commentid>
    <comment_count>1</comment_count>
      <attachid>230807</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-04 21:12:53 -0700</bug_when>
    <thetext>Created attachment 230807
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006558</commentid>
    <comment_count>2</comment_count>
      <attachid>230807</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-05-04 21:52:38 -0700</bug_when>
    <thetext>Comment on attachment 230807
the patch

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

r=me

&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:73
&gt; +    SamplingRegion samplingRegion((dtorType != MarkedBlock::None &amp;&amp; blockState != New) ? &quot;Calling destructors&quot; : &quot;sweeping&quot;);

Looks unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006559</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-04 21:57:47 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/168254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006563</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-05-04 23:10:36 -0700</bug_when>
    <thetext>Reverted r168254 for reason:

Very crashy on debug JSC tests.

Committed r168255: &lt;http://trac.webkit.org/changeset/168255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230807</attachid>
            <date>2014-05-04 21:12:53 -0700</date>
            <delta_ts>2014-05-04 21:52:38 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>23515</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4MjUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE0LTA1LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
anNTdWJzdHJpbmcoKSBzaG91bGQgYmUgbGF6eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBqc1N1YnN0cmluZygpIGlzIG5vdyBsYXp5IGJ5
IHVzaW5nIGEgc3BlY2lhbCByb3BlIHRoYXQgaXMgYSBzdWJzdHJpbmcgaW5zdGVhZCBvZiBhCisg
ICAgICAgIGNvbmNhdGVuYXRpb24uIFRvIG1ha2UgdGhpcyBwYXRjaCBzdXBlciBzaW1wbGUsIHdl
IHJlcXVpcmUgdGhhdCBhIHN1YnN0cmluZydzIGJhc2UgaXMKKyAgICAgICAgbmV2ZXIgYSByb3Bl
LiBIZW5jZSwgd2hlbiByZXNvbHZpbmcgYSByb3BlLCB3ZSBlaXRoZXIgZ28gZG93biBhIG5vbi1y
ZWN1cnNpdmUgc3Vic3RyaW5nCisgICAgICAgIHBhdGgsIG9yIHdlIGdvIGRvd24gYSBjb25jYXRl
bmF0aW9uIHBhdGggd2hpY2ggbWF5IHNlZSBleGFjdGx5IG9uZSBsZXZlbCBvZiBzdWJzdHJpbmdz
IGluCisgICAgICAgIGl0cyBmaWJlcnMuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIHVwIHRv
IGEgNTAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyBhbmQgYSAxMCUgc3BlZWQtdXAgb24g
T2N0YW5lL3JlZ2V4cC4KKworICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRCbG9jazo6c3BlY2lhbGl6ZWRTd2VlcCk6CisgICAgICAgICogcnVudGlt
ZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTUm9wZVN0cmluZzo6dmlzaXRGaWJlcnMp
OgorICAgICAgICAoSlNDOjpKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlKToKKyAgICAgICAgKEpT
Qzo6SlNSb3BlU3RyaW5nOjpyZXNvbHZlUm9wZVNsb3dDYXNlOCk6CisgICAgICAgIChKU0M6OkpT
Um9wZVN0cmluZzo6cmVzb2x2ZVJvcGVTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTUm9wZVN0
cmluZzo6b3V0T2ZNZW1vcnkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAg
ICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpT
Um9wZVN0cmluZzo6YXBwZW5kKToKKyAgICAgICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmliZXJzKToKKyAgICAgICAg
KEpTQzo6SlNSb3BlU3RyaW5nOjpmaWJlcik6CisgICAgICAgIChKU0M6OkpTUm9wZVN0cmluZzo6
c3Vic3RyaW5nQmFzZSk6CisgICAgICAgIChKU0M6OkpTUm9wZVN0cmluZzo6c3Vic3RyaW5nT2Zm
c2V0KToKKyAgICAgICAgKEpTQzo6SlNSb3BlU3RyaW5nOjpzdWJzdHJpbmdTZW50aW5lbCk6Cisg
ICAgICAgIChKU0M6OkpTUm9wZVN0cmluZzo6aXNTdWJzdHJpbmcpOgorICAgICAgICAoSlNDOjpq
c1N1YnN0cmluZyk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdFeHBNYXRjaGVzQXJyYXk6OnJlaWZ5QWxsUHJvcGVydGllcyk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJp
bmdQcm90b0Z1bmNTdWJzdHJpbmcpOgorCiAyMDE0LTA1LTAyICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgICJhcm02NCBmdW5jdGlvbiBub3QgNC1ieXRlIGFs
aWduZWQiIHdhcm5pbmdzIHdoZW4gYnVpbGRpbmcgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAxNjgyMzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcw
LDYgKzcwLDggQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzcGVjaQogICAg
IEFTU0VSVChibG9ja1N0YXRlICE9IEFsbG9jYXRlZCAmJiBibG9ja1N0YXRlICE9IEZyZWVMaXN0
ZWQpOwogICAgIEFTU0VSVCghKGR0b3JUeXBlID09IE1hcmtlZEJsb2NrOjpOb25lICYmIHN3ZWVw
TW9kZSA9PSBTd2VlcE9ubHkpKTsKIAorICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9u
KChkdG9yVHlwZSAhPSBNYXJrZWRCbG9jazo6Tm9uZSAmJiBibG9ja1N0YXRlICE9IE5ldykgPyAi
Q2FsbGluZyBkZXN0cnVjdG9ycyIgOiAic3dlZXBpbmciKTsKKyAgICAKICAgICAvLyBUaGlzIHBy
b2R1Y2VzIGEgZnJlZSBsaXN0IHRoYXQgaXMgb3JkZXJlZCBpbiByZXZlcnNlIHRocm91Z2ggdGhl
IGJsb2NrLgogICAgIC8vIFRoaXMgaXMgZmluZSwgc2luY2UgdGhlIGFsbG9jYXRpb24gY29kZSBt
YWtlcyBubyBhc3N1bXB0aW9ucyBhYm91dCB0aGUKICAgICAvLyBvcmRlciBvZiB0aGUgZnJlZSBs
aXN0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAko
cmV2aXNpb24gMTY4MjMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MiwxNCArODIsMjUgQEAgdm9pZCBKU1N0cmluZzo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbAogCiB2b2lkIEpTUm9wZVN0cmluZzo6dmlzaXRGaWJl
cnMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
X21heEludGVybmFsUm9wZUxlbmd0aCAmJiBtX2ZpYmVyc1tpXTsgKytpKQotICAgICAgICB2aXNp
dG9yLmFwcGVuZCgmbV9maWJlcnNbaV0pOworICAgIGlmIChpc1N1YnN0cmluZygpKSB7CisgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKCZzdWJzdHJpbmdCYXNlKCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc19tYXhJbnRlcm5hbFJvcGVMZW5ndGgg
JiYgZmliZXIoaSk7ICsraSkKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJmZpYmVyKGkpKTsKIH0K
IAogdm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNSb3BlKCkpOwotCisgICAgCisgICAgaWYgKGlzU3Vic3RyaW5nKCkp
IHsKKyAgICAgICAgQVNTRVJUKCFzdWJzdHJpbmdCYXNlKCktPmlzUm9wZSgpKTsKKyAgICAgICAg
bV92YWx1ZSA9IHN1YnN0cmluZ0Jhc2UoKS0+bV92YWx1ZS5zdWJzdHJpbmcoc3Vic3RyaW5nT2Zm
c2V0KCksIG1fbGVuZ3RoKTsKKyAgICAgICAgc3Vic3RyaW5nQmFzZSgpLmNsZWFyKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgaWYgKGlzOEJpdCgpKSB7CiAgICAgICAgIExD
aGFyKiBidWZmZXI7CiAgICAgICAgIGlmIChSZWZQdHI8U3RyaW5nSW1wbD4gbmV3SW1wbCA9IFN0
cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQobV9sZW5ndGgsIGJ1ZmZlcikpIHsKQEAg
LTk5LDE5ICsxMTAsMTkgQEAgdm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlKEV4ZWNTdGF0
ZQogICAgICAgICAgICAgb3V0T2ZNZW1vcnkoZXhlYyk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KLQotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxS
b3BlTGVuZ3RoICYmIG1fZmliZXJzW2ldOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChtX2ZpYmVy
c1tpXS0+aXNSb3BlKCkpCisgICAgICAgIAorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIGZpYmVyKGkpOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChmaWJlcihpKS0+aXNSb3BlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVS
b3BlU2xvd0Nhc2U4KGJ1ZmZlcik7CiAgICAgICAgIH0KIAogICAgICAgICBMQ2hhciogcG9zaXRp
b24gPSBidWZmZXI7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc19tYXhJbnRlcm5h
bFJvcGVMZW5ndGggJiYgbV9maWJlcnNbaV07ICsraSkgewotICAgICAgICAgICAgU3RyaW5nSW1w
bCogc3RyaW5nID0gbV9maWJlcnNbaV0tPm1fdmFsdWUuaW1wbCgpOworICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIGZpYmVyKGkpOyArK2kp
IHsKKyAgICAgICAgICAgIFN0cmluZ0ltcGwqIHN0cmluZyA9IGZpYmVyKGkpLT5tX3ZhbHVlLmlt
cGwoKTsKICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmluZy0+bGVuZ3RoKCk7CiAg
ICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcnMocG9zaXRpb24sIHN0cmluZy0+Y2hhcmFj
dGVyczgoKSwgbGVuZ3RoKTsKICAgICAgICAgICAgIHBvc2l0aW9uICs9IGxlbmd0aDsKLSAgICAg
ICAgICAgIG1fZmliZXJzW2ldLmNsZWFyKCk7CisgICAgICAgICAgICBmaWJlcihpKS5jbGVhcigp
OwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVCgoYnVmZmVyICsgbV9sZW5ndGgpID09IHBvc2l0
aW9uKTsKICAgICAgICAgQVNTRVJUKCFpc1JvcGUoKSk7CkBAIC0xMjgsMjEgKzEzOSwyMSBAQCB2
b2lkIEpTUm9wZVN0cmluZzo6cmVzb2x2ZVJvcGUoRXhlY1N0YXRlCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVu
Z3RoICYmIG1fZmliZXJzW2ldOyArK2kpIHsKLSAgICAgICAgaWYgKG1fZmliZXJzW2ldLT5pc1Jv
cGUoKSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3Ro
ICYmIGZpYmVyKGkpOyArK2kpIHsKKyAgICAgICAgaWYgKGZpYmVyKGkpLT5pc1JvcGUoKSkKICAg
ICAgICAgICAgIHJldHVybiByZXNvbHZlUm9wZVNsb3dDYXNlKGJ1ZmZlcik7CiAgICAgfQogCiAg
ICAgVUNoYXIqIHBvc2l0aW9uID0gYnVmZmVyOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c19tYXhJbnRlcm5hbFJvcGVMZW5ndGggJiYgbV9maWJlcnNbaV07ICsraSkgewotICAgICAgICBT
dHJpbmdJbXBsKiBzdHJpbmcgPSBtX2ZpYmVyc1tpXS0+bV92YWx1ZS5pbXBsKCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzX21heEludGVybmFsUm9wZUxlbmd0aCAmJiBmaWJlcihpKTsg
KytpKSB7CisgICAgICAgIFN0cmluZ0ltcGwqIHN0cmluZyA9IGZpYmVyKGkpLT5tX3ZhbHVlLmlt
cGwoKTsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5nLT5sZW5ndGgoKTsKICAgICAg
ICAgaWYgKHN0cmluZy0+aXM4Qml0KCkpCiAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hh
cnMocG9zaXRpb24sIHN0cmluZy0+Y2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJzKHBvc2l0aW9uLCBzdHJpbmctPmNo
YXJhY3RlcnMxNigpLCBsZW5ndGgpOwogICAgICAgICBwb3NpdGlvbiArPSBsZW5ndGg7Ci0gICAg
ICAgIG1fZmliZXJzW2ldLmNsZWFyKCk7CisgICAgICAgIGZpYmVyKGkpLmNsZWFyKCk7CiAgICAg
fQogICAgIEFTU0VSVCgoYnVmZmVyICsgbV9sZW5ndGgpID09IHBvc2l0aW9uKTsKICAgICBBU1NF
UlQoIWlzUm9wZSgpKTsKQEAgLTE2MywyNyArMTc0LDM1IEBAIHZvaWQgSlNSb3BlU3RyaW5nOjpy
ZXNvbHZlUm9wZVNsb3dDYXNlOCgKICAgICBMQ2hhciogcG9zaXRpb24gPSBidWZmZXIgKyBtX2xl
bmd0aDsgLy8gV2Ugd2lsbCBiZSB3b3JraW5nIGJhY2t3YXJkcyBvdmVyIHRoZSByb3BlLgogICAg
IFZlY3RvcjxKU1N0cmluZyosIDMyLCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gd29ya1F1ZXVlOyAv
LyBQdXR0aW5nIHN0cmluZ3MgaW50byBhIFZlY3RvciBpcyBvbmx5IE9LIGJlY2F1c2UgdGhlcmUg
YXJlIG5vIEdDIHBvaW50cyBpbiB0aGlzIG1ldGhvZC4KICAgICAKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIG1fZmliZXJzW2ldOyArK2kpIHsK
LSAgICAgICAgd29ya1F1ZXVlLmFwcGVuZChtX2ZpYmVyc1tpXS5nZXQoKSk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzX21heEludGVybmFsUm9wZUxlbmd0aCAmJiBmaWJlcihpKTsgKytp
KSB7CisgICAgICAgIHdvcmtRdWV1ZS5hcHBlbmQoZmliZXIoaSkuZ2V0KCkpOwogICAgICAgICAv
LyBDbGVhcmluZyBoZXJlIHdvcmtzIG9ubHkgYmVjYXVzZSB0aGVyZSBhcmUgbm8gR0MgcG9pbnRz
IGluIHRoaXMgbWV0aG9kLgotICAgICAgICBtX2ZpYmVyc1tpXS5jbGVhcigpOworICAgICAgICBm
aWJlcihpKS5jbGVhcigpOwogICAgIH0KIAogICAgIHdoaWxlICghd29ya1F1ZXVlLmlzRW1wdHko
KSkgewogICAgICAgICBKU1N0cmluZyogY3VycmVudEZpYmVyID0gd29ya1F1ZXVlLmxhc3QoKTsK
ICAgICAgICAgd29ya1F1ZXVlLnJlbW92ZUxhc3QoKTsKLQorICAgICAgICAKKyAgICAgICAgY29u
c3QgTENoYXIqIGNoYXJhY3RlcnM7CisgICAgICAgIAogICAgICAgICBpZiAoY3VycmVudEZpYmVy
LT5pc1JvcGUoKSkgewogICAgICAgICAgICAgSlNSb3BlU3RyaW5nKiBjdXJyZW50RmliZXJBc1Jv
cGUgPSBzdGF0aWNfY2FzdDxKU1JvcGVTdHJpbmcqPihjdXJyZW50RmliZXIpOwotICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzX21heEludGVybmFsUm9wZUxlbmd0aCAmJiBjdXJy
ZW50RmliZXJBc1JvcGUtPm1fZmliZXJzW2ldOyArK2kpCi0gICAgICAgICAgICAgICAgd29ya1F1
ZXVlLmFwcGVuZChjdXJyZW50RmliZXJBc1JvcGUtPm1fZmliZXJzW2ldLmdldCgpKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRGaWJl
ckFzUm9wZS0+aXNTdWJzdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggJiYgY3VycmVudEZpYmVyQXNSb3BlLT5m
aWJlcihpKTsgKytpKQorICAgICAgICAgICAgICAgICAgICB3b3JrUXVldWUuYXBwZW5kKGN1cnJl
bnRGaWJlckFzUm9wZS0+ZmliZXIoaSkuZ2V0KCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50RmliZXJBc1JvcGUt
PnN1YnN0cmluZ0Jhc2UoKS0+aXNSb3BlKCkpOworICAgICAgICAgICAgY2hhcmFjdGVycyA9Cisg
ICAgICAgICAgICAgICAgY3VycmVudEZpYmVyQXNSb3BlLT5zdWJzdHJpbmdCYXNlKCktPm1fdmFs
dWUuY2hhcmFjdGVyczgoKSArCisgICAgICAgICAgICAgICAgY3VycmVudEZpYmVyQXNSb3BlLT5z
dWJzdHJpbmdPZmZzZXQoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjaGFyYWN0ZXJz
ID0gY3VycmVudEZpYmVyLT5tX3ZhbHVlLmNoYXJhY3RlcnM4KCk7CiAKLSAgICAgICAgU3RyaW5n
SW1wbCogc3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KGN1cnJlbnRGaWJlci0+bV92
YWx1ZS5pbXBsKCkpOwotICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmctPmxlbmd0aCgp
OworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBjdXJyZW50RmliZXItPmxlbmd0aCgpOwogICAg
ICAgICBwb3NpdGlvbiAtPSBsZW5ndGg7Ci0gICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFycyhw
b3NpdGlvbiwgc3RyaW5nLT5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgpOworICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcnMocG9zaXRpb24sIGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgfQogCiAg
ICAgQVNTRVJUKGJ1ZmZlciA9PSBwb3NpdGlvbik7CkBAIC0xOTUsOCArMjE0LDggQEAgdm9pZCBK
U1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlU2xvd0Nhc2UoVQogICAgIFVDaGFyKiBwb3NpdGlvbiA9
IGJ1ZmZlciArIG1fbGVuZ3RoOyAvLyBXZSB3aWxsIGJlIHdvcmtpbmcgYmFja3dhcmRzIG92ZXIg
dGhlIHJvcGUuCiAgICAgVmVjdG9yPEpTU3RyaW5nKiwgMzIsIFVuc2FmZVZlY3Rvck92ZXJmbG93
PiB3b3JrUXVldWU7IC8vIFRoZXNlIHN0cmluZ3MgYXJlIGtlcHQgYWxpdmUgYnkgdGhlIHBhcmVu
dCByb3BlLCBzbyB1c2luZyBhIFZlY3RvciBpcyBPSy4KIAotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggJiYgbV9maWJlcnNbaV07ICsraSkKLSAgICAg
ICAgd29ya1F1ZXVlLmFwcGVuZChtX2ZpYmVyc1tpXS5nZXQoKSk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzX21heEludGVybmFsUm9wZUxlbmd0aCAmJiBmaWJlcihpKTsgKytpKQorICAg
ICAgICB3b3JrUXVldWUuYXBwZW5kKGZpYmVyKGkpLmdldCgpKTsKIAogICAgIHdoaWxlICghd29y
a1F1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBKU1N0cmluZyogY3VycmVudEZpYmVyID0gd29y
a1F1ZXVlLmxhc3QoKTsKQEAgLTIwNCw4ICsyMjMsMjEgQEAgdm9pZCBKU1JvcGVTdHJpbmc6OnJl
c29sdmVSb3BlU2xvd0Nhc2UoVQogCiAgICAgICAgIGlmIChjdXJyZW50RmliZXItPmlzUm9wZSgp
KSB7CiAgICAgICAgICAgICBKU1JvcGVTdHJpbmcqIGN1cnJlbnRGaWJlckFzUm9wZSA9IHN0YXRp
Y19jYXN0PEpTUm9wZVN0cmluZyo+KGN1cnJlbnRGaWJlcik7Ci0gICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIGN1cnJlbnRGaWJlckFz
Um9wZS0+bV9maWJlcnNbaV07ICsraSkKLSAgICAgICAgICAgICAgICB3b3JrUXVldWUuYXBwZW5k
KGN1cnJlbnRGaWJlckFzUm9wZS0+bV9maWJlcnNbaV0uZ2V0KCkpOworICAgICAgICAgICAgaWYg
KGN1cnJlbnRGaWJlckFzUm9wZS0+aXNTdWJzdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEFT
U0VSVCghY3VycmVudEZpYmVyQXNSb3BlLT5zdWJzdHJpbmdCYXNlKCktPmlzUm9wZSgpKTsKKyAg
ICAgICAgICAgICAgICBTdHJpbmdJbXBsKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmdJbXBs
Kj4oCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWJlckFzUm9wZS0+c3Vic3RyaW5nQmFz
ZSgpLT5tX3ZhbHVlLmltcGwoKSk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
Y3VycmVudEZpYmVyQXNSb3BlLT5zdWJzdHJpbmdPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB1
bnNpZ25lZCBsZW5ndGggPSBjdXJyZW50RmliZXJBc1JvcGUtPmxlbmd0aCgpOworICAgICAgICAg
ICAgICAgIHBvc2l0aW9uIC09IGxlbmd0aDsKKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLT5p
czhCaXQoKSkKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJzKHBvc2l0
aW9uLCBzdHJpbmctPmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcnMocG9z
aXRpb24sIHN0cmluZy0+Y2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIGN1cnJlbnRGaWJlckFzUm9w
ZS0+ZmliZXIoaSk7ICsraSkKKyAgICAgICAgICAgICAgICB3b3JrUXVldWUuYXBwZW5kKGN1cnJl
bnRGaWJlckFzUm9wZS0+ZmliZXIoaSkuZ2V0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIApAQCAtMjI0LDggKzI1Niw4IEBAIHZvaWQgSlNSb3BlU3RyaW5nOjpyZXNvbHZl
Um9wZVNsb3dDYXNlKFUKIAogdm9pZCBKU1JvcGVTdHJpbmc6Om91dE9mTWVtb3J5KEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJu
YWxSb3BlTGVuZ3RoICYmIG1fZmliZXJzW2ldOyArK2kpCi0gICAgICAgIG1fZmliZXJzW2ldLmNs
ZWFyKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzX21heEludGVybmFsUm9wZUxlbmd0
aCAmJiBmaWJlcihpKTsgKytpKQorICAgICAgICB1W2ldLnN0cmluZy5jbGVhcigpOwogICAgIEFT
U0VSVChpc1JvcGUoKSk7CiAgICAgQVNTRVJUKG1fdmFsdWUuaXNOdWxsKCkpOwogICAgIGlmIChl
eGVjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCShyZXZp
c2lvbiAxNjgyMzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsOCArMjcwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgICAgICBtX2xlbmd0aCA9
IHMxLT5sZW5ndGgoKSArIHMyLT5sZW5ndGgoKTsKICAgICAgICAgICAgIHNldElzOEJpdChzMS0+
aXM4Qml0KCkgJiYgczItPmlzOEJpdCgpKTsKLSAgICAgICAgICAgIG1fZmliZXJzWzBdLnNldCh2
bSwgdGhpcywgczEpOwotICAgICAgICAgICAgbV9maWJlcnNbMV0uc2V0KHZtLCB0aGlzLCBzMik7
CisgICAgICAgICAgICBmaWJlcigwKS5zZXQodm0sIHRoaXMsIHMxKTsKKyAgICAgICAgICAgIGZp
YmVyKDEpLnNldCh2bSwgdGhpcywgczIpOworICAgICAgICAgICAgZmliZXIoMikuY2xlYXIoKTsK
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU1N0cmluZyogczEsIEpTU3RyaW5nKiBzMiwgSlNTdHJpbmcqIHMzKQpAQCAtMjc5LDE5
ICsyODAsMzUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IHMxLT5sZW5ndGgoKSArIHMyLT5sZW5n
dGgoKSArIHMzLT5sZW5ndGgoKTsKICAgICAgICAgICAgIHNldElzOEJpdChzMS0+aXM4Qml0KCkg
JiYgczItPmlzOEJpdCgpICYmICBzMy0+aXM4Qml0KCkpOwotICAgICAgICAgICAgbV9maWJlcnNb
MF0uc2V0KHZtLCB0aGlzLCBzMSk7Ci0gICAgICAgICAgICBtX2ZpYmVyc1sxXS5zZXQodm0sIHRo
aXMsIHMyKTsKLSAgICAgICAgICAgIG1fZmliZXJzWzJdLnNldCh2bSwgdGhpcywgczMpOworICAg
ICAgICAgICAgZmliZXIoMCkuc2V0KHZtLCB0aGlzLCBzMSk7CisgICAgICAgICAgICBmaWJlcigx
KS5zZXQodm0sIHRoaXMsIHMyKTsKKyAgICAgICAgICAgIGZpYmVyKDIpLnNldCh2bSwgdGhpcywg
czMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNTdHJpbmcqIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQor
ICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAg
ICAgICBBU1NFUlQoIWJhc2UtPmlzUm9wZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghc3VtT3Zl
cmZsb3dzPGludDMyX3Q+KG9mZnNldCwgbGVuZ3RoKSk7CisgICAgICAgICAgICBBU1NFUlQob2Zm
c2V0ICsgbGVuZ3RoIDw9IGJhc2UtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIG1fbGVuZ3RoID0g
bGVuZ3RoOworICAgICAgICAgICAgc2V0SXM4Qml0KGJhc2UtPmlzOEJpdCgpKTsKKyAgICAgICAg
ICAgIHVbMF0uc3RyaW5nLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoc3Vic3RyaW5nU2VudGluZWwo
KSk7CisgICAgICAgICAgICBzdWJzdHJpbmdCYXNlKCkuc2V0KHZtLCB0aGlzLCBiYXNlKTsKKyAg
ICAgICAgICAgIHN1YnN0cmluZ09mZnNldCgpID0gb2Zmc2V0OwogICAgICAgICB9CiAKICAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgICAgIHsKICAgICAgICAgICAgIEpT
U3RyaW5nOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgICAgICBmaWJlcigwKS5jbGVhcigp
OworICAgICAgICAgICAgZmliZXIoMSkuY2xlYXIoKTsKKyAgICAgICAgICAgIGZpYmVyKDIpLmNs
ZWFyKCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGFwcGVuZChWTSYgdm0sIHNpemVfdCBp
bmRleCwgSlNTdHJpbmcqIGpzU3RyaW5nKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX2ZpYmVy
c1tpbmRleF0uc2V0KHZtLCB0aGlzLCBqc1N0cmluZyk7CisgICAgICAgICAgICBmaWJlcihpbmRl
eCkuc2V0KHZtLCB0aGlzLCBqc1N0cmluZyk7CiAgICAgICAgICAgICBtX2xlbmd0aCArPSBqc1N0
cmluZy0+bV9sZW5ndGg7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzdGF0aWNfY2FzdDxp
bnQzMl90PihtX2xlbmd0aCkgPj0gMCk7CiAgICAgICAgICAgICBzZXRJczhCaXQoaXM4Qml0KCkg
JiYganNTdHJpbmctPmlzOEJpdCgpKTsKQEAgLTMxNywxMCArMzM0LDE3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgbmV3U3RyaW5nLT5maW5pc2hDcmVhdGlvbih2bSwgczEsIHMyLCBz
Myk7CiAgICAgICAgICAgICByZXR1cm4gbmV3U3RyaW5nOwogICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBzdGF0aWMgSlNTdHJpbmcqIGNyZWF0ZShWTSYgdm0sIEpTU3RyaW5nKiBiYXNlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICAgICAgeworICAgICAgICAgICAg
SlNSb3BlU3RyaW5nKiBuZXdTdHJpbmcgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1Jv
cGVTdHJpbmc+KHZtLmhlYXApKSBKU1JvcGVTdHJpbmcodm0pOworICAgICAgICAgICAgbmV3U3Ry
aW5nLT5maW5pc2hDcmVhdGlvbih2bSwgYmFzZSwgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgICAg
ICAgcmV0dXJuIG5ld1N0cmluZzsKKyAgICAgICAgfQogCiAgICAgICAgIHZvaWQgdmlzaXRGaWJl
cnMoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgICAgIAotICAgICAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mRmliZXJzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTUm9wZVN0cmluZywg
bV9maWJlcnMpOyB9CisgICAgICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZGaWJlcnMoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNSb3BlU3RyaW5nLCB1KTsgfQogCiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzX21heEludGVybmFsUm9wZUxlbmd0aCA9IDM7CiAgICAgICAg
ICAgICAKQEAgLTMzNCw4ICszNTgsMzggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQg
b3V0T2ZNZW1vcnkoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgICAgICAKICAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgSlNTdHJpbmcqIGdldEluZGV4U2xvd0Nhc2UoRXhlY1N0YXRlKiwgdW5z
aWduZWQpOworICAgICAgICAKKyAgICAgICAgV3JpdGVCYXJyaWVyQmFzZTxKU1N0cmluZz4mIGZp
YmVyKHVuc2lnbmVkIGkpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghaXNT
dWJzdHJpbmcoKSk7CisgICAgICAgICAgICBBU1NFUlQoaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVu
Z3RoKTsKKyAgICAgICAgICAgIHJldHVybiB1W2ldLnN0cmluZzsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgV3JpdGVCYXJyaWVyQmFzZTxKU1N0cmluZz4mIHN1YnN0cmluZ0Jhc2UoKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdVsxXS5zdHJpbmc7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkJiBzdWJzdHJpbmdPZmZzZXQoKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdVsyXS5udW1iZXI7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHN0YXRpYyBKU1N0cmluZyogc3Vic3RyaW5nU2VudGluZWwoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEpTU3RyaW5nKj4oc3RhdGlj
X2Nhc3Q8dWludHB0cl90PigxKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGJvb2wg
aXNTdWJzdHJpbmcoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdVswXS5z
dHJpbmcuZ2V0KCkgPT0gc3Vic3RyaW5nU2VudGluZWwoKTsKKyAgICAgICAgfQogCi0gICAgICAg
IG11dGFibGUgc3RkOjphcnJheTxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+LCBzX21heEludGVybmFs
Um9wZUxlbmd0aD4gbV9maWJlcnM7CisgICAgICAgIG11dGFibGUgdW5pb24geworICAgICAgICAg
ICAgdW5zaWduZWQgbnVtYmVyOworICAgICAgICAgICAgV3JpdGVCYXJyaWVyQmFzZTxKU1N0cmlu
Zz4gc3RyaW5nOworICAgICAgICB9IHVbc19tYXhJbnRlcm5hbFJvcGVMZW5ndGhdOwogICAgIH07
CiAKIApAQCAtNDIxLDEwICs0NzUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VS
VChvZmZzZXQgPD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHMtPmxlbmd0aCgpKSk7CiAgICAgICAg
IEFTU0VSVChsZW5ndGggPD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHMtPmxlbmd0aCgpKSk7CiAg
ICAgICAgIEFTU0VSVChvZmZzZXQgKyBsZW5ndGggPD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHMt
Pmxlbmd0aCgpKSk7Ci0gICAgICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgICAgIHJldHVy
biB2bS0+c21hbGxTdHJpbmdzLmVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBqc1N1YnN0
cmluZyh2bSwgcy0+dmFsdWUoZXhlYyksIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJl
dHVybiB2bS5zbWFsbFN0cmluZ3MuZW1wdHlTdHJpbmcoKTsKKyAgICAgICAgcy0+dmFsdWUoZXhl
Yyk7IC8vIEZvciBlZmZlY3QuIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55IHN0cmluZyB0aGF0
IGlzIHVzZWQgYXMgYSBzdWJzdHJpbmcgYmFzZSBpcyBub3QgYSByb3BlLgorICAgICAgICByZXR1
cm4gSlNSb3BlU3RyaW5nOjpjcmVhdGUodm0sIHMsIG9mZnNldCwgbGVuZ3RoKTsKICAgICB9CiAK
ICAgICBpbmxpbmUgSlNTdHJpbmcqIGpzU3Vic3RyaW5nOChWTSogdm0sIGNvbnN0IFN0cmluZyYg
cywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAJKHJldmlz
aW9uIDE2ODIzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBSZWdFeHBN
YXRjaGVzQXJyYXk6OnJlaWZ5QWxsUHJvcGVydAogICAgIEFTU0VSVChtX3N0YXRlICE9IFJlaWZp
ZWRBbGwpOwogICAgIEFTU0VSVChtX3Jlc3VsdCk7CiAgCisgICAgU2FtcGxpbmdSZWdpb24gc2Ft
cGxpbmdSZWdpb24oIlJlaWZ5aW5nIHN1YnN0cmluZyBwcm9wZXJ0aWVzIik7CisgICAgCiAgICAg
cmVpZnlNYXRjaFByb3BlcnR5SWZOZWNlc3NhcnkoZXhlYyk7CiAKICAgICBpZiAodW5zaWduZWQg
bnVtU3VicGF0dGVybnMgPSBtX3JlZ0V4cC0+bnVtU3VicGF0dGVybnMoKSkgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCShy
ZXZpc2lvbiAxNjgyMzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjE4LDYgKzEyMTgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAg
ICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiRG9pbmcgc3Vic3RyaW5naW5nIik7CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNr
T2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4MjUzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMDQgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBqc1N1YnN0cmluZygpIHNob3Vs
ZCBiZSBsYXp5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFRoZXNlIHRlc3RzIGdldCAzNS01MCUgZmFzdGVyLgorCisgICAgICAgICoganMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvc3Vic3RyaW5nLWNvbmNhdC13ZWlyZC5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N1YnN0cmlu
Zy1jb25jYXQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9zdWJzdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3N1YnN0cmluZy1jb25jYXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3N1YnN0cmluZy1jb25jYXQtd2VpcmQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3N1YnN0cmluZy1jb25jYXQtd2VpcmQuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3Vic3RyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9zdWJzdHJpbmcuaHRtbDogQWRkZWQuCisKIDIwMTQtMDUtMDQg
IEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsgY29tcG9z
aXRpbmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5LWltYWdlLWxheWVycy1keW5hbWljLmh0bWwgYXMg
ZmFpbGluZyBhZnRlciByMTY4MjQ0LgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdWJz
dHJpbmctY29uY2F0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3N1YnN0cmluZy1jb25jYXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvc3Vic3RyaW5nLWNvbmNhdAorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0LXdlaXJkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N1YnN0cmluZy1jb25jYXQt
d2VpcmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zdWJzdHJpbmctY29uY2F0LXdlaXJkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvc3Vic3RyaW5nLWNvbmNhdC13ZWlyZAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0LXdlaXJkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0LXdlaXJkLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N1YnN0cmluZy1jb25jYXQtd2Vp
cmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdWJzdHJpbmctY29uY2F0LXdlaXJkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc3Vic3RyaW5nLWNvbmNhdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3Vic3RyaW5nLWNvbmNhdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zdWJzdHJpbmctY29uY2F0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
c3Vic3RyaW5nLWNvbmNhdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N1YnN0cmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmctZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9zdWJzdHJpbmcKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3Vic3RyaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zdWJzdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3Vic3RyaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3Vi
c3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N1YnN0cmluZy1jb25jYXQtd2VpcmQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3Vic3RyaW5nLWNv
bmNhdC13ZWlyZC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL3N1YnN0cmluZy1jb25jYXQtd2VpcmQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHJldHVybiBhICsgYjsKK30KKwordmFy
IGFycmF5ID0gQXJyYXkoMTAwMDcpOworCit2YXIgc3RyaW5nID0gZm9vLnRvU3RyaW5nKCk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgNTAwMDAwOyArK2kpIHsKKyAgICBhcnJheVtpICUgYXJyYXku
bGVuZ3RoXSA9ICJmb28gIiArIHN0cmluZy5zdWJzdHJpbmcoaSAlIHN0cmluZy5sZW5ndGgsIChp
IC8gc3RyaW5nLmxlbmd0aCkgJSBzdHJpbmcubGVuZ3RoKSArICIgYmFyIjsKKyAgICBhcnJheVtp
ICUgYXJyYXkubGVuZ3RoXSA9ICJ0aGlzICIgKyBhcnJheVtpICUgYXJyYXkubGVuZ3RoXSArICIg
dGhhdCI7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAg
ICB2YXIgdGhpbmcgPSBhcnJheVtpXS5zdWJzdHJpbmcoOSwgYXJyYXlbaV0ubGVuZ3RoIC0gOSk7
CisgICAgaWYgKHN0cmluZy5pbmRleE9mKHRoaW5nKSA8IDApCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHN1YnN0cmluZzogIiArIHRoaW5nOworfQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvc3Vic3RyaW5nLWNvbmNhdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdWJzdHJpbmctY29uY2F0LmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3Vic3RyaW5n
LWNvbmNhdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBmb28o
KSB7CisgICAgcmV0dXJuIGEgKyBiOworfQorCit2YXIgYXJyYXkgPSBBcnJheSgxMDAwNyk7CisK
K3ZhciBzdHJpbmcgPSBmb28udG9TdHJpbmcoKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCA3MDAw
MDA7ICsraSkgeworICAgIGFycmF5W2kgJSBhcnJheS5sZW5ndGhdID0gImZvbyAiICsgc3RyaW5n
LnN1YnN0cmluZyhpICUgc3RyaW5nLmxlbmd0aCwgKGkgLyBzdHJpbmcubGVuZ3RoKSAlIHN0cmlu
Zy5sZW5ndGgpICsgIiBiYXIiOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0
aDsgKytpKSB7CisgICAgdmFyIHRoaW5nID0gYXJyYXlbaV0uc3Vic3RyaW5nKDQsIGFycmF5W2ld
Lmxlbmd0aCAtIDQpOworICAgIGlmIChzdHJpbmcuaW5kZXhPZih0aGluZykgPCAwKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCBzdWJzdHJpbmc6IFwiIiArIHRoaW5nICsgIlwiIjsKK30KSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N1YnN0cmluZy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdWJzdHJpbmcu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9z
dWJzdHJpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9v
KCkgeworICAgIHJldHVybiBhICsgYjsKK30KKwordmFyIGFycmF5ID0gQXJyYXkoMTAwMDcpOwor
Cit2YXIgc3RyaW5nID0gZm9vLnRvU3RyaW5nKCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwMDsgKytpKSB7CisgICAgYXJyYXlbaSAlIGFycmF5Lmxlbmd0aF0gPSBzdHJpbmcuc3Vic3Ry
aW5nKGkgJSBzdHJpbmcubGVuZ3RoLCAoaSAvIHN0cmluZy5sZW5ndGgpICUgc3RyaW5nLmxlbmd0
aCk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICBp
ZiAoc3RyaW5nLmluZGV4T2YoYXJyYXlbaV0pIDwgMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgc3Vic3RyaW5nOiAiICsgYXJyYXlbaV07Cit9Cg==
</data>
<flag name="review"
          id="255191"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>