<?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>151716</bug_id>
          
          <creation_ts>2015-12-01 12:53:22 -0800</creation_ts>
          <short_desc>Add a new graphics test for CanvasRenderingContext2D functions: getImageData and putImageData</short_desc>
          <delta_ts>2016-02-05 22:21:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>kgraff</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145333</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-12-01 12:53:22 -0800</bug_when>
    <thetext>This test should be used for measuring the performance of these two functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145350</commentid>
    <comment_count>1</comment_count>
      <attachid>266383</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-12-01 13:13:55 -0800</bug_when>
    <thetext>Created attachment 266383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145463</commentid>
    <comment_count>2</comment_count>
      <attachid>266413</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-12-01 17:00:26 -0800</bug_when>
    <thetext>Created attachment 266413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145477</commentid>
    <comment_count>3</comment_count>
      <attachid>266416</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-12-01 17:28:58 -0800</bug_when>
    <thetext>Created attachment 266416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145478</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-12-01 17:31:31 -0800</bug_when>
    <thetext>Running this test on the same hardware gives the following results:

Safari: 241.20
Chrome: 42.19
FireFox: 1412.88

I need to investigate why WebKit is much slower than FireFox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162572</commentid>
    <comment_count>5</comment_count>
      <attachid>270788</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-05 21:23:41 -0800</bug_when>
    <thetext>Created attachment 270788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162573</commentid>
    <comment_count>6</comment_count>
      <attachid>270788</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-05 22:21:42 -0800</bug_when>
    <thetext>Comment on attachment 270788
Patch

Clearing flags on attachment: 270788

Committed r196211: &lt;http://trac.webkit.org/changeset/196211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162574</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-05 22:21:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>266383</attachid>
            <date>2015-12-01 13:13:55 -0800</date>
            <delta_ts>2015-12-01 13:27:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151716-20151201131331.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266413</attachid>
            <date>2015-12-01 17:00:26 -0800</date>
            <delta_ts>2015-12-01 17:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151716-20151201170003.patch</filename>
            <type>text/plain</type>
            <size>9794</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI5MjgpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE1LTEyLTAxICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGEgbmV3IGdyYXBoaWNzIHRlc3QgZm9yIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBmdW5jdGlv
bnM6IGdldEltYWdlRGF0YSBhbmQgcHV0SW1hZ2VEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIHRlc3QgaXMgdG8g
bWVhc3VyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZ2V0SW1hZ2VEYXRhCisgICAgICAgIGFuZCBwdXRJ
bWFnZURhdGEgZnVuY3Rpb25zLiBUaGlzIHRlc3QgZHJhd3MgYSBiYWNrZ3JvdW5kIG9uIHRoZSBj
YW52YXMKKyAgICAgICAgYW5kIHRoZW4gZ2V0cyBzb21lIHJhbmRvbSB0aWxlcyBmcm9tIHRoaXMg
YmFja2dyb3VuZCBhbmQgZHJhdyB0aGVtIGluCisgICAgICAgIGRlc3RpbmF0aW9ucyBkaWZmZXJl
bnQgZnJvbSB0aGVpciBvcmlnaW5hbCBzb3VyY2VzLgorCisgICAgICAgICogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzOgorICAgICAgICAoQXJyYXkucHJvdG90eXBlLnNodWZmbGUp
OiBTaHVmZmxlcyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkuCisKKyAgICAgICAgKiBBbmltb21l
dGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoUG9pbnQuemVybyk6IFJldHVy
bnMgYSBuZXcgUG9pbnQgb2JqZWN0IHdob3NlIHggYW5kIHkgYXJlIGVxdWFsIHplcm8uCisgICAg
ICAgIChQb2ludC5wcm90b3R5cGUuc3RyKTogVXNlZCBmb3IgZGVidWdnaW5nIHRoZSBQb2ludCBv
YmplY3QuCisgICAgICAgIAorICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy90
ZXN0cy5qczogQWRkaW5nIHRoZSBuZXcgdGVzdCB0byB0aGUgY2FudmFzIHNpbXBsZSB0ZXN0cyBz
dWl0ZS4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy90aWxl
ZC1jYW52YXMtaW1hZ2UuanM6IEFkZGVkLgorICAgICAgICAoQ2FudmFzSW1hZ2VUaWxlKToKKyAg
ICAgICAgKENhbnZhc0ltYWdlVGlsZS5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhKTogQ2FsbGVkIGFm
dGVyIGRyYXdpbmcgdGhlIGJhY2tncm91bmQgYW5kIGJlZm9yZSBkcmF3aW5nIGFueSB0aWxlLgor
ICAgICAgICAoQ2FudmFzSW1hZ2VUaWxlLnByb3RvdHlwZS5wdXRJbWFnZURhdGEpOiBDYWxsZWQg
YWZ0ZXIgZ2V0dGluZyB0aGUgaW1hZ2VzIGRhdGEgZm9yIGFsbCB0aGUgdGlsZXMuCisgICAgICAg
IChUaWxlZENhbnZhc0ltYWdlU3RhZ2UpOgorICAgICAgICAoVGlsZWRDYW52YXNJbWFnZVN0YWdl
LnByb3RvdHlwZS5fbmV4dFRpbGVQb3NpdGlvbik6CisgICAgICAgIChUaWxlZENhbnZhc0ltYWdl
U3RhZ2UucHJvdG90eXBlLnR1bmUpOgorICAgICAgICAoVGlsZWRDYW52YXNJbWFnZVN0YWdlLnBy
b3RvdHlwZS5hbmltYXRlKToKKyAgICAgICAgKFRpbGVkQ2FudmFzSW1hZ2VBbmltYXRvcik6Cisg
ICAgICAgIChUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3IucHJvdG90eXBlLl9kcmF3QmFja2dyb3Vu
ZCk6CisgICAgICAgIChUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3IucHJvdG90eXBlLmFuaW1hdGUp
OiByYXdzIHRoZSBiYWNrZ3JvdW5kIGltYWdlIGFuZCBjYWxsIHRoZSBiYXNlIGNsYXNzIGFuaW1h
dGUoKSBtZXRob2QuCisgICAgICAgIChUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJrKToKKyAgICAg
ICAgKFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZVN0YWdlKToKKyAg
ICAgICAgKFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZUFuaW1hdG9y
KToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDbGllbnQuY3JlYXRlKToKKyAgICAgICAgKiBB
bmltb21ldGVyL3Rlc3RzL3NpbXBsZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbDogQWRkZWQuCisK
IDIwMTUtMTEtMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggdGhlIGdyYXBoaWNzIGJlbmNobWFyayBjb21wbGV4aXR5IGJvdW5kcyBh
ZGp1c3RtZW50CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL2FsZ29yaXRobS5qcwkocmV2aXNpb24gMTkyODM2KQorKysgUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9hbGdvcml0aG0uanMJKHdvcmtpbmcgY29weSkKQEAgLTYs
NiArNiwxNSBAQCBBcnJheS5wcm90b3R5cGUuc3dhcCA9IGZ1bmN0aW9uKGksIGopCiAgICAgcmV0
dXJuIHRoaXM7CiB9CiAKK0FycmF5LnByb3RvdHlwZS5zaHVmZmxlID0gZnVuY3Rpb24oKQorewor
ICAgIGZvciAodmFyIGluZGV4ID0gdGhpcy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyAtLWluZGV4
KSB7CisgICAgICAgIHZhciByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAq
IChpbmRleCArIDEpKTsKKyAgICAgICAgdGhpcy5zd2FwKGluZGV4LCByYW5kb21JbmRleCk7Cisg
ICAgfQorICAgIHJldHVybiB0aGlzOworfQorCiBmdW5jdGlvbiBIZWFwKG1heFNpemUsIGNvbXBh
cmUpCiB7CiAgICAgdGhpcy5fbWF4U2l6ZSA9IG1heFNpemU7CkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCShyZXZpc2lv
biAxOTI4MzYpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVu
c2lvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCwxMSBAQCBmdW5jdGlvbiBQb2ludCh4
LCB5KQogICAgIHRoaXMueSA9IHk7CiB9CiAKK1BvaW50Lnplcm8gPSBmdW5jdGlvbigpCit7Cisg
ICAgcmV0dXJuIG5ldyBQb2ludCgwLCAwKTsKK30KKwogUG9pbnQucG9pbnRPbkNpcmNsZSA9IGZ1
bmN0aW9uKGFuZ2xlLCByYWRpdXMpCiB7CiAgICAgcmV0dXJuIG5ldyBQb2ludChyYWRpdXMgKiBN
YXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSk7CkBAIC0zOSw2ICs0NCwx
MSBAQCBQb2ludC5wcm90b3R5cGUgPQogICAgICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCAv
IDIsIHRoaXMueSAvIDIpOwogICAgIH0sCiAgICAgCisgICAgc3RyOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gInggPSAiICsgdGhpcy54ICsgIiwgeSA9ICIgKyB0aGlzLnk7Cisg
ICAgfSwKKyAgICAKICAgICBhZGQ6IGZ1bmN0aW9uKG90aGVyKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG5ldyBQb2ludCh0aGlzLnggKyBvdGhlci54LCB0aGlzLnkgKyBvdGhlci55KTsKSW5kZXg6
IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL3Rlc3RzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2Vz
L3Rlc3RzLmpzCShyZXZpc2lvbiAxOTI4MzYpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcnVubmVyL3Jlc291cmNlcy90ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjE5LDcgKzIx
OSwxMSBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkJhc2ljIGNhbnZhcyBwYXRoCiAgICAgICAg
IHsKICAgICAgICAgICAgIHVybDogInNpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWw/cGF0
aFR5cGU9cmVjdEZpbGwiLAogICAgICAgICAgICAgbmFtZTogIkNhbnZhcyByZWN0cywgZmlsbCIK
LSAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICJzaW1w
bGUvdGlsZWQtY2FudmFzLWltYWdlLmh0bWwiLAorICAgICAgICAgICAgbmFtZTogIkNhbnZhcyBw
dXQvZ2V0IGltYWdlIGRhdGEiCisgICAgICAgIH0sCiAgICAgXQogKSk7CiAKSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvdGlsZWQtY2FudmFzLWltYWdlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBs
ZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvdGlsZWQtY2FudmFzLWltYWdlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Jl
c291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0
cmluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc2Ft
cGxlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRl
bnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGgu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc3RhZ2UuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGlsZWQtY2FudmFzLWltYWdlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9z
aW1wbGUvcmVzb3VyY2VzL3RpbGVkLWNhbnZhcy1pbWFnZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy90aWxlZC1jYW52
YXMtaW1hZ2UuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
dGVzdHMvc2ltcGxlL3Jlc291cmNlcy90aWxlZC1jYW52YXMtaW1hZ2UuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMjkgQEAKK2Z1bmN0aW9uIENhbnZhc0ltYWdlVGlsZShzdGFnZSwgc291
cmNlKQoreworICAgIHRoaXMuX2NvbnRleHQgPSBzdGFnZS5jb250ZXh0OworICAgIHRoaXMuX3Np
emUgPSBzdGFnZS50aWxlU2l6ZTsKKyAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKK30KKworQ2Fu
dmFzSW1hZ2VUaWxlLnByb3RvdHlwZS5nZXRJbWFnZURhdGEgPSBmdW5jdGlvbigpCit7CisgICAg
dGhpcy5faW1hZ2VkYXRhID0gdGhpcy5fY29udGV4dC5nZXRJbWFnZURhdGEodGhpcy5zb3VyY2Uu
eCwgdGhpcy5zb3VyY2UueSwgdGhpcy5fc2l6ZS53aWR0aCwgdGhpcy5fc2l6ZS5oZWlnaHQpOwor
fQorCitDYW52YXNJbWFnZVRpbGUucHJvdG90eXBlLnB1dEltYWdlRGF0YSA9IGZ1bmN0aW9uKGRl
c3RpbmF0aW9uKQoreworICAgIHRoaXMuX2NvbnRleHQucHV0SW1hZ2VEYXRhKHRoaXMuX2ltYWdl
ZGF0YSwgZGVzdGluYXRpb24ueCwgZGVzdGluYXRpb24ueSk7Cit9CisKK2Z1bmN0aW9uIFRpbGVk
Q2FudmFzSW1hZ2VTdGFnZShlbGVtZW50LCBvcHRpb25zKQoreworICAgIFN0YWdlLmNhbGwodGhp
cywgZWxlbWVudCwgb3B0aW9ucyk7ICAgIAorICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVu
dC5nZXRDb250ZXh0KCIyZCIpOworICAgIAorICAgIGNvbnN0IG1heFRpbGVzUGVyUm93ID0gMTA7
CisgICAgY29uc3QgbWF4VGlsZXNQZXJDb2wgPSAxMDsKKyAgICAKKyAgICB0aGlzLnRpbGVTaXpl
ID0gdGhpcy5fc2l6ZS5tdWx0aXBseShuZXcgUG9pbnQoMSAvIG1heFRpbGVzUGVyUm93LCAxIC8g
bWF4VGlsZXNQZXJDb2wpKTsKKyAgICAKKyAgICB0aGlzLl90aWxlcyA9IG5ldyBBcnJheShtYXhU
aWxlc1BlclJvdyAqIG1heFRpbGVzUGVyQ29sKTsKKyAgICAKKyAgICB2YXIgc291cmNlID0gUG9p
bnQuemVybygpOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl90aWxlcy5s
ZW5ndGg7ICsraW5kZXgpIHsKKyAgICAgICAgdGhpcy5fdGlsZXNbaW5kZXhdID0gbmV3IENhbnZh
c0ltYWdlVGlsZSh0aGlzLCBzb3VyY2UpOworICAgICAgICBzb3VyY2UgPSB0aGlzLl9uZXh0VGls
ZVBvc2l0aW9uKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIHRoaXMuX2N0aWxlcyA9IDA7Cit9
CisKK1RpbGVkQ2FudmFzSW1hZ2VTdGFnZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN0YWdl
LnByb3RvdHlwZSk7CitUaWxlZENhbnZhc0ltYWdlU3RhZ2UucHJvdG90eXBlLmNvbnN0cnVjdG9y
ID0gVGlsZWRDYW52YXNJbWFnZVN0YWdlOworCitUaWxlZENhbnZhc0ltYWdlU3RhZ2UucHJvdG90
eXBlLl9uZXh0VGlsZVBvc2l0aW9uID0gZnVuY3Rpb24oZGVzdGluYXRpb24pCit7CisgICAgdmFy
IG5leHQgPSBkZXN0aW5hdGlvbi5hZGQodGhpcy50aWxlU2l6ZSk7CisgICAgCisgICAgaWYgKG5l
eHQueCA+PSB0aGlzLl9zaXplLndpZHRoKQorICAgICAgICByZXR1cm4gbmV3IFBvaW50KDAsIG5l
eHQueSA+PSB0aGlzLl9zaXplLmhlaWdodCA/IDAgOiBuZXh0LnkpOworCisgICAgcmV0dXJuIG5l
dyBQb2ludChuZXh0LngsIGRlc3RpbmF0aW9uLnkpOworfQorCitUaWxlZENhbnZhc0ltYWdlU3Rh
Z2UucHJvdG90eXBlLnR1bmUgPSBmdW5jdGlvbihjb3VudCkKK3sKKyAgICB0aGlzLl9jdGlsZXMg
Kz0gY291bnQ7CisKKyAgICB0aGlzLl9jdGlsZXMgPSBNYXRoLm1heCh0aGlzLl9jdGlsZXMsIDAp
OyAgICAKKyAgICB0aGlzLl9jdGlsZXMgPSBNYXRoLm1pbih0aGlzLl9jdGlsZXMsIHRoaXMuX3Rp
bGVzLmxlbmd0aCk7CisKKyAgICByZXR1cm4gdGhpcy5fY3RpbGVzOworfQorCitUaWxlZENhbnZh
c0ltYWdlU3RhZ2UucHJvdG90eXBlLmFuaW1hdGUgPSBmdW5jdGlvbih0aW1lRGVsdGEpCit7Cisg
ICAgaWYgKCF0aGlzLl9jdGlsZXMpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgdGhp
cy5fdGlsZXMuc2h1ZmZsZSgpOworCisgICAgdmFyIGRlc3RpbmF0aW9ucyA9IG5ldyBBcnJheSh0
aGlzLl9jdGlsZXMpOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9jdGls
ZXM7ICsraW5kZXgpIHsKKyAgICAgICAgdGhpcy5fdGlsZXNbaW5kZXhdLmdldEltYWdlRGF0YSgp
OworICAgICAgICBkZXN0aW5hdGlvbnNbaW5kZXhdID0gdGhpcy5fdGlsZXNbaW5kZXhdLnNvdXJj
ZTsKKyAgICB9CisgICAgCisgICAgZGVzdGluYXRpb25zLnNodWZmbGUoKTsKKworICAgIGZvciAo
dmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9jdGlsZXM7ICsraW5kZXgpCisgICAgICAgIHRo
aXMuX3RpbGVzW2luZGV4XS5wdXRJbWFnZURhdGEoZGVzdGluYXRpb25zW2luZGV4XSk7Cit9CisK
K2Z1bmN0aW9uIFRpbGVkQ2FudmFzSW1hZ2VBbmltYXRvcihiZW5jaG1hcmssIG9wdGlvbnMpCit7
CisgICAgQW5pbWF0b3IuY2FsbCh0aGlzLCBiZW5jaG1hcmssIG9wdGlvbnMpOworICAgIHRoaXMu
X2NvbnRleHQgPSBiZW5jaG1hcmsuX3N0YWdlLmNvbnRleHQ7Cit9CisKK1RpbGVkQ2FudmFzSW1h
Z2VBbmltYXRvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN0YWdlQW5pbWF0b3IucHJvdG90
eXBlKTsKK1RpbGVkQ2FudmFzSW1hZ2VBbmltYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBU
aWxlZENhbnZhc0ltYWdlQW5pbWF0b3I7CisKK1RpbGVkQ2FudmFzSW1hZ2VBbmltYXRvci5wcm90
b3R5cGUuX2RyYXdCYWNrZ3JvdW5kID0gZnVuY3Rpb24oKQoreworICAgIHZhciBzaXplID0gdGhp
cy5fYmVuY2htYXJrLl9zdGFnZS5zaXplOworICAgIHZhciBncmFkaWVudCA9IHRoaXMuX2NvbnRl
eHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgc2l6ZS53aWR0aCwgMCk7CisgICAgZ3JhZGll
bnQuYWRkQ29sb3JTdG9wKDAsICJibHVlIik7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEs
ICJ3aGl0ZSIpOworICAgIHRoaXMuX2NvbnRleHQuc2F2ZSgpOworICAgICAgICB0aGlzLl9jb250
ZXh0LmZpbGxTdHlsZSA9IGdyYWRpZW50OworICAgICAgICB0aGlzLl9jb250ZXh0LmZpbGxSZWN0
KDAsIDAsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsKKyAgICB0aGlzLl9jb250ZXh0LnJlc3Rv
cmUoKTsKK30gICAKKworVGlsZWRDYW52YXNJbWFnZUFuaW1hdG9yLnByb3RvdHlwZS5hbmltYXRl
ID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMuX2RyYXdCYWNrZ3JvdW5kKCk7CisgICAgcmV0dXJu
IFN0YWdlQW5pbWF0b3IucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzKTsKK30KKworZnVuY3Rp
b24gVGlsZWRDYW52YXNJbWFnZUJlbmNobWFyayhzdWl0ZSwgdGVzdCwgb3B0aW9ucywgcmVjb3Jk
VGFibGUsIHByb2dyZXNzQmFyKQoreworICAgIFN0YWdlQmVuY2htYXJrLmNhbGwodGhpcywgc3Vp
dGUsIHRlc3QsIG9wdGlvbnMsIHJlY29yZFRhYmxlLCBwcm9ncmVzc0Jhcik7Cit9CisKK1RpbGVk
Q2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdGFnZUJlbmNo
bWFyay5wcm90b3R5cGUpOworVGlsZWRDYW52YXNJbWFnZUJlbmNobWFyay5wcm90b3R5cGUuY29u
c3RydWN0b3IgPSBUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJrOworCitUaWxlZENhbnZhc0ltYWdl
QmVuY2htYXJrLnByb3RvdHlwZS5jcmVhdGVTdGFnZSA9IGZ1bmN0aW9uKGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBUaWxlZENhbnZhc0ltYWdlU3RhZ2UoZWxlbWVudCwgdGhpcy5fb3B0aW9u
cyk7Cit9CisKK1RpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZUFuaW1h
dG9yID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiBuZXcgVGlsZWRDYW52YXNJbWFnZUFuaW1h
dG9yKHRoaXMsIHRoaXMuX29wdGlvbnMpOworfQorCit3aW5kb3cuYmVuY2htYXJrQ2xpZW50LmNy
ZWF0ZSA9IGZ1bmN0aW9uKHN1aXRlLCB0ZXN0LCBvcHRpb25zLCByZWNvcmRUYWJsZSwgcHJvZ3Jl
c3NCYXIpCit7CisgICAgcmV0dXJuIG5ldyBUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJrKHN1aXRl
LCB0ZXN0LCBvcHRpb25zLCByZWNvcmRUYWJsZSwgcHJvZ3Jlc3NCYXIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266416</attachid>
            <date>2015-12-01 17:28:58 -0800</date>
            <delta_ts>2016-02-05 21:23:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151716-20151201172835.patch</filename>
            <type>text/plain</type>
            <size>9922</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI5MjgpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE1LTEyLTAxICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGEgbmV3IGdyYXBoaWNzIHRlc3QgZm9yIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBmdW5jdGlv
bnM6IGdldEltYWdlRGF0YSBhbmQgcHV0SW1hZ2VEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIHRlc3QgaXMgdG8g
bWVhc3VyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZ2V0SW1hZ2VEYXRhCisgICAgICAgIGFuZCBwdXRJ
bWFnZURhdGEgZnVuY3Rpb25zLiBUaGlzIHRlc3QgZHJhd3MgYSBiYWNrZ3JvdW5kIG9uIHRoZSBj
YW52YXMKKyAgICAgICAgYW5kIHRoZW4gZ2V0cyBzb21lIHJhbmRvbSB0aWxlcyBmcm9tIHRoaXMg
YmFja2dyb3VuZCBhbmQgZHJhdyB0aGVtIGluCisgICAgICAgIGRlc3RpbmF0aW9ucyBkaWZmZXJl
bnQgZnJvbSB0aGVpciBvcmlnaW5hbCBzb3VyY2VzLgorCisgICAgICAgICogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzOgorICAgICAgICAoQXJyYXkucHJvdG90eXBlLnNodWZmbGUp
OiBTaHVmZmxlcyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkuCisKKyAgICAgICAgKiBBbmltb21l
dGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoUG9pbnQuemVybyk6IFJldHVy
bnMgYSBuZXcgUG9pbnQgb2JqZWN0IHdob3NlIHggYW5kIHkgYXJlIGVxdWFsIHplcm8uCisgICAg
ICAgIChQb2ludC5wcm90b3R5cGUuc3RyKTogVXNlZCBmb3IgZGVidWdnaW5nIHRoZSBQb2ludCBv
YmplY3QuCisgICAgICAgIAorICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy90
ZXN0cy5qczogQWRkaW5nIHRoZSBuZXcgdGVzdCB0byB0aGUgY2FudmFzIHNpbXBsZSB0ZXN0cyBz
dWl0ZS4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy90aWxl
ZC1jYW52YXMtaW1hZ2UuanM6IEFkZGVkLgorICAgICAgICAoQ2FudmFzSW1hZ2VUaWxlKToKKyAg
ICAgICAgKENhbnZhc0ltYWdlVGlsZS5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhKTogQ2FsbGVkIGFm
dGVyIGRyYXdpbmcgdGhlIGJhY2tncm91bmQgYW5kIGJlZm9yZSBkcmF3aW5nIGFueSB0aWxlLgor
ICAgICAgICAoQ2FudmFzSW1hZ2VUaWxlLnByb3RvdHlwZS5wdXRJbWFnZURhdGEpOiBDYWxsZWQg
YWZ0ZXIgZ2V0dGluZyB0aGUgaW1hZ2VzIGRhdGEgZm9yIGFsbCB0aGUgdGlsZXMuCisgICAgICAg
IChUaWxlZENhbnZhc0ltYWdlU3RhZ2UpOgorICAgICAgICAoVGlsZWRDYW52YXNJbWFnZVN0YWdl
LnByb3RvdHlwZS5fbmV4dFRpbGVQb3NpdGlvbik6CisgICAgICAgIChUaWxlZENhbnZhc0ltYWdl
U3RhZ2UucHJvdG90eXBlLnR1bmUpOgorICAgICAgICAoVGlsZWRDYW52YXNJbWFnZVN0YWdlLnBy
b3RvdHlwZS5hbmltYXRlKToKKyAgICAgICAgKFRpbGVkQ2FudmFzSW1hZ2VBbmltYXRvcik6Cisg
ICAgICAgIChUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3IucHJvdG90eXBlLl9kcmF3QmFja2dyb3Vu
ZCk6CisgICAgICAgIChUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3IucHJvdG90eXBlLmFuaW1hdGUp
OiByYXdzIHRoZSBiYWNrZ3JvdW5kIGltYWdlIGFuZCBjYWxsIHRoZSBiYXNlIGNsYXNzIGFuaW1h
dGUoKSBtZXRob2QuCisgICAgICAgIChUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJrKToKKyAgICAg
ICAgKFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZVN0YWdlKToKKyAg
ICAgICAgKFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZUFuaW1hdG9y
KToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDbGllbnQuY3JlYXRlKToKKyAgICAgICAgKiBB
bmltb21ldGVyL3Rlc3RzL3NpbXBsZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbDogQWRkZWQuCisK
IDIwMTUtMTEtMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggdGhlIGdyYXBoaWNzIGJlbmNobWFyayBjb21wbGV4aXR5IGJvdW5kcyBh
ZGp1c3RtZW50CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL2FsZ29yaXRobS5qcwkocmV2aXNpb24gMTkyODM2KQorKysgUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9hbGdvcml0aG0uanMJKHdvcmtpbmcgY29weSkKQEAgLTYs
NiArNiwxNSBAQCBBcnJheS5wcm90b3R5cGUuc3dhcCA9IGZ1bmN0aW9uKGksIGopCiAgICAgcmV0
dXJuIHRoaXM7CiB9CiAKK0FycmF5LnByb3RvdHlwZS5zaHVmZmxlID0gZnVuY3Rpb24oKQorewor
ICAgIGZvciAodmFyIGluZGV4ID0gdGhpcy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyAtLWluZGV4
KSB7CisgICAgICAgIHZhciByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAq
IChpbmRleCArIDEpKTsKKyAgICAgICAgdGhpcy5zd2FwKGluZGV4LCByYW5kb21JbmRleCk7Cisg
ICAgfQorICAgIHJldHVybiB0aGlzOworfQorCiBmdW5jdGlvbiBIZWFwKG1heFNpemUsIGNvbXBh
cmUpCiB7CiAgICAgdGhpcy5fbWF4U2l6ZSA9IG1heFNpemU7CkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCShyZXZpc2lv
biAxOTI4MzYpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVu
c2lvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCwxMSBAQCBmdW5jdGlvbiBQb2ludCh4
LCB5KQogICAgIHRoaXMueSA9IHk7CiB9CiAKK1BvaW50Lnplcm8gPSBmdW5jdGlvbigpCit7Cisg
ICAgcmV0dXJuIG5ldyBQb2ludCgwLCAwKTsKK30KKwogUG9pbnQucG9pbnRPbkNpcmNsZSA9IGZ1
bmN0aW9uKGFuZ2xlLCByYWRpdXMpCiB7CiAgICAgcmV0dXJuIG5ldyBQb2ludChyYWRpdXMgKiBN
YXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSk7CkBAIC0zOSw2ICs0NCwx
MSBAQCBQb2ludC5wcm90b3R5cGUgPQogICAgICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCAv
IDIsIHRoaXMueSAvIDIpOwogICAgIH0sCiAgICAgCisgICAgc3RyOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gInggPSAiICsgdGhpcy54ICsgIiwgeSA9ICIgKyB0aGlzLnk7Cisg
ICAgfSwKKyAgICAKICAgICBhZGQ6IGZ1bmN0aW9uKG90aGVyKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG5ldyBQb2ludCh0aGlzLnggKyBvdGhlci54LCB0aGlzLnkgKyBvdGhlci55KTsKSW5kZXg6
IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL3Rlc3RzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2Vz
L3Rlc3RzLmpzCShyZXZpc2lvbiAxOTI4MzYpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcnVubmVyL3Jlc291cmNlcy90ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjE5LDcgKzIx
OSwxMSBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkJhc2ljIGNhbnZhcyBwYXRoCiAgICAgICAg
IHsKICAgICAgICAgICAgIHVybDogInNpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWw/cGF0
aFR5cGU9cmVjdEZpbGwiLAogICAgICAgICAgICAgbmFtZTogIkNhbnZhcyByZWN0cywgZmlsbCIK
LSAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICJzaW1w
bGUvdGlsZWQtY2FudmFzLWltYWdlLmh0bWwiLAorICAgICAgICAgICAgbmFtZTogIkNhbnZhcyBw
dXQvZ2V0IGltYWdlIGRhdGEiCisgICAgICAgIH0sCiAgICAgXQogKSk7CiAKSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvdGlsZWQtY2FudmFzLWltYWdlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBs
ZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvdGlsZWQtY2FudmFzLWltYWdlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Jl
c291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0
cmluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc2Ft
cGxlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRl
bnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGgu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc3RhZ2UuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGlsZWQtY2FudmFzLWltYWdlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KKyAg
ICA8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KKyAgICAgICAgPGltZyBpZD0iYmFja2dyb3Vu
ZCIgc3JjPSJyZXNvdXJjZXMvWmVicmFzLmpwZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+
CisgICAgPC9kaXYKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3RpbGVkLWNhbnZhcy1pbWFnZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291
cmNlcy90aWxlZC1jYW52YXMtaW1hZ2UuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy90aWxlZC1jYW52YXMtaW1hZ2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjkgQEAKK2Z1bmN0aW9uIENhbnZhc0ltYWdl
VGlsZShzdGFnZSwgc291cmNlKQoreworICAgIHRoaXMuX2NvbnRleHQgPSBzdGFnZS5jb250ZXh0
OworICAgIHRoaXMuX3NpemUgPSBzdGFnZS50aWxlU2l6ZTsKKyAgICB0aGlzLnNvdXJjZSA9IHNv
dXJjZTsKK30KKworQ2FudmFzSW1hZ2VUaWxlLnByb3RvdHlwZS5nZXRJbWFnZURhdGEgPSBmdW5j
dGlvbigpCit7CisgICAgdGhpcy5faW1hZ2VkYXRhID0gdGhpcy5fY29udGV4dC5nZXRJbWFnZURh
dGEodGhpcy5zb3VyY2UueCwgdGhpcy5zb3VyY2UueSwgdGhpcy5fc2l6ZS53aWR0aCwgdGhpcy5f
c2l6ZS5oZWlnaHQpOworfQorCitDYW52YXNJbWFnZVRpbGUucHJvdG90eXBlLnB1dEltYWdlRGF0
YSA9IGZ1bmN0aW9uKGRlc3RpbmF0aW9uKQoreworICAgIHRoaXMuX2NvbnRleHQucHV0SW1hZ2VE
YXRhKHRoaXMuX2ltYWdlZGF0YSwgZGVzdGluYXRpb24ueCwgZGVzdGluYXRpb24ueSk7Cit9CisK
K2Z1bmN0aW9uIFRpbGVkQ2FudmFzSW1hZ2VTdGFnZShlbGVtZW50LCBvcHRpb25zKQoreworICAg
IFN0YWdlLmNhbGwodGhpcywgZWxlbWVudCwgb3B0aW9ucyk7ICAgIAorICAgIHRoaXMuY29udGV4
dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0KCIyZCIpOworICAgIAorICAgIGNvbnN0IG1heFRp
bGVzUGVyUm93ID0gNTA7CisgICAgY29uc3QgbWF4VGlsZXNQZXJDb2wgPSA1MDsKKyAgICAKKyAg
ICB0aGlzLnRpbGVTaXplID0gdGhpcy5fc2l6ZS5tdWx0aXBseShuZXcgUG9pbnQoMSAvIG1heFRp
bGVzUGVyUm93LCAxIC8gbWF4VGlsZXNQZXJDb2wpKTsKKyAgICAKKyAgICB0aGlzLl90aWxlcyA9
IG5ldyBBcnJheShtYXhUaWxlc1BlclJvdyAqIG1heFRpbGVzUGVyQ29sKTsKKyAgICAKKyAgICB2
YXIgc291cmNlID0gUG9pbnQuemVybygpOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXgg
PCB0aGlzLl90aWxlcy5sZW5ndGg7ICsraW5kZXgpIHsKKyAgICAgICAgdGhpcy5fdGlsZXNbaW5k
ZXhdID0gbmV3IENhbnZhc0ltYWdlVGlsZSh0aGlzLCBzb3VyY2UpOworICAgICAgICBzb3VyY2Ug
PSB0aGlzLl9uZXh0VGlsZVBvc2l0aW9uKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIHRoaXMu
X2N0aWxlcyA9IDA7Cit9CisKK1RpbGVkQ2FudmFzSW1hZ2VTdGFnZS5wcm90b3R5cGUgPSBPYmpl
Y3QuY3JlYXRlKFN0YWdlLnByb3RvdHlwZSk7CitUaWxlZENhbnZhc0ltYWdlU3RhZ2UucHJvdG90
eXBlLmNvbnN0cnVjdG9yID0gVGlsZWRDYW52YXNJbWFnZVN0YWdlOworCitUaWxlZENhbnZhc0lt
YWdlU3RhZ2UucHJvdG90eXBlLl9uZXh0VGlsZVBvc2l0aW9uID0gZnVuY3Rpb24oZGVzdGluYXRp
b24pCit7CisgICAgdmFyIG5leHQgPSBkZXN0aW5hdGlvbi5hZGQodGhpcy50aWxlU2l6ZSk7Cisg
ICAgCisgICAgaWYgKG5leHQueCA+PSB0aGlzLl9zaXplLndpZHRoKQorICAgICAgICByZXR1cm4g
bmV3IFBvaW50KDAsIG5leHQueSA+PSB0aGlzLl9zaXplLmhlaWdodCA/IDAgOiBuZXh0LnkpOwor
CisgICAgcmV0dXJuIG5ldyBQb2ludChuZXh0LngsIGRlc3RpbmF0aW9uLnkpOworfQorCitUaWxl
ZENhbnZhc0ltYWdlU3RhZ2UucHJvdG90eXBlLnR1bmUgPSBmdW5jdGlvbihjb3VudCkKK3sKKyAg
ICB0aGlzLl9jdGlsZXMgKz0gY291bnQ7CisKKyAgICB0aGlzLl9jdGlsZXMgPSBNYXRoLm1heCh0
aGlzLl9jdGlsZXMsIDApOyAgICAKKyAgICB0aGlzLl9jdGlsZXMgPSBNYXRoLm1pbih0aGlzLl9j
dGlsZXMsIHRoaXMuX3RpbGVzLmxlbmd0aCk7CisKKyAgICByZXR1cm4gdGhpcy5fY3RpbGVzOwor
fQorCitUaWxlZENhbnZhc0ltYWdlU3RhZ2UucHJvdG90eXBlLmFuaW1hdGUgPSBmdW5jdGlvbih0
aW1lRGVsdGEpCit7CisgICAgaWYgKCF0aGlzLl9jdGlsZXMpCisgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgdGhpcy5fdGlsZXMuc2h1ZmZsZSgpOworCisgICAgdmFyIGRlc3RpbmF0aW9u
cyA9IG5ldyBBcnJheSh0aGlzLl9jdGlsZXMpOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5k
ZXggPCB0aGlzLl9jdGlsZXM7ICsraW5kZXgpIHsKKyAgICAgICAgdGhpcy5fdGlsZXNbaW5kZXhd
LmdldEltYWdlRGF0YSgpOworICAgICAgICBkZXN0aW5hdGlvbnNbaW5kZXhdID0gdGhpcy5fdGls
ZXNbaW5kZXhdLnNvdXJjZTsKKyAgICB9CisgICAgCisgICAgZGVzdGluYXRpb25zLnNodWZmbGUo
KTsKKworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9jdGlsZXM7ICsraW5k
ZXgpCisgICAgICAgIHRoaXMuX3RpbGVzW2luZGV4XS5wdXRJbWFnZURhdGEoZGVzdGluYXRpb25z
W2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIFRpbGVkQ2FudmFzSW1hZ2VBbmltYXRvcihiZW5jaG1h
cmssIG9wdGlvbnMpCit7CisgICAgQW5pbWF0b3IuY2FsbCh0aGlzLCBiZW5jaG1hcmssIG9wdGlv
bnMpOworICAgIHRoaXMuX2NvbnRleHQgPSBiZW5jaG1hcmsuX3N0YWdlLmNvbnRleHQ7Cit9CisK
K1RpbGVkQ2FudmFzSW1hZ2VBbmltYXRvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN0YWdl
QW5pbWF0b3IucHJvdG90eXBlKTsKK1RpbGVkQ2FudmFzSW1hZ2VBbmltYXRvci5wcm90b3R5cGUu
Y29uc3RydWN0b3IgPSBUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3I7CisKK1RpbGVkQ2FudmFzSW1h
Z2VBbmltYXRvci5wcm90b3R5cGUuX2RyYXdCYWNrZ3JvdW5kID0gZnVuY3Rpb24oKQoreworICAg
IHZhciBzaXplID0gdGhpcy5fYmVuY2htYXJrLl9zdGFnZS5zaXplOworICAgIHZhciBncmFkaWVu
dCA9IHRoaXMuX2NvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgc2l6ZS53aWR0aCwg
MCk7CisgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJyZWQiKTsKKyAgICBncmFkaWVudC5h
ZGRDb2xvclN0b3AoMSwgIndoaXRlIik7CisgICAgdGhpcy5fY29udGV4dC5zYXZlKCk7CisgICAg
ICAgIHRoaXMuX2NvbnRleHQuZmlsbFN0eWxlID0gZ3JhZGllbnQ7CisgICAgICAgIHRoaXMuX2Nv
bnRleHQuZmlsbFJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOworICAgIHRoaXMu
X2NvbnRleHQucmVzdG9yZSgpOworfSAgIAorCitUaWxlZENhbnZhc0ltYWdlQW5pbWF0b3IucHJv
dG90eXBlLmFuaW1hdGUgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fZHJhd0JhY2tncm91bmQo
KTsKKyAgICByZXR1cm4gU3RhZ2VBbmltYXRvci5wcm90b3R5cGUuYW5pbWF0ZS5jYWxsKHRoaXMp
OworfQorCitmdW5jdGlvbiBUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJrKHN1aXRlLCB0ZXN0LCBv
cHRpb25zLCByZWNvcmRUYWJsZSwgcHJvZ3Jlc3NCYXIpCit7CisgICAgU3RhZ2VCZW5jaG1hcmsu
Y2FsbCh0aGlzLCBzdWl0ZSwgdGVzdCwgb3B0aW9ucywgcmVjb3JkVGFibGUsIHByb2dyZXNzQmFy
KTsKK30KKworVGlsZWRDYW52YXNJbWFnZUJlbmNobWFyay5wcm90b3R5cGUgPSBPYmplY3QuY3Jl
YXRlKFN0YWdlQmVuY2htYXJrLnByb3RvdHlwZSk7CitUaWxlZENhbnZhc0ltYWdlQmVuY2htYXJr
LnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcms7CisKK1Rp
bGVkQ2FudmFzSW1hZ2VCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZVN0YWdlID0gZnVuY3Rpb24o
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFRpbGVkQ2FudmFzSW1hZ2VTdGFnZShlbGVtZW50
LCB0aGlzLl9vcHRpb25zKTsKK30KKworVGlsZWRDYW52YXNJbWFnZUJlbmNobWFyay5wcm90b3R5
cGUuY3JlYXRlQW5pbWF0b3IgPSBmdW5jdGlvbigpCit7CisgICAgcmV0dXJuIG5ldyBUaWxlZENh
bnZhc0ltYWdlQW5pbWF0b3IodGhpcywgdGhpcy5fb3B0aW9ucyk7Cit9CisKK3dpbmRvdy5iZW5j
aG1hcmtDbGllbnQuY3JlYXRlID0gZnVuY3Rpb24oc3VpdGUsIHRlc3QsIG9wdGlvbnMsIHJlY29y
ZFRhYmxlLCBwcm9ncmVzc0JhcikKK3sKKyAgICByZXR1cm4gbmV3IFRpbGVkQ2FudmFzSW1hZ2VC
ZW5jaG1hcmsoc3VpdGUsIHRlc3QsIG9wdGlvbnMsIHJlY29yZFRhYmxlLCBwcm9ncmVzc0Jhcik7
Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270788</attachid>
            <date>2016-02-05 21:23:41 -0800</date>
            <delta_ts>2016-02-05 22:21:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151716-20160205212318.patch</filename>
            <type>text/plain</type>
            <size>7978</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTYyMTApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTAyLTA1ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGEgbmV3IGdyYXBoaWNzIHRlc3QgZm9yIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBmdW5jdGlv
bnM6IGdldEltYWdlRGF0YSBhbmQgcHV0SW1hZ2VEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIHRlc3QgaXMgdG8gbWVh
c3VyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZ2V0SW1hZ2VEYXRhCisgICAgICAgIGFuZCBwdXRJbWFn
ZURhdGEgZnVuY3Rpb25zLiBUaGlzIHRlc3QgZHJhd3MgYSBiYWNrZ3JvdW5kIG9uIHRoZSBjYW52
YXMKKyAgICAgICAgYW5kIHRoZW4gZ2V0cyBzb21lIHJhbmRvbSB0aWxlcyBmcm9tIHRoaXMgYmFj
a2dyb3VuZCBhbmQgZHJhdyB0aGVtIGluCisgICAgICAgIGRlc3RpbmF0aW9ucyBkaWZmZXJlbnQg
ZnJvbSB0aGVpciBvcmlnaW5hbCBzb3VyY2VzLgorICAgICAgICAKKyAgICAgICAgKiBBbmltb21l
dGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanM6IEFkZGluZyB0aGUgbmV3IHRlc3Qg
dG8gdGhlIGNhbnZhcyBzaW1wbGUgdGVzdHMgc3VpdGUuCisgICAgICAgIAorICAgICAgICAqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CisgICAgICAgIChBcnJheS5wcm90b3R5
cGUuc2h1ZmZsZSk6IFNodWZmbGVzIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheS4KKyAgICAgICAg
CisgICAgICAgIChQb2ludC56ZXJvKTogUmV0dXJucyBhIG5ldyBQb2ludCBvYmplY3Qgd2hvc2Ug
eCBhbmQgeSBhcmUgZXF1YWwgemVyby4KKyAgICAgICAgKFBvaW50LnByb3RvdHlwZS5zdHIpOiBV
c2VkIGZvciBkZWJ1Z2dpbmcgdGhlIFBvaW50IG9iamVjdC4KKyAgICAgICAgCisgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3RpbGVkLWNhbnZhcy1pbWFnZS5qczog
QWRkZWQuCisgICAgICAgIChDYW52YXNJbWFnZVRpbGUpOgorICAgICAgICAoQ2FudmFzSW1hZ2VU
aWxlLnByb3RvdHlwZS5nZXRJbWFnZURhdGEpOgorICAgICAgICAoQ2FudmFzSW1hZ2VUaWxlLnBy
b3RvdHlwZS5wdXRJbWFnZURhdGEpOgorICAgICAgICAoU3RhZ2UuY2FsbC5pbml0aWFsaXplKToK
KyAgICAgICAgKFN0YWdlLmNhbGwuX2NyZWF0ZVRpbGVzKToKKyAgICAgICAgKFN0YWdlLmNhbGwu
X25leHRUaWxlUG9zaXRpb24pOgorICAgICAgICAoU3RhZ2UuY2FsbC50dW5lKToKKyAgICAgICAg
KFN0YWdlLmNhbGwuX2RyYXdCYWNrZ3JvdW5kKToKKyAgICAgICAgKFN0YWdlLmNhbGwuYW5pbWF0
ZSk6CisgICAgICAgIChTdGFnZS5jYWxsLmNvbXBsZXhpdHkpOgorICAgICAgICAoU3RhZ2UuY2Fs
bCk6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvdGlsZWQtY2FudmFzLWltYWdl
Lmh0bWw6IEFkZGVkLgorCiAyMDE2LTAxLTA3ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggbmV3IHRlc3QuCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCShyZXZpc2lvbiAxOTYyMDkpCisr
KyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDEyICs0OCwyNiBAQCBpZiAoIUFycmF5LnByb3RvdHlwZS5maW5k
KSB7CiAgICAgfTsKIH0KIAorQXJyYXkucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbigpCit7
CisgICAgZm9yICh2YXIgaW5kZXggPSB0aGlzLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IC0taW5k
ZXgpIHsKKyAgICAgICAgdmFyIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgp
ICogKGluZGV4ICsgMSkpOworICAgICAgICB0aGlzLnN3YXAoaW5kZXgsIHJhbmRvbUluZGV4KTsK
KyAgICB9CisgICAgcmV0dXJuIHRoaXM7Cit9CisKIGZ1bmN0aW9uIFBvaW50KHgsIHkpCiB7CiAg
ICAgdGhpcy54ID0geDsKICAgICB0aGlzLnkgPSB5OwogfQogCitQb2ludC56ZXJvID0gZnVuY3Rp
b24oKQoreworICAgIHJldHVybiBuZXcgUG9pbnQoMCwgMCk7Cit9CisKIFBvaW50LnBvaW50T25D
aXJjbGUgPSBmdW5jdGlvbihhbmdsZSwgcmFkaXVzKQogewogICAgIHJldHVybiBuZXcgUG9pbnQo
cmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSkpOwpAQCAt
OTAsNiArMTA0LDExIEBAIFBvaW50LnByb3RvdHlwZSA9CiAgICAgICAgIHJldHVybiBuZXcgUG9p
bnQodGhpcy54IC8gMiwgdGhpcy55IC8gMik7CiAgICAgfSwKIAorICAgIHN0cjogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ4ID0gIiArIHRoaXMueCArICIsIHkgPSAiICsgdGhp
cy55OworICAgIH0sCisgICAgCiAgICAgYWRkOiBmdW5jdGlvbihvdGhlcikKICAgICB7CiAgICAg
ICAgIGlmKGlzTmFOKG90aGVyLngpKQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMJKHJldmlz
aW9uIDE5NjIwOSkKKysrIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVi
dWctcnVubmVyL3Rlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDExIEBAIFN1
aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQmFzaWMgY2FudmFzIHBhdGgKICAgICAgICAgewogICAgICAg
ICAgICAgdXJsOiAic2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0aHMuaHRtbD9wYXRoVHlwZT1yZWN0
RmlsbCIsCiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIHJlY3RzLCBmaWxsIgotICAgICAgICB9
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHVybDogInNpbXBsZS90aWxlZC1j
YW52YXMtaW1hZ2UuaHRtbCIsCisgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIHB1dC9nZXQgaW1h
Z2UgZGF0YSIKKyAgICAgICAgfSwKICAgICBdCiApKTsKIApJbmRleDogUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBsZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3RpbGVkLWNh
bnZhcy1pbWFnZS5odG1sCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL3NpbXBsZS90aWxlZC1jYW52YXMtaW1hZ2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vcmVzb3VyY2VzL3N0
YWdlLmNzcyI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlkPSJzdGFnZSI+PC9jYW52
YXM+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RpbGVkLWNhbnZhcy1pbWFnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jl
c291cmNlcy90aWxlZC1jYW52YXMtaW1hZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvdGlsZWQtY2FudmFzLWltYWdl
LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Np
bXBsZS9yZXNvdXJjZXMvdGlsZWQtY2FudmFzLWltYWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTE5IEBACisoZnVuY3Rpb24oKSB7CisKK2Z1bmN0aW9uIENhbnZhc0ltYWdlVGlsZShz
dGFnZSwgc291cmNlKQoreworICAgIHRoaXMuX2NvbnRleHQgPSBzdGFnZS5jb250ZXh0OworICAg
IHRoaXMuX3NpemUgPSBzdGFnZS50aWxlU2l6ZTsKKyAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsK
K30KKworQ2FudmFzSW1hZ2VUaWxlLnByb3RvdHlwZS5nZXRJbWFnZURhdGEgPSBmdW5jdGlvbigp
Cit7CisgICAgdGhpcy5faW1hZ2VkYXRhID0gdGhpcy5fY29udGV4dC5nZXRJbWFnZURhdGEodGhp
cy5zb3VyY2UueCwgdGhpcy5zb3VyY2UueSwgdGhpcy5fc2l6ZS53aWR0aCwgdGhpcy5fc2l6ZS5o
ZWlnaHQpOworfQorCitDYW52YXNJbWFnZVRpbGUucHJvdG90eXBlLnB1dEltYWdlRGF0YSA9IGZ1
bmN0aW9uKGRlc3RpbmF0aW9uKQoreworICAgIHRoaXMuX2NvbnRleHQucHV0SW1hZ2VEYXRhKHRo
aXMuX2ltYWdlZGF0YSwgZGVzdGluYXRpb24ueCwgZGVzdGluYXRpb24ueSk7Cit9CisKK1RpbGVk
Q2FudmFzSW1hZ2VTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKKyAgICBm
dW5jdGlvbihlbGVtZW50LCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgU3RhZ2UuY2FsbCh0aGlz
KTsKKyAgICB9LCB7CisKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmspCisgICAg
eworICAgICAgICBTdGFnZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFy
ayk7CisgICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0KCIyZCIp
OworICAgICAgICB0aGlzLl9zZXR1cFRpbGVzKCk7CisgICAgfSwKKworICAgIF9zZXR1cFRpbGVz
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBjb25zdCBtYXhUaWxlc1BlclJvdyA9IDUwOwor
ICAgICAgICBjb25zdCBtYXhUaWxlc1BlckNvbCA9IDUwOworCisgICAgICAgIHRoaXMudGlsZVNp
emUgPSB0aGlzLnNpemUubXVsdGlwbHkobmV3IFBvaW50KDEgLyBtYXhUaWxlc1BlclJvdywgMSAv
IG1heFRpbGVzUGVyQ29sKSk7CisKKyAgICAgICAgdGhpcy5fdGlsZXMgPSBuZXcgQXJyYXkobWF4
VGlsZXNQZXJSb3cgKiBtYXhUaWxlc1BlckNvbCk7CisKKyAgICAgICAgdmFyIHNvdXJjZSA9IFBv
aW50Lnplcm8oKTsKKyAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuX3Rp
bGVzLmxlbmd0aDsgKytpbmRleCkgeworICAgICAgICAgICAgdGhpcy5fdGlsZXNbaW5kZXhdID0g
bmV3IENhbnZhc0ltYWdlVGlsZSh0aGlzLCBzb3VyY2UpOworICAgICAgICAgICAgc291cmNlID0g
dGhpcy5fbmV4dFRpbGVQb3NpdGlvbihzb3VyY2UpOworICAgICAgICB9CisKKyAgICAgICAgdGhp
cy5fY3RpbGVzID0gMDsKKyAgICB9LAorCisgICAgX25leHRUaWxlUG9zaXRpb246IGZ1bmN0aW9u
KGRlc3RpbmF0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIG5leHQgPSBkZXN0aW5hdGlvbi5hZGQo
dGhpcy50aWxlU2l6ZSk7CisKKyAgICAgICAgaWYgKG5leHQueCA+PSB0aGlzLl9zaXplLndpZHRo
KQorICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2ludCgwLCBuZXh0LnkgPj0gdGhpcy5fc2l6ZS5o
ZWlnaHQgPyAwIDogbmV4dC55KTsKKworICAgICAgICByZXR1cm4gbmV3IFBvaW50KG5leHQueCwg
ZGVzdGluYXRpb24ueSk7CisgICAgfSwKKworICAgIHR1bmU6IGZ1bmN0aW9uKGNvdW50KQorICAg
IHsKKyAgICAgICAgdGhpcy5fY3RpbGVzICs9IGNvdW50OworCisgICAgICAgIHRoaXMuX2N0aWxl
cyA9IE1hdGgubWF4KHRoaXMuX2N0aWxlcywgMCk7ICAgIAorICAgICAgICB0aGlzLl9jdGlsZXMg
PSBNYXRoLm1pbih0aGlzLl9jdGlsZXMsIHRoaXMuX3RpbGVzLmxlbmd0aCk7CisKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2N0aWxlczsKKyAgICB9LAorCisgICAgX2RyYXdCYWNrZ3JvdW5kOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgc2l6ZSA9IHRoaXMuX2JlbmNobWFyay5fc3RhZ2Uu
c2l6ZTsKKyAgICAgICAgdmFyIGdyYWRpZW50ID0gdGhpcy5jb250ZXh0LmNyZWF0ZUxpbmVhckdy
YWRpZW50KDAsIDAsIHNpemUud2lkdGgsIDApOworICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0
b3AoMCwgInJlZCIpOworICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMSwgIndoaXRlIik7
CisgICAgICAgIHRoaXMuY29udGV4dC5zYXZlKCk7CisgICAgICAgICAgICB0aGlzLmNvbnRleHQu
ZmlsbFN0eWxlID0gZ3JhZGllbnQ7CisgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsbFJlY3Qo
MCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOworICAgICAgICB0aGlzLmNvbnRleHQucmVz
dG9yZSgpOworICAgIH0sCisKKyAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCisgICAg
eworICAgICAgICB0aGlzLl9kcmF3QmFja2dyb3VuZCgpOworCisgICAgICAgIGlmICghdGhpcy5f
Y3RpbGVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3RpbGVzLnNodWZm
bGUoKTsKKworICAgICAgICB2YXIgZGVzdGluYXRpb25zID0gbmV3IEFycmF5KHRoaXMuX2N0aWxl
cyk7CisgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9jdGlsZXM7ICsr
aW5kZXgpIHsKKyAgICAgICAgICAgIHRoaXMuX3RpbGVzW2luZGV4XS5nZXRJbWFnZURhdGEoKTsK
KyAgICAgICAgICAgIGRlc3RpbmF0aW9uc1tpbmRleF0gPSB0aGlzLl90aWxlc1tpbmRleF0uc291
cmNlOworICAgICAgICB9CisKKyAgICAgICAgZGVzdGluYXRpb25zLnNodWZmbGUoKTsKKworICAg
ICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fY3RpbGVzOyArK2luZGV4KQor
ICAgICAgICAgICAgdGhpcy5fdGlsZXNbaW5kZXhdLnB1dEltYWdlRGF0YShkZXN0aW5hdGlvbnNb
aW5kZXhdKTsKKyAgICB9LAorICAgIAorICAgIGNvbXBsZXhpdHk6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9jdGlsZXM7CisgICAgfQorfSk7CisKK1RpbGVkQ2FudmFz
SW1hZ2VCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAorICAg
IGZ1bmN0aW9uKG9wdGlvbnMpCisgICAgeworICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBu
ZXcgVGlsZWRDYW52YXNJbWFnZVN0YWdlKCksIG9wdGlvbnMpOworICAgIH0KKyk7CisKK3dpbmRv
dy5iZW5jaG1hcmtDbGFzcyA9IFRpbGVkQ2FudmFzSW1hZ2VCZW5jaG1hcms7CisKK30pKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>