<?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>87806</bug_id>
          
          <creation_ts>2012-05-29 18:40:46 -0700</creation_ts>
          <short_desc>Add mouse support to pointer and hover CSS media features</short_desc>
          <delta_ts>2014-07-21 18:04:47 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>134822</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87403</dependson>
          <blocked>112847</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Byers">rbyers</reporter>
          <assigned_to name="David Bokan">bokan</assigned_to>
          <cc>abarth</cc>
    
    <cc>bokan</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rbyers</cc>
    
    <cc>tdanderson</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>636704</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-05-29 18:40:46 -0700</bug_when>
    <thetext>In bug 87403 I added basic support for (pointer) and (hover) with respect to a touch screen.  To make the support more complete we should allow ports to supply information about whether or not a mouse is known to be available.  In particular, in   I have left this comment:

 // FIXME: We should also try to determine if we know we have a mouse.
 // When we do this, we&apos;ll also need to differentiate between known not to
 // have mouse or touch screen (NoPointer) and unknown (UnknownPointer).
 // We could also take into account other preferences like accessibility
 // settings to decide which of the available pointers should be considered
 // &quot;primary&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636705</commentid>
    <comment_count>1</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-05-29 18:41:50 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; In bug 87403 I added basic support for (pointer) and (hover) with respect to a touch screen.  To make the support more complete we should allow ports to supply information about whether or not a mouse is known to be available.  In particular, in   I have left this comment:
&gt; 
&gt;  // FIXME: We should also try to determine if we know we have a mouse.
&gt;  // When we do this, we&apos;ll also need to differentiate between known not to
&gt;  // have mouse or touch screen (NoPointer) and unknown (UnknownPointer).
&gt;  // We could also take into account other preferences like accessibility
&gt;  // settings to decide which of the available pointers should be considered
&gt;  // &quot;primary&quot;.

That&apos;s in leastCapablePrimaryPointerDeviceType in MediaQueryEvaluator.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859701</commentid>
    <comment_count>2</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2013-03-20 14:00:33 -0700</bug_when>
    <thetext>*** Bug 112841 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860483</commentid>
    <comment_count>3</comment_count>
      <attachid>194294</attachid>
    <who name="David Bokan">bokan</who>
    <bug_when>2013-03-21 11:18:31 -0700</bug_when>
    <thetext>Created attachment 194294
Patch for BUG 87806</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860484</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 11:19:36 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860731</commentid>
    <comment_count>5</comment_count>
      <attachid>194294</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-21 14:47:27 -0700</bug_when>
    <thetext>Comment on attachment 194294
Patch for BUG 87806

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

&gt; Source/WebCore/page/Settings.h:60
&gt; +    // Enum for primary pointer device to tell webkit what kind of input the

webkit -&gt; WebKit

&gt; Source/WebCore/page/Settings.h:68
&gt; +        PointerDeviceMouseAndTouch,

How can the primary pointer be PointerDeviceMouseAndTouch?

&gt; Source/WebKit/chromium/public/WebSettings.h:61
&gt; +    enum PointerDevice {
&gt; +        PointerDeviceMouse,
&gt; +        PointerDeviceTouch,
&gt; +        PointerDeviceMouseAndTouch,
&gt; +        PointerDeviceNone,
&gt; +        PointerDeviceUnknown
&gt; +    };

We need some COMPILE_ASSERTs that these enums match the WebCore versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861664</commentid>
    <comment_count>6</comment_count>
      <attachid>194294</attachid>
    <who name="David Bokan">bokan</who>
    <bug_when>2013-03-22 10:49:34 -0700</bug_when>
    <thetext>Comment on attachment 194294
Patch for BUG 87806

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

&gt;&gt; Source/WebCore/page/Settings.h:60
&gt;&gt; +    // Enum for primary pointer device to tell webkit what kind of input the
&gt; 
&gt; webkit -&gt; WebKit

Fixed.

&gt;&gt; Source/WebCore/page/Settings.h:68
&gt;&gt; +        PointerDeviceMouseAndTouch,
&gt; 
&gt; How can the primary pointer be PointerDeviceMouseAndTouch?

The intention was to make sure clients with Mouse+Touch behave like Touch. Though thinking about it again, I&apos;m not sure this should generally be the case. Plus this does seem even more confusing. I&apos;ve removed the PointerDeviceMouseAndTouch enum.

&gt;&gt; Source/WebKit/chromium/public/WebSettings.h:61
&gt;&gt; +    };
&gt; 
&gt; We need some COMPILE_ASSERTs that these enums match the WebCore versions.

Added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861665</commentid>
    <comment_count>7</comment_count>
      <attachid>194596</attachid>
    <who name="David Bokan">bokan</who>
    <bug_when>2013-03-22 10:50:20 -0700</bug_when>
    <thetext>Created attachment 194596
Review Fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866851</commentid>
    <comment_count>8</comment_count>
      <attachid>194596</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-31 18:00:48 -0700</bug_when>
    <thetext>Comment on attachment 194596
Review Fixes

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

This seems like a reaonable improvement over what we&apos;ve got currently, but we seem to be missing a notification pathway for when the primary device changes.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by Adam Barth

You should leave this line as the default (i.e., saying &quot;nobody&quot;).  The tools will fill in the correct value automatically based on who actually sets the review flag to +.

&gt; Source/WebCore/page/Settings.h:64
&gt; +    // Enum for primary pointer device to tell WebKit what kind of input the
&gt; +    // user is primarily using. Note that it&apos;s not an indication of what&apos;s 
&gt; +    // available on the user&apos;s system.
&gt; +    // e.g. Primary pointer may be set to PointerDeviceMouse but device has
&gt; +    // a mouse and a touch screen.

How do we know what the primary input device is?  Is there a notification pathway if that changes (e.g., a laptop that transforms into a tablet)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866854</commentid>
    <comment_count>9</comment_count>
      <attachid>194596</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-31 18:02:20 -0700</bug_when>
    <thetext>Comment on attachment 194596
Review Fixes

Rejecting attachment 194596 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 194596, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
4 succeeded at 753 (offset 5 lines).
patching file Source/WebKit/chromium/src/WebSettingsImpl.h
patching file Source/WebKit/chromium/src/WebViewImpl.cpp
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/fast/media/mq-pointer-expected.txt
patching file LayoutTests/fast/media/mq-pointer.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17303475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868738</commentid>
    <comment_count>10</comment_count>
      <attachid>194596</attachid>
    <who name="David Bokan">bokan</who>
    <bug_when>2013-04-03 08:40:25 -0700</bug_when>
    <thetext>Comment on attachment 194596
Review Fixes

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

&gt;&gt; Source/WebCore/page/Settings.h:64
&gt;&gt; +    // a mouse and a touch screen.
&gt; 
&gt; How do we know what the primary input device is?  Is there a notification pathway if that changes (e.g., a laptop that transforms into a tablet)?

The browser will set this. This means that it will have to monitor some platform-specific events and change this setting appropriately. Is this what you mean by notification pathway or is there notifications in WebKit I need to set to say a CSS media query has changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868744</commentid>
    <comment_count>11</comment_count>
      <attachid>196359</attachid>
    <who name="David Bokan">bokan</who>
    <bug_when>2013-04-03 08:47:27 -0700</bug_when>
    <thetext>Created attachment 196359
Resolving merge conflicts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868753</commentid>
    <comment_count>12</comment_count>
      <attachid>194294</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2013-04-03 09:20:37 -0700</bug_when>
    <thetext>Comment on attachment 194294
Patch for BUG 87806

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

&gt;&gt;&gt; Source/WebCore/page/Settings.h:68
&gt;&gt;&gt; +        PointerDeviceMouseAndTouch,
&gt;&gt; 
&gt;&gt; How can the primary pointer be PointerDeviceMouseAndTouch?
&gt; 
&gt; The intention was to make sure clients with Mouse+Touch behave like Touch. Though thinking about it again, I&apos;m not sure this should generally be the case. Plus this does seem even more confusing. I&apos;ve removed the PointerDeviceMouseAndTouch enum.

There isn&apos;t a single &quot;primary&quot; pointer, there is a set of primary pointers.  The media queries here rely on the &apos;least capable primary pointer device&apos; to tell the page what the lowest common denominator is (i.e. if one of the primary pointers doesn&apos;t support hover, then don&apos;t rely on hover).  But the notion of &apos;least capable&apos; is context specific (for granularity and hover, touch is less capable than mouse, but for a multi-pointer or radius API of some sort, mouse would be less capable than touch).

So ideally Chrome shouldn&apos;t be the one coercing touch+mouse into &apos;primary is touch&apos; here.  That should be left to the MQ processing code.  So either the API should take/return a list of values, or we should have one special value for &apos;touch and mouse&apos; (since that&apos;s the only additional combination - though this would get messy if, for example, we add stylus support in the future).  Regardless, the name of the API should be plural (eg. &apos;getPrimaryPointerDevices&apos;) not singular.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868754</commentid>
    <comment_count>13</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2013-04-03 09:22:08 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 194596 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194596&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/page/Settings.h:64
&gt; &gt;&gt; +    // a mouse and a touch screen.
&gt; &gt; 
&gt; &gt; How do we know what the primary input device is?  Is there a notification pathway if that changes (e.g., a laptop that transforms into a tablet)?
&gt; 
&gt; The browser will set this. This means that it will have to monitor some platform-specific events and change this setting appropriately. Is this what you mean by notification pathway or is there notifications in WebKit I need to set to say a CSS media query has changed?

Yes we are missing the notification pathway - this is bug 88339.  But it sounds like most people agree this is pretty low priority, still a bug and something we should be designing for, but no particular urgency in implementing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023848</commentid>
    <comment_count>14</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2014-07-21 18:04:47 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 134822 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194294</attachid>
            <date>2013-03-21 11:18:31 -0700</date>
            <delta_ts>2013-04-03 09:20:37 -0700</delta_ts>
            <desc>Patch for BUG 87806</desc>
            <filename>bug-87806-20130321141419.patch</filename>
            <type>text/plain</type>
            <size>25145</size>
            <attacher name="David Bokan">bokan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JiMmVjMGExYTE1MmE4
NzBhODM4NjY2OTZkMWM5ODliZDBiY2Y2OC4uNmVlYTYwNDk0NzhiOTJmYThkNzBiMzBiZTM2ODVm
NTQ0NjAyMmY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTIxICBEYXZp
ZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0
ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVyIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIG1xLXBvaW50ZXIu
aHRtbCB0ZXN0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAg
ICAgIENoYW5nZWQgcG9pbnRlciBhbmQgaG92ZXIgcXVlcmllcyB0byB1c2UgbmV3IGFwaQorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAg
ICAgICBBZGRlZCBuZXcgc2V0dGluZyBhbmQgZW51bSBmb3IgcHJpbWFyeSBwb2ludGVyIGRldmlj
ZQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICBDaGFuZ2VkIHBvcHVwIHJv
dyBoZWlnaHQgbG9naWMgdG8gdXNlIG5ldyBhcGkgY2FsbAorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKyAgICAgICAgRXhwb3Nl
ZCBuZXcgYXBpIGNhbGwKKwogMjAxMy0wMy0yMSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbc2tpYV0gZmVDb252b2x2ZU1hdHJpeCBzaG91bGQg
dXNlIGFjY2VsZXJhdGVkIHBhdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNmU3OGIy
NzU2NmQ4MmEwNzBjMzBjMzIyZmVjNWU3NTlkNTY2N2IxZi4uOTExNTZiNGRmNzQ4NzBmOTFiY2Y0
ZDk1Y2VhODVkYTFjMWU2NzdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMy0wMy0yMSAgRGF2aWQgQm9rYW4gIDxib2thbkBnb29nbGUuY29tPgorCisg
ICAgICAgIEFkZGluZyBBUEkgZm9yIGRldGVybWluaW5nIHVzZXIncyBwcmltYXJ5IG1vZGUgb2Yg
cG9pbnRlciBpbnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODc4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgQ2hhbmdlZCBXZWJQYWdl
UG9wdXAgdG8gdXNlIG5ldyBBUEkgY2FsbAorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICBB
ZGRlZCBzZXR0aW5nIGZvciBkZXRlcm1pbmluZyB1c2VycyBwcmltYXJ5IG1vZGUgb2YgcG9pbnRl
ciBpbnB1dAorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIENocm9taXVtIERFUFMgdG8g
cjE4OTQ5Ny4gIFJlcXVlc3RlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwCmluZGV4IGMyZmMwZjYxOWY3NDQ4NDRhZjM1N2RiNjg5NDJjYjg5ZGQxZGU3NzAu
LjE5YjZhMGJjNzYyNjA5MTE2YzE4NzM1MTkzNTA0YzdiZGRjMDg2MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTY5NywzMSArNjk3LDE0IEBAIHN0
YXRpYyBib29sIHZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSosIEZyYW1lKiBmcmFtCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1Nf
TUVESUEpCiAKLWVudW0gUG9pbnRlckRldmljZVR5cGUgeyBUb3VjaFBvaW50ZXIsIE1vdXNlUG9p
bnRlciwgTm9Qb2ludGVyLCBVbmtub3duUG9pbnRlciB9OwotCi1zdGF0aWMgUG9pbnRlckRldmlj
ZVR5cGUgbGVhc3RDYXBhYmxlUHJpbWFyeVBvaW50ZXJEZXZpY2VUeXBlKEZyYW1lKiBmcmFtZSkK
LXsKLSAgICBpZiAoZnJhbWUtPnNldHRpbmdzKCktPmRldmljZVN1cHBvcnRzVG91Y2goKSkKLSAg
ICAgICAgcmV0dXJuIFRvdWNoUG9pbnRlcjsKLQotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWxz
byB0cnkgdG8gZGV0ZXJtaW5lIGlmIHdlIGtub3cgd2UgaGF2ZSBhIG1vdXNlLgotICAgIC8vIFdo
ZW4gd2UgZG8gdGhpcywgd2UnbGwgYWxzbyBuZWVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBr
bm93biBub3QgdG8KLSAgICAvLyBoYXZlIG1vdXNlIG9yIHRvdWNoIHNjcmVlbiAoTm9Qb2ludGVy
KSBhbmQgdW5rbm93biAoVW5rbm93blBvaW50ZXIpLgotICAgIC8vIFdlIGNvdWxkIGFsc28gdGFr
ZSBpbnRvIGFjY291bnQgb3RoZXIgcHJlZmVyZW5jZXMgbGlrZSBhY2Nlc3NpYmlsaXR5Ci0gICAg
Ly8gc2V0dGluZ3MgdG8gZGVjaWRlIHdoaWNoIG9mIHRoZSBhdmFpbGFibGUgcG9pbnRlcnMgc2hv
dWxkIGJlIGNvbnNpZGVyZWQKLSAgICAvLyAicHJpbWFyeSIuCi0KLSAgICByZXR1cm4gVW5rbm93
blBvaW50ZXI7Ci19Ci0KIHN0YXRpYyBib29sIGhvdmVyTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgp
CiB7Ci0gICAgUG9pbnRlckRldmljZVR5cGUgcG9pbnRlciA9IGxlYXN0Q2FwYWJsZVByaW1hcnlQ
b2ludGVyRGV2aWNlVHlwZShmcmFtZSk7CisgICAgUG9pbnRlckRldmljZSBwb2ludGVyID0gZnJh
bWUtPnNldHRpbmdzKCktPnByaW1hcnlQb2ludGVyRGV2aWNlKCk7CiAKICAgICAvLyBJZiB3ZSdy
ZSBvbiBhIHBvcnQgdGhhdCBoYXNuJ3QgZXhwbGljaXRseSBvcHRlZCBpbnRvIHByb3ZpZGluZyBw
b2ludGVyIGRldmljZSBpbmZvcm1hdGlvbgogICAgIC8vIChvciBvdGhlcndpc2UgY2FuJ3QgYmUg
Y29uZmlkZW50IGluIHRoZSBwb2ludGVyIGhhcmR3YXJlIGF2YWlsYWJsZSksIHRoZW4gYmVoYXZl
IGV4YWN0bHkKICAgICAvLyBhcyBpZiB0aGlzIGZlYXR1cmUgZmVhdHVyZSBpc24ndCBzdXBwb3J0
ZWQuCi0gICAgaWYgKHBvaW50ZXIgPT0gVW5rbm93blBvaW50ZXIpCisgICAgaWYgKHBvaW50ZXIg
PT0gUG9pbnRlckRldmljZVVua25vd24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZs
b2F0IG51bWJlciA9IDE7CkBAIC03MzAsMzEgKzcxMywzMyBAQCBzdGF0aWMgYm9vbCBob3Zlck1l
ZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFt
ZSwgTQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJldHVybiAocG9p
bnRlciA9PSBOb1BvaW50ZXIgJiYgIW51bWJlcikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gVG91
Y2hQb2ludGVyICYmICFudW1iZXIpCi0gICAgICAgIHx8IChwb2ludGVyID09IE1vdXNlUG9pbnRl
ciAmJiBudW1iZXIgPT0gMSk7CisgICAgcmV0dXJuIChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VO
b25lICYmICFudW1iZXIpCisgICAgICAgIHx8IChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VUb3Vj
aCAmJiAhbnVtYmVyKQorICAgICAgICB8fCAocG9pbnRlciA9PSBQb2ludGVyRGV2aWNlTW91c2VB
bmRUb3VjaCAmJiAhbnVtYmVyKQorICAgICAgICB8fCAocG9pbnRlciA9PSBQb2ludGVyRGV2aWNl
TW91c2UgJiYgbnVtYmVyID09IDEpOwogfQogCiBzdGF0aWMgYm9vbCBwb2ludGVyTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCiB7Ci0gICAgUG9pbnRlckRldmljZVR5cGUgcG9pbnRlciA9IGxlYXN0
Q2FwYWJsZVByaW1hcnlQb2ludGVyRGV2aWNlVHlwZShmcmFtZSk7CisgICAgUG9pbnRlckRldmlj
ZSBwb2ludGVyID0gZnJhbWUtPnNldHRpbmdzKCktPnByaW1hcnlQb2ludGVyRGV2aWNlKCk7CiAK
ICAgICAvLyBJZiB3ZSdyZSBvbiBhIHBvcnQgdGhhdCBoYXNuJ3QgZXhwbGljaXRseSBvcHRlZCBp
bnRvIHByb3ZpZGluZyBwb2ludGVyIGRldmljZSBpbmZvcm1hdGlvbgogICAgIC8vIChvciBvdGhl
cndpc2UgY2FuJ3QgYmUgY29uZmlkZW50IGluIHRoZSBwb2ludGVyIGhhcmR3YXJlIGF2YWlsYWJs
ZSksIHRoZW4gYmVoYXZlIGV4YWN0bHkKICAgICAvLyBhcyBpZiB0aGlzIGZlYXR1cmUgZmVhdHVy
ZSBpc24ndCBzdXBwb3J0ZWQuCi0gICAgaWYgKHBvaW50ZXIgPT0gVW5rbm93blBvaW50ZXIpCisg
ICAgaWYgKHBvaW50ZXIgPT0gUG9pbnRlckRldmljZVVua25vd24pCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiBwb2ludGVyICE9IE5vUG9p
bnRlcjsKKyAgICAgICAgcmV0dXJuIHBvaW50ZXIgIT0gUG9pbnRlckRldmljZU5vbmU7CiAKICAg
ICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGNvbnN0IGludCBpZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpLT5nZXRJZGVudCgpOwotICAgIHJldHVybiAocG9pbnRlciA9PSBOb1BvaW50ZXIgJiYgaWQg
PT0gQ1NTVmFsdWVOb25lKQotICAgICAgICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYg
aWQgPT0gQ1NTVmFsdWVDb2Fyc2UpCi0gICAgICAgIHx8IChwb2ludGVyID09IE1vdXNlUG9pbnRl
ciAmJiBpZCA9PSBDU1NWYWx1ZUZpbmUpOworICAgIHJldHVybiAocG9pbnRlciA9PSBQb2ludGVy
RGV2aWNlTm9uZSAmJiBpZCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgIHx8IChwb2ludGVyID09
IFBvaW50ZXJEZXZpY2VUb3VjaCAmJiBpZCA9PSBDU1NWYWx1ZUNvYXJzZSkKKyAgICAgICAgfHwg
KHBvaW50ZXIgPT0gUG9pbnRlckRldmljZU1vdXNlQW5kVG91Y2ggJiYgaWQgPT0gQ1NTVmFsdWVD
b2Fyc2UpCisgICAgICAgIHx8IChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VNb3VzZSAmJiBpZCA9
PSBDU1NWYWx1ZUZpbmUpOwogfQogCiBzdGF0aWMgdm9pZCBjcmVhdGVGdW5jdGlvbk1hcCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNGNkZWU1MzVjYWE1MGVlOTBkZjU2MDRkMTA5NDNlYmY5
Y2FjZjZmOC4uMGIxY2Y2YjU0NzY2ZGU4ZDg4MGJmOWEyN2ZjYjU0OTlhY2Q3OGRjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtNTcsNiArNTcsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCiAgICAgfTsKIAorICAg
IC8vIEVudW0gZm9yIHByaW1hcnkgcG9pbnRlciBkZXZpY2UgdG8gdGVsbCB3ZWJraXQgd2hhdCBr
aW5kIG9mIGlucHV0IHRoZQorICAgIC8vIHVzZXIgaXMgcHJpbWFyaWx5IHVzaW5nLiBOb3RlIHRo
YXQgaXQncyBub3QgYW4gaW5kaWNhdGlvbiBvZiB3aGF0J3MgCisgICAgLy8gYXZhaWxhYmxlIG9u
IHRoZSB1c2VyJ3Mgc3lzdGVtLgorICAgIC8vIGUuZy4gUHJpbWFyeSBwb2ludGVyIG1heSBiZSBz
ZXQgdG8gUG9pbnRlckRldmljZU1vdXNlIGJ1dCBkZXZpY2UgaGFzCisgICAgLy8gYSBtb3VzZSBh
bmQgYSB0b3VjaCBzY3JlZW4uCisgICAgZW51bSBQb2ludGVyRGV2aWNlIHsKKyAgICAgICAgUG9p
bnRlckRldmljZU1vdXNlLAorICAgICAgICBQb2ludGVyRGV2aWNlVG91Y2gsCisgICAgICAgIFBv
aW50ZXJEZXZpY2VNb3VzZUFuZFRvdWNoLAorICAgICAgICBQb2ludGVyRGV2aWNlTm9uZSwKKyAg
ICAgICAgUG9pbnRlckRldmljZVVua25vd24KKyAgICB9OworCiAgICAgLy8gVVNjcmlwdENvZGUg
dXNlcyAtMSBhbmQgMCBmb3IgVVNjcmlwdEludmFsaWRDb2RlIGFuZCBVU2NyaXB0Q29tbW9uLgog
ICAgIC8vIFdlIG5lZWQgdG8gdXNlIC0yIGFuZCAtMyBmb3IgZW1wdHkgdmFsdWUgYW5kIGRlbGV0
ZWQgdmFsdWUuCiAgICAgc3RydWN0IFVTY3JpcHRDb2RlSGFzaFRyYWl0cyA6IFdURjo6R2VuZXJp
Y0hhc2hUcmFpdHM8aW50PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBmNjRmNTc4YmU4
YjFkZmVlYjE2YTczYTU0MzFmNmIxM2Q0OTZiYTVjLi43ZjY3OGJlOTM2NmYxMDZkYmU4MmQxNTE0
NDNhNzBhNTI3Zjc5MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE1Miw3ICsxNTIs
NyBAQCBuZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayBpbml0aWFsPWZhbHNlCiBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBpbml0aWFsPWZhbHNlCiB3YW50c0JhbGFuY2VkU2V0RGVm
ZXJzTG9hZGluZ0JlaGF2aW9yIGluaXRpYWw9ZmFsc2UKIHJlcXVlc3RBbmltYXRpb25GcmFtZUVu
YWJsZWQgaW5pdGlhbD10cnVlCi1kZXZpY2VTdXBwb3J0c1RvdWNoIGluaXRpYWw9ZmFsc2UKK2Rl
dmljZVN1cHBvcnRzVG91Y2ggaW5pdGlhbD1mYWxzZSAgICNGSVhNRTogUmVtb3ZlIHRoaXMgaHR0
cDovL3drYi51Zy8xMTI4NDcKIGRldmljZVN1cHBvcnRzTW91c2UgaW5pdGlhbD10cnVlCiAKICMg
Rm9yIHRvdWNoIGFkanVzdG1lbnQgdG8gYXBwbHksIHRoZSBjb21waWxlIG9wdGlvbiBUT1VDSF9B
REpVU1RNRU5UIG11c3QgYWxzbyBiZSBlbmFibGVkLgpAQCAtMTkxLDYgKzE5MSw4IEBAIHNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCiAjIGVuYWJsZWQsIHRoZSB1c2VyIGNh
biBpbml0aWF0ZSBkcmFnIHVzaW5nIGxvbmcgcHJlc3MuCiB0b3VjaERyYWdEcm9wRW5hYmxlZCBp
bml0aWFsPWZhbHNlCiAKK3ByaW1hcnlQb2ludGVyRGV2aWNlIHR5cGU9UG9pbnRlckRldmljZSwg
aW5pdGlhbD1Qb2ludGVyRGV2aWNlVW5rbm93bgorCiB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
IGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9nc1BhZ2VNZXNz
YWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKaW5kZXggMzE4OGExMDIx
ZjQ4NWFkNjA5NWY1YjY0ZGY5ZTk1ZGJiZWU0OGQxMS4uNzcwMTY0MjAzMTk1ZTUzMTQ1MjA2YjQ5
YjRmNDRhNzRhY2NmOGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwCkBAIC02MjYsNyArNjI2LDcgQEAgdm9pZCBQb3B1cExpc3RC
b3g6OnNldE9yaWdpbmFsSW5kZXgoaW50IGluZGV4KQogaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93
SGVpZ2h0KGludCBpbmRleCkKIHsKICAgICBpbnQgbWluaW11bUhlaWdodCA9IFBvcHVwTWVudUNo
cm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7Ci0gICAgaWYgKG1fc2V0dGluZ3MuZGV2aWNlU3Vw
cG9ydHNUb3VjaCkKKyAgICBpZiAobV9zZXR0aW5ncy5wcmltYXJ5SW5wdXRJc1RvdWNoKQogICAg
ICAgICBtaW5pbXVtSGVpZ2h0ID0gbWF4KG1pbmltdW1IZWlnaHQsIFBvcHVwTWVudUNocm9taXVt
OjpvcHRpb25Sb3dIZWlnaHRGb3JUb3VjaCgpKTsKIAogICAgIGlmIChpbmRleCA8IDAgfHwgbV9w
b3B1cENsaWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCmluZGV4IDY1NzVhZWU3
N2Y3Mjk5OWM5ZDAzZmE1YTU3ZjYyM2Q0ZWJmNTc2OTUuLjY3YmI2ZGYxYTZiYzBhZGE3YzA2YjYw
ODc1NDRhYzMxMTgzYTcwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5oCkBAIC04MSw5ICs4MSw5IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHsKICAgICAvLyBBdXRvY29tcGxldGUgcG9wdXBzIGFyZSByZXN0cmljdGVkLCBj
b21iby1ib3hlcyAoc2VsZWN0IHRhZ3MpIGFyZW4ndC4KICAgICBib29sIHJlc3RyaWN0V2lkdGhP
Zkxpc3RCb3g7CiAKLSAgICAvLyBJZiB0aGUgZGV2aWNlIGlzIGEgdG91Y2ggc2NyZWVuIHdlIGlu
Y3JlYXNlIHRoZSBoZWlnaHQgb2YgbWVudSBpdGVtcworICAgIC8vIElmIHRoZSBwcmltYXJ5IGlu
cHV0IGlzIGEgdG91Y2ggc2NyZWVuIHdlIGluY3JlYXNlIHRoZSBoZWlnaHQgb2YgbWVudSBpdGVt
cwogICAgIC8vIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuYW1iaWd1b3VzbHkgdG91Y2ggdGhlbS4K
LSAgICBib29sIGRldmljZVN1cHBvcnRzVG91Y2g7CisgICAgYm9vbCBwcmltYXJ5SW5wdXRJc1Rv
dWNoOwogfTsKIAogY2xhc3MgUG9wdXBDb250ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAwZTQ4ZmZk
MGYzZDk5MGM0ODBmOTRkODYyZDM2ODY3YmMxMjQzNzAyLi5mODUwY2RhZTE3ZGI4NWEzMjg4ZjUy
ZGQ0MTE1ZjFmOTQ2OGUyMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC03MSw3ICs3MSw5IEBAIHZvaWQg
UG9wdXBNZW51Q2hyb21pdW06OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiBm
cmFtZVZpZXcsIGludCBpbmRlCiAgICAgaWYgKCFwLnBvcHVwKSB7CiAgICAgICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpOwogICAg
ICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBkcm9wRG93blNldHRp
bmdzOwotICAgICAgICBwb3B1cFNldHRpbmdzLmRldmljZVN1cHBvcnRzVG91Y2ggPSBzZXR0aW5n
cy0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgpOworICAgICAgICBwb3B1cFNldHRpbmdzLnByaW1hcnlJ
bnB1dElzVG91Y2ggPSBzZXR0aW5ncy0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKSA9PSBQb2ludGVy
RGV2aWNlVG91Y2ggCisgICAgICAgICAgICB8fCBzZXR0aW5ncy0+cHJpbWFyeVBvaW50ZXJEZXZp
Y2UoKSA9PSBQb2ludGVyRGV2aWNlTW91c2VBbmRUb3VjaDsKKwogICAgICAgICBwLnBvcHVwID0g
UG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwg
cG9wdXBTZXR0aW5ncyk7CiAgICAgfQogICAgIHAucG9wdXAtPnNob3dJblJlY3QocmVjdCwgZnJh
bWVWaWV3LCBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcAppbmRleCBhOWViNjI3MTg5ZWM1YThkOGZjYTUyZWZmNDY1ZjM0ZDJjY2Q1ZGE4Li4zMGQx
NGY5ZjRmODgzOGE3YzgwZjA4Nzk1YTIxZjU2NmE1MWM4MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTUxMyw0ICs1MTMsMjIgQEAgdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdD
b250cm9scyhkb3VibGUgdGkKICAgICBzZXR0aW5ncygpLT5zZXRUaW1lV2l0aG91dE1vdXNlTW92
ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyh0aW1lKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpzZXRQcmltYXJ5UG9pbnRlckRldmljZShjb25zdCBTdHJpbmcmIHBvaW50ZXJEZXZpY2Us
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRp
bmdzKCk7CisKKyAgICBpZiAocG9pbnRlckRldmljZSA9PSAibW91c2UiKQorICAgICAgICBzZXR0
aW5ncygpLT5zZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlTW91c2UpOworICAg
IGVsc2UgaWYgKHBvaW50ZXJEZXZpY2UgPT0gInRvdWNoIikKKyAgICAgICAgc2V0dGluZ3MoKS0+
c2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoUG9pbnRlckRldmljZVRvdWNoKTsKKyAgICBlbHNlIGlm
IChwb2ludGVyRGV2aWNlID09ICJtb3VzZWFuZHRvdWNoIikKKyAgICAgICAgc2V0dGluZ3MoKS0+
c2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoUG9pbnRlckRldmljZU1vdXNlQW5kVG91Y2gpOworICAg
IGVsc2UgaWYgKHBvaW50ZXJEZXZpY2UgPT0gIm5vbmUiKQorICAgICAgICBzZXR0aW5ncygpLT5z
ZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlTm9uZSk7CisgICAgZWxzZSBpZiAo
cG9pbnRlckRldmljZSA9PSAidW5rbm93biIpIAorICAgICAgICBzZXR0aW5ncygpLT5zZXRQcmlt
YXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlVW5rbm93bik7CisgICAgZWxzZQorICAgICAg
ICBlYyA9IFNZTlRBWF9FUlI7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmgKaW5kZXggMTg3NDJlMjRhYjlmMzMwODU5ZjNjNzYxMzlhOTdkN2ZlM2IxZTcy
Ny4uOTRkOWRhNjg0YTk0MzM4YTliMGRiYTk3OThjZmZmNDdmNDViNzYzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWxJblNl
Y29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldERlZmF1bHRWaWRlb1Bvc3RlclVS
TChjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGltZVdp
dGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoZG91YmxlIHRpbWUsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNlKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNl
dHRpbmdzKFBhZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCmluZGV4IGNkZThkZjYyNWY0MTlhMWFhOTdiMzY1NzE0ZGRlYTVkYzRhZWZkMTYuLjg0YTEy
ODg1YzJjMDc2OGRiMGViNjA5MDVlNTViMDE5ODEyZmJkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTMsNiArNTMsNyBAQAogICAgIHZvaWQg
c2V0RWRpdGluZ0JlaGF2aW9yKGluIERPTVN0cmluZyBiZWhhdmlvcikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgdm9pZCBzZXREaWFsb2dFbGVtZW50RW5hYmxlZChpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0TGFuZ0F0dHJpYnV0ZUF3YXJl
Rm9ybUNvbnRyb2xVSUVuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKTsKKyAgICB2b2lkIHNldFBy
aW1hcnlQb2ludGVyRGV2aWNlKGluIERPTVN0cmluZyBwb2ludGVyKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAKICAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0tdIHZvaWQgc2V0U2hvdWxkRGlz
cGxheVRyYWNrS2luZChpbiBET01TdHJpbmcga2luZCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBib29sZWFu
IHNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKaW5kZXggNzI1YzYxYzgwMDU1OTEwODg4MjVjMTk5MmVmNzhjNzhmMDEyMjJiYy4uMmY1YTE1
MDUzY2RjY2E5MzQzY2RmMDMzNDgxNmQ0MjVhYTMxNjFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC01Miw2ICs1MiwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIEVkaXRpbmdCZWhhdmlvckFuZHJvaWQKICAgICB9OwogCisgICAgZW51bSBQb2ludGVy
RGV2aWNlIHsKKyAgICAgICAgUG9pbnRlckRldmljZU1vdXNlLAorICAgICAgICBQb2ludGVyRGV2
aWNlVG91Y2gsCisgICAgICAgIFBvaW50ZXJEZXZpY2VNb3VzZUFuZFRvdWNoLAorICAgICAgICBQ
b2ludGVyRGV2aWNlTm9uZSwKKyAgICAgICAgUG9pbnRlckRldmljZVVua25vd24KKyAgICB9Owor
CiAgICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgdmlld3BvcnRFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKSA9IDA7CkBAIC05MSw3ICs5
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJyZWRJbWFnZURlY29kaW5n
RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmVsb3BlckV4dHJhc0Vu
YWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNl
KGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29s
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCkgPSAw
OyAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaHR0cDovL3drYi51Zy8xMTI4NDcKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RG91YmxlVGFwVG9ab29tRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldERvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlKCkgPSAwOwpAQCAtMTM5
LDYgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyVGlsZVBhaW50aW5n
RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBpY3RvZ3JhcGhGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBX
ZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCmluZGV4IDE0YzFkY2Y2
Y2IwZDg5MTU0YzY2YzI2MTMwODE5YjAyOTBlOTU3ZDAuLmZkYjYyZjdjNDA0OGI1MWNiYTI5MTAx
MTc0MWQwMmY1YmIzNjg1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0yMDEsNiArMjAxLDcgQEAgYm9vbCBXZWJQYWdlUG9wdXBJ
bXBsOjppbml0aWFsaXplUGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRBbGxvd1Nj
cmlwdHNUb0Nsb3NlV2luZG93cyh0cnVlKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFj
dG9yKG1fd2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgbV9wYWdlLT5zZXR0aW5n
cygpLT5zZXREZXZpY2VTdXBwb3J0c1RvdWNoKG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygp
LT5kZXZpY2VTdXBwb3J0c1RvdWNoKCkpOworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0UHJp
bWFyeVBvaW50ZXJEZXZpY2UobV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnByaW1hcnlQ
b2ludGVyRGV2aWNlKCkpOwogCiAgICAgdW5zaWduZWQgbGF5b3V0TWlsZXN0b25lcyA9IERpZEZp
cnN0TGF5b3V0IHwgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0OwogICAgIG1fcGFnZS0+
YWRkTGF5b3V0TWlsZXN0b25lcyhzdGF0aWNfY2FzdDxMYXlvdXRNaWxlc3RvbmVzPihsYXlvdXRN
aWxlc3RvbmVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcAppbmRleCA5ZjM0OTAxZTBkMTEyNWRmMDBiNTQ2Zjg2Y2EwZDUyODZhOWE2OWQwLi43
NjZkNTBiNGNiOTEwOThiNGEwMzQ5MzgxZWRkNmMwOGNkNGM0NWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEyNiw2ICsxMjYsNyBA
QCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZShpbnQgc2l6
ZSkKICAgICBtX3NldHRpbmdzLT5zZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKHNpemUpOwogfQog
CisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaHR0cDovL3drYi51Zy8xMTI4NDcKIHZvaWQgV2ViU2V0
dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wgZGV2aWNlU3VwcG9ydHNUb3Vj
aCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXREZXZpY2VTdXBwb3J0c1RvdWNoKGRldmljZVN1cHBv
cnRzVG91Y2gpOwpAQCAtMTQxLDYgKzE0MiwxMSBAQCBib29sIFdlYlNldHRpbmdzSW1wbDo6ZGV2
aWNlU3VwcG9ydHNUb3VjaCgpCiAgICAgcmV0dXJuIG1fc2V0dGluZ3MtPmRldmljZVN1cHBvcnRz
VG91Y2goKTsKIH0KIAorV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2UgV2ViU2V0dGluZ3NJbXBs
OjpwcmltYXJ5UG9pbnRlckRldmljZSgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlNl
dHRpbmdzOjpQb2ludGVyRGV2aWNlPihtX3NldHRpbmdzLT5wcmltYXJ5UG9pbnRlckRldmljZSgp
KTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKQogewog
ICAgIG1fc2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYXBw
bHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcik7CkBAIC0yMTksNiArMjI1LDEyIEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRQbHVnaW5zRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAg
bV9zZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKKwordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZpY2UgZGV2aWNl
KQoreworICAgIG1fc2V0dGluZ3MtPnNldFByaW1hcnlQb2ludGVyRGV2aWNlKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlBvaW50ZXJEZXZpY2U+KGRldmljZSkpOworfQorCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0RE9NUGFzdGVBbGxvd2VkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdz
LT5zZXRET01QYXN0ZUFsbG93ZWQoZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IGU2MGE2M2NlYzAzZTI3ZWQyZTQ0ZmRjM2JjMGI5
YmMxZTc3MTI0MGUuLmUxODExOGQwNDU0MzhmYzg1MjllZmZhNzM4NDc5ZDg4MTdmOWY1ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC00NSw2
ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJTZXR0aW5nc0ltcGwoKSB7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKCk7CisgICAgdmlydHVhbCBQb2lu
dGVyRGV2aWNlIHByaW1hcnlQb2ludGVyRGV2aWNlKCk7CiAgICAgdmlydHVhbCBib29sIHNjcm9s
bEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB2aWV3cG9ydEVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0RW5hYmxlZDsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKQEAgLTg0LDcgKzg1LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVk
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wpOwotICAgIHZp
cnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wpOyAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaHR0
cDovL3drYi51Zy8xMTI4NDcKICAgICB2aXJ0dWFsIHZvaWQgc2V0RG91YmxlVGFwVG9ab29tRW5h
YmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNF
bmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvck5l
dmVyTGl2ZSgpOwpAQCAtMTMyLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGlj
dG9ncmFwaEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBU
X0NPTU1PTik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZTeW5jTm90aWZpY2F0aW9uRW5hYmxlZChib29s
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJp
bmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBmYjQ0NDU2NDNjZDlmNWNiYzgwMTNhZmM0ZjRl
Y2U0ODlmZWViZTc0Li43YmMyNTkwY2NkMWE4YmIxODc3NTFkMTg2YTE4NWVkNTg5OWQ1OWE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zNjEwLDcg
KzM2MTAsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAK
ICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkgewogICAgICAgICBQb3B1cENvbnRhaW5lclNldHRp
bmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmlsbFBvcHVwU2V0dGluZ3M7Ci0gICAgICAgIHBvcHVw
U2V0dGluZ3MuZGV2aWNlU3VwcG9ydHNUb3VjaCA9IHNldHRpbmdzSW1wbCgpLT5kZXZpY2VTdXBw
b3J0c1RvdWNoKCk7CisgICAgICAgIHBvcHVwU2V0dGluZ3MucHJpbWFyeUlucHV0SXNUb3VjaCA9
IHNldHRpbmdzSW1wbCgpLT5wcmltYXJ5UG9pbnRlckRldmljZSgpID09IFdlYlNldHRpbmdzOjpQ
b2ludGVyRGV2aWNlVG91Y2ggCisgICAgICAgICAgICB8fCBzZXR0aW5nc0ltcGwoKS0+cHJpbWFy
eVBvaW50ZXJEZXZpY2UoKSA9PSBXZWJTZXR0aW5nczo6UG9pbnRlckRldmljZU1vdXNlQW5kVG91
Y2g7CisKICAgICAgICAgbV9hdXRvZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZSht
X2F1dG9maWxsUG9wdXBDbGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBTZXR0aW5ncyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZWIyMTFlNDY2NTYwYzIxMmIwYjA2Yzk4NDcwNThiMzFhOWYyMWE2Ni4uZjc3MjQ2
ZjQxNGEzMmJlNDMxOGEwZDFiM2FhNzVmMzMyOTE4NmM5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEzLTAzLTIxICBEYXZpZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAgICAgICAg
QWRkaW5nIEFQSSBmb3IgZGV0ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVy
IGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NzgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlh
L21xLXBvaW50ZXIuaHRtbDoKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIGVhY2ggcHJpbWFyeSBp
bnB1dCBkZXZpY2UgdXNlIGNhc2UKKwogMjAxMy0wMy0yMSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9y
YmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbc2tpYV0gZmVDb252b2x2ZU1hdHJpeCBz
aG91bGQgdXNlIGFjY2VsZXJhdGVkIHBhdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbXEtcG9pbnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21x
LXBvaW50ZXItZXhwZWN0ZWQudHh0CmluZGV4IGNmN2E2OTU2ZGRlZmZiMmQzMDViNTMwNDc1OTIw
M2NkYWFjNGJjMTAuLjA3MDhiNWRjZDA4N2ZlNTlkMzc1YTk3YTMzYTA4YTcwNTI1MWQ1MjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVkLnR4dApAQCAt
NCwxMCArNCwxMiBAQCBUZXN0IHRoZSAocG9pbnRlcikgYW5kIChob3ZlcikgbWVkaWEgZmVhdHVy
ZXMuIFNlZSBCdWcgODc0MDMgZm9yIGRldGFpbHMuCiBRdWVyeSAiKHBvaW50ZXIpIjogZmFsc2UK
IFF1ZXJ5ICIoUG9pbnRlcikiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOm5vbmUpIjogZmFsc2UK
K1F1ZXJ5ICIocG9pbnRlcjpOb05lKSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6Y29hcnNlKSI6
IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6Y29BUnNlKSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6
Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmZpbmUpIjogZmFsc2UKK1F1ZXJ5
ICIocG9pbnRlcjpGaU5lKSI6IGZhbHNlCiBRdWVyeSAiKGhvdmVyKSI6IGZhbHNlCiBRdWVyeSAi
KGhvdmVyOjApIjogZmFsc2UKIFF1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQpAQCAtMTYsMTIgKzE4
LDcwIEBAIFF1ZXJ5ICIoaG92ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVy
KSI6IHRydWUKIFF1ZXJ5ICIoUG9pbnRlcikiOiB0cnVlCiBRdWVyeSAiKHBvaW50ZXI6bm9uZSki
OiBmYWxzZQorUXVlcnkgIihwb2ludGVyOk5vTmUpIjogZmFsc2UKIFF1ZXJ5ICIocG9pbnRlcjpj
b2Fyc2UpIjogdHJ1ZQogUXVlcnkgIihwb2ludGVyOmNvQVJzZSkiOiB0cnVlCiBRdWVyeSAiKHBv
aW50ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmZpbmUpIjogZmFsc2UK
K1F1ZXJ5ICIocG9pbnRlcjpGaU5lKSI6IGZhbHNlCiBRdWVyeSAiKGhvdmVyKSI6IGZhbHNlCiBR
dWVyeSAiKGhvdmVyOjApIjogdHJ1ZQogUXVlcnkgIihob3ZlcjoxKSI6IGZhbHNlCiBRdWVyeSAi
KGhvdmVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKKy0tLS0tLS0tLS0tLS0gd2l0aCBtb3VzZSAtLS0t
LS0tLS0tLS0tCitRdWVyeSAiKHBvaW50ZXIpIjogdHJ1ZQorUXVlcnkgIihQb2ludGVyKSI6IHRy
dWUKK1F1ZXJ5ICIocG9pbnRlcjpub25lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Tm9OZSki
OiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmNvYXJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVy
OmNvQVJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKK1F1
ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpGaU5lKSI6IHRydWUK
K1F1ZXJ5ICIoaG92ZXIpIjogdHJ1ZQorUXVlcnkgIihob3ZlcjowKSI6IGZhbHNlCitRdWVyeSAi
KGhvdmVyOjEpIjogdHJ1ZQorUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCistLS0t
LS0tLS0tLS0tIHdpdGggbW91c2UgYW5kIHRvdWNoIC0tLS0tLS0tLS0tLS0KK1F1ZXJ5ICIocG9p
bnRlcikiOiB0cnVlCitRdWVyeSAiKFBvaW50ZXIpIjogdHJ1ZQorUXVlcnkgIihwb2ludGVyOm5v
bmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpOb05lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50
ZXI6Y29hcnNlKSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpjb0FSc2UpIjogdHJ1ZQorUXVlcnkg
Iihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZh
bHNlCitRdWVyeSAiKHBvaW50ZXI6RmlOZSkiOiBmYWxzZQorUXVlcnkgIihob3ZlcikiOiBmYWxz
ZQorUXVlcnkgIihob3ZlcjowKSI6IHRydWUKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQorUXVl
cnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCistLS0tLS0tLS0tLS0tIHdpdGggbm8gcG9p
bnRlciAtLS0tLS0tLS0tLS0tCitRdWVyeSAiKHBvaW50ZXIpIjogZmFsc2UKK1F1ZXJ5ICIoUG9p
bnRlcikiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOm5vbmUpIjogdHJ1ZQorUXVlcnkgIihwb2lu
dGVyOk5vTmUpIjogdHJ1ZQorUXVlcnkgIihwb2ludGVyOmNvYXJzZSkiOiBmYWxzZQorUXVlcnkg
Iihwb2ludGVyOmNvQVJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjog
ZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6RmlO
ZSkiOiBmYWxzZQorUXVlcnkgIihob3ZlcikiOiBmYWxzZQorUXVlcnkgIihob3ZlcjowKSI6IHRy
dWUKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQorUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6
IGZhbHNlCistLS0tLS0tLS0tLS0tIHdpdGggdW5rbm93biAtLS0tLS0tLS0tLS0tCitRdWVyeSAi
KHBvaW50ZXIpIjogZmFsc2UKK1F1ZXJ5ICIoUG9pbnRlcikiOiBmYWxzZQorUXVlcnkgIihwb2lu
dGVyOm5vbmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpOb05lKSI6IGZhbHNlCitRdWVyeSAi
KHBvaW50ZXI6Y29hcnNlKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Y29BUnNlKSI6IGZhbHNl
CitRdWVyeSAiKHBvaW50ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmZp
bmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpGaU5lKSI6IGZhbHNlCitRdWVyeSAiKGhvdmVy
KSI6IGZhbHNlCitRdWVyeSAiKGhvdmVyOjApIjogZmFsc2UKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBm
YWxzZQorUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tcS1wb2ludGVyLmh0bWwKaW5kZXggOWFkMDFhNmY1YjdmZTBkYjU4YmMyMDRkYzczNmZk
ZjAyOTU4MTk3MC4uNjBmZDYyYWI0YmQwMjQxODJkZjNiYWE3NTA1NmJlOThjYWJhYjcxMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKQEAgLTE4LDEwICsxOCwxMiBAQAog
ICAgICAgICAgICAgIihwb2ludGVyKSIsCiAgICAgICAgICAgICAiKFBvaW50ZXIpIiwKICAgICAg
ICAgICAgICIocG9pbnRlcjpub25lKSIsCisgICAgICAgICAgICAiKHBvaW50ZXI6Tm9OZSkiLAog
ICAgICAgICAgICAgIihwb2ludGVyOmNvYXJzZSkiLAogICAgICAgICAgICAgIihwb2ludGVyOmNv
QVJzZSkiLAogICAgICAgICAgICAgIihwb2ludGVyOmJvZ3VzdmFsdWUpIiwKICAgICAgICAgICAg
ICIocG9pbnRlcjpmaW5lKSIsCisgICAgICAgICAgICAiKHBvaW50ZXI6RmlOZSkiLAogICAgICAg
ICAgICAgIihob3ZlcikiLAogICAgICAgICAgICAgIihob3ZlcjowKSIsCiAgICAgICAgICAgICAi
KGhvdmVyOjEpIiwKQEAgLTM4LDEwICs0MCwzMiBAQAogICAgICAgICB0ZXN0UXVlcmllcygpOwog
CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RGV2aWNlU3VwcG9ydHNUb3VjaCh0cnVlKTsKKyAgICAgICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRQcmltYXJ5UG9pbnRlckRldmljZSgndG91Y2gnKTsKIAogICAgICAg
ICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpdGggdG91Y2ggc2NyZWVuIC0tLS0tLS0tLS0tLS0i
KTsKICAgICAgICAgICAgIHRlc3RRdWVyaWVzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRQcmltYXJ5UG9pbnRlckRldmljZSgnbW91c2UnKTsKKwor
ICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpdGggbW91c2UgLS0tLS0tLS0tLS0tLSIp
OworICAgICAgICAgICAgdGVzdFF1ZXJpZXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFByaW1hcnlQb2ludGVyRGV2aWNlKCdtb3VzZWFuZHRvdWNo
Jyk7CisKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aXRoIG1vdXNlIGFuZCB0b3Vj
aCAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICB0ZXN0UXVlcmllcygpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpbWFyeVBvaW50ZXJEZXZp
Y2UoJ25vbmUnKTsKKworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpdGggbm8gcG9p
bnRlciAtLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICB0ZXN0UXVlcmllcygpOworCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoJ3Vua25v
d24nKTsKKworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdpdGggdW5rbm93biAtLS0t
LS0tLS0tLS0tIik7CisgICAgICAgICAgICB0ZXN0UXVlcmllcygpOworCisKICAgICAgICAgfQog
ICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194596</attachid>
            <date>2013-03-22 10:50:20 -0700</date>
            <delta_ts>2013-04-03 08:47:23 -0700</delta_ts>
            <desc>Review Fixes</desc>
            <filename>bug-87806-20130322134607.patch</filename>
            <type>text/plain</type>
            <size>24721</size>
            <attacher name="David Bokan">bokan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhlYTA0MjM5MGFlN2Qx
M2ZiYzE4YzgwZGE1MjNkZTcyZTQ2MDhjOC4uNGQ1N2U5MTkzMTI4NmZjMWRmMGMyNmU1ZjZiZmZl
OWYwODc1OTJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTIyICBEYXZp
ZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0
ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVyIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGgKKworICAgICAgICBNb2RpZmllZCBtcS1wb2ludGVyLmh0bWwg
dGVzdAorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICBD
aGFuZ2VkIHBvaW50ZXIgYW5kIGhvdmVyIHF1ZXJpZXMgdG8gdXNlIG5ldyBBUEkKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAg
QWRkZWQgbmV3IHNldHRpbmcgYW5kIGVudW0gZm9yIHByaW1hcnkgcG9pbnRlciBkZXZpY2UKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAgQ2hhbmdlZCBwb3B1cCByb3cgaGVp
Z2h0IGxvZ2ljIHRvIHVzZSBuZXcgQVBJIGNhbGwKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgIEV4cG9zZWQgbmV3
IEFQSSBjYWxsCisKIDIwMTMtMDMtMjIgIFRpYW5jaGVuZyBKaWFuZyAgPHRpamlhbmdAcmltLmNv
bT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBkYXRlIElucHV0IGZpZWxkIEJhY2tncm91bmQg
Q29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTkxMzNhZDdkZGU1NTI5ODc1NzY1
MmY3NzU5ZWQzMjNkMzg4MWQ3YS4uNmIyMGY0YzhlYmYxN2Y0NmNjZmJiMmQ0NmQ2MzFmMmZiY2Qw
NmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
My0yMiAgRGF2aWQgQm9rYW4gIDxib2thbkBnb29nbGUuY29tPgorCisgICAgICAgIEFkZGluZyBB
UEkgZm9yIGRldGVybWluaW5nIHVzZXIncyBwcmltYXJ5IG1vZGUgb2YgcG9pbnRlciBpbnB1dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoCisKKyAgICAgICAgKiBzcmMvV2ViUGFnZVBv
cHVwSW1wbC5jcHA6CisgICAgICAgIENoYW5nZWQgV2ViUGFnZVBvcHVwIHRvIHVzZSBuZXcgQVBJ
IGNhbGwKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAg
ICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgQWRkZWQgc2V0dGluZyBmb3IgZGV0
ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVyIGlucHV0CisKIDIwMTMtMDMt
MjIgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBT
a2lhIGZsYWcgcmVtb3ZhbCB0byBlbmFibGUgYnVnIGZpeGVzIGFuZCBwZXJmb3JtYW5jZSBpbXBy
b3ZlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5k
ZXggYzJmYzBmNjE5Zjc0NDg0NGFmMzU3ZGI2ODk0MmNiODlkZDFkZTc3MC4uMGNiZTA4OWViMjI0
OThhNGY4MTJkOGUyNTgwNWVhN2VkMmIxZjgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNjk3LDMxICs2OTcsMTQgQEAgc3RhdGljIGJvb2wgdmll
d19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJh
bWUqIGZyYW0KIH0KICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIAotZW51
bSBQb2ludGVyRGV2aWNlVHlwZSB7IFRvdWNoUG9pbnRlciwgTW91c2VQb2ludGVyLCBOb1BvaW50
ZXIsIFVua25vd25Qb2ludGVyIH07Ci0KLXN0YXRpYyBQb2ludGVyRGV2aWNlVHlwZSBsZWFzdENh
cGFibGVQcmltYXJ5UG9pbnRlckRldmljZVR5cGUoRnJhbWUqIGZyYW1lKQotewotICAgIGlmIChm
cmFtZS0+c2V0dGluZ3MoKS0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgpKQotICAgICAgICByZXR1cm4g
VG91Y2hQb2ludGVyOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhbHNvIHRyeSB0byBkZXRl
cm1pbmUgaWYgd2Uga25vdyB3ZSBoYXZlIGEgbW91c2UuCi0gICAgLy8gV2hlbiB3ZSBkbyB0aGlz
LCB3ZSdsbCBhbHNvIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGtub3duIG5vdCB0bwot
ICAgIC8vIGhhdmUgbW91c2Ugb3IgdG91Y2ggc2NyZWVuIChOb1BvaW50ZXIpIGFuZCB1bmtub3du
IChVbmtub3duUG9pbnRlcikuCi0gICAgLy8gV2UgY291bGQgYWxzbyB0YWtlIGludG8gYWNjb3Vu
dCBvdGhlciBwcmVmZXJlbmNlcyBsaWtlIGFjY2Vzc2liaWxpdHkKLSAgICAvLyBzZXR0aW5ncyB0
byBkZWNpZGUgd2hpY2ggb2YgdGhlIGF2YWlsYWJsZSBwb2ludGVycyBzaG91bGQgYmUgY29uc2lk
ZXJlZAotICAgIC8vICJwcmltYXJ5Ii4KLQotICAgIHJldHVybiBVbmtub3duUG9pbnRlcjsKLX0K
LQogc3RhdGljIGJvb2wgaG92ZXJNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICBQb2lu
dGVyRGV2aWNlVHlwZSBwb2ludGVyID0gbGVhc3RDYXBhYmxlUHJpbWFyeVBvaW50ZXJEZXZpY2VU
eXBlKGZyYW1lKTsKKyAgICBQb2ludGVyRGV2aWNlIHBvaW50ZXIgPSBmcmFtZS0+c2V0dGluZ3Mo
KS0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsKIAogICAgIC8vIElmIHdlJ3JlIG9uIGEgcG9ydCB0
aGF0IGhhc24ndCBleHBsaWNpdGx5IG9wdGVkIGludG8gcHJvdmlkaW5nIHBvaW50ZXIgZGV2aWNl
IGluZm9ybWF0aW9uCiAgICAgLy8gKG9yIG90aGVyd2lzZSBjYW4ndCBiZSBjb25maWRlbnQgaW4g
dGhlIHBvaW50ZXIgaGFyZHdhcmUgYXZhaWxhYmxlKSwgdGhlbiBiZWhhdmUgZXhhY3RseQogICAg
IC8vIGFzIGlmIHRoaXMgZmVhdHVyZSBmZWF0dXJlIGlzbid0IHN1cHBvcnRlZC4KLSAgICBpZiAo
cG9pbnRlciA9PSBVbmtub3duUG9pbnRlcikKKyAgICBpZiAocG9pbnRlciA9PSBQb2ludGVyRGV2
aWNlVW5rbm93bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZmxvYXQgbnVtYmVyID0g
MTsKQEAgLTczMCwzMSArNzEzLDMxIEBAIHN0YXRpYyBib29sIGhvdmVyTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9p
bnRlciAmJiAhbnVtYmVyKQotICAgICAgICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYg
IW51bWJlcikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVyICYmIG51bWJlciA9
PSAxKTsKKyAgICByZXR1cm4gKHBvaW50ZXIgPT0gUG9pbnRlckRldmljZU5vbmUgJiYgIW51bWJl
cikKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0gUG9pbnRlckRldmljZVRvdWNoICYmICFudW1iZXIp
CisgICAgICAgIHx8IChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VNb3VzZSAmJiBudW1iZXIgPT0g
MSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsK
LSAgICBQb2ludGVyRGV2aWNlVHlwZSBwb2ludGVyID0gbGVhc3RDYXBhYmxlUHJpbWFyeVBvaW50
ZXJEZXZpY2VUeXBlKGZyYW1lKTsKKyAgICBQb2ludGVyRGV2aWNlIHBvaW50ZXIgPSBmcmFtZS0+
c2V0dGluZ3MoKS0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsKIAogICAgIC8vIElmIHdlJ3JlIG9u
IGEgcG9ydCB0aGF0IGhhc24ndCBleHBsaWNpdGx5IG9wdGVkIGludG8gcHJvdmlkaW5nIHBvaW50
ZXIgZGV2aWNlIGluZm9ybWF0aW9uCiAgICAgLy8gKG9yIG90aGVyd2lzZSBjYW4ndCBiZSBjb25m
aWRlbnQgaW4gdGhlIHBvaW50ZXIgaGFyZHdhcmUgYXZhaWxhYmxlKSwgdGhlbiBiZWhhdmUgZXhh
Y3RseQogICAgIC8vIGFzIGlmIHRoaXMgZmVhdHVyZSBmZWF0dXJlIGlzbid0IHN1cHBvcnRlZC4K
LSAgICBpZiAocG9pbnRlciA9PSBVbmtub3duUG9pbnRlcikKKyAgICBpZiAocG9pbnRlciA9PSBQ
b2ludGVyRGV2aWNlVW5rbm93bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCF2
YWx1ZSkKLSAgICAgICAgcmV0dXJuIHBvaW50ZXIgIT0gTm9Qb2ludGVyOworICAgICAgICByZXR1
cm4gcG9pbnRlciAhPSBQb2ludGVyRGV2aWNlTm9uZTsKIAogICAgIGlmICghdmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgaW50IGlk
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7Ci0g
ICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZU5vbmUpCi0g
ICAgICAgIHx8IChwb2ludGVyID09IFRvdWNoUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZUNvYXJz
ZSkKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVyICYmIGlkID09IENTU1ZhbHVl
RmluZSk7CisgICAgcmV0dXJuIChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VOb25lICYmIGlkID09
IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0gUG9pbnRlckRldmljZVRvdWNo
ICYmIGlkID09IENTU1ZhbHVlQ29hcnNlKQorICAgICAgICB8fCAocG9pbnRlciA9PSBQb2ludGVy
RGV2aWNlTW91c2UgJiYgaWQgPT0gQ1NTVmFsdWVGaW5lKTsKIH0KIAogc3RhdGljIHZvaWQgY3Jl
YXRlRnVuY3Rpb25NYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDRjZGVlNTM1Y2FhNTBl
ZTkwZGY1NjA0ZDEwOTQzZWJmOWNhY2Y2ZjguLjU2NzNkYjJiNGMzZGUyOGRlOTc3NDkzZWVlN2Ix
ZDNjYmU4NGRiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTU3LDYgKzU3LDE4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNs
dWRlZAogICAgIH07CiAKKyAgICAvLyBFbnVtIGZvciBwcmltYXJ5IHBvaW50ZXIgZGV2aWNlIHRv
IHRlbGwgV2ViS2l0IHdoYXQga2luZCBvZiBpbnB1dCB0aGUKKyAgICAvLyB1c2VyIGlzIHByaW1h
cmlseSB1c2luZy4gTm90ZSB0aGF0IGl0J3Mgbm90IGFuIGluZGljYXRpb24gb2Ygd2hhdCdzIAor
ICAgIC8vIGF2YWlsYWJsZSBvbiB0aGUgdXNlcidzIHN5c3RlbS4KKyAgICAvLyBlLmcuIFByaW1h
cnkgcG9pbnRlciBtYXkgYmUgc2V0IHRvIFBvaW50ZXJEZXZpY2VNb3VzZSBidXQgZGV2aWNlIGhh
cworICAgIC8vIGEgbW91c2UgYW5kIGEgdG91Y2ggc2NyZWVuLgorICAgIGVudW0gUG9pbnRlckRl
dmljZSB7CisgICAgICAgIFBvaW50ZXJEZXZpY2VNb3VzZSwKKyAgICAgICAgUG9pbnRlckRldmlj
ZVRvdWNoLAorICAgICAgICBQb2ludGVyRGV2aWNlTm9uZSwKKyAgICAgICAgUG9pbnRlckRldmlj
ZVVua25vd24KKyAgICB9OworCiAgICAgLy8gVVNjcmlwdENvZGUgdXNlcyAtMSBhbmQgMCBmb3Ig
VVNjcmlwdEludmFsaWRDb2RlIGFuZCBVU2NyaXB0Q29tbW9uLgogICAgIC8vIFdlIG5lZWQgdG8g
dXNlIC0yIGFuZCAtMyBmb3IgZW1wdHkgdmFsdWUgYW5kIGRlbGV0ZWQgdmFsdWUuCiAgICAgc3Ry
dWN0IFVTY3JpcHRDb2RlSGFzaFRyYWl0cyA6IFdURjo6R2VuZXJpY0hhc2hUcmFpdHM8aW50PiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBmNjRmNTc4YmU4YjFkZmVlYjE2YTczYTU0MzFm
NmIxM2Q0OTZiYTVjLi43ZjY3OGJlOTM2NmYxMDZkYmU4MmQxNTE0NDNhNzBhNTI3Zjc5MmRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE1Miw3ICsxNTIsNyBAQCBuZWVkc0lzTG9hZGlu
Z0luQVBJU2Vuc2VRdWlyayBpbml0aWFsPWZhbHNlCiBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiBpbml0aWFsPWZhbHNlCiB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9y
IGluaXRpYWw9ZmFsc2UKIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgaW5pdGlhbD10cnVl
Ci1kZXZpY2VTdXBwb3J0c1RvdWNoIGluaXRpYWw9ZmFsc2UKK2RldmljZVN1cHBvcnRzVG91Y2gg
aW5pdGlhbD1mYWxzZSAgICNGSVhNRTogUmVtb3ZlIHRoaXMgaHR0cDovL3drYi51Zy8xMTI4NDcK
IGRldmljZVN1cHBvcnRzTW91c2UgaW5pdGlhbD10cnVlCiAKICMgRm9yIHRvdWNoIGFkanVzdG1l
bnQgdG8gYXBwbHksIHRoZSBjb21waWxlIG9wdGlvbiBUT1VDSF9BREpVU1RNRU5UIG11c3QgYWxz
byBiZSBlbmFibGVkLgpAQCAtMTkxLDYgKzE5MSw4IEBAIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAjIGVuYWJsZWQsIHRoZSB1c2VyIGNhbiBpbml0aWF0ZSBkcmFnIHVz
aW5nIGxvbmcgcHJlc3MuCiB0b3VjaERyYWdEcm9wRW5hYmxlZCBpbml0aWFsPWZhbHNlCiAKK3By
aW1hcnlQb2ludGVyRGV2aWNlIHR5cGU9UG9pbnRlckRldmljZSwgaW5pdGlhbD1Qb2ludGVyRGV2
aWNlVW5rbm93bgorCiB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFVu
aWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29s
ZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5jcHAKaW5kZXggMzE4OGExMDIxZjQ4NWFkNjA5NWY1YjY0ZGY5
ZTk1ZGJiZWU0OGQxMS4uNzcwMTY0MjAzMTk1ZTUzMTQ1MjA2YjQ5YjRmNDRhNzRhY2NmOGJiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3gu
Y3BwCkBAIC02MjYsNyArNjI2LDcgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnNldE9yaWdpbmFsSW5k
ZXgoaW50IGluZGV4KQogaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleCkK
IHsKICAgICBpbnQgbWluaW11bUhlaWdodCA9IFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93
SGVpZ2h0KCk7Ci0gICAgaWYgKG1fc2V0dGluZ3MuZGV2aWNlU3VwcG9ydHNUb3VjaCkKKyAgICBp
ZiAobV9zZXR0aW5ncy5wcmltYXJ5SW5wdXRJc1RvdWNoKQogICAgICAgICBtaW5pbXVtSGVpZ2h0
ID0gbWF4KG1pbmltdW1IZWlnaHQsIFBvcHVwTWVudUNocm9taXVtOjpvcHRpb25Sb3dIZWlnaHRG
b3JUb3VjaCgpKTsKIAogICAgIGlmIChpbmRleCA8IDAgfHwgbV9wb3B1cENsaWVudC0+aXRlbVN0
eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCmluZGV4IDY1NzVhZWU3N2Y3Mjk5OWM5ZDAzZmE1YTU3
ZjYyM2Q0ZWJmNTc2OTUuLjY3YmI2ZGYxYTZiYzBhZGE3YzA2YjYwODc1NDRhYzMxMTgzYTcwMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5o
CkBAIC04MSw5ICs4MSw5IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHsKICAgICAv
LyBBdXRvY29tcGxldGUgcG9wdXBzIGFyZSByZXN0cmljdGVkLCBjb21iby1ib3hlcyAoc2VsZWN0
IHRhZ3MpIGFyZW4ndC4KICAgICBib29sIHJlc3RyaWN0V2lkdGhPZkxpc3RCb3g7CiAKLSAgICAv
LyBJZiB0aGUgZGV2aWNlIGlzIGEgdG91Y2ggc2NyZWVuIHdlIGluY3JlYXNlIHRoZSBoZWlnaHQg
b2YgbWVudSBpdGVtcworICAgIC8vIElmIHRoZSBwcmltYXJ5IGlucHV0IGlzIGEgdG91Y2ggc2Ny
ZWVuIHdlIGluY3JlYXNlIHRoZSBoZWlnaHQgb2YgbWVudSBpdGVtcwogICAgIC8vIHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIHVuYW1iaWd1b3VzbHkgdG91Y2ggdGhlbS4KLSAgICBib29sIGRldmljZVN1
cHBvcnRzVG91Y2g7CisgICAgYm9vbCBwcmltYXJ5SW5wdXRJc1RvdWNoOwogfTsKIAogY2xhc3Mg
UG9wdXBDb250ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAwZTQ4ZmZkMGYzZDk5MGM0ODBmOTRkODYy
ZDM2ODY3YmMxMjQzNzAyLi4yZmNmMzA0ZGEwYmRjMGE2ZjlmZjZmODBkYTFmZTE0MDc0MGY0NDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUG9wdXBNZW51Q2hyb21pdW06
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiBmcmFtZVZpZXcsIGludCBpbmRl
CiAgICAgaWYgKCFwLnBvcHVwKSB7CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGZyYW1l
Vmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpOwogICAgICAgICBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBkcm9wRG93blNldHRpbmdzOwotICAgICAgICBwb3B1
cFNldHRpbmdzLmRldmljZVN1cHBvcnRzVG91Y2ggPSBzZXR0aW5ncy0+ZGV2aWNlU3VwcG9ydHNU
b3VjaCgpOworICAgICAgICBwb3B1cFNldHRpbmdzLnByaW1hcnlJbnB1dElzVG91Y2ggPSBzZXR0
aW5ncy0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKSA9PSBQb2ludGVyRGV2aWNlVG91Y2g7CiAgICAg
ICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRh
aW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdzKTsKICAgICB9CiAgICAgcC5wb3B1cC0+c2hvd0lu
UmVjdChyZWN0LCBmcmFtZVZpZXcsIGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGE5ZWI2MjcxODllYzVhOGQ4ZmNhNTJlZmY0NjVmMzRk
MmNjZDVkYTguLmFkNjk1OWRkZDI1ZmY3ZDA3YWI5M2VkNTQyNzk3ZmQ4ZGFiZjVjZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNTEzLDQgKzUx
MywyMCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRpbWVXaXRob3V0TW91c2VNb3ZlbWVu
dEJlZm9yZUhpZGluZ0NvbnRyb2xzKGRvdWJsZSB0aQogICAgIHNldHRpbmdzKCktPnNldFRpbWVX
aXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKHRpbWUpOwogfQogCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFByaW1hcnlQb2ludGVyRGV2aWNlKGNvbnN0IFN0cmluZyYg
cG9pbnRlckRldmljZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5n
c0d1YXJkRm9yU2V0dGluZ3MoKTsKKworICAgIGlmIChwb2ludGVyRGV2aWNlID09ICJtb3VzZSIp
CisgICAgICAgIHNldHRpbmdzKCktPnNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZp
Y2VNb3VzZSk7CisgICAgZWxzZSBpZiAocG9pbnRlckRldmljZSA9PSAidG91Y2giKQorICAgICAg
ICBzZXR0aW5ncygpLT5zZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlVG91Y2gp
OworICAgIGVsc2UgaWYgKHBvaW50ZXJEZXZpY2UgPT0gIm5vbmUiKQorICAgICAgICBzZXR0aW5n
cygpLT5zZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlTm9uZSk7CisgICAgZWxz
ZSBpZiAocG9pbnRlckRldmljZSA9PSAidW5rbm93biIpIAorICAgICAgICBzZXR0aW5ncygpLT5z
ZXRQcmltYXJ5UG9pbnRlckRldmljZShQb2ludGVyRGV2aWNlVW5rbm93bik7CisgICAgZWxzZQor
ICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKaW5kZXggMTg3NDJlMjRhYjlmMzMwODU5ZjNjNzYxMzlhOTdkN2Zl
M2IxZTcyNy4uOTRkOWRhNjg0YTk0MzM4YTliMGRiYTk3OThjZmZmNDdmNDViNzYzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEyOSw2ICsxMjksNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2
YWxJblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldERlZmF1bHRWaWRlb1Bv
c3RlclVSTChjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoZG91YmxlIHRpbWUs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNlKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRl
cm5hbFNldHRpbmdzKFBhZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCmluZGV4IGNkZThkZjYyNWY0MTlhMWFhOTdiMzY1NzE0ZGRlYTVkYzRhZWZkMTYu
Ljg0YTEyODg1YzJjMDc2OGRiMGViNjA5MDVlNTViMDE5ODEyZmJkZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTMsNiArNTMsNyBAQAogICAg
IHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGluIERPTVN0cmluZyBiZWhhdmlvcikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXREaWFsb2dFbGVtZW50RW5hYmxlZChpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0TGFuZ0F0dHJpYnV0
ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKTsKKyAgICB2b2lk
IHNldFByaW1hcnlQb2ludGVyRGV2aWNlKGluIERPTVN0cmluZyBwb2ludGVyKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0tdIHZvaWQgc2V0U2hv
dWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJpbmcga2luZCwgaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBi
b29sZWFuIHNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKaW5kZXggNzI1YzYxYzgwMDU1OTEwODg4MjVjMTk5MmVmNzhjNzhmMDEyMjJiYy4u
MTQ0NTU2ODVkMzQzNmFmYzIzNWVlYzUzYzFjMDVhN2JmZjY4NDM3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC01Miw2ICs1MiwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIEVkaXRpbmdCZWhhdmlvckFuZHJvaWQKICAgICB9OwogCisgICAgZW51bSBQ
b2ludGVyRGV2aWNlIHsKKyAgICAgICAgUG9pbnRlckRldmljZU1vdXNlLAorICAgICAgICBQb2lu
dGVyRGV2aWNlVG91Y2gsCisgICAgICAgIFBvaW50ZXJEZXZpY2VOb25lLAorICAgICAgICBQb2lu
dGVyRGV2aWNlVW5rbm93bgorICAgIH07CisKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB2aWV3cG9ydEVuYWJsZWQo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKGJvb2wpID0gMDsKQEAgLTkxLDcgKzk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2
aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8v
d2tiLnVnLzExMjg0NwogICAgIHZpcnR1YWwgdm9pZCBzZXREb3VibGVUYXBUb1pvb21FbmFibGVk
KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNF
bmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZp
b3JOZXZlckxpdmUoKSA9IDA7CkBAIC0xMzksNiArMTQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UGljdG9ncmFwaEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENv
ZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5h
YmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNl
KFBvaW50ZXJEZXZpY2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdM
RXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJW
U3luY05vdGlmaWNhdGlvbkVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
YW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQ
VF9DT01NT04pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBv
cHVwSW1wbC5jcHAKaW5kZXggMTRjMWRjZjZjYjBkODkxNTRjNjZjMjYxMzA4MTliMDI5MGU5NTdk
MC4uZmRiNjJmN2M0MDQ4YjUxY2JhMjkxMDExNzQxZDAyZjViYjM2ODVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTIwMSw2ICsy
MDEsNyBAQCBib29sIFdlYlBhZ2VQb3B1cEltcGw6OmluaXRpYWxpemVQYWdlKCkKICAgICBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNldEFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKHRydWUpOwogICAg
IG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IobV93ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3Rv
cigpKTsKICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldERldmljZVN1cHBvcnRzVG91Y2gobV93
ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPmRldmljZVN1cHBvcnRzVG91Y2goKSk7CisgICAg
bV9wYWdlLT5zZXR0aW5ncygpLT5zZXRQcmltYXJ5UG9pbnRlckRldmljZShtX3dlYlZpZXctPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKSk7CiAKICAgICB1bnNpZ25l
ZCBsYXlvdXRNaWxlc3RvbmVzID0gRGlkRmlyc3RMYXlvdXQgfCBEaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQ7CiAgICAgbV9wYWdlLT5hZGRMYXlvdXRNaWxlc3RvbmVzKHN0YXRpY19jYXN0
PExheW91dE1pbGVzdG9uZXM+KGxheW91dE1pbGVzdG9uZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDlmMzQ5MDFlMGQxMTI1ZGYw
MGI1NDZmODZjYTBkNTI4NmE5YTY5ZDAuLjUxMDk3NDViOTBmYzEzMzlkNzk2NTcwNDIxMGFkMjAw
M2Q2MGYxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcApAQCAtMTI2LDYgKzEyNiw3IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5p
bXVtTG9naWNhbEZvbnRTaXplKGludCBzaXplKQogICAgIG1fc2V0dGluZ3MtPnNldE1pbmltdW1M
b2dpY2FsRm9udFNpemUoc2l6ZSk7CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8v
d2tiLnVnLzExMjg0Nwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVN1cHBvcnRzVG91
Y2goYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKQogewogICAgIG1fc2V0dGluZ3MtPnNldERldmlj
ZVN1cHBvcnRzVG91Y2goZGV2aWNlU3VwcG9ydHNUb3VjaCk7CkBAIC0xNDEsNiArMTQyLDExIEBA
IGJvb2wgV2ViU2V0dGluZ3NJbXBsOjpkZXZpY2VTdXBwb3J0c1RvdWNoKCkKICAgICByZXR1cm4g
bV9zZXR0aW5ncy0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgpOwogfQogCitXZWJTZXR0aW5nczo6UG9p
bnRlckRldmljZSBXZWJTZXR0aW5nc0ltcGw6OnByaW1hcnlQb2ludGVyRGV2aWNlKCkKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2U+KG1fc2V0dGlu
Z3MtPnByaW1hcnlQb2ludGVyRGV2aWNlKCkpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sIGFwcGx5RGV2aWNlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0QXBwbHlEZXZpY2VT
Y2FsZUZhY3RvckluQ29tcG9zaXRvcihhcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KTsKQEAgLTIxOSw2ICsyMjUsMTIgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFBsdWdpbnNF
bmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxlZChl
bmFibGVkKTsKIH0KIAorCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0UHJpbWFyeVBvaW50ZXJE
ZXZpY2UoUG9pbnRlckRldmljZSBkZXZpY2UpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0UHJpbWFy
eVBvaW50ZXJEZXZpY2Uoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UG9pbnRlckRldmljZT4oZGV2aWNl
KSk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRET01QYXN0ZUFsbG93ZWQoYm9vbCBl
bmFibGVkKQogewogICAgIG1fc2V0dGluZ3MtPnNldERPTVBhc3RlQWxsb3dlZChlbmFibGVkKTsK
QEAgLTczNiw0ICs3NDgsOSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0
PGludD4oV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2VNb3VzZSkgPT0gc3RhdGljX2Nhc3Q8aW50
PihXZWJDb3JlOjpQb2ludGVyRGV2aWNlTW91c2UpLCBtaXNtYXRjaGVkX2VudW1zKTsKK0NPTVBJ
TEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2VUb3Vj
aCkgPT0gc3RhdGljX2Nhc3Q8aW50PihXZWJDb3JlOjpQb2ludGVyRGV2aWNlVG91Y2gpLCBtaXNt
YXRjaGVkX2VudW1zKTsKK0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV2ViU2V0dGlu
Z3M6OlBvaW50ZXJEZXZpY2VOb25lKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFdlYkNvcmU6OlBvaW50
ZXJEZXZpY2VOb25lKSwgbWlzbWF0Y2hlZF9lbnVtcyk7CitDT01QSUxFX0FTU0VSVChzdGF0aWNf
Y2FzdDxpbnQ+KFdlYlNldHRpbmdzOjpQb2ludGVyRGV2aWNlVW5rbm93bikgPT0gc3RhdGljX2Nh
c3Q8aW50PihXZWJDb3JlOjpQb2ludGVyRGV2aWNlVW5rbm93biksIG1pc21hdGNoZWRfZW51bXMp
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggZTYwYTYzY2VjMDNlMjdlZDJlNDRmZGMzYmMwYjliYzFl
NzcxMjQwZS4uZTE4MTE4ZDA0NTQzOGZjODUyOWVmZmE3Mzg0NzlkODgxN2Y5ZjVkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTQ1LDYgKzQ1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYlNldHRpbmdzSW1wbCgpIHsgfQogCiAgICAg
dmlydHVhbCBib29sIGRldmljZVN1cHBvcnRzVG91Y2goKTsKKyAgICB2aXJ0dWFsIFBvaW50ZXJE
ZXZpY2UgcHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHZpZXdwb3J0RW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRFbmFibGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpOwpAQCAtODQsNyArODUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCk7Ci0gICAgdmlydHVh
bCB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVN1cHBvcnRzVG91Y2goYm9vbCk7IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8v
d2tiLnVnLzExMjg0NwogICAgIHZpcnR1YWwgdm9pZCBzZXREb3VibGVUYXBUb1pvb21FbmFibGVk
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJM
aXZlKCk7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
ZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQaWN0b2dy
YXBoRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09N
TU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7CisgICAgdmly
dHVhbCB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZpY2UpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYs
IFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGZiNDQ0NTY0M2NkOWY1Y2JjODAxM2FmYzRmNGVjZTQ4
OWZlZWJlNzQuLjg4YTFjNjljOTA1M2U2ODJlYjY1YTZhNGJkN2UyNDk0ZTQ1YmQ4MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2MTAsNyArMzYx
MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucygKIAogICAg
IGlmICghbV9hdXRvZmlsbFBvcHVwKSB7CiAgICAgICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3Mg
cG9wdXBTZXR0aW5ncyA9IGF1dG9maWxsUG9wdXBTZXR0aW5nczsKLSAgICAgICAgcG9wdXBTZXR0
aW5ncy5kZXZpY2VTdXBwb3J0c1RvdWNoID0gc2V0dGluZ3NJbXBsKCktPmRldmljZVN1cHBvcnRz
VG91Y2goKTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5wcmltYXJ5SW5wdXRJc1RvdWNoID0gc2V0
dGluZ3NJbXBsKCktPnByaW1hcnlQb2ludGVyRGV2aWNlKCkgPT0gV2ViU2V0dGluZ3M6OlBvaW50
ZXJEZXZpY2VUb3VjaDsKICAgICAgICAgbV9hdXRvZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6
OmNyZWF0ZShtX2F1dG9maWxsUG9wdXBDbGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBT
ZXR0aW5ncyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggOWZkNGQ3YjA1NDU3Mzg2ODhiMGRkNTZiZWE1YjMxMDRiOGFlMTM5
Ny4uNTk5NGYzOTg2ODk3YmU2YmE0MTEyNmQ1MzAwNTc4MTYwM2U5ZmI1YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEzLTAzLTIyICBEYXZpZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisK
KyAgICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBv
ZiBwb2ludGVyIGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgKKworICAgICAg
ICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9t
ZWRpYS9tcS1wb2ludGVyLmh0bWw6CisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBlYWNoIHByaW1h
cnkgaW5wdXQgZGV2aWNlIHVzZSBjYXNlCisKIDIwMTMtMDMtMjIgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGZvciBhIGJ1bmNoIG9mIHNvZnR3YXJlY29tcG9zaXRpbmcgdGVzdHMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVkLnR4dAppbmRleCBj
ZjdhNjk1NmRkZWZmYjJkMzA1YjUzMDQ3NTkyMDNjZGFhYzRiYzEwLi5kMTZlNTAyNmI2OTBjMzNi
Y2VlMzJiM2IzYzNmOWY5Yjc3OGUzYWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtcG9pbnRlci1leHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTIgQEAgVGVzdCB0aGUgKHBvaW50
ZXIpIGFuZCAoaG92ZXIpIG1lZGlhIGZlYXR1cmVzLiBTZWUgQnVnIDg3NDAzIGZvciBkZXRhaWxz
LgogUXVlcnkgIihwb2ludGVyKSI6IGZhbHNlCiBRdWVyeSAiKFBvaW50ZXIpIjogZmFsc2UKIFF1
ZXJ5ICIocG9pbnRlcjpub25lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Tm9OZSkiOiBmYWxz
ZQogUXVlcnkgIihwb2ludGVyOmNvYXJzZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmNvQVJz
ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKIFF1ZXJ5ICIo
cG9pbnRlcjpmaW5lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6RmlOZSkiOiBmYWxzZQogUXVl
cnkgIihob3ZlcikiOiBmYWxzZQogUXVlcnkgIihob3ZlcjowKSI6IGZhbHNlCiBRdWVyeSAiKGhv
dmVyOjEpIjogZmFsc2UKQEAgLTE2LDEyICsxOCw1NiBAQCBRdWVyeSAiKGhvdmVyOmJvZ3VzdmFs
dWUpIjogZmFsc2UKIFF1ZXJ5ICIocG9pbnRlcikiOiB0cnVlCiBRdWVyeSAiKFBvaW50ZXIpIjog
dHJ1ZQogUXVlcnkgIihwb2ludGVyOm5vbmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpOb05l
KSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6Y29hcnNlKSI6IHRydWUKIFF1ZXJ5ICIocG9pbnRl
cjpjb0FSc2UpIjogdHJ1ZQogUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKIFF1
ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6RmlOZSkiOiBmYWxz
ZQogUXVlcnkgIihob3ZlcikiOiBmYWxzZQogUXVlcnkgIihob3ZlcjowKSI6IHRydWUKIFF1ZXJ5
ICIoaG92ZXI6MSkiOiBmYWxzZQogUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCist
LS0tLS0tLS0tLS0tIHdpdGggbW91c2UgLS0tLS0tLS0tLS0tLQorUXVlcnkgIihwb2ludGVyKSI6
IHRydWUKK1F1ZXJ5ICIoUG9pbnRlcikiOiB0cnVlCitRdWVyeSAiKHBvaW50ZXI6bm9uZSkiOiBm
YWxzZQorUXVlcnkgIihwb2ludGVyOk5vTmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpjb2Fy
c2UpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpjb0FSc2UpIjogZmFsc2UKK1F1ZXJ5ICIocG9p
bnRlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6ZmluZSkiOiB0cnVlCitR
dWVyeSAiKHBvaW50ZXI6RmlOZSkiOiB0cnVlCitRdWVyeSAiKGhvdmVyKSI6IHRydWUKK1F1ZXJ5
ICIoaG92ZXI6MCkiOiBmYWxzZQorUXVlcnkgIihob3ZlcjoxKSI6IHRydWUKK1F1ZXJ5ICIoaG92
ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQorLS0tLS0tLS0tLS0tLSB3aXRoIG5vIHBvaW50ZXIgLS0t
LS0tLS0tLS0tLQorUXVlcnkgIihwb2ludGVyKSI6IGZhbHNlCitRdWVyeSAiKFBvaW50ZXIpIjog
ZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpub25lKSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpOb05l
KSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpjb2Fyc2UpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRl
cjpjb0FSc2UpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCitR
dWVyeSAiKHBvaW50ZXI6ZmluZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOkZpTmUpIjogZmFs
c2UKK1F1ZXJ5ICIoaG92ZXIpIjogZmFsc2UKK1F1ZXJ5ICIoaG92ZXI6MCkiOiB0cnVlCitRdWVy
eSAiKGhvdmVyOjEpIjogZmFsc2UKK1F1ZXJ5ICIoaG92ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQor
LS0tLS0tLS0tLS0tLSB3aXRoIHVua25vd24gLS0tLS0tLS0tLS0tLQorUXVlcnkgIihwb2ludGVy
KSI6IGZhbHNlCitRdWVyeSAiKFBvaW50ZXIpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpub25l
KSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Tm9OZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVy
OmNvYXJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmNvQVJzZSkiOiBmYWxzZQorUXVlcnkg
Iihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZh
bHNlCitRdWVyeSAiKHBvaW50ZXI6RmlOZSkiOiBmYWxzZQorUXVlcnkgIihob3ZlcikiOiBmYWxz
ZQorUXVlcnkgIihob3ZlcjowKSI6IGZhbHNlCitRdWVyeSAiKGhvdmVyOjEpIjogZmFsc2UKK1F1
ZXJ5ICIoaG92ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21xLXBvaW50ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
cG9pbnRlci5odG1sCmluZGV4IDlhZDAxYTZmNWI3ZmUwZGI1OGJjMjA0ZGM3MzZmZGYwMjk1ODE5
NzAuLjk2MjE4NmUzNDdmOGUwZjU0MmI4NzU4NmVjMWQ5ZGI1YjEzMWNmZDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtcG9pbnRlci5odG1sCkBAIC0xOCwxMCArMTgsMTIgQEAKICAgICAgICAg
ICAgICIocG9pbnRlcikiLAogICAgICAgICAgICAgIihQb2ludGVyKSIsCiAgICAgICAgICAgICAi
KHBvaW50ZXI6bm9uZSkiLAorICAgICAgICAgICAgIihwb2ludGVyOk5vTmUpIiwKICAgICAgICAg
ICAgICIocG9pbnRlcjpjb2Fyc2UpIiwKICAgICAgICAgICAgICIocG9pbnRlcjpjb0FSc2UpIiwK
ICAgICAgICAgICAgICIocG9pbnRlcjpib2d1c3ZhbHVlKSIsCiAgICAgICAgICAgICAiKHBvaW50
ZXI6ZmluZSkiLAorICAgICAgICAgICAgIihwb2ludGVyOkZpTmUpIiwKICAgICAgICAgICAgICIo
aG92ZXIpIiwKICAgICAgICAgICAgICIoaG92ZXI6MCkiLAogICAgICAgICAgICAgIihob3Zlcjox
KSIsCkBAIC0zOCwxMCArNDAsMjcgQEAKICAgICAgICAgdGVzdFF1ZXJpZXMoKTsKIAogICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldERldmljZVN1cHBvcnRzVG91Y2godHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoJ3RvdWNoJyk7CiAKICAgICAgICAgICAgIGxv
ZygiLS0tLS0tLS0tLS0tLSB3aXRoIHRvdWNoIHNjcmVlbiAtLS0tLS0tLS0tLS0tIik7CiAgICAg
ICAgICAgICB0ZXN0UXVlcmllcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoJ21vdXNlJyk7CisKKyAgICAgICAg
ICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aXRoIG1vdXNlIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAg
ICAgICAgIHRlc3RRdWVyaWVzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRQcmltYXJ5UG9pbnRlckRldmljZSgnbm9uZScpOworCisgICAgICAgICAg
ICBsb2coIi0tLS0tLS0tLS0tLS0gd2l0aCBubyBwb2ludGVyIC0tLS0tLS0tLS0tLS0iKTsKKyAg
ICAgICAgICAgIHRlc3RRdWVyaWVzKCk7CisKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRQcmltYXJ5UG9pbnRlckRldmljZSgndW5rbm93bicpOworCisgICAgICAgICAgICBsb2co
Ii0tLS0tLS0tLS0tLS0gd2l0aCB1bmtub3duIC0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAg
IHRlc3RRdWVyaWVzKCk7CisKKwogICAgICAgICB9CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196359</attachid>
            <date>2013-04-03 08:47:27 -0700</date>
            <delta_ts>2013-04-08 15:44:27 -0700</delta_ts>
            <desc>Resolving merge conflicts</desc>
            <filename>bug-87806-20130403114716.patch</filename>
            <type>text/plain</type>
            <size>24816</size>
            <attacher name="David Bokan">bokan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVmNDc2ZDI5OThmYWYw
ZTlmMmY2MDU3YjRkMGMwM2JiNTUzZGQ3Mi4uMzJjMTVhYWZiZDQyMzFkNjIzYmQ3ZDNkM2NiMmFk
N2UzODEwYjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTA0LTAzICBEYXZp
ZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0
ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVyIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIG1xLXBvaW50ZXIu
aHRtbCB0ZXN0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAg
ICAgIENoYW5nZWQgcG9pbnRlciBhbmQgaG92ZXIgcXVlcmllcyB0byB1c2UgbmV3IEFQSQorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAg
ICAgICBBZGRlZCBuZXcgc2V0dGluZyBhbmQgZW51bSBmb3IgcHJpbWFyeSBwb2ludGVyIGRldmlj
ZQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICBDaGFuZ2VkIHBvcHVwIHJv
dyBoZWlnaHQgbG9naWMgdG8gdXNlIG5ldyBBUEkgY2FsbAorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKyAgICAgICAgRXhwb3Nl
ZCBuZXcgQVBJIGNhbGwKKwogMjAxMy0wNC0wMyAgVGFrZXNoaSBZb3NoaW5vICA8dHlvc2hpbm9A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZmluZSBMT0cgbWVzc2FnZXMgaW4gV2ViU29ja2V0
IHJlbGF0ZWQgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiZGRmNzU1
YTNmZjExMGJhZmZkMmFkNWFkMmNmMjc3ZDYzMWRhYmM2Li5iMDQ1YmQxYmUyMTIwOWQ4OGZkZGJh
MzQ0MDEzYmFiODlhNzU4MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEzLTA0LTAzICBEYXZpZCBCb2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0ZXJtaW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBw
b2ludGVyIGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NzgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICBDaGFuZ2VkIFdlYlBhZ2VQ
b3B1cCB0byB1c2UgbmV3IEFQSSBjYWxsCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6
CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlNl
dHRpbmdzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIEFk
ZGVkIHNldHRpbmcgZm9yIGRldGVybWluaW5nIHVzZXIncyBwcmltYXJ5IG1vZGUgb2YgcG9pbnRl
ciBpbnB1dAorCiAyMDEzLTA0LTAzICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBJbXBsZW1lbnQgdGFyZ2V0LWRlbnNpdHlEcGkg
dmlld3BvcnQgcHJvcGVydHkgZW11bGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKaW5kZXggYzJmYzBmNjE5Zjc0NDg0NGFmMzU3ZGI2ODk0MmNiODlkZDFk
ZTc3MC4uMGNiZTA4OWViMjI0OThhNGY4MTJkOGUyNTgwNWVhN2VkMmIxZjgwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNjk3LDMxICs2OTcsMTQg
QEAgc3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW0KIH0KICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RF
X0NTU19NRURJQSkKIAotZW51bSBQb2ludGVyRGV2aWNlVHlwZSB7IFRvdWNoUG9pbnRlciwgTW91
c2VQb2ludGVyLCBOb1BvaW50ZXIsIFVua25vd25Qb2ludGVyIH07Ci0KLXN0YXRpYyBQb2ludGVy
RGV2aWNlVHlwZSBsZWFzdENhcGFibGVQcmltYXJ5UG9pbnRlckRldmljZVR5cGUoRnJhbWUqIGZy
YW1lKQotewotICAgIGlmIChmcmFtZS0+c2V0dGluZ3MoKS0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgp
KQotICAgICAgICByZXR1cm4gVG91Y2hQb2ludGVyOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBhbHNvIHRyeSB0byBkZXRlcm1pbmUgaWYgd2Uga25vdyB3ZSBoYXZlIGEgbW91c2UuCi0gICAg
Ly8gV2hlbiB3ZSBkbyB0aGlzLCB3ZSdsbCBhbHNvIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuIGtub3duIG5vdCB0bwotICAgIC8vIGhhdmUgbW91c2Ugb3IgdG91Y2ggc2NyZWVuIChOb1Bv
aW50ZXIpIGFuZCB1bmtub3duIChVbmtub3duUG9pbnRlcikuCi0gICAgLy8gV2UgY291bGQgYWxz
byB0YWtlIGludG8gYWNjb3VudCBvdGhlciBwcmVmZXJlbmNlcyBsaWtlIGFjY2Vzc2liaWxpdHkK
LSAgICAvLyBzZXR0aW5ncyB0byBkZWNpZGUgd2hpY2ggb2YgdGhlIGF2YWlsYWJsZSBwb2ludGVy
cyBzaG91bGQgYmUgY29uc2lkZXJlZAotICAgIC8vICJwcmltYXJ5Ii4KLQotICAgIHJldHVybiBV
bmtub3duUG9pbnRlcjsKLX0KLQogc3RhdGljIGJvb2wgaG92ZXJNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVBy
ZWZpeCkKIHsKLSAgICBQb2ludGVyRGV2aWNlVHlwZSBwb2ludGVyID0gbGVhc3RDYXBhYmxlUHJp
bWFyeVBvaW50ZXJEZXZpY2VUeXBlKGZyYW1lKTsKKyAgICBQb2ludGVyRGV2aWNlIHBvaW50ZXIg
PSBmcmFtZS0+c2V0dGluZ3MoKS0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsKIAogICAgIC8vIElm
IHdlJ3JlIG9uIGEgcG9ydCB0aGF0IGhhc24ndCBleHBsaWNpdGx5IG9wdGVkIGludG8gcHJvdmlk
aW5nIHBvaW50ZXIgZGV2aWNlIGluZm9ybWF0aW9uCiAgICAgLy8gKG9yIG90aGVyd2lzZSBjYW4n
dCBiZSBjb25maWRlbnQgaW4gdGhlIHBvaW50ZXIgaGFyZHdhcmUgYXZhaWxhYmxlKSwgdGhlbiBi
ZWhhdmUgZXhhY3RseQogICAgIC8vIGFzIGlmIHRoaXMgZmVhdHVyZSBmZWF0dXJlIGlzbid0IHN1
cHBvcnRlZC4KLSAgICBpZiAocG9pbnRlciA9PSBVbmtub3duUG9pbnRlcikKKyAgICBpZiAocG9p
bnRlciA9PSBQb2ludGVyRGV2aWNlVW5rbm93bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgZmxvYXQgbnVtYmVyID0gMTsKQEAgLTczMCwzMSArNzEzLDMxIEBAIHN0YXRpYyBib29sIGhv
dmVyTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUq
IGZyYW1lLCBNCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJu
IChwb2ludGVyID09IE5vUG9pbnRlciAmJiAhbnVtYmVyKQotICAgICAgICB8fCAocG9pbnRlciA9
PSBUb3VjaFBvaW50ZXIgJiYgIW51bWJlcikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQ
b2ludGVyICYmIG51bWJlciA9PSAxKTsKKyAgICByZXR1cm4gKHBvaW50ZXIgPT0gUG9pbnRlckRl
dmljZU5vbmUgJiYgIW51bWJlcikKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0gUG9pbnRlckRldmlj
ZVRvdWNoICYmICFudW1iZXIpCisgICAgICAgIHx8IChwb2ludGVyID09IFBvaW50ZXJEZXZpY2VN
b3VzZSAmJiBudW1iZXIgPT0gMSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZlYXR1
cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlh
RmVhdHVyZVByZWZpeCkKIHsKLSAgICBQb2ludGVyRGV2aWNlVHlwZSBwb2ludGVyID0gbGVhc3RD
YXBhYmxlUHJpbWFyeVBvaW50ZXJEZXZpY2VUeXBlKGZyYW1lKTsKKyAgICBQb2ludGVyRGV2aWNl
IHBvaW50ZXIgPSBmcmFtZS0+c2V0dGluZ3MoKS0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsKIAog
ICAgIC8vIElmIHdlJ3JlIG9uIGEgcG9ydCB0aGF0IGhhc24ndCBleHBsaWNpdGx5IG9wdGVkIGlu
dG8gcHJvdmlkaW5nIHBvaW50ZXIgZGV2aWNlIGluZm9ybWF0aW9uCiAgICAgLy8gKG9yIG90aGVy
d2lzZSBjYW4ndCBiZSBjb25maWRlbnQgaW4gdGhlIHBvaW50ZXIgaGFyZHdhcmUgYXZhaWxhYmxl
KSwgdGhlbiBiZWhhdmUgZXhhY3RseQogICAgIC8vIGFzIGlmIHRoaXMgZmVhdHVyZSBmZWF0dXJl
IGlzbid0IHN1cHBvcnRlZC4KLSAgICBpZiAocG9pbnRlciA9PSBVbmtub3duUG9pbnRlcikKKyAg
ICBpZiAocG9pbnRlciA9PSBQb2ludGVyRGV2aWNlVW5rbm93bikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuIHBvaW50ZXIgIT0gTm9Qb2lu
dGVyOworICAgICAgICByZXR1cm4gcG9pbnRlciAhPSBQb2ludGVyRGV2aWNlTm9uZTsKIAogICAg
IGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgY29uc3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSktPmdldElkZW50KCk7Ci0gICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBpZCA9
PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgIHx8IChwb2ludGVyID09IFRvdWNoUG9pbnRlciAmJiBp
ZCA9PSBDU1NWYWx1ZUNvYXJzZSkKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVy
ICYmIGlkID09IENTU1ZhbHVlRmluZSk7CisgICAgcmV0dXJuIChwb2ludGVyID09IFBvaW50ZXJE
ZXZpY2VOb25lICYmIGlkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0g
UG9pbnRlckRldmljZVRvdWNoICYmIGlkID09IENTU1ZhbHVlQ29hcnNlKQorICAgICAgICB8fCAo
cG9pbnRlciA9PSBQb2ludGVyRGV2aWNlTW91c2UgJiYgaWQgPT0gQ1NTVmFsdWVGaW5lKTsKIH0K
IAogc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rpb25NYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmlu
ZGV4IDJhZGFlYWQzM2E2NzMxMDk0OTFjMWZhYTY2ZGQ5NzkxOWE2NTA2ZDIuLmZiNWVjZjEyZGU0
YjQ0ZTk2ODI3ZWNjMDAyMjZjODgxYmFjMDMyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAg
LTU3LDYgKzU3LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVGV4dERpcmVjdGlv
blN1Ym1lbnVBbHdheXNJbmNsdWRlZAogICAgIH07CiAKKyAgICAvLyBFbnVtIGZvciBwcmltYXJ5
IHBvaW50ZXIgZGV2aWNlIHRvIHRlbGwgV2ViS2l0IHdoYXQga2luZCBvZiBpbnB1dCB0aGUKKyAg
ICAvLyB1c2VyIGlzIHByaW1hcmlseSB1c2luZy4gTm90ZSB0aGF0IGl0J3Mgbm90IGFuIGluZGlj
YXRpb24gb2Ygd2hhdCdzIAorICAgIC8vIGF2YWlsYWJsZSBvbiB0aGUgdXNlcidzIHN5c3RlbS4K
KyAgICAvLyBlLmcuIFByaW1hcnkgcG9pbnRlciBtYXkgYmUgc2V0IHRvIFBvaW50ZXJEZXZpY2VN
b3VzZSBidXQgZGV2aWNlIGhhcworICAgIC8vIGEgbW91c2UgYW5kIGEgdG91Y2ggc2NyZWVuLgor
ICAgIGVudW0gUG9pbnRlckRldmljZSB7CisgICAgICAgIFBvaW50ZXJEZXZpY2VNb3VzZSwKKyAg
ICAgICAgUG9pbnRlckRldmljZVRvdWNoLAorICAgICAgICBQb2ludGVyRGV2aWNlTm9uZSwKKyAg
ICAgICAgUG9pbnRlckRldmljZVVua25vd24KKyAgICB9OworCiAgICAgLy8gVVNjcmlwdENvZGUg
dXNlcyAtMSBhbmQgMCBmb3IgVVNjcmlwdEludmFsaWRDb2RlIGFuZCBVU2NyaXB0Q29tbW9uLgog
ICAgIC8vIFdlIG5lZWQgdG8gdXNlIC0yIGFuZCAtMyBmb3IgZW1wdHkgdmFsdWUgYW5kIGRlbGV0
ZWQgdmFsdWUuCiAgICAgc3RydWN0IFVTY3JpcHRDb2RlSGFzaFRyYWl0cyA6IFdURjo6R2VuZXJp
Y0hhc2hUcmFpdHM8aW50PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCA4NDEzNGM4ZTAw
Zjc5OGU4NmM0ZTc2NzllZGNjMmQyZTgxNjUzMDU5Li43ZGFmZGVlNjI1NmMwNmZiNDAwOWFjMDA3
M2NiNzViN2MyYjdjMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE1Myw3ICsxNTMs
NyBAQCBuZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayBpbml0aWFsPWZhbHNlCiBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBpbml0aWFsPWZhbHNlCiB3YW50c0JhbGFuY2VkU2V0RGVm
ZXJzTG9hZGluZ0JlaGF2aW9yIGluaXRpYWw9ZmFsc2UKIHJlcXVlc3RBbmltYXRpb25GcmFtZUVu
YWJsZWQgaW5pdGlhbD10cnVlCi1kZXZpY2VTdXBwb3J0c1RvdWNoIGluaXRpYWw9ZmFsc2UKK2Rl
dmljZVN1cHBvcnRzVG91Y2ggaW5pdGlhbD1mYWxzZSAgICNGSVhNRTogUmVtb3ZlIHRoaXMgaHR0
cDovL3drYi51Zy8xMTI4NDcKIGRldmljZVN1cHBvcnRzTW91c2UgaW5pdGlhbD10cnVlCiAKICMg
Rm9yIHRvdWNoIGFkanVzdG1lbnQgdG8gYXBwbHksIHRoZSBjb21waWxlIG9wdGlvbiBUT1VDSF9B
REpVU1RNRU5UIG11c3QgYWxzbyBiZSBlbmFibGVkLgpAQCAtMTkyLDYgKzE5Miw4IEBAIHNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCiAjIGVuYWJsZWQsIHRoZSB1c2VyIGNh
biBpbml0aWF0ZSBkcmFnIHVzaW5nIGxvbmcgcHJlc3MuCiB0b3VjaERyYWdEcm9wRW5hYmxlZCBp
bml0aWFsPWZhbHNlCiAKK3ByaW1hcnlQb2ludGVyRGV2aWNlIHR5cGU9UG9pbnRlckRldmljZSwg
aW5pdGlhbD1Qb2ludGVyRGV2aWNlVW5rbm93bgorCiB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
IGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9nc1BhZ2VNZXNz
YWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5jcHAKaW5kZXggMzE4OGExMDIx
ZjQ4NWFkNjA5NWY1YjY0ZGY5ZTk1ZGJiZWU0OGQxMS4uNzcwMTY0MjAzMTk1ZTUzMTQ1MjA2YjQ5
YjRmNDRhNzRhY2NmOGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwCkBAIC02MjYsNyArNjI2LDcgQEAgdm9pZCBQb3B1cExpc3RC
b3g6OnNldE9yaWdpbmFsSW5kZXgoaW50IGluZGV4KQogaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93
SGVpZ2h0KGludCBpbmRleCkKIHsKICAgICBpbnQgbWluaW11bUhlaWdodCA9IFBvcHVwTWVudUNo
cm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCk7Ci0gICAgaWYgKG1fc2V0dGluZ3MuZGV2aWNlU3Vw
cG9ydHNUb3VjaCkKKyAgICBpZiAobV9zZXR0aW5ncy5wcmltYXJ5SW5wdXRJc1RvdWNoKQogICAg
ICAgICBtaW5pbXVtSGVpZ2h0ID0gbWF4KG1pbmltdW1IZWlnaHQsIFBvcHVwTWVudUNocm9taXVt
OjpvcHRpb25Sb3dIZWlnaHRGb3JUb3VjaCgpKTsKIAogICAgIGlmIChpbmRleCA8IDAgfHwgbV9w
b3B1cENsaWVudC0+aXRlbVN0eWxlKGluZGV4KS5pc0Rpc3BsYXlOb25lKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCmluZGV4IDY1NzVhZWU3
N2Y3Mjk5OWM5ZDAzZmE1YTU3ZjYyM2Q0ZWJmNTc2OTUuLjY3YmI2ZGYxYTZiYzBhZGE3YzA2YjYw
ODc1NDRhYzMxMTgzYTcwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5oCkBAIC04MSw5ICs4MSw5IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5l
clNldHRpbmdzIHsKICAgICAvLyBBdXRvY29tcGxldGUgcG9wdXBzIGFyZSByZXN0cmljdGVkLCBj
b21iby1ib3hlcyAoc2VsZWN0IHRhZ3MpIGFyZW4ndC4KICAgICBib29sIHJlc3RyaWN0V2lkdGhP
Zkxpc3RCb3g7CiAKLSAgICAvLyBJZiB0aGUgZGV2aWNlIGlzIGEgdG91Y2ggc2NyZWVuIHdlIGlu
Y3JlYXNlIHRoZSBoZWlnaHQgb2YgbWVudSBpdGVtcworICAgIC8vIElmIHRoZSBwcmltYXJ5IGlu
cHV0IGlzIGEgdG91Y2ggc2NyZWVuIHdlIGluY3JlYXNlIHRoZSBoZWlnaHQgb2YgbWVudSBpdGVt
cwogICAgIC8vIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuYW1iaWd1b3VzbHkgdG91Y2ggdGhlbS4K
LSAgICBib29sIGRldmljZVN1cHBvcnRzVG91Y2g7CisgICAgYm9vbCBwcmltYXJ5SW5wdXRJc1Rv
dWNoOwogfTsKIAogY2xhc3MgUG9wdXBDb250ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAwZTQ4ZmZk
MGYzZDk5MGM0ODBmOTRkODYyZDM2ODY3YmMxMjQzNzAyLi4yZmNmMzA0ZGEwYmRjMGE2ZjlmZjZm
ODBkYTFmZTE0MDc0MGY0NDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQg
UG9wdXBNZW51Q2hyb21pdW06OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiBm
cmFtZVZpZXcsIGludCBpbmRlCiAgICAgaWYgKCFwLnBvcHVwKSB7CiAgICAgICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpOwogICAg
ICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBkcm9wRG93blNldHRp
bmdzOwotICAgICAgICBwb3B1cFNldHRpbmdzLmRldmljZVN1cHBvcnRzVG91Y2ggPSBzZXR0aW5n
cy0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgpOworICAgICAgICBwb3B1cFNldHRpbmdzLnByaW1hcnlJ
bnB1dElzVG91Y2ggPSBzZXR0aW5ncy0+cHJpbWFyeVBvaW50ZXJEZXZpY2UoKSA9PSBQb2ludGVy
RGV2aWNlVG91Y2g7CiAgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNs
aWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdzKTsKICAgICB9CiAg
ICAgcC5wb3B1cC0+c2hvd0luUmVjdChyZWN0LCBmcmFtZVZpZXcsIGluZGV4KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDZjM2Q3ODhkZTZiYzI3
Y2U4ZjQ2ZmI1ODljZWMyNmEwYzZhYjc5MWYuLmE5NDFjZDE0ZjY3ZDc0MTlkNGY1MGZhMzc3NGYw
OWNlYmJjNGQxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcApAQCAtNDk5LDQgKzQ5OSwyMSBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFVzZUxl
Z2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoYm9vbCBlbmFibGVkLAogICAgIHNl
dHRpbmdzKCktPnNldFVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoZW5h
YmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UHJpbWFyeVBvaW50ZXJEZXZp
Y2UoY29uc3QgU3RyaW5nJiBwb2ludGVyRGV2aWNlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworCisgICAgaWYgKHBvaW50ZXJE
ZXZpY2UgPT0gIm1vdXNlIikKKyAgICAgICAgc2V0dGluZ3MoKS0+c2V0UHJpbWFyeVBvaW50ZXJE
ZXZpY2UoUG9pbnRlckRldmljZU1vdXNlKTsKKyAgICBlbHNlIGlmIChwb2ludGVyRGV2aWNlID09
ICJ0b3VjaCIpCisgICAgICAgIHNldHRpbmdzKCktPnNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBv
aW50ZXJEZXZpY2VUb3VjaCk7CisgICAgZWxzZSBpZiAocG9pbnRlckRldmljZSA9PSAibm9uZSIp
CisgICAgICAgIHNldHRpbmdzKCktPnNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZp
Y2VOb25lKTsKKyAgICBlbHNlIGlmIChwb2ludGVyRGV2aWNlID09ICJ1bmtub3duIikgCisgICAg
ICAgIHNldHRpbmdzKCktPnNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZpY2VVbmtu
b3duKTsKKyAgICBlbHNlCisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKK30KKwogfQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDFkYjg4MzM1Mjg3YWMw
ZDgwMWJkMTEyNmY1OTAwMTQ1NjNmNTMyNDEuLjIyYjYwZjAwNDZlNGRlMDdhZjJlMjhiM2ZiMzJm
ZDg1Njg2MmVhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGVmYXVsdFZpZGVvUG9z
dGVyVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRU
aW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhkb3VibGUgdGltZSwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9y
dGhhbmRCZWhhdmlvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dFByaW1hcnlQb2ludGVyRGV2aWNlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNldHRpbmdzKFBhZ2UqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDliOWRlMzhmMjAxYjcz
MzRiNDNhNjY4ODY1OWZiNTU2ZjFkOWFjOTkuLjEwNWE1NzVkZDNhYTY2ZDNhMzk0MGIzM2U1Y2Mx
MzY4NTUyYjlhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbApAQCAtNTEsNiArNTEsNyBAQAogICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGluIERP
TVN0cmluZyBiZWhhdmlvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXREaWFs
b2dFbGVtZW50RW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIHZvaWQgc2V0TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKTsKKyAgICB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNlKGluIERP
TVN0cmluZyBwb2ludGVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICBbQ29uZGl0aW9u
YWw9VklERU9fVFJBQ0tdIHZvaWQgc2V0U2hvdWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJp
bmcga2luZCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAg
W0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBib29sZWFuIHNob3VsZERpc3BsYXlUcmFja0tpbmQo
aW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZTE0NmE5ZmNhNzhiZDAw
NTliYmVhMTM0M2I0MGFjMTViYjk5NjZjMS4uMDA0ZmQzYTM1MzQ0Zjg3YWIyYzc0YThjYzk0Zjli
ZDQ0ZTRhMzI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oCkBAIC01Miw2ICs1MiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIEVkaXRpbmdCZWhhdmlvckFu
ZHJvaWQKICAgICB9OwogCisgICAgZW51bSBQb2ludGVyRGV2aWNlIHsKKyAgICAgICAgUG9pbnRl
ckRldmljZU1vdXNlLAorICAgICAgICBQb2ludGVyRGV2aWNlVG91Y2gsCisgICAgICAgIFBvaW50
ZXJEZXZpY2VOb25lLAorICAgICAgICBQb2ludGVyRGV2aWNlVW5rbm93bgorICAgIH07CisKICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCB2aWV3cG9ydEVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKQEAgLTkxLDcgKzk4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFi
bGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9v
bCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7IC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8vd2tiLnVnLzExMjg0NwogICAgIHZpcnR1YWwgdm9p
ZCBzZXREb3VibGVUYXBUb1pvb21FbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmUoKSA9IDA7CkBAIC0xMzksNiAr
MTQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJUaWxlUGFpbnRpbmdFbmFi
bGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGljdG9ncmFwaEZvbnRGYW1pbHko
Y29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFByaW1hcnlQb2ludGVyRGV2aWNlKFBvaW50ZXJEZXZpY2UpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJWU3luY05vdGlmaWNhdGlvbkVuYWJsZWQoYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0
cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKaW5kZXggNGNiYmNiMDg4M2Ux
ZTc3NTBjNWNlZTEwZmZjZTEwMjI1MWQ0NzQ2MC4uNmQ4ZjMyMmRhYjUzYjYzNGM5NDIwYTllMmY4
NWNjOTcwMjBiYjM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQCBib29sIFdlYlBhZ2VQb3B1cEltcGw6
OmluaXRpYWxpemVQYWdlKCkKICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEFsbG93U2NyaXB0
c1RvQ2xvc2VXaW5kb3dzKHRydWUpOwogICAgIG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3Io
bV93ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICBtX3BhZ2UtPnNldHRpbmdzKCkt
PnNldERldmljZVN1cHBvcnRzVG91Y2gobV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPmRl
dmljZVN1cHBvcnRzVG91Y2goKSk7CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRQcmltYXJ5
UG9pbnRlckRldmljZShtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cHJpbWFyeVBvaW50
ZXJEZXZpY2UoKSk7CiAKICAgICB1bnNpZ25lZCBsYXlvdXRNaWxlc3RvbmVzID0gRGlkRmlyc3RM
YXlvdXQgfCBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CiAgICAgbV9wYWdlLT5hZGRM
YXlvdXRNaWxlc3RvbmVzKHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9uZXM+KGxheW91dE1pbGVz
dG9uZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IDhkYjk2ZGM3NzZiOTQ4NTkzMmU2MTQxMzUyNWI3ZTI1ZGQwOGYzZGUuLjVjNDFh
MjBkOTlhNDFjMjY2NjIwMDdmYmQxZjNlNzk3YzcyNDQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKGludCBzaXplKQog
ICAgIG1fc2V0dGluZ3MtPnNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUoc2l6ZSk7CiB9CiAKKy8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8vd2tiLnVnLzExMjg0Nwogdm9pZCBXZWJTZXR0aW5n
c0ltcGw6OnNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKQog
ewogICAgIG1fc2V0dGluZ3MtPnNldERldmljZVN1cHBvcnRzVG91Y2goZGV2aWNlU3VwcG9ydHNU
b3VjaCk7CkBAIC0xNDIsNiArMTQzLDExIEBAIGJvb2wgV2ViU2V0dGluZ3NJbXBsOjpkZXZpY2VT
dXBwb3J0c1RvdWNoKCkKICAgICByZXR1cm4gbV9zZXR0aW5ncy0+ZGV2aWNlU3VwcG9ydHNUb3Vj
aCgpOwogfQogCitXZWJTZXR0aW5nczo6UG9pbnRlckRldmljZSBXZWJTZXR0aW5nc0ltcGw6OnBy
aW1hcnlQb2ludGVyRGV2aWNlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViU2V0dGlu
Z3M6OlBvaW50ZXJEZXZpY2U+KG1fc2V0dGluZ3MtPnByaW1hcnlQb2ludGVyRGV2aWNlKCkpOwor
fQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcihib29sIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IpCiB7CiAgICAg
bV9zZXR0aW5ncy0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihhcHBseURl
dmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKTsKQEAgLTIyNSw2ICsyMzEsMTIgQEAgdm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldFBsdWdpbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3Nl
dHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGVkKTsKIH0KIAorCit2b2lkIFdlYlNldHRp
bmdzSW1wbDo6c2V0UHJpbWFyeVBvaW50ZXJEZXZpY2UoUG9pbnRlckRldmljZSBkZXZpY2UpCit7
CisgICAgbV9zZXR0aW5ncy0+c2V0UHJpbWFyeVBvaW50ZXJEZXZpY2Uoc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6UG9pbnRlckRldmljZT4oZGV2aWNlKSk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBs
OjpzZXRET01QYXN0ZUFsbG93ZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fc2V0dGluZ3MtPnNl
dERPTVBhc3RlQWxsb3dlZChlbmFibGVkKTsKQEAgLTc0Nyw0ICs3NTksOSBAQCB2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAg
ICBtX3NldHRpbmdzLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7CiB9CiAK
K0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZp
Y2VNb3VzZSkgPT0gc3RhdGljX2Nhc3Q8aW50PihXZWJDb3JlOjpQb2ludGVyRGV2aWNlTW91c2Up
LCBtaXNtYXRjaGVkX2VudW1zKTsKK0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV2Vi
U2V0dGluZ3M6OlBvaW50ZXJEZXZpY2VUb3VjaCkgPT0gc3RhdGljX2Nhc3Q8aW50PihXZWJDb3Jl
OjpQb2ludGVyRGV2aWNlVG91Y2gpLCBtaXNtYXRjaGVkX2VudW1zKTsKK0NPTVBJTEVfQVNTRVJU
KHN0YXRpY19jYXN0PGludD4oV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2VOb25lKSA9PSBzdGF0
aWNfY2FzdDxpbnQ+KFdlYkNvcmU6OlBvaW50ZXJEZXZpY2VOb25lKSwgbWlzbWF0Y2hlZF9lbnVt
cyk7CitDT01QSUxFX0FTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KFdlYlNldHRpbmdzOjpQb2ludGVy
RGV2aWNlVW5rbm93bikgPT0gc3RhdGljX2Nhc3Q8aW50PihXZWJDb3JlOjpQb2ludGVyRGV2aWNl
VW5rbm93biksIG1pc21hdGNoZWRfZW51bXMpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNjZkNjZk
ODNkNzA0OWEyYmViZTFlNDVlNWQyMGQwYjNkODBkOGU1OS4uNWE0ZDlhZDExNjQxNGI3ZmI4Y2Fl
NDRjYjQ3MmZjZTAxODk1NTQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldl
YlNldHRpbmdzSW1wbCgpIHsgfQogCiAgICAgdmlydHVhbCBib29sIGRldmljZVN1cHBvcnRzVG91
Y2goKTsKKyAgICB2aXJ0dWFsIFBvaW50ZXJEZXZpY2UgcHJpbWFyeVBvaW50ZXJEZXZpY2UoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIHZpZXdwb3J0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRFbmFi
bGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJv
b2wpOwpAQCAtODQsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVy
cmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBv
cnRzTW91c2UoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2go
Ym9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCk7IC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBodHRwOi8vd2tiLnVnLzExMjg0NwogICAgIHZpcnR1YWwgdm9p
ZCBzZXREb3VibGVUYXBUb1pvb21FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRE
b3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEVkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlKCk7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQaWN0b2dyYXBoRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcm
LCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1
Z2luc0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFByaW1hcnlQb2ludGVyRGV2
aWNlKFBvaW50ZXJEZXZpY2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xF
eHRlbnNpb25zRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNO
b3RpZmljYXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZG
b250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGRkNzMy
ZjUxMzZjOTQwZjEyOGMyYjEyYzJlM2QxMDZhNWZjMGViMzAuLjgxNGEzYmU3ZjZiNWI3YmNmZjJj
N2E2YjBkYjEzYmVkMDEzMDkxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTM1NDUsNyArMzU0NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5
QXV0b2ZpbGxTdWdnZXN0aW9ucygKIAogICAgIGlmICghbV9hdXRvZmlsbFBvcHVwKSB7CiAgICAg
ICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGF1dG9maWxsUG9wdXBT
ZXR0aW5nczsKLSAgICAgICAgcG9wdXBTZXR0aW5ncy5kZXZpY2VTdXBwb3J0c1RvdWNoID0gc2V0
dGluZ3NJbXBsKCktPmRldmljZVN1cHBvcnRzVG91Y2goKTsKKyAgICAgICAgcG9wdXBTZXR0aW5n
cy5wcmltYXJ5SW5wdXRJc1RvdWNoID0gc2V0dGluZ3NJbXBsKCktPnByaW1hcnlQb2ludGVyRGV2
aWNlKCkgPT0gV2ViU2V0dGluZ3M6OlBvaW50ZXJEZXZpY2VUb3VjaDsKICAgICAgICAgbV9hdXRv
ZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShtX2F1dG9maWxsUG9wdXBDbGllbnQu
Z2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9wdXBTZXR0aW5ncyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2NmMjVlMjUwNjc0
Y2FlNzE2ODAzZjgxZDI5OWFiODc5ZDZlY2MxMy4uZmJlZDRjZjg3MmI2MWQxYjU5OWFmYjM3YmZl
MmQ4NzRhY2Y3MDA4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA0LTAzICBEYXZpZCBC
b2thbiAgPGJva2FuQGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIEFQSSBmb3IgZGV0ZXJt
aW5pbmcgdXNlcidzIHByaW1hcnkgbW9kZSBvZiBwb2ludGVyIGlucHV0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1wb2ludGVy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXBvaW50ZXIuaHRtbDoKKyAg
ICAgICAgQWRkZWQgdGVzdHMgZm9yIGVhY2ggcHJpbWFyeSBpbnB1dCBkZXZpY2UgdXNlIGNhc2UK
KwogMjAxMy0wNC0wMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGNyYXNoIGluIFdlYkNvcmU6Okluc3BlY3RvckxheWVyVHJlZUFn
ZW50OjpidWlsZE9iamVjdEZvckxheWVyIGlmIGEgbGF5ZXIgaXMgY3JlYXRlZCBmb3IgYW4gYW5v
bnltb3VzIFJlbmRlck9iamVjdCAoOmZpcnN0LWxldHRlcikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0CmluZGV4IGNmN2E2OTU2ZGRlZmZiMmQzMDVi
NTMwNDc1OTIwM2NkYWFjNGJjMTAuLmQxNmU1MDI2YjY5MGMzM2JjZWUzMmIzYjNjM2Y5ZjliNzc4
ZTNhZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVk
LnR4dApAQCAtNCwxMCArNCwxMiBAQCBUZXN0IHRoZSAocG9pbnRlcikgYW5kIChob3ZlcikgbWVk
aWEgZmVhdHVyZXMuIFNlZSBCdWcgODc0MDMgZm9yIGRldGFpbHMuCiBRdWVyeSAiKHBvaW50ZXIp
IjogZmFsc2UKIFF1ZXJ5ICIoUG9pbnRlcikiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOm5vbmUp
IjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpOb05lKSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6
Y29hcnNlKSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6Y29BUnNlKSI6IGZhbHNlCiBRdWVyeSAi
KHBvaW50ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmZpbmUpIjogZmFs
c2UKK1F1ZXJ5ICIocG9pbnRlcjpGaU5lKSI6IGZhbHNlCiBRdWVyeSAiKGhvdmVyKSI6IGZhbHNl
CiBRdWVyeSAiKGhvdmVyOjApIjogZmFsc2UKIFF1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQpAQCAt
MTYsMTIgKzE4LDU2IEBAIFF1ZXJ5ICIoaG92ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkg
Iihwb2ludGVyKSI6IHRydWUKIFF1ZXJ5ICIoUG9pbnRlcikiOiB0cnVlCiBRdWVyeSAiKHBvaW50
ZXI6bm9uZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOk5vTmUpIjogZmFsc2UKIFF1ZXJ5ICIo
cG9pbnRlcjpjb2Fyc2UpIjogdHJ1ZQogUXVlcnkgIihwb2ludGVyOmNvQVJzZSkiOiB0cnVlCiBR
dWVyeSAiKHBvaW50ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQogUXVlcnkgIihwb2ludGVyOmZpbmUp
IjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpGaU5lKSI6IGZhbHNlCiBRdWVyeSAiKGhvdmVyKSI6
IGZhbHNlCiBRdWVyeSAiKGhvdmVyOjApIjogdHJ1ZQogUXVlcnkgIihob3ZlcjoxKSI6IGZhbHNl
CiBRdWVyeSAiKGhvdmVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKKy0tLS0tLS0tLS0tLS0gd2l0aCBt
b3VzZSAtLS0tLS0tLS0tLS0tCitRdWVyeSAiKHBvaW50ZXIpIjogdHJ1ZQorUXVlcnkgIihQb2lu
dGVyKSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpub25lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50
ZXI6Tm9OZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmNvYXJzZSkiOiBmYWxzZQorUXVlcnkg
Iihwb2ludGVyOmNvQVJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjog
ZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IHRydWUKK1F1ZXJ5ICIocG9pbnRlcjpGaU5l
KSI6IHRydWUKK1F1ZXJ5ICIoaG92ZXIpIjogdHJ1ZQorUXVlcnkgIihob3ZlcjowKSI6IGZhbHNl
CitRdWVyeSAiKGhvdmVyOjEpIjogdHJ1ZQorUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZh
bHNlCistLS0tLS0tLS0tLS0tIHdpdGggbm8gcG9pbnRlciAtLS0tLS0tLS0tLS0tCitRdWVyeSAi
KHBvaW50ZXIpIjogZmFsc2UKK1F1ZXJ5ICIoUG9pbnRlcikiOiBmYWxzZQorUXVlcnkgIihwb2lu
dGVyOm5vbmUpIjogdHJ1ZQorUXVlcnkgIihwb2ludGVyOk5vTmUpIjogdHJ1ZQorUXVlcnkgIihw
b2ludGVyOmNvYXJzZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmNvQVJzZSkiOiBmYWxzZQor
UXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5l
KSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6RmlOZSkiOiBmYWxzZQorUXVlcnkgIihob3Zlciki
OiBmYWxzZQorUXVlcnkgIihob3ZlcjowKSI6IHRydWUKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxz
ZQorUXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCistLS0tLS0tLS0tLS0tIHdpdGgg
dW5rbm93biAtLS0tLS0tLS0tLS0tCitRdWVyeSAiKHBvaW50ZXIpIjogZmFsc2UKK1F1ZXJ5ICIo
UG9pbnRlcikiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOm5vbmUpIjogZmFsc2UKK1F1ZXJ5ICIo
cG9pbnRlcjpOb05lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Y29hcnNlKSI6IGZhbHNlCitR
dWVyeSAiKHBvaW50ZXI6Y29BUnNlKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Ym9ndXN2YWx1
ZSkiOiBmYWxzZQorUXVlcnkgIihwb2ludGVyOmZpbmUpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRl
cjpGaU5lKSI6IGZhbHNlCitRdWVyeSAiKGhvdmVyKSI6IGZhbHNlCitRdWVyeSAiKGhvdmVyOjAp
IjogZmFsc2UKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQorUXVlcnkgIihob3Zlcjpib2d1c3Zh
bHVlKSI6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9p
bnRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKaW5kZXgg
OWFkMDFhNmY1YjdmZTBkYjU4YmMyMDRkYzczNmZkZjAyOTU4MTk3MC4uOTYyMTg2ZTM0N2Y4ZTBm
NTQyYjg3NTg2ZWMxZDlkYjViMTMxY2ZkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tcS1wb2ludGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2lu
dGVyLmh0bWwKQEAgLTE4LDEwICsxOCwxMiBAQAogICAgICAgICAgICAgIihwb2ludGVyKSIsCiAg
ICAgICAgICAgICAiKFBvaW50ZXIpIiwKICAgICAgICAgICAgICIocG9pbnRlcjpub25lKSIsCisg
ICAgICAgICAgICAiKHBvaW50ZXI6Tm9OZSkiLAogICAgICAgICAgICAgIihwb2ludGVyOmNvYXJz
ZSkiLAogICAgICAgICAgICAgIihwb2ludGVyOmNvQVJzZSkiLAogICAgICAgICAgICAgIihwb2lu
dGVyOmJvZ3VzdmFsdWUpIiwKICAgICAgICAgICAgICIocG9pbnRlcjpmaW5lKSIsCisgICAgICAg
ICAgICAiKHBvaW50ZXI6RmlOZSkiLAogICAgICAgICAgICAgIihob3ZlcikiLAogICAgICAgICAg
ICAgIihob3ZlcjowKSIsCiAgICAgICAgICAgICAiKGhvdmVyOjEpIiwKQEAgLTM4LDEwICs0MCwy
NyBAQAogICAgICAgICB0ZXN0UXVlcmllcygpOwogCiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RGV2aWNlU3VwcG9ydHNU
b3VjaCh0cnVlKTsKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcmltYXJ5UG9p
bnRlckRldmljZSgndG91Y2gnKTsKIAogICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0tLS0tIHdp
dGggdG91Y2ggc2NyZWVuIC0tLS0tLS0tLS0tLS0iKTsKICAgICAgICAgICAgIHRlc3RRdWVyaWVz
KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcmlt
YXJ5UG9pbnRlckRldmljZSgnbW91c2UnKTsKKworICAgICAgICAgICAgbG9nKCItLS0tLS0tLS0t
LS0tIHdpdGggbW91c2UgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgdGVzdFF1ZXJpZXMo
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaW1h
cnlQb2ludGVyRGV2aWNlKCdub25lJyk7CisKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0t
LSB3aXRoIG5vIHBvaW50ZXIgLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgdGVzdFF1ZXJp
ZXMoKTsKKworICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaW1hcnlQb2ludGVy
RGV2aWNlKCd1bmtub3duJyk7CisKKyAgICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aXRo
IHVua25vd24gLS0tLS0tLS0tLS0tLSIpOworICAgICAgICAgICAgdGVzdFF1ZXJpZXMoKTsKKwor
CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>