<?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>144129</bug_id>
          
          <creation_ts>2015-04-23 15:24:36 -0700</creation_ts>
          <short_desc>[iOS] Add a wrapper around the hosted AVPlayerLayer to intercept -setBounds:</short_desc>
          <delta_ts>2022-11-25 19:30:04 -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>New Bugs</component>
          <version>528+ (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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>billmartinnn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088037</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 15:24:36 -0700</bug_when>
    <thetext>[iOS] Add a wrapper around the hosted AVPlayerLayer to intercept -setBounds:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088059</commentid>
    <comment_count>1</comment_count>
      <attachid>251502</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 15:48:29 -0700</bug_when>
    <thetext>Created attachment 251502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088060</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 15:49:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/18683624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088068</commentid>
    <comment_count>3</comment_count>
      <attachid>251505</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 15:57:15 -0700</bug_when>
    <thetext>Created attachment 251505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088069</commentid>
    <comment_count>4</comment_count>
      <attachid>251506</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 15:59:31 -0700</bug_when>
    <thetext>Created attachment 251506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088079</commentid>
    <comment_count>5</comment_count>
      <attachid>251506</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-23 16:07:26 -0700</bug_when>
    <thetext>Comment on attachment 251506
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:592
&gt; +    [super setBounds:bounds];
&gt; +

This should probably early-return when the bounds aren&apos;t changing.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:612
&gt; +    FloatRect videoFrame = self.model-&gt;videoLayerFrame();
&gt; +    FloatRect targetFrame;
&gt; +    switch (self.model-&gt;videoLayerGravity()) {
&gt; +    case WebCore::WebVideoFullscreenModel::VideoGravityResize:
&gt; +        targetFrame = bounds;
&gt; +        break;
&gt; +    case WebCore::WebVideoFullscreenModel::VideoGravityResizeAspect:
&gt; +        targetFrame = largestRectWithAspectRatioInsideRect(videoFrame.size().aspectRatio(), bounds);
&gt; +        break;
&gt; +    case WebCore::WebVideoFullscreenModel::VideoGravityResizeAspectFill:
&gt; +        targetFrame = smallestRectWithAspectRatioAroundRect(videoFrame.size().aspectRatio(), bounds);
&gt; +        break;
&gt; +    }
&gt; +    CATransform3D transform = CATransform3DMakeScale(targetFrame.width() / videoFrame.width(), targetFrame.height() / videoFrame.height(), 1);
&gt; +    [_videoSublayer setSublayerTransform:transform];

Doing all this inside -setBounds makes me slightly nervous, but it&apos;s probably OK.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:615
&gt; +    [self performSelector:@selector(resolveBounds) withObject:nil afterDelay:[CATransaction animationDuration] + 0.1];

Add a comment to explain the magic + 0.1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088095</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-23 16:44:33 -0700</bug_when>
    <thetext>Committed r183229: &lt;http://trac.webkit.org/changeset/183229&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251502</attachid>
            <date>2015-04-23 15:48:29 -0700</date>
            <delta_ts>2015-04-23 15:57:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144129-20150423154724.patch</filename>
            <type>text/plain</type>
            <size>8109</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlMDRiYWQ0ZjRkYTll
ZDgyZDk4Y2YwNmI5ZjQwZTQ3NDA5MDYzMC4uY2Q0ZDMxZGU4ZmY0MGUyZDhhOWE4ZjA0YmMyNWM1
Zjg1YTJkZWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA0LTIzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhIHdyYXBw
ZXIgYXJvdW5kIHRoZSBob3N0ZWQgQVZQbGF5ZXJMYXllciB0byBpbnRlcmNlcHQgLXNldEJvdW5k
czoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDEy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
cGFzc2luZyB0aGUgaG9zdGVkIEFWUGxheWVyTGF5ZXIgdG8gdGhlIGZ1bGxzY3JlZW4gY29udHJv
bGxlciwgdGhlIG5ldyBzdXBlcmxheWVyIHdpbGwKKyAgICAgICAgcmVzaXplIHRoZSBob3N0ZWQg
bGF5ZXIgd2l0aCBhIGNhbGwgdG8gLXNldEJvdW5kczouIEJ1dCBiZWNhdXNlIHRoaXMgaXMgYSBo
b3N0ZWQgbGF5ZXIsIHRoZQorICAgICAgICBib251ZHMgY2hhbmdlIGhhcyBubyBlZmZlY3QuIElu
c3RlYWQsIHdyYXAgdGhlIENBTGF5ZXJIb3N0IGluIGFub3RoZXIgQ0FMYXllciB3aG9zZSBqb2Ig
aXQgaXMKKyAgICAgICAgdG8gaW50ZXJjZXB0IC1zZXRCb3VuZHM6IGluIHRoZSBzYW1lIHdheSB0
aGF0IFdlYkFWVmlkZW9MYXllciBkaWQuIEluIGZhY3QsIHdlIHNob3VsZCBqdXN0IHVzZQorICAg
ICAgICB0aGF0IHdyYXBwZXIgY2xhc3MgaW5zaWRlIFdlYkFWVmlkZW9MYXllciBhcyB3ZWxsLCB0
byBhdm9pZCBkdXBsaWNhdGluZyBjb2RlLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJDQUxheWVy
SG9zdFdyYXBwZXIgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV2ViQ0FMYXllckhv
c3RXcmFwcGVyIHZpZGVvU3VibGF5ZXJdKToKKyAgICAgICAgKC1bV2ViQ0FMYXllckhvc3RXcmFw
cGVyIHNldEJvdW5kczpdKTogTW92ZWQgZnJvbSBXZWJBVlZpZGVvTGF5ZXIuCisgICAgICAgICgt
W1dlYkNBTGF5ZXJIb3N0V3JhcHBlciByZXNvbHZlQm91bmRzXSk6IERpdHRvLgorICAgICAgICAo
LVtXZWJBVlZpZGVvTGF5ZXIgc2V0Qm91bmRzOl0pOiBNb3ZlZCB0byBXZWJDQUxheWVySG9zdFdy
YXBwZXIuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBG
dWxsc2NyZWVuSW50ZXJuYWwpOiBDcmVhdGUgdGhlIHdyYXBwZXIuCisgICAgICAgICgtW1dlYkFW
VmlkZW9MYXllciByZXNvbHZlQm91bmRzXSk6IERlbGV0ZWQuIE1vdmVkIHRvIFdlYkNBTGF5ZXJI
b3N0V3JhcHBlci4KKwogMjAxNS0wNC0yMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWFjXSBEaXNhYmxlIFFUS2l0IGJ5IGRlZmF1bHQgb24gZnV0dXJlIE9T
IFguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IGIwNGJkMTBmOTFkYzdlYzA3Yjhh
Nzc2YmNkZjljMDBhNzNmNjYwYzEuLmYyMDY3ODRmNDlkOWJkNzgyN2Y0MjNmMmQyMWNiMTU1Nzk4
YmJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC00NCw2ICs0NCw3IEBAIE9C
SkNfQ0xBU1MgVUlXaW5kb3c7CiBPQkpDX0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgQ0FMYXll
cjsKIE9CSkNfQ0xBU1MgV2ViQVZWaWRlb0xheWVyOworT0JKQ19DTEFTUyBXZWJDQUxheWVySG9z
dFdyYXBwZXI7CiAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgU3RyaW5nOwpAQCAtMTI4LDYgKzEy
OSw3IEBAIHByb3RlY3RlZDoKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxlcj4g
bV9wbGF5ZXJWaWV3Q29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV92aWRlb0xh
eWVyOwogICAgIFJldGFpblB0cjxXZWJBVlZpZGVvTGF5ZXI+IG1fdmlkZW9MYXllckNvbnRhaW5l
cjsKKyAgICBSZXRhaW5QdHI8V2ViQ0FMYXllckhvc3RXcmFwcGVyPiBtX2xheWVySG9zdFdyYXBw
ZXI7CiAgICAgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwg
eyBudWxscHRyIH07CiAgICAgV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIqIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0KaW5kZXggMWFlOGZiOTZiZGVmMmM4NDQyOTM3YzZkNWI1ZTI5N2NiMDNlNjJmYS4u
NjA3NmI1MDYwYzRlNjczZWQ2ZjBiODFmNTYxNTFhNTlhM2NkMmU0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQpAQCAtNTY2LDYgKzU2Niw3MSBAQCBzdGF0aWMgY29uc3QgY2hhciog
Ym9vbFN0cmluZyhib29sIHZhbCkKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVk1lZGlhU2VsZWN0aW9u
T3B0aW9uCiBAZW5kCiAKKworQGludGVyZmFjZSBXZWJDQUxheWVySG9zdFdyYXBwZXIgOiBDQUxh
eWVyCitAcHJvcGVydHkgKGFzc2lnbikgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIG1vZGVsOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViQ0FMYXllckhvc3RXcmFwcGVyIHsKKyAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gX3ZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9TdWJs
YXllcjooQ0FMYXllciopdmlkZW9TdWJsYXllcgoreworICAgIF92aWRlb1N1YmxheWVyID0gdmlk
ZW9TdWJsYXllcjsKKyAgICBbc2VsZiBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyXTsKK30KKwor
LSAoQ0FMYXllciopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJsYXllci5n
ZXQoKTsKK30KKworLSAodm9pZClzZXRCb3VuZHM6KENHUmVjdClib3VuZHMKK3sKKyAgICBbc3Vw
ZXIgc2V0Qm91bmRzOmJvdW5kc107CisKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246
Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChib3VuZHMpLCBDR1JlY3RHZXRNaWRZKGJvdW5kcykp
XTsKKworICAgIGlmICghc2VsZi5tb2RlbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRS
ZWN0IHZpZGVvRnJhbWUgPSBzZWxmLm1vZGVsLT52aWRlb0xheWVyRnJhbWUoKTsKKyAgICBGbG9h
dFJlY3QgdGFyZ2V0RnJhbWU7CisgICAgc3dpdGNoIChzZWxmLm1vZGVsLT52aWRlb0xheWVyR3Jh
dml0eSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6Vmlk
ZW9HcmF2aXR5UmVzaXplOgorICAgICAgICB0YXJnZXRGcmFtZSA9IGJvdW5kczsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9H
cmF2aXR5UmVzaXplQXNwZWN0OgorICAgICAgICB0YXJnZXRGcmFtZSA9IGxhcmdlc3RSZWN0V2l0
aEFzcGVjdFJhdGlvSW5zaWRlUmVjdCh2aWRlb0ZyYW1lLnNpemUoKS5hc3BlY3RSYXRpbygpLCBi
b3VuZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsOgorICAgICAgICB0YXJnZXRG
cmFtZSA9IHNtYWxsZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0Fyb3VuZFJlY3QodmlkZW9GcmFtZS5z
aXplKCkuYXNwZWN0UmF0aW8oKSwgYm91bmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZSh0YXJnZXRG
cmFtZS53aWR0aCgpIC8gdmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRGcmFtZS5oZWlnaHQoKSAv
IHZpZGVvRnJhbWUuaGVpZ2h0KCksIDEpOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRTdWJsYXll
clRyYW5zZm9ybTp0cmFuc2Zvcm1dOworCisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVy
Zm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91
bmRzKSBvYmplY3Q6bmlsXTsKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHJl
c29sdmVCb3VuZHMpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6W0NBVHJhbnNhY3Rpb24gYW5p
bWF0aW9uRHVyYXRpb25dICsgMC4xXTsKK30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7Cisg
ICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxm
IHNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSBvYmplY3Q6bmlsXTsKKyAgICBpZiAo
IXNlbGYubW9kZWwpCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2lu
XTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKKworICAgIFtf
dmlkZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHld
OworICAgIHNlbGYubW9kZWwtPnNldFZpZGVvTGF5ZXJGcmFtZShbc2VsZiBib3VuZHNdKTsKKyAg
ICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorQGVuZAorCiBAaW50ZXJmYWNlIFdl
YkFWVmlkZW9MYXllciA6IENBTGF5ZXIgPEFWVmlkZW9MYXllcj4KICsoV2ViQVZWaWRlb0xheWVy
ICopdmlkZW9MYXllcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBBVlZpZGVvTGF5ZXJHcmF2aXR5
IHZpZGVvTGF5ZXJHcmF2aXR5OwpAQCAtNjMyLDQzICs2OTcsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogYm9vbFN0cmluZyhib29sIHZhbCkKICAgICBbc3VwZXIgc2V0Qm91bmRzOmJvdW5kc107CiAK
ICAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlk
WChib3VuZHMpLCBDR1JlY3RHZXRNaWRZKGJvdW5kcykpXTsKLQotICAgIGlmICghW19hdlBsYXll
ckNvbnRyb2xsZXIgZGVsZWdhdGVdIHx8ICFfYXZQbGF5ZXJWaWV3Q29udHJvbGxlcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgRmxvYXRSZWN0IHZpZGVvRnJhbWUgPSBbX2F2UGxheWVyQ29udHJv
bGxlciBkZWxlZ2F0ZV0tPnZpZGVvTGF5ZXJGcmFtZSgpOwotICAgIEZsb2F0UmVjdCB0YXJnZXRG
cmFtZTsKLSAgICBzd2l0Y2ggKFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+dmlkZW9M
YXllckdyYXZpdHkoKSkgewotICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWw6OlZpZGVvR3Jhdml0eVJlc2l6ZToKLSAgICAgICAgdGFyZ2V0RnJhbWUgPSBib3VuZHM7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6
OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdDoKLSAgICAgICAgdGFyZ2V0RnJhbWUgPSBsYXJnZXN0
UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QodmlkZW9GcmFtZS5zaXplKCkuYXNwZWN0UmF0
aW8oKSwgYm91bmRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbDoKLSAgICAgICAg
dGFyZ2V0RnJhbWUgPSBzbWFsbGVzdFJlY3RXaXRoQXNwZWN0UmF0aW9Bcm91bmRSZWN0KHZpZGVv
RnJhbWUuc2l6ZSgpLmFzcGVjdFJhdGlvKCksIGJvdW5kcyk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLSAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
dGFyZ2V0RnJhbWUud2lkdGgoKSAvIHZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0RnJhbWUuaGVp
Z2h0KCkgLyB2aWRlb0ZyYW1lLmhlaWdodCgpLCAxKTsKLSAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0
U3VibGF5ZXJUcmFuc2Zvcm06dHJhbnNmb3JtXTsKLQotICAgIFtOU09iamVjdCBjYW5jZWxQcmV2
aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVz
b2x2ZUJvdW5kcykgb2JqZWN0Om5pbF07Ci0gICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihyZXNvbHZlQm91bmRzKSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OltDQVRyYW5zYWN0
aW9uIGFuaW1hdGlvbkR1cmF0aW9uXSArIDAuMV07Ci19Ci0KLS0gKHZvaWQpcmVzb2x2ZUJvdW5k
cwotewotICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJn
ZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykgb2JqZWN0Om5pbF07Ci0g
ICAgaWYgKCFfYXZQbGF5ZXJDb250cm9sbGVyIHx8ICFbX2F2UGxheWVyQ29udHJvbGxlciBkZWxl
Z2F0ZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKLQotICAgIFtfdmlkZW9T
dWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHldOwotICAg
IFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXllckZyYW1lKFtzZWxm
IGJvdW5kc10pOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0Qm91bmRzOmJvdW5kc107CiB9CiAKIC0gKHZvaWQpc2V0VmlkZW9MYXllckdyYXZp
dHk6KEFWVmlkZW9MYXllckdyYXZpdHkpdmlkZW9MYXllckdyYXZpdHkKQEAgLTkzMiw5ICs5NjEs
MTMgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2Ny
ZWVuSW50ZXJuYWwoUGxhdGZvcm1MYXllciYgdmkKIAogICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3Zl
RnJvbVN1cGVybGF5ZXJdOwogCisgICAgbV9sYXllckhvc3RXcmFwcGVyID0gYWRvcHROUyhbW1dl
YkNBTGF5ZXJIb3N0V3JhcHBlciBhbGxvY10gaW5pdF0pOworICAgIFttX2xheWVySG9zdFdyYXBw
ZXIgc2V0TW9kZWw6bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbF07CisgICAgW21fbGF5ZXJIb3N0V3Jh
cHBlciBzZXRWaWRlb1N1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKV07CisKICAgICBtX3ZpZGVv
TGF5ZXJDb250YWluZXIgPSBbV2ViQVZWaWRlb0xheWVyIHZpZGVvTGF5ZXJdOwogICAgIFttX3Zp
ZGVvTGF5ZXJDb250YWluZXIgc2V0SGlkZGVuOlttX3BsYXllckNvbnRyb2xsZXIgaXNFeHRlcm5h
bFBsYXliYWNrQWN0aXZlXV07Ci0gICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRWaWRlb1N1
YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKV07CisgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBz
ZXRWaWRlb1N1YmxheWVyOm1fbGF5ZXJIb3N0V3JhcHBlci5nZXQoKV07CiAKICAgICBDR1NpemUg
dmlkZW9TaXplID0gW21fcGxheWVyQ29udHJvbGxlciBjb250ZW50RGltZW5zaW9uc107CiAgICAg
Q0dSZWN0IHZpZGVvUmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgdmlkZW9TaXplLndpZHRoLCB2aWRl
b1NpemUuaGVpZ2h0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251505</attachid>
            <date>2015-04-23 15:57:15 -0700</date>
            <delta_ts>2015-04-23 15:59:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144129-20150423155610.patch</filename>
            <type>text/plain</type>
            <size>9125</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlMDRiYWQ0ZjRkYTll
ZDgyZDk4Y2YwNmI5ZjQwZTQ3NDA5MDYzMC4uZGM4ZTk0YjJjM2E0ZTUxMjU2MzQ1NDljMTgxZGJj
YzJhZjUzNjFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA0LTIzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhIHdyYXBw
ZXIgYXJvdW5kIHRoZSBob3N0ZWQgQVZQbGF5ZXJMYXllciB0byBpbnRlcmNlcHQgLXNldEJvdW5k
czoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDEy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
cGFzc2luZyB0aGUgaG9zdGVkIEFWUGxheWVyTGF5ZXIgdG8gdGhlIGZ1bGxzY3JlZW4gY29udHJv
bGxlciwgdGhlIG5ldyBzdXBlcmxheWVyIHdpbGwKKyAgICAgICAgcmVzaXplIHRoZSBob3N0ZWQg
bGF5ZXIgd2l0aCBhIGNhbGwgdG8gLXNldEJvdW5kczouIEJ1dCBiZWNhdXNlIHRoaXMgaXMgYSBo
b3N0ZWQgbGF5ZXIsIHRoZQorICAgICAgICBib251ZHMgY2hhbmdlIGhhcyBubyBlZmZlY3QuIElu
c3RlYWQsIHdyYXAgdGhlIENBTGF5ZXJIb3N0IGluIGFub3RoZXIgQ0FMYXllciB3aG9zZSBqb2Ig
aXQgaXMKKyAgICAgICAgdG8gaW50ZXJjZXB0IC1zZXRCb3VuZHM6IGluIHRoZSBzYW1lIHdheSB0
aGF0IFdlYkFWVmlkZW9MYXllciBkaWQuIEluIGZhY3QsIHdlIHNob3VsZCBqdXN0IHVzZQorICAg
ICAgICB0aGF0IHdyYXBwZXIgY2xhc3MgaW5zaWRlIFdlYkFWVmlkZW9MYXllciBhcyB3ZWxsLCB0
byBhdm9pZCBkdXBsaWNhdGluZyBjb2RlLgorCisgICAgICAgIERyaXZlLWJ5IEZpeDogTnVsbC1j
aGVjayBtX3ZpZGVvRWxlbWVudCBpbiBzZXRWaWRlb0xheWVyRnJhbWUoKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAg
ICAgICAgKC1bV2ViQ0FMYXllckhvc3RXcmFwcGVyIHNldFZpZGVvU3VibGF5ZXI6XSk6CisgICAg
ICAgICgtW1dlYkNBTGF5ZXJIb3N0V3JhcHBlciB2aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgt
W1dlYkNBTGF5ZXJIb3N0V3JhcHBlciBzZXRCb3VuZHM6XSk6IE1vdmVkIGZyb20gV2ViQVZWaWRl
b0xheWVyLgorICAgICAgICAoLVtXZWJDQUxheWVySG9zdFdyYXBwZXIgcmVzb2x2ZUJvdW5kc10p
OiBEaXR0by4KKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpdKTogTW92ZWQg
dG8gV2ViQ0FMYXllckhvc3RXcmFwcGVyLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbkludGVybmFsKTogQ3JlYXRlIHRoZSB3cmFwcGVy
LgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgcmVzb2x2ZUJvdW5kc10pOiBEZWxldGVkLiBN
b3ZlZCB0byBXZWJDQUxheWVySG9zdFdyYXBwZXIuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvTGF5ZXJGcmFtZSk6IE51bGwtY2hl
Y2sgbV92aWRlb0VsZW1lbnQuCisKIDIwMTUtMDQtMjIgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRGlzYWJsZSBRVEtpdCBieSBkZWZhdWx0IG9uIGZ1
dHVyZSBPUyBYLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCBiMDRiZDEwZjkxZGM3
ZWMwN2I4YTc3NmJjZGY5YzAwYTczZjY2MGMxLi5mMjA2Nzg0ZjQ5ZDliZDc4MjdmNDIzZjJkMjFj
YjE1NTc5OGJiYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtNDQsNiArNDQs
NyBAQCBPQkpDX0NMQVNTIFVJV2luZG93OwogT0JKQ19DTEFTUyBVSVZpZXc7CiBPQkpDX0NMQVNT
IENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkFWVmlkZW9MYXllcjsKK09CSkNfQ0xBU1MgV2ViQ0FM
YXllckhvc3RXcmFwcGVyOwogCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFN0cmluZzsKQEAgLTEy
OCw2ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRy
b2xsZXI+IG1fcGxheWVyVmlld0NvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1f
dmlkZW9MYXllcjsKICAgICBSZXRhaW5QdHI8V2ViQVZWaWRlb0xheWVyPiBtX3ZpZGVvTGF5ZXJD
b250YWluZXI7CisgICAgUmV0YWluUHRyPFdlYkNBTGF5ZXJIb3N0V3JhcHBlcj4gbV9sYXllckhv
c3RXcmFwcGVyOwogICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNjcmVl
bk1vZGVsIHsgbnVsbHB0ciB9OwogICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
KiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tCmluZGV4IDFhZThmYjk2YmRlZjJjODQ0MjkzN2M2ZDViNWUyOTdjYjAz
ZTYyZmEuLjYwNzZiNTA2MGM0ZTY3M2VkNmYwYjgxZjU2MTUxYTU5YTNjZDJlNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTU2Niw2ICs1NjYsNzEgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIGJvb2xTdHJpbmcoYm9vbCB2YWwpCiBAaW1wbGVtZW50YXRpb24gV2ViQVZNZWRpYVNl
bGVjdGlvbk9wdGlvbgogQGVuZAogCisKK0BpbnRlcmZhY2UgV2ViQ0FMYXllckhvc3RXcmFwcGVy
IDogQ0FMYXllcgorQHByb3BlcnR5IChhc3NpZ24pIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBt
b2RlbDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkNBTGF5ZXJIb3N0V3JhcHBlciB7Cisg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IF92aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKXNldFZp
ZGVvU3VibGF5ZXI6KENBTGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXll
ciA9IHZpZGVvU3VibGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllcl07
Cit9CisKKy0gKENBTGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3Vi
bGF5ZXIuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0Qm91bmRzOihDR1JlY3QpYm91bmRzCit7Cisg
ICAgW3N1cGVyIHNldEJvdW5kczpib3VuZHNdOworCisgICAgW192aWRlb1N1YmxheWVyIHNldFBv
c2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoYm91bmRzKSwgQ0dSZWN0R2V0TWlkWShi
b3VuZHMpKV07CisKKyAgICBpZiAoIXNlbGYubW9kZWwpCisgICAgICAgIHJldHVybjsKKworICAg
IEZsb2F0UmVjdCB2aWRlb0ZyYW1lID0gc2VsZi5tb2RlbC0+dmlkZW9MYXllckZyYW1lKCk7Cisg
ICAgRmxvYXRSZWN0IHRhcmdldEZyYW1lOworICAgIHN3aXRjaCAoc2VsZi5tb2RlbC0+dmlkZW9M
YXllckdyYXZpdHkoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWw6OlZpZGVvR3Jhdml0eVJlc2l6ZToKKyAgICAgICAgdGFyZ2V0RnJhbWUgPSBib3VuZHM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6
OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdDoKKyAgICAgICAgdGFyZ2V0RnJhbWUgPSBsYXJnZXN0
UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QodmlkZW9GcmFtZS5zaXplKCkuYXNwZWN0UmF0
aW8oKSwgYm91bmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbDoKKyAgICAgICAg
dGFyZ2V0RnJhbWUgPSBzbWFsbGVzdFJlY3RXaXRoQXNwZWN0UmF0aW9Bcm91bmRSZWN0KHZpZGVv
RnJhbWUuc2l6ZSgpLmFzcGVjdFJhdGlvKCksIGJvdW5kcyk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
dGFyZ2V0RnJhbWUud2lkdGgoKSAvIHZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0RnJhbWUuaGVp
Z2h0KCkgLyB2aWRlb0ZyYW1lLmhlaWdodCgpLCAxKTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0
U3VibGF5ZXJUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2
aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVz
b2x2ZUJvdW5kcykgb2JqZWN0Om5pbF07CisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihyZXNvbHZlQm91bmRzKSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OltDQVRyYW5zYWN0
aW9uIGFuaW1hdGlvbkR1cmF0aW9uXSArIDAuMV07Cit9CisKKy0gKHZvaWQpcmVzb2x2ZUJvdW5k
cworeworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJn
ZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykgb2JqZWN0Om5pbF07Cisg
ICAgaWYgKCFzZWxmLm1vZGVsKQorICAgICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07CisK
KyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRElk
ZW50aXR5XTsKKyAgICBzZWxmLm1vZGVsLT5zZXRWaWRlb0xheWVyRnJhbWUoW3NlbGYgYm91bmRz
XSk7CisgICAgCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KK0BlbmQKKwogQGludGVy
ZmFjZSBXZWJBVlZpZGVvTGF5ZXIgOiBDQUxheWVyIDxBVlZpZGVvTGF5ZXI+CiArKFdlYkFWVmlk
ZW9MYXllciAqKXZpZGVvTGF5ZXI7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQVZWaWRlb0xheWVy
R3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eTsKQEAgLTYzMiw0MyArNjk3LDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGJvb2xTdHJpbmcoYm9vbCB2YWwpCiAgICAgW3N1cGVyIHNldEJvdW5kczpib3Vu
ZHNdOwogCiAgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVj
dEdldE1pZFgoYm91bmRzKSwgQ0dSZWN0R2V0TWlkWShib3VuZHMpKV07Ci0KLSAgICBpZiAoIVtf
YXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXSB8fCAhX2F2UGxheWVyVmlld0NvbnRyb2xsZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIEZsb2F0UmVjdCB2aWRlb0ZyYW1lID0gW19hdlBsYXll
ckNvbnRyb2xsZXIgZGVsZWdhdGVdLT52aWRlb0xheWVyRnJhbWUoKTsKLSAgICBGbG9hdFJlY3Qg
dGFyZ2V0RnJhbWU7Ci0gICAgc3dpdGNoIChbX2F2UGxheWVyQ29udHJvbGxlciBkZWxlZ2F0ZV0t
PnZpZGVvTGF5ZXJHcmF2aXR5KCkpIHsKLSAgICBjYXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemU6Ci0gICAgICAgIHRhcmdldEZyYW1lID0gYm91
bmRzOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3Q6Ci0gICAgICAgIHRhcmdldEZyYW1lID0g
bGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KHZpZGVvRnJhbWUuc2l6ZSgpLmFz
cGVjdFJhdGlvKCksIGJvdW5kcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQ29yZTo6
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGw6Ci0g
ICAgICAgIHRhcmdldEZyYW1lID0gc21hbGxlc3RSZWN0V2l0aEFzcGVjdFJhdGlvQXJvdW5kUmVj
dCh2aWRlb0ZyYW1lLnNpemUoKS5hc3BlY3RSYXRpbygpLCBib3VuZHMpOwotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFr
ZVNjYWxlKHRhcmdldEZyYW1lLndpZHRoKCkgLyB2aWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldEZy
YW1lLmhlaWdodCgpIC8gdmlkZW9GcmFtZS5oZWlnaHQoKSwgMSk7Ci0gICAgW192aWRlb1N1Ymxh
eWVyIHNldFN1YmxheWVyVHJhbnNmb3JtOnRyYW5zZm9ybV07Ci0KLSAgICBbTlNPYmplY3QgY2Fu
Y2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOwotICAgIFtzZWxmIHBlcmZvcm1TZWxlY3Rv
cjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykgd2l0aE9iamVjdDpuaWwgYWZ0ZXJEZWxheTpbQ0FU
cmFuc2FjdGlvbiBhbmltYXRpb25EdXJhdGlvbl0gKyAwLjFdOwotfQotCi0tICh2b2lkKXJlc29s
dmVCb3VuZHMKLXsKLSAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNX
aXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpu
aWxdOwotICAgIGlmICghX2F2UGxheWVyQ29udHJvbGxlciB8fCAhW19hdlBsYXllckNvbnRyb2xs
ZXIgZGVsZWdhdGVdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07Ci0KLSAgICBb
X3ZpZGVvU3VibGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRElkZW50aXR5
XTsKLSAgICBbX2F2UGxheWVyQ29udHJvbGxlciBkZWxlZ2F0ZV0tPnNldFZpZGVvTGF5ZXJGcmFt
ZShbc2VsZiBib3VuZHNdKTsKLQotICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisgICAgW192
aWRlb1N1YmxheWVyIHNldEJvdW5kczpib3VuZHNdOwogfQogCiAtICh2b2lkKXNldFZpZGVvTGF5
ZXJHcmF2aXR5OihBVlZpZGVvTGF5ZXJHcmF2aXR5KXZpZGVvTGF5ZXJHcmF2aXR5CkBAIC05MzIs
OSArOTYxLDEzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVw
RnVsbHNjcmVlbkludGVybmFsKFBsYXRmb3JtTGF5ZXImIHZpCiAKICAgICBbbV92aWRlb0xheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKIAorICAgIG1fbGF5ZXJIb3N0V3JhcHBlciA9IGFkb3B0
TlMoW1tXZWJDQUxheWVySG9zdFdyYXBwZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbbV9sYXllckhv
c3RXcmFwcGVyIHNldE1vZGVsOm1fdmlkZW9GdWxsc2NyZWVuTW9kZWxdOworICAgIFttX2xheWVy
SG9zdFdyYXBwZXIgc2V0VmlkZW9TdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOworCiAgICAg
bV92aWRlb0xheWVyQ29udGFpbmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAg
ICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEhpZGRlbjpbbV9wbGF5ZXJDb250cm9sbGVyIGlz
RXh0ZXJuYWxQbGF5YmFja0FjdGl2ZV1dOwotICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0
VmlkZW9TdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOworICAgIFttX3ZpZGVvTGF5ZXJDb250
YWluZXIgc2V0VmlkZW9TdWJsYXllcjptX2xheWVySG9zdFdyYXBwZXIuZ2V0KCldOwogCiAgICAg
Q0dTaXplIHZpZGVvU2l6ZSA9IFttX3BsYXllckNvbnRyb2xsZXIgY29udGVudERpbWVuc2lvbnNd
OwogICAgIENHUmVjdCB2aWRlb1JlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIHZpZGVvU2l6ZS53aWR0
aCwgdmlkZW9TaXplLmhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0K
aW5kZXggMTFlZDY2MzlmNDBlZWIzZGE2MWU0MjVlNTM5NjI2M2Q3MzM5NDE0Ni4uMzViNTEzN2E0
ZjViYmY0YmQxOWY4ZmYwMGQ4ZjY1MzY3ZTNlMWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbQpAQCAtMzA0LDcgKzMwNCw4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvTGF5ZXJGcmFtZShGbG9hdFJlY3QgcmVjdCkKIHsK
ICAgICBtX3ZpZGVvRnJhbWUgPSByZWN0OwogICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNl
dEJvdW5kczpDR1JlY3QocmVjdCldOwotICAgIG1fdmlkZW9FbGVtZW50LT5zZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShyZWN0KTsKKyAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgIG1fdmlk
ZW9FbGVtZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKIH0KIAogRmxvYXRSZWN0
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp2aWRlb0xheWVyRnJhbWUoKSBj
b25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251506</attachid>
            <date>2015-04-23 15:59:31 -0700</date>
            <delta_ts>2015-04-23 16:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144129-20150423155827.patch</filename>
            <type>text/plain</type>
            <size>9599</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlMDRiYWQ0ZjRkYTll
ZDgyZDk4Y2YwNmI5ZjQwZTQ3NDA5MDYzMC4uODk5ZThlZmU0Y2Y5NjdhNWJlMTJjOTU3NjZhODZk
YjE0NzY3YmQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA0LTIzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhIHdyYXBw
ZXIgYXJvdW5kIHRoZSBob3N0ZWQgQVZQbGF5ZXJMYXllciB0byBpbnRlcmNlcHQgLXNldEJvdW5k
czoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDEy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
cGFzc2luZyB0aGUgaG9zdGVkIEFWUGxheWVyTGF5ZXIgdG8gdGhlIGZ1bGxzY3JlZW4gY29udHJv
bGxlciwgdGhlIG5ldyBzdXBlcmxheWVyIHdpbGwKKyAgICAgICAgcmVzaXplIHRoZSBob3N0ZWQg
bGF5ZXIgd2l0aCBhIGNhbGwgdG8gLXNldEJvdW5kczouIEJ1dCBiZWNhdXNlIHRoaXMgaXMgYSBo
b3N0ZWQgbGF5ZXIsIHRoZQorICAgICAgICBib251ZHMgY2hhbmdlIGhhcyBubyBlZmZlY3QuIElu
c3RlYWQsIHdyYXAgdGhlIENBTGF5ZXJIb3N0IGluIGFub3RoZXIgQ0FMYXllciB3aG9zZSBqb2Ig
aXQgaXMKKyAgICAgICAgdG8gaW50ZXJjZXB0IC1zZXRCb3VuZHM6IGluIHRoZSBzYW1lIHdheSB0
aGF0IFdlYkFWVmlkZW9MYXllciBkaWQuIEluIGZhY3QsIHdlIHNob3VsZCBqdXN0IHVzZQorICAg
ICAgICB0aGF0IHdyYXBwZXIgY2xhc3MgaW5zaWRlIFdlYkFWVmlkZW9MYXllciBhcyB3ZWxsLCB0
byBhdm9pZCBkdXBsaWNhdGluZyBjb2RlLgorCisgICAgICAgIERyaXZlLWJ5IEZpeDogTnVsbC1j
aGVjayBtX3ZpZGVvRWxlbWVudCBpbiBzZXRWaWRlb0xheWVyRnJhbWUoKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAg
ICAgICAgKC1bV2ViQ0FMYXllckhvc3RXcmFwcGVyIHNldFZpZGVvU3VibGF5ZXI6XSk6CisgICAg
ICAgICgtW1dlYkNBTGF5ZXJIb3N0V3JhcHBlciB2aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgt
W1dlYkNBTGF5ZXJIb3N0V3JhcHBlciBzZXRCb3VuZHM6XSk6IE1vdmVkIGZyb20gV2ViQVZWaWRl
b0xheWVyLgorICAgICAgICAoLVtXZWJDQUxheWVySG9zdFdyYXBwZXIgcmVzb2x2ZUJvdW5kc10p
OiBEaXR0by4KKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpdKTogTW92ZWQg
dG8gV2ViQ0FMYXllckhvc3RXcmFwcGVyLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbkludGVybmFsKTogQ3JlYXRlIHRoZSB3cmFwcGVy
LgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxs
c2NyZWVuSW50ZXJuYWwpOiBDbGVhciB0aGUgd3JhcHBlci4KKyAgICAgICAgKC1bV2ViQVZWaWRl
b0xheWVyIHJlc29sdmVCb3VuZHNdKTogRGVsZXRlZC4gTW92ZWQgdG8gV2ViQ0FMYXllckhvc3RX
cmFwcGVyLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBOdWxsLWNoZWNrIG1fdmlkZW9FbGVtZW50LgorCiAy
MDE1LTA0LTIyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
YWNdIERpc2FibGUgUVRLaXQgYnkgZGVmYXVsdCBvbiBmdXR1cmUgT1MgWC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0LmgKaW5kZXggYjA0YmQxMGY5MWRjN2VjMDdiOGE3NzZiY2RmOWMwMGE3M2Y2
NjBjMS4uZjIwNjc4NGY0OWQ5YmQ3ODI3ZjQyM2YyZDIxY2IxNTU3OThiYmI1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgT0JKQ19DTEFTUyBVSVdpbmRv
dzsKIE9CSkNfQ0xBU1MgVUlWaWV3OwogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBX
ZWJBVlZpZGVvTGF5ZXI7CitPQkpDX0NMQVNTIFdlYkNBTGF5ZXJIb3N0V3JhcHBlcjsKIAogbmFt
ZXNwYWNlIFdURiB7CiBjbGFzcyBTdHJpbmc7CkBAIC0xMjgsNiArMTI5LDcgQEAgcHJvdGVjdGVk
OgogICAgIFJldGFpblB0cjxBVlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZpZXdDb250
cm9sbGVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7CiAgICAgUmV0YWlu
UHRyPFdlYkFWVmlkZW9MYXllcj4gbV92aWRlb0xheWVyQ29udGFpbmVyOworICAgIFJldGFpblB0
cjxXZWJDQUxheWVySG9zdFdyYXBwZXI+IG1fbGF5ZXJIb3N0V3JhcHBlcjsKICAgICBXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbCogbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCB7IG51bGxwdHIgfTsKICAg
ICBXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciogbV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIgeyBudWxscHRyIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAx
YWU4ZmI5NmJkZWYyYzg0NDI5MzdjNmQ1YjVlMjk3Y2IwM2U2MmZhLi4wYjgyOGExNzRiNDBhMWNj
ZTU1ZjA1ZWYyOTA1MDY0Y2FjNzQ1NWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
CkBAIC01NjYsNiArNTY2LDcxIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBib29sU3RyaW5nKGJvb2wg
dmFsKQogQGltcGxlbWVudGF0aW9uIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24KIEBlbmQKIAor
CitAaW50ZXJmYWNlIFdlYkNBTGF5ZXJIb3N0V3JhcHBlciA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAo
YXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogbW9kZWw7CitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBXZWJDQUxheWVySG9zdFdyYXBwZXIgeworICAgIFJldGFpblB0cjxDQUxheWVyPiBf
dmlkZW9TdWJsYXllcjsKK30KKworLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyKil2
aWRlb1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworICAg
IFtzZWxmIGFkZFN1YmxheWVyOnZpZGVvU3VibGF5ZXJdOworfQorCistIChDQUxheWVyKil2aWRl
b1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRlb1N1YmxheWVyLmdldCgpOworfQorCistICh2
b2lkKXNldEJvdW5kczooQ0dSZWN0KWJvdW5kcworeworICAgIFtzdXBlciBzZXRCb3VuZHM6Ym91
bmRzXTsKKworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1Jl
Y3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworCisgICAgaWYgKCFz
ZWxmLm1vZGVsKQorICAgICAgICByZXR1cm47CisKKyAgICBGbG9hdFJlY3QgdmlkZW9GcmFtZSA9
IHNlbGYubW9kZWwtPnZpZGVvTGF5ZXJGcmFtZSgpOworICAgIEZsb2F0UmVjdCB0YXJnZXRGcmFt
ZTsKKyAgICBzd2l0Y2ggKHNlbGYubW9kZWwtPnZpZGVvTGF5ZXJHcmF2aXR5KCkpIHsKKyAgICBj
YXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemU6
CisgICAgICAgIHRhcmdldEZyYW1lID0gYm91bmRzOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemVBc3Bl
Y3Q6CisgICAgICAgIHRhcmdldEZyYW1lID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNp
ZGVSZWN0KHZpZGVvRnJhbWUuc2l6ZSgpLmFzcGVjdFJhdGlvKCksIGJvdW5kcyk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVv
R3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGw6CisgICAgICAgIHRhcmdldEZyYW1lID0gc21hbGxlc3RS
ZWN0V2l0aEFzcGVjdFJhdGlvQXJvdW5kUmVjdCh2aWRlb0ZyYW1lLnNpemUoKS5hc3BlY3RSYXRp
bygpLCBib3VuZHMpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgQ0FUcmFuc2Zvcm0zRCB0
cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHRhcmdldEZyYW1lLndpZHRoKCkgLyB2
aWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldEZyYW1lLmhlaWdodCgpIC8gdmlkZW9GcmFtZS5oZWln
aHQoKSwgMSk7CisgICAgW192aWRlb1N1YmxheWVyIHNldFN1YmxheWVyVHJhbnNmb3JtOnRyYW5z
Zm9ybV07CisKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRo
VGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxd
OworICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykgd2l0
aE9iamVjdDpuaWwgYWZ0ZXJEZWxheTpbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJhdGlvbl0g
KyAwLjFdOworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBbTlNPYmplY3QgY2Fu
Y2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworICAgIGlmICghc2VsZi5tb2RlbCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5z
YWN0aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOworCisgICAgW192aWRlb1N1YmxheWVyIHNl
dFN1YmxheWVyVHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RJZGVudGl0eV07CisgICAgc2VsZi5tb2Rl
bC0+c2V0VmlkZW9MYXllckZyYW1lKFtzZWxmIGJvdW5kc10pOworICAgIAorICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07Cit9CitAZW5kCisKIEBpbnRlcmZhY2UgV2ViQVZWaWRlb0xheWVyIDog
Q0FMYXllciA8QVZWaWRlb0xheWVyPgogKyhXZWJBVlZpZGVvTGF5ZXIgKil2aWRlb0xheWVyOwog
QHByb3BlcnR5IChub25hdG9taWMpIEFWVmlkZW9MYXllckdyYXZpdHkgdmlkZW9MYXllckdyYXZp
dHk7CkBAIC02MzIsNDMgKzY5Nyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBib29sU3RyaW5nKGJv
b2wgdmFsKQogICAgIFtzdXBlciBzZXRCb3VuZHM6Ym91bmRzXTsKIAogICAgIFtfdmlkZW9TdWJs
YXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVj
dEdldE1pZFkoYm91bmRzKSldOwotCi0gICAgaWYgKCFbX2F2UGxheWVyQ29udHJvbGxlciBkZWxl
Z2F0ZV0gfHwgIV9hdlBsYXllclZpZXdDb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBGbG9hdFJlY3QgdmlkZW9GcmFtZSA9IFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+
dmlkZW9MYXllckZyYW1lKCk7Ci0gICAgRmxvYXRSZWN0IHRhcmdldEZyYW1lOwotICAgIHN3aXRj
aCAoW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT52aWRlb0xheWVyR3Jhdml0eSgpKSB7
Ci0gICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5
UmVzaXplOgotICAgICAgICB0YXJnZXRGcmFtZSA9IGJvdW5kczsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5UmVz
aXplQXNwZWN0OgotICAgICAgICB0YXJnZXRGcmFtZSA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJh
dGlvSW5zaWRlUmVjdCh2aWRlb0ZyYW1lLnNpemUoKS5hc3BlY3RSYXRpbygpLCBib3VuZHMpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
OjpWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsOgotICAgICAgICB0YXJnZXRGcmFtZSA9IHNt
YWxsZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0Fyb3VuZFJlY3QodmlkZW9GcmFtZS5zaXplKCkuYXNw
ZWN0UmF0aW8oKSwgYm91bmRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIENBVHJhbnNm
b3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZSh0YXJnZXRGcmFtZS53aWR0
aCgpIC8gdmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRGcmFtZS5oZWlnaHQoKSAvIHZpZGVvRnJh
bWUuaGVpZ2h0KCksIDEpOwotICAgIFtfdmlkZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9y
bTp0cmFuc2Zvcm1dOwotCi0gICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVl
c3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSBvYmpl
Y3Q6bmlsXTsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3Vu
ZHMpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6W0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9uRHVy
YXRpb25dICsgMC4xXTsKLX0KLQotLSAodm9pZClyZXNvbHZlQm91bmRzCi17Ci0gICAgW05TT2Jq
ZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9y
OkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSBvYmplY3Q6bmlsXTsKLSAgICBpZiAoIV9hdlBsYXll
ckNvbnRyb2xsZXIgfHwgIVtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwotICAgIFtDQVRyYW5zYWN0aW9u
IHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOwotCi0gICAgW192aWRlb1N1YmxheWVyIHNldFN1Ymxh
eWVyVHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RJZGVudGl0eV07Ci0gICAgW19hdlBsYXllckNvbnRy
b2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xheWVyRnJhbWUoW3NlbGYgYm91bmRzXSk7Ci0KLSAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRCb3VuZHM6
Ym91bmRzXTsKIH0KIAogLSAodm9pZClzZXRWaWRlb0xheWVyR3Jhdml0eTooQVZWaWRlb0xheWVy
R3Jhdml0eSl2aWRlb0xheWVyR3Jhdml0eQpAQCAtOTMyLDkgKzk2MSwxMyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0
Zm9ybUxheWVyJiB2aQogCiAgICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07
CiAKKyAgICBtX2xheWVySG9zdFdyYXBwZXIgPSBhZG9wdE5TKFtbV2ViQ0FMYXllckhvc3RXcmFw
cGVyIGFsbG9jXSBpbml0XSk7CisgICAgW21fbGF5ZXJIb3N0V3JhcHBlciBzZXRNb2RlbDptX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsXTsKKyAgICBbbV9sYXllckhvc3RXcmFwcGVyIHNldFZpZGVvU3Vi
bGF5ZXI6bV92aWRlb0xheWVyLmdldCgpXTsKKwogICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9
IFtXZWJBVlZpZGVvTGF5ZXIgdmlkZW9MYXllcl07CiAgICAgW21fdmlkZW9MYXllckNvbnRhaW5l
ciBzZXRIaWRkZW46W21fcGxheWVyQ29udHJvbGxlciBpc0V4dGVybmFsUGxheWJhY2tBY3RpdmVd
XTsKLSAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvU3VibGF5ZXI6bV92aWRlb0xh
eWVyLmdldCgpXTsKKyAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvU3VibGF5ZXI6
bV9sYXllckhvc3RXcmFwcGVyLmdldCgpXTsKIAogICAgIENHU2l6ZSB2aWRlb1NpemUgPSBbbV9w
bGF5ZXJDb250cm9sbGVyIGNvbnRlbnREaW1lbnNpb25zXTsKICAgICBDR1JlY3QgdmlkZW9SZWN0
ID0gQ0dSZWN0TWFrZSgwLCAwLCB2aWRlb1NpemUud2lkdGgsIHZpZGVvU2l6ZS5oZWlnaHQpOwpA
QCAtMTEyMiw3ICsxMTU1LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCgpCiAgICAgW21fdmlkZW9MYXllckNvbnRhaW5l
ciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRQ
bGF5ZXJWaWV3Q29udHJvbGxlcjpuaWxdOwogICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSBy
ZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLSAgICAKKworICAgIG1fbGF5ZXJIb3N0V3JhcHBlciA9IG5p
bDsKICAgICBtX3ZpZGVvTGF5ZXIgPSBuaWw7CiAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0g
bmlsOwogICAgIG1fcGxheWVyVmlld0NvbnRyb2xsZXIgPSBuaWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggMTFlZDY2MzlmNDBlZWIzZGE2MWU0MjVlNTM5NjI2M2Q3
MzM5NDE0Ni4uMzViNTEzN2E0ZjViYmY0YmQxOWY4ZmYwMGQ4ZjY1MzY3ZTNlMWNjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpAQCAtMzA0LDcgKzMwNCw4IEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvTGF5ZXJGcmFtZShG
bG9hdFJlY3QgcmVjdCkKIHsKICAgICBtX3ZpZGVvRnJhbWUgPSByZWN0OwogICAgIFttX3ZpZGVv
RnVsbHNjcmVlbkxheWVyIHNldEJvdW5kczpDR1JlY3QocmVjdCldOwotICAgIG1fdmlkZW9FbGVt
ZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKKyAgICBpZiAobV92aWRlb0VsZW1l
bnQpCisgICAgICAgIG1fdmlkZW9FbGVtZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0
KTsKIH0KIAogRmxvYXRSZWN0IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp2
aWRlb0xheWVyRnJhbWUoKSBjb25zdAo=
</data>
<flag name="review"
          id="276296"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>