<?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>112432</bug_id>
          
          <creation_ts>2013-03-15 04:42:15 -0700</creation_ts>
          <short_desc>RenderSnapshottedPlugIn can&apos;t be a RenderBlock (what if it&apos;s display: inline?)</short_desc>
          <delta_ts>2013-03-15 13:36:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>inferno</cc>
    
    <cc>jonlee</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>855896</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-15 04:42:15 -0700</bug_when>
    <thetext>RenderSnapshottedPlugIn can break the layout of pages, because it replaces a RenderReplaced (the plugin&apos;s RenderEmbeddedObject) but is a RenderBlock. If the element is inline, madness breaks loose and the page layout goes downhill quickly.

We can make RenderSnapshottedPlugIn a RenderEmbeddedObject subclass with a little bit of care, and rescue ourselves from layout peril.

&lt;rdar://problem/13187211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855901</commentid>
    <comment_count>1</comment_count>
      <attachid>193282</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-15 04:57:23 -0700</bug_when>
    <thetext>Created attachment 193282
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856047</commentid>
    <comment_count>2</comment_count>
      <attachid>193282</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-15 09:38:02 -0700</bug_when>
    <thetext>Comment on attachment 193282
patch

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

I like it but think it would benefit from some minor cleanup.

&gt; Source/WebCore/rendering/RenderEmbeddedObject.cpp:295
&gt; +    if (!widget() &amp;&amp; frameView() &amp;&amp; !isSnapshottedPlugIn())
&gt;          frameView()-&gt;addWidgetToUpdate(this);

It&apos;s not clear why a snapshotted plugin should not have to addWidgetToUpdate(). Is it because it will never have a widget? Perhaps we should add a member function that describes this more clearly?

&gt; Source/WebCore/rendering/RenderEmbeddedObject.cpp:302
&gt; +#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
&gt; +    if (!isSnapshottedPlugIn())
&gt; +        return;
&gt; +#endif

Why not just call canHaveChildren() here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856219</commentid>
    <comment_count>3</comment_count>
      <attachid>193361</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-15 13:12:16 -0700</bug_when>
    <thetext>Created attachment 193361
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856235</commentid>
    <comment_count>4</comment_count>
      <attachid>193361</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-15 13:23:04 -0700</bug_when>
    <thetext>Comment on attachment 193361
patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856242</commentid>
    <comment_count>5</comment_count>
      <attachid>193361</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-15 13:26:53 -0700</bug_when>
    <thetext>Comment on attachment 193361
patch

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

&gt; Source/WebCore/page/FrameView.cpp:2532
&gt; +                HTMLPlugInImageElement* pluginElement = static_cast&lt;HTMLPlugInImageElement*&gt;(ownerElement);

I’ll make sure this uses the to* helper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856249</commentid>
    <comment_count>6</comment_count>
      <attachid>193361</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-15 13:29:06 -0700</bug_when>
    <thetext>Comment on attachment 193361
patch

I love this. But I wonder why we&apos;re still tearing down and swapping renderers now. We should go back to the original idea of using RSPI all the time (until we un-snapshot). That could be a followup patch I guess.

PS. I think we can remove some InlineBox exports too now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856253</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-15 13:36:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145934</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193282</attachid>
            <date>2013-03-15 04:57:23 -0700</date>
            <delta_ts>2013-03-15 13:12:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>plugin-inline.diff</filename>
            <type>text/plain</type>
            <size>13119</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZDAwMzU0Li4yODAzZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTMtMDMtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gY2FuJ3QgYmUgYSBSZW5kZXJCbG9jayAo
d2hhdCBpZiBpdCdzIGRpc3BsYXk6IGlubGluZT8pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEz
MTg3MjExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlLXVzZSBjb2RlIGZyb20gUExVR0lOX1BST1hZX0ZPUl9WSURFTyB0byBhbGxvdyBSZW5kZXJF
bWJlZGRlZE9iamVjdCB0byBsYXkgb3V0IGl0cyBjaGlsZHJlbiwKKyAgICAgICAgYW5kIG1ha2Ug
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCBzdWJjbGFzcyBv
bmNlIGFnYWluLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQKKyAgICAgICAgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4gbGF5cyBpdHNlbGYgb3V0IGluIHRoZSBwYWdlIHRoZSBzYW1lIGFzIHRoZSBSZW5k
ZXJFbWJlZGRlZE9iamVjdCBpdCByZXBsYWNlcyBkaWQsCisgICAgICAgIHByZXZlbnRpbmcgc25h
cHNob3R0ZWQgcGx1Zy1pbnMgZnJvbSBicmVha2luZyB0aGUgbGF5b3V0IHdoZW4gdGhleSBhcmUg
ZGlzcGxheTogaW5saW5lLgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIGlzIGEgUmVuZGVyRW1iZWRkZWRP
YmplY3Qgc3ViY2xhc3MgYWdhaW4sIHNvIHdlIG5lZWQgdG8gY2hlY2sKKyAgICAgICAgZm9yIGl0
IHdoZW4gd2UgaGF2ZSBhIFJlbmRlckVtYmVkZGVkT2JqZWN0LCBpbnN0ZWFkIG9mIHdoZW4gd2Ug
ZG9uJ3QuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnVwZGF0ZVdpZGdldCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgIEFsbG93IFJlbmRlckVtYmVk
ZGVkT2JqZWN0IHRvIGhhdmUgYW5kIGxheSBvdXQgY2hpbGRyZW4gaWYgaXQgaXMgYSBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi4KKyAgICAgICAgQWxzbywgcHJlc2VydmUgdGhlIGNvZGUgdGhhdCBh
bGxvd3MgY2hpbGRyZW4gaWYgaXQgaXMgYSBtZWRpYSBlbGVtZW50IGFuZCBQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPIGlzIGVuYWJsZWQuCisgICAgICAgIEFsc28sIHdlIGRvbid0IG5lZWQgdG8gYWRk
V2lkZ2V0VG9VcGRhdGUgYSBzbmFwc2hvdHRlZCBwbHVnLWluLCBhbmQgaWYgd2UgZG8sIHdlIGdl
dCBpbnRvIGEgcGVycGV0dWFsIGxheW91dCBsb29wLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJFbWJlZGRlZE9iamVjdCk6Cisg
ICAgICAgIFdlIG5lZWQgY2FuSGF2ZUNoaWxkcmVuKCkgYW5kIGNoaWxkcmVuKCkgYW5kIG1fY2hp
bGRyZW4gbm93LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJz
b3IpOgorICAgICAgICBNYWtlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIGEgUmVuZGVyRW1iZWRk
ZWRPYmplY3QuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludCk6CisgICAgICAgIFBhaW50IG91ciBjaGlsZHJlbi4KKwogMjAxMy0wMy0xNCAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBDcmFzaCB3aGVu
IHJlbW92aW5nIGFyaWEtbWVudSBpdGVtIGZyb20gRE9NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDNlMDhiMDcuLmY4ZjBiNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yMDIsMTIgKzIwMiwxNSBAQCB2b2lk
IEhUTUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICAgICAgICAgIHRvUmVuZGVyRW1iZWRkZWRPYmplY3QociktPmhhbmRsZVVuYXZhaWxhYmxlUGx1
Z2luSW5kaWNhdG9yRXZlbnQoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIGlmIChkaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5n
KQorCisgICAgICAgIGlmIChyLT5pc1NuYXBzaG90dGVkUGx1Z0luKCkgJiYgZGlzcGxheVN0YXRl
KCkgPCBQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7CisgICAgICAgICAgICB0b1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luKHIpLT5oYW5kbGVFdmVudChldmVudCk7CisgICAgICAgICAgICBI
VE1MRnJhbWVPd25lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpIDwg
UGxheWluZykKICAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKHIgJiYgci0+aXNT
bmFwc2hvdHRlZFBsdWdJbigpICYmIGRpc3BsYXlTdGF0ZSgpIDwgUGxheWluZ1dpdGhQZW5kaW5n
TW91c2VDbGljaykgewotICAgICAgICB0b1JlbmRlclNuYXBzaG90dGVkUGx1Z0luKHIpLT5oYW5k
bGVFdmVudChldmVudCk7Ci0gICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihldmVudCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXIg
fHwgIXItPmlzV2lkZ2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMjQzNzFi
Yy4uYjBjMmRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjUzMiw2ICsyNTMy
LDE0IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVXaWRnZXQoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
CiAgICAgICAgIGlmIChlbWJlZGRlZE9iamVjdC0+c2hvd3NVbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvcigpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmIChvYmplY3QtPmlzU25h
cHNob3R0ZWRQbHVnSW4oKSkgeworICAgICAgICAgICAgaWYgKG93bmVyRWxlbWVudC0+aGFzVGFn
TmFtZShvYmplY3RUYWcpIHx8IG93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykpIHsK
KyAgICAgICAgICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG93bmVyRWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgcGx1Z2luRWxlbWVudC0+dXBkYXRlU25hcHNob3RJbmZvKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICAvLyBGSVhN
RTogVGhpcyBjb3VsZCB0dXJuIGludG8gYSByZWFsIHZpcnR1YWwgZGlzcGF0Y2ggaWYgd2UgZGVm
aW5lZAogICAgICAgICAvLyB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pIG9uIEhU
TUxFbGVtZW50LgogICAgICAgICBpZiAob3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRh
ZykgfHwgb3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBvd25lckVsZW1lbnQt
Pmhhc1RhZ05hbWUoYXBwbGV0VGFnKSkgewpAQCAtMjU1MCwxMSArMjU1OCw2IEBAIHZvaWQgRnJh
bWVWaWV3Ojp1cGRhdGVXaWRnZXQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIC8vIENh
dXRpb246IGl0J3MgcG9zc2libGUgdGhlIG9iamVjdCB3YXMgZGVzdHJveWVkIGFnYWluLCBzaW5j
ZSBsb2FkaW5nIGEKICAgICAgICAgLy8gcGx1Z2luIG1heSBydW4gYW55IGFyYml0cmFyeSBKYXZh
U2NyaXB0LgogICAgICAgICBlbWJlZGRlZE9iamVjdC0+dXBkYXRlV2lkZ2V0UG9zaXRpb24oKTsK
LSAgICB9IGVsc2UgaWYgKG9iamVjdC0+aXNTbmFwc2hvdHRlZFBsdWdJbigpKSB7Ci0gICAgICAg
IGlmIChvd25lckVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBvd25lckVsZW1lbnQt
Pmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7Ci0gICAgICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+
KG93bmVyRWxlbWVudCk7Ci0gICAgICAgICAgICBwbHVnaW5FbGVtZW50LT51cGRhdGVTbmFwc2hv
dEluZm8oKTsKLSAgICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggYTkwZDUyNC4uODdmOTIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
SFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKQEAgLTI3OCw5ICsyNzksNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQo
KQogICAgIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKICAg
ICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKICAgICBMYXlvdXRTaXplIG9sZFNpemUgPSBjb250ZW50Qm94UmVjdCgpLnNpemUoKTsK
LSNlbmRpZgogCiAgICAgdXBkYXRlTG9naWNhbFdpZHRoKCk7CiAgICAgdXBkYXRlTG9naWNhbEhl
aWdodCgpOwpAQCAtMjkyLDE5ICsyOTEsMjkgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
bGF5b3V0KCkKIAogICAgIHVwZGF0ZUxheWVyVHJhbnNmb3JtKCk7CiAKLSAgICBpZiAoIXdpZGdl
dCgpICYmIGZyYW1lVmlldygpKQorICAgIGlmICghd2lkZ2V0KCkgJiYgZnJhbWVWaWV3KCkgJiYg
IWlzU25hcHNob3R0ZWRQbHVnSW4oKSkKICAgICAgICAgZnJhbWVWaWV3KCktPmFkZFdpZGdldFRv
VXBkYXRlKHRoaXMpOwogCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogCi0jaWYgRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCisjaWYgIUVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJ
REVPKQorICAgIGlmICghaXNTbmFwc2hvdHRlZFBsdWdJbigpKQorICAgICAgICByZXR1cm47Cisj
ZW5kaWYKKwogICAgIC8vIFRoaXMgY29kZSBjb3BpZWQgZnJvbSBSZW5kZXJNZWRpYTo6bGF5b3V0
KCkuCi0gICAgUmVuZGVyQm94KiBjb250cm9sc1JlbmRlcmVyID0gdG9SZW5kZXJCb3gobV9jaGls
ZHJlbi5maXJzdENoaWxkKCkpOwotICAgIGlmICghY29udHJvbHNSZW5kZXJlcikKKyAgICBSZW5k
ZXJPYmplY3QqIGNoaWxkID0gbV9jaGlsZHJlbi5maXJzdENoaWxkKCk7CisKKyAgICBpZiAoIWNo
aWxkKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJCb3gqIGNoaWxkQm94ID0gdG9SZW5k
ZXJCb3goY2hpbGQpOworCisgICAgaWYgKCFjaGlsZEJveCkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIExheW91dFNpemUgbmV3U2l6ZSA9IGNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpOwotICAg
IGlmIChuZXdTaXplID09IG9sZFNpemUgJiYgIWNvbnRyb2xzUmVuZGVyZXItPm5lZWRzTGF5b3V0
KCkpCisgICAgaWYgKG5ld1NpemUgPT0gb2xkU2l6ZSAmJiAhY2hpbGRCb3gtPm5lZWRzTGF5b3V0
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBXaGVuIGNhbGxpbmcgbGF5b3V0KCkg
b24gYSBjaGlsZCBub2RlLCBhIHBhcmVudCBtdXN0IGVpdGhlciBwdXNoIGEgTGF5b3V0U3RhdGVN
YWludGFpbnRlciwgb3IKQEAgLTMxMiwxNSArMzIxLDE0IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmxheW91dCgpCiAgICAgLy8gYW5kIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG1h
bnkgdGltZXMgcGVyIHNlY29uZCBkdXJpbmcgcGxheWJhY2ssIHVzZSBhIExheW91dFN0YXRlTWFp
bnRhaW5lcjoKICAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCB0
aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkg
fHwgc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CiAgICAgCi0gICAgY29u
dHJvbHNSZW5kZXJlci0+c2V0TG9jYXRpb24oTGF5b3V0UG9pbnQoYm9yZGVyTGVmdCgpLCBib3Jk
ZXJUb3AoKSkgKyBMYXlvdXRTaXplKHBhZGRpbmdMZWZ0KCksIHBhZGRpbmdUb3AoKSkpOwotICAg
IGNvbnRyb2xzUmVuZGVyZXItPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgobmV3U2l6ZS5oZWln
aHQoKSwgRml4ZWQpKTsKLSAgICBjb250cm9sc1JlbmRlcmVyLT5zdHlsZSgpLT5zZXRXaWR0aChM
ZW5ndGgobmV3U2l6ZS53aWR0aCgpLCBGaXhlZCkpOwotICAgIGNvbnRyb2xzUmVuZGVyZXItPnNl
dE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7Ci0gICAgY29udHJvbHNSZW5kZXJlci0+
bGF5b3V0KCk7CisgICAgY2hpbGRCb3gtPnNldExvY2F0aW9uKExheW91dFBvaW50KGJvcmRlckxl
ZnQoKSwgYm9yZGVyVG9wKCkpICsgTGF5b3V0U2l6ZShwYWRkaW5nTGVmdCgpLCBwYWRkaW5nVG9w
KCkpKTsKKyAgICBjaGlsZEJveC0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChuZXdTaXplLmhl
aWdodCgpLCBGaXhlZCkpOworICAgIGNoaWxkQm94LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgo
bmV3U2l6ZS53aWR0aCgpLCBGaXhlZCkpOworICAgIGNoaWxkQm94LT5zZXROZWVkc0xheW91dCh0
cnVlLCBNYXJrT25seVRoaXMpOworICAgIGNoaWxkQm94LT5sYXlvdXQoKTsKICAgICBzZXRDaGls
ZE5lZWRzTGF5b3V0KGZhbHNlKTsKICAgICAKICAgICBzdGF0ZVB1c2hlci5wb3AoKTsKLSNlbmRp
ZgogfQogCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCgpCkBAIC00NTks
NCArNDY3LDIwIEBAIEN1cnNvckRpcmVjdGl2ZSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0Q3Vy
c29yKGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yCiAgICAgcmV0dXJuIFJlbmRlclBh
cnQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsKIH0KIAorYm9vbCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykKKyAgICBpZiAoIW5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKHRvRWxlbWVudChub2RlKCkpLT5pc01lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKGlzU25hcHNob3R0ZWRQbHVnSW4oKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggNjk2NDcwNy4u
YmM4MWI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmgKQEAgLTYzLDEwICs2Myw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgQ3Vy
c29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0
OwogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgY29uc3QgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9
CiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIHsgcmV0dXJuICZtX2NoaWxk
cmVuOyB9Ci0jZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBP
VkVSUklERTsKQEAgLTk0LDExICs5Miw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0luVW5hdmFp
bGFibGVQbHVnaW5JbmRpY2F0b3IoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKICAgICBib29s
IGdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCwgRmxvYXRSZWN0JiBjb250ZW50UmVjdCwgUGF0aCYsIEZsb2F0UmVjdCYgcmVwbGFj
ZW1lbnRUZXh0UmVjdCwgRm9udCYsIFRleHRSdW4mLCBmbG9hdCYgdGV4dFdpZHRoKSBjb25zdDsK
IAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIHZpcnR1YWwgYm9vbCBj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBub2RlKCkgJiYgdG9FbGVtZW50KG5vZGUo
KSktPmlzTWVkaWFFbGVtZW50KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVu
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGls
ZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9i
amVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gY2hpbGRyZW4o
KTsgfQotI2VuZGlmCiAKICAgICBib29sIG1faGFzRmFsbGJhY2tDb250ZW50OyAvLyBGSVhNRTog
VGhpcyBiZWxvbmdzIG9uIEhUTUxPYmplY3RFbGVtZW50LgogCkBAIC0xMDcsOSArMTAzLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV91bmF2YWlsYWJsZVBsdWdpblJlcGxhY2VtZW50VGV4dDsK
ICAgICBib29sIG1fdW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQ7CiAgICAgYm9v
bCBtX21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3I7Ci0jaWYgRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IG1fY2hp
bGRyZW47Ci0jZW5kaWYKIH07CiAKIGlubGluZSBSZW5kZXJFbWJlZGRlZE9iamVjdCogdG9SZW5k
ZXJFbWJlZGRlZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IGMzNjFi
YjAuLjRjN2ViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4o
SFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1l
bnQpCisgICAgOiBSZW5kZXJFbWJlZGRlZE9iamVjdChlbGVtZW50KQogICAgICwgbV9zbmFwc2hv
dFJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKQogewogICAgIG1fc25hcHNo
b3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVj
a1BvaW50IGxheW91dENoZWNrUG9pbnQ7CiAgICAgTGF5b3V0U2l6ZSBvbGRTaXplID0gY29udGVu
dEJveFJlY3QoKS5zaXplKCk7CiAKLSAgICBSZW5kZXJCbG9jazo6bGF5b3V0KCk7CisgICAgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91dCgpOwogCiAgICAgTGF5b3V0U2l6ZSBuZXdTaXplID0g
Y29udGVudEJveFJlY3QoKS5zaXplKCk7CiAgICAgaWYgKG5ld1NpemUgPT0gb2xkU2l6ZSkKQEAg
LTkyLDcgKzkyLDIwIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpCiAgICAgICAgIHBhaW50U25h
cHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAgfQogCi0gICAgUmVuZGVyQmxvY2s6
OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgIFBhaW50UGhhc2UgbmV3UGhhc2Ug
PSAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzKSA/IFBhaW50UGhh
c2VPdXRsaW5lIDogcGFpbnRJbmZvLnBoYXNlOworICAgIG5ld1BoYXNlID0gKG5ld1BoYXNlID09
IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMpID8gUGFpbnRQaGFzZUNoaWxkQmxvY2tC
YWNrZ3JvdW5kIDogbmV3UGhhc2U7CisKKyAgICBQYWludEluZm8gcGFpbnRJbmZvRm9yQ2hpbGQo
cGFpbnRJbmZvKTsKKyAgICBwYWludEluZm9Gb3JDaGlsZC5waGFzZSA9IG5ld1BoYXNlOworICAg
IHBhaW50SW5mb0ZvckNoaWxkLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVuKHRoaXMpOwor
CisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICBMYXlvdXRQb2ludCBjaGls
ZFBvaW50ID0gZmxpcEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY2hpbGQsIHBhaW50T2Zmc2V0KTsK
KyAgICAgICAgaWYgKCFjaGlsZC0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiAhY2hpbGQtPmlz
RmxvYXRpbmcoKSkKKyAgICAgICAgICAgIGNoaWxkLT5wYWludChwYWludEluZm9Gb3JDaGlsZCwg
Y2hpbGRQb2ludCk7CisgICAgfQorCisgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KHBh
aW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpwYWludFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQpCkBAIC0xMzEsNyArMTQ0LDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXIK
ICAgICAgICAgb3ZlcnJpZGVDdXJzb3IgPSBoYW5kQ3Vyc29yKCk7CiAgICAgICAgIHJldHVybiBT
ZXRDdXJzb3I7CiAgICAgfQotICAgIHJldHVybiBSZW5kZXJCbG9jazo6Z2V0Q3Vyc29yKHBvaW50
LCBvdmVycmlkZUN1cnNvcik7CisgICAgcmV0dXJuIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRD
dXJzb3IocG9pbnQsIG92ZXJyaWRlQ3Vyc29yKTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCBmYzNkYzI3Li5mZGFi
NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbl9oCiAjZGVmaW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luX2gKIAotI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ7CiAKLWNsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIDogcHVibGljIFJlbmRlckVtYmVkZGVk
T2JqZWN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4oKTsK
</data>
<flag name="review"
          id="214764"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193361</attachid>
            <date>2013-03-15 13:12:16 -0700</date>
            <delta_ts>2013-03-15 13:29:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>plugin-inline.diff</filename>
            <type>text/plain</type>
            <size>13682</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZjIwMTY5Li4yZWU3OWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTMtMDMtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gY2FuJ3QgYmUgYSBSZW5kZXJCbG9jayAo
d2hhdCBpZiBpdCdzIGRpc3BsYXk6IGlubGluZT8pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEz
MTg3MjExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlLXVzZSBjb2RlIGZyb20gUExVR0lOX1BST1hZX0ZPUl9WSURFTyB0byBhbGxvdyBSZW5kZXJF
bWJlZGRlZE9iamVjdCB0byBsYXkgb3V0IGl0cyBjaGlsZHJlbiwKKyAgICAgICAgYW5kIG1ha2Ug
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCBzdWJjbGFzcyBv
bmNlIGFnYWluLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQKKyAgICAgICAgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4gbGF5cyBpdHNlbGYgb3V0IGluIHRoZSBwYWdlIHRoZSBzYW1lIGFzIHRoZSBSZW5k
ZXJFbWJlZGRlZE9iamVjdCBpdCByZXBsYWNlcyBkaWQsCisgICAgICAgIHByZXZlbnRpbmcgc25h
cHNob3R0ZWQgcGx1Zy1pbnMgZnJvbSBicmVha2luZyB0aGUgbGF5b3V0IHdoZW4gdGhleSBhcmUg
ZGlzcGxheTogaW5saW5lLgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIGlzIGEgUmVuZGVyRW1iZWRkZWRP
YmplY3Qgc3ViY2xhc3MgYWdhaW4sIHNvIHdlIG5lZWQgdG8gY2hlY2sKKyAgICAgICAgZm9yIGl0
IHdoZW4gd2UgaGF2ZSBhIFJlbmRlckVtYmVkZGVkT2JqZWN0LCBpbnN0ZWFkIG9mIHdoZW4gd2Ug
ZG9uJ3QuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnVwZGF0ZVdpZGdldCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgIEFsbG93IFJlbmRlckVtYmVk
ZGVkT2JqZWN0IHRvIGhhdmUgYW5kIGxheSBvdXQgY2hpbGRyZW4gaWYgaXQgaXMgYSBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi4KKyAgICAgICAgQWxzbywgcHJlc2VydmUgdGhlIGNvZGUgdGhhdCBh
bGxvd3MgY2hpbGRyZW4gaWYgaXQgaXMgYSBtZWRpYSBlbGVtZW50IGFuZCBQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPIGlzIGVuYWJsZWQuCisgICAgICAgIERvbid0IGNhbGwgYWRkV2lkZ2V0VG9VcGRh
dGUgZm9yIGluc3RhbmNlcyB3aGljaCB3aWxsIG5ldmVyIGhhdmUgYSB3aWRnZXQsIGxpa2UgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KToKKyAgICAgICAgV2Ug
bmVlZCBjYW5IYXZlQ2hpbGRyZW4oKSBhbmQgY2hpbGRyZW4oKSBhbmQgbV9jaGlsZHJlbiBub3cu
CisgICAgICAgIEFkZCBjYW5IYXZlV2lkZ2V0KCksIHdoaWNoIHJldHVybnMgdHJ1ZS4gU3ViY2xh
c3NlcyBjYW4gb3ZlcnJpZGUgaWYgbmVlZCBiZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBBZGQgY2FuSGF2ZVdpZGdldCgpLCB3aGljaCBpcyBmYWxz
ZSBmb3IgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IpOgorICAgICAgICBNYWtlIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luIGEgUmVuZGVyRW1iZWRkZWRPYmplY3QuCisKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludCk6CisgICAgICAgIFBhaW50IG91ciBjaGls
ZHJlbi4KKwogMjAxMy0wMy0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjEyNzI3Nyk6IENTUyBVUklzIHdpdGggbXVsdGktYnl0ZSBVbmlj
b2RlIGVzY2FwZSBzZXF1ZW5jZXMgZmFpbCB0byBwYXJzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAzZTA4YjA3Li5mOGYwYjQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMjAyLDEyICsyMDIsMTUgQEAgdm9p
ZCBIVE1MUGx1Z0luRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAg
ICAgICAgICAgICB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KHIpLT5oYW5kbGVVbmF2YWlsYWJsZVBs
dWdpbkluZGljYXRvckV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWlu
ZykKKworICAgICAgICBpZiAoci0+aXNTbmFwc2hvdHRlZFBsdWdJbigpICYmIGRpc3BsYXlTdGF0
ZSgpIDwgUGxheWluZ1dpdGhQZW5kaW5nTW91c2VDbGljaykgeworICAgICAgICAgICAgdG9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbihyKS0+aGFuZGxlRXZlbnQoZXZlbnQpOworICAgICAgICAgICAg
SFRNTEZyYW1lT3duZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkaXNwbGF5U3RhdGUoKSA8
IFBsYXlpbmcpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChyICYmIHItPmlz
U25hcHNob3R0ZWRQbHVnSW4oKSAmJiBkaXNwbGF5U3RhdGUoKSA8IFBsYXlpbmdXaXRoUGVuZGlu
Z01vdXNlQ2xpY2spIHsKLSAgICAgICAgdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihyKS0+aGFu
ZGxlRXZlbnQoZXZlbnQpOwotICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwotICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCFy
IHx8ICFyLT5pc1dpZGdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDYzNTZk
YmIuLjM0ZmUwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI1MjcsNiArMjUy
NywxNCBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlV2lkZ2V0KFJlbmRlck9iamVjdCogb2JqZWN0
KQogICAgICAgICBpZiAoZW1iZWRkZWRPYmplY3QtPnNob3dzVW5hdmFpbGFibGVQbHVnaW5JbmRp
Y2F0b3IoKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBpZiAob2JqZWN0LT5pc1Nu
YXBzaG90dGVkUGx1Z0luKCkpIHsKKyAgICAgICAgICAgIGlmIChvd25lckVsZW1lbnQtPmhhc1Rh
Z05hbWUob2JqZWN0VGFnKSB8fCBvd25lckVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7
CisgICAgICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihvd25lckVsZW1lbnQpOworICAg
ICAgICAgICAgICAgIHBsdWdpbkVsZW1lbnQtPnVwZGF0ZVNuYXBzaG90SW5mbygpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgY291bGQgdHVybiBpbnRvIGEgcmVhbCB2aXJ0dWFsIGRpc3BhdGNoIGlmIHdlIGRl
ZmluZWQKICAgICAgICAgLy8gdXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9uT3B0aW9uKSBvbiBI
VE1MRWxlbWVudC4KICAgICAgICAgaWYgKG93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RU
YWcpIHx8IG93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgb3duZXJFbGVtZW50
LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpIHsKQEAgLTI1NDUsMTEgKzI1NTMsNiBAQCB2b2lkIEZy
YW1lVmlldzo6dXBkYXRlV2lkZ2V0KFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgICAgICAvLyBD
YXV0aW9uOiBpdCdzIHBvc3NpYmxlIHRoZSBvYmplY3Qgd2FzIGRlc3Ryb3llZCBhZ2Fpbiwgc2lu
Y2UgbG9hZGluZyBhCiAgICAgICAgIC8vIHBsdWdpbiBtYXkgcnVuIGFueSBhcmJpdHJhcnkgSmF2
YVNjcmlwdC4KICAgICAgICAgZW1iZWRkZWRPYmplY3QtPnVwZGF0ZVdpZGdldFBvc2l0aW9uKCk7
Ci0gICAgfSBlbHNlIGlmIChvYmplY3QtPmlzU25hcHNob3R0ZWRQbHVnSW4oKSkgewotICAgICAg
ICBpZiAob3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgb3duZXJFbGVtZW50
LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkgewotICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxl
bWVudCogcGx1Z2luRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQq
Pihvd25lckVsZW1lbnQpOwotICAgICAgICAgICAgcGx1Z2luRWxlbWVudC0+dXBkYXRlU25hcHNo
b3RJbmZvKCk7Ci0gICAgICAgIH0KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IGZkNjkwODcuLjM4MDg5MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcmFtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCkBAIC0yNzgsOSArMjc5LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6bGF5b3V0
KCkKICAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CiAg
ICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOwogCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1Jf
VklERU8pCiAgICAgTGF5b3V0U2l6ZSBvbGRTaXplID0gY29udGVudEJveFJlY3QoKS5zaXplKCk7
Ci0jZW5kaWYKIAogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwogICAgIHVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKTsKQEAgLTI5MiwxOSArMjkxLDI3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OmxheW91dCgpCiAKICAgICB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwogCi0gICAgaWYgKCF3aWRn
ZXQoKSAmJiBmcmFtZVZpZXcoKSkKKyAgICBpZiAoIXdpZGdldCgpICYmIGZyYW1lVmlldygpICYm
IGNhbkhhdmVXaWRnZXQoKSkKICAgICAgICAgZnJhbWVWaWV3KCktPmFkZFdpZGdldFRvVXBkYXRl
KHRoaXMpOwogCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogCi0jaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCisgICAgaWYgKCFjYW5IYXZlQ2hpbGRyZW4oKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgLy8gVGhpcyBjb2RlIGNvcGllZCBmcm9tIFJlbmRlck1lZGlhOjpsYXlv
dXQoKS4KLSAgICBSZW5kZXJCb3gqIGNvbnRyb2xzUmVuZGVyZXIgPSB0b1JlbmRlckJveChtX2No
aWxkcmVuLmZpcnN0Q2hpbGQoKSk7Ci0gICAgaWYgKCFjb250cm9sc1JlbmRlcmVyKQorICAgIFJl
bmRlck9iamVjdCogY2hpbGQgPSBtX2NoaWxkcmVuLmZpcnN0Q2hpbGQoKTsKKworICAgIGlmICgh
Y2hpbGQpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlckJveCogY2hpbGRCb3ggPSB0b1Jl
bmRlckJveChjaGlsZCk7CisKKyAgICBpZiAoIWNoaWxkQm94KQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgTGF5b3V0U2l6ZSBuZXdTaXplID0gY29udGVudEJveFJlY3QoKS5zaXplKCk7Ci0g
ICAgaWYgKG5ld1NpemUgPT0gb2xkU2l6ZSAmJiAhY29udHJvbHNSZW5kZXJlci0+bmVlZHNMYXlv
dXQoKSkKKyAgICBpZiAobmV3U2l6ZSA9PSBvbGRTaXplICYmICFjaGlsZEJveC0+bmVlZHNMYXlv
dXQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIFdoZW4gY2FsbGluZyBsYXlvdXQo
KSBvbiBhIGNoaWxkIG5vZGUsIGEgcGFyZW50IG11c3QgZWl0aGVyIHB1c2ggYSBMYXlvdXRTdGF0
ZU1haW50YWludGVyLCBvcgpAQCAtMzEyLDE1ICszMTksMTQgQEAgdm9pZCBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6bGF5b3V0KCkKICAgICAvLyBhbmQgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQg
bWFueSB0aW1lcyBwZXIgc2Vjb25kIGR1cmluZyBwbGF5YmFjaywgdXNlIGEgTGF5b3V0U3RhdGVN
YWludGFpbmVyOgogICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCks
IHRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rpb24o
KSB8fCBzdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKICAgICAKLSAgICBj
b250cm9sc1JlbmRlcmVyLT5zZXRMb2NhdGlvbihMYXlvdXRQb2ludChib3JkZXJMZWZ0KCksIGJv
cmRlclRvcCgpKSArIExheW91dFNpemUocGFkZGluZ0xlZnQoKSwgcGFkZGluZ1RvcCgpKSk7Ci0g
ICAgY29udHJvbHNSZW5kZXJlci0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChuZXdTaXplLmhl
aWdodCgpLCBGaXhlZCkpOwotICAgIGNvbnRyb2xzUmVuZGVyZXItPnN0eWxlKCktPnNldFdpZHRo
KExlbmd0aChuZXdTaXplLndpZHRoKCksIEZpeGVkKSk7Ci0gICAgY29udHJvbHNSZW5kZXJlci0+
c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKLSAgICBjb250cm9sc1JlbmRlcmVy
LT5sYXlvdXQoKTsKKyAgICBjaGlsZEJveC0+c2V0TG9jYXRpb24oTGF5b3V0UG9pbnQoYm9yZGVy
TGVmdCgpLCBib3JkZXJUb3AoKSkgKyBMYXlvdXRTaXplKHBhZGRpbmdMZWZ0KCksIHBhZGRpbmdU
b3AoKSkpOworICAgIGNoaWxkQm94LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKG5ld1NpemUu
aGVpZ2h0KCksIEZpeGVkKSk7CisgICAgY2hpbGRCb3gtPnN0eWxlKCktPnNldFdpZHRoKExlbmd0
aChuZXdTaXplLndpZHRoKCksIEZpeGVkKSk7CisgICAgY2hpbGRCb3gtPnNldE5lZWRzTGF5b3V0
KHRydWUsIE1hcmtPbmx5VGhpcyk7CisgICAgY2hpbGRCb3gtPmxheW91dCgpOwogICAgIHNldENo
aWxkTmVlZHNMYXlvdXQoZmFsc2UpOwogICAgIAogICAgIHN0YXRlUHVzaGVyLnBvcCgpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnZpZXdDbGVhcmVkKCkKQEAgLTQ1
OSw0ICs0NjUsMjAgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRD
dXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJzb3IKICAgICByZXR1cm4gUmVuZGVy
UGFydDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJzb3IpOwogfQogCitib29sIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAoreworI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQorICAgIGlmICghbm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAodG9FbGVtZW50KG5vZGUoKSktPmlzTWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisKKyAgICBpZiAoaXNTbmFwc2hvdHRlZFBsdWdJbigpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRleCA2OTY0NzA3
Li4zMGIyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaApAQCAtNjMsMTAgKzYzLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBD
dXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29u
c3Q7CiAKLSNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBjb25zdCBSZW5k
ZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gJm1fY2hpbGRyZW47
IH0KICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgeyByZXR1cm4gJm1fY2hp
bGRyZW47IH0KLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgp
IE9WRVJSSURFOwpAQCAtOTQsMTEgKzkyLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0luVW5h
dmFpbGFibGVQbHVnaW5JbmRpY2F0b3IoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKICAgICBi
b29sIGdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgRmxvYXRSZWN0JiBjb250ZW50UmVjdCwgUGF0aCYsIEZsb2F0UmVjdCYgcmVw
bGFjZW1lbnRUZXh0UmVjdCwgRm9udCYsIFRleHRSdW4mLCBmbG9hdCYgdGV4dFdpZHRoKSBjb25z
dDsKIAotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIHZpcnR1YWwgYm9v
bCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBub2RlKCkgJiYgdG9FbGVtZW50KG5v
ZGUoKSktPmlzTWVkaWFFbGVtZW50KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxD
aGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRl
ck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gY2hpbGRy
ZW4oKTsgfQotI2VuZGlmCisgICAgCisgICAgdmlydHVhbCBib29sIGNhbkhhdmVXaWRnZXQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIG1faGFzRmFsbGJhY2tDb250ZW50OyAv
LyBGSVhNRTogVGhpcyBiZWxvbmdzIG9uIEhUTUxPYmplY3RFbGVtZW50LgogCkBAIC0xMDcsOSAr
MTA1LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91bmF2YWlsYWJsZVBsdWdpblJlcGxhY2Vt
ZW50VGV4dDsKICAgICBib29sIG1fdW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQ7
CiAgICAgYm9vbCBtX21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3I7Ci0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0IG1fY2hpbGRyZW47Ci0jZW5kaWYKIH07CiAKIGlubGluZSBSZW5kZXJFbWJlZGRlZE9iamVj
dCogdG9SZW5kZXJFbWJlZGRlZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmlu
ZGV4IGMzNjFiYjAuLjRjN2ViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJs
b2NrKGVsZW1lbnQpCisgICAgOiBSZW5kZXJFbWJlZGRlZE9iamVjdChlbGVtZW50KQogICAgICwg
bV9zbmFwc2hvdFJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKQogewogICAg
IG1fc25hcHNob3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKQEAgLTY2LDcgKzY2LDcgQEAg
dm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICBTdGFja1N0YXRzOjpM
YXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CiAgICAgTGF5b3V0U2l6ZSBvbGRTaXpl
ID0gY29udGVudEJveFJlY3QoKS5zaXplKCk7CiAKLSAgICBSZW5kZXJCbG9jazo6bGF5b3V0KCk7
CisgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91dCgpOwogCiAgICAgTGF5b3V0U2l6ZSBu
ZXdTaXplID0gY29udGVudEJveFJlY3QoKS5zaXplKCk7CiAgICAgaWYgKG5ld1NpemUgPT0gb2xk
U2l6ZSkKQEAgLTkyLDcgKzkyLDIwIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpCiAgICAgICAg
IHBhaW50U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAgfQogCi0gICAgUmVu
ZGVyQmxvY2s6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgIFBhaW50UGhhc2Ug
bmV3UGhhc2UgPSAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzKSA/
IFBhaW50UGhhc2VPdXRsaW5lIDogcGFpbnRJbmZvLnBoYXNlOworICAgIG5ld1BoYXNlID0gKG5l
d1BoYXNlID09IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMpID8gUGFpbnRQaGFzZUNo
aWxkQmxvY2tCYWNrZ3JvdW5kIDogbmV3UGhhc2U7CisKKyAgICBQYWludEluZm8gcGFpbnRJbmZv
Rm9yQ2hpbGQocGFpbnRJbmZvKTsKKyAgICBwYWludEluZm9Gb3JDaGlsZC5waGFzZSA9IG5ld1Bo
YXNlOworICAgIHBhaW50SW5mb0ZvckNoaWxkLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVu
KHRoaXMpOworCisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICBMYXlvdXRQ
b2ludCBjaGlsZFBvaW50ID0gZmxpcEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY2hpbGQsIHBhaW50
T2Zmc2V0KTsKKyAgICAgICAgaWYgKCFjaGlsZC0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiAh
Y2hpbGQtPmlzRmxvYXRpbmcoKSkKKyAgICAgICAgICAgIGNoaWxkLT5wYWludChwYWludEluZm9G
b3JDaGlsZCwgY2hpbGRQb2ludCk7CisgICAgfQorCisgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiB2b2lkIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpwYWludFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQpCkBAIC0xMzEsNyArMTQ0LDcgQEAgQ3Vyc29yRGlyZWN0aXZl
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50LCBDdXIKICAgICAgICAgb3ZlcnJpZGVDdXJzb3IgPSBoYW5kQ3Vyc29yKCk7CiAgICAgICAg
IHJldHVybiBTZXRDdXJzb3I7CiAgICAgfQotICAgIHJldHVybiBSZW5kZXJCbG9jazo6Z2V0Q3Vy
c29yKHBvaW50LCBvdmVycmlkZUN1cnNvcik7CisgICAgcmV0dXJuIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpnZXRDdXJzb3IocG9pbnQsIG92ZXJyaWRlQ3Vyc29yKTsKIH0KIAogdm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCBmYzNk
YzI3Li44NTRhMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbl9oCiAjZGVmaW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luX2gKIAotI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIK
ICNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIDogcHVibGljIFJl
bmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIDogcHVibGljIFJlbmRl
ckVtYmVkZGVkT2JqZWN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4oKTsKQEAgLTUwLDYgKzUwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IEN1cnNvckRpcmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICAKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuSGF2ZVdpZGdldCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
IAo=
</data>
<flag name="review"
          id="214872"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>