<?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>84365</bug_id>
          
          <creation_ts>2012-04-19 11:53:28 -0700</creation_ts>
          <short_desc>Media HTTP layout tests for simulating a variety of servers</short_desc>
          <delta_ts>2012-05-21 16:05:18 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</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="Andrew Scherkus">scherkus</reporter>
          <assigned_to name="Andrew Scherkus">scherkus</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>605760</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-04-19 11:53:28 -0700</bug_when>
    <thetext>Experimental!

Sample layout test for generating various responses as well as a perl script for generating WAV data on the fly to avoid checking in huge files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605766</commentid>
    <comment_count>1</comment_count>
      <attachid>137940</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-04-19 11:58:03 -0700</bug_when>
    <thetext>Created attachment 137940
sample HTTP server and tests

not for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607047</commentid>
    <comment_count>2</comment_count>
      <attachid>138197</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-04-20 16:44:02 -0700</bug_when>
    <thetext>Created attachment 138197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607052</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-04-20 16:47:16 -0700</bug_when>
    <thetext>Alrighty Eric I wrapped this up and I think it&apos;s ready for review!

For now I kept the tests rather simple but I&apos;m not 100% happy with them so feel free to r- and we can think of some better tests.

I&apos;m waiting on my Mac build to finish so I can test it out on Mac DRT. So far trying out the autogenerated WAV URLs on Safari/QuickTime seemed to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629514</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-21 14:37:10 -0700</bug_when>
    <thetext>Dan &quot;the man&quot; Bates, any chance you&apos;re interested in a Perl review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629515</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-21 14:37:11 -0700</bug_when>
    <thetext>Dan &quot;the man&quot; Bates, any chance you&apos;re interested in a Perl review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629589</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-05-21 15:23:45 -0700</bug_when>
    <thetext>note: I am completely new to perl so feel free to drop knowledge on me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629665</commentid>
    <comment_count>7</comment_count>
      <attachid>138197</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-05-21 16:05:18 -0700</bug_when>
    <thetext>Comment on attachment 138197
Patch

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

Looks sane to me. I had some very minor nits.

&gt; LayoutTests/http/tests/media/Wav.pm:10
&gt; +# To keep things simple when calcuating byte offsets, we limit this class to single-channel

Nit: calcuating =&gt; calculating.

&gt; LayoutTests/http/tests/media/Wav.pm:18
&gt; +        bits_per_sample =&gt; 8,

Nit: We follow the WebKit Code Style guidelines for Perl code. In particular, we use camel case for variables names.

&gt; LayoutTests/http/tests/media/Wav.pm:30
&gt; +                           16,                        # Subchunk1Size

From reading &lt;https://ccrma.stanford.edu/courses/422/projects/WaveFormat/&gt;, this length is specific to PCM. You may want to consider denoting it as such like you did for format on the line below.

&gt; LayoutTests/http/tests/media/Wav.pm:43
&gt; +sub byte_rate {

Nit: We follow the WebKit Code Style guidelines for Perl code. In particular, we use camel case for function/subroutine names.

&gt; LayoutTests/http/tests/media/video-response.cgi:33
&gt; +# Handle HTTP range requests by parsing &quot;Range: bytes=N-M&quot; headers.

Nit: You may want to consider moving this comment inside the if-block. See my remark on line 44 for more details.

&gt; LayoutTests/http/tests/media/video-response.cgi:45
&gt; +# Handle &quot;Range: bytes=N-&quot; requests, but special case &quot;Range: bytes=0-&quot; requests to
&gt; +# return a 200 response if $return200 is true.

Nit: This is OK as-is. This looks stylistically weird since the comment talks about the next conditional block, but is visually positioned in the body of this if-statment block. You may want to consider moving this comment inside the block (starting on line 47) that it describes.

Alternatively, you could write this if-elsif-else block as three if-blocks that call a common function and then return. Then the comment for the block could precede the if-statement. The common function would  write out the Accept-Ranges, Content-Type, and Connection headers, and the WAV data

&gt; LayoutTests/http/tests/media/video-response.cgi:56
&gt; +# Return a 200 response in all other cases.

Nit: Similarly, you may want to consider moving this comment into the else block below.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137940</attachid>
            <date>2012-04-19 11:58:03 -0700</date>
            <delta_ts>2012-04-20 16:43:56 -0700</delta_ts>
            <desc>sample HTTP server and tests</desc>
            <filename>video_cgi.patch</filename>
            <type>text/plain</type>
            <size>11295</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC1uby1h
Y2NlcHQtcmFuZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxv
YWQtbm8tYWNjZXB0LXJhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhlZTkwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLWxvYWQtbm8tYWNjZXB0LXJhbmdlcy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZp
bGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhLXJlc291cmNlcy92aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ2aWRlby1sb2FkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnQoKSI+Cis8dmlkZW8gY29udHJvbHM+PC92
aWRlbz4KKzxzY3JpcHQ+CisgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgZnVuY3Rpb24g
c3RhcnQoKSB7CisgICAgICAgIC8vIFNlcnZlciBzdXBwb3J0cyByYW5nZSByZXF1ZXN0cywgYnV0
IGRvZXNuJ3QgYWR2ZXJ0aXNlIGl0IHdpdGggQWNjZXB0LVJhbmdlcy4KKyAgICAgICAgdmlkZW8u
c3JjID0gZ2V0VmlkZW9Mb2FkVVJMKHtub2FjY2VwdDogdHJ1ZX0pOworICAgICAgICBjb25zb2xl
V3JpdGUodmlkZW8uc3JjKTsKKworICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXknKTsKKyAg
ICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZpbmlzaCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZmluaXNoKCkgeworICAgICAgICBjb25zb2xlV3JpdGUodmlkZW8uc2Vla2Fi
bGUubGVuZ3RoKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1sb2FkLW5vLXJhbmdlLXN1cHBvcnQtY2h1bmtlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS92aWRlby1sb2FkLW5vLXJhbmdlLXN1cHBvcnQtY2h1bmtlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2ZmM3NDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtbm8tcmFuZ2Utc3VwcG9y
dC1jaHVua2VkLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InZpZGVvLWxvYWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzdGFydCgpIj4KKzx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorPHNjcmlwdD4KKyAgICBm
aW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgLy8g
U2VydmVyIGRvZXMgbm90IHN1cHBvcnQgcmFuZ2UgcmVxdWVzdHMgYW5kIHVzZXMgY2h1bmtlZCB0
cmFuc2ZlciBlbmNvZGluZyB3aXRoIG5vIENvbnRlbnQtTGVuZ3RoLgorICAgICAgICB2aWRlby5z
cmMgPSBnZXRWaWRlb0xvYWRVUkwoe25vcmFuZ2U6IHRydWUsIG5vYWNjZXB0OiB0cnVlLCBjaHVu
a2VkOiB0cnVlfSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zcmMpOworCisgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheScpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0
aHJvdWdoJywgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2goKSB7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zZWVrYWJsZS5sZW5ndGgpOworICAgICAgICBlbmRUZXN0
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtbm8tcmFuZ2Utc3VwcG9ydC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLW5vLXJhbmdlLXN1cHBv
cnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTJmMTE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLW5v
LXJhbmdlLXN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0idmlkZW8tbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InN0YXJ0KCkiPgorPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8c2NyaXB0Pgor
ICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAg
ICAvLyBTZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCByYW5nZSByZXF1ZXN0cy4KKyAgICAgICAgdmlk
ZW8uc3JjID0gZ2V0VmlkZW9Mb2FkVVJMKHtub3JhbmdlOiB0cnVlLCBub2FjY2VwdDogdHJ1ZX0p
OworICAgICAgICBjb25zb2xlV3JpdGUodmlkZW8uc3JjKTsKKworICAgICAgICB3YWl0Rm9yRXZl
bnQoJ2NhbnBsYXknKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZp
bmlzaCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoKCkgeworICAgICAgICBjb25zb2xl
V3JpdGUodmlkZW8uc2Vla2FibGUubGVuZ3RoKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLXJhbmdlLXJldHVybnMtMjAwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtcmFuZ2UtcmV0dXJucy0yMDAuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTI0NTc2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLXJhbmdlLXJldHVy
bnMtMjAwLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InZpZGVvLWxvYWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJzdGFydCgpIj4KKzx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorPHNjcmlwdD4KKyAgICBmaW5k
TWVkaWFFbGVtZW50KCk7CisKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgLy8gU2lt
dWxhdGUgQXBhY2hlIDIuMi4yMCBiZWhhdmlvdXIgd2hlcmUgYSAiUmFuZ2U6IGJ5dGVzPTAtIiBy
ZXF1ZXN0IHJldHVybnMgYSAyMDAgcmVzcG9uc2UuCisgICAgICAgIHZpZGVvLnNyYyA9IGdldFZp
ZGVvTG9hZFVSTCh7cmV0dXJuMjAwOiB0cnVlfSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRl
by5zcmMpOworCisgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheScpOworICAgICAgICB3YWl0
Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBmaW5pc2goKSB7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zZWVrYWJsZS5sZW5ndGgp
OworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQuY2dp
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLmNnaQpuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YWZlNjM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLmNnaQpAQCAtMCwwICsxLDkyIEBA
CisjIS91c3IvYmluL3BlcmwgLXcKKwordXNlIHN0cmljdDsKKwordXNlIENHSTsKK3VzZSBGaWxl
OjpzdGF0OworCitteSAkcXVlcnkgPSBuZXcgQ0dJOworbXkgJGZpbGUgPSAkcXVlcnktPnBhcmFt
KCdmaWxlJyk7CitteSAkZmlsZXNpemUgPSBzdGF0KCRmaWxlKS0+c2l6ZTsKK215ICR0eXBlID0g
JHF1ZXJ5LT5wYXJhbSgndHlwZScpOworCisjIFVzZSBjaHVua2VkIHRyYW5zZmVycy4KK215ICRj
aHVua2VkID0gJHF1ZXJ5LT5wYXJhbSgnY2h1bmtlZCcpOworCisjIERpc2FibGUgcmFuZ2UgcmVx
dWVzdCBzdXBwb3J0LgorbXkgJG5vcmFuZ2UgPSAkcXVlcnktPnBhcmFtKCdub3JhbmdlJyk7CisK
KyMgRG8gbm90IHJldHVybiBhICJBY2NlcHQtUmFuZ2VzOiBieXRlcyIgaGVhZGVyLgorbXkgJG5v
YWNjZXB0ID0gJHF1ZXJ5LT5wYXJhbSgnbm9hY2NlcHQnKTsKKworIyBSZXR1cm4gMjAwIGZvciAi
UmFuZ2U6IGJ5dGVzPTAtIiByZXF1ZXN0cy4KKyMKKyMgQXBhY2hlIDIuMi4yMCBub3cgcmV0dXJu
cyBhIDIwMCBpbiByZXNwb25zZSB0byBhICJSYW5nZTogYnl0ZXM9MC0iIHJlcXVlc3QuCisjIENs
aWVudHMgc2hvdWxkIHJlbHkgb24gcHJlc2VuY2Ugb2YgIkFjY2VwdC1SYW5nZXM6IGJ5dGVzIiBo
ZWFkZXIgaW5zdGVhZCBvZiBwcm9iaW5nIGZvciBhIDIwNiByZXNwb25zZS4KKyMKKyMgUmVmZXIg
dG8gdGhlIGZvbGxvd2luZyBodHRwZC1kZXYgZGlzY3Vzc2lvbjoKKyMgaHR0cDovL21haWwtYXJj
aGl2ZXMuYXBhY2hlLm9yZy9tb2RfbWJveC9odHRwZC1kZXYvMjAxMTA5Lm1ib3gvJTNDOUYxMjEw
QTktM0I4MC00OEQxLUI5NDAtNzM2Q0E1Q0RGMUI0QGdiaXYuY29tJTNFCitteSAkcmV0dXJuMjAw
ID0gJHF1ZXJ5LT5wYXJhbSgncmV0dXJuMjAwJyk7CisKKyMgU3RhcnQgYnl0ZSAoaW5jbHVzaXZl
KSBhbmQgZW5kIGJ5dGUgKGV4Y2x1c2l2ZSkgdG8gdHJhbnNtaXQuCitteSAkc3RhcnRCeXRlOwor
bXkgJGVuZEJ5dGU7CisKKyMgSGFuZGxlIEhUVFAgcmFuZ2UgcmVxdWVzdHMgYnkgcGFyc2luZyAi
UmFuZ2U6IGJ5dGVzPU4tTSIgaGVhZGVycy4KK2lmICghJG5vcmFuZ2UgYW5kICRFTlZ7J0hUVFBf
UkFOR0UnfSA9fiAvXmJ5dGVzPShcZCspLShcZCspJC8pIHsKKyAgICAkc3RhcnRCeXRlID0gJDE7
CisgICAgJGVuZEJ5dGUgPSAkMiArIDE7CisKKyAgICBwcmludCAiU3RhdHVzOiAyMDYgUGFydGlh
bCBDb250ZW50XG4iOworICAgIHByaW50ICJDb250ZW50LVJhbmdlOiBieXRlcyAiIC4gJHN0YXJ0
Qnl0ZSAuICItIiAuICgkZW5kQnl0ZSAtIDEpIC4gIi8iIC4gJGZpbGVzaXplIC4gIlxuIjsKKyAg
ICBpZiAoISRjaHVua2VkKSB7CisgICAgICAgIHByaW50ICJDb250ZW50LUxlbmd0aDogIiAuICgk
ZW5kQnl0ZSAtICRzdGFydEJ5dGUpIC4gIlxuIjsKKyAgICB9CisKKyMgSGFuZGxlICJSYW5nZTog
Ynl0ZXM9Ti0iIHJlcXVlc3RzLCBidXQgc3BlY2lhbCBjYXNlICJSYW5nZTogYnl0ZXM9MC0iIHJl
cXVlc3RzIHRvCisjIHJldHVybiBhIDIwMCByZXNwb25zZSBpZiAkcmV0dXJuMjAwIGlzIHRydWUu
Cit9IGVsc2lmICghJG5vcmFuZ2UgYW5kICRFTlZ7J0hUVFBfUkFOR0UnfSA9fiAvXmJ5dGVzPShc
ZCspLSQvIGFuZCAhKCRyZXR1cm4yMDAgYW5kICQxID09IDApKSB7CisgICAgJHN0YXJ0Qnl0ZSA9
ICQxOworICAgICRlbmRCeXRlID0gJGZpbGVzaXplOworCisgICAgcHJpbnQgIlN0YXR1czogMjA2
IFBhcnRpYWwgQ29udGVudFxuIjsKKyAgICBwcmludCAiQ29udGVudC1SYW5nZTogYnl0ZXMgIiAu
ICRzdGFydEJ5dGUgLiAiLSIgLiAoJGVuZEJ5dGUgLSAxKSAuICIvIiAuICRmaWxlc2l6ZSAuICJc
biI7CisgICAgaWYgKCEkY2h1bmtlZCkgeworICAgICAgICBwcmludCAiQ29udGVudC1MZW5ndGg6
ICIgLiAoJGVuZEJ5dGUgLSAkc3RhcnRCeXRlKSAuICJcbiI7CisgICAgfQorCisjIFJldHVybiBh
IDIwMCByZXNwb25zZSBpbiBhbGwgb3RoZXIgY2FzZXMuCit9IGVsc2UgeworICAgICRzdGFydEJ5
dGUgPSAwOworICAgICRlbmRCeXRlID0gJGZpbGVzaXplOworCisgICAgcHJpbnQgIlN0YXR1czog
MjAwIE9LXG4iOworICAgIGlmICghJGNodW5rZWQpIHsKKyAgICAgICAgcHJpbnQgIkNvbnRlbnQt
TGVuZ3RoOiAiIC4gKCRlbmRCeXRlIC0gJHN0YXJ0Qnl0ZSkgLiAiXG4iOworICAgIH0KK30KKwor
aWYgKCEkbm9hY2NlcHQpIHsKKyAgICBwcmludCAiQWNjZXB0LVJhbmdlczogYnl0ZXNcbiI7Cit9
CisKK3ByaW50ICJDb250ZW50LVR5cGU6ICIgLiAkdHlwZSAuICJcbiI7CitwcmludCAiQ29ubmVj
dGlvbjogY2xvc2VcbiI7CitwcmludCAiXG4iOworCitvcGVuIEZJTEUsICRmaWxlIG9yIGRpZTsK
K2Jpbm1vZGUgRklMRTsKK215ICgkZGF0YSwgJG4pOworbXkgJGJ5dGVzUmVtYWluaW5nID0gJGVu
ZEJ5dGUgLSAkc3RhcnRCeXRlOworCitzZWVrKEZJTEUsICRzdGFydEJ5dGUsIDApOword2hpbGUg
KDEpIHsKKyAgICAkbiA9IHJlYWQgRklMRSwgJGRhdGEsICgkYnl0ZXNSZW1haW5pbmcgPiAxMDI0
ID8gMTAyNCA6ICRieXRlc1JlbWFpbmluZyk7CisgICAgaWYgKCRuID09IDApIHsKKyAgICAgICAg
bGFzdDsKKyAgICB9CisKKyAgICBwcmludCAkZGF0YTsKKyAgICAkYnl0ZXNSZW1haW5pbmcgLT0g
JG47Cit9CitjbG9zZShGSUxFKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVjNWFmYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9h
ZC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJ2aWRlby1sb2FkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3Rh
cnQoKSI+Cis8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzxzY3JpcHQ+CisgICAgZmluZE1lZGlh
RWxlbWVudCgpOworCisgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgIC8vIFJlZ3VsYXIg
c2VydmVyIHRoYXQgc3VwcG9ydHMgcmFuZ2UgcmVxdWVzdHMuCisgICAgICAgIHZpZGVvLnNyYyA9
IGdldFZpZGVvTG9hZFVSTCh7fSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zcmMpOwor
CisgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheScpOworICAgICAgICB3YWl0Rm9yRXZlbnQo
J2NhbnBsYXl0aHJvdWdoJywgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2go
KSB7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zZWVrYWJsZS5sZW5ndGgpOworICAgICAg
ICBlbmRUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNDEyNzk4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC5qcwpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBn
ZXRWaWRlb0xvYWRVUkwob3B0aW9ucykgeworICAgIHZhciB1cmwgPSBmaW5kTWVkaWFGaWxlKCJ2
aWRlbyIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvdmlkZW8tbG9hZC5jZ2k/ZmlsZT1y
ZXNvdXJjZXMvdGVzdCIpOworICAgIHVybCArPSAiJnR5cGU9IiArIG1pbWVUeXBlRm9yRmlsZSh1
cmwpOworCisgICAgaWYgKG9wdGlvbnMuY2h1bmtlZCkgeworICAgICAgICB1cmwgKz0gIiZjaHVu
a2VkPTEiOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5ub3JhbmdlKSB7CisgICAgICAgIHVybCAr
PSAiJm5vcmFuZ2U9MSI7CisgICAgfQorICAgIGlmIChvcHRpb25zLm5vYWNjZXB0KSB7CisgICAg
ICAgIHVybCArPSAiJm5vYWNjZXB0PTEiOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5yZXR1cm4y
MDApIHsKKyAgICAgICAgdXJsICs9ICImcmV0dXJuMjAwPTEiOworICAgIH0KKyAgICByZXR1cm4g
dXJsOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS93YXYucGwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3dhdi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwLi4yODhjMDc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS93YXYucGwKQEAgLTAsMCArMSw4MyBAQAorIyEvdXNyL2Jpbi9wZXJs
IC13CisKK3VzZSBzdHJpY3Q7CisKK3VzZSBNYXRoOjpUcmlnOworCitteSAkY2hhbm5lbHMgPSAy
OworbXkgJHNhbXBsZV9yYXRlID0gNDQxMDA7CitteSAkYml0c19wZXJfc2FtcGxlID0gMTY7Citt
eSAkYnl0ZV9yYXRlID0gJGNoYW5uZWxzICogJHNhbXBsZV9yYXRlICogJGJpdHNfcGVyX3NhbXBs
ZSAvIDg7CitteSAkYmxvY2tfYWxpZ24gPSAkY2hhbm5lbHMgKiAkYml0c19wZXJfc2FtcGxlIC8g
ODsKKworc3ViIGNvbnRlbnRfbGVuZ3RoIHsKKyAgICBteSAkc2Vjb25kcyA9ICRfWzBdOworICAg
IG15ICRzdWJjaHVuazJfc2l6ZSA9ICRzZWNvbmRzICogJGJ5dGVfcmF0ZTsKKyAgICBteSAkY2h1
bmtfc2l6ZSA9IDM2ICsgJHN1YmNodW5rMl9zaXplOworICAgIHJldHVybiAkY2h1bmtfc2l6ZSAr
IDg7Cit9CisKK3N1YiBnZW5lcmF0ZV93YXZfZGF0YSB7CisgICAgbXkgJHNlY29uZHMgPSAkX1sw
XTsKKyAgICBteSAkc3ViY2h1bmsyX3NpemUgPSAkc2Vjb25kcyAqICRieXRlX3JhdGU7CisgICAg
bXkgJGNodW5rX3NpemUgPSAzNiArICRzdWJjaHVuazJfc2l6ZTsKKworICAgIG15ICRyaWZmX2hl
YWRlciA9IHBhY2soIk5WTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUyNDk0NjQ2
LCAgICMgQ2h1bmtJRCAoIlJJRkYiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNodW5r
X3NpemUsICAjIENodW5rU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NzQxNTY0
NSk7ICAjIEZvcm1hdCAoIldBVkUiKQorCisgICAgbXkgJHN1YmNodW5rMSA9IHBhY2soIk5WdnZW
VnZ2IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDY2NmQ3NDIwLCAgICAgICAgICMgU3Vi
Y2h1bmsxSUQgKCJmbXQgIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAxNiwgICAgICAgICAg
ICAgICAgICMgU3ViY2h1bmsxU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgIDEsICAgICAg
ICAgICAgICAgICAgIyBGb3JtYXQgKDE9UENNKQorICAgICAgICAgICAgICAgICAgICAgICAgICRj
aGFubmVscywgICAgICAgICAgIyBDaGFubmVscworICAgICAgICAgICAgICAgICAgICAgICAgICRz
YW1wbGVfcmF0ZSwgICAgICAgIyBTYW1wbGVSYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAg
JGJ5dGVfcmF0ZSwgICAgICAgICAjIEJ5dGVSYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAg
JGJsb2NrX2FsaWduLCAgICAgICAjIEJsb2NrQWxpZ24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAkYml0c19wZXJfc2FtcGxlKTsgICMgQml0c1BlclNhbXBsZQorCisgICAgbXkgJHN1YmNodW5r
MiA9IHBhY2soIk5WIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDY0NjE3NDYxLCAgICAg
ICAgIyBTdWJjaHVuazJJRCAoImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAgICAgICRzdWJj
aHVuazJfc2l6ZSk7ICAjIFN1YmNodW5rMlNpemUKKworCisgICAgIyBQcmludCBvdXQgYWxsIGhl
YWRlcnMgbWludXMgdGhlIGFjdHVhbCBQQ00gZGF0YS4KKyAgICBwcmludCAkcmlmZl9oZWFkZXI7
CisgICAgcHJpbnQgJHN1YmNodW5rMTsKKyAgICBwcmludCAkc3ViY2h1bmsyOworCisgICAgIyBU
ZXN0IHRvbmUgcGFyYW1ldGVycy4KKyAgICBteSAkaHogPSA0NDA7CisgICAgbXkgJHZvbHVtZSA9
ICgyICoqICgkYml0c19wZXJfc2FtcGxlIC0gNCkpIC0gMTsKKworICAgIG15ICRmbXQ7CisgICAg
aWYgKCRiaXRzX3Blcl9zYW1wbGUgPT0gOCkgeworICAgICAgICAkZm10ID0gImMiOworICAgIH0g
ZWxzaWYgKCRiaXRzX3Blcl9zYW1wbGUgPT0gMTYpIHsKKyAgICAgICAgJGZtdCA9ICJ2IjsKKyAg
ICB9IGVsc2lmICgkYml0c19wZXJfc2FtcGxlID09IDMyKSB7CisgICAgICAgICRmbXQgPSAiViI7
CisgICAgfQorCisgICAgIyBQcmVjb21wdXRlIFBDTSBkYXRhIGZvciBhbiBlbnRpcmUgY3ljbGUu
CisgICAgbXkgQHNhbXBsZV9kYXRhID0gKCk7CisgICAgZm9yIChteSAkaSA9IDA7ICRpIDwgJHNh
bXBsZV9yYXRlOyAkaSA9ICRpICsgMSkgeworICAgICAgICBteSAkc2FtcGxlID0gcGFjaygkZm10
LCBpbnQoJHZvbHVtZSAqIHNpbigkaHogKiAoJGkgLyAkc2FtcGxlX3JhdGUpICogMiAqIHBpKSkp
OworCisgICAgICAgIGZvciAobXkgJGogPSAwOyAkaiA8ICRjaGFubmVsczsgJGogPSAkaiArIDEp
IHsKKyAgICAgICAgICAgIHB1c2ggQHNhbXBsZV9kYXRhLCAkc2FtcGxlOworICAgICAgICB9Cisg
ICAgfQorCisgICAgIyBQcmludCBvdXQgUENNIGRhdGEgYmFzZWQgb24gdG90YWwgc2FtcGxlcy4K
KyAgICBteSAkcmVtYWluaW5nID0gJHNlY29uZHMgKiAkc2FtcGxlX3JhdGUgKiAkYml0c19wZXJf
c2FtcGxlIC8gODsKKyAgICB3aGlsZSAoJHJlbWFpbmluZyA+IDApIHsKKyAgICAgICAgbXkgJGkg
PSAkcmVtYWluaW5nIDwgc2NhbGFyKEBzYW1wbGVfZGF0YSkgPyAkcmVtYWluaW5nIDogc2NhbGFy
KEBzYW1wbGVfZGF0YSk7CisgICAgICAgIHByaW50IEBzYW1wbGVfZGF0YVswLi4kaS0xXTsKKyAg
ICAgICAgJHJlbWFpbmluZyA9ICRyZW1haW5pbmcgLSAkaTsKKyAgICB9Cit9CisKK3ByaW50IFNU
REVSUiAiQHtbY29udGVudF9sZW5ndGgoMjAwKV19XG4iOworcHJpbnQgZ2VuZXJhdGVfd2F2X2Rh
dGEoMjAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138197</attachid>
            <date>2012-04-20 16:44:02 -0700</date>
            <delta_ts>2012-05-21 16:05:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84365-20120420164401.patch</filename>
            <type>text/plain</type>
            <size>15851</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDczCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWE2M2EzZTQzMDA4MTliNDE0Y2Q3
NjVlMjY1Y2JlM2E1YTllMDI0OS4uZDMyMDZkNDFlZjdjZmE1YzJiNzE5ZjkzMDNmOTA3YjFmNjNh
Nzc2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA0LTIwICBBbmRyZXcgU2NoZXJrdXMg
IDxzY2hlcmt1c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVkaWEgSFRUUCBsYXlvdXQgdGVz
dHMgZm9yIHNpbXVsYXRpbmcgYSB2YXJpZXR5IG9mIEhUVFAgcmVzcG9uc2VzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQzNjUKKworICAgICAgICBU
byB0ZXN0IGNhc2VzIGludm9sdmluZyB2ZXJ5IGxhcmdlIGZpbGVzIEkndmUgaW5jbHVkZWQgYSBQ
ZXJsIG1vZHVsZSB0aGF0IGF1dG9nZW5lcmF0ZXMgV0FWIGZpbGUKKyAgICAgICAgZGF0YSBnaXZl
biBieXRlIG9mZnNldHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL1dhdi5wbTogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tYWNjZXB0LXJhbmdlcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9u
c2Utbm8tYWNjZXB0LXJhbmdlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXJlc3BvbnNlLW5vLXJhbmdlLXN1cHBvcnQtY2h1bmtlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFu
Z2Utc3VwcG9ydC1jaHVua2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVk
aWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9y
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNl
LXJhbmdlLXJldHVybnMtMjAwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1yYW5nZS1yZXR1cm5zLTIwMC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLmNnaTogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLmpzOiBBZGRlZC4KKwogMjAx
Mi0wNC0xNyAgRGF2aWQgRG9yd2luICA8ZGRvcndpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmUtZW5hYmxlIFczQyBjYW5QbGF5VHlwZSgpIHRlc3RzIG9uIENocm9taXVtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL1dhdi5wbSBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvV2F2LnBtCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyZTcwNGVjNDI5ZTIzZTE4Yzc1Y2FjZDY5
MjA0MmI0N2U1NjkzODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL1dhdi5wbQpAQCAtMCwwICsxLDk2IEBACisjIS91c3IvYmluL3BlcmwgLXcKKworcGFj
a2FnZSBXYXY7Cit1c2Ugc3RyaWN0OworCit1c2UgTWF0aDo6VHJpZzsKKworIyBBY2NlcHRzIGR1
cmF0aW9uIG9mIFdBViBmaWxlIHRvIGdlbmVyYXRlIGluIHNlY29uZHMuCisjCisjIFRvIGtlZXAg
dGhpbmdzIHNpbXBsZSB3aGVuIGNhbGN1YXRpbmcgYnl0ZSBvZmZzZXRzLCB3ZSBsaW1pdCB0aGlz
IGNsYXNzIHRvIHNpbmdsZS1jaGFubmVsCisjIDgtYml0IGF1ZGlvLgorc3ViIG5ldyB7CisgICAg
bXkgJGNsYXNzID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSB7CisgICAgICAgIHNlY29uZHMgPT4g
c2hpZnQsCisgICAgICAgIGNoYW5uZWxzID0+IDEsCisgICAgICAgIHNhbXBsZV9yYXRlID0+IDQ0
MTAwLAorICAgICAgICBiaXRzX3Blcl9zYW1wbGUgPT4gOCwKKyAgICB9OworICAgIGJsZXNzICRz
ZWxmLCAkY2xhc3M7CisKKyAgICAjIEdlbmVyYXRlIG91ciBXQVYgZmlsZSBoZWFkZXIgYmFzZWQg
b24gY2hvc2VuIHBhcmFtZXRlcnMuCisgICAgbXkgJHN1YmNodW5rMl9zaXplID0gJHNlbGYtPntz
ZWNvbmRzfSAqICRzZWxmLT5ieXRlX3JhdGUoKTsKKyAgICBteSAkY2h1bmtfc2l6ZSA9IDM2ICsg
JHN1YmNodW5rMl9zaXplOworICAgICRzZWxmLT57aGVhZGVyfSA9IHBhY2soIk5WTk5WdnZWVnZ2
TlYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MjQ5NDY0NiwgICAgICAgICAgICAg
ICAgIyBDaHVua0lEICgiUklGRiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2h1bmtf
c2l6ZSwgICAgICAgICAgICAgICAjIENodW5rU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHg1NzQxNTY0NSwgICAgICAgICAgICAgICAgIyBGb3JtYXQgKCJXQVZFIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4NjY2ZDc0MjAsICAgICAgICAgICAgICAgICMgU3ViY2h1bmsx
SUQgKCJmbXQgIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgICAg
ICAgICAgICAgICMgU3ViY2h1bmsxU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBGb3JtYXQgKDE9UENNKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJHNlbGYtPntjaGFubmVsc30sICAgICAgICAgIyBDaGFubmVscworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJHNlbGYtPntzYW1wbGVfcmF0ZX0sICAgICAgIyBTYW1wbGVS
YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi0+Ynl0ZV9yYXRlKCksICAgICAg
ICAjIEJ5dGVSYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi0+YmxvY2tfYWxp
Z24oKSwgICAgICAjIEJsb2NrQWxpZ24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxm
LT57Yml0c19wZXJfc2FtcGxlfSwgICMgQml0c1BlclNhbXBsZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHg2NDYxNzQ2MSwgICAgICAgICAgICAgICAgIyBTdWJjaHVuazJJRCAoImRhdGEi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1YmNodW5rMl9zaXplKTsgICAgICAgICAg
IyBTdWJjaHVuazJTaXplCisKKyAgICByZXR1cm4gJHNlbGY7Cit9CisKK3N1YiBieXRlX3JhdGUg
eworICAgIG15ICgkc2VsZikgPSBAXzsKKyAgICByZXR1cm4gJHNlbGYtPntjaGFubmVsc30gKiAk
c2VsZi0+e3NhbXBsZV9yYXRlfSAqICRzZWxmLT57Yml0c19wZXJfc2FtcGxlfSAvIDg7Cit9CisK
K3N1YiBibG9ja19hbGlnbiB7CisgICAgbXkgKCRzZWxmKSA9IEBfOworICAgIHJldHVybiAkc2Vs
Zi0+e2NoYW5uZWxzfSAqICRzZWxmLT57Yml0c19wZXJfc2FtcGxlfSAvIDg7Cit9CisKK3N1YiBz
aXplIHsKKyAgICBteSAoJHNlbGYpID0gQF87CisgICAgcmV0dXJuIDQ0ICsgJHNlbGYtPntzZWNv
bmRzfSAqICRzZWxmLT5ieXRlX3JhdGUoKTsgICMgV0FWIGhlYWRlciBpcyA0NCBieXRlcy4KK30K
KworIyBHZW5lcmF0ZXMgV0FWIGRhdGEgdG8gU1RET1VUIHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0
IGJ5dGUgb2Zmc2V0IChpbmNsdXNpdmUpLAorIyB0byB0aGUgbGFzdCBieXRlIG9mZnNldCAoZXhj
bHVzaXZlKS4KK3N1YiBwcmludCB7CisgICAgbXkgKCRzZWxmLCAkc3RhcnQsICRlbmQpID0gQF87
CisKKyAgICBpZiAoIWRlZmluZWQgJHN0YXJ0KSB7CisgICAgICAgICRzdGFydCA9IDA7CisgICAg
fQorICAgIGlmICghZGVmaW5lZCAkZW5kKSB7CisgICAgICAgICRlbmQgPSAkc2VsZi0+ZmlsZV9z
aXplKCk7CisgICAgfQorCisgICAgIyBUZXN0IHRvbmUgcGFyYW1ldGVycyB3aXRoIHZvbHVtZSB0
dXJuZWQgZG93biBhIGxpdHRsZSBiaXQuCisgICAgbXkgJGh6ID0gNDQwICogMiAqIHBpOworICAg
IG15ICR2b2x1bWUgPSAoMiAqKiAoJHNlbGYtPntiaXRzX3Blcl9zYW1wbGV9IC8gMikpIC0gMTsK
KyAgICBteSAkYnl0ZXNfd3JpdHRlbjsKKyAgICBteSAkc2FtcGxlOworCisgICAgIyBDaGVjayBp
ZiB3ZSBuZWVkIHRvIHByaW50IG91dCBhbnkgcG9ydGlvbiBvZiB0aGUgaGVhZGVyLgorICAgIGlm
ICgkc3RhcnQgPCBsZW5ndGgoJHNlbGYtPntoZWFkZXJ9KSkgeworICAgICAgICBteSAkaCA9IHN1
YnN0cigkc2VsZi0+e2hlYWRlcn0sICRzdGFydCwgJGVuZCAtICRzdGFydCk7CisgICAgICAgIHBy
aW50ICRoOworCisgICAgICAgICRieXRlc193cml0dGVuID0gbGVuZ3RoKCRoKTsKKyAgICAgICAg
JHNhbXBsZSA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgIyBPdGhlcndpc2UgZGV0ZXJtaW5l
IHRoZSBzYW1wbGUgb2Zmc2V0IHdpdGhpbiB0aGUgV0FWIGZpbGUuCisgICAgICAgICRieXRlc193
cml0dGVuID0gMDsKKyAgICAgICAgJHNhbXBsZSA9ICRzdGFydCAtIGxlbmd0aCgkc2VsZi0+e2hl
YWRlcn0pOworICAgIH0KKworICAgIHdoaWxlICgkYnl0ZXNfd3JpdHRlbiA8ICgkZW5kIC0gJHN0
YXJ0KSkgeworICAgICAgICBwcmludCBwYWNrKCJjIiwgaW50KCR2b2x1bWUgKiBzaW4oJGh6ICog
KCRzYW1wbGUgLyAkc2VsZi0+e3NhbXBsZV9yYXRlfSkpKSk7CisgICAgICAgICRieXRlc193cml0
dGVuKys7CisgICAgICAgICRzYW1wbGUrKzsKKyAgICB9Cit9CisKKzE7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY4MjJmYTU4NGU1YWUyZmU2Yzk2MmE3ZmMwYmRmZjYyMjM4NzllNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3Bv
bnNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
ZWRpYS92aWRlby1yZXNwb25zZS5jZ2k/CitFVkVOVChjYW5wbGF5KQorRVZFTlQoY2FucGxheXRo
cm91Z2gpCitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1uby1hY2NlcHQtcmFuZ2VzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Ut
bm8tYWNjZXB0LXJhbmdlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI0ZWNhZmZjNjM5MGRi
ZGRjYTNjNjI4MThkMjdjMDdmNmYwN2FkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tYWNjZXB0LXJhbmdlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvdmlkZW8t
cmVzcG9uc2UuY2dpPyZub2FjY2VwdD0xCitFVkVOVChjYW5wbGF5KQorRVZFTlQoY2FucGxheXRo
cm91Z2gpCitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1uby1hY2NlcHQtcmFuZ2VzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLW5vLWFjY2Vw
dC1yYW5nZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzM0MjczYzI2YTg2OTc2OTgyNWU5NWQ2MDYyNGEx
ZmQ5ZGNkMjcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1yZXNwb25zZS1uby1hY2NlcHQtcmFuZ2VzLmh0bWwKQEAgLTAsMCArMSwyNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlh
LXJlc291cmNlcy92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ2aWRlby1y
ZXNwb25zZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgor
PHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8c2NyaXB0PgorICAgIGZpbmRNZWRpYUVsZW1lbnQo
KTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAvLyBTZXJ2ZXIgc3VwcG9ydHMg
cmFuZ2UgcmVxdWVzdHMsIGJ1dCBkb2Vzbid0IGFkdmVydGlzZSBpdCB3aXRoIEFjY2VwdC1SYW5n
ZXMuCisgICAgICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvTG9hZFVSTCh7bm9hY2NlcHQ6IHRydWV9
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKHZpZGVvLnNyYyk7CisKKyAgICAgICAgd2FpdEZvckV2
ZW50KCdjYW5wbGF5Jyk7CisgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIGVuZFRlc3Qp
OworICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9ydC1jaHVua2VkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Ut
c3VwcG9ydC1jaHVua2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjc1YjFjODZkMWQyNzFj
YTc5NDgzYzAyM2UxNGQ2YWM0ZTBmNjMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1uby1yYW5nZS1zdXBwb3J0LWNodW5rZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21lZGlh
L3ZpZGVvLXJlc3BvbnNlLmNnaT8mY2h1bmtlZD0xJm5vcmFuZ2U9MSZub2FjY2VwdD0xCitFVkVO
VChjYW5wbGF5KQorRVZFTlQoY2FucGxheXRocm91Z2gpCitFVkVOVChwbGF5aW5nKQorRU5EIE9G
IFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1y
ZXNwb25zZS1uby1yYW5nZS1zdXBwb3J0LWNodW5rZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9ydC1jaHVua2VkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTBiYmY1NjJkZWQ0ODAyMGQ1ODcwZWI3NTgxYmUwMzg1ZTFhNmEyNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9u
c2Utbm8tcmFuZ2Utc3VwcG9ydC1jaHVua2VkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhLXJlc291
cmNlcy92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ2aWRlby1yZXNwb25z
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorPHZpZGVv
IGNvbnRyb2xzPjwvdmlkZW8+Cis8c2NyaXB0PgorICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKwor
ICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAvLyBTZXJ2ZXIgZG9lcyBub3Qgc3VwcG9y
dCByYW5nZSByZXF1ZXN0cyBhbmQgdXNlcyBjaHVua2VkIHRyYW5zZmVyIGVuY29kaW5nIHdpdGgg
bm8gQ29udGVudC1MZW5ndGguCisgICAgICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvTG9hZFVSTCh7
bm9yYW5nZTogdHJ1ZSwgbm9hY2NlcHQ6IHRydWUsIGNodW5rZWQ6IHRydWV9KTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKHZpZGVvLnNyYyk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5
Jyk7CisgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIGVuZFRlc3QpOworICAgICAgICAg
ICAgdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8t
cmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLW5vLXJhbmdlLXN1cHBvcnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM4YjI5MGQ4YTljNmMxMTJlNTE3NmVlOGFiYzYzMTY5MjY0MTE2ZTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3Bv
bnNlLW5vLXJhbmdlLXN1cHBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAoraHR0cDov
LzEyNy4wLjAuMTo4MDAwL21lZGlhL3ZpZGVvLXJlc3BvbnNlLmNnaT8mbm9yYW5nZT0xJm5vYWNj
ZXB0PTEKK0VWRU5UKGNhbnBsYXkpCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VWRU5UKHBsYXlp
bmcpCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXJlc3BvbnNlLW5vLXJhbmdlLXN1cHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Utbm8tcmFuZ2Utc3VwcG9ydC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIwMjhiYWFjMTcxODVkZDFjYzU5MTc1YWEwOGQyYzQ4YzE2NGM2NzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLW5v
LXJhbmdlLXN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InZpZGVvLXJlc3BvbnNlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnQoKSI+Cis8dmlkZW8gY29udHJvbHM+PC92
aWRlbz4KKzxzY3JpcHQ+CisgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgZnVuY3Rpb24g
c3RhcnQoKSB7CisgICAgICAgIC8vIFNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHJhbmdlIHJlcXVl
c3RzLgorICAgICAgICB2aWRlby5zcmMgPSBnZXRWaWRlb0xvYWRVUkwoe25vcmFuZ2U6IHRydWUs
IG5vYWNjZXB0OiB0cnVlfSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSh2aWRlby5zcmMpOworCisg
ICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheScpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Nh
bnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3Bs
YXlpbmcnLCBlbmRUZXN0KTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfSk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLXJhbmdlLXJldHVybnMtMjAwLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2Ut
cmFuZ2UtcmV0dXJucy0yMDAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlM2Q1NjVjYTM3ZDg1
MGQzZTRlMzhmZDY3ZTQyMGVlZjQwMTEyYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLXJhbmdlLXJldHVybnMtMjAwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9tZWRpYS92aWRl
by1yZXNwb25zZS5jZ2k/JnJldHVybjIwMD0xCitFVkVOVChjYW5wbGF5KQorRVZFTlQoY2FucGxh
eXRocm91Z2gpCitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1yYW5nZS1yZXR1cm5zLTIw
MC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS1yYW5n
ZS1yZXR1cm5zLTIwMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNTk3ZDRlZTRlMjA0YmY5YzBlNjEzMWUx
MTcwMWYyZTg1YjJhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3ZpZGVvLXJlc3BvbnNlLXJhbmdlLXJldHVybnMtMjAwLmh0bWwKQEAgLTAsMCArMSwy
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ2
aWRlby1yZXNwb25zZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0
KCkiPgorPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8c2NyaXB0PgorICAgIGZpbmRNZWRpYUVs
ZW1lbnQoKTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAvLyBTaW11bGF0ZSBB
cGFjaGUgMi4yLjIwIGJlaGF2aW91ciB3aGVyZSBhICJSYW5nZTogYnl0ZXM9MC0iIHJlcXVlc3Qg
cmV0dXJucyBhIDIwMCByZXNwb25zZS4KKyAgICAgICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9Mb2Fk
VVJMKHtyZXR1cm4yMDA6IHRydWV9KTsKKyAgICAgICAgY29uc29sZVdyaXRlKHZpZGVvLnNyYyk7
CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5Jyk7CisgICAgICAgIHdhaXRGb3JFdmVu
dCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVu
dCgncGxheWluZycsIGVuZFRlc3QpOworICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAg
ICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UuY2dpIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVjNWFj
ZmI5NTljYTZmOTg3NDBkNDIzNWRlY2E5NTMxYjUwNWJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UuY2dpCkBAIC0wLDAgKzEs
NzUgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCit1c2Ugc3RyaWN0OworCit1c2UgQ0dJOwordXNl
IFdhdjsKKworbXkgJHF1ZXJ5ID0gbmV3IENHSTsKK215ICR3YXYgPSBuZXcgV2F2KDYwICogMTAp
OworCisjIFVzZSBjaHVua2VkIHRyYW5zZmVycy4KK215ICRjaHVua2VkID0gJHF1ZXJ5LT5wYXJh
bSgnY2h1bmtlZCcpOworCisjIERpc2FibGUgcmFuZ2UgcmVxdWVzdCBzdXBwb3J0LgorbXkgJG5v
cmFuZ2UgPSAkcXVlcnktPnBhcmFtKCdub3JhbmdlJyk7CisKKyMgRG8gbm90IHJldHVybiBhICJB
Y2NlcHQtUmFuZ2VzOiBieXRlcyIgaGVhZGVyLgorbXkgJG5vYWNjZXB0ID0gJHF1ZXJ5LT5wYXJh
bSgnbm9hY2NlcHQnKTsKKworIyBSZXR1cm4gMjAwIGZvciAiUmFuZ2U6IGJ5dGVzPTAtIiByZXF1
ZXN0cy4KKyMKKyMgQXBhY2hlIDIuMi4yMCBub3cgcmV0dXJucyBhIDIwMCBpbiByZXNwb25zZSB0
byBhICJSYW5nZTogYnl0ZXM9MC0iIHJlcXVlc3QuCisjIENsaWVudHMgc2hvdWxkIHJlbHkgb24g
cHJlc2VuY2Ugb2YgIkFjY2VwdC1SYW5nZXM6IGJ5dGVzIiBoZWFkZXIgaW5zdGVhZCBvZiBwcm9i
aW5nIGZvciBhIDIwNiByZXNwb25zZS4KKyMKKyMgUmVmZXIgdG8gdGhlIGZvbGxvd2luZyBodHRw
ZC1kZXYgZGlzY3Vzc2lvbjoKKyMgaHR0cDovL21haWwtYXJjaGl2ZXMuYXBhY2hlLm9yZy9tb2Rf
bWJveC9odHRwZC1kZXYvMjAxMTA5Lm1ib3gvJTNDOUYxMjEwQTktM0I4MC00OEQxLUI5NDAtNzM2
Q0E1Q0RGMUI0QGdiaXYuY29tJTNFCitteSAkcmV0dXJuMjAwID0gJHF1ZXJ5LT5wYXJhbSgncmV0
dXJuMjAwJyk7CisKKyMgU3RhcnQgYnl0ZSAoaW5jbHVzaXZlKSBhbmQgZW5kIGJ5dGUgKGV4Y2x1
c2l2ZSkgdG8gdHJhbnNtaXQuCitteSAkc3RhcnRCeXRlOworbXkgJGVuZEJ5dGU7CisKKyMgSGFu
ZGxlIEhUVFAgcmFuZ2UgcmVxdWVzdHMgYnkgcGFyc2luZyAiUmFuZ2U6IGJ5dGVzPU4tTSIgaGVh
ZGVycy4KK2lmICghJG5vcmFuZ2UgYW5kICRFTlZ7J0hUVFBfUkFOR0UnfSA9fiAvXmJ5dGVzPShc
ZCspLShcZCspJC8pIHsKKyAgICAkc3RhcnRCeXRlID0gJDE7CisgICAgJGVuZEJ5dGUgPSAkMiAr
IDE7CisKKyAgICBwcmludCAiU3RhdHVzOiAyMDYgUGFydGlhbCBDb250ZW50XG4iOworICAgIHBy
aW50ICJDb250ZW50LVJhbmdlOiBieXRlcyAiIC4gJHN0YXJ0Qnl0ZSAuICItIiAuICgkZW5kQnl0
ZSAtIDEpIC4gIi8iIC4gJHdhdi0+c2l6ZSgpIC4gIlxuIjsKKyAgICBpZiAoISRjaHVua2VkKSB7
CisgICAgICAgIHByaW50ICJDb250ZW50LUxlbmd0aDogIiAuICgkZW5kQnl0ZSAtICRzdGFydEJ5
dGUpIC4gIlxuIjsKKyAgICB9CisKKyMgSGFuZGxlICJSYW5nZTogYnl0ZXM9Ti0iIHJlcXVlc3Rz
LCBidXQgc3BlY2lhbCBjYXNlICJSYW5nZTogYnl0ZXM9MC0iIHJlcXVlc3RzIHRvCisjIHJldHVy
biBhIDIwMCByZXNwb25zZSBpZiAkcmV0dXJuMjAwIGlzIHRydWUuCit9IGVsc2lmICghJG5vcmFu
Z2UgYW5kICRFTlZ7J0hUVFBfUkFOR0UnfSA9fiAvXmJ5dGVzPShcZCspLSQvIGFuZCAhKCRyZXR1
cm4yMDAgYW5kICQxID09IDApKSB7CisgICAgJHN0YXJ0Qnl0ZSA9ICQxOworICAgICRlbmRCeXRl
ID0gJHdhdi0+c2l6ZSgpOworCisgICAgcHJpbnQgIlN0YXR1czogMjA2IFBhcnRpYWwgQ29udGVu
dFxuIjsKKyAgICBwcmludCAiQ29udGVudC1SYW5nZTogYnl0ZXMgIiAuICRzdGFydEJ5dGUgLiAi
LSIgLiAoJGVuZEJ5dGUgLSAxKSAuICIvIiAuICR3YXYtPnNpemUoKSAuICJcbiI7CisgICAgaWYg
KCEkY2h1bmtlZCkgeworICAgICAgICBwcmludCAiQ29udGVudC1MZW5ndGg6ICIgLiAoJGVuZEJ5
dGUgLSAkc3RhcnRCeXRlKSAuICJcbiI7CisgICAgfQorCisjIFJldHVybiBhIDIwMCByZXNwb25z
ZSBpbiBhbGwgb3RoZXIgY2FzZXMuCit9IGVsc2UgeworICAgICRzdGFydEJ5dGUgPSAwOworICAg
ICRlbmRCeXRlID0gJHdhdi0+c2l6ZSgpOworCisgICAgcHJpbnQgIlN0YXR1czogMjAwIE9LXG4i
OworICAgIGlmICghJGNodW5rZWQpIHsKKyAgICAgICAgcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAi
IC4gKCRlbmRCeXRlIC0gJHN0YXJ0Qnl0ZSkgLiAiXG4iOworICAgIH0KK30KKworaWYgKCEkbm9h
Y2NlcHQpIHsKKyAgICBwcmludCAiQWNjZXB0LVJhbmdlczogYnl0ZXNcbiI7Cit9CisKK3ByaW50
ICJDb250ZW50LVR5cGU6IGF1ZGlvL3dhdlxuIjsKK3ByaW50ICJDb25uZWN0aW9uOiBjbG9zZVxu
IjsKK3ByaW50ICJcbiI7CisKKyR3YXYtPnByaW50KCRzdGFydEJ5dGUsICRlbmRCeXRlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NWY5NTI3YThlNWJmYTE2NDQwNDgwNGE1NTZjZGI3NjViOGUxMTFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZXNwb25zZS5o
dG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0idmlkZW8tcmVzcG9uc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJzdGFydCgpIj4KKzx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorPHNjcmlwdD4K
KyAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAg
ICAgLy8gUmVndWxhciBzZXJ2ZXIgdGhhdCBzdXBwb3J0cyByYW5nZSByZXF1ZXN0cy4KKyAgICAg
ICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9Mb2FkVVJMKHt9KTsKKyAgICAgICAgY29uc29sZVdyaXRl
KHZpZGVvLnNyYyk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5Jyk7CisgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgncGxheWluZycsIGVuZFRlc3QpOworICAgICAgICAgICAgdmlkZW8ucGxh
eSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVzcG9uc2UuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIzOWNjODQ2ZTBiNzZjMDllMmRlZjRkYmQ5MjQ5M2FhOTU2OTg5MTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlc3BvbnNlLmpzCkBA
IC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGdldFZpZGVvTG9hZFVSTChvcHRpb25zKSB7CisgICAg
dmFyIHVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvdmlkZW8tcmVzcG9uc2UuY2dp
PyI7CisgICAgaWYgKG9wdGlvbnMuY2h1bmtlZCkgeworICAgICAgICB1cmwgKz0gIiZjaHVua2Vk
PTEiOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5ub3JhbmdlKSB7CisgICAgICAgIHVybCArPSAi
Jm5vcmFuZ2U9MSI7CisgICAgfQorICAgIGlmIChvcHRpb25zLm5vYWNjZXB0KSB7CisgICAgICAg
IHVybCArPSAiJm5vYWNjZXB0PTEiOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5yZXR1cm4yMDAp
IHsKKyAgICAgICAgdXJsICs9ICImcmV0dXJuMjAwPTEiOworICAgIH0KKyAgICByZXR1cm4gdXJs
OworfQo=
</data>
<flag name="review"
          id="143492"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>