<?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>133530</bug_id>
          
          <creation_ts>2014-06-04 18:59:37 -0700</creation_ts>
          <short_desc>[iOS][WK2] Add device orientation</short_desc>
          <delta_ts>2014-06-05 15:54:39 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1013440</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-04 18:59:37 -0700</bug_when>
    <thetext>[iOS][WK2] Add device orientation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013441</commentid>
    <comment_count>1</comment_count>
      <attachid>232517</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-04 19:08:59 -0700</bug_when>
    <thetext>Created attachment 232517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013442</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-04 19:09:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/16680041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013443</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-04 19:11:24 -0700</bug_when>
    <thetext>Attachment 232517 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebFrame.mm:1273:  The parameter name &quot;frame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013449</commentid>
    <comment_count>4</comment_count>
      <attachid>232518</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-04 20:19:31 -0700</bug_when>
    <thetext>Created attachment 232518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013450</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-04 20:20:55 -0700</bug_when>
    <thetext>Attachment 232518 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebFrame.mm:1273:  The parameter name &quot;frame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013639</commentid>
    <comment_count>6</comment_count>
      <attachid>232518</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-05 13:27:55 -0700</bug_when>
    <thetext>Comment on attachment 232518
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:193
&gt; +        return 0;

sad that we don&apos;t have a comparable enum and use integer degrees instead, but not your fault

&gt; Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm:287
&gt; +    if (deviceOrientation != m_deviceOrientation) {

This (and possibly those above) needs to check isValid, I think? (what happens if the WebProcess is dead when we get a UIWindowDidRotateNotification?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013651</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-05 14:15:28 -0700</bug_when>
    <thetext>Committed r169625: &lt;http://trac.webkit.org/changeset/169625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013669</commentid>
    <comment_count>8</comment_count>
      <attachid>232518</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-05 15:54:39 -0700</bug_when>
    <thetext>Comment on attachment 232518
Patch

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

&gt; Source/WebCore/page/Frame.cpp:292
&gt; +    for (Frame* frame = this; frame; frame = frame-&gt;tree().traverseNext())
&gt; +        frames.append(*frame);

This is peculiar. It iterates starting with this frame, but continues up to this frames siblings and parents if the frame is not the main frame. I think this function is meant to be called only on the main frame, so if we do want it on the frame, then it should be on the MainFrame class.

But actually we try to avoid putting these directly into Frame these days, so normally we’d put this into something like EventHandler.

&gt; Source/WebCore/page/Frame.cpp:297
&gt; +    for (unsigned i = 0; i &lt; frames.size(); i++) {
&gt; +        if (Document* doc = frames[i]-&gt;document())
&gt; +            doc-&gt;dispatchWindowEvent(Event::create(eventNames().orientationchangeEvent, false, false));
&gt; +    }

This is old fashioned. Here’s the modern way to write it:

    for (auto&amp; frame : frames) {
        if (Document* document = frame-&gt;document())
            document-&gt;dispatchWindowEvent(Event::create(eventNames().orientationchangeEvent, false, false));
    }</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232517</attachid>
            <date>2014-06-04 19:08:59 -0700</date>
            <delta_ts>2014-06-04 20:19:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133530-20140604190834.patch</filename>
            <type>text/plain</type>
            <size>35119</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIzNzZkOGVhOTZlNjNh
Mjk1YWViNzJjZTQxODRkMGYxZDcyODA2NS4uNjY4NzE4YzNkM2EwOTU5NzI1YmExMDAyYzhhNmYx
YzE1YjQ0MmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTA0ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMzNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgV2ViQ29yZSB3YXMgZ2V0dGluZyB0aGUgb3JpZW50
YXRpb24gZGlyZWN0bHkgZnJvbSB0aGUgV2ViS2l0IGxheWVyLgorICAgICAgICBUaGlzIGhhZCB0
byBiZSBkb25lIGR1cmluZyB0aGUgZnJhbWUgY3JlYXRpb24gYW5kIHdhcyB2ZXJ5IGZyYWdpbGUu
CisKKyAgICAgICAgRnJhbWUgaXMgY2hhbmdlZCB0byBwdWxsIHRoZSB2YWx1ZSBmcm9tIHRoZSBj
aHJvbWUgY2xpZW50LiBUaGF0IHdheSB3ZSBhdm9pZCByYWNlcworICAgICAgICBhbmQgd2UgY2Fu
IG1haW50YWluIGEgc2luZ2xlIHZhbHVlIGZvciBhbGwgZnJhbWVzLgorCisgICAgICAgIFNlbmRp
bmcgdGhlIHZhbHVlcyB0byBhbGwgdGhlIHN1YmZyYW1lcyBpcyBhc2xvIGRvbmUgaGVyZSBzbyB0
aGF0IHdlIGRvIG5vdCBoYXZlIHRvIHJlcGVhdAorICAgICAgICBpdCBpbiBib3RoIFdlYktpdCBs
YXllcnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBw
YWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VuZE9yaWVu
dGF0aW9uQ2hhbmdlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbik6IERlbGV0ZWQuCisKIDIwMTQtMDYt
MDMgIFlvYXYgV2Vpc3MgIDx5b2F2QHlvYXYud3M+CiAKICAgICAgICAgUmVmYWN0b3IgdGhlIHNy
Y3NldCBwYXJzZXIgaW50byBpdHMgb3duIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCA5NmFkYjdi
YTg1MmI3YTk5OTQ4ZGViNGM2NzhhYmZlYTZhYmYxMDgzLi42MDdmNTI2ZTI2NWVjMDliYmQ3NGJh
ZDQzZWMzZDJiMzdkMGRjMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDYtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPU11bV0syXSBBZGQgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV2ViS2l0MSB0byBwcm92aWRlIHRo
ZSBkZXZpY2VPcmllbnRhdGlvbiBhcyBwdWxsIGluc3RlYWQgb2YgcHVzaC4KKworICAgICAgICAq
IERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubToKKyAgICAgICAgKC1b
V2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUgZGV2aWNlT3JpZW50YXRpb25dKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6
OmRldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUu
aDoKKwogMjAxNC0wNS0wOSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW2lPU10gU3dpdGNoIGdlb2xvY2F0aW9uIHRvIGFuIGV4cGxpY2l0IGF1dGhv
cml6YXRpb24gcXVlcnkgbW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzYzRhNmRmZDhjNzFmMmIw
MzAzNmMwZTAzYTE5NzVlMmUwMjU2YThmLi5mZmViZGY2M2RhYjY5NTkyYTI3YWQwZGY0OTA3ZTYw
MzQ4N2ZkYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDYtMDQg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU11b
V0syXSBBZGQgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dl
YkZyYW1lIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBz
ZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oOgorCiAyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIERlZmVycmFibGVPbmVTaG90VGltZXIgdG8gdXNlIHN0
ZDo6ZnVuY3Rpb24gaW5zdGVhZCBvZiBiZWluZyBhIGNsYXNzIHRlbXBsYXRlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzg3YjEwYjJhODk3NDMwY2Q4ODZhNTM5MDI1NGI5ZmIzZTI5NGRjZi4uMGY3NzYzZmYzMmZk
ZTZiOTg5ZjVmZWE4Zjg5YTJiZTk3NGRkNzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBA
CisyMDE0LTA2LTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdW1dLMl0gQWRkIGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNTMwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xNjY4MDA0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBXZWJLaXQyLgorCisgICAgICAg
IEZvciB0aGUgcHVibGljIEFQSSwgV0tXZWJWaWV3IGdldCB0aGUgdXBkYXRlcyB0aHJvdWdoIHRo
ZSBub3RpZmljYXRpb24gVUlXaW5kb3dEaWRSb3RhdGVOb3RpZmljYXRpb24uCisgICAgICAgIFdl
IGRvIG5vdCBoYXZlIGFueSBjb250cm9sIG92ZXIgaG93IHRoZSBBUEkgaXMgdXNlZCwgYnV0IHdl
IGNhbiBleHBlY3QgdGhlIHNpemUgd2lsbCBiZSB1cGRhdGVkIGJlZm9yZQorICAgICAgICB0aGUg
ZW5kIG9mIHJvdGF0aW9uIGluIG1vc3QgY2FzZXMgYW5kIHRoZSBldmVudHMgc2hvdWxkIGJlIHNl
bnQgaW4gdGhlIHJpZ2h0IG9yZGVyLgorCisgICAgICAgIEZvciBTYWZhcmksIHdlIHVzZSBhbiBv
dmVycmlkZSB0byBzdXBwb3J0IGFuaW1hdGVkIHJlc2l6ZSAoYW5kIHNvbWUgdGFicyBjb3JuZXIg
Y2FzZXMpLgorCisgICAgICAgIE9uIHRoZSBXZWJQcm9jZXNzIHNpZGUsIHdlIGp1c3QgZ2V0IHRo
ZSBuZXcgb3JpZW50YXRpb24gZGlyZWN0bHkgb3Igb24gRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoZGV2aWNlT3JpZW50YXRpb25Gb3JVSUludGVyZmFjZU9yaWVudGF0aW9uKToKKyAgICAgICAg
KGRldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6
Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93aW5kb3dEaWRSb3RhdGU6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0SW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlk
ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRl
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRldmljZU9yaWVudGF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0RGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKwogMjAxNC0wNi0wMyAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtXSzJdIEFsaWduIHRoZSBo
aWdobGlnaHQgcmVjdHMgd2l0aCBkZXZpY2UgcGl4ZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDc2YmVlZTE4NjYxMDE4NzhjYzg5N2UwNjliMGUyNjMyMTM3NjhiNGYuLjA2ODgxZjU5ZjU4NjBj
NzZjNjBmMWQ4MWY3NGYzNWE1Y2IwZDA4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjE3
LDcgKzMyMTcsNyBAQCBfX1pON1dlYkNvcmUyMk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIxMGNsaWVu
dEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRT
KQotX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCitfX1pO
N1dlYkNvcmU1RnJhbWUxOG9yaWVudGF0aW9uQ2hhbmdlZEV2CiAjZW5kaWYKIAogI2lmIFVTRShQ
TFVHSU5fSE9TVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDRmYzgzZmU1OGRlMGI1ZjcwOGRhMTZkMWQzYTFiZWE5NzI5ZWM3NjguLjc4MjljMTQwOGY2NGM1
N2QxMWY0ZWRhOWJmMmQ1NjczZjU3Y2UwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTIxNCw2ICsyMTQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCkgb3ZlcnJpZGUgeyB9OwogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmlydHVhbCBp
bnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDdiNzAyMTI0ZGY3ZjliY2UyZjU2NjgwOWM1ZWVjMDIzMTM2ODY5ZmYuLjQ3MGI3
NDM0MDM1MTM4OTAzNTc1MzQ0NWY4YTNlNWI5OGNjMGVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMjY2LDYgKzI2NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKSA9IDA7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmlydHVhbCBpbnQgZGV2aWNlT3Jp
ZW50YXRpb24oKSBjb25zdCA9IDA7CisjZW5kaWYKKwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCA2MTMwM2QxYjZlOTM5NTMyZDY0MjBiOWIxNGUyYmRjNTM4NGI2
YTM4Li5lMDkyNDRkNDJjNjVhYTVkYjI0ODFjMmEwZjc2NzBmNWIwNGM0MTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtMTY3LDkgKzE2Nyw2IEBAIEZyYW1lOjpGcmFtZShQYWdlJiBwYWdlLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXJDbGllbnQmCiAj
ZW5kaWYKICAgICAsIG1fcGFnZVpvb21GYWN0b3IocGFyZW50UGFnZVpvb21GYWN0b3IodGhpcykp
CiAgICAgLCBtX3RleHRab29tRmFjdG9yKHBhcmVudFRleHRab29tRmFjdG9yKHRoaXMpKQotI2lm
IEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCi0gICAgLCBtX29yaWVudGF0aW9uKDApCi0jZW5k
aWYKICAgICAsIG1fYWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWRDb3VudCgw
KQogewogICAgIEF0b21pY1N0cmluZzo6aW5pdCgpOwpAQCAtMjg4LDExICsyODUsMjMgQEAgdm9p
ZCBGcmFtZTo6c2V0RG9jdW1lbnQoUGFzc1JlZlB0cjxEb2N1bWVudD4gbmV3RG9jdW1lbnQpCiB9
CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQotdm9pZCBGcmFtZTo6c2VuZE9yaWVu
dGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKQordm9pZCBGcmFtZTo6b3JpZW50YXRp
b25DaGFuZ2VkKCkKK3sKKyAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzOworICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkKKyAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOworCisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoRG9jdW1l
bnQqIGRvYyA9IGZyYW1lc1tpXS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvYy0+ZGlzcGF0
Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5n
ZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICB9Cit9CisKK2ludCBGcmFtZTo6b3JpZW50YXRp
b24oKSBjb25zdAogewotICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKLSAgICBpZiAo
RG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCkpCi0gICAgICAgIGRvYy0+ZGlzcGF0Y2hXaW5kb3dF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKKyAgICBpZiAobV9wYWdlKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5kZXZpY2VPcmllbnRhdGlvbigpOworICAgIHJldHVybiAwOwogfQog
I2VuZGlmIC8vIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRl
eCA1YjQ1MDFmYjZhNDgzMzNjNTI4YTdhNmIyZDIxNjczYjJiZWM0MjE3Li43Njg1Njc5YWM4N2Vk
Mzg0MmRlN2RhMGYwZTQ2MmVhNzIwYTY2OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0yMTQsOCAr
MjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBPcmllbnRhdGlvbiBpcyB0
aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgog
ICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyBy
b3RhdGVkIDkwIGNsb2Nrd2lzZTsKICAgICAgICAgLy8gIDkwIGlzIHdoZW4gcm90YXRlZCBjb3Vu
dGVyIGNsb2Nrd2lzZS4KLSAgICAgICAgdm9pZCBzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudChp
bnQgb3JpZW50YXRpb24pOwotICAgICAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29yaWVudGF0aW9uOyB9CisgICAgICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKCk7Cisg
ICAgICAgIGludCBvcmllbnRhdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBj
bGVhclRpbWVycygpOwpAQCAtMzE0LDEwICszMTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGZsb2F0IG1fcGFnZVpvb21GYWN0b3I7CiAgICAgICAgIGZsb2F0IG1fdGV4dFpvb21G
YWN0b3I7CiAKLSNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQotICAgICAgICBpbnQgbV9v
cmllbnRhdGlvbjsKLSNlbmRpZgotCiAgICAgICAgIGludCBtX2FjdGl2ZURPTU9iamVjdHNBbmRB
bmltYXRpb25zU3VzcGVuZGVkQ291bnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tIGIvU291
cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5t
CmluZGV4IGYxNzNkYmFiZWFiMWEwNTM1OWJkMjQ5YzM4MTRjNTg1ODdhOGY2ZWYuLjcxNGYxZjk2
ZTNjYTFjZDcwYjE5OTllZDc2MTg3ZDBlNTY3MzA3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubQorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRl
Lm0KQEAgLTI0NSw2ICsyNDUsMTMgQEAgLSAodm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6
KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENHUmVjdCllbGVtZW50UmVjdAogewogfQogCisjaWYg
RU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKy0gKGludClkZXZpY2VPcmllbnRhdGlvbgorewor
ICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIC0gKEJPT0wpaGFzUmljaGx5RWRpdGFibGVTZWxl
Y3Rpb24KIHsKICAgICByZXR1cm4gTk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGUwZTRkYmIyZDNkOGU0M2Jj
YjRkNTM3ZjY2Njc4YzJiYTk0NjU0MTYuLjFiNTkzNWRhOWMzZmRhMzczMjIwMTgwZmRmMGMxNjQ2
NDYxN2QyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC04Niw2ICs4NiwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1Zp
ZGVvKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmly
dHVhbCBpbnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIGludCBtX2Zvcm1Ob3RpZmljYXRpb25TdXBwcmVzc2lvbnM7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tCmluZGV4IGI1YTM0ODQxNWE1YzNjMWJkMzQ0NDY4ZGMzY2MwNjdkOTA0ODU0MGYuLmY2
NjRmOTViZTkxNjEyMDVlZjBmNzg0ZjVhNzZlZTE4M2E3ZmU5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KQEAg
LTMyOCw0ICszMjgsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihib29sIGhhc1ZpZGVvKQogICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRl
Rm9yd2FyZGVyXSBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6aGFzVmlkZW8gZnJvbVJlY3Q6ZWxl
bWVudFJlY3RdOwogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKK2ludCBXZWJD
aHJvbWVDbGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
W1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIGRldmljZU9yaWVudGF0aW9uXTsK
K30KKyNlbmRpZgorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L2lv
cy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCBiMjRmYmFmY2EwMTdmNzIyYzIyODQz
OGNhZDM1NmFiMzM2MzFjM2YwLi44NGYxOGYwZTE4MTVlYjVkNjNhZjkzYmQ4ZDQ2N2E2MjM4NzA3
NzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApA
QCAtMTExLDYgKzExMSwxMCBAQAogLSAoQ0dQb2ludClpbnRlcmFjdGlvbkxvY2F0aW9uOwogLSAo
dm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENH
UmVjdCllbGVtZW50UmVjdDsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCistIChp
bnQpZGV2aWNlT3JpZW50YXRpb247CisjZW5kaWYKKwogLSAoQk9PTClpc1VucGVydHVyYmVkRGlj
dGF0aW9uUmVzdWx0TWFya2VyOihpZCltZXRhZGF0YUZvck1hcmtlcjsKIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgYWRkTWVzc2FnZVRvQ29uc29sZTooTlNEaWN0aW9uYXJ5ICop
bWVzc2FnZSB3aXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZTsKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGFmYTQ5NzgxOWY5ZTQwYjM4OTk1ZWUzMTEyYjhk
OWNlNzg2ZWUxNWYuLjA2Y2VhZDdkNDJkNmY5ODdmNTI1MjYxYWY3ZDBlNmY3OGQyZDQ3Y2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTI2NywxNSArMTI2NywxOSBA
QCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKICAgICBmcmFtZUxvYWRlci5jbGllbnQoKS5zYXZlVmlld1N0YXRlVG9JdGVtKGZy
YW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKTsKIH0KIAotLSAodm9pZClzZW5kT3Jp
ZW50YXRpb25DaGFuZ2VFdmVudDooaW50KW5ld09yaWVudGF0aW9uCistICh2b2lkKWRldmljZU9y
aWVudGF0aW9uQ2hhbmdlZAogewogICAgIFdlYlRocmVhZFJ1biheewotICAgICAgICBXZWJDb3Jl
OjpGcmFtZSAqZnJhbWUgPSBjb3JlKHNlbGYpOwotICAgICAgICBpZiAoZnJhbWUpCi0gICAgICAg
ICAgICBmcmFtZS0+c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQobmV3T3JpZW50YXRpb24pOwor
ICAgICAgICBpZiAoV2ViQ29yZTo6RnJhbWUgKmZyYW1lID0gY29yZShzZWxmKSkKKyAgICAgICAg
ICAgIGZyYW1lLT5vcmllbnRhdGlvbkNoYW5nZWQoKTsKICAgICB9KTsKIH0KIAorLSAodm9pZClz
ZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudDooaW50KW5ld09yaWVudGF0aW9uCit7CisgICAgW3Nl
bGYgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkXTsKK30KKwogLSAodm9pZClzZXROZWVkc0xheW91
dAogewogICAgIFdlYkNvcmU6OkZyYW1lICpmcmFtZSA9IGNvcmUoc2VsZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCBkYTMyMTMzNjI4YmQwZTNl
YjU3MTQ4OGY2MDY4MGJiOWVlNjM3MmU5Li5jOGY4Mjc5ZWViOTc3NTAzMmFiNjI0OTdiZTM0YmRi
OTMxM2M1YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRl
LmgKQEAgLTExOCw3ICsxMTgsMTEgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZvaWQpX3NldFNlbGVj
dGlvbkZyb21Ob25lOwogLSAodm9pZClfc2F2ZVZpZXdTdGF0ZTsKIC0gKHZvaWQpX3Jlc3RvcmVW
aWV3U3RhdGU7CisKKy0gKHZvaWQpZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkOworLy8gRklYTUU6
IGRlcHJlY2F0ZWQsIHRvIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGNhbGwgc2l0ZXMgYXJlIHVwZGF0
ZWQuCiAtICh2b2lkKXNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50OihpbnQpbmV3T3JpZW50YXRp
b247CisKIC0gKHZvaWQpc2V0TmVlZHNMYXlvdXQ7CiAtIChDR1NpemUpcmVuZGVyZWRTaXplT2ZO
b2RlOihET01Ob2RlICopbm9kZSBjb25zdHJhaW5lZFRvV2lkdGg6KGZsb2F0KXdpZHRoOwogLSAo
RE9NTm9kZSAqKWRlZXBlc3ROb2RlQXRWaWV3cG9ydExvY2F0aW9uOihDR1BvaW50KWFWaWV3cG9y
dExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCA3ZjQyZWM2MTg5YjZjYTljMmI2ODcyNWFmOGZkOTZlYWUxMzczMDhkLi45
OThmOWVmNTkzMzYwNTc1NjM0ZWFjNjdhMmUzNmQxYTI4ZmQ5ZmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtODEsNiArODEsNyBA
QAogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHUERGRG9jdW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0
IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVBlcmlwaGVyYWxIb3N0
X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KICNpbXBvcnQg
PFF1YXJ0ekNvcmUvQ0FSZW5kZXJTZXJ2ZXIuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6
Q29yZVByaXZhdGUuaD4KIApAQCAtMTUwLDYgKzE1MSw5IEBAIFdLV2ViVmlldyogZnJvbVdlYlBh
Z2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKICAgICBVSUVkZ2VJbnNldHMgX29i
c2N1cmVkSW5zZXRzOwogICAgIGJvb2wgX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHk7CiAKKyAgICBVSUludGVyZmFjZU9yaWVudGF0aW9uIF9pbnRlcmZhY2VPcmllbnRhdGlv
bk92ZXJyaWRlOworICAgIEJPT0wgX292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uOworCiAg
ICAgQk9PTCBfbmVlZHNSZXNldFZpZXdTdGF0ZUFmdGVyQ29tbWl0TG9hZEZvck1haW5GcmFtZTsK
ICAgICBCT09MIF9pc0FuaW1hdGluZ1Jlc2l6ZTsKICAgICBDQVRyYW5zZm9ybTNEIF9yZXNpemVB
bmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50czsKQEAgLTE4MCw2ICsxODQsMjYgQEAgV0tXZWJW
aWV3KiBmcm9tV2ViUGFnZVByb3h5KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIHJl
dHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV07CiB9CiAKK3N0YXRpYyBp
bnQzMl90IGRldmljZU9yaWVudGF0aW9uRm9yVUlJbnRlcmZhY2VPcmllbnRhdGlvbihVSUludGVy
ZmFjZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIHN3aXRjaCAob3JpZW50YXRpb24p
IHsKKyAgICBjYXNlIFVJSW50ZXJmYWNlT3JpZW50YXRpb25Vbmtub3duOgorICAgIGNhc2UgVUlJ
bnRlcmZhY2VPcmllbnRhdGlvblBvcnRyYWl0OgorICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNl
IFVJSW50ZXJmYWNlT3JpZW50YXRpb25Qb3J0cmFpdFVwc2lkZURvd246CisgICAgICAgIHJldHVy
biAxODA7CisgICAgY2FzZSBVSUludGVyZmFjZU9yaWVudGF0aW9uTGFuZHNjYXBlTGVmdDoKKyAg
ICAgICAgcmV0dXJuIC05MDsKKyAgICBjYXNlIFVJSW50ZXJmYWNlT3JpZW50YXRpb25MYW5kc2Nh
cGVSaWdodDoKKyAgICAgICAgcmV0dXJuIDkwOworICAgIH0KK30KKworc3RhdGljIGludDMyX3Qg
ZGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIHJldHVybiBkZXZpY2VPcmllbnRhdGlvbkZvclVJ
SW50ZXJmYWNlT3JpZW50YXRpb24oW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBz
dGF0dXNCYXJPcmllbnRhdGlvbl0pOworfQorCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZy
YW1lXSkpCkBAIC0yMjgsNiArMjUyLDkgQEAgV0tXZWJWaWV3KiBmcm9tV2ViUGFnZVByb3h5KFdl
YktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogCiAgICAgX2NvbnRlbnRWaWV3ID0gYWRvcHROUyhb
W1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4
dCBjb25maWd1cmF0aW9uOnN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpz
ZWxmXSk7CiAgICAgX3BhZ2UgPSBbX2NvbnRlbnRWaWV3IHBhZ2VdOworCisgICAgX3BhZ2UtPnNl
dERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVudGF0aW9uKCkpOworCiAgICAgW19jb250ZW50
VmlldyBsYXllcl0uYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKICAgICBbX2NvbnRlbnRWaWV3
IHNldEZyYW1lOmJvdW5kc107CiAgICAgW19zY3JvbGxWaWV3IGFkZFN1YnZpZXc6X2NvbnRlbnRW
aWV3LmdldCgpXTsKQEAgLTI0MCw2ICsyNjcsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJv
eHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRDaGFuZ2VGcmFtZTopIG5hbWU6VUlL
ZXlib2FyZERpZENoYW5nZUZyYW1lTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogICAgIFtjZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkV2lsbFNob3c6
KSBuYW1lOlVJS2V5Ym9hcmRXaWxsU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICBb
Y2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxI
aWRlOikgbmFtZTpVSUtleWJvYXJkV2lsbEhpZGVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cisg
ICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlk
Um90YXRlOikgbmFtZTpVSVdpbmRvd0RpZFJvdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsK
ICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jb250ZW50
U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlOikgbmFtZTpVSUNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFu
Z2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAgICAgX3BhZ2UtPmNvbnRlbnRTaXplQ2F0ZWdv
cnlEaWRDaGFuZ2UoW3NlbGYgX2NvbnRlbnRTaXplQ2F0ZWdvcnldKTsKIApAQCAtMTEzNiw2ICsx
MTY0LDEyIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZz
ZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAgICAgW3NlbGYgX2tleWJvYXJkQ2hh
bmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2VySW5mbyBhZGp1c3RTY3JvbGxWaWV3OllFU107
CiB9CiAKKy0gKHZvaWQpX3dpbmRvd0RpZFJvdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBpZiAoIV9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRhdGlvbikKKyAgICAg
ICAgX3BhZ2UtPnNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVudGF0aW9uKCkpOworfQor
CiAtICh2b2lkKV9jb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIF9wYWdlLT5jb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdl
KFtzZWxmIF9jb250ZW50U2l6ZUNhdGVnb3J5XSk7CkBAIC0xNjg2LDYgKzE3MjAsMjggQEAgc3Rh
dGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlv
bnMgd2tGaW5kT3B0aW9ucykKICAgICBbX2N1c3RvbUNvbnRlbnRWaWV3IHdlYl9zZXRPYnNjdXJl
ZEluc2V0czpvYnNjdXJlZEluc2V0c107CiB9CiAKKy0gKHZvaWQpX3NldEludGVyZmFjZU9yaWVu
dGF0aW9uT3ZlcnJpZGU6KFVJSW50ZXJmYWNlT3JpZW50YXRpb24paW50ZXJmYWNlT3JpZW50YXRp
b24KK3sKKyAgICBpZiAoIV9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxm
IG5hbWU6VUlXaW5kb3dEaWRSb3RhdGVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisKKyAgICBf
b3ZlcnJpZGVzSW50ZXJmYWNlT3JpZW50YXRpb24gPSBZRVM7CisKKyAgICBpZiAoaW50ZXJmYWNl
T3JpZW50YXRpb24gPT0gX2ludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRlID0gaW50ZXJmYWNlT3Jp
ZW50YXRpb247CisKKyAgICBpZiAoIV9pc0FuaW1hdGluZ1Jlc2l6ZSkKKyAgICAgICAgX3BhZ2Ut
PnNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVudGF0aW9uRm9yVUlJbnRlcmZhY2VPcmll
bnRhdGlvbihfaW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlkZSkpOworfQorCistIChVSUludGVy
ZmFjZU9yaWVudGF0aW9uKV9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRlCit7CisgICAgQVNT
RVJUKF9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRhdGlvbik7CisgICAgcmV0dXJuIF9pbnRlcmZh
Y2VPcmllbnRhdGlvbk92ZXJyaWRlOworfQorCiAtIChDR1NpemUpX21heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlCiB7CiAgICAgQVNTRVJUKF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNp
emUpOwpAQCAtMTgwNiw3ICsxODYyLDEzIEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0
aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgaWYg
KF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpCiAgICAgICAgIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZSA9IF9tYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTsKIAotICAgIF9wYWdlLT5k
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0
U2l6ZSksIFdlYkNvcmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSks
IFdlYkNvcmU6OkZsb2F0U2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpLCB2aXNpYmxlUmVjdElu
Q29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBm
dXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3JkaW5hdGVzLCB0YXJnZXRTY2FsZSk7CisgICAg
aW50MzJfdCBvcmllbnRhdGlvbjsKKyAgICBpZiAoX292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0
aW9uKQorICAgICAgICBvcmllbnRhdGlvbiA9IGRldmljZU9yaWVudGF0aW9uRm9yVUlJbnRlcmZh
Y2VPcmllbnRhdGlvbihfaW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlkZSk7CisgICAgZWxzZQor
ICAgICAgICBvcmllbnRhdGlvbiA9IF9wYWdlLT5kZXZpY2VPcmllbnRhdGlvbigpOworCisgICAg
X3BhZ2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplKG1pbmlt
dW1MYXlvdXRTaXplKSwgV2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXplRm9yTWlu
aW1hbFVJKSwgV2ViQ29yZTo6RmxvYXRTaXplKG1heGltdW1Vbm9ic2N1cmVkU2l6ZSksIHZpc2li
bGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRp
bmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHRhcmdldFNjYWxl
LCBvcmllbnRhdGlvbik7CiB9CiAKIC0gKHZvaWQpX2VuZEFuaW1hdGVkUmVzaXplCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CmluZGV4IDA2NDU2YzI3YTRiOTA0NDJiNmMzNDYzNmNmZmZjOWEzMGZmYWI1N2MuLjA1MTAzNGU2
MGQzMjBiN2QzODQ5YmNkMGM3Mzk0MjVlMWUzZjQxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMDgsNiAr
MTA4LDEwIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3B0aW9ucykg
ewogLy8gRGVmaW5lIHRoZSBpbnNldCBvZiB0aGUgc2Nyb2xsdmlldyB1bnVzYWJsZSBieSB0aGUg
d2ViIHBhZ2UuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPYnNjdXJlZEluc2V0
czopIFVJRWRnZUluc2V0cyBfb2JzY3VyZWRJbnNldHM7CiAKKy8vIE92ZXJyaWRlIHRoZSBpbnRl
cmZhY2Ugb3JpZW50YXRpb24uIENsaWVudHMgdXNpbmcgX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRo
VXBkYXRlczogbXVzdCB1cGRhdGUgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbgorLy8gaW4gdGhl
IHVwZGF0ZSBibG9jay4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludGVyZmFj
ZU9yaWVudGF0aW9uT3ZlcnJpZGU6KSBVSUludGVyZmFjZU9yaWVudGF0aW9uIF9pbnRlcmZhY2VP
cmllbnRhdGlvbk92ZXJyaWRlOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRC
YWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6KSBCT09MIF9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9u
ZFBhZ2U7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgdGhyZWUgcHJvcGVydGllcyBvbmNlIHdl
IGV4cG9zZSBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIgYXMgQVBJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjNTU1OTlhMjc5MzY1YWQ5NWI5NjUxNjll
MTYwYTU0ZjJjZWMyZWY4Li5lYmM3MzE1Y2E3MWQwZDljYjM2NGE1NDA0MTg0NjFlMWQzMjk3NTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjczLDYg
KzI3Myw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGll
bnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX21haW5GcmFtZShudWxs
cHRyKQogICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICNpZiBQTEFURk9S
TShJT1MpCisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uKDApCiAgICAgLCBtX2R5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGVJblByb2dyZXNzKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGM3NTViMTE3ZWZjMTJlMmNhODEzZmY5NTEwMTJhODNmZjk4
YWFjYzYuLmIxNDUxYmI2NzY3NTAzYWI2ODAwNzAzN2FkNmMzMDM4YTFmOGY2ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU5NSwxMiArNTk1LDE0IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFVub2JzY3VyZWRSZWN0Q29uc3RyYWludCB7IENvbnN0cmFp
bmVkVG9Eb2N1bWVudFJlY3QsIFVuY29uc3RyYWluZWQgfTsKICAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgY29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBV
bm9ic2N1cmVkUmVjdENvbnN0cmFpbnQgPSBVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29u
c3RyYWluZWQpIGNvbnN0OwogCi0gICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUksIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBkb3VibGUgdGFyZ2V0U2NhbGUpOwor
ICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1M
YXlvdXRTaXplRm9yTWluaW1hbFVJLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1V
bm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29u
dGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uKTsKICAgICB2b2lkIHN5bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCk7CiAKICAg
ICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWlu
aW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAg
ICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
Jik7CisgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKKyAgICBpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsg
fQogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24mKTsKIAogICAgIHZvaWQgc2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgdWludDMyX3QgZ2VzdHVy
ZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgUGFzc1JlZlB0cjxHZXN0dXJlQ2FsbGJhY2s+
KTsKQEAgLTE0OTAsNiArMTQ5Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjsKICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIG1fbGFzdFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZTsKKyAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRpb247CiAgICAg
Ym9vbCBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJblByb2dyZXNzOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXgg
Mzk2YzRjMTc2MWQ0ODRmZjk2N2Y3YThmOTI2ZDViMDRjZmY4Yzk0OC4uM2VkNmY4MDdlZDJkOTI0
YzBlZGNmODFlYzY5YWQ5OWU0ZjI2MjUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTIzNiwxMCArMjM2LDEwIEBAIFdlYkNvcmU6
OkZsb2F0UmVjdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChj
b25zdCBGbG9hdFJlY3QmCiAgICAgcmV0dXJuIEZyYW1lVmlldzo6cmVjdEZvclZpZXdwb3J0Q29u
c3RyYWluZWRPYmplY3RzKGVuY2xvc2luZ0xheW91dFJlY3QoY29uc3RyYWluZWRVbm9ic2N1cmVk
UmVjdCksIHJvdW5kZWRMYXlvdXRTaXplKGNvbnRlbnRzU2l6ZSksIGRpc3BsYXllZENvbnRlbnRT
Y2FsZSwgZmFsc2UsIFN0aWNrVG9WaWV3cG9ydEJvdW5kcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxh
eW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemVGb3JN
aW5pbWFsVUksIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCAgZG91YmxlIHRhcmdldFNjYWxlKQordm9p
ZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXpl
JiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5
b3V0U2l6ZUZvck1pbmltYWxVSSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsICBkb3VibGUgdGFyZ2V0
U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiB7CiAgICAgbV9keW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKG1pbmltdW1MYXlvdXRTaXpl
LCBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgbWF4aW11bVVub2JzY3VyZWRTaXplLCB0
YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0LCB0YXJnZXRVbm9i
c2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCB0YXJnZXRTY2FsZSksIG1fcGFnZUlE
KTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUobWluaW11bUxheW91dFNpemUsIG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1h
bFVJLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiksIG1fcGFnZUlEKTsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkKQEAg
LTI4Miw2ICsyODIsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVk
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fcGFn
ZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldERldmljZU9yaWVudGF0aW9uKGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24pCit7CisgICAgaWYgKGRldmljZU9yaWVudGF0aW9uICE9IG1f
ZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IGRldmlj
ZU9yaWVudGF0aW9uOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVudGF0aW9uKSwgbV9wYWdlSUQpOworICAg
IH0KK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJlZShjb25zdCBXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFuc2FjdGlvbikKIHsK
ICAgICBtX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciA9IGxheWVyVHJlZVRyYW5zYWN0aW9u
LnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
OGY4MjM0OWUxODU0NWY2M2E1YmE3MTQ5MDMwYjQ2ZTc1NjA0YTdhMy4uY2M4NTM4OTVmYWIyMjlj
YTI2MzA5MTQzMGJkNzAwOTcxYzcxNmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIs
NiArMTgyLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihib29sIGhhc1ZpZGVvKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9S
SUVOVEFUSU9OX0VWRU5UUykKKyAgICB2aXJ0dWFsIGludCBkZXZpY2VPcmllbnRhdGlvbigpIGNv
bnN0IG92ZXJyaWRlOworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdl
YkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
Q2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IDZkZTgzNWUxYmJkZGNlZmFhMTdhOTE4ZDYyZDVlOWY3
MGYxMzQzNmMuLmU5NWViNTJmOTZlMjY2ZTg0MGM5MjJhOWI2OTgyM2U3MWQwODFhYzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNo
cm9tZUNsaWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW0KQEAgLTEyOSw2ICsxMjksMTEgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVv
KQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoaGFzVmlkZW8sIG1fcGFnZS0+cmVjdEZvckVsZW1lbnRBdEludGVyYWN0aW9u
TG9jYXRpb24oKSkpOwogfQogCitpbnQgV2ViQ2hyb21lQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+ZGV2aWNlT3JpZW50YXRpb24oKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjE5MDMx
NWM4MGYxZGJhNzExMjMwMTgxZWNlMmMyYWRlMTMwZjE3My4uYjM2YTU3ZGNkZWZkYTBmNWU3MmJh
ZjM3NTU4YmExMWFiYzg3NzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMzAwLDYgKzMwMCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogICAgICwgbV9oYXNQZW5kaW5nQmx1ck5vdGlmaWNhdGlvbihmYWxzZSkKICAgICAsIG1fc2Ny
ZWVuU2l6ZShwYXJhbWV0ZXJzLnNjcmVlblNpemUpCiAgICAgLCBtX2F2YWlsYWJsZVNjcmVlblNp
emUocGFyYW1ldGVycy5hdmFpbGFibGVTY3JlZW5TaXplKQorICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbigwKQogICAgICwgbV9pbkR5bmFtaWNTaXplVXBkYXRlKGZhbHNlKQogI2VuZGlmCiAgICAg
LCBtX2luc3BlY3RvckNsaWVudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNWI4ZjhjMzBiYmM1ZjkwYTY3NTM0M2FiZTg3M2RmNTQ1ZGYyMzE5
ZS4uNmNmNDQ3ZDJmYjc5YTNjNjc4MDZiYmU1NDViNWUzYWZiNzY4YWUxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NTEsNiArNDUxLDcgQEAg
cHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVu
U2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXpl
KCkgY29uc3Q7CisgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGV2aWNlT3JpZW50YXRpb247IH0KICAgICB2b2lkIHZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCk7CiAgICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKGRvdWJs
ZSBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG9yaWdpbik7CkBAIC03MjMsNyArNzI0
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxh
eW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmKTsKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSBzY2FsZSk7CisgICAg
dm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxV
SSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJs
ZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbik7CiAgICAgdm9pZCBzeW5jaHJvbml6
ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZShkb3VibGUmIG5ld1RhcmdldFNjYWxlLCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbik7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKTsKICAgICBib29s
IHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlV
SVByb2Nlc3M7IH0KQEAgLTEyMTYsNiArMTIxOCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdl
YkNvcmU6OlJhbmdlPiBtX2N1cnJlbnRCbG9ja1NlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUg
bV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CisgICAgaW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9u
OwogICAgIGJvb2wgbV9pbkR5bmFtaWNTaXplVXBkYXRlOwogICAgIEhhc2hNYXA8c3RkOjpwYWly
PFdlYkNvcmU6OkludFNpemUsIGRvdWJsZT4sIFdlYkNvcmU6OkludFBvaW50PiBtX2R5bmFtaWNT
aXplVXBkYXRlSGlzdG9yeTsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9wZW5kaW5nU3lu
dGhldGljQ2xpY2tOb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2MzZkZTdkMzhhNjI0ZDg2YWNjM2Q1NGRi
NjgzNDRkNGU4ZjAzNDQwLi5jZjAzNGYzMTE3YTA3ZDlmYThlMWQ2NjZkN2E4ZmJkNTk1YzI4NmI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtNDYsNyArNDYsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6
ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25N
aW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAg
ICBTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCi0gICAg
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91
dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0
UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRV
bm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSBzY2FsZSkKKyAgICBTZXREZXZpY2VPcmllbnRh
dGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIG1pbmltdW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9h
dFNpemUgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUksICBXZWJDb3JlOjpGbG9hdFNpemUg
bWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENv
bnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNv
cmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiAgICAgU3luY2hyb25p
emVEeW5hbWljVmlld3BvcnRVcGRhdGUoKSAtPiAoZG91YmxlIG5ld1RhcmdldFNjYWxlLCBXZWJD
b3JlOjpGbG9hdFBvaW50IG5ld1Njcm9sbFBvc2l0aW9uKQogCiAgICAgSGFuZGxlVGFwKFdlYkNv
cmU6OkludFBvaW50IHBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGJjOTY3MjgyYzdkNmZjYWEwMDg1ODlmZDdh
MTlmNGU0ZjEyY2NhNzAuLjhkNDVkYzBjYTk4NTRjMjU4ODk4ZGRkNDRmMzI3MjhiMDgzYjk1ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTE5NTMsNiArMTk1MywxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldE1heGltdW1V
bm9ic2N1cmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSkKICAg
ICB1cGRhdGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZTo6c2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKK3sK
KyAgICBpZiAoZGV2aWNlT3JpZW50YXRpb24gPT0gbV9kZXZpY2VPcmllbnRhdGlvbikKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBkZXZpY2VPcmllbnRhdGlvbjsK
KyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLm9yaWVudGF0aW9uQ2hhbmdlZCgpOworfQorCiBzdGF0
aWMgaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihmbG9hdCBhLCBmbG9hdCBiKQogewogICAgIHJl
dHVybiBmYWJzKGEgLSBiKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7
CkBAIC0xOTcxLDcgKzE5NzksNyBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmdC
ZWZvcmVMYXlvdXRJZk5lZWRlZChjb25zdCBGbG9hdFNpemUmIG9sZFNpemUsCiAgICAgfQogfQog
Ci12b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXpl
JiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZUZv
ck1pbmltYWxVSSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRh
cmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSB0YXJnZXRT
Y2FsZSkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9h
dFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRT
aXplRm9yTWluaW1hbFVJLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRh
cmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQogewogICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwg
dHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVy
ZSB0aGUgY29udGVudCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9z
aXRpb24gZnJvbSBKYXZhU2NyaXB0LgpAQCAtMjE1Myw2ICsyMTYxLDcgQEAgdm9pZCBXZWJQYWdl
OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91
dFNpemUsIGNvbnMKICAgICBGbG9hdFNpemUgdW5vYnNjdXJlZENvbnRlbnRSZWN0U2l6ZUluQ29u
dGVudENvb3JkaW5hdGVzID0gbmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0LnNpemUoKTsKICAgICB1
bm9ic2N1cmVkQ29udGVudFJlY3RTaXplSW5Db250ZW50Q29vcmRpbmF0ZXMuc2NhbGUoc2NhbGUp
OwogICAgIGZyYW1lVmlldy5zZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoZXhwYW5kZWRJbnRT
aXplKHVub2JzY3VyZWRDb250ZW50UmVjdFNpemVJbkNvbnRlbnRDb29yZGluYXRlcykpOworICAg
IHNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVudGF0aW9uKTsKICAgICBmcmFtZVZpZXcu
c2V0U2Nyb2xsT2Zmc2V0KHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7
CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkR5bmFtaWNWaWV3cG9ydFVwZGF0
ZUNoYW5nZWRUYXJnZXQocGFnZVNjYWxlRmFjdG9yKCksIGZyYW1lVmlldy5zY3JvbGxQb3NpdGlv
bigpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232518</attachid>
            <date>2014-06-04 20:19:31 -0700</date>
            <delta_ts>2014-06-05 15:54:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133530-20140604201907.patch</filename>
            <type>text/plain</type>
            <size>35146</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIzNzZkOGVhOTZlNjNh
Mjk1YWViNzJjZTQxODRkMGYxZDcyODA2NS4uNjY4NzE4YzNkM2EwOTU5NzI1YmExMDAyYzhhNmYx
YzE1YjQ0MmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTA0ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMzNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgV2ViQ29yZSB3YXMgZ2V0dGluZyB0aGUgb3JpZW50
YXRpb24gZGlyZWN0bHkgZnJvbSB0aGUgV2ViS2l0IGxheWVyLgorICAgICAgICBUaGlzIGhhZCB0
byBiZSBkb25lIGR1cmluZyB0aGUgZnJhbWUgY3JlYXRpb24gYW5kIHdhcyB2ZXJ5IGZyYWdpbGUu
CisKKyAgICAgICAgRnJhbWUgaXMgY2hhbmdlZCB0byBwdWxsIHRoZSB2YWx1ZSBmcm9tIHRoZSBj
aHJvbWUgY2xpZW50LiBUaGF0IHdheSB3ZSBhdm9pZCByYWNlcworICAgICAgICBhbmQgd2UgY2Fu
IG1haW50YWluIGEgc2luZ2xlIHZhbHVlIGZvciBhbGwgZnJhbWVzLgorCisgICAgICAgIFNlbmRp
bmcgdGhlIHZhbHVlcyB0byBhbGwgdGhlIHN1YmZyYW1lcyBpcyBhc2xvIGRvbmUgaGVyZSBzbyB0
aGF0IHdlIGRvIG5vdCBoYXZlIHRvIHJlcGVhdAorICAgICAgICBpdCBpbiBib3RoIFdlYktpdCBs
YXllcnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBw
YWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VuZE9yaWVu
dGF0aW9uQ2hhbmdlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbik6IERlbGV0ZWQuCisKIDIwMTQtMDYt
MDMgIFlvYXYgV2Vpc3MgIDx5b2F2QHlvYXYud3M+CiAKICAgICAgICAgUmVmYWN0b3IgdGhlIHNy
Y3NldCBwYXJzZXIgaW50byBpdHMgb3duIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCA5NmFkYjdi
YTg1MmI3YTk5OTQ4ZGViNGM2NzhhYmZlYTZhYmYxMDgzLi42MDdmNTI2ZTI2NWVjMDliYmQ3NGJh
ZDQzZWMzZDJiMzdkMGRjMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDYtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPU11bV0syXSBBZGQgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV2ViS2l0MSB0byBwcm92aWRlIHRo
ZSBkZXZpY2VPcmllbnRhdGlvbiBhcyBwdWxsIGluc3RlYWQgb2YgcHVzaC4KKworICAgICAgICAq
IERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubToKKyAgICAgICAgKC1b
V2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUgZGV2aWNlT3JpZW50YXRpb25dKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6
OmRldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUu
aDoKKwogMjAxNC0wNS0wOSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW2lPU10gU3dpdGNoIGdlb2xvY2F0aW9uIHRvIGFuIGV4cGxpY2l0IGF1dGhv
cml6YXRpb24gcXVlcnkgbW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzYzRhNmRmZDhjNzFmMmIw
MzAzNmMwZTAzYTE5NzVlMmUwMjU2YThmLi5mZmViZGY2M2RhYjY5NTkyYTI3YWQwZGY0OTA3ZTYw
MzQ4N2ZkYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDYtMDQg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU11b
V0syXSBBZGQgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dl
YkZyYW1lIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBz
ZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oOgorCiAyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIERlZmVycmFibGVPbmVTaG90VGltZXIgdG8gdXNlIHN0
ZDo6ZnVuY3Rpb24gaW5zdGVhZCBvZiBiZWluZyBhIGNsYXNzIHRlbXBsYXRlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzg3YjEwYjJhODk3NDMwY2Q4ODZhNTM5MDI1NGI5ZmIzZTI5NGRjZi4uMGY3NzYzZmYzMmZk
ZTZiOTg5ZjVmZWE4Zjg5YTJiZTk3NGRkNzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBA
CisyMDE0LTA2LTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdW1dLMl0gQWRkIGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNTMwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xNjY4MDA0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBXZWJLaXQyLgorCisgICAgICAg
IEZvciB0aGUgcHVibGljIEFQSSwgV0tXZWJWaWV3IGdldCB0aGUgdXBkYXRlcyB0aHJvdWdoIHRo
ZSBub3RpZmljYXRpb24gVUlXaW5kb3dEaWRSb3RhdGVOb3RpZmljYXRpb24uCisgICAgICAgIFdl
IGRvIG5vdCBoYXZlIGFueSBjb250cm9sIG92ZXIgaG93IHRoZSBBUEkgaXMgdXNlZCwgYnV0IHdl
IGNhbiBleHBlY3QgdGhlIHNpemUgd2lsbCBiZSB1cGRhdGVkIGJlZm9yZQorICAgICAgICB0aGUg
ZW5kIG9mIHJvdGF0aW9uIGluIG1vc3QgY2FzZXMgYW5kIHRoZSBldmVudHMgc2hvdWxkIGJlIHNl
bnQgaW4gdGhlIHJpZ2h0IG9yZGVyLgorCisgICAgICAgIEZvciBTYWZhcmksIHdlIHVzZSBhbiBv
dmVycmlkZSB0byBzdXBwb3J0IGFuaW1hdGVkIHJlc2l6ZSAoYW5kIHNvbWUgdGFicyBjb3JuZXIg
Y2FzZXMpLgorCisgICAgICAgIE9uIHRoZSBXZWJQcm9jZXNzIHNpZGUsIHdlIGp1c3QgZ2V0IHRo
ZSBuZXcgb3JpZW50YXRpb24gZGlyZWN0bHkgb3Igb24gRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoZGV2aWNlT3JpZW50YXRpb25Gb3JVSUludGVyZmFjZU9yaWVudGF0aW9uKToKKyAgICAgICAg
KGRldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6
Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93aW5kb3dEaWRSb3RhdGU6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0SW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlk
ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRl
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVdpdGhVcGRhdGVz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRldmljZU9yaWVudGF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0RGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKwogMjAxNC0wNi0wMyAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtXSzJdIEFsaWduIHRoZSBo
aWdobGlnaHQgcmVjdHMgd2l0aCBkZXZpY2UgcGl4ZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDc2YmVlZTE4NjYxMDE4NzhjYzg5N2UwNjliMGUyNjMyMTM3NjhiNGYuLjA2ODgxZjU5ZjU4NjBj
NzZjNjBmMWQ4MWY3NGYzNWE1Y2IwZDA4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjE3
LDcgKzMyMTcsNyBAQCBfX1pON1dlYkNvcmUyMk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIxMGNsaWVu
dEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRT
KQotX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCitfX1pO
N1dlYkNvcmU1RnJhbWUxOG9yaWVudGF0aW9uQ2hhbmdlZEV2CiAjZW5kaWYKIAogI2lmIFVTRShQ
TFVHSU5fSE9TVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDRmYzgzZmU1OGRlMGI1ZjcwOGRhMTZkMWQzYTFiZWE5NzI5ZWM3NjguLjc4MjljMTQwOGY2NGM1
N2QxMWY0ZWRhOWJmMmQ1NjczZjU3Y2UwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTIxNCw2ICsyMTQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCkgb3ZlcnJpZGUgeyB9OwogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmlydHVhbCBp
bnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDdiNzAyMTI0ZGY3ZjliY2UyZjU2NjgwOWM1ZWVjMDIzMTM2ODY5ZmYuLjQ3MGI3
NDM0MDM1MTM4OTAzNTc1MzQ0NWY4YTNlNWI5OGNjMGVlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMjY2LDYgKzI2NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKSA9IDA7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmlydHVhbCBpbnQgZGV2aWNlT3Jp
ZW50YXRpb24oKSBjb25zdCA9IDA7CisjZW5kaWYKKwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCA2MTMwM2QxYjZlOTM5NTMyZDY0MjBiOWIxNGUyYmRjNTM4NGI2
YTM4Li5lMDkyNDRkNDJjNjVhYTVkYjI0ODFjMmEwZjc2NzBmNWIwNGM0MTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtMTY3LDkgKzE2Nyw2IEBAIEZyYW1lOjpGcmFtZShQYWdlJiBwYWdlLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXJDbGllbnQmCiAj
ZW5kaWYKICAgICAsIG1fcGFnZVpvb21GYWN0b3IocGFyZW50UGFnZVpvb21GYWN0b3IodGhpcykp
CiAgICAgLCBtX3RleHRab29tRmFjdG9yKHBhcmVudFRleHRab29tRmFjdG9yKHRoaXMpKQotI2lm
IEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCi0gICAgLCBtX29yaWVudGF0aW9uKDApCi0jZW5k
aWYKICAgICAsIG1fYWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWRDb3VudCgw
KQogewogICAgIEF0b21pY1N0cmluZzo6aW5pdCgpOwpAQCAtMjg4LDExICsyODUsMjMgQEAgdm9p
ZCBGcmFtZTo6c2V0RG9jdW1lbnQoUGFzc1JlZlB0cjxEb2N1bWVudD4gbmV3RG9jdW1lbnQpCiB9
CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQotdm9pZCBGcmFtZTo6c2VuZE9yaWVu
dGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKQordm9pZCBGcmFtZTo6b3JpZW50YXRp
b25DaGFuZ2VkKCkKK3sKKyAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzOworICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkKKyAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOworCisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoRG9jdW1l
bnQqIGRvYyA9IGZyYW1lc1tpXS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvYy0+ZGlzcGF0
Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5n
ZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICB9Cit9CisKK2ludCBGcmFtZTo6b3JpZW50YXRp
b24oKSBjb25zdAogewotICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKLSAgICBpZiAo
RG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCkpCi0gICAgICAgIGRvYy0+ZGlzcGF0Y2hXaW5kb3dF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKKyAgICBpZiAobV9wYWdlKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5kZXZpY2VPcmllbnRhdGlvbigpOworICAgIHJldHVybiAwOwogfQog
I2VuZGlmIC8vIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRl
eCA1YjQ1MDFmYjZhNDgzMzNjNTI4YTdhNmIyZDIxNjczYjJiZWM0MjE3Li43Njg1Njc5YWM4N2Vk
Mzg0MmRlN2RhMGYwZTQ2MmVhNzIwYTY2OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0yMTQsOCAr
MjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBPcmllbnRhdGlvbiBpcyB0
aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgog
ICAgICAgICAvLyAgMCBpcyBzdHJhaWdodCB1cDsgLTkwIGlzIHdoZW4gdGhlIGRldmljZSBpcyBy
b3RhdGVkIDkwIGNsb2Nrd2lzZTsKICAgICAgICAgLy8gIDkwIGlzIHdoZW4gcm90YXRlZCBjb3Vu
dGVyIGNsb2Nrd2lzZS4KLSAgICAgICAgdm9pZCBzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudChp
bnQgb3JpZW50YXRpb24pOwotICAgICAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29yaWVudGF0aW9uOyB9CisgICAgICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKCk7Cisg
ICAgICAgIGludCBvcmllbnRhdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBj
bGVhclRpbWVycygpOwpAQCAtMzE0LDEwICszMTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGZsb2F0IG1fcGFnZVpvb21GYWN0b3I7CiAgICAgICAgIGZsb2F0IG1fdGV4dFpvb21G
YWN0b3I7CiAKLSNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQotICAgICAgICBpbnQgbV9v
cmllbnRhdGlvbjsKLSNlbmRpZgotCiAgICAgICAgIGludCBtX2FjdGl2ZURPTU9iamVjdHNBbmRB
bmltYXRpb25zU3VzcGVuZGVkQ291bnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tIGIvU291
cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5t
CmluZGV4IGYxNzNkYmFiZWFiMWEwNTM1OWJkMjQ5YzM4MTRjNTg1ODdhOGY2ZWYuLjcxNGYxZjk2
ZTNjYTFjZDcwYjE5OTllZDc2MTg3ZDBlNTY3MzA3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubQorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRl
Lm0KQEAgLTI0NSw2ICsyNDUsMTMgQEAgLSAodm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6
KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENHUmVjdCllbGVtZW50UmVjdAogewogfQogCisjaWYg
RU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKy0gKGludClkZXZpY2VPcmllbnRhdGlvbgorewor
ICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIC0gKEJPT0wpaGFzUmljaGx5RWRpdGFibGVTZWxl
Y3Rpb24KIHsKICAgICByZXR1cm4gTk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGUwZTRkYmIyZDNkOGU0M2Jj
YjRkNTM3ZjY2Njc4YzJiYTk0NjU0MTYuLjFiNTkzNWRhOWMzZmRhMzczMjIwMTgwZmRmMGMxNjQ2
NDYxN2QyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC04Niw2ICs4NiwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1Zp
ZGVvKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgdmly
dHVhbCBpbnQgZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIGludCBtX2Zvcm1Ob3RpZmljYXRpb25TdXBwcmVzc2lvbnM7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLm1tCmluZGV4IGI1YTM0ODQxNWE1YzNjMWJkMzQ0NDY4ZGMzY2MwNjdkOTA0ODU0MGYuLmY2
NjRmOTViZTkxNjEyMDVlZjBmNzg0ZjVhNzZlZTE4M2E3ZmU5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KQEAg
LTMyOCw0ICszMjgsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihib29sIGhhc1ZpZGVvKQogICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRl
Rm9yd2FyZGVyXSBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6aGFzVmlkZW8gZnJvbVJlY3Q6ZWxl
bWVudFJlY3RdOwogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKK2ludCBXZWJD
aHJvbWVDbGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
W1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIGRldmljZU9yaWVudGF0aW9uXTsK
K30KKyNlbmRpZgorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L2lv
cy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCBiMjRmYmFmY2EwMTdmNzIyYzIyODQz
OGNhZDM1NmFiMzM2MzFjM2YwLi44NGYxOGYwZTE4MTVlYjVkNjNhZjkzYmQ4ZDQ2N2E2MjM4NzA3
NzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApA
QCAtMTExLDYgKzExMSwxMCBAQAogLSAoQ0dQb2ludClpbnRlcmFjdGlvbkxvY2F0aW9uOwogLSAo
dm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENH
UmVjdCllbGVtZW50UmVjdDsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCistIChp
bnQpZGV2aWNlT3JpZW50YXRpb247CisjZW5kaWYKKwogLSAoQk9PTClpc1VucGVydHVyYmVkRGlj
dGF0aW9uUmVzdWx0TWFya2VyOihpZCltZXRhZGF0YUZvck1hcmtlcjsKIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgYWRkTWVzc2FnZVRvQ29uc29sZTooTlNEaWN0aW9uYXJ5ICop
bWVzc2FnZSB3aXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZTsKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGFmYTQ5NzgxOWY5ZTQwYjM4OTk1ZWUzMTEyYjhk
OWNlNzg2ZWUxNWYuLjU4YmZiOThlMTI3MTZlYmQxM2Q4MDcyNWVlNGQzYjkzYWJhNzgyMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTI2NywxNSArMTI2NywxOSBA
QCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKICAgICBmcmFtZUxvYWRlci5jbGllbnQoKS5zYXZlVmlld1N0YXRlVG9JdGVtKGZy
YW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKTsKIH0KIAotLSAodm9pZClzZW5kT3Jp
ZW50YXRpb25DaGFuZ2VFdmVudDooaW50KW5ld09yaWVudGF0aW9uCistICh2b2lkKWRldmljZU9y
aWVudGF0aW9uQ2hhbmdlZAogewogICAgIFdlYlRocmVhZFJ1biheewotICAgICAgICBXZWJDb3Jl
OjpGcmFtZSAqZnJhbWUgPSBjb3JlKHNlbGYpOwotICAgICAgICBpZiAoZnJhbWUpCi0gICAgICAg
ICAgICBmcmFtZS0+c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQobmV3T3JpZW50YXRpb24pOwor
ICAgICAgICBpZiAoV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gY29yZShzZWxmKSkKKyAgICAgICAg
ICAgIGZyYW1lLT5vcmllbnRhdGlvbkNoYW5nZWQoKTsKICAgICB9KTsKIH0KIAorLSAodm9pZClz
ZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudDooaW50KW5ld09yaWVudGF0aW9uCit7CisgICAgW3Nl
bGYgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkXTsKK30KKwogLSAodm9pZClzZXROZWVkc0xheW91
dAogewogICAgIFdlYkNvcmU6OkZyYW1lICpmcmFtZSA9IGNvcmUoc2VsZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCBkYTMyMTMzNjI4YmQwZTNl
YjU3MTQ4OGY2MDY4MGJiOWVlNjM3MmU5Li5jOGY4Mjc5ZWViOTc3NTAzMmFiNjI0OTdiZTM0YmRi
OTMxM2M1YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRl
LmgKQEAgLTExOCw3ICsxMTgsMTEgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZvaWQpX3NldFNlbGVj
dGlvbkZyb21Ob25lOwogLSAodm9pZClfc2F2ZVZpZXdTdGF0ZTsKIC0gKHZvaWQpX3Jlc3RvcmVW
aWV3U3RhdGU7CisKKy0gKHZvaWQpZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkOworLy8gRklYTUU6
IGRlcHJlY2F0ZWQsIHRvIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGNhbGwgc2l0ZXMgYXJlIHVwZGF0
ZWQuCiAtICh2b2lkKXNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50OihpbnQpbmV3T3JpZW50YXRp
b247CisKIC0gKHZvaWQpc2V0TmVlZHNMYXlvdXQ7CiAtIChDR1NpemUpcmVuZGVyZWRTaXplT2ZO
b2RlOihET01Ob2RlICopbm9kZSBjb25zdHJhaW5lZFRvV2lkdGg6KGZsb2F0KXdpZHRoOwogLSAo
RE9NTm9kZSAqKWRlZXBlc3ROb2RlQXRWaWV3cG9ydExvY2F0aW9uOihDR1BvaW50KWFWaWV3cG9y
dExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCA3ZjQyZWM2MTg5YjZjYTljMmI2ODcyNWFmOGZkOTZlYWUxMzczMDhkLi5h
NGYwZWQxNGVkZjg0ODQ0MDRhNjQxZTA0MTNmZmI4MDk1ZTNhYmY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtODEsNiArODEsNyBA
QAogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHUERGRG9jdW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0
IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVBlcmlwaGVyYWxIb3N0
X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KICNpbXBvcnQg
PFF1YXJ0ekNvcmUvQ0FSZW5kZXJTZXJ2ZXIuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6
Q29yZVByaXZhdGUuaD4KIApAQCAtMTUwLDYgKzE1MSw5IEBAIFdLV2ViVmlldyogZnJvbVdlYlBh
Z2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKICAgICBVSUVkZ2VJbnNldHMgX29i
c2N1cmVkSW5zZXRzOwogICAgIGJvb2wgX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHk7CiAKKyAgICBVSUludGVyZmFjZU9yaWVudGF0aW9uIF9pbnRlcmZhY2VPcmllbnRhdGlv
bk92ZXJyaWRlOworICAgIEJPT0wgX292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uOworCiAg
ICAgQk9PTCBfbmVlZHNSZXNldFZpZXdTdGF0ZUFmdGVyQ29tbWl0TG9hZEZvck1haW5GcmFtZTsK
ICAgICBCT09MIF9pc0FuaW1hdGluZ1Jlc2l6ZTsKICAgICBDQVRyYW5zZm9ybTNEIF9yZXNpemVB
bmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50czsKQEAgLTE4MCw2ICsxODQsMjggQEAgV0tXZWJW
aWV3KiBmcm9tV2ViUGFnZVByb3h5KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIHJl
dHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV07CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1MpCitzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbkZvclVJSW50ZXJmYWNl
T3JpZW50YXRpb24oVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3sKKyAgICBz
d2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSBVSUludGVyZmFjZU9yaWVudGF0aW9uVW5r
bm93bjoKKyAgICBjYXNlIFVJSW50ZXJmYWNlT3JpZW50YXRpb25Qb3J0cmFpdDoKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgY2FzZSBVSUludGVyZmFjZU9yaWVudGF0aW9uUG9ydHJhaXRVcHNpZGVE
b3duOgorICAgICAgICByZXR1cm4gMTgwOworICAgIGNhc2UgVUlJbnRlcmZhY2VPcmllbnRhdGlv
bkxhbmRzY2FwZUxlZnQ6CisgICAgICAgIHJldHVybiAtOTA7CisgICAgY2FzZSBVSUludGVyZmFj
ZU9yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6CisgICAgICAgIHJldHVybiA5MDsKKyAgICB9Cit9
CisKK3N0YXRpYyBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICByZXR1cm4gZGV2
aWNlT3JpZW50YXRpb25Gb3JVSUludGVyZmFjZU9yaWVudGF0aW9uKFtbVUlBcHBsaWNhdGlvbiBz
aGFyZWRBcHBsaWNhdGlvbl0gc3RhdHVzQmFyT3JpZW50YXRpb25dKTsKK30KKyNlbmRpZgorCiAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246
KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXSkpCkBAIC0yMjgsNiArMjU0LDkgQEAgV0tX
ZWJWaWV3KiBmcm9tV2ViUGFnZVByb3h5KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogCiAg
ICAgX2NvbnRlbnRWaWV3ID0gYWRvcHROUyhbW1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25maWd1cmF0aW9uOnN0ZDo6bW92ZSh3ZWJQ
YWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpzZWxmXSk7CiAgICAgX3BhZ2UgPSBbX2NvbnRlbnRW
aWV3IHBhZ2VdOworCisgICAgX3BhZ2UtPnNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9yaWVu
dGF0aW9uKCkpOworCiAgICAgW19jb250ZW50VmlldyBsYXllcl0uYW5jaG9yUG9pbnQgPSBDR1Bv
aW50WmVybzsKICAgICBbX2NvbnRlbnRWaWV3IHNldEZyYW1lOmJvdW5kc107CiAgICAgW19zY3Jv
bGxWaWV3IGFkZFN1YnZpZXc6X2NvbnRlbnRWaWV3LmdldCgpXTsKQEAgLTI0MCw2ICsyNjksNyBA
QCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Up
CiAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9h
cmREaWRDaGFuZ2VGcmFtZTopIG5hbWU6VUlLZXlib2FyZERpZENoYW5nZUZyYW1lTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOwogICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2tleWJvYXJkV2lsbFNob3c6KSBuYW1lOlVJS2V5Ym9hcmRXaWxsU2hvd05vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxIaWRlOikgbmFtZTpVSUtleWJvYXJkV2lsbEhpZGVO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUm90YXRlOikgbmFtZTpVSVdpbmRvd0RpZFJvdGF0
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKF9jb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlOikgbmFtZTpV
SUNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAg
ICAgX3BhZ2UtPmNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoW3NlbGYgX2NvbnRlbnRTaXpl
Q2F0ZWdvcnldKTsKIApAQCAtMTEzNiw2ICsxMTY2LDEyIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50
T2ZmCiAgICAgW3NlbGYgX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2Vy
SW5mbyBhZGp1c3RTY3JvbGxWaWV3OllFU107CiB9CiAKKy0gKHZvaWQpX3dpbmRvd0RpZFJvdGF0
ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBpZiAoIV9vdmVycmlkZXNJ
bnRlcmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgX3BhZ2UtPnNldERldmljZU9yaWVudGF0aW9u
KGRldmljZU9yaWVudGF0aW9uKCkpOworfQorCiAtICh2b2lkKV9jb250ZW50U2l6ZUNhdGVnb3J5
RGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIF9wYWdlLT5j
b250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKFtzZWxmIF9jb250ZW50U2l6ZUNhdGVnb3J5XSk7
CkBAIC0xNjg2LDYgKzE3MjIsMjggQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25z
IHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICBbX2N1c3Rv
bUNvbnRlbnRWaWV3IHdlYl9zZXRPYnNjdXJlZEluc2V0czpvYnNjdXJlZEluc2V0c107CiB9CiAK
Ky0gKHZvaWQpX3NldEludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGU6KFVJSW50ZXJmYWNlT3Jp
ZW50YXRpb24paW50ZXJmYWNlT3JpZW50YXRpb24KK3sKKyAgICBpZiAoIV9vdmVycmlkZXNJbnRl
cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6VUlXaW5kb3dEaWRSb3RhdGVOb3RpZmlj
YXRpb24gb2JqZWN0Om5pbF07CisKKyAgICBfb3ZlcnJpZGVzSW50ZXJmYWNlT3JpZW50YXRpb24g
PSBZRVM7CisKKyAgICBpZiAoaW50ZXJmYWNlT3JpZW50YXRpb24gPT0gX2ludGVyZmFjZU9yaWVu
dGF0aW9uT3ZlcnJpZGUpCisgICAgICAgIHJldHVybjsKKworICAgIF9pbnRlcmZhY2VPcmllbnRh
dGlvbk92ZXJyaWRlID0gaW50ZXJmYWNlT3JpZW50YXRpb247CisKKyAgICBpZiAoIV9pc0FuaW1h
dGluZ1Jlc2l6ZSkKKyAgICAgICAgX3BhZ2UtPnNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9y
aWVudGF0aW9uRm9yVUlJbnRlcmZhY2VPcmllbnRhdGlvbihfaW50ZXJmYWNlT3JpZW50YXRpb25P
dmVycmlkZSkpOworfQorCistIChVSUludGVyZmFjZU9yaWVudGF0aW9uKV9pbnRlcmZhY2VPcmll
bnRhdGlvbk92ZXJyaWRlCit7CisgICAgQVNTRVJUKF9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRh
dGlvbik7CisgICAgcmV0dXJuIF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRlOworfQorCiAt
IChDR1NpemUpX21heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlCiB7CiAgICAgQVNTRVJUKF9v
dmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpOwpAQCAtMTgwNiw3ICsxODY0LDEzIEBAIHN0
YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRp
b25zIHdrRmluZE9wdGlvbnMpCiAgICAgaWYgKF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNp
emUpCiAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IF9tYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZTsKIAotICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNv
cmU6OkZsb2F0U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZSksIFdlYkNvcmU6OkZsb2F0U2l6ZShtaW5p
bXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSksIFdlYkNvcmU6OkZsb2F0U2l6ZShtYXhpbXVtVW5v
YnNjdXJlZFNpemUpLCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB1bm9ic2N1cmVk
UmVjdEluQ29udGVudENvb3JkaW5hdGVzLCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3Jk
aW5hdGVzLCB0YXJnZXRTY2FsZSk7CisgICAgaW50MzJfdCBvcmllbnRhdGlvbjsKKyAgICBpZiAo
X292ZXJyaWRlc0ludGVyZmFjZU9yaWVudGF0aW9uKQorICAgICAgICBvcmllbnRhdGlvbiA9IGRl
dmljZU9yaWVudGF0aW9uRm9yVUlJbnRlcmZhY2VPcmllbnRhdGlvbihfaW50ZXJmYWNlT3JpZW50
YXRpb25PdmVycmlkZSk7CisgICAgZWxzZQorICAgICAgICBvcmllbnRhdGlvbiA9IF9wYWdlLT5k
ZXZpY2VPcmllbnRhdGlvbigpOworCisgICAgX3BhZ2UtPmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoV2ViQ29yZTo6RmxvYXRTaXplKG1pbmltdW1MYXlvdXRTaXplKSwgV2ViQ29yZTo6RmxvYXRT
aXplKG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJKSwgV2ViQ29yZTo6RmxvYXRTaXplKG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZSksIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVu
b2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5T
ZWxmQ29vcmRpbmF0ZXMsIHRhcmdldFNjYWxlLCBvcmllbnRhdGlvbik7CiB9CiAKIC0gKHZvaWQp
X2VuZEFuaW1hdGVkUmVzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDA2NDU2YzI3YTRiOTA0NDJiNmMzNDYz
NmNmZmZjOWEzMGZmYWI1N2MuLjA1MTAzNGU2MGQzMjBiN2QzODQ5YmNkMGM3Mzk0MjVlMWUzZjQx
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMDgsNiArMTA4LDEwIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tGaW5kT3B0aW9ucykgewogLy8gRGVmaW5lIHRoZSBpbnNldCBvZiB0aGUg
c2Nyb2xsdmlldyB1bnVzYWJsZSBieSB0aGUgd2ViIHBhZ2UuCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRPYnNjdXJlZEluc2V0czopIFVJRWRnZUluc2V0cyBfb2JzY3VyZWRJbnNl
dHM7CiAKKy8vIE92ZXJyaWRlIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24uIENsaWVudHMgdXNp
bmcgX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczogbXVzdCB1cGRhdGUgdGhlIGludGVy
ZmFjZSBvcmllbnRhdGlvbgorLy8gaW4gdGhlIHVwZGF0ZSBibG9jay4KK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGU6KSBVSUludGVy
ZmFjZU9yaWVudGF0aW9uIF9pbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRlOworCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6KSBC
T09MIF9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhl
c2UgdGhyZWUgcHJvcGVydGllcyBvbmNlIHdlIGV4cG9zZSBXS1dlYlZpZXdDb250ZW50UHJvdmlk
ZXIgYXMgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBjNTU1OTlhMjc5MzY1YWQ5NWI5NjUxNjllMTYwYTU0ZjJjZWMyZWY4Li5lYmM3MzE1Y2E3MWQw
ZDljYjM2NGE1NDA0MTg0NjFlMWQzMjk3NTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMjczLDYgKzI3Myw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFn
ZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
dWluCiAgICAgLCBtX21haW5GcmFtZShudWxscHRyKQogICAgICwgbV91c2VyQWdlbnQoc3RhbmRh
cmRVc2VyQWdlbnQoKSkKICNpZiBQTEFURk9STShJT1MpCisgICAgLCBtX2RldmljZU9yaWVudGF0
aW9uKDApCiAgICAgLCBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJblByb2dyZXNzKGZhbHNl
KQogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0
aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM3NTViMTE3
ZWZjMTJlMmNhODEzZmY5NTEwMTJhODNmZjk4YWFjYzYuLmIxNDUxYmI2NzY3NTAzYWI2ODAwNzAz
N2FkNmMzMDM4YTFmOGY2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTU5NSwxMiArNTk1LDE0IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFVub2JzY3Vy
ZWRSZWN0Q29uc3RyYWludCB7IENvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QsIFVuY29uc3RyYWlu
ZWQgfTsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgY29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBkb3Vi
bGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQgPSBVbm9i
c2N1cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQpIGNvbnN0OwogCi0gICAgdm9pZCBk
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11
bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemVG
b3JNaW5pbWFsVUksIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBkb3VibGUgdGFyZ2V0U2NhbGUpOworICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKTsKICAgICB2b2lkIHN5bmNocm9uaXplRHlu
YW1pY1ZpZXdwb3J0VXBkYXRlKCk7CiAKICAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlv
bk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQg
c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5vYnNjdXJlZFNp
emUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXREZXZpY2VPcmllbnRh
dGlvbihpbnQzMl90KTsKKyAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVl
KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAogICAgIHZvaWQg
c2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIFdlYkNvcmU6OlRleHRH
cmFudWxhcml0eSwgdWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwg
UGFzc1JlZlB0cjxHZXN0dXJlQ2FsbGJhY2s+KTsKQEAgLTE0OTAsNiArMTQ5Miw3IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKICAgICBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZTsKKyAgICBpbnQzMl90
IG1fZGV2aWNlT3JpZW50YXRpb247CiAgICAgYm9vbCBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVJblByb2dyZXNzOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzk2YzRjMTc2MWQ0ODRmZjk2N2Y3YThmOTI2ZDVi
MDRjZmY4Yzk0OC4uM2VkNmY4MDdlZDJkOTI0YzBlZGNmODFlYzY5YWQ5OWU0ZjI2MjUxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAg
LTIzNiwxMCArMjM2LDEwIEBAIFdlYkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdlUHJveHk6OmNvbXB1
dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmCiAgICAgcmV0dXJuIEZy
YW1lVmlldzo6cmVjdEZvclZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKGVuY2xvc2luZ0xheW91
dFJlY3QoY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdCksIHJvdW5kZWRMYXlvdXRTaXplKGNvbnRl
bnRzU2l6ZSksIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgZmFsc2UsIFN0aWNrVG9WaWV3cG9ydEJv
dW5kcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUksIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29u
c3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LCAgZG91YmxlIHRhcmdldFNjYWxlKQordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMsICBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRp
b24pCiB7CiAgICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7
Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKG1pbmltdW1MYXlvdXRTaXplLCBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxV
SSwgbWF4aW11bVVub2JzY3VyZWRTaXplLCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIHRhcmdl
dFVub2JzY3VyZWRSZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCB0YXJnZXRTY2FsZSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobWluaW11bUxheW91dFNpemUs
IG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJLCBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdldFVub2Jz
Y3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIHRhcmdldFNjYWxlLCBkZXZpY2VPcmll
bnRhdGlvbiksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9uaXpl
RHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkKQEAgLTI4Miw2ICsyODIsMTQgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNpemUpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNYXhpbXVt
VW5vYnNjdXJlZFNpemUoc2l6ZSksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCit7CisgICAg
aWYgKGRldmljZU9yaWVudGF0aW9uICE9IG1fZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICAgICAg
bV9kZXZpY2VPcmllbnRhdGlvbiA9IGRldmljZU9yaWVudGF0aW9uOworICAgICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9y
aWVudGF0aW9uKSwgbV9wYWdlSUQpOworICAgIH0KK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExheWVyVHJlZShjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
JiBsYXllclRyZWVUcmFuc2FjdGlvbikKIHsKICAgICBtX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRD
b2xvciA9IGxheWVyVHJlZVRyYW5zYWN0aW9uLnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGY4MjM0OWUxODU0NWY2M2E1YmE3MTQ5MDMwYjQ2
ZTc1NjA0YTdhMy4uY2M4NTM4OTVmYWIyMjljYTI2MzA5MTQzMGJkNzAwOTcxYzcxNmQ2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNiArMTgyLDEwIEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKSBvdmVycmlk
ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICB2aXJ0dWFs
IGludCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCisKICAgICB2
aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGaWxlQ2hvb3Nlcj4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IDZkZTgz
NWUxYmJkZGNlZmFhMTdhOTE4ZDYyZDVlOWY3MGYxMzQzNmMuLmU5NWViNTJmOTZlMjY2ZTg0MGM5
MjJhOWI2OTgyM2U3MWQwODFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1Mu
bW0KQEAgLTEyOSw2ICsxMjksMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoaGFzVmlkZW8sIG1fcGFnZS0+
cmVjdEZvckVsZW1lbnRBdEludGVyYWN0aW9uTG9jYXRpb24oKSkpOwogfQogCitpbnQgV2ViQ2hy
b21lQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFn
ZS0+ZGV2aWNlT3JpZW50YXRpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggYjE5MDMxNWM4MGYxZGJhNzExMjMwMTgxZWNlMmMyYWRlMTMw
ZjE3My4uYjM2YTU3ZGNkZWZkYTBmNWU3MmJhZjM3NTU4YmExMWFiYzg3NzQ2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAwLDYgKzMw
MCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9oYXNQZW5kaW5nQmx1ck5vdGlm
aWNhdGlvbihmYWxzZSkKICAgICAsIG1fc2NyZWVuU2l6ZShwYXJhbWV0ZXJzLnNjcmVlblNpemUp
CiAgICAgLCBtX2F2YWlsYWJsZVNjcmVlblNpemUocGFyYW1ldGVycy5hdmFpbGFibGVTY3JlZW5T
aXplKQorICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbigwKQogICAgICwgbV9pbkR5bmFtaWNTaXpl
VXBkYXRlKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2luc3BlY3RvckNsaWVudCgwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNWI4ZjhjMzBiYmM1
ZjkwYTY3NTM0M2FiZTg3M2RmNTQ1ZGYyMzE5ZS4uNmNmNDQ3ZDJmYjc5YTNjNjc4MDZiYmU1NDVi
NWUzYWZiNzY4YWUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC00NTEsNiArNDUxLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3Q7CisgICAgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0KICAgICB2
b2lkIHZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cyYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCk7CiAgICAg
dm9pZCByZXN0b3JlUGFnZVN0YXRlKGRvdWJsZSBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIG9yaWdpbik7CkBAIC03MjMsNyArNzI0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmll
d3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJik7CiAgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6
ZUZvck1pbmltYWxVSShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldE1h
eGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKLSAgICB2b2lk
IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5p
bXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6
ZUZvck1pbmltYWxVSSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIGRvdWJsZSBzY2FsZSk7CisgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihpbnQz
Ml90KTsKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
aW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
YXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhw
b3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSBzY2FsZSwgaW50MzJfdCBkZXZpY2VPcmllbnRh
dGlvbik7CiAgICAgdm9pZCBzeW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9ydFVwZGF0ZShkb3VibGUm
IG5ld1RhcmdldFNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbik7
CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8mKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25z
dCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KQEAgLTEyMTYsNiArMTIxOCw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX2N1cnJlbnRCbG9ja1Nl
bGVjdGlvbjsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6
ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CisgICAg
aW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9uOwogICAgIGJvb2wgbV9pbkR5bmFtaWNTaXplVXBk
YXRlOwogICAgIEhhc2hNYXA8c3RkOjpwYWlyPFdlYkNvcmU6OkludFNpemUsIGRvdWJsZT4sIFdl
YkNvcmU6OkludFBvaW50PiBtX2R5bmFtaWNTaXplVXBkYXRlSGlzdG9yeTsKICAgICBSZWZQdHI8
V2ViQ29yZTo6Tm9kZT4gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA2MzZkZTdkMzhhNjI0ZDg2YWNjM2Q1NGRiNjgzNDRkNGU4ZjAzNDQwLi5jZjAzNGYzMTE3YTA3
ZDlmYThlMWQ2NjZkN2E4ZmJkNTk1YzI4NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDYsNyArNDYsOCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRWaWV3cG9ydENv
bmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAg
ICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSShX
ZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUoV2Vi
Q29yZTo6RmxvYXRTaXplIHNpemUpCi0gICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJD
b3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtaW5p
bXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5v
YnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3Qs
IFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRS
ZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSBz
Y2FsZSkKKyAgICBTZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
KQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIG1pbmlt
dW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91dFNpemVGb3JNaW5p
bWFsVUksICBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3Jl
OjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qg
dGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNl
T3JpZW50YXRpb24pCiAgICAgU3luY2hyb25pemVEeW5hbWljVmlld3BvcnRVcGRhdGUoKSAtPiAo
ZG91YmxlIG5ld1RhcmdldFNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG5ld1Njcm9sbFBvc2l0
aW9uKQogCiAgICAgSGFuZGxlVGFwKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IGJjOTY3MjgyYzdkNmZjYWEwMDg1ODlmZDdhMTlmNGU0ZjEyY2NhNzAuLjhkNDVkYzBjYTk4NTRj
MjU4ODk4ZGRkNDRmMzI3MjhiMDgzYjk1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTE5NTMsNiArMTk1MywxNCBA
QCB2b2lkIFdlYlBhZ2U6OnNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBGbG9hdFNpemUm
IG1heGltdW1Vbm9ic2N1cmVkU2l6ZSkKICAgICB1cGRhdGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0RGV2aWNlT3JpZW50YXRpb24oaW50
MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKK3sKKyAgICBpZiAoZGV2aWNlT3JpZW50YXRpb24gPT0g
bV9kZXZpY2VPcmllbnRhdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGV2aWNlT3JpZW50
YXRpb24gPSBkZXZpY2VPcmllbnRhdGlvbjsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLm9yaWVu
dGF0aW9uQ2hhbmdlZCgpOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihm
bG9hdCBhLCBmbG9hdCBiKQogewogICAgIHJldHVybiBmYWJzKGEgLSBiKSA8IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CkBAIC0xOTcxLDcgKzE5NzksNyBAQCB2b2lkIFdl
YlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmdCZWZvcmVMYXlvdXRJZk5lZWRlZChjb25zdCBGbG9h
dFNpemUmIG9sZFNpemUsCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgRmxv
YXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhw
b3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMsIGRvdWJsZSB0YXJnZXRTY2FsZSkKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25z
dCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVu
dGF0aW9uKQogewogICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1
YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRoaXMgZG9l
cyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVudCB3b3VsZCBjaGFuZ2UgdGhl
IGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0LgpAQCAtMjE1
Myw2ICsyMTYxLDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICBGbG9hdFNpemUgdW5v
YnNjdXJlZENvbnRlbnRSZWN0U2l6ZUluQ29udGVudENvb3JkaW5hdGVzID0gbmV3VW5vYnNjdXJl
ZENvbnRlbnRSZWN0LnNpemUoKTsKICAgICB1bm9ic2N1cmVkQ29udGVudFJlY3RTaXplSW5Db250
ZW50Q29vcmRpbmF0ZXMuc2NhbGUoc2NhbGUpOwogICAgIGZyYW1lVmlldy5zZXRDdXN0b21TaXpl
Rm9yUmVzaXplRXZlbnQoZXhwYW5kZWRJbnRTaXplKHVub2JzY3VyZWRDb250ZW50UmVjdFNpemVJ
bkNvbnRlbnRDb29yZGluYXRlcykpOworICAgIHNldERldmljZU9yaWVudGF0aW9uKGRldmljZU9y
aWVudGF0aW9uKTsKICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KHJvdW5kZWRVbm9ic2N1
cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQocGFnZVNjYWxlRmFjdG9y
KCksIGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKSk7Cg==
</data>
<flag name="review"
          id="257015"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>