<?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>124862</bug_id>
          
          <creation_ts>2013-11-25 14:54:58 -0800</creation_ts>
          <short_desc>Expose a way to detect page zoom</short_desc>
          <delta_ts>2026-01-21 03:48: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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236232</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>709922234</cc>
    
    <cc>bernardo</cc>
    
    <cc>bramus</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gman</cc>
    
    <cc>JoolsChadwick</cc>
    
    <cc>keavon</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kresic993</cc>
    
    <cc>serg.partizan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954111</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 14:54:58 -0800</bug_when>
    <thetext>There is a discussion underway in various places about what devicePixelRatio should mean.

Apple always intended this to be the *constant* mapping between CSS px and device pixels at uniform zoom. i.e. it is 2 on a &quot;retina&quot; device.

Other browsers appear to have started including page zoom in that calculation, making devicePixelRatio = pageZoom * pixels-per-css-px-at-uniform-scale. Problems:

1. We know there is existing content that is expecting a retina device to have a devicePixelRatio of 2. We don&apos;t want to break that.
2. Some developers may want to detect pageZoom separately
3. Merging devicePixelRatio this way can cause rounding errors
4. Many of the use cases for the merge mention sizing canvas elements, but developers might not want their canvas to respond to pageZoom.

For this reason I suggest we expose page zoom next to (our) devicePixelRatio. This would allow developers to get the same answer as other browsers, if that&apos;s what they want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954113</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 15:00:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/15547943
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954114</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 15:01:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/15547943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954136</commentid>
    <comment_count>3</comment_count>
      <attachid>217841</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 15:37:59 -0800</bug_when>
    <thetext>Created attachment 217841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954137</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 15:39:06 -0800</bug_when>
    <thetext>Note: I expect this will be controversial. I will not land it until there is some agreement. Review is fine though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954328</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-26 12:28:41 -0800</bug_when>
    <thetext>Patch is wrong - should navigate up to mainFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954421</commentid>
    <comment_count>6</comment_count>
      <attachid>217841</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-26 19:15:34 -0800</bug_when>
    <thetext>Comment on attachment 217841
Patch

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

Seems pretty straightforward to me.  r=me, whenever you want to land it.

&gt; Source/WebCore/page/DOMWindow.h:233
&gt; +        double webkitPageZoomRatio() const;

Should we bother calling this &quot;webkitPageZoomRatio&quot; here? I think it make sense to expose this to users with a webkit-prefix, but here in the guts of WebKit it seems redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955016</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-29 12:16:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 217841 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217841&amp;action=review
&gt; 
&gt; Seems pretty straightforward to me.  r=me, whenever you want to land it.
&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.h:233
&gt; &gt; +        double webkitPageZoomRatio() const;
&gt; 
&gt; Should we bother calling this &quot;webkitPageZoomRatio&quot; here? I think it make sense to expose this to users with a webkit-prefix, but here in the guts of WebKit it seems redundant.

Good point. I&apos;ll change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955254</commentid>
    <comment_count>8</comment_count>
      <attachid>218142</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-01 22:09:01 -0800</bug_when>
    <thetext>Created attachment 218142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955255</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-01 22:09:46 -0800</bug_when>
    <thetext>Updated patch after Brent&apos;s review. Weinig approved on IRC too. Leaving it here for 24 hours or so for anyone to complain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955462</commentid>
    <comment_count>10</comment_count>
      <attachid>217841</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-02 11:02:41 -0800</bug_when>
    <thetext>Comment on attachment 217841
Patch

I don&apos;t think we should do this until there&apos;s some amount of consensus amount browser vendors, otherwise we may end up with an orphaned property name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955540</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-02 13:23:02 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 217841 [details])
&gt; I don&apos;t think we should do this until there&apos;s some amount of consensus amount browser vendors, otherwise we may end up with an orphaned property name.

The problem is that the other vendors don&apos;t want to change (and neither do we unless we have to). At the moment there is no way to get the same value as other browsers in WebKit, since we don&apos;t expose page zoom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718218</commentid>
    <comment_count>12</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2021-01-07 22:00:33 -0800</bug_when>
    <thetext>Are the arguments for why WebKit does not want to expose zoom detailed somewhere? Has it been reconsidered in the 7 years since this issue was posted?

As a graphics programmer I want Canvas to be just as useful as SVG. Without zoom I can&apos;t do that.

Here&apos;s an example that uses devicePixelRatio to adjust the rendering of a canvas to match the zoom level. 

https://jsgist.org/embed.html?src=09d9815bf187d5f93541c100f0fb9a78

In Chrome/Edge/Firefox it&apos;s possible 

https://i.imgur.com/QN8varG.png


But in Safari it&apos;s not

https://i.imgur.com/GjiOoMS.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839231</commentid>
    <comment_count>13</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2022-02-09 09:52:12 -0800</bug_when>
    <thetext>It would be nice to get some response from Apple on this 8yr old bug.

There are other issues here. For example, the majority of WebGL pages (like for example most of the ones on this page, https://threejs.org/examples/, a canvas that covers the page. They adjust the resolution of the canvas like this

    canvas.width  = canvas.clientWidth  * devicePixelRatio
    canvas.height = canvas.clientHeight * devicePixelRatio

On Chrome and Firefox, because the devicePixelRatio changes based on the zoom level, when zooming out, this means the statement ends up with the canvas staying the same resolution.  But on Safari, because devicePixelRatio does not change, the resolution becomes extreme,

See this example:

https://greggman.github.io/doodles/test/canvas-backing-resize/canvas-backing-resize.html

On my 38inch monitor with a fullscreen window in Chrome on MacOS 12 at zoom level 100% I get 

                dpr: 2
              width: 6304
             height: 2392
 drawingBufferWidth: 6304
drawingBufferHeight: 2392
  min memory needed: 361.9m

If zoom out to 25% I get

                dpr: 0.6666666865348816
              width: 6304.00018787384
             height: 2392.000071287155
 drawingBufferWidth: 6304
drawingBufferHeight: 2392
  min memory needed: 361.9m

But in Safari at 100%

                dpr: 2
              width: 6304
             height: 2512
 drawingBufferWidth: 6304
drawingBufferHeight: 2512
  min memory needed: 380.1m

And zoomed out to 25%

                dpr: 2
              width: 12608
             height: 5024
 drawingBufferWidth: 12608
drawingBufferHeight: 5024
  min memory needed: 1.5g

Because devicePixelRatio is not changing in Safari the page ends up allocating 1.5gig of vram since it has no way to know it doesn&apos;t really end a 12608x5024 canvas. It also means Safari has a significant per issue for most WebGL apps if the user zooms out.

Further, AFAIK devicePixelRatio is supposed to be the mapping of CSS pixels to device pixels so it certainly makes sense that it change in response to zooming  since the number of device pixels to css pixels is actually changing.

Given that Chrome and Firefox have been shipping this way for over 8yrs and so developers are used to this is there any chance that WebKit/Safari will consider supporting this feature?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2089726</commentid>
    <comment_count>14</comment_count>
    <who name="Keavon">keavon</who>
    <bug_when>2025-01-25 00:45:08 -0800</bug_when>
    <thetext>It&apos;s disappointing that this bug is still not resolved. Display scaling seems rather fundamental for web apps hoping to offer a good experience, especially on Retina displays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166573</commentid>
    <comment_count>15</comment_count>
    <who name="">bernardo</who>
    <bug_when>2025-12-17 03:39:50 -0800</bug_when>
    <thetext>This would be an important bug to fix on Safari. WebGL and canvas experiences on Safari will look worse than competitors when zoomed because there&apos;s no way to properly detect zoom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166630</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2025-12-17 09:12:11 -0800</bug_when>
    <thetext>You can check window.visualViewport.scale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166648</commentid>
    <comment_count>17</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2025-12-17 09:58:16 -0800</bug_when>
    <thetext>window.visualViewport.scale does not change as the zoom level changes, at least on desktop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166698</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2025-12-17 12:30:08 -0800</bug_when>
    <thetext>It changes with pinch zoom, not Command-+ zoom (too many kinds of zooming)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166731</commentid>
    <comment_count>19</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2025-12-17 14:55:30 -0800</bug_when>
    <thetext>Thanks for the clarification. 

This issue is about Cmd+/- zoom. Pinch zoom is a separate issue. (also important but different since it, generally, doesn&apos;t cause re-layout)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2173619</commentid>
    <comment_count>20</comment_count>
    <who name="Jools">JoolsChadwick</who>
    <bug_when>2026-01-21 03:48:46 -0800</bug_when>
    <thetext>Hard to believe it&apos;s taken me so long to notice this broken and even harder to believe this hasn&apos;t been fixed yet. 

This workaround is from ideal, but it looks like you can fairly reliably detect retina-ness and get an approximate value using window.innerWidth and window.outerWidth e.g.

let approxDevicePixelRatio = window.devicePixelRatio;
// If no zoom reported and inner and outer windows differ by more than 10px, assume difference is not just browser borders
if (approxDevicePixelRatio === 1 &amp;&amp; Math.abs(window.outerWidth - window.innerWidth) &gt; 10){
   // For browsers with side borders this won&apos;t be super accurate
   approxDevicePixelRatio = window.outerWidth / window.innerWidth;
}
const isHighDPI = approxDevicePixelRatio &gt; 1;

Presumably you could update that whenever the page resizes if you need to detect changes or keep it up to date</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217841</attachid>
            <date>2013-11-25 15:37:59 -0800</date>
            <delta_ts>2022-02-09 12:04:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124862-20131126103757.patch</filename>
            <type>text/plain</type>
            <size>5858</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTExMDlmNTYwNmY1Mzcx
NmU1NDZlYTUzMjEwZTk5MWJiZTk3OTYwOC4uYzNjN2IzYjA3N2QwNmE5ZjU2YTQyMjY2NWUwMTcx
ODExZThhN2Q4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTExLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgYSB3YXkgdG8gZGV0
ZWN0IHBhZ2Ugem9vbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI0ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhwb3NlIHdpbmRvdy53ZWJraXRQYWdlWm9vbVJhdGlvIHRvIGFsbG93CisgICAgICAg
IGNvbnRlbnQgdG8gZGV0ZWN0IHRoZSBwYWdlIHpvb21pbmcgZmFjdG9yLgorICAgICAgICBUaGlz
IHdvdWxkIGVuYWJsZSBhdXRob3JzIHRvLCBmb3IgZXhhbXBsZSwgY3JlYXRlCisgICAgICAgIGEg
Y2FudmFzIGVsZW1lbnQgdGhhdCBoYXMgZXhhY3RseSB0aGUgc2FtZSBiYWNraW5nCisgICAgICAg
IHN0b3JlIHNpemUgYXMgZGlzcGxheSBzaXplLCBhcyBsb25nIGFzICJwaW5jaCIvdmlld3BvcnQK
KyAgICAgICAgem9vbSBpcyAxLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3dpbmRvdy1wYWdl
em9vbS5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndlYmtpdFBhZ2Vab29tUmF0aW8pOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBOZXcgcHVibGljIHByb3Bl
cnR5LgorCiAyMDEzLTExLTI1ICBOaWNrIERpZWdvIFlhbWFuZSAgPG5pY2sueWFtYW5lQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeSBzaG91bGQgc3RvcmUgTWVk
aWFTdHJlYW1zIGluc3RlYWQgb2YgTWVkaWFTdHJlYW1Qcml2YXRlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCmluZGV4IDA2NGQyYTRlZjY5ZWFlYjQ4YTMxYTczN2VjMzJmYzE4NWI0NGQ0YmQu
LmM4ZTY1YzhjZTk4ZjkyYTJjNmUyOWIxMGJjMmVhMTU0ZWM4NmQ1YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKQEAgLTE0MTMsNiArMTQxMywxNCBAQCBkb3VibGUgRE9NV2luZG93Ojpk
ZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKICAgICByZXR1cm4gcGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKTsKIH0KIAorZG91YmxlIERPTVdpbmRvdzo6d2Via2l0UGFnZVpvb21SYXRpbygpIGNvbnN0
Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMC4wOworCisgICAgcmV0dXJu
IG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7Cit9CisKIHZvaWQgRE9NV2luZG93OjpzY3JvbGxC
eShpbnQgeCwgaW50IHkpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGQ3YWE5NDc2NjNhNDU1NjA0NGQy
ZjgzMWZiOTQ3OWRhYjM0NjE3YTEuLjg5NzViYWQ2YThjNzA0NTA5NTI3ZGZlZGFjYmYyMzJkYTNh
MzRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMjMwLDYgKzIzMCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYXNzUmVmUHRyPENTU1J1bGVMaXN0PiBnZXRNYXRj
aGVkQ1NTUnVsZXMoRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcHNldWRvRWx0LCBib29sIGF1dGhv
ck9ubHkgPSB0cnVlKSBjb25zdDsKICAgICAgICAgZG91YmxlIGRldmljZVBpeGVsUmF0aW8oKSBj
b25zdDsKKyAgICAgICAgZG91YmxlIHdlYmtpdFBhZ2Vab29tUmF0aW8oKSBjb25zdDsKIAogICAg
ICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRv
Tm9kZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0
cjxXZWJLaXRQb2ludD4gd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNv
bnN0IFdlYktpdFBvaW50KikgY29uc3Q7ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAppbmRleCA3NGI0YTZmMjYzNDhlZDg2NmU2YjZiODE1YTVhZDRlODUyMGVjMGRiLi5hYjcyOTZk
OGVkNWY1N2I1NWI2ZDFjYzJmNGJkZDU0ZjA4MmI1NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCkBAIC0xNTMsNyArMTUzLDggQEAKICNlbmRpZgogCiAgICAgW1JlcGxhY2VhYmxlXSBy
ZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRldmljZVBpeGVsUmF0aW87Ci0gICAgCisgICAgW1Jl
cGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHdlYmtpdFBhZ2Vab29tUmF0aW87
CisKICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZShbRGVm
YXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbm9kZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25h
bCBXZWJLaXRQb2ludCBwKTsKICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9t
Tm9kZVRvUGFnZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbm9kZSwgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjQyMjRmODUyZjU0ZjljZGEyZWYzYThmMjk4ZDM3Yzc3YmE3YjU1Yi4uYWQxNzQyMWYwZWUx
YmM4ODBkM2NhMDY4YzZjNjgxMjFmMWIzMWYyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDEz
LTExLTI1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBFeHBvc2Ug
YSB3YXkgdG8gZGV0ZWN0IHBhZ2Ugem9vbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI0ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3NlIHdpbmRvdy53ZWJraXRQYWdlWm9vbVJhdGlvIHRvIGFs
bG93CisgICAgICAgIGNvbnRlbnQgdG8gZGV0ZWN0IHRoZSBwYWdlIHpvb21pbmcgZmFjdG9yLgor
ICAgICAgICBUaGlzIHdvdWxkIGVuYWJsZSBhdXRob3JzIHRvLCBmb3IgZXhhbXBsZSwgY3JlYXRl
CisgICAgICAgIGEgY2FudmFzIGVsZW1lbnQgdGhhdCBoYXMgZXhhY3RseSB0aGUgc2FtZSBiYWNr
aW5nCisgICAgICAgIHN0b3JlIHNpemUgYXMgZGlzcGxheSBzaXplLCBhcyBsb25nIGFzICJwaW5j
aCIvdmlld3BvcnQKKyAgICAgICAgem9vbSBpcyAxLgorCisgICAgICAgICogZmFzdC9kb20vd2lu
ZG93LXBhZ2V6b29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vd2lu
ZG93LXBhZ2V6b29tLmh0bWw6IEFkZGVkLgorCisyMDEzLTExLTI1ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24gQmxpbmsgbWVyZ2Ug
YXNzZXJ0aW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjQ4NTcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LXBhZ2V6
b29tLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1wYWdlem9vbS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzljOTg2ZDExM2YwN2NmMDQyYzZjYTBlZTBjMjI2YmRm
NGNjNDE1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1w
YWdlem9vbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQYWdlIHpvb20gaXM6IDEKKwor
VGhlIHJlbWFpbmRlciBvZiB0aGlzIHRlc3Qgb25seSB3b3JrcyBpbiBXZWJLaXQncyB0ZXN0IHN5
c3RlbS4KKworUGFnZSB6b29tIGFmdGVyIHpvb20gaW4gaXMgPiAxOiBQQVNTCisKK1BhZ2Ugem9v
bSBhZnRlciB0d28gem9vbSBvdXRzIGlzIDwgMTogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd2luZG93LXBhZ2V6b29tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
aW5kb3ctcGFnZXpvb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQzZjcwODE3ZTRiMzg3NmViNWJlMzgz
OGYxNTYzNzRjYTIzYTA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
d2luZG93LXBhZ2V6b29tLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICB2YXIgcmVzdWx0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZXN1bHQxIik7CisgICAgcmVzdWx0MS5pbm5lclRleHQgPSB3aW5kb3cud2Via2l0UGFnZVpvb21S
YXRpbzsKKworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGV2ZW50U2VuZGVyLnpvb21QYWdlSW4oKTsKKyAgICB2YXIgcmVzdWx0MiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQyIik7CisgICAgcmVzdWx0Mi5pbm5lclRleHQgPSAod2lu
ZG93LndlYmtpdFBhZ2Vab29tUmF0aW8gPiAxLjApID8gIlBBU1MiIDogIkZBSUwiOworCisgICAg
ZXZlbnRTZW5kZXIuem9vbVBhZ2VPdXQoKTsKKyAgICBldmVudFNlbmRlci56b29tUGFnZU91dCgp
OworICAgIHZhciByZXN1bHQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdDMiKTsK
KyAgICByZXN1bHQzLmlubmVyVGV4dCA9ICh3aW5kb3cud2Via2l0UGFnZVpvb21SYXRpbyA8IDEu
MCkgPyAiUEFTUyIgOiAiRkFJTCI7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgcnVuVGVzdCwgZmFsc2UpOworPC9zY3JpcHQ+Cis8cD4KKyAgICBQYWdlIHpvb20gaXM6IDxz
cGFuIGlkPSJyZXN1bHQxIj48L3NwYW4+Cis8L3A+Cis8cD4KKyAgICBUaGUgcmVtYWluZGVyIG9m
IHRoaXMgdGVzdCBvbmx5IHdvcmtzIGluIFdlYktpdCdzIHRlc3Qgc3lzdGVtLgorPC9wPgorPHA+
CisgICAgUGFnZSB6b29tIGFmdGVyIHpvb20gaW4gaXMgJmd0OyAxOiA8c3BhbiBpZD0icmVzdWx0
MiI+PC9zcGFuPgorPC9wPgorPHA+CisgICAgUGFnZSB6b29tIGFmdGVyIHR3byB6b29tIG91dHMg
aXMgJmx0OyAxOiA8c3BhbiBpZD0icmVzdWx0MyI+PC9zcGFuPgorPC9wPgo=
</data>
<flag name="review"
          id="241052"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="241154"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218142</attachid>
            <date>2013-12-01 22:09:01 -0800</date>
            <delta_ts>2022-02-09 12:04:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124862-20131202170900.patch</filename>
            <type>text/plain</type>
            <size>5843</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTExMDlmNTYwNmY1Mzcx
NmU1NDZlYTUzMjEwZTk5MWJiZTk3OTYwOC4uZTg2MjY1ZGIxODcyMTkxMWQ0MmIxZGUwNmNlMWNm
M2IwOTUxYTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTEyLTAxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgYSB3YXkgdG8gZGV0
ZWN0IHBhZ2Ugem9vbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI0ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAg
ICAgICBFeHBvc2Ugd2luZG93LndlYmtpdFBhZ2Vab29tUmF0aW8gdG8gYWxsb3cKKyAgICAgICAg
Y29udGVudCB0byBkZXRlY3QgdGhlIHBhZ2Ugem9vbWluZyBmYWN0b3IuCisgICAgICAgIFRoaXMg
d291bGQgZW5hYmxlIGF1dGhvcnMgdG8sIGZvciBleGFtcGxlLCBjcmVhdGUKKyAgICAgICAgYSBj
YW52YXMgZWxlbWVudCB0aGF0IGhhcyBleGFjdGx5IHRoZSBzYW1lIGJhY2tpbmcKKyAgICAgICAg
c3RvcmUgc2l6ZSBhcyBkaXNwbGF5IHNpemUsIGFzIGxvbmcgYXMgInBpbmNoIi92aWV3cG9ydAor
ICAgICAgICB6b29tIGlzIDEuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vd2luZG93LXBhZ2V6
b29tLmh0bWwKKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6cGFnZVpvb21SYXRpbyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IE5ldyBwdWJsaWMgcHJvcGVydHkgLT4g
d2Via2l0UGFnZVpvb21SYXRpbworCiAyMDEzLTExLTI1ICBOaWNrIERpZWdvIFlhbWFuZSAgPG5p
Y2sueWFtYW5lQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeSBz
aG91bGQgc3RvcmUgTWVkaWFTdHJlYW1zIGluc3RlYWQgb2YgTWVkaWFTdHJlYW1Qcml2YXRlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA2NGQyYTRlZjY5ZWFlYjQ4YTMxYTczN2Vj
MzJmYzE4NWI0NGQ0YmQuLmRhMDlmZjQ3ODc3NWM0ZDdmMDEzYzQ0ZGMzNDNkZDUyNDEwYWVhZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE0MTMsNiArMTQxMywxNCBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKICAgICByZXR1cm4gcGFnZS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAorZG91YmxlIERPTVdpbmRvdzo6cGFnZVpvb21SYXRp
bygpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMC4wOworCisg
ICAgcmV0dXJuIG1fZnJhbWUtPm1haW5GcmFtZSgpLnBhZ2Vab29tRmFjdG9yKCk7Cit9CisKIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxCeShpbnQgeCwgaW50IHkpIGNvbnN0CiB7CiAgICAgaWYgKCFp
c0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4
IGQ3YWE5NDc2NjNhNDU1NjA0NGQyZjgzMWZiOTQ3OWRhYjM0NjE3YTEuLmQ2YjYyYjIzMDA3OGM1
NTExZmQwN2IwNzlhMDY4MzI0ZTNjOGQ4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAt
MjMwLDYgKzIzMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYXNzUmVmUHRy
PENTU1J1bGVMaXN0PiBnZXRNYXRjaGVkQ1NTUnVsZXMoRWxlbWVudCosIGNvbnN0IFN0cmluZyYg
cHNldWRvRWx0LCBib29sIGF1dGhvck9ubHkgPSB0cnVlKSBjb25zdDsKICAgICAgICAgZG91Ymxl
IGRldmljZVBpeGVsUmF0aW8oKSBjb25zdDsKKyAgICAgICAgZG91YmxlIHBhZ2Vab29tUmF0aW8o
KSBjb25zdDsKIAogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0
UG9pbnRGcm9tUGFnZVRvTm9kZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsKICAg
ICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2ludD4gd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVU
b1BhZ2UoTm9kZSosIGNvbnN0IFdlYktpdFBvaW50KikgY29uc3Q7ICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCA3NGI0YTZmMjYzNDhlZDg2NmU2YjZiODE1YTVhZDRlODUy
MGVjMGRiLi5jNWU5YjExYjJhNjcyOWI1NWZkNDk1MmY1NjkyMThhNzVmMjBmNmUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0xNTMsNyArMTUzLDggQEAKICNlbmRpZgogCiAgICAg
W1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRldmljZVBpeGVsUmF0aW87
Ci0gICAgCisgICAgW1JlcGxhY2VhYmxlLCBJbXBsZW1lbnRlZEFzPXBhZ2Vab29tUmF0aW9dIHJl
YWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgd2Via2l0UGFnZVpvb21SYXRpbzsKKwogICAgIFdlYktp
dFBvaW50IHdlYmtpdENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKFtEZWZhdWx0PVVuZGVmaW5l
ZF0gb3B0aW9uYWwgTm9kZSBub2RlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIFdlYktpdFBvaW50
IHApOwogICAgIFdlYktpdFBvaW50IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKFtE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBub2RlLCAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNDIyNGY4NTJm
NTRmOWNkYTJlZjNhOGYyOThkMzdjNzdiYTdiNTViLi40MzljMGRlNjMzMzdiMjU0OGFlNjlhMGQx
ZmE3YmVmMzNhNjI1YTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMTItMDEgIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBhIHdheSB0byBkZXRl
Y3QgcGFnZSB6b29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjQ4NjIKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIEV4cG9zZSB3aW5kb3cud2Via2l0UGFnZVpvb21SYXRpbyB0byBhbGxvdworICAgICAgICBj
b250ZW50IHRvIGRldGVjdCB0aGUgcGFnZSB6b29taW5nIGZhY3Rvci4KKyAgICAgICAgVGhpcyB3
b3VsZCBlbmFibGUgYXV0aG9ycyB0bywgZm9yIGV4YW1wbGUsIGNyZWF0ZQorICAgICAgICBhIGNh
bnZhcyBlbGVtZW50IHRoYXQgaGFzIGV4YWN0bHkgdGhlIHNhbWUgYmFja2luZworICAgICAgICBz
dG9yZSBzaXplIGFzIGRpc3BsYXkgc2l6ZSwgYXMgbG9uZyBhcyAicGluY2giL3ZpZXdwb3J0Cisg
ICAgICAgIHpvb20gaXMgMS4KKworICAgICAgICAqIGZhc3QvZG9tL3dpbmRvdy1wYWdlem9vbS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3dpbmRvdy1wYWdlem9vbS5o
dG1sOiBBZGRlZC4KKwogMjAxMy0xMS0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIEJsaW5rIG1lcmdlIGFzc2VydGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LXBhZ2V6b29tLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1wYWdlem9vbS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzljOTg2ZDExM2YwN2NmMDQyYzZjYTBlZTBjMjI2YmRmNGNjNDE1NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1wYWdlem9vbS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitQYWdlIHpvb20gaXM6IDEKKworVGhlIHJlbWFpbmRlciBv
ZiB0aGlzIHRlc3Qgb25seSB3b3JrcyBpbiBXZWJLaXQncyB0ZXN0IHN5c3RlbS4KKworUGFnZSB6
b29tIGFmdGVyIHpvb20gaW4gaXMgPiAxOiBQQVNTCisKK1BhZ2Ugem9vbSBhZnRlciB0d28gem9v
bSBvdXRzIGlzIDwgMTogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2lu
ZG93LXBhZ2V6b29tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctcGFnZXpvb20u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOGQzZjcwODE3ZTRiMzg3NmViNWJlMzgzOGYxNTYzNzRjYTIzYTA0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LXBhZ2V6b29t
Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICB2YXIgcmVzdWx0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQxIik7CisgICAg
cmVzdWx0MS5pbm5lclRleHQgPSB3aW5kb3cud2Via2l0UGFnZVpvb21SYXRpbzsKKworICAgIGlm
ICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGV2ZW50U2VuZGVy
Lnpvb21QYWdlSW4oKTsKKyAgICB2YXIgcmVzdWx0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQyIik7CisgICAgcmVzdWx0Mi5pbm5lclRleHQgPSAod2luZG93LndlYmtpdFBhZ2Va
b29tUmF0aW8gPiAxLjApID8gIlBBU1MiIDogIkZBSUwiOworCisgICAgZXZlbnRTZW5kZXIuem9v
bVBhZ2VPdXQoKTsKKyAgICBldmVudFNlbmRlci56b29tUGFnZU91dCgpOworICAgIHZhciByZXN1
bHQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdDMiKTsKKyAgICByZXN1bHQzLmlu
bmVyVGV4dCA9ICh3aW5kb3cud2Via2l0UGFnZVpvb21SYXRpbyA8IDEuMCkgPyAiUEFTUyIgOiAi
RkFJTCI7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCwgZmFs
c2UpOworPC9zY3JpcHQ+Cis8cD4KKyAgICBQYWdlIHpvb20gaXM6IDxzcGFuIGlkPSJyZXN1bHQx
Ij48L3NwYW4+Cis8L3A+Cis8cD4KKyAgICBUaGUgcmVtYWluZGVyIG9mIHRoaXMgdGVzdCBvbmx5
IHdvcmtzIGluIFdlYktpdCdzIHRlc3Qgc3lzdGVtLgorPC9wPgorPHA+CisgICAgUGFnZSB6b29t
IGFmdGVyIHpvb20gaW4gaXMgJmd0OyAxOiA8c3BhbiBpZD0icmVzdWx0MiI+PC9zcGFuPgorPC9w
PgorPHA+CisgICAgUGFnZSB6b29tIGFmdGVyIHR3byB6b29tIG91dHMgaXMgJmx0OyAxOiA8c3Bh
biBpZD0icmVzdWx0MyI+PC9zcGFuPgorPC9wPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>