<?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>131562</bug_id>
          
          <creation_ts>2014-04-11 13:59:57 -0700</creation_ts>
          <short_desc>[GTK] Add HighDPI support for non-accelerated compositing contents</short_desc>
          <delta_ts>2014-05-29 08:11:32 -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>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>131589</dependson>
          <blocked>133377</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>gustavo</cc>
    
    <cc>otaylor</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1000024</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-11 13:59:57 -0700</bug_when>
    <thetext>We need plumbing to route the scaling factor from GTK+ to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000052</commentid>
    <comment_count>1</comment_count>
      <attachid>229165</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-11 15:07:05 -0700</bug_when>
    <thetext>Created attachment 229165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000053</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 15:09:28 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000054</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-11 15:12:34 -0700</bug_when>
    <thetext>Owen, I made a few stylistic changes and moved the attachment of the property notify handler to webkitWebViewBaseCreateWebPage. This allowed me to transform the check for pageProxy into an assertion. Do you mind taking a quick look at the patch to see if I inadvertently introduced any non-cosmetic changes? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000069</commentid>
    <comment_count>4</comment_count>
    <who name="Owen Taylor">otaylor</who>
    <bug_when>2014-04-11 15:41:06 -0700</bug_when>
    <thetext>As far as can tell from comparing the patches, the changes seem to be functionally equivalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000071</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-11 15:42:44 -0700</bug_when>
    <thetext>Okay. Thanks. I&apos;ll land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000101</commentid>
    <comment_count>6</comment_count>
      <attachid>229165</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 16:20:52 -0700</bug_when>
    <thetext>Comment on attachment 229165
Patch

Clearing flags on attachment: 229165

Committed r167168: &lt;http://trac.webkit.org/changeset/167168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000102</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 16:20:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000185</commentid>
    <comment_count>8</comment_count>
      <attachid>229165</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-12 02:14:07 -0700</bug_when>
    <thetext>Comment on attachment 229165
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:973
&gt; +    ASSERT(priv-&gt;pageProxy);

This shouldn&apos;t happen, the signal is connected after creating the page and the page proxy is destroyed on finalize when the private struct is destroyed. If we want to be extra sure, we can save the signal handler and disconnect the signal on dispose since the page is closed there, any further call to page proxy after closed will be simply ignored.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:996
&gt; +    g_signal_connect(object, &quot;notify::scale-factor&quot;, G_CALLBACK(scaleFactorChanged), NULL);

What is object here? does this even build? Use nullptr, instead of NULL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000192</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-12 08:45:27 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 229165 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229165&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:973
&gt; &gt; +    ASSERT(priv-&gt;pageProxy);
&gt; 
&gt; This shouldn&apos;t happen, the signal is connected after creating the page and the page proxy is destroyed on finalize when the private struct is destroyed. If we want to be extra sure, we can save the signal handler and disconnect the signal on dispose since the page is closed there, any further call to page proxy after closed will be simply ignored.

&quot;This shouldn&apos;t happen&quot; is precisely the situation to use an assertion in!

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:996
&gt; &gt; +    g_signal_connect(object, &quot;notify::scale-factor&quot;, G_CALLBACK(scaleFactorChanged), NULL);
&gt; 
&gt; What is object here? does this even build? Use nullptr, instead of NULL.

Ah, I let this one slip through. I can land a fix for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000281</commentid>
    <comment_count>10</comment_count>
      <attachid>229165</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-13 04:11:26 -0700</bug_when>
    <thetext>Comment on attachment 229165
Patch

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

&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:270
&gt; +    ASSERT_UNUSED(xScale, 1 == xScale);

Has this been tested in Debug builds? This ASSERT hits in the Debug bot, see http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r167177%20(41643)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000283</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-13 04:19:10 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 131589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012400</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-29 05:06:26 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 229165 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229165&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:270
&gt; &gt; +    ASSERT_UNUSED(xScale, 1 == xScale);
&gt; 
&gt; Has this been tested in Debug builds? This ASSERT hits in the Debug bot, see http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r167177%20(41643)/results.html

The problem is that the tests can also set the device scale factor using WKPageSetCustomBackingScaleFactor, even if we don&apos;t set the intrinsic device scale factor to the web page proxy. So we might end up with a scaleFactor &gt; 1 at any moment. We could make sure the custom scale factor is always 1 when hidpi is not supported for GTK+. I&apos;ll rebase the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012407</commentid>
    <comment_count>13</comment_count>
      <attachid>232244</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-29 05:40:35 -0700</bug_when>
    <thetext>Created attachment 232244
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012422</commentid>
    <comment_count>14</comment_count>
      <attachid>232244</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-29 08:00:52 -0700</bug_when>
    <thetext>Comment on attachment 232244
Rebased patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1853
&gt; +    return;

Like we discussed, please add a FIXME saying that this is only temporary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012428</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-29 08:11:32 -0700</bug_when>
    <thetext>Committed r169445: &lt;http://trac.webkit.org/changeset/169445&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229165</attachid>
            <date>2014-04-11 15:07:05 -0700</date>
            <delta_ts>2014-05-29 05:40:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131562-20140411150644.patch</filename>
            <type>text/plain</type>
            <size>17498</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU4ZGI1MWQ3MTdhYjk0
MjA0NWRhYjE4YTg1MGIxMTMzNGEyYzM0My4uODBmZWZhMjY1ZjNlZmI4M2FiNjUwY2Y5MDMxNzFm
MmVmMTZjYTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA0LTExICBPd2Vu
IFRheWxvciAgPG90YXlsb3JAcmVkaGF0LmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgSGlnaERQ
SSBzdXBwb3J0IGZvciBub24tYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgY29udGVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTU2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
VGhpcyB3aWxsIGJlIHRlc3RlZCBvbmNlIHdlIGhhdmUgdGhlIHByb3BlciBkZXBlbmRlbmNpZXMg
aW4gdGhlIFdlYktpdCB0ZXN0aW5nCisgICAgICAgIEpIQnVpbGQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKTogQWNjZXB0IGEgZGV2aWNlIHNjYWxl
IGFyZ3VtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNh
aXJvLmNwcDogVXNlIHRoZSBkZXZpY2Ugc2NhbGUgYXJndW1lbnQgdG8gbWFrZSB0aGUgc3VyZmFj
ZSB0aGUgcHJvcGVyIHNpemUgYW5kIHNldCB0aGUgc3VyZmFjZSBkZXZpY2Ugc2NhbGUuCisgICAg
ICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uaDogQWNjZXB0IGEg
ZGV2aWNlIHNjYWxlIGFyZ3VtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmNwcDogQWRkIGEgbmV3IGhlbHBlciB0byBzZXQgdGhlIGRldmljZSBz
Y2FsZSBpZiBDYWlybyBidWlsdCBhZ2FpbnN0IGlzIG5ldyBlbm91Z2guCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvR3RrVmVyc2lvbmluZy5oOiBBZGQgdGhlIEhBVkVfR1RLX1NDQUxFX0ZBQ1RPUiBtYWNy
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmNwcDog
VXNlIHRoZSBkZXZpY2Ugc2NhbGUgYXJndW1lbnQgdG8gbWFrZSB0aGUgc3VyZmFjZSB0aGUgcHJv
cGVyIHNpemUgYW5kIHNldCB0aGUgc3VyZmFjZSBkZXZpY2Ugc2NhbGUuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5oOiBBY2NlcHQgYSBkZXZpY2Ugc2Nh
bGUgYXJndW1lbnQuCisKIDIwMTQtMDQtMTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51c2VkIHJ1bGVyIGlu
IG92ZXJsYXkgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDkwZjdkMjUxMDRlMjc2M2NhYjc1ZmMxMTY1OWYz
ZTA1YjkzZmJhYWUuLjFiZWNhMTA1MjlkOTdlZTAyNTFkZDYzZWNjYzY2NTIxMTVhODdmNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNC0xMSAgT3dlbiBUYXlsb3IgIDxvdGF5
bG9yQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEhpZ2hEUEkgc3VwcG9ydCBmb3Ig
bm9uLWFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGNvbnRlbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1NjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHNjYWxlRmFjdG9yQ2hhbmdlZCk6IEFkZGVkIHRoaXMg
Y2FsbGJhY2sgdG8gcGFzcyBzY2FsZSBjaGFuZ2VzIHRvIHRoZSBwYWdlIHByb3h5LgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKTogQXR0YWNoIHRoZSBjYWxsYmFjayB0
byB0aGUgbm90aWZ5IHNpZ25hbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0
b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVCYWNraW5nU3RvcmVGb3JHVEsp
OiBQYXNzIHRoZSBzY2FsZSBmYWN0b3IgdG8gdGhlIFdlYkNvcmUgYmFja2luZyBzdG9yZS4KKyAg
ICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6IERpdHRvLgor
CiAyMDE0LTA0LTEwICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBhZnRlciByMTY3MDc0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRl
eCBmNGJiMjU1M2RhNjdkNjMyMWMzYjAzOTgyOTU4MjQyYjBmNDhhN2U2Li5hNTg3N2Y1N2ViOWQ1
NWQ4MzlmZjkyZjY2N2ExYjhkMjIzNmQwMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaApAQCAtNDksMTEgKzQ5LDE3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGNhaXJvX3N1cmZhY2VfdCogY2Fpcm9TdXJmYWNlKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSA9IDA7CiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIHsg
cmV0dXJuIG1fc2l6ZTsgfQotICAgIFdpZGdldEJhY2tpbmdTdG9yZShjb25zdCBJbnRTaXplJiBz
aXplKSA6IG1fc2l6ZShzaXplKSB7IH0KKworICAgIFdpZGdldEJhY2tpbmdTdG9yZShjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgOiBtX3NpemUo
c2l6ZSkKKyAgICAgICAgLCBtX2RldmljZVNjYWxlRmFjdG9yKGRldmljZVNjYWxlRmFjdG9yKQor
ICAgIHsgfQorCiAgICAgdmlydHVhbCB+V2lkZ2V0QmFja2luZ1N0b3JlKCkgeyB9CiAKLXByaXZh
dGU6Citwcm90ZWN0ZWQ6CiAgICAgSW50U2l6ZSBtX3NpemU7CisgICAgZmxvYXQgbV9kZXZpY2VT
Y2FsZUZhY3RvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cAppbmRleCAwM2RkMWJlYjkyMzcyZTJjY2E2NWM0MmUzMzczZDI2Mjg4YmU4M2UwLi5jMWY1MDIz
ZDJlNTZiZDMyMzM4YzRkY2FhZDI5M2M2ZGI1MmEyNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBA
IC0yNiw4ICsyNiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzUmVm
UHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZShQbGF0Zm9y
bVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCitzdGF0aWMgUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRn
ZXQgd2lkZ2V0LCBJbnRTaXplIHNpemUsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQogeworICAg
IHNpemUuc2NhbGUoZGV2aWNlU2NhbGVGYWN0b3IpOworCiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IHJldHVybiBhZG9wdFJlZihnZGtfd2luZG93X2NyZWF0ZV9zaW1pbGFyX3N1cmZhY2UoZ3RrX3dp
ZGdldF9nZXRfd2luZG93KHdpZGdldCksIENBSVJPX0NPTlRFTlRfQ09MT1JfQUxQSEEsIHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogI2Vsc2UKQEAgLTM2LDIwICszOCwyMCBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUoUGxhdGZvcm1XaWRnZXQgdwogI2VuZGlmCiB9CiAKLVBhc3NPd25QdHI8V2lkZ2V0QmFja2lu
Z1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdp
ZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3Jl
PiBXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyh3aWRnZXQsIHNpemUpKTsK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvKHdpZGdldCwg
c2l6ZSwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKIH0KIAogLy8gV2Uga2VlcCB0d28gY29waWVzIG9m
IHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkgdXNhZ2UsIGJ1
dCBpbmNyZWFzZQogLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZl
IHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKIC8vIHF1aWNrIHNj
cm9sbGluZyByZXF1ZXN0cy4KLVdpZGdldEJhY2tpbmdTdG9yZUNhaXJvOjpXaWRnZXRCYWNraW5n
U3RvcmVDYWlybyhQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi0g
ICAgOiBXaWRnZXRCYWNraW5nU3RvcmUoc2l6ZSkKLSAgICAsIG1fc3VyZmFjZShjcmVhdGVTdXJm
YWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpCi0gICAgLCBtX3Njcm9sbFN1cmZhY2Uo
Y3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKQotCitXaWRnZXRCYWNr
aW5nU3RvcmVDYWlybzo6V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8oUGxhdGZvcm1XaWRnZXQgd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6
IFdpZGdldEJhY2tpbmdTdG9yZShzaXplLCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAsIG1fc3Vy
ZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSwgZGV2aWNlU2Nh
bGVGYWN0b3IpKQorICAgICwgbV9zY3JvbGxTdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5n
U3RvcmUod2lkZ2V0LCBzaXplLCBkZXZpY2VTY2FsZUZhY3RvcikpCiB7CisgICAgY2Fpcm9TdXJm
YWNlU2V0RGV2aWNlU2NhbGUobV9zdXJmYWNlLmdldCgpLCBkZXZpY2VTY2FsZUZhY3RvciwgZGV2
aWNlU2NhbGVGYWN0b3IpOwogfQogCiBXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6fldpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
YWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5oCmluZGV4IDM5ZDI2NTcwYmE4MmM4ZDkyNDNj
ODI4MGY4Y2I0YzM1NzkwZmU0ZTguLmNhMmVjNDhiMTljZWU2MTEyN2RjNGI0NTRiYTA5OTc3YjY2
NTg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8uaApAQCAtMjcsOCArMjcsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyA6IHB1YmxpYyBXaWRnZXRCYWNraW5n
U3RvcmUgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0
b3JlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQsIGNvbnN0IEludFNpemUmKTsKLSAgICBXaWRnZXRC
YWNraW5nU3RvcmVDYWlybyhQbGF0Zm9ybVdpZGdldCwgY29uc3QgSW50U2l6ZSYpOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0
LCBjb25zdCBJbnRTaXplJiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIFdpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvKFBsYXRmb3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJiwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgIH5XaWRnZXRCYWNraW5nU3RvcmVDYWlybygpOwogICAgIGNh
aXJvX3N1cmZhY2VfdCogY2Fpcm9TdXJmYWNlKCk7CiAgICAgdm9pZCBzY3JvbGwoY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFNpemUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCAwZDc0NzExMDdi
Zjg2Y2U1ZWMwNmY1MDQyMmVhZGY4MjYwNzJmNmEzLi4xYTY2MTlhMjQ0NTk3ZjEyYmQwMGQxNGMx
MWQ5NGE3YzQ0MGY1MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtUGF0aENhaXJvLmgiCiAjaW5jbHVk
ZSAiUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCkBAIC0y
NTksNCArMjYwLDE1IEBAIEludFNpemUgY2Fpcm9TdXJmYWNlU2l6ZShjYWlyb19zdXJmYWNlX3Qq
IHN1cmZhY2UpCiAgICAgfQogfQogCit2b2lkIGNhaXJvU3VyZmFjZVNldERldmljZVNjYWxlKGNh
aXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgZG91YmxlIHhTY2FsZSwgZG91YmxlIHlTY2FsZSkKK3sK
KyAgICAvLyBUaGlzIGZ1bmN0aW9uIHdhcyBhZGRlZCBwcmV0dHkgbXVjaCBzaW11bHRhbmVvdXMg
dG8gd2hlbiAxLjEzIHdhcyBicmFuY2hlZC4KKyNpZiBIQVZFKENBSVJPX1NVUkZBQ0VfU0VUX0RF
VklDRV9TQ0FMRSkKKyAgICBjYWlyb19zdXJmYWNlX3NldF9kZXZpY2Vfc2NhbGUoc3VyZmFjZSwg
eFNjYWxlLCB5U2NhbGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFjZSk7CisgICAg
QVNTRVJUX1VOVVNFRCh4U2NhbGUsIDEgPT0geFNjYWxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHlT
Y2FsZSwgMSA9PSB5U2NhbGUpOworI2VuZGlmCit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0
aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuaAppbmRleCA4YmRiZjljMTAxOGU1MGEwNThmNTcwNDRkZWMxNThiYmUzNDdhMTJh
Li5kOWFhZTg2NmI3OTBhNmYxOTVjNGZkYWJjZmQ1OGUyMWMzMDlkYzE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVz
LmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSA8Y2Fp
cm8uaD4KIAorLy8gVGhpcyBmdW5jdGlvbiB3YXMgYWRkZWQgcHJldHR5IG11Y2ggc2ltdWx0YW5l
b3VzIHRvIHdoZW4gMS4xMyB3YXMgYnJhbmNoZWQuCisjZGVmaW5lIEhBVkVfQ0FJUk9fU1VSRkFD
RV9TRVRfREVWSUNFX1NDQUxFIENBSVJPX1ZFUlNJT05fTUFKT1IgPiAxIHx8IChDQUlST19WRVJT
SU9OX01BSk9SID09IDEgJiYgQ0FJUk9fVkVSU0lPTl9NSU5PUiA+PSAxMykKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQ29sb3I7CkBAIC01Niw2
ICs1OSw3IEBAIHZvaWQgY29weVJlY3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1
cmZhY2VfdCogZnJvbSwgY2Fpcm9fdCogdG8sIGNvbnN0CiB2b2lkIGNvcHlSZWN0RnJvbU9uZVN1
cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRv
LCBjb25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiA9
IEludFNpemUoKSwgY2Fpcm9fb3BlcmF0b3JfdCA9IENBSVJPX09QRVJBVE9SX09WRVIpOwogCiBJ
bnRTaXplIGNhaXJvU3VyZmFjZVNpemUoY2Fpcm9fc3VyZmFjZV90Kik7Cit2b2lkIGNhaXJvU3Vy
ZmFjZVNldERldmljZVNjYWxlKGNhaXJvX3N1cmZhY2VfdCosIGRvdWJsZSB4U2NhbGUsIGRvdWJs
ZSB5U2NhbGUpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5jcHAKaW5k
ZXggNTFkNjVlMjIyNGQxZDBlMmExZjdiNGI0YzBiYWE4ZDI2MTI3YjQwZS4uMGU1NTFiODZjZGU3
NDYyNTgzYjU0MmRmYjAwN2MyN2Y1NTFiYjg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5jcHAKQEAgLTE5LDYg
KzE5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3Rv
cmVHdGtYMTEuaCIKIAorI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3Rr
VmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8Y2Fpcm8t
eGxpYi5oPgpAQCAtMjcsMjMgKzI4LDI4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c093blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMTo6Y3Jl
YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorUGFzc093blB0cjxX
aWRnZXRCYWNraW5nU3RvcmU+IFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMTo6Y3JlYXRlKEd0a1dp
ZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMSh3
aWRnZXQsIHNpemUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdldEJhY2tpbmdTdG9y
ZUd0a1gxMSh3aWRnZXQsIHNpemUsIGRldmljZVNjYWxlRmFjdG9yKSk7CiB9CiAKLVdpZGdldEJh
Y2tpbmdTdG9yZUd0a1gxMTo6V2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExKEd0a1dpZGdldCogd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogV2lkZ2V0QmFja2luZ1N0b3JlKHNpemUp
CitXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTE6OldpZGdldEJhY2tpbmdTdG9yZUd0a1gxMShHdGtX
aWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpCisgICAgOiBXaWRnZXRCYWNraW5nU3RvcmUoc2l6ZSwgZGV2aWNlU2NhbGVGYWN0b3IpCiB7
CisgICAgSW50U2l6ZSBzY2FsZWRTaXplID0gc2l6ZTsKKyAgICBzY2FsZWRTaXplLnNjYWxlKGRl
dmljZVNjYWxlRmFjdG9yKTsKKwogICAgIEdka1Zpc3VhbCogdmlzdWFsID0gZ3RrX3dpZGdldF9n
ZXRfdmlzdWFsKHdpZGdldCk7CiAgICAgR2RrU2NyZWVuKiBzY3JlZW4gPSBnZGtfdmlzdWFsX2dl
dF9zY3JlZW4odmlzdWFsKTsKICAgICBtX2Rpc3BsYXkgPSBHREtfU0NSRUVOX1hESVNQTEFZKHNj
cmVlbik7CiAgICAgbV9waXhtYXAgPSBYQ3JlYXRlUGl4bWFwKG1fZGlzcGxheSwgR0RLX1dJTkRP
V19YSUQoZ2RrX3NjcmVlbl9nZXRfcm9vdF93aW5kb3coc2NyZWVuKSksCi0gICAgICAgIHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZ2RrX3Zpc3VhbF9nZXRfZGVwdGgodmlzdWFsKSk7Cisg
ICAgICAgIHNjYWxlZFNpemUud2lkdGgoKSwgc2NhbGVkU2l6ZS5oZWlnaHQoKSwgZ2RrX3Zpc3Vh
bF9nZXRfZGVwdGgodmlzdWFsKSk7CiAgICAgbV9nYyA9IFhDcmVhdGVHQyhtX2Rpc3BsYXksIG1f
cGl4bWFwLCAwLCAwKTsKIAogICAgIG1fc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX3hsaWJfc3Vy
ZmFjZV9jcmVhdGUobV9kaXNwbGF5LCBtX3BpeG1hcCwKLSAgICAgICAgR0RLX1ZJU1VBTF9YVklT
VUFMKHZpc3VhbCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOworICAgICAgICBHREtf
VklTVUFMX1hWSVNVQUwodmlzdWFsKSwgc2NhbGVkU2l6ZS53aWR0aCgpLCBzY2FsZWRTaXplLmhl
aWdodCgpKSk7CisKKyAgICBjYWlyb1N1cmZhY2VTZXREZXZpY2VTY2FsZShtX3N1cmZhY2UuZ2V0
KCksIGRldmljZVNjYWxlRmFjdG9yLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiB9CiAKIFdpZGdldEJh
Y2tpbmdTdG9yZUd0a1gxMTo6fldpZGdldEJhY2tpbmdTdG9yZUd0a1gxMSgpCkBAIC02Nyw5ICs3
MywxNCBAQCB2b2lkIFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMTo6c2Nyb2xsKGNvbnN0IEludFJl
Y3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmCiAgICAgaWYgKHRhcmdldFJlY3QuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB0YXJnZXRSZWN0LnNjYWxlKG1fZGV2aWNlU2Nh
bGVGYWN0b3IpOworCisgICAgSW50U2l6ZSBzY2FsZWRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZz
ZXQ7CisgICAgc2NhbGVkU2Nyb2xsT2Zmc2V0LnNjYWxlKG1fZGV2aWNlU2NhbGVGYWN0b3IpOwor
CiAgICAgY2Fpcm9fc3VyZmFjZV9mbHVzaChtX3N1cmZhY2UuZ2V0KCkpOwogICAgIFhDb3B5QXJl
YShtX2Rpc3BsYXksIG1fcGl4bWFwLCBtX3BpeG1hcCwgbV9nYywgCi0gICAgICAgIHRhcmdldFJl
Y3QueCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCksIHRhcmdldFJlY3QueSgpIC0gc2Nyb2xsT2Zm
c2V0LmhlaWdodCgpLAorICAgICAgICB0YXJnZXRSZWN0LngoKSAtIHNjYWxlZFNjcm9sbE9mZnNl
dC53aWR0aCgpLCB0YXJnZXRSZWN0LnkoKSAtIHNjYWxlZFNjcm9sbE9mZnNldC5oZWlnaHQoKSwK
ICAgICAgICAgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLAogICAgICAg
ICB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCkpOwogICAgIGNhaXJvX3N1cmZhY2VfbWFy
a19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5oCmluZGV4IDdhNGIx
MWYzOGJlYjk0NTRkMDkxMDIyNmJmYWMwYjI3OTkzYmM5YjIuLmI4MDNhYTJlYjc2YzViMTM1MjI5
OGNkODJmZGRhZTJkYzk1YTEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9XaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmgKQEAgLTI5LDggKzI5LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExIDogcHVibGlj
IFdpZGdldEJhY2tpbmdTdG9yZSB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxX
aWRnZXRCYWNraW5nU3RvcmU+IGNyZWF0ZShHdGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJik7Ci0g
ICAgV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExKEd0a1dpZGdldCosIGNvbnN0IEludFNpemUmKTsK
KyAgICBzdGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IGNyZWF0ZShHdGtXaWRn
ZXQqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIFdpZGdl
dEJhY2tpbmdTdG9yZUd0a1gxMShHdGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgIH5XaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEoKTsKICAgICBj
YWlyb19zdXJmYWNlX3QqIGNhaXJvU3VyZmFjZSgpOwogICAgIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAKaW5kZXggYmViNThjZmRlY2VkYzkzNzM4MWNmMmY1MTdhZDcxYTJkZmMyYjc1Ny4uZjI2ZTcy
MjQ5MjcxNmY5MGIzYTQ5ZThlZGFiZTViZGRlZjE2NDNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYs
NiArNDYsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViVmlld0Jhc2VJbnB1dE1ldGhvZEZpbHRlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NsaXBi
b2FyZFV0aWxpdGllc0d0ay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YU9iamVjdEd0ay5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KQEAgLTc4LDYgKzc5LDEwIEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5oPgogI2VuZGlmCiAKKy8vIGd0
a193aWRnZXRfZ2V0X3NjYWxlX2ZhY3RvcigpIGFwcGVhcmVkIGluIEdUSyAzLjEwLCBidXQgd2Ug
YWxzbyBuZWVkCisvLyB0byBtYWtlIHN1cmUgd2UgaGF2ZSBjYWlybyBuZXcgZW5vdWdoIHRvIHN1
cHBvcnQgY2Fpcm9fc3VyZmFjZV9zZXRfZGV2aWNlX3NjYWxlCisjZGVmaW5lIEhBVkVfR1RLX1ND
QUxFX0ZBQ1RPUiBIQVZFX0NBSVJPX1NVUkZBQ0VfU0VUX0RFVklDRV9TQ0FMRSAmJiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAxMCwgMCkKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC05NjEsNiArOTY2LDE1IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VVcGRhdGVQcmVmZXJlbmNlcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jh
c2UpCiAgICAgcHJpdi0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS5wcmVmZXJlbmNlcygpLnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGZhbHNlKTsKIH0KIAorI2lmIEhBVkUoR1RLX1ND
QUxFX0ZBQ1RPUikKK3N0YXRpYyB2b2lkIHNjYWxlRmFjdG9yQ2hhbmdlZChHT2JqZWN0KiBvYmpl
Y3QsIEdQYXJhbVNwZWMqKQoreworICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9XRUJfVklFV19CQVNFKG9iamVjdCktPnByaXY7CisgICAgQVNTRVJUKHByaXYtPnBh
Z2VQcm94eSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3RvcihndGtfd2lkZ2V0X2dldF9zY2FsZV9mYWN0b3IoR1RLX1dJREdFVChvYmplY3QpKSk7Cit9
CisjZW5kaWYgLy8gSEFWRShHVEtfU0NBTEVfRkFDVE9SKQorCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlQ3JlYXRlV2ViUGFnZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdl
YkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBXZWJQYWdlUHJveHkq
IHJlbGF0ZWRQYWdlKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdl
YmtpdFdlYlZpZXdCYXNlLT5wcml2OwpAQCAtOTc2LDYgKzk5MCwxMiBAQCB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlQ3JlYXRlV2ViUGFnZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jh
c2UsIFdlYkNvbgogICAgICAgICBwcml2LT5wYWdlUHJveHktPnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdXaW5kb3dJZChwcml2LT5yZWRpcmVjdGVkV2luZG93LT53aW5kb3dJZCgpKTsKICNlbmRp
ZgogCisjaWYgSEFWRShHVEtfU0NBTEVfRkFDVE9SKQorICAgIC8vIFdlIGF0dGFjaCB0aGlzIGhl
cmUsIGJlY2F1c2UgY2hhbmdlcyBpbiBzY2FsZSBmYWN0b3IgYXJlIHBhc3NlZCBkaXJlY3RseSB0
byB0aGUgcGFnZSBwcm94eS4KKyAgICBwcml2LT5wYWdlUHJveHktPnNldEludHJpbnNpY0Rldmlj
ZVNjYWxlRmFjdG9yKGd0a193aWRnZXRfZ2V0X3NjYWxlX2ZhY3RvcihHVEtfV0lER0VUKHdlYmtp
dFdlYlZpZXdCYXNlKSkpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qob2JqZWN0LCAibm90aWZ5Ojpz
Y2FsZS1mYWN0b3IiLCBHX0NBTExCQUNLKHNjYWxlRmFjdG9yQ2hhbmdlZCksIE5VTEwpOworI2Vu
ZGlmCisKICAgICB3ZWJraXRXZWJWaWV3QmFzZVVwZGF0ZVByZWZlcmVuY2VzKHdlYmtpdFdlYlZp
ZXdCYXNlKTsKIAogICAgIC8vIFRoaXMgbXVzdCBoYXBwZW4gaGVyZSBpbnN0ZWFkIG9mIHRoZSBp
bnN0YW5jZSBpbml0aWFsaXplciwgYmVjYXVzZSB0aGUgaW5wdXQgbWV0aG9kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRl
eCA2YWEwMGI2NDc1MzI1NjMzOWQyMDJkMjcwOTY0ZjQ1NzIxNjQzZDk3Li44OTk2OGFlNTk5YzFl
ZjNiZTZlMWVkNzNlMWU3OTU5OTczMGNlNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTQ4LDE0ICs0OCwxNCBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExB
VEZPUk0oR1RLKQotc3RhdGljIE93blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IGNyZWF0ZUJhY2tp
bmdTdG9yZUZvckdUSyhHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3N0
YXRpYyBPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGVCYWNraW5nU3RvcmVGb3JHVEso
R3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKQogewogI2lmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gx
MSkKICAgICBHZGtEaXNwbGF5KiBkaXNwbGF5ID0gZ2RrX2Rpc3BsYXlfbWFuYWdlcl9nZXRfZGVm
YXVsdF9kaXNwbGF5KGdka19kaXNwbGF5X21hbmFnZXJfZ2V0KCkpOwogICAgIGlmIChHREtfSVNf
WDExX0RJU1BMQVkoZGlzcGxheSkpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpXaWRnZXRCYWNr
aW5nU3RvcmVHdGtYMTE6OmNyZWF0ZSh3aWRnZXQsIHNpemUpOworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExOjpjcmVhdGUod2lkZ2V0LCBzaXplLCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKLSAgICByZXR1cm4gV2ViQ29yZTo6V2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm86OmNyZWF0ZSh3aWRnZXQsIHNpemUpOworICAgIHJldHVybiBXZWJDb3JlOjpX
aWRnZXRCYWNraW5nU3RvcmVDYWlybzo6Y3JlYXRlKHdpZGdldCwgc2l6ZSwgZGV2aWNlU2NhbGVG
YWN0b3IpOwogfQogI2VuZGlmCiAKQEAgLTczLDkgKzczLDkgQEAgdm9pZCBCYWNraW5nU3RvcmU6
OmluY29ycG9yYXRlVXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJ
bmZvJgogewogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCiAjaWYgUExBVEZPUk0oRUZMKQotICAg
ICAgICBtX2JhY2tpbmdTdG9yZSA9IFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvOjpjcmVhdGUoRXdr
Vmlldzo6dG9FdmFzT2JqZWN0KHRvQVBJKG1fd2ViUGFnZVByb3h5KSksIHNpemUoKSk7CisgICAg
ICAgIG1fYmFja2luZ1N0b3JlID0gV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm86OmNyZWF0ZShFd2tW
aWV3Ojp0b0V2YXNPYmplY3QodG9BUEkobV93ZWJQYWdlUHJveHkpKSwgc2l6ZSgpLCBkZXZpY2VT
Y2FsZUZhY3RvcigpKTsKICNlbHNlCi0gICAgICAgIG1fYmFja2luZ1N0b3JlID0gY3JlYXRlQmFj
a2luZ1N0b3JlRm9yR1RLKG1fd2ViUGFnZVByb3h5LT52aWV3V2lkZ2V0KCksIHNpemUoKSk7Cisg
ICAgICAgIG1fYmFja2luZ1N0b3JlID0gY3JlYXRlQmFja2luZ1N0b3JlRm9yR1RLKG1fd2ViUGFn
ZVByb3h5LT52aWV3V2lkZ2V0KCksIHNpemUoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAjZW5k
aWYKIAogICAgIHNjcm9sbCh1cGRhdGVJbmZvLnNjcm9sbFJlY3QsIHVwZGF0ZUluZm8uc2Nyb2xs
T2Zmc2V0KTsKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRl
VXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJgogICAgICAg
ICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzW2ldOwogICAgICAg
ICBJbnRSZWN0IHNyY1JlY3QgPSB1cGRhdGVSZWN0OwogICAgICAgICBzcmNSZWN0Lm1vdmUoLXVw
ZGF0ZVJlY3RMb2NhdGlvbi54KCksIC11cGRhdGVSZWN0TG9jYXRpb24ueSgpKTsKLSAgICAgICAg
Yml0bWFwLT5wYWludChncmFwaGljc0NvbnRleHQsIHVwZGF0ZVJlY3QubG9jYXRpb24oKSwgc3Jj
UmVjdCk7CisgICAgICAgIGJpdG1hcC0+cGFpbnQoZ3JhcGhpY3NDb250ZXh0LCBkZXZpY2VTY2Fs
ZUZhY3RvcigpLCB1cGRhdGVSZWN0LmxvY2F0aW9uKCksIHNyY1JlY3QpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232244</attachid>
            <date>2014-05-29 05:40:35 -0700</date>
            <delta_ts>2014-05-29 08:00:52 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk-hidpi.diff</filename>
            <type>text/plain</type>
            <size>17558</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyYjg1MmJlLi41ZmY4NDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTQtMDUtMjkgIE93ZW4gVGF5bG9yICA8b3RheWxvckByZWRoYXQuY29tPgorCisgICAg
ICAgIFtHVEtdIEFkZCBIaWdoRFBJIHN1cHBvcnQgZm9yIG5vbi1hY2NlbGVyYXRlZCBjb21wb3Np
dGluZyBjb250ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxNTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIHdpbGwgYmUgdGVzdGVkIG9uY2Ugd2UgaGF2ZSB0aGUg
cHJvcGVyIGRlcGVuZGVuY2llcyBpbiB0aGUgV2ViS2l0IHRlc3RpbmcKKyAgICAgICAgSkhCdWls
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRCYWNraW5nU3RvcmUpOiBB
Y2NlcHQgYSBkZXZpY2Ugc2NhbGUgYXJndW1lbnQuCisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOiBVc2UgdGhlIGRldmljZSBzY2FsZSBhcmd1bWVu
dCB0byBtYWtlIHRoZSBzdXJmYWNlIHRoZSBwcm9wZXIgc2l6ZSBhbmQgc2V0IHRoZSBzdXJmYWNl
IGRldmljZSBzY2FsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3Rv
cmVDYWlyby5oOiBBY2NlcHQgYSBkZXZpY2Ugc2NhbGUgYXJndW1lbnQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwOiBBZGQgYSBuZXcgaGVscGVy
IHRvIHNldCB0aGUgZGV2aWNlIHNjYWxlIGlmIENhaXJvIGJ1aWx0IGFnYWluc3QgaXMgbmV3IGVu
b3VnaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmg6IEFkZCB0aGUgSEFWRV9H
VEtfU0NBTEVfRkFDVE9SIG1hY3JvLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9XaWRnZXRCYWNr
aW5nU3RvcmVHdGtYMTEuY3BwOiBVc2UgdGhlIGRldmljZSBzY2FsZSBhcmd1bWVudCB0byBtYWtl
IHRoZSBzdXJmYWNlIHRoZSBwcm9wZXIgc2l6ZSBhbmQgc2V0IHRoZSBzdXJmYWNlIGRldmljZSBz
Y2FsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmg6
IEFjY2VwdCBhIGRldmljZSBzY2FsZSBhcmd1bWVudC4KKwogMjAxNC0wNS0yOCAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDYXB0aW9ucyBkdXJpbmcgSExT
IHBsYXliYWNrIGZsYXNoL2FyZSBkaWZmaWN1bHQgdG8gcmVhZGlseQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCBmNGJiMjU1
Li5hNTg3N2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRn
ZXRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRn
ZXRCYWNraW5nU3RvcmUuaApAQCAtNDksMTEgKzQ5LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGNhaXJvX3N1cmZhY2VfdCogY2Fpcm9TdXJmYWNlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zm
c2V0KSA9IDA7CiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIHsgcmV0dXJuIG1fc2l6ZTsgfQot
ICAgIFdpZGdldEJhY2tpbmdTdG9yZShjb25zdCBJbnRTaXplJiBzaXplKSA6IG1fc2l6ZShzaXpl
KSB7IH0KKworICAgIFdpZGdldEJhY2tpbmdTdG9yZShjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgOiBtX3NpemUoc2l6ZSkKKyAgICAgICAgLCBt
X2RldmljZVNjYWxlRmFjdG9yKGRldmljZVNjYWxlRmFjdG9yKQorICAgIHsgfQorCiAgICAgdmly
dHVhbCB+V2lkZ2V0QmFja2luZ1N0b3JlKCkgeyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAg
ICAgSW50U2l6ZSBtX3NpemU7CisgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCAwM2RkMWJlLi5j
MWY1MDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmVDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0yNiw4ICsyNiwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRl
U3VyZmFjZUZvckJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNp
emUmIHNpemUpCitzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZh
Y2VGb3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBJbnRTaXplIHNpemUsIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKQogeworICAgIHNpemUuc2NhbGUoZGV2aWNlU2NhbGVGYWN0
b3IpOworCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHJldHVybiBhZG9wdFJlZihnZGtfd2luZG93
X2NyZWF0ZV9zaW1pbGFyX3N1cmZhY2UoZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCksIENB
SVJPX0NPTlRFTlRfQ09MT1JfQUxQSEEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwog
I2Vsc2UKQEAgLTM2LDIwICszOCwyMCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNl
X3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgdwogI2VuZGlm
CiB9CiAKLVBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmVD
YWlybzo6Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K1Bhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6
Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNr
aW5nU3RvcmVDYWlybyh3aWRnZXQsIHNpemUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdp
ZGdldEJhY2tpbmdTdG9yZUNhaXJvKHdpZGdldCwgc2l6ZSwgZGV2aWNlU2NhbGVGYWN0b3IpKTsK
IH0KIAogLy8gV2Uga2VlcCB0d28gY29waWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdp
bGwgZG91YmxlIHRoZSBtZW1vcnkgdXNhZ2UsIGJ1dCBpbmNyZWFzZQogLy8gc2Nyb2xsaW5nIHBl
cmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVt
b3J5IHJlZ2lvbiBkdXJpbmcKIC8vIHF1aWNrIHNjcm9sbGluZyByZXF1ZXN0cy4KLVdpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvOjpXaWRnZXRCYWNraW5nU3RvcmVDYWlybyhQbGF0Zm9ybVdpZGdldCB3
aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgOiBXaWRnZXRCYWNraW5nU3RvcmUoc2l6
ZSkKLSAgICAsIG1fc3VyZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwg
c2l6ZSkpCi0gICAgLCBtX3Njcm9sbFN1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9y
ZSh3aWRnZXQsIHNpemUpKQotCitXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6V2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8oUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplLCBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdpZGdldEJhY2tpbmdTdG9yZShzaXplLCBk
ZXZpY2VTY2FsZUZhY3RvcikKKyAgICAsIG1fc3VyZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2lu
Z1N0b3JlKHdpZGdldCwgc2l6ZSwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwgbV9zY3JvbGxT
dXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplLCBkZXZpY2VT
Y2FsZUZhY3RvcikpCiB7CisgICAgY2Fpcm9TdXJmYWNlU2V0RGV2aWNlU2NhbGUobV9zdXJmYWNl
LmdldCgpLCBkZXZpY2VTY2FsZUZhY3RvciwgZGV2aWNlU2NhbGVGYWN0b3IpOwogfQogCiBXaWRn
ZXRCYWNraW5nU3RvcmVDYWlybzo6fldpZGdldEJhY2tpbmdTdG9yZUNhaXJvKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJv
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWly
by5oCmluZGV4IDM5ZDI2NTcuLmNhMmVjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uaApAQCAtMjcsOCArMjcs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyA6
IHB1YmxpYyBXaWRnZXRCYWNraW5nU3RvcmUgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQsIGNvbnN0IElu
dFNpemUmKTsKLSAgICBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyhQbGF0Zm9ybVdpZGdldCwgY29u
c3QgSW50U2l6ZSYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4g
Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJiwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpOworICAgIFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvKFBsYXRmb3JtV2lkZ2V0LCBjb25z
dCBJbnRTaXplJiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIH5XaWRnZXRCYWNraW5n
U3RvcmVDYWlybygpOwogICAgIGNhaXJvX3N1cmZhY2VfdCogY2Fpcm9TdXJmYWNlKCk7CiAgICAg
dm9pZCBzY3JvbGwoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVz
LmNwcAppbmRleCA1NGM2MGUzLi5mYTRjMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtUGF0aENhaXJv
LmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpCkBAIC0yODIsNCArMjgzLDE1IEBAIHZvaWQgZmxpcEltYWdlU3VyZmFjZVZlcnRpY2Fs
bHkoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogICAgIH0KIH0KIAordm9pZCBjYWlyb1N1cmZh
Y2VTZXREZXZpY2VTY2FsZShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGRvdWJsZSB4U2NhbGUs
IGRvdWJsZSB5U2NhbGUpCit7CisgICAgLy8gVGhpcyBmdW5jdGlvbiB3YXMgYWRkZWQgcHJldHR5
IG11Y2ggc2ltdWx0YW5lb3VzIHRvIHdoZW4gMS4xMyB3YXMgYnJhbmNoZWQuCisjaWYgSEFWRShD
QUlST19TVVJGQUNFX1NFVF9ERVZJQ0VfU0NBTEUpCisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfZGV2
aWNlX3NjYWxlKHN1cmZhY2UsIHhTY2FsZSwgeVNjYWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN1cmZhY2UpOworICAgIEFTU0VSVF9VTlVTRUQoeFNjYWxlLCAxID09IHhTY2FsZSk7Cisg
ICAgQVNTRVJUX1VOVVNFRCh5U2NhbGUsIDEgPT0geVNjYWxlKTsKKyNlbmRpZgorfQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKaW5kZXggMjk1YjI0Yi4uYjIxOTAyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b1V0aWxpdGllcy5oCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2lu
Y2x1ZGUgPGNhaXJvLmg+CiAKKy8vIFRoaXMgZnVuY3Rpb24gd2FzIGFkZGVkIHByZXR0eSBtdWNo
IHNpbXVsdGFuZW91cyB0byB3aGVuIDEuMTMgd2FzIGJyYW5jaGVkLgorI2RlZmluZSBIQVZFX0NB
SVJPX1NVUkZBQ0VfU0VUX0RFVklDRV9TQ0FMRSBDQUlST19WRVJTSU9OX01BSk9SID4gMSB8fCAo
Q0FJUk9fVkVSU0lPTl9NQUpPUiA9PSAxICYmIENBSVJPX1ZFUlNJT05fTUlOT1IgPj0gMTMpCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIENvbG9y
OwpAQCAtNTcsNiArNjAsNyBAQCB2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIo
Y2Fpcm9fc3VyZmFjZV90KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLAogCiBJbnRTaXplIGNh
aXJvU3VyZmFjZVNpemUoY2Fpcm9fc3VyZmFjZV90Kik7CiB2b2lkIGZsaXBJbWFnZVN1cmZhY2VW
ZXJ0aWNhbGx5KGNhaXJvX3N1cmZhY2VfdCopOwordm9pZCBjYWlyb1N1cmZhY2VTZXREZXZpY2VT
Y2FsZShjYWlyb19zdXJmYWNlX3QqLCBkb3VibGUgeFNjYWxlLCBkb3VibGUgeVNjYWxlKTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9XaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEuY3BwCmluZGV4IDUxZDY1ZTIuLjBl
NTUxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRCYWNr
aW5nU3RvcmVHdGtYMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRCYWNraW5nU3RvcmVHdGtYMTEuY3BwCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmgiCiAKKyNpbmNsdWRl
ICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRl
ICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvLXhsaWIuaD4KQEAgLTI3LDIzICsyOCwy
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0
b3JlPiBXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTE6OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRn
ZXRCYWNraW5nU3RvcmVHdGtYMTE6OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50
U2l6ZSYgc2l6ZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEod2lkZ2V0LCBzaXplKSk7CisgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEod2lkZ2V0LCBzaXplLCBk
ZXZpY2VTY2FsZUZhY3RvcikpOwogfQogCi1XaWRnZXRCYWNraW5nU3RvcmVHdGtYMTE6OldpZGdl
dEJhY2tpbmdTdG9yZUd0a1gxMShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkKLSAgICA6IFdpZGdldEJhY2tpbmdTdG9yZShzaXplKQorV2lkZ2V0QmFja2luZ1N0b3JlR3Rr
WDExOjpXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDogV2lkZ2V0QmFja2lu
Z1N0b3JlKHNpemUsIGRldmljZVNjYWxlRmFjdG9yKQogeworICAgIEludFNpemUgc2NhbGVkU2l6
ZSA9IHNpemU7CisgICAgc2NhbGVkU2l6ZS5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7CisKICAg
ICBHZGtWaXN1YWwqIHZpc3VhbCA9IGd0a193aWRnZXRfZ2V0X3Zpc3VhbCh3aWRnZXQpOwogICAg
IEdka1NjcmVlbiogc2NyZWVuID0gZ2RrX3Zpc3VhbF9nZXRfc2NyZWVuKHZpc3VhbCk7CiAgICAg
bV9kaXNwbGF5ID0gR0RLX1NDUkVFTl9YRElTUExBWShzY3JlZW4pOwogICAgIG1fcGl4bWFwID0g
WENyZWF0ZVBpeG1hcChtX2Rpc3BsYXksIEdES19XSU5ET1dfWElEKGdka19zY3JlZW5fZ2V0X3Jv
b3Rfd2luZG93KHNjcmVlbikpLAotICAgICAgICBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCks
IGdka192aXN1YWxfZ2V0X2RlcHRoKHZpc3VhbCkpOworICAgICAgICBzY2FsZWRTaXplLndpZHRo
KCksIHNjYWxlZFNpemUuaGVpZ2h0KCksIGdka192aXN1YWxfZ2V0X2RlcHRoKHZpc3VhbCkpOwog
ICAgIG1fZ2MgPSBYQ3JlYXRlR0MobV9kaXNwbGF5LCBtX3BpeG1hcCwgMCwgMCk7CiAKICAgICBt
X3N1cmZhY2UgPSBhZG9wdFJlZihjYWlyb194bGliX3N1cmZhY2VfY3JlYXRlKG1fZGlzcGxheSwg
bV9waXhtYXAsCi0gICAgICAgIEdES19WSVNVQUxfWFZJU1VBTCh2aXN1YWwpLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgR0RLX1ZJU1VBTF9YVklTVUFMKHZpc3VhbCks
IHNjYWxlZFNpemUud2lkdGgoKSwgc2NhbGVkU2l6ZS5oZWlnaHQoKSkpOworCisgICAgY2Fpcm9T
dXJmYWNlU2V0RGV2aWNlU2NhbGUobV9zdXJmYWNlLmdldCgpLCBkZXZpY2VTY2FsZUZhY3Rvciwg
ZGV2aWNlU2NhbGVGYWN0b3IpOwogfQogCiBXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTE6On5XaWRn
ZXRCYWNraW5nU3RvcmVHdGtYMTEoKQpAQCAtNjcsOSArNzMsMTQgQEAgdm9pZCBXaWRnZXRCYWNr
aW5nU3RvcmVHdGtYMTE6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJ
bnRTaXplJgogICAgIGlmICh0YXJnZXRSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgdGFyZ2V0UmVjdC5zY2FsZShtX2RldmljZVNjYWxlRmFjdG9yKTsKKworICAgIEludFNp
emUgc2NhbGVkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0OworICAgIHNjYWxlZFNjcm9sbE9m
ZnNldC5zY2FsZShtX2RldmljZVNjYWxlRmFjdG9yKTsKKwogICAgIGNhaXJvX3N1cmZhY2VfZmx1
c2gobV9zdXJmYWNlLmdldCgpKTsKICAgICBYQ29weUFyZWEobV9kaXNwbGF5LCBtX3BpeG1hcCwg
bV9waXhtYXAsIG1fZ2MsIAotICAgICAgICB0YXJnZXRSZWN0LngoKSAtIHNjcm9sbE9mZnNldC53
aWR0aCgpLCB0YXJnZXRSZWN0LnkoKSAtIHNjcm9sbE9mZnNldC5oZWlnaHQoKSwKKyAgICAgICAg
dGFyZ2V0UmVjdC54KCkgLSBzY2FsZWRTY3JvbGxPZmZzZXQud2lkdGgoKSwgdGFyZ2V0UmVjdC55
KCkgLSBzY2FsZWRTY3JvbGxPZmZzZXQuaGVpZ2h0KCksCiAgICAgICAgIHRhcmdldFJlY3Qud2lk
dGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQoKSwKICAgICAgICAgdGFyZ2V0UmVjdC54KCksIHRhcmdl
dFJlY3QueSgpKTsKICAgICBjYWlyb19zdXJmYWNlX21hcmtfZGlydHlfcmVjdGFuZ2xlKG1fc3Vy
ZmFjZS5nZXQoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRCYWNraW5nU3RvcmVHdGtYMTEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRCYWNraW5nU3RvcmVHdGtYMTEuaAppbmRleCA3YTRiMTFmLi5iODAzYWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEJhY2tpbmdTdG9yZUd0a1gx
MS5oCkBAIC0yOSw4ICsyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdpZGdldEJh
Y2tpbmdTdG9yZUd0a1gxMSA6IHB1YmxpYyBXaWRnZXRCYWNraW5nU3RvcmUgewogCiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGUoR3RrV2lk
Z2V0KiwgY29uc3QgSW50U2l6ZSYpOwotICAgIFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMShHdGtX
aWRnZXQqLCBjb25zdCBJbnRTaXplJik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFj
a2luZ1N0b3JlPiBjcmVhdGUoR3RrV2lkZ2V0KiwgY29uc3QgSW50U2l6ZSYsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBXaWRnZXRCYWNraW5nU3RvcmVHdGtYMTEoR3RrV2lkZ2V0Kiwg
Y29uc3QgSW50U2l6ZSYsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICAgICB+V2lkZ2V0QmFj
a2luZ1N0b3JlR3RrWDExKCk7CiAgICAgY2Fpcm9fc3VyZmFjZV90KiBjYWlyb1N1cmZhY2UoKTsK
ICAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ5ZWExOGMuLjc4ZDY2ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wNS0yOSAgT3dlbiBUYXlsb3IgIDxvdGF5bG9yQHJl
ZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEhpZ2hEUEkgc3VwcG9ydCBmb3Igbm9uLWFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIGNvbnRlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdC
YXNlLmNwcDoKKyAgICAgICAgKGRldmljZVNjYWxlRmFjdG9yQ2hhbmdlZCk6IEFkZGVkIHRoaXMg
Y2FsbGJhY2sgdG8gcGFzcyBzY2FsZSBjaGFuZ2VzIHRvIHRoZSBwYWdlIHByb3h5LgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKTogQXR0YWNoIHRoZSBjYWxsYmFjayB0
byB0aGUgbm90aWZ5IHNpZ25hbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEN1c3RvbURldmljZVNjYWxlRmFjdG9yKTog
RG8gbm90IHNldCBhCisgICAgICAgIGN1c3RvbSBkZXZpY2Ugc2NhbGUgZmFjdG9yIGZvciBjYWly
byB3aGVuIGl0J3Mgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlQmFja2lu
Z1N0b3JlRm9yR1RLKTogUGFzcyB0aGUgc2NhbGUgZmFjdG9yIHRvIHRoZSBXZWJDb3JlIGJhY2tp
bmcgc3RvcmUuCisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRh
dGUpOiBEaXR0by4KKwogMjAxNC0wNS0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXNlIEdNYWluTG9vcFNvdXJjZSBmb3IgaWRs
ZSBhbmQgdGltZW91dCBzb3VyY2VzIGluIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjOThkNjZk
Li4yZjEwYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJW
aWV3QmFzZUlucHV0TWV0aG9kRmlsdGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxp
dGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpcGJvYXJkVXRpbGl0aWVzR3RrLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EYXRhT2JqZWN0R3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0
YS5oPgpAQCAtNzgsNiArNzksMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlZGlyZWN0ZWRYQ29t
cG9zaXRlV2luZG93Lmg+CiAjZW5kaWYKIAorLy8gZ3RrX3dpZGdldF9nZXRfc2NhbGVfZmFjdG9y
KCkgYXBwZWFyZWQgaW4gR1RLIDMuMTAsIGJ1dCB3ZSBhbHNvIG5lZWQKKy8vIHRvIG1ha2Ugc3Vy
ZSB3ZSBoYXZlIGNhaXJvIG5ldyBlbm91Z2ggdG8gc3VwcG9ydCBjYWlyb19zdXJmYWNlX3NldF9k
ZXZpY2Vfc2NhbGUKKyNkZWZpbmUgSEFWRV9HVEtfU0NBTEVfRkFDVE9SIEhBVkVfQ0FJUk9fU1VS
RkFDRV9TRVRfREVWSUNFX1NDQUxFICYmIEdUS19DSEVDS19WRVJTSU9OKDMsIDEwLCAwKQorCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2
NSw2ICs5NzAsMTMgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVVwZGF0ZVByZWZlcmVuY2VzKFdl
YktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKICAgICBwcml2LT5wYWdlUHJveHkt
PnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQoZmFsc2UpOwogfQogCisjaWYgSEFWRShHVEtfU0NBTEVfRkFDVE9SKQorc3RhdGljIHZvaWQg
ZGV2aWNlU2NhbGVGYWN0b3JDaGFuZ2VkKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3
QmFzZSkKK3sKKyAgICB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdi0+cGFnZVByb3h5LT5zZXRJbnRy
aW5zaWNEZXZpY2VTY2FsZUZhY3RvcihndGtfd2lkZ2V0X2dldF9zY2FsZV9mYWN0b3IoR1RLX1dJ
REdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpKTsKK30KKyNlbmRpZiAvLyBIQVZFKEdUS19TQ0FMRV9G
QUNUT1IpCisKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdy
b3VwKiBwYWdlR3JvdXAsIFdlYlBhZ2VQcm94eSogcmVsYXRlZFBhZ2UpCiB7CiAgICAgV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2Via2l0V2ViVmlld0Jhc2UtPnByaXY7CkBAIC05
ODAsNiArOTkyLDEyIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgV2ViQ29uCiAgICAgICAgIHByaXYtPnBh
Z2VQcm94eS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1dpbmRvd0lkKHByaXYtPnJlZGlyZWN0
ZWRXaW5kb3ctPndpbmRvd0lkKCkpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEdUS19TQ0FMRV9GQUNU
T1IpCisgICAgLy8gV2UgYXR0YWNoIHRoaXMgaGVyZSwgYmVjYXVzZSBjaGFuZ2VzIGluIHNjYWxl
IGZhY3RvciBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBwYWdlIHByb3h5LgorICAgIHByaXYt
PnBhZ2VQcm94eS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoZ3RrX3dpZGdldF9nZXRf
c2NhbGVfZmFjdG9yKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSk7CisgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJraXRXZWJWaWV3QmFzZSwgIm5vdGlmeTo6c2NhbGUtZmFjdG9yIiwgR19D
QUxMQkFDSyhkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQpLCBudWxscHRyKTsKKyNlbmRpZgorCiAg
ICAgd2Via2l0V2ViVmlld0Jhc2VVcGRhdGVQcmVmZXJlbmNlcyh3ZWJraXRXZWJWaWV3QmFzZSk7
CiAKICAgICAvLyBUaGlzIG11c3QgaGFwcGVuIGhlcmUgaW5zdGVhZCBvZiB0aGUgaW5zdGFuY2Ug
aW5pdGlhbGl6ZXIsIGJlY2F1c2UgdGhlIGlucHV0IG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2Y2Q0NTk0Li44MTJmMjA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM5LDYgKzEzOSwxMCBAQAog
I2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjZW5k
aWYKIAorI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+
CisjZW5kaWYKKwogLy8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3IgbW91
c2Ugd2hlZWwgY29hbGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZFTlRTIDEKIApAQCAt
MTg0NSw2ICsxODQ5LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDdXN0b21EZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCBjdXN0b21TY2FsZUZhY3RvcikKICAgICBpZiAoIWlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCisjaWYgVVNFKENBSVJPKSAmJiAhSEFWRShDQUlST19TVVJGQUNFX1NF
VF9ERVZJQ0VfU0NBTEUpCisgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBpZiAobV9jdXN0b21E
ZXZpY2VTY2FsZUZhY3RvciA9PSBjdXN0b21TY2FsZUZhY3RvcikKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3Jl
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNh
aXJvLmNwcAppbmRleCA2YWEwMGI2Li44OTk2OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTQ4LDE0ICs0OCwx
NCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYg
UExBVEZPUk0oR1RLKQotc3RhdGljIE93blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IGNyZWF0ZUJh
Y2tpbmdTdG9yZUZvckdUSyhHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K3N0YXRpYyBPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGVCYWNraW5nU3RvcmVGb3JH
VEsoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQogewogI2lmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lORE9XSU5H
X1gxMSkKICAgICBHZGtEaXNwbGF5KiBkaXNwbGF5ID0gZ2RrX2Rpc3BsYXlfbWFuYWdlcl9nZXRf
ZGVmYXVsdF9kaXNwbGF5KGdka19kaXNwbGF5X21hbmFnZXJfZ2V0KCkpOwogICAgIGlmIChHREtf
SVNfWDExX0RJU1BMQVkoZGlzcGxheSkpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpXaWRnZXRC
YWNraW5nU3RvcmVHdGtYMTE6OmNyZWF0ZSh3aWRnZXQsIHNpemUpOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlR3RrWDExOjpjcmVhdGUod2lkZ2V0LCBzaXplLCBk
ZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKLSAgICByZXR1cm4gV2ViQ29yZTo6V2lkZ2V0QmFj
a2luZ1N0b3JlQ2Fpcm86OmNyZWF0ZSh3aWRnZXQsIHNpemUpOworICAgIHJldHVybiBXZWJDb3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6Y3JlYXRlKHdpZGdldCwgc2l6ZSwgZGV2aWNlU2Nh
bGVGYWN0b3IpOwogfQogI2VuZGlmCiAKQEAgLTczLDkgKzczLDkgQEAgdm9pZCBCYWNraW5nU3Rv
cmU6OmluY29ycG9yYXRlVXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRh
dGVJbmZvJgogewogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCiAjaWYgUExBVEZPUk0oRUZMKQot
ICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvOjpjcmVhdGUo
RXdrVmlldzo6dG9FdmFzT2JqZWN0KHRvQVBJKG1fd2ViUGFnZVByb3h5KSksIHNpemUoKSk7Cisg
ICAgICAgIG1fYmFja2luZ1N0b3JlID0gV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm86OmNyZWF0ZShF
d2tWaWV3Ojp0b0V2YXNPYmplY3QodG9BUEkobV93ZWJQYWdlUHJveHkpKSwgc2l6ZSgpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKTsKICNlbHNlCi0gICAgICAgIG1fYmFja2luZ1N0b3JlID0gY3JlYXRl
QmFja2luZ1N0b3JlRm9yR1RLKG1fd2ViUGFnZVByb3h5LT52aWV3V2lkZ2V0KCksIHNpemUoKSk7
CisgICAgICAgIG1fYmFja2luZ1N0b3JlID0gY3JlYXRlQmFja2luZ1N0b3JlRm9yR1RLKG1fd2Vi
UGFnZVByb3h5LT52aWV3V2lkZ2V0KCksIHNpemUoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAj
ZW5kaWYKIAogICAgIHNjcm9sbCh1cGRhdGVJbmZvLnNjcm9sbFJlY3QsIHVwZGF0ZUluZm8uc2Ny
b2xsT2Zmc2V0KTsKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9y
YXRlVXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJgogICAg
ICAgICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzW2ldOwogICAg
ICAgICBJbnRSZWN0IHNyY1JlY3QgPSB1cGRhdGVSZWN0OwogICAgICAgICBzcmNSZWN0Lm1vdmUo
LXVwZGF0ZVJlY3RMb2NhdGlvbi54KCksIC11cGRhdGVSZWN0TG9jYXRpb24ueSgpKTsKLSAgICAg
ICAgYml0bWFwLT5wYWludChncmFwaGljc0NvbnRleHQsIHVwZGF0ZVJlY3QubG9jYXRpb24oKSwg
c3JjUmVjdCk7CisgICAgICAgIGJpdG1hcC0+cGFpbnQoZ3JhcGhpY3NDb250ZXh0LCBkZXZpY2VT
Y2FsZUZhY3RvcigpLCB1cGRhdGVSZWN0LmxvY2F0aW9uKCksIHNyY1JlY3QpOwogICAgIH0KIH0K
IAo=
</data>
<flag name="review"
          id="256733"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>