<?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>136879</bug_id>
          
          <creation_ts>2014-09-16 19:10:13 -0700</creation_ts>
          <short_desc>Fix an issue that caused video playback to not always use high resolution streams</short_desc>
          <delta_ts>2014-09-17 14:18:45 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035663</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-16 19:10:13 -0700</bug_when>
    <thetext>Fix an issue that caused video playback to not always use high resolution streams</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035669</commentid>
    <comment_count>1</comment_count>
      <attachid>238235</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-16 20:20:31 -0700</bug_when>
    <thetext>Created attachment 238235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035743</commentid>
    <comment_count>2</comment_count>
      <attachid>238235</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 11:41:55 -0700</bug_when>
    <thetext>Comment on attachment 238235
Patch

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

&gt; Source/WebCore/WebCore.exp.in:3441
&gt; -__ZN7WebCore32WebVideoFullscreenInterfaceAVKit15setupFullscreenER7CALayerNS_7IntRectEP6UIView
&gt; +__ZN7WebCore32WebVideoFullscreenInterfaceAVKit15setupFullscreenER7CALayerNS_7IntRectEfP6UIView

This can be done without changing the WebVideoFullscreenInterfaceAVKit interface.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:128
&gt; -    _interface-&gt;setupFullscreen(*_videoFullscreenLayer.get(), _mediaElement-&gt;clientRect(), view);
&gt; +    _interface-&gt;setupFullscreen(*_videoFullscreenLayer.get(), _mediaElement-&gt;clientRect(), 1, view);

Don&apos;t need this if the change is isolated to the IPC interface.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:95
&gt; -    virtual void setupFullscreen(PlatformLayer&amp;, WebCore::IntRect initialRect, UIView *);
&gt; +    virtual void setupFullscreen(PlatformLayer&amp;, WebCore::IntRect initialRect, float hostingDeviceScaleFactor, UIView *);

Ditto.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:737
&gt; -void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer&amp; videoLayer, WebCore::IntRect initialRect, UIView* parentView)
&gt; +void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer&amp; videoLayer, WebCore::IntRect initialRect, float hostingDeviceScaleFactor, UIView* parentView)

Ditto.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:764
&gt; +
&gt; +        if (hostingDeviceScaleFactor != 1) {
&gt; +            // Invert the scale transform added in the WebProcess to fix &lt;rdar://problem/18316542&gt;.
&gt; +            float inverseScale = 1 / hostingDeviceScaleFactor;
&gt; +            [m_videoLayer setTransform:CATransform3DMakeScale(inverseScale, inverseScale, 1)];
&gt; +        }

This can be put into WebVideoFullscreenManagerProxy::setupFullscreenWithID, just before it calls setupFullsdcreen.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:80
&gt; -    setupFullscreen(*m_layerHost.get(), initialRect, parentView);
&gt; +    setupFullscreen(*m_layerHost.get(), initialRect, hostingDeviceScaleFactor, parentView);

Apply the transform here on m_layerHost instead of passing it to setupFullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035745</commentid>
    <comment_count>3</comment_count>
      <attachid>238260</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-17 11:55:09 -0700</bug_when>
    <thetext>Created attachment 238260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035768</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-17 14:18:45 -0700</bug_when>
    <thetext>https://trac.webkit.org/r173702</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238235</attachid>
            <date>2014-09-16 20:20:31 -0700</date>
            <delta_ts>2014-09-17 11:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136879-20140916202029.patch</filename>
            <type>text/plain</type>
            <size>20504</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FlOWU5MzkzOTYzMzc4
YWI5ZDVjYWRkMGVkMWE0ODNiNmViMzFjOC4uZDYzY2Y2MjRjYzdlNjQzNjgzNjc3ZmI1ZDUxZmNm
ODJmMjY2ZTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTA5LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBhbiBpc3N1
ZSB0aGF0IGNhdXNlZCB2aWRlbyBwbGF5YmFjayB0byBub3QgYWx3YXlzIHVzZSBoaWdoIHJlc29s
dXRpb24gc3RyZWFtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2ODc5CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzE4MzE2NTQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVuZGVybHlpbmcgdmlk
ZW8gZnJhbWV3b3JrIGV4cGVjdHMgdG8gYmUgYWJsZSB0byB1c2UgLVtDQUxheWVyIGNvbnZlcnRS
ZWN0OnRvTGF5ZXI6bmlsXSBvbgorICAgICAgICB0aGUgdmlkZW8gbGF5ZXIgdG8gb2J0YWluIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBkaXNwbGF5IHJlc29sdXRpb24gb2YgdGhlIHZpZGVvLAorICAg
ICAgICBpbmNsdWRpbmcgdGhlIGRldmljZSBzY2FsZSBmYWN0b3IuIFRoaXMgZG9lc24ndCB3b3Jr
IGZvciBsYXllcnMgaW4gdGhlIHdlYiBwcm9jZXNzLAorICAgICAgICB3aGljaCBhcmUgcmVtb3Rl
bHkgaG9zdGVkIGludG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBGb3Igbm93
LCB1c2UgYSB3b3JrYXJvdW5kIHdoaWNoIGludm9sdmVzIHB1dHRpbmcgYSBzY2FsZSB0cmFuc2Zv
cm0gZXF1aXZhbGVudCB0bworICAgICAgICB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvciBvbiB0aGUg
d2ViIHByb2Nlc3MgbGF5ZXIsIGFuZCB0aGUgaW52ZXJzZSBzY2FsZSBvbiB0aGUgCisgICAgICAg
IGhvc3RpbmcgbGF5ZXIgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBXZSBo
YXZlIHRvIGRvIHRoaXMgaW4gdHdvIHBsYWNlcywgZm9yIGluLXBhZ2UgdmlkZW8sIGFuZCBmb3Ig
ZnVsbHNjcmVlbiB2aWRlby4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAg
ICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZW50ZXJGdWxsc2NyZWVuOl0pOiAg
UGFzcyAxIGZvciBXZWJLaXQxIGZ1bGxzY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6IFBhc3MgaG9zdGluZ0RldmljZVNjYWxl
RmFjdG9yIGluLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXR1cEZ1bGxzY3JlZW4pOiBTZXQgdGhlIGludmVyc2Ugc2NhbGUgb24gdGhpcyBsYXllciwg
dG8gY291bnRlcmFjdAorICAgICAgICB0aGUgc2NhbGUgb24gdGhlIGxheWVyIGluIHRoZSB3ZWIg
cHJvY2Vzcy4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbik6IFdoaXRlc3BhY2UuCisKIDIwMTQtMDgtMTEgIEJhYmFrIFNoYWZpZWkgIDxi
c2hhZmllaUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgcjE3MjQyMi4gPHJkYXI6Ly9wcm9i
bGVtLzE3OTEyMzYxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJkNjY1M2M2YWU5MTMxODc3ZmFkN2E3NDNlOGM3
NTZjZDFjMmE4YjcuLjZhNWE1YmU3Y2NiMDgzNzIyYjJmOTExNWFmZTBmYjk0NTMyMmZjZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxNC0wOS0xNiAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggYW4gaXNzdWUgdGhhdCBjYXVzZWQg
dmlkZW8gcGxheWJhY2sgdG8gbm90IGFsd2F5cyB1c2UgaGlnaCByZXNvbHV0aW9uIHN0cmVhbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg3OQor
ICAgICAgICByZGFyOi8vcHJvYmxlbS8xODMxNjU0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhlIHVuZGVybHlpbmcgdmlkZW8gZnJh
bWV3b3JrIGV4cGVjdHMgdG8gYmUgYWJsZSB0byB1c2UgLVtDQUxheWVyIGNvbnZlcnRSZWN0OnRv
TGF5ZXI6bmlsXSBvbgorICAgICAgICB0aGUgdmlkZW8gbGF5ZXIgdG8gb2J0YWluIGluZm9ybWF0
aW9uIGFib3V0IHRoZSBkaXNwbGF5IHJlc29sdXRpb24gb2YgdGhlIHZpZGVvLAorICAgICAgICBp
bmNsdWRpbmcgdGhlIGRldmljZSBzY2FsZSBmYWN0b3IuIFRoaXMgZG9lc24ndCB3b3JrIGZvciBs
YXllcnMgaW4gdGhlIHdlYiBwcm9jZXNzLAorICAgICAgICB3aGljaCBhcmUgcmVtb3RlbHkgaG9z
dGVkIGludG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBGb3Igbm93LCB1c2Ug
YSB3b3JrYXJvdW5kIHdoaWNoIGludm9sdmVzIHB1dHRpbmcgYSBzY2FsZSB0cmFuc2Zvcm0gZXF1
aXZhbGVudCB0bworICAgICAgICB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvciBvbiB0aGUgd2ViIHBy
b2Nlc3MgbGF5ZXIsIGFuZCB0aGUgaW52ZXJzZSBzY2FsZSBvbiB0aGUgCisgICAgICAgIGhvc3Rp
bmcgbGF5ZXIgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBXZSBoYXZlIHRv
IGRvIHRoaXMgaW4gdHdvIHBsYWNlcywgZm9yIGluLXBhZ2UgdmlkZW8sIGFuZCBmb3IgZnVsbHNj
cmVlbiB2aWRlby4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaDogQWRkIGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciB0byB0aGUgTGF5ZXJDcmVhdGlv
bgorICAgICAgICBwcm9wZXJ0aWVzLgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVh
dGlvblByb3BlcnRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW06CisgICAgICAgICgtW1dL
UmVtb3RlVmlldyBpbml0V2l0aEZyYW1lOmNvbnRleHRJRDpob3N0aW5nRGV2aWNlU2NhbGVGYWN0
b3I6XSk6IFNldCB0aGUgaW52ZXJzZSBzY2FsZQorICAgICAgICB0cmFuc2Zvcm0gb24gdGhlIGxh
eWVyLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6
CisgICAgICAgICgtW1dLUmVtb3RlVmlldyBpbml0V2l0aEZyYW1lOmNvbnRleHRJRDpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6
ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
Q29udGV4dDo6bGF5ZXJXYXNDcmVhdGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKToKKwogMjAxNC0w
OC0wNyAgTWF0dGhldyBIYW5zb24gIDxtYXR0aGV3X2hhbnNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWVyZ2UgcjE3MjIzOC4gPHJkYXI6Ly9wcm9ibGVtLzE3OTQwMjIwPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCA1M2E2NGZkOWM3MGEyMTEyMGRiMTQ1YjZlYjBjMTYyYTgwMDNiMjU3Li5hYzgx
YTI1MzM3NzZkODM0ZGM5Yjc2YzRlNzRkNGY3OTI3NmFkNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMzQzOCw3ICszNDM4LDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FTlNfN0ludFJlY3RFCiBfX1pON1dl
YkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRzZXRDdXJyZW50VGltZUVk
ZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1ZW50ZXJG
dWxsc2NyZWVuRXYKLV9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlldworX19aTjdX
ZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1c2V0dXBGdWxsc2NyZWVu
RVI3Q0FMYXllck5TXzdJbnRSZWN0RWZQNlVJVmlldwogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3Y2xlYW51cEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3Jl
MzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktO
U18xMFRpbWVSYW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbQppbmRleCA5ZjAzODk5MzdhYzQwMTk2M2E4YjAwZjBlMjhlMjE2NjJkZTk3ZGNhLi4zNWY3
MjVhNWZmZjkwODkzOWNlMDFmMjExMzNkOGFkNWExM2M4MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0KQEAgLTEyNSw3ICsxMjUsNyBAQCAtICh2b2lkKWVudGVyRnVsbHNjcmVl
bjooVUlWaWV3ICopdmlldwogICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsKF9tb2RlbC5nZXQoKSk7CiAgICAgX21vZGVsLT5zZXRNZWRpYUVsZW1lbnQoX21lZGlhRWxl
bWVudC5nZXQoKSk7CiAgICAgX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0gW0NBTGF5ZXIgbGF5ZXJd
OwotICAgIF9pbnRlcmZhY2UtPnNldHVwRnVsbHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxheWVy
LmdldCgpLCBfbWVkaWFFbGVtZW50LT5jbGllbnRSZWN0KCksIHZpZXcpOworICAgIF9pbnRlcmZh
Y2UtPnNldHVwRnVsbHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLCBfbWVkaWFF
bGVtZW50LT5jbGllbnRSZWN0KCksIDEsIHZpZXcpOwogfQogCiAtICh2b2lkKWV4aXRGdWxsc2Ny
ZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDIyODc3YmE0YmYzNGI2ZjFhZTA4
ZTU3MTE2MzE2MmQzMGEzYTI4MjEuLjc4OWY4NDM3NzI0YzM3M2M0OWMyNGIwMDczMGU0YWQ2MTcw
NGU2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCBlbmFibGVk
LCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxh
eWVyJiwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3ICopOworICAgIHZpcnR1
YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIFdlYkNvcmU6OkludFJlY3Qg
aW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgVUlWaWV3ICopOwog
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhp
dEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpOwogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhbnVwRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4
IDZiZWRhOGFjZWZhYWIyMDg0NzU2ODBmNWU1Yjg1MjRiNThhZTBiNzMuLjFhZGE1ZmU3MzlmNzgx
YjkwOGRhNjI1Mjc2ZTQ4ZGZlZWVkYjk3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
bW0KQEAgLTczNCw3ICs3MzQsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIH0pOwog
fQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3Jl
ZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCwgVUlWaWV3KiBwYXJlbnRWaWV3KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIsIFdlYkNvcmU6
OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgVUlW
aWV3KiBwYXJlbnRWaWV3KQogewogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwogICAgIApAQCAtNzU2LDYgKzc1NiwxMiBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4o
UGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBb
bV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKworICAgICAgICBpZiAoaG9zdGlu
Z0RldmljZVNjYWxlRmFjdG9yICE9IDEpIHsKKyAgICAgICAgICAgIC8vIEludmVydCB0aGUgc2Nh
bGUgdHJhbnNmb3JtIGFkZGVkIGluIHRoZSBXZWJQcm9jZXNzIHRvIGZpeCA8cmRhcjovL3Byb2Js
ZW0vMTgzMTY1NDI+LgorICAgICAgICAgICAgZmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIGhvc3Rp
bmdEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0VHJhbnNm
b3JtOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW52ZXJzZVNjYWxlLCBpbnZlcnNlU2NhbGUsIDEp
XTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0g
W1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciBzZXRIaWRkZW46cGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tBY3RpdmVd
OwpAQCAtODI2LDYgKzgzMiw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0CiAKICAgICAgICAg
aWYgKFttX3ZpZGVvTGF5ZXJDb250YWluZXIgdmlkZW9MYXllckdyYXZpdHldICE9IEFWVmlkZW9M
YXllckdyYXZpdHlSZXNpemVBc3BlY3QpCiAgICAgICAgICAgICBbbV92aWRlb0xheWVyQ29udGFp
bmVyIHNldFZpZGVvTGF5ZXJHcmF2aXR5OkFWVmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3BlY3Rd
OworCiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRl
ZF07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuV2l0aENv
bXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsKICAgICAgICAgICAgIFttX3ZpZGVv
TGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgY2xl
YXJDb2xvcl0gQ0dDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDJhN2YxNzRjZTIzMmFiMGZlMzE5
Mjg5MzQ0NGFlNDFlYjJkZmI2YTYuLjUwODFiMTM5ODYzMmM3ZTAxZmEyM2JhYTZlNzNiOTU2ZjUz
NGU5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTk1LDYgKzk1LDcgQEAgcHVibGljOgogICAgICAgICBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSB0eXBlOwogCiAgICAgICAgIHVpbnQz
Ml90IGhvc3RpbmdDb250ZXh0SUQ7CisgICAgICAgIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZh
Y3RvcjsKICAgICB9OwogCiAgICAgc3RydWN0IExheWVyUHJvcGVydGllcyB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5t
bQppbmRleCBkNGE3NjRlYTVlODY2ZmY5MGQ0OWVlMWUyOTkxNWMyZjVmOTY2YmI5Li4xMTI3NmMz
ZmI5MjQ3MmNmM2JlNGRkYWIyYzM0NzUxNDIwYTgxNmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9w
ZXJ0aWVzOjpMYXllckNyZWF0aW9uUHJvcGVydGllcygpCiAgICAgOiBsYXllcklEKDApCiAgICAg
LCB0eXBlKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIpCiAgICAgLCBob3N0aW5nQ29u
dGV4dElEKDApCisgICAgLCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IoMSkKIHsKIH0KIApAQCAt
NTUsNiArNTYsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0
aW9uUHJvcGVydGllczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbgogICAgIGVuY29kZXIgPDwgbGF5
ZXJJRDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CiAgICAgZW5jb2RlciA8PCBob3N0
aW5nQ29udGV4dElEOworICAgIGVuY29kZXIgPDwgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVy
dGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMYXllckNyZWF0aW9u
UHJvcGVydGllcyYgcmVzdWx0KQpAQCAtNjgsNiArNzAsOSBAQCBib29sIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1l
bnREZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmhvc3RpbmdDb250ZXh0SUQpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5o
b3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCmluZGV4IDVmNGE0MTEwMTJiZTg5OGU3ZTRmYjlj
ZTRlN2E4ZGNiNmFhMWE2ZDkuLjIyNDFhZGQ0MGFkNGJhNjYyNTE0ODEwMDAyMzAyM2I4NTM1MmYz
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJU
cmVlSG9zdElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxh
eWVyVHJlZUhvc3RJT1MubW0KQEAgLTEwOCwxMCArMTA4LDEzIEBAIEBpbnRlcmZhY2UgV0tSZW1v
dGVWaWV3IDogV0tDb21wb3NpdGluZ1ZpZXcKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLUmVt
b3RlVmlldwotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb250
ZXh0SUQ6KHVpbnQzMl90KWNvbnRleHRJRAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KENHUmVjdClmcmFtZSBjb250ZXh0SUQ6KHVpbnQzMl90KWNvbnRleHRJRCBob3N0aW5nRGV2aWNl
U2NhbGVGYWN0b3I6KGZsb2F0KXNjYWxlRmFjdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVy
IGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkgewogICAgICAgICBbW3NlbGYgbGF5ZXJdIHNldENvbnRl
eHRJZDpjb250ZXh0SURdOworICAgICAgICAvLyBJbnZlcnQgdGhlIHNjYWxlIHRyYW5zZm9ybSBh
ZGRlZCBpbiB0aGUgV2ViUHJvY2VzcyB0byBmaXggPHJkYXI6Ly9wcm9ibGVtLzE4MzE2NTQyPi4K
KyAgICAgICAgZmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIHNjYWxlRmFjdG9yOworICAgICAgICBb
W3NlbGYgbGF5ZXJdIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGludmVyc2VT
Y2FsZSwgaW52ZXJzZVNjYWxlLCAxKV07CiAgICAgfQogICAgIAogICAgIHJldHVybiBzZWxmOwpA
QCAtMTU1LDcgKzE1OCw3IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVh
dGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVdlYkdMTGF5ZXI6CiAgICAgICAgIGlmICghbV9pc0RlYnVnTGF5ZXJU
cmVlSG9zdCkKLSAgICAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tSZW1vdGVWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29udGV4dElEOnByb3BlcnRpZXMuaG9zdGluZ0Nv
bnRleHRJRF0pOworICAgICAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS1JlbW90ZVZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb250ZXh0SUQ6cHJvcGVydGllcy5ob3N0aW5n
Q29udGV4dElEIGhvc3RpbmdEZXZpY2VTY2FsZUZhY3Rvcjpwcm9wZXJ0aWVzLmhvc3RpbmdEZXZp
Y2VTY2FsZUZhY3Rvcl0pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2aWV3ID0gYWRvcHRO
UyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggZGNmOWExNzZkNTI4NDVlZTIyY2RjMmViNGRhOGRh
M2VkYmMxMTQzNy4uOTg1ZmZlMGQ4YTAxNDVjZjliYTU0ZTI0OTA0YzRmZjc5MGVhZDQwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBGdWxsc2NyZWVu
SW50ZXJmYWNlCi0gICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QsIFdlYkNv
cmU6OkludFJlY3QgaW5pdGlhbFJlY3QpOworICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9y
PHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXli
YWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmluZyBs
b2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggMjcxMWMwNjYzYWQyNzAzYzAzODljMTRjM2JhNzZjOGJlNmYx
NzkwNS4uMDU5NTJmMzU1YTNhY2MwZWExMmIyNzA1OWZhYmJkNDNiNGI3OTc2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxLDcgKzMxLDcgQEAg
bWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRFeHRl
cm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUs
IFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICBTZXREdXJhdGlvbihkb3VibGUgZHVy
YXRpb24pCiAgICAgU2V0UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCi0gICAgU2V0
dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVj
dCBpbml0aWFsUmVjdCkKKyAgICBTZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9M
YXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVG
YWN0b3IpCiAgICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBFeGl0RnVsbHNjcmVlbihXZWJDb3Jl
OjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBDbGVhbnVwRnVsbHNjcmVlbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCmluZGV4IDU3ZGI5MjAxZjVjNzJkYmE1OGJhNmMzNGU3Yjg3OTAxNDBh
NGM2MGQuLjI1YWMwODEwNjllY2E4ODBlZmRmYWJmZmE1Njk3ZDQwNGYxNjVjODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC03MiwxMiArNzIsMTIgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogICAgIG1fbGF5ZXJIb3N0LmNsZWFy
KCk7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRp
YWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNj
cmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlh
bFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvcikKIHsKICAgICBBU1NFUlQodmlk
ZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxheWVyKHZpZGVvTGF5
ZXJJRCk7CiAgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gdG9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5KG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSktPnJlbW90ZUxheWVyVHJlZUhvc3QoKS5y
b290TGF5ZXIoKTsKLSAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0
aWFsUmVjdCwgcGFyZW50Vmlldyk7CisgICAgc2V0dXBGdWxsc2NyZWVuKCptX2xheWVySG9zdC5n
ZXQoKSwgaW5pdGlhbFJlY3QsIGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgcGFyZW50Vmlldyk7
CiB9CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2Fi
bGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5nZXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmluZGV4IGMwY2I5MjJmNDRm
YmEwMDM4YTNhOTY1N2I3YWRmNjU1NmU0Y2U4OWIuLmQxMTcxODdkM2FhZDMyNjg0OTIzZGE0MTQy
MTVkNjg3ODUzOGY2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
CkBAIC02NCw2ICs2NCwxMCBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbAogI2lmIEhBVkUoT1VU
X09GX1BST0NFU1NfTEFZRVJfSE9TVElORykKICAgICBjYXNlIExheWVySG9zdGluZ01vZGU6Ok91
dE9mUHJvY2VzczoKICAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOworICAgICAgICBmbG9h
dCBzY2FsZUZhY3RvciA9IGNvbnRleHQuZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgLy8g
U2V0IGEgc2NhbGUgZmFjdG9yIGhlcmUgdG8gbWFrZSBjb252ZXJ0UmVjdDp0b0xheWVyOm5pbCB0
YWtlIHNjYWxlIGZhY3RvciBpbnRvIGFjY291bnQuIDxyZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4u
CisgICAgICAgIC8vIFRoaXMgc2NhbGUgZmFjdG9yIGlzIGludmVydGVkIGluIHRoZSBob3N0aW5n
IHByb2Nlc3MuCisgICAgICAgIFtjdXN0b21MYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0z
RE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEpXTsKICAgICAgICAgYnJlYWs7
CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDJmOGZiNzc2
YTc5ZjYzMTBlZjgzYjM0NmQ4ZmU4ZDRlNTlkZjZiY2MuLjk3YjRhYTkzZmJkNDc2OGZkNmQ0OTY5
YWFiN2UzNTUyNDY5NzM1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC01NSw2
ICs1NSw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OkxheWVyUG9vbCYgbGF5ZXJQb29sKCkg
eyByZXR1cm4gbV9sYXllclBvb2w7IH0KIAorICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV93ZWJQYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7IH0KKwogICAgIExh
eWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFn
ZS5sYXllckhvc3RpbmdNb2RlKCk7IH0KIAogICAgIHZvaWQgYnVpbGRUcmFuc2FjdGlvbihSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciYgcm9vdExh
eWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCBlYmQzZmYyNGYwYjdmOWMx
YzQ1ZDM1ZGQ4YTAxZWExNDhmZWMxMmQyLi5jODFkMDVkMTk1NjU2OWViYTczMmQwNjlmYjE5N2E2
MWMwOGZhMmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBAIC02MSw4ICs2MSwx
MCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2FzQ3JlYXRlZChQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUmIGxheWVyLCBQbGF0ZgogICAgIGNyZWF0aW9uUHJvcGVydGllcy5sYXll
cklEID0gbGF5ZXJJRDsKICAgICBjcmVhdGlvblByb3BlcnRpZXMudHlwZSA9IHR5cGU7CiAKLSAg
ICBpZiAobGF5ZXIuaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKSkKKyAgICBpZiAobGF5
ZXIuaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKSkgewogICAgICAgICBjcmVhdGlvblBy
b3BlcnRpZXMuaG9zdGluZ0NvbnRleHRJRCA9IGxheWVyLmhvc3RpbmdDb250ZXh0SUQoKTsKKyAg
ICAgICAgY3JlYXRpb25Qcm9wZXJ0aWVzLmhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciA9IGRldmlj
ZVNjYWxlRmFjdG9yKCk7CisgICAgfQogCiAgICAgbV9jcmVhdGVkTGF5ZXJzLmFwcGVuZChjcmVh
dGlvblByb3BlcnRpZXMpOwogICAgIG1fbGl2ZUxheWVycy5hZGQobGF5ZXJJRCwgJmxheWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDYxYmM4NjQ5MDNmODA3MWIzZjBhNTlhOTQ1M2E5YjRk
NTI1OGY5OTEuLjI3ODE0ZjZmY2RmOThhNGM2OGJiZjg1YWM1MDNjZDAwZTdmMDcxZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tbQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIAogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFs
SG9zdGluZ1Byb2Nlc3MoKTsKICAgICAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVuV2l0aElEKG1fbGF5ZXJI
b3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIGNsaWVudFJlY3RGb3JOb2RlKG5vZGUpKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVlbldpdGhJRChtX2xheWVySG9zdGluZ0Nv
bnRleHQtPmNvbnRleHRJRCgpLCBjbGllbnRSZWN0Rm9yTm9kZShub2RlKSwgbV9wYWdlLT5kZXZp
Y2VTY2FsZUZhY3RvcigpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCkBAIC0x
NzUsMTAgKzE3NSwxOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVw
RnVsbHNjcmVlbigpCiAKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKwogICAgIFt2aWRlb0xheWVyIHNldEJhY2tn
cm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2Vi
Q29yZTo6Q29sb3JTcGFjZURldmljZVJHQildOworCisgICAgLy8gU2V0IGEgc2NhbGUgZmFjdG9y
IGhlcmUgdG8gbWFrZSBjb252ZXJ0UmVjdDp0b0xheWVyOm5pbCB0YWtlIHNjYWxlIGZhY3RvciBp
bnRvIGFjY291bnQuIDxyZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4uCisgICAgLy8gVGhpcyBzY2Fs
ZSBmYWN0b3IgaXMgaW52ZXJ0ZWQgaW4gdGhlIGhvc3RpbmcgcHJvY2Vzcy4KKyAgICBmbG9hdCBo
b3N0aW5nU2NhbGVGYWN0b3IgPSBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgW3Zp
ZGVvTGF5ZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaG9zdGluZ1NjYWxl
RmFjdG9yLCBob3N0aW5nU2NhbGVGYWN0b3IsIDEpXTsKICAgICBtX2xheWVySG9zdGluZ0NvbnRl
eHQtPnNldFJvb3RMYXllcih2aWRlb0xheWVyKTsKKwogICAgIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKHZpZGVvTGF5ZXIpOwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJG
dWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238260</attachid>
            <date>2014-09-17 11:55:09 -0700</date>
            <delta_ts>2014-09-17 13:35:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136879-20140917115507.patch</filename>
            <type>text/plain</type>
            <size>13934</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTkzZTdjZmEwMjJlZGZm
MWNlY2I3MmNiMGI2NmUwNzc0MzBkMTM5YS4uNDA1ZmFhZGM0YWVlYzBhNWM1OGJmMmVmMjg1ODI4
MDA1ZGY2NjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE0LTA5LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBhbiBpc3N1
ZSB0aGF0IGNhdXNlZCB2aWRlbyBwbGF5YmFjayB0byBub3QgYWx3YXlzIHVzZSBoaWdoIHJlc29s
dXRpb24gc3RyZWFtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2ODc5CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzE4MzE2NTQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGUgdW5kZXJs
eWluZyB2aWRlbyBmcmFtZXdvcmsgZXhwZWN0cyB0byBiZSBhYmxlIHRvIHVzZSAtW0NBTGF5ZXIg
Y29udmVydFJlY3Q6dG9MYXllcjpuaWxdIG9uCisgICAgICAgIHRoZSB2aWRlbyBsYXllciB0byBv
YnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRpc3BsYXkgcmVzb2x1dGlvbiBvZiB0aGUgdmlk
ZW8sCisgICAgICAgIGluY2x1ZGluZyB0aGUgZGV2aWNlIHNjYWxlIGZhY3Rvci4gVGhpcyBkb2Vz
bid0IHdvcmsgZm9yIGxheWVycyBpbiB0aGUgd2ViIHByb2Nlc3MsCisgICAgICAgIHdoaWNoIGFy
ZSByZW1vdGVseSBob3N0ZWQgaW50byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgCisgICAgICAg
IEZvciBub3csIHVzZSBhIHdvcmthcm91bmQgd2hpY2ggaW52b2x2ZXMgcHV0dGluZyBhIHNjYWxl
IHRyYW5zZm9ybSBlcXVpdmFsZW50IHRvCisgICAgICAgIHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9y
IG9uIHRoZSB3ZWIgcHJvY2VzcyBsYXllciwgYW5kIHRoZSBpbnZlcnNlIHNjYWxlIG9uIHRoZSAK
KyAgICAgICAgaG9zdGluZyBsYXllciBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgCisgICAg
ICAgIFdlIGhhdmUgdG8gZG8gdGhpcyBpbiB0d28gcGxhY2VzLCBmb3IgaW4tcGFnZSB2aWRlbywg
YW5kIGZvciBmdWxsc2NyZWVuIHZpZGVvLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5oOiBBZGQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yIHRvIHRo
ZSBMYXllckNyZWF0aW9uCisgICAgICAgIHByb3BlcnRpZXMuCisgICAgICAgICogU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjpMYXllckNyZWF0
aW9uUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjpkZWNv
ZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToK
KyAgICAgICAgKC1bV0tSZW1vdGVWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dElEOmhvc3RpbmdE
ZXZpY2VTY2FsZUZhY3RvcjpdKTogU2V0IHRoZSBpbnZlcnNlIHNjYWxlCisgICAgICAgIHRyYW5z
Zm9ybSBvbiB0aGUgbGF5ZXIuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6
OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKC1bV0tSZW1vdGVWaWV3IGluaXRXaXRoRnJhbWU6Y29u
dGV4dElEOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVDb250ZXh0OjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVDb250ZXh0OjpsYXllcldhc0NyZWF0ZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3Jl
ZW4pOgorCiAyMDE0LTA5LTE3ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxl
LmNvbT4KIAogICAgICAgICBET00gdGltZXIgdGhyb3R0bGluZyBmb3IgaGlkZGVuIHBsdWdpbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24uaAppbmRleCAyYTdmMTc0Y2UyMzJhYjBmZTMxOTI4OTM0NDRhZTQxZWIyZGZiNmE2
Li41MDgxYjEzOTg2MzJjN2UwMWZhMjNiYWE2ZTczYjk1NmY1MzRlOWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
CkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGUgdHlwZTsKIAogICAgICAgICB1aW50MzJfdCBob3N0aW5nQ29udGV4dElE
OworICAgICAgICBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgfTsKIAogICAg
IHN0cnVjdCBMYXllclByb3BlcnRpZXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggZDRhNzY0ZWE1ZTg2
NmZmOTBkNDllZTFlMjk5MTVjMmY1Zjk2NmJiOS4uMTEyNzZjM2ZiOTI0NzJjZjNiZTRkZGFiMmMz
NDc1MTQyMGE4MTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC00Nyw2ICs0Nyw3IEBAIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllczo6TGF5ZXJDcmVhdGlv
blByb3BlcnRpZXMoKQogICAgIDogbGF5ZXJJRCgwKQogICAgICwgdHlwZShQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZUxheWVyKQogICAgICwgaG9zdGluZ0NvbnRleHRJRCgwKQorICAgICwgaG9z
dGluZ0RldmljZVNjYWxlRmFjdG9yKDEpCiB7CiB9CiAKQEAgLTU1LDYgKzU2LDcgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW4KICAgICBlbmNvZGVyIDw8IGxheWVySUQ7CiAgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKHR5cGUpOwogICAgIGVuY29kZXIgPDwgaG9zdGluZ0NvbnRleHRJRDsKKyAgICBl
bmNvZGVyIDw8IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvcjsKIH0KIAogYm9vbCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgTGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHJlc3VsdCkK
QEAgLTY4LDYgKzcwLDkgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGUKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5ob3N0aW5nQ29udGV4dElEKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaG9zdGluZ0RldmljZVNjYWxlRmFj
dG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9z
dElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9z
dElPUy5tbQppbmRleCA1ZjRhNDExMDEyYmU4OThlN2U0ZmI5Y2U0ZTdhOGRjYjZhYTFhNmQ5Li4y
MjQxYWRkNDBhZDRiYTY2MjUxNDgxMDAwMjMwMjNiODUzNTJmMzlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCkBA
IC0xMDgsMTAgKzEwOCwxMyBAQCBAaW50ZXJmYWNlIFdLUmVtb3RlVmlldyA6IFdLQ29tcG9zaXRp
bmdWaWV3CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1JlbW90ZVZpZXcKLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dElEOih1aW50MzJfdCljb250
ZXh0SUQKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4
dElEOih1aW50MzJfdCljb250ZXh0SUQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yOihmbG9hdClz
Y2FsZUZhY3RvcgogewogICAgIGlmICgoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1l
XSkpIHsKICAgICAgICAgW1tzZWxmIGxheWVyXSBzZXRDb250ZXh0SWQ6Y29udGV4dElEXTsKKyAg
ICAgICAgLy8gSW52ZXJ0IHRoZSBzY2FsZSB0cmFuc2Zvcm0gYWRkZWQgaW4gdGhlIFdlYlByb2Nl
c3MgdG8gZml4IDxyZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4uCisgICAgICAgIGZsb2F0IGludmVy
c2VTY2FsZSA9IDEgLyBzY2FsZUZhY3RvcjsKKyAgICAgICAgW1tzZWxmIGxheWVyXSBzZXRUcmFu
c2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShpbnZlcnNlU2NhbGUsIGludmVyc2VTY2FsZSwg
MSldOwogICAgIH0KICAgICAKICAgICByZXR1cm4gc2VsZjsKQEAgLTE1NSw3ICsxNTgsNyBAQCBM
YXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGVBVlBsYXllckxheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVXZWJH
TExheWVyOgogICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCi0gICAgICAgICAg
ICB2aWV3ID0gYWRvcHROUyhbW1dLUmVtb3RlVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RaZXJvIGNvbnRleHRJRDpwcm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SURdKTsKKyAgICAgICAg
ICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tSZW1vdGVWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdFplcm8gY29udGV4dElEOnByb3BlcnRpZXMuaG9zdGluZ0NvbnRleHRJRCBob3N0aW5nRGV2
aWNlU2NhbGVGYWN0b3I6cHJvcGVydGllcy5ob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3JdKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmll
dyBhbGxvY10gaW5pdF0pOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CmluZGV4IGRjZjlhMTc2ZDUyODQ1ZWUyMmNkYzJlYjRkYThkYTNlZGJjMTE0MzcuLjk4NWZmZTBk
OGEwMTQ1Y2Y5YmE1NGUyNDkwNGM0ZmY3OTBlYWQ0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVsbHNjcmVlbkludGVyZmFjZQotICAgIHZvaWQg
c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0KTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6
SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yKTsKICAg
ICB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBk
b3VibGU+PiYpOwogICAgIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBl
bmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDI3MTFjMDY2M2FkMjcwM2MwMzg5YzE0YzNiYTc2YzhiZTZmMTc5MDUuLjA1OTUyZjM1NWEzYWNj
MGVhMTJiMjcwNTlmYWJiZDQzYjRiNzk3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRp
ZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2
aWNlTmFtZSk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUo
Ym9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQotICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRCh1
aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCisgICAg
U2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50
UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yKQogICAgIEVudGVyRnVs
bHNjcmVlbigpCiAgICAgRXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3Qp
CiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRl
eCA1N2RiOTIwMWY1YzcyZGJhNThiYTZjMzRlN2I4NzkwMTQwYTRjNjBkLi44MzUzODE1MTViZjEx
NTE2YTc0YzE3YWExMDEzMDZkZTQ0YmZhMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bQpAQCAtNzIsMTAgKzcyLDE2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjppbnZhbGlkYXRlKCkKICAgICBtX2xheWVySG9zdC5jbGVhcigpOwogfQogCi12b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90
IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3Qg
dmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5n
RGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAgICAgQVNTRVJUKHZpZGVvTGF5ZXJJRCk7CiAgICAgbV9s
YXllckhvc3QgPSBXS01ha2VSZW5kZXJMYXllcih2aWRlb0xheWVySUQpOworICAgIGlmIChob3N0
aW5nRGV2aWNlU2NhbGVGYWN0b3IgIT0gMSkgeworICAgICAgICAvLyBJbnZlcnQgdGhlIHNjYWxl
IHRyYW5zZm9ybSBhZGRlZCBpbiB0aGUgV2ViUHJvY2VzcyB0byBmaXggPHJkYXI6Ly9wcm9ibGVt
LzE4MzE2NTQyPi4KKyAgICAgICAgZmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIGhvc3RpbmdEZXZp
Y2VTY2FsZUZhY3RvcjsKKyAgICAgICAgW21fbGF5ZXJIb3N0IHNldFRyYW5zZm9ybTpDQVRyYW5z
Zm9ybTNETWFrZVNjYWxlKGludmVyc2VTY2FsZSwgaW52ZXJzZVNjYWxlLCAxKV07CisgICAgfQor
CiAgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gdG9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5KG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSktPnJlbW90ZUxheWVyVHJlZUhvc3QoKS5yb290TGF5
ZXIoKTsKICAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVj
dCwgcGFyZW50Vmlldyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
CmluZGV4IDY2MmNlNTgzY2M1YzUwODNiZDAzODM4Mzg0YzhlMzUzMDM5Yjg3NjQuLjQ0ZWU0MzIx
M2IxNmJiNzAwMDA4ZjdkNWJjYjI3ZGUxMGQ4ZjAyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC02NCw2ICs2NCwxMCBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShMYXllclR5cGUgbGF5ZXJUeXBl
LCBQbAogI2lmIEhBVkUoT1VUX09GX1BST0NFU1NfTEFZRVJfSE9TVElORykKICAgICBjYXNlIExh
eWVySG9zdGluZ01vZGU6Ok91dE9mUHJvY2VzczoKICAgICAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2Vz
cygpOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IGNvbnRleHQuZGV2aWNlU2NhbGVGYWN0
b3IoKTsKKyAgICAgICAgLy8gU2V0IGEgc2NhbGUgZmFjdG9yIGhlcmUgdG8gbWFrZSBjb252ZXJ0
UmVjdDp0b0xheWVyOm5pbCB0YWtlIHNjYWxlIGZhY3RvciBpbnRvIGFjY291bnQuIDxyZGFyOi8v
cHJvYmxlbS8xODMxNjU0Mj4uCisgICAgICAgIC8vIFRoaXMgc2NhbGUgZmFjdG9yIGlzIGludmVy
dGVkIGluIHRoZSBob3N0aW5nIHByb2Nlc3MuCisgICAgICAgIFtjdXN0b21MYXllciBzZXRUcmFu
c2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEp
XTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5oCmluZGV4IGNlNmU0Y2FlZWQ1NmQ3ODA2OGFlZWY2ODZlZmUzZDA3OTZlMDA3OTcuLjdlOWQ1
Y2FhMzdlODkwNDQxOTIwNzQ4ZGE5ZjFhMDMzMTZkY2M4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OkxheWVy
UG9vbCYgbGF5ZXJQb29sKCkgeyByZXR1cm4gbV9sYXllclBvb2w7IH0KIAorICAgIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlLmRldmljZVNjYWxlRmFj
dG9yKCk7IH0KKwogICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fd2ViUGFnZS5sYXllckhvc3RpbmdNb2RlKCk7IH0KIAogICAgIHZvaWQgYnVp
bGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllciYgcm9vdExheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRl
eCA0MGQ4MjE0ZjhjZDE0YjhkNjA5NTVmZGJiMWVkNzYzNzlhNDgzMDhmLi40ZGM2YmFlMzdmMTAx
MjIyOGM1YzNlMTFmMGU4NzlkZTc0NjllNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0
Lm1tCkBAIC02MSw4ICs2MSwxMCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVy
V2FzQ3JlYXRlZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIGxheWVyLCBQbGF0ZgogICAgIGNyZWF0
aW9uUHJvcGVydGllcy5sYXllcklEID0gbGF5ZXJJRDsKICAgICBjcmVhdGlvblByb3BlcnRpZXMu
dHlwZSA9IHR5cGU7CiAKLSAgICBpZiAobGF5ZXIuaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b20oKSkKKyAgICBpZiAobGF5ZXIuaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKSkgewog
ICAgICAgICBjcmVhdGlvblByb3BlcnRpZXMuaG9zdGluZ0NvbnRleHRJRCA9IGxheWVyLmhvc3Rp
bmdDb250ZXh0SUQoKTsKKyAgICAgICAgY3JlYXRpb25Qcm9wZXJ0aWVzLmhvc3RpbmdEZXZpY2VT
Y2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgfQogCiAgICAgbV9jcmVhdGVk
TGF5ZXJzLmFwcGVuZChjcmVhdGlvblByb3BlcnRpZXMpOwogICAgIG1fbGl2ZUxheWVycy5hZGQo
bGF5ZXJJRCwgJmxheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGQyM2ZhYWNjMzM2ZGNh
NDZhYTUzNWVjZmU3NzczMzBhYzVmMDg0MDMuLjJmNmFkOGU3NmQ2Yzk3YTEwYTM3MTlmNjE1NDUw
ODA1ZThmZGJiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtOTcsNyArOTcsNyBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KEhUTUxWaWRlb0VsZQogCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJI
b3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIAot
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQo
KSwgY2xpZW50UmVjdEZvckVsZW1lbnQodmlkZW9FbGVtZW50KSksIG1fcGFnZS0+cGFnZUlEKCkp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0
SUQoKSwgY2xpZW50UmVjdEZvckVsZW1lbnQodmlkZW9FbGVtZW50KSwgbV9wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbigpCkBAIC0xNzUsMTAgKzE3NSwxOCBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAK
ICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKwogICAgIFt2aWRlb0xheWVyIHNldEJhY2tncm91bmRDb2xvcjpjYWNo
ZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2ViQ29yZTo6Q29sb3JTcGFj
ZURldmljZVJHQildOworCisgICAgLy8gU2V0IGEgc2NhbGUgZmFjdG9yIGhlcmUgdG8gbWFrZSBj
b252ZXJ0UmVjdDp0b0xheWVyOm5pbCB0YWtlIHNjYWxlIGZhY3RvciBpbnRvIGFjY291bnQuIDxy
ZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4uCisgICAgLy8gVGhpcyBzY2FsZSBmYWN0b3IgaXMgaW52
ZXJ0ZWQgaW4gdGhlIGhvc3RpbmcgcHJvY2Vzcy4KKyAgICBmbG9hdCBob3N0aW5nU2NhbGVGYWN0
b3IgPSBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgW3ZpZGVvTGF5ZXIgc2V0VHJh
bnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaG9zdGluZ1NjYWxlRmFjdG9yLCBob3N0aW5n
U2NhbGVGYWN0b3IsIDEpXTsKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXll
cih2aWRlb0xheWVyKTsKKwogICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIp
OwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCksIG1f
cGFnZS0+cGFnZUlEKCkpOwogfQogICAgIAo=
</data>
<flag name="review"
          id="263021"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>