<?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>169870</bug_id>
          
          <creation_ts>2017-03-19 18:44:01 -0700</creation_ts>
          <short_desc>[MediaStream] Respect constraints passed to getUserMedia</short_desc>
          <delta_ts>2017-03-30 09:15:25 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1289427</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-19 18:44:01 -0700</bug_when>
    <thetext>The fitness score calculated for constraints passed to getUserMedia is not used when selecting between multiple devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289428</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-19 18:45:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/31138936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289429</commentid>
    <comment_count>2</comment_count>
      <attachid>304910</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-19 19:03:12 -0700</bug_when>
    <thetext>Created attachment 304910
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289481</commentid>
    <comment_count>3</comment_count>
      <attachid>304910</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-20 09:56:40 -0700</bug_when>
    <thetext>Comment on attachment 304910
Proposed patch.

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

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:31
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Is this an expected failure?

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:38
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Ditto

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:64
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Ditto

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:71
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Ditto

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:97
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Ditto

&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:104
&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.

Ditto. 

If so, we should come up with a way of reporting it as a &quot;PASS, failed expectedly.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289482</commentid>
    <comment_count>4</comment_count>
      <attachid>304910</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-20 10:03:13 -0700</bug_when>
    <thetext>Comment on attachment 304910
Proposed patch.

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

&gt;&gt; LayoutTests/fast/mediastream/MediaDevices-enumerateDevices-expected.txt:104
&gt;&gt; +FAIL deviceIds.indexOf(captureDevice.deviceId) should not be -1.
&gt; 
&gt; Ditto. 
&gt; 
&gt; If so, we should come up with a way of reporting it as a &quot;PASS, failed expectedly.&quot;

Oops, I need to update the test and results now that there are four mock devices. Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289488</commentid>
    <comment_count>5</comment_count>
      <attachid>304929</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-20 10:12:38 -0700</bug_when>
    <thetext>Created attachment 304929
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289509</commentid>
    <comment_count>6</comment_count>
      <attachid>304929</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-20 10:55:24 -0700</bug_when>
    <thetext>Comment on attachment 304929
Patch for landing.

Clearing flags on attachment: 304929

Committed r214178: &lt;http://trac.webkit.org/changeset/214178&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304910</attachid>
            <date>2017-03-19 19:03:12 -0700</date>
            <delta_ts>2017-03-30 09:15:25 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>gum_constraints_patch.txt</filename>
            <type>text/plain</type>
            <size>38351</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE3LTAzLTE5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVzcGVjdCBjb25zdHJhaW50cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk4NzAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMxMTM4OTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgUmVtZW1iZXIgdGhlIGZpdG5lc3Mgc2NvcmUgY2FsY3VsYXRl
ZCB3aGVuIGV2YWx1YXRpbmcgY29uc3RyYWludHMgcGFzc2VkIHRvIGdldFVzZXJNZWRpYSwgc28K
KyAgICAgICAgdGhlIGJlc3QgZGV2aWNlIGlzIGNob3NlbiB3aGVuIG1vcmUgdGhhbiBvbmUgZGV2
aWNlIHN1cHBvcnRzIHRoZSBjb25zdHJhaW50cy4gUmVnaXN0ZXIgdHdvCisgICAgICAgIG1vY2sg
dmlkZW8gYW5kIHR3byBtb2NrIGF1ZGlvIGRldmljZXMgd2l0aCBkaWZmZXJlbnQgY2FwYWJpbGl0
aWVzIHNvIHRoZXNlIGNoYW5nZXMgY2FuIAorICAgICAgICBiZSB0ZXN0ZWQuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBleGlzdGluZyB0ZXN0cyB1cGRhdGVkLgorCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyk6IFN0b3JlIGZpdG5lc3Mgc2Nv
cmUgaW4gbV9maXRuZXNzU2NvcmUuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZSk6IERvbid0IGFzc3VtZSBzYW1wbGVS
YXRlIGlzIDQ0LjFLCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1h
Yzo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOiBVc2Ugc2FtcGxlUmF0ZSgpIGluc3RlYWQgb2YgbV9zYW1w
bGVSYXRlLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OnJl
Y29uZmlndXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYzo6cmVuZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZU1hYzo6YXBwbHlTYW1wbGVSYXRlKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp1cGRhdGVTZXR0aW5ncyk6IERvbid0IGFzc3VtZSBz
YW1wbGVSYXRlIGlzIDQ0LjFLCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGllcyk6IFN1cHBvcnQgYSByYW5nZSBvZiBzYW1wbGUg
cmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQ
cm9kdWNpbmdEYXRhKTogSW5pdGlhbGl6ZSBzYW1wbGVSYXRlIGlmIGl0IGhhc24ndAorICAgICAg
ICBhbHJlYWR5IGJlZW4gc2V0LgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXVkaW9EZXZpY2VzKTogUmV0dXJuIGFuIGFycmF5IG9mIGRldmljZXMuCisgICAgICAg
IChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
Om1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJRCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja1ZpZGVvU291cmNlUGVyc2lzdGVudElEKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjptb2Nr
QXVkaW9Tb3VyY2VOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlOjptb2NrVmlkZW9Tb3VyY2VOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb0RldmljZUluZm8pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNl
SW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVh
bURldmljZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlKToKKwogMjAxNy0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBzZWxmLm9yaWdpbgpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAJKHJldmlzaW9uIDIxNDEyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NDgsNyArNTQ4LDcgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5n
cwogICAgIC8vIDUuMSBjb21wdXRlIHRoZSBmaXRuZXNzIGRpc3RhbmNlIGJldHdlZW4gaXQgYW5k
IGVhY2ggc2V0dGluZ3MgZGljdGlvbmFyeSBpbiBjYW5kaWRhdGVzLCB0cmVhdGluZyBiYXJlCiAg
ICAgLy8gICAgIHZhbHVlcyBvZiBwcm9wZXJ0aWVzIGFzIGV4YWN0LgogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8ZG91YmxlLCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4+IHN1cHBvcnRlZENvbnN0
cmFpbnRzOwotICAgIGRvdWJsZSBtaW5pbXVtRGlzdGFuY2UgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgbV9maXRuZXNzU2NvcmUgPSBzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGFkdmFu
Y2VkQ29uc3RyYWludCA6IGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMoKSkgewogICAg
ICAgICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gMDsKQEAgLTU2MSw4ICs1NjEsOCBAQCBi
b29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzCiAgICAgICAgICAgICAgICAg
c3VwcG9ydGVkID0gdHJ1ZTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaWYgKGNvbnN0cmFpbnRE
aXN0YW5jZSA8IG1pbmltdW1EaXN0YW5jZSkKLSAgICAgICAgICAgIG1pbmltdW1EaXN0YW5jZSA9
IGNvbnN0cmFpbnREaXN0YW5jZTsKKyAgICAgICAgaWYgKGNvbnN0cmFpbnREaXN0YW5jZSA8IG1f
Zml0bmVzc1Njb3JlKQorICAgICAgICAgICAgbV9maXRuZXNzU2NvcmUgPSBjb25zdHJhaW50RGlz
dGFuY2U7CiAKICAgICAgICAgLy8gNS4yIElmIHRoZSBmaXRuZXNzIGRpc3RhbmNlIGlzIGZpbml0
ZSBmb3Igb25lIG9yIG1vcmUgc2V0dGluZ3MgZGljdGlvbmFyaWVzIGluIGNhbmRpZGF0ZXMsIGtl
ZXAgdGhvc2UKICAgICAgICAgLy8gICAgIHNldHRpbmdzIGRpY3Rpb25hcmllcyBpbiBjYW5kaWRh
dGVzLCBkaXNjYXJkaW5nIG90aGVycy4KQEAgLTU3Myw5ICs1NzMsOSBAQCBib29sIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzCiAKICAgICAvLyA2LiBTZWxlY3Qgb25lIHNldHRp
bmdzIGRpY3Rpb25hcnkgZnJvbSBjYW5kaWRhdGVzLCBhbmQgcmV0dXJuIGl0IGFzIHRoZSByZXN1
bHQgb2YgdGhlIFNlbGVjdFNldHRpbmdzKCkgYWxnb3JpdGhtLgogICAgIC8vICAgIFRoZSBVQSBz
aG91bGQgdXNlIHRoZSBvbmUgd2l0aCB0aGUgc21hbGxlc3QgZml0bmVzcyBkaXN0YW5jZSwgYXMg
Y2FsY3VsYXRlZCBpbiBzdGVwIDMuCi0gICAgaWYgKCFzdGQ6OmlzaW5mKG1pbmltdW1EaXN0YW5j
ZSkpIHsKKyAgICBpZiAoIXN0ZDo6aXNpbmYobV9maXRuZXNzU2NvcmUpKSB7CiAgICAgICAgIHN1
cHBvcnRlZENvbnN0cmFpbnRzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShjb25zdCBzdGQ6OnBhaXI8
ZG91YmxlLCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4mIHBhaXIpIC0+IGJvb2wgewotICAg
ICAgICAgICAgcmV0dXJuIHBhaXIuZmlyc3QgPiBtaW5pbXVtRGlzdGFuY2U7CisgICAgICAgICAg
ICByZXR1cm4gcGFpci5maXJzdCA+IG1fZml0bmVzc1Njb3JlOwogICAgICAgICB9KTsKIAogICAg
ICAgICBpZiAoIXN1cHBvcnRlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkgewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAkocmV2aXNpb24gMjE0MTI5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYs
NyArMTA2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBm
aXRuZXNzU2NvcmUoKSBjb25zdCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXRGaXRuZXNzU2NvcmUoY29uc3QgdW5zaWduZWQgZml0bmVzc1Njb3JlKSB7IG1f
Zml0bmVzc1Njb3JlID0gZml0bmVzc1Njb3JlOyB9CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3QgPSAwOwpAQCAtMjE5LDcgKzIxOCw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fdm9s
dW1lIHsgMSB9OwogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGUgeyAwIH07CiAgICAgZG91YmxlIG1f
c2FtcGxlU2l6ZSB7IDAgfTsKLSAgICB1bnNpZ25lZCBtX2ZpdG5lc3NTY29yZSB7IDAgfTsKKyAg
ICBkb3VibGUgbV9maXRuZXNzU2NvcmUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkgfTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5n
TW9kZSBtX2ZhY2luZ01vZGUgeyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlVzZXJ9Owog
CiAgICAgYm9vbCBtX2VjaG9DYW5jZWxsYXRpb24geyBmYWxzZSB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFj
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgJKHJldmlzaW9uIDIxNDEyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxMSArNjEsOSBAQCBwcml2YXRlOgogCiAgICAg
QXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogCi0gICAg
c2l6ZV90IG1fYXVkaW9CdWZmZXJMaXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyTGlzdDsKIAogICAgIHVpbnQz
Ml90IG1fbWF4aW1pdW1GcmFtZUNvdW50OwotICAgIHVpbnQzMl90IG1fc2FtcGxlUmF0ZSB7IDAg
fTsKICAgICB1aW50NjRfdCBtX3NhbXBsZXNFbWl0dGVkIHsgMCB9OwogICAgIHVpbnQ2NF90IG1f
c2FtcGxlc1JlbmRlcmVkIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjLm1tCShyZXZpc2lvbiAyMTQxMjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTkwLDggKzkwLDYgQEAgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
PiBNb2NrUmVhbAogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWlu
dHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgc291cmNlID0gbnVsbHB0cjsKIAotICAgIHNvdXJj
ZS0+YXBwbHlTYW1wbGVSYXRlKDQ0MTAwKTsKLQogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKQEAg
LTExOSw3ICsxMTcsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjplbWl0U2Ft
CiB7CiAgICAgQVNTRVJUKG1fZm9ybWF0RGVzY3JpcHRpb24pOwogCi0gICAgQ01UaW1lIHN0YXJ0
VGltZSA9IENNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgbV9zYW1wbGVSYXRlKTsKKyAgICBD
TVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRl
KCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxpc3Qs
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291bnQpOwpA
QCAtMTI3LDcgKzEyNSw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OmVtaXRT
YW0KIAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6cmVjb25maWd1cmUoKQogewot
ICAgIG1fbWF4aW1pdW1GcmFtZUNvdW50ID0gV1RGOjpyb3VuZFVwVG9Qb3dlck9mVHdvKHJlbmRl
ckludGVydmFsKCkgLyAxMDAwLiAqIG1fc2FtcGxlUmF0ZSAqIDIpOworICAgIG1fbWF4aW1pdW1G
cmFtZUNvdW50ID0gV1RGOjpyb3VuZFVwVG9Qb3dlck9mVHdvKHJlbmRlckludGVydmFsKCkgLyAx
MDAwLiAqIHNhbXBsZVJhdGUoKSAqIDIpOwogICAgIEFTU0VSVChtX21heGltaXVtRnJhbWVDb3Vu
dCk7CiAKICAgICBjb25zdCBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAg
LTEzNiw3ICsxMzQsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjpyZWNvbmZp
CiAgICAgY29uc3QgYm9vbCBpc0Zsb2F0ID0gdHJ1ZTsKICAgICBjb25zdCBib29sIGlzQmlnRW5k
aWFuID0gZmFsc2U7CiAgICAgY29uc3QgYm9vbCBpc05vbkludGVybGVhdmVkID0gdHJ1ZTsKLSAg
ICBGaWxsT3V0QVNCREZvckxQQ00obV9zdHJlYW1Gb3JtYXQsIG1fc2FtcGxlUmF0ZSwgY2hhbm5l
bENvdW50LCBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQsIGJpdHNQZXJCeXRlICogYnl0ZXNQ
ZXJGbG9hdCwgaXNGbG9hdCwgaXNCaWdFbmRpYW4sIGlzTm9uSW50ZXJsZWF2ZWQpOworICAgIEZp
bGxPdXRBU0JERm9yTFBDTShtX3N0cmVhbUZvcm1hdCwgc2FtcGxlUmF0ZSgpLCBjaGFubmVsQ291
bnQsIGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdCwgYml0c1BlckJ5dGUgKiBieXRlc1BlckZs
b2F0LCBpc0Zsb2F0LCBpc0JpZ0VuZGlhbiwgaXNOb25JbnRlcmxlYXZlZCk7CiAKICAgICBtX2F1
ZGlvQnVmZmVyTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX3N0
cmVhbUZvcm1hdCwgbV9zdHJlYW1Gb3JtYXQubUJ5dGVzUGVyRnJhbWUgKiBtX21heGltaXVtRnJh
bWVDb3VudCk7CiAKQEAgLTE1MCw3ICsxNDgsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjOjpyZW5kZXIoCiAgICAgaWYgKCFtX2F1ZGlvQnVmZmVyTGlzdCkKICAgICAgICAgcmVj
b25maWd1cmUoKTsKIAotICAgIHVpbnQzMl90IHRvdGFsRnJhbWVDb3VudCA9IGFsaWduVG8xNkJ5
dGVzKGRlbHRhICogbV9zYW1wbGVSYXRlKTsKKyAgICB1aW50MzJfdCB0b3RhbEZyYW1lQ291bnQg
PSBhbGlnblRvMTZCeXRlcyhkZWx0YSAqIHNhbXBsZVJhdGUoKSk7CiAgICAgdWludDMyX3QgZnJh
bWVDb3VudCA9IHN0ZDo6bWluKHRvdGFsRnJhbWVDb3VudCwgbV9tYXhpbWl1bUZyYW1lQ291bnQp
OwogCiAgICAgd2hpbGUgKGZyYW1lQ291bnQpIHsKQEAgLTE2MSw3ICsxNTksNyBAQCB2b2lkIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjpyZW5kZXIoCiAgICAgICAgICAgICBhdWRpb0J1ZmZl
ci5tRGF0YUJ5dGVTaXplID0gZnJhbWVDb3VudCAqIG1fc3RyZWFtRm9ybWF0Lm1CeXRlc1BlckZy
YW1lOwogICAgICAgICAgICAgaWYgKCFtX211dGVkICYmIG1fZW5hYmxlZCkgewogICAgICAgICAg
ICAgICAgIG1lbWNweShhdWRpb0J1ZmZlci5tRGF0YSwgJm1fYmlwQm9wQnVmZmVyW2JpcEJvcFN0
YXJ0XSwgc2l6ZW9mKEZsb2F0MzIpICogYmlwQm9wQ291bnQpOwotICAgICAgICAgICAgICAgIGFk
ZEh1bShIdW1Wb2x1bWUsIEh1bUZyZXF1ZW5jeSwgbV9zYW1wbGVSYXRlLCBtX3NhbXBsZXNSZW5k
ZXJlZCwgc3RhdGljX2Nhc3Q8ZmxvYXQqPihhdWRpb0J1ZmZlci5tRGF0YSksIGJpcEJvcENvdW50
KTsKKyAgICAgICAgICAgICAgICBhZGRIdW0oSHVtVm9sdW1lLCBIdW1GcmVxdWVuY3ksIHNhbXBs
ZVJhdGUoKSwgbV9zYW1wbGVzUmVuZGVyZWQsIHN0YXRpY19jYXN0PGZsb2F0Kj4oYXVkaW9CdWZm
ZXIubURhdGEpLCBiaXBCb3BDb3VudCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgICBtZW1zZXQoYXVkaW9CdWZmZXIubURhdGEsIDAsIHNpemVvZihGbG9hdDMyKSAqIGJpcEJv
cENvdW50KTsKICAgICAgICAgfQpAQCAtMTc3LDI1ICsxNzUsMjMgQEAgYm9vbCBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYzo6YXBwbHlTYQogICAgIGlmIChzYW1wbGVSYXRlIDwgNDQxMDAgfHwg
c2FtcGxlUmF0ZSA+IDQ4MDAwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZVJhdGUpID09IG1fc2FtcGxlUmF0ZSkKKyAgICBpZiAo
c2FtcGxlUmF0ZSA9PSB0aGlzLT5zYW1wbGVSYXRlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgbV9zYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKICAgICBtX2Zvcm1hdERlc2NyaXB0aW9u
ID0gbnVsbHB0cjsKICAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG51bGxwdHI7Ci0gICAgbV9hdWRp
b0J1ZmZlckxpc3RCdWZmZXJTaXplID0gMDsKIAotICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIg
KiBtX3NhbXBsZVJhdGU7CisgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHNhbXBsZVJhdGU7
CiAKICAgICBtX2JpcEJvcEJ1ZmZlci5ncm93KHNhbXBsZUNvdW50KTsKICAgICBtX2JpcEJvcEJ1
ZmZlci5maWxsKDApOwogCi0gICAgc2l6ZV90IGJpcEJvcFNhbXBsZUNvdW50ID0gY2VpbChCaXBC
b3BEdXJhdGlvbiAqIG1fc2FtcGxlUmF0ZSk7CisgICAgc2l6ZV90IGJpcEJvcFNhbXBsZUNvdW50
ID0gY2VpbChCaXBCb3BEdXJhdGlvbiAqIHNhbXBsZVJhdGUpOwogICAgIHNpemVfdCBiaXBTdGFy
dCA9IDA7Ci0gICAgc2l6ZV90IGJvcFN0YXJ0ID0gbV9zYW1wbGVSYXRlOworICAgIHNpemVfdCBi
b3BTdGFydCA9IHNhbXBsZVJhdGU7CiAKLSAgICBhZGRIdW0oQmlwQm9wVm9sdW1lLCBCaXBGcmVx
dWVuY3ksIG1fc2FtcGxlUmF0ZSwgMCwgbV9iaXBCb3BCdWZmZXIuZGF0YSgpICsgYmlwU3RhcnQs
IGJpcEJvcFNhbXBsZUNvdW50KTsKLSAgICBhZGRIdW0oQmlwQm9wVm9sdW1lLCBCb3BGcmVxdWVu
Y3ksIG1fc2FtcGxlUmF0ZSwgMCwgbV9iaXBCb3BCdWZmZXIuZGF0YSgpICsgYm9wU3RhcnQsIGJp
cEJvcFNhbXBsZUNvdW50KTsKKyAgICBhZGRIdW0oQmlwQm9wVm9sdW1lLCBCaXBGcmVxdWVuY3ks
IHNhbXBsZVJhdGUsIDAsIG1fYmlwQm9wQnVmZmVyLmRhdGEoKSArIGJpcFN0YXJ0LCBiaXBCb3BT
YW1wbGVDb3VudCk7CisgICAgYWRkSHVtKEJpcEJvcFZvbHVtZSwgQm9wRnJlcXVlbmN5LCBzYW1w
bGVSYXRlLCAwLCBtX2JpcEJvcEJ1ZmZlci5kYXRhKCkgKyBib3BTdGFydCwgYmlwQm9wU2FtcGxl
Q291bnQpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAkocmV2
aXNpb24gMjE0MTI5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDE0ICs4NCwxNCBAQCB2b2lk
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp1cGRhdGVTZXR0CiB7CiAgICAgc2V0dGluZ3Muc2V0
Vm9sdW1lKHZvbHVtZSgpKTsKICAgICBzZXR0aW5ncy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGVjaG9D
YW5jZWxsYXRpb24oKSk7Ci0gICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZSg0NDEwMCk7CisgICAg
c2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKCkpOwogfQogCiB2b2lkIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsKICAgICBjYXBhYmlsaXRpZXMuc2V0Vm9s
dW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKICAgICBjYXBhYmlsaXRpZXMu
c2V0RWNob0NhbmNlbGxhdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hv
Q2FuY2VsbGF0aW9uOjpSZWFkV3JpdGUpOwotICAgIGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRl
KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoNDQxMDAsIDQ0MTAwKSk7CisgICAgY2FwYWJpbGl0aWVz
LnNldFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg0NDEwMCwgNDgwMDApKTsKIH0K
IAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0
cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVk
Q29uc3RyYWludHMpCkBAIC0xMDMsNiArMTAzLDkgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6aW5pdGlhbGl6ZQogCiB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzdGFydFBy
b2R1Y2luZ0RhdGEoKQogeworICAgIGlmICghc2FtcGxlUmF0ZSgpKQorICAgICAgICBzZXRTYW1w
bGVSYXRlKCFkZXZpY2VJbmRleCgpID8gNDQxMDAgOiA0ODAwMCk7CisKICAgICBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAKICAgICBtX3N0YXJ0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAJKHJl
dmlzaW9uIDIxNDEyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw1MiArNDQsMzcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjptb2NrQXVkaW9Tb3VyY2VQZXJzaXN0ZW50SUQoKQorVmVjdG9yPENhcHR1cmVE
ZXZpY2U+JiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiMjM5YzI0YjEtMmIxNS0xMWUz
LTgyMjQtMDgwMDIwMGM5YTY2IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgcmV0dXJuIGlkOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjptb2NrVmlkZW9Tb3VyY2VQZXJzaXN0ZW50SUQoKQotewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCIyMzljMjRiMC0yYjE1LTExZTMtODIyNC0w
ODAwMjAwYzlhNjYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBy
ZXR1cm4gaWQ7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyYgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2U6Om1vY2tBdWRpb1NvdXJjZU5hbWUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IG5hbWUoIk1vY2sgYXVkaW8gZGV2aWNlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0dXJuIG5hbWU7Ci19Ci0KLWNvbnN0IEF0b21pY1N0
cmluZyYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tWaWRlb1NvdXJjZU5hbWUoKQotewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoIk1vY2sgdmlkZW8g
ZGV2aWNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0dXJu
IG5hbWU7Ci19Ci0KLUNhcHR1cmVEZXZpY2UgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlv
RGV2aWNlSW5mbygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENhcHR1cmVEZXZpY2U+
IGRldmljZUluZm8obW9ja0F1ZGlvU291cmNlUGVyc2lzdGVudElEKCksIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkF1ZGlvLCBtb2NrQXVkaW9Tb3VyY2VOYW1lKCksICIiKTsKLSAgICByZXR1
cm4gZGV2aWNlSW5mbzsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPENhcHR1cmVE
ZXZpY2U+PiBpbmZvOworICAgIGlmICghaW5mby5nZXQoKS5zaXplKCkpIHsKKyAgICAgICAgaW5m
by5nZXQoKS5hcHBlbmQoQ2FwdHVyZURldmljZSgiMjM5YzI0YjAtMmIxNS0xMWUzLTgyMjQtMDgw
MDIwMGM5YTY2IiwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8sICJNb2NrIGF1ZGlv
IGRldmljZSAxIikpOworICAgICAgICBpbmZvLmdldCgpLmFwcGVuZChDYXB0dXJlRGV2aWNlKCIy
MzljMjRiMS0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjYiLCBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpBdWRpbywgIk1vY2sgYXVkaW8gZGV2aWNlIDIiKSk7CisgICAgfQorICAgIHJldHVy
biBpbmZvOwogfQogCi1DYXB0dXJlRGV2aWNlIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRl
b0RldmljZUluZm8oKQorVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9EZXZpY2VzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q2FwdHVy
ZURldmljZT4gZGV2aWNlSW5mbyhtb2NrVmlkZW9Tb3VyY2VQZXJzaXN0ZW50SUQoKSwgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIG1vY2tWaWRlb1NvdXJjZU5hbWUoKSwgIiIpOwot
ICAgIHJldHVybiBkZXZpY2VJbmZvOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
Q2FwdHVyZURldmljZT4+IGluZm87CisgICAgaWYgKCFpbmZvLmdldCgpLnNpemUoKSkgeworICAg
ICAgICBpbmZvLmdldCgpLmFwcGVuZChDYXB0dXJlRGV2aWNlKCIyMzljMjRiMi0yYjE1LTExZTMt
ODIyNC0wODAwMjAwYzlhNjYiLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbywgIk1v
Y2sgdmlkZW8gZGV2aWNlIDEiKSk7CisgICAgICAgIGluZm8uZ2V0KCkuYXBwZW5kKENhcHR1cmVE
ZXZpY2UoIjIzOWMyNGIzLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiIsIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlZpZGVvLCAiTW9jayB2aWRlbyBkZXZpY2UgMiIpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGluZm87CiB9CiAKLQogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Ok1vY2tSZWFs
dGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogQmFzZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VDbGFzcyhpZCwgdHlwZSwgbmFtZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzZXRQZXJzaXN0ZW50
SUQobW9ja0F1ZGlvU291cmNlUGVyc2lzdGVudElEKCkpOworICAgICAgICBtX2RldmljZUluZGV4
ID0gbmFtZSA9PSBhdWRpb0RldmljZXMoKVswXS5sYWJlbCgpID8gMCA6IDE7CisgICAgICAgIHNl
dFBlcnNpc3RlbnRJRChhdWRpb0RldmljZXMoKVttX2RldmljZUluZGV4XS5wZXJzaXN0ZW50SWQo
KSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvOgotICAgICAgICBzZXRQZXJzaXN0ZW50SUQobW9ja1ZpZGVvU291cmNlUGVyc2lzdGVu
dElEKCkpOworICAgICAgICBtX2RldmljZUluZGV4ID0gbmFtZSA9PSB2aWRlb0RldmljZXMoKVsw
XS5sYWJlbCgpID8gMCA6IDE7CisgICAgICAgIHNldFBlcnNpc3RlbnRJRCh2aWRlb0RldmljZXMo
KVttX2RldmljZUluZGV4XS5wZXJzaXN0ZW50SWQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkocmV2aXNpb24gMjE0MTI5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MywxNCArNTMsOCBAQCBjbGFzcyBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSA6
IHB1YmxpYyBCCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2Uo
KSB7IH0KIAotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vY2tBdWRpb1NvdXJjZVBl
cnNpc3RlbnRJRCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vY2tBdWRpb1Nv
dXJjZU5hbWUoKTsKLQotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vY2tWaWRlb1Nv
dXJjZVBlcnNpc3RlbnRJRCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vY2tW
aWRlb1NvdXJjZU5hbWUoKTsKLQotICAgIHN0YXRpYyBDYXB0dXJlRGV2aWNlIGF1ZGlvRGV2aWNl
SW5mbygpOwotICAgIHN0YXRpYyBDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNlSW5mbygpOworICAg
IHN0YXRpYyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGF1ZGlvRGV2aWNlcygpOworICAgIHN0YXRp
YyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcygpOwogCiBwcm90ZWN0ZWQ6CiAg
ICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29uc3Qg
U3RyaW5nJiBuYW1lKTsKQEAgLTc4LDYgKzcyLDggQEAgcHJvdGVjdGVkOgogICAgIE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0K
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENv
bnN0cmFpbnRzKCk7CiAKKyAgICB1bnNpZ25lZCBkZXZpY2VJbmRleCgpIHsgcmV0dXJuIG1fZGV2
aWNlSW5kZXg7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMo
KTsKICAgICB2b2lkIGluaXRpYWxpemVTZXR0aW5ncygpOwpAQCAtODcsNiArODMsNyBAQCBwcml2
YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzOwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25z
dHJhaW50czsKKyAgICB1bnNpZ25lZCBtX2RldmljZUluZGV4IHsgMCB9OwogICAgIGJvb2wgbV9p
c1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAJKHJldmlzaW9uIDIxNDEyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MywyNiArNzMsMzEgQEAgdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaQog
ICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKIAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRz
LmlzVmFsaWQoKSkgewotICAgICAgICBhdXRvIGF1ZGlvU291cmNlID0gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja0F1ZGlvU291cmNl
TmFtZSgpLCBudWxscHRyKTsKLSAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25z
dHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpIHsKLSAgICAgICAg
ICAgIGlmIChpbnZhbGlkSGFuZGxlcikKLSAgICAgICAgICAgICAgICBpbnZhbGlkSGFuZGxlcihp
bnZhbGlkQ29uc3RyYWludCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8mIGRl
dmljZXMgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCk7CisgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlcy5zaXplKCk7IGkrKykgeworICAgICAgICAg
ICAgYXV0byYgZGV2aWNlID0gZGV2aWNlc1tpXTsKKyAgICAgICAgICAgIGF1dG8gYXVkaW9Tb3Vy
Y2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxs
cHRyKTsKKyAgICAgICAgICAgIGlmICghYXVkaW9Tb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMo
YXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKSB7CisgICAgICAgICAgICAgICAg
aWYgKGludmFsaWRIYW5kbGVyKQorICAgICAgICAgICAgICAgICAgICBpbnZhbGlkSGFuZGxlcihp
bnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VJZHMuYXBwZW5kKGRldmljZS5wZXJzaXN0ZW50SWQo
KSk7CiAgICAgICAgIH0KLQotICAgICAgICBhdWRpb1NvdXJjZUlkcy5hcHBlbmQoTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2U6Om1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJRCgpKTsKICAgICB9CiAK
ICAgICBpZiAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkpIHsKLSAgICAgICAgYXV0byB2aWRl
b1NvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2U6Om1vY2tWaWRlb1NvdXJjZU5hbWUoKSwgbnVsbHB0cik7Ci0gICAgICAgIGlmICgh
dmlkZW9Tb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpKSB7Ci0gICAgICAgICAgICBpZiAoaW52YWxpZEhhbmRsZXIpCi0gICAgICAg
ICAgICAgICAgaW52YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0cmFpbnQpOwotICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBhdXRvJiBkZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OnZpZGVvRGV2aWNlcygpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZXMu
c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGF1dG8mIGRldmljZSA9IGRldmljZXNbaV07Cisg
ICAgICAgICAgICBhdXRvIHZpZGVvU291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShkZXZpY2UubGFiZWwoKSwgbnVsbHB0cik7CisgICAgICAgICAgICBpZiAoIXZpZGVvU291
cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJh
aW50KSkgeworICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkSGFuZGxlcikKKyAgICAgICAgICAg
ICAgICAgICAgaW52YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZpZGVvU291cmNlSWRzLmFw
cGVuZChkZXZpY2UucGVyc2lzdGVudElkKCkpOwogICAgICAgICB9Ci0KLQotICAgICAgICB2aWRl
b1NvdXJjZUlkcy5hcHBlbmQoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tWaWRlb1NvdXJj
ZVBlcnNpc3RlbnRJRCgpKTsKICAgICB9CiAKICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRp
b1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpKTsKQEAgLTEwMywxNiArMTA4LDMw
IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWEKICAgICBWZWN0b3I8
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CiAgICAgVmVjdG9yPFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogCi0gICAgaWYgKGF1ZGlvRGV2aWNl
SUQgPT0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJ
RCgpKSB7Ci0gICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja0F1ZGlvU291cmNlTmFtZSgpLCBhdWRp
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgIGF1ZGlvU291
cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgIGlmICghYXVkaW9EZXZp
Y2VJRC5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byYgYXVkaW9EZXZpY2VzID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpOworICAgICAgICBpZiAoYXVkaW9EZXZpY2VJ
RCA9PSBhdWRpb0RldmljZXNbMF0ucGVyc2lzdGVudElkKCkpIHsKKyAgICAgICAgICAgIGF1dG8g
c291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0u
bGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoc291cmNlKQorICAg
ICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICB9IGVsc2UgaWYgKGF1ZGlvRGV2aWNlSUQgPT0gYXVkaW9EZXZpY2VzWzFdLnBl
cnNpc3RlbnRJZCgpKSB7CisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoYXVkaW9EZXZpY2VzWzFdLmxhYmVsKCksIGF1ZGlvQ29uc3RyYWlu
dHMpOworICAgICAgICAgICAgaWYgKHNvdXJjZSkKKyAgICAgICAgICAgICAgICBhdWRpb1NvdXJj
ZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICh2aWRlb0RldmljZUlEID09IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjptb2NrVmlk
ZW9Tb3VyY2VQZXJzaXN0ZW50SUQoKSkgewotICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tWaWRl
b1NvdXJjZU5hbWUoKSwgdmlkZW9Db25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2UpCi0g
ICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8mIHZpZGVv
RGV2aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKTsKKyAgICAg
ICAgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7
CisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAg
ICAgaWYgKHNvdXJjZSkKKyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJj
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgfSBlbHNlIGlmICh2aWRlb0RldmljZUlEID09
IHZpZGVvRGV2aWNlc1sxXS5wZXJzaXN0ZW50SWQoKSkgeworICAgICAgICAgICAgYXV0byBzb3Vy
Y2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKHZpZGVvRGV2aWNlc1sxXS5sYWJl
bCgpLCB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UpCisgICAgICAg
ICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodmlkZW9Tb3VyY2VzLmlzRW1wdHkoKSAmJiBhdWRp
b1NvdXJjZXMuaXNFbXB0eSgpKQpAQCAtMTI1LDggKzE0NCw4IEBAIFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiBNb2NrUmVhbHRpbWVNZWRpYVMKIHsKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gc291
cmNlczsKIAotICAgIHNvdXJjZXMuYXBwZW5kKE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRp
b0RldmljZUluZm8oKSk7Ci0gICAgc291cmNlcy5hcHBlbmQoTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnZpZGVvRGV2aWNlSW5mbygpKTsKKyAgICBzb3VyY2VzLmFwcGVuZFZlY3RvcihNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpOworICAgIHNvdXJjZXMuYXBwZW5kVmVj
dG9yKE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKSk7CiAKICAgICByZXR1
cm4gc291cmNlczsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCShyZXZpc2lvbiAyMTQxMjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsOCBAQCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6TW9ja1JlYWx0aW1lVmlkCiAgICAgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjcmVhdGVD
YW5vbmljYWxVVUlEU3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBu
YW1lKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKLSAgICBzZXRGcmFtZVJhdGUoMzApOwor
ICAgIHNldEZyYW1lUmF0ZSghZGV2aWNlSW5kZXgoKSA/IDMwIDogMTUpOworICAgIHNldEZhY2lu
Z01vZGUoIWRldmljZUluZGV4KCkgPyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlVzZXIg
OiBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkVudmlyb25tZW50KTsKICAgICBtX2Rhc2hX
aWR0aHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgyKTsKICAgICBtX2Rhc2hXaWR0aHMudW5jaGVj
a2VkQXBwZW5kKDYpOwogICAgIG1fZGFzaFdpZHRocy51bmNoZWNrZWRBcHBlbmQoNik7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMTQxMjkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMy0xOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5j
YXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFJlc3BlY3QgY29uc3Ry
YWludHMgcGFzc2VkIHRvIGdldFVzZXJNZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5ODcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEz
ODkzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRp
YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMt
Z2V0VXNlck1lZGlhLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dDoKKwogMjAxNy0w
My0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFRdWVy
eUxpc3QgaW5zdGFuY2VzIGRvIG5vdCB1cGRhdGUgZm9yIGBwcmVmZXJzLXJlZHVjZWQtbW90aW9u
YApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZW51bWVy
YXRlRGV2aWNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDIxNDEyOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLWVudW1lcmF0ZURldmljZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMywyMCBAQCBQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm9uLW51bGwuCiBQQVNTIGNh
cHR1cmVEZXZpY2UubGFiZWwgaXMgIiIKIFBBU1MgY2FwdHVyZURldmljZS5ncm91cElkIGlzIG5v
bi1udWxsLgogCitQQVNTIGNhcHR1cmVEZXZpY2Uua2luZCBpcyBub24tbnVsbC4KK1BBU1MgY2Fw
dHVyZURldmljZS5kZXZpY2VJZCBpcyBub24tbnVsbC4KK1BBU1MgY2FwdHVyZURldmljZS5sYWJl
bCBpcyBub24tbnVsbC4KK1BBU1MgY2FwdHVyZURldmljZS5sYWJlbCBpcyAiIgorUEFTUyBjYXB0
dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwuCitGQUlMIGRldmljZUlkcy5pbmRleE9mKGNh
cHR1cmVEZXZpY2UuZGV2aWNlSWQpIHNob3VsZCBub3QgYmUgLTEuCisKK1BBU1MgY2FwdHVyZURl
dmljZS5raW5kIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5v
bi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0
dXJlRGV2aWNlLmxhYmVsIGlzICIiCitQQVNTIGNhcHR1cmVEZXZpY2UuZ3JvdXBJZCBpcyBub24t
bnVsbC4KK0ZBSUwgZGV2aWNlSWRzLmluZGV4T2YoY2FwdHVyZURldmljZS5kZXZpY2VJZCkgc2hv
dWxkIG5vdCBiZSAtMS4KKwogCiAqKiogQ2FsbGluZyBtZWRpYURldmljZXMuZW51bWVyYXRlRGV2
aWNlcyB3aXRoIHBlcnNpc3RlbnQgYWNjZXNzLCBhbmQgd2l0aG91dCBhIG1lZGlhIHN0cmVhbSB0
cmFjawogCkBAIC00Miw2ICs1NiwyMCBAQCBQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm90
ICIiCiBQQVNTIGNhcHR1cmVEZXZpY2UuZ3JvdXBJZCBpcyBub24tbnVsbC4KIFBBU1MgZGV2aWNl
SWRzLmluZGV4T2YoY2FwdHVyZURldmljZS5kZXZpY2VJZCkgaXMgbm90IC0xCiAKK1BBU1MgY2Fw
dHVyZURldmljZS5raW5kIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlk
IGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFT
UyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vdCAiIgorUEFTUyBjYXB0dXJlRGV2aWNlLmdyb3Vw
SWQgaXMgbm9uLW51bGwuCitGQUlMIGRldmljZUlkcy5pbmRleE9mKGNhcHR1cmVEZXZpY2UuZGV2
aWNlSWQpIHNob3VsZCBub3QgYmUgLTEuCisKK1BBU1MgY2FwdHVyZURldmljZS5raW5kIGlzIG5v
bi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5vbi1udWxsLgorUEFTUyBj
YXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVs
IGlzIG5vdCAiIgorUEFTUyBjYXB0dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwuCitGQUlM
IGRldmljZUlkcy5pbmRleE9mKGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQpIHNob3VsZCBub3QgYmUg
LTEuCisKIAogKioqIENhbGxpbmcgbWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMgd2l0aG91
dCBwZXJzaXN0ZW50IGFjY2Vzcywgd2l0aCBhIG1lZGlhIHN0cmVhbSB0cmFjawogCkBAIC02MSw2
ICs4OSwyMCBAQCBQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm90ICIiCiBQQVNTIGNhcHR1
cmVEZXZpY2UuZ3JvdXBJZCBpcyBub24tbnVsbC4KIFBBU1MgZGV2aWNlSWRzLmluZGV4T2YoY2Fw
dHVyZURldmljZS5kZXZpY2VJZCkgaXMgbm90IC0xCiAKK1BBU1MgY2FwdHVyZURldmljZS5raW5k
IGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5vbi1udWxsLgor
UEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNl
LmxhYmVsIGlzIG5vdCAiIgorUEFTUyBjYXB0dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwu
CitGQUlMIGRldmljZUlkcy5pbmRleE9mKGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQpIHNob3VsZCBu
b3QgYmUgLTEuCisKK1BBU1MgY2FwdHVyZURldmljZS5raW5kIGlzIG5vbi1udWxsLgorUEFTUyBj
YXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxh
YmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vdCAiIgorUEFT
UyBjYXB0dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwuCitGQUlMIGRldmljZUlkcy5pbmRl
eE9mKGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQpIHNob3VsZCBub3QgYmUgLTEuCisKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQxMjkpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDM1ICs0LDUzIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTIHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLndlYmtpdEdldFVzZXJNZWRpYSBpcyAndW5kZWZpbmVkJworCiBQQVNTIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihnb3RTdHJlYW0xKTsg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQ
QVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRo
IGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEuYXBwbHkodW5kZWZpbmVkKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBl
RXJyb3I6IENhbiBvbmx5IGNhbGwgTWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBvbiBpbnN0YW5j
ZXMgb2YgTWVkaWFEZXZpY2VzCi1QQVNTIFN0cmVhbSBnZW5lcmF0ZWQuCitQQVNTIFN0cmVhbSAx
IGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIFBB
U1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDAKKwogUEFTUyBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtMik7
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBTdHJlYW0gZ2VuZXJhdGVkLgorUEFTUyBT
dHJlYW0gMiBnZW5lcmF0ZWQuCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyAwCiBQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAxCisKIFBBU1MgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9
KS50aGVuKGdvdFN0cmVhbTMpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgU3RyZWFt
IGdlbmVyYXRlZC4KK1BBU1MgU3RyZWFtIDMgZ2VuZXJhdGVkLgogUEFTUyBzdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGggaXMgMQorCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzp7fSwgdmlkZW86e319KS50aGVuKGdvdFN0cmVhbTQpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KLVBBU1MgU3RyZWFtIGdlbmVyYXRlZC4KK1BBU1MgU3RyZWFtIDQgZ2VuZXJhdGVkLgogUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyBzdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGggaXMgMQotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86YXVkaW9Db25zdHJhaW50cywgdmlkZW86ZmFsc2V9KS50aGVuKGdvdFN0
cmVhbVdpdGhDb25zdHJhaW50czEpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBTdHJl
YW0gZ2VuZXJhdGVkLgotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
YXVkaW86ZmFsc2UsIHZpZGVvOnZpZGVvQ29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhD
b25zdHJhaW50czIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBTdHJlYW0gZ2VuZXJh
dGVkLgorCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzph
dWRpb0NvbnN0cmFpbnRzfSkudGhlbihnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMxKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgU3RyZWFtIDUgZ2VuZXJhdGVkLgorUEFTUyBzdHJlYW0u
Z2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQorUEFTUyBzdHJlYW0uZ2V0VmlkZW9UcmFja3Mo
KS5sZW5ndGggaXMgMAorCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHt2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMy
KSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgU3RyZWFtIDYgZ2VuZXJhdGVkLgorUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMAorUEFTUyBzdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGggaXMgMQorCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHt2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihnb3RTdHJlYW1XaXRoQ29u
c3RyYWludHMzKS5jYXRjaChlcnJvcjEpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBT
dHJlYW0gNyBnZW5lcmF0ZWQuCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNl
dHRpbmdzKCkuZmFjaW5nTW9kZSBpcyAidXNlciIKK1BBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIGlzIDAKKwogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86YXVkaW9Db25zdHJhaW50cywgdmlkZW86ZmFsc2V9KS50aGVuKGludmFsaWRHb3RT
dHJlYW0pLmNhdGNoKGVycm9yV2l0aENvbnN0cmFpbnRzMSkgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCiBQQVNTIEVycm9yIGNhbGxiYWNrIGNhbGxlZC4KKwogUEFTUyBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnZpZGVvQ29uc3RyYWludHN9
KS50aGVuKGludmFsaWRHb3RTdHJlYW0pLmNhdGNoKGVycm9yV2l0aENvbnN0cmFpbnRzMikgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIEVycm9yIGNhbGxiYWNrIGNhbGxlZC4KIFBBU1Mg
ZXJyb3JBcmcubmFtZSBpcyAiRXJyb3IiCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih2YWxpZFN0cmVhbSwgZXJyb3IxKTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCisKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKHZhbGlkU3RyZWFtKS5jYXRjaChlcnJvcjEpOyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgU3RyZWFtIGdlbmVyYXRlZCBiZWNhdXNlIHBhZ2Ug
aGFzIGFscmVhZHkgYXV0aGVudGljYXRlZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0
VXNlck1lZGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwJKHJldmlzaW9uIDIxNDEyOSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGVycm9yMShlKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
RXJyb3IgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYEVy
cm9yIGNhbGxiYWNrIGNhbGxlZCwgZXJyb3IgPSAke2V9YCk7CiAgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKQEAgLTQ2LDcgKzQ2LDggQEAKICAgICAgICAg
ICAgICAgICAvLyBhcyBpdCBzaG91bGQgbm90IHNlZSB0aGUgcmVxdWVzdCBiZWNhdXNlIHRoZSBj
dXJyZW50IGJyb3dzaW5nIGNvbnRleHQgaGFzIGFscmVhZHkKICAgICAgICAgICAgICAgICAvLyBz
dWNjZXNzZnVsbHkgY3JlYXRlZCBhIHN0cmVhbSBmb3IgdGhlIG1vY2sgYXVkaW8gZGV2aWNlLgog
ICAgICAgICAgICAgICAgIHNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOwotICAgICAgICAg
ICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZX0pLnRoZW4odmFsaWRTdHJlYW0sIGVycm9yMSk7Iik7CisgICAgICAgICAg
ICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4odmFsaWRTdHJl
YW0pLmNhdGNoKGVycm9yMSk7Iik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0
aW9uIGVycm9yV2l0aENvbnN0cmFpbnRzMSgpIHsKQEAgLTU5LDExICs2MCwxNiBAQAogICAgICAg
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDExCiAgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAgICAgICAgICAg
c2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86dmlkZW9Db25zdHJhaW50c30pLnRoZW4oaW52YWxpZEdvdFN0cmVhbSku
Y2F0Y2goZXJyb3JXaXRoQ29uc3RyYWludHMyKSIpOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBmdW5jdGlvbiBnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMyKCkgewotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlN0cmVhbSBnZW5lcmF0ZWQuIik7CisgICAgICAgICAgICBmdW5jdGlv
biBnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMzKHMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0g
PSBzOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSA3IGdlbmVyYXRlZC4iKTsK
KworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RyZWFtLmdldFZpZGVv
VHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5mYWNpbmdNb2RlIiwgInVzZXIiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwgIjAiKTsK
IAogICAgICAgICAgICAgICAgIGF1ZGlvQ29uc3RyYWludHMgPSB7CiAgICAgICAgICAgICAgICAg
ICAgIHNhbXBsZVJhdGU6IHsKQEAgLTcyLDE0ICs3OCwzNSBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgaWRlYWw6IDEuMAogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
ICAgICBzYW1wbGVSYXRlOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogNDgwMDAK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiA4ODAwMAogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CiAgICAg
ICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzphdWRpb0NvbnN0cmFpbnRzLCB2aWRlbzpmYWxzZX0pLnRoZW4oaW52YWxp
ZEdvdFN0cmVhbSkuY2F0Y2goZXJyb3JXaXRoQ29uc3RyYWludHMxKSIpOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMxKCkgewot
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSBnZW5lcmF0ZWQuIik7CisgICAgICAg
ICAgICBmdW5jdGlvbiBnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMyKHMpIHsKKyAgICAgICAgICAg
ICAgICBzdHJlYW0gPSBzOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSA2IGdl
bmVyYXRlZC4iKTsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGgiLCAiMCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKS5sZW5ndGgiLCAiMSIpOworCisgICAgICAgICAgICAgICAgdmlkZW9D
b25zdHJhaW50cyA9IHsKKyAgICAgICAgICAgICAgICAgICAgZmFjaW5nTW9kZTogeworICAgICAg
ICAgICAgICAgICAgICAgICAgZXhhY3Q6IFsndXNlciddCisgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHt2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihnb3RTdHJlYW1XaXRoQ29uc3RyYWlu
dHMzKS5jYXRjaChlcnJvcjEpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czEocykgeworICAgICAgICAgICAgICAgIHN0cmVh
bSA9IHM7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIDUgZ2VuZXJhdGVkLiIp
OworCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxl
bmd0aCIsICIxIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCIsICIwIik7CiAKICAgICAgICAgICAgICAgICB2aWRlb0NvbnN0cmFpbnRz
ID0gewogICAgICAgICAgICAgICAgICAgICB3aWR0aDogewpAQCAtOTMsMTIgKzEyMCwxMyBAQAog
ICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IFsnZW52aXJvbm1lbnQnXQogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNl
LCB2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMy
KSIpOworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOnZpZGVv
Q29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czIpIik7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTQocykgewogICAgICAgICAg
ICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdl
bmVyYXRlZC4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gNCBnZW5lcmF0
ZWQuIik7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCIsICIxIik7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCIsICIxIik7CiAKQEAgLTExMSwzMyArMTM5LDM3IEBACiAgICAgICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIHNhbXBsZVNpemU6IDExCiAgICAg
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmF1ZGlvQ29uc3RyYWludHMsIHZpZGVv
OmZhbHNlfSkudGhlbihnb3RTdHJlYW1XaXRoQ29uc3RyYWludHMxKSIpOworICAgICAgICAgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmF1ZGlvQ29uc3RyYWludHN9KS50aGVu
KGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czEpIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTMocykgewogICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRlZC4iKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gMyBnZW5lcmF0ZWQuIik7CiAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCIsICIxIik7CiAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCIs
ICIxIik7CiAKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp7
fSwgdmlkZW86e319KS50aGVuKGdvdFN0cmVhbTQpOyIpOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKICAgICAgICAgICAgICAgICBzdHJlYW0g
PSBzOwotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSBnZW5lcmF0ZWQuIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIDIgZ2VuZXJhdGVkLiIpOwogICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgiLCAiMCIp
OwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGgiLCAiMSIpOwogCisgICAgICAgICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVk
aW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtMyk7Iik7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTEocykgewogICAgICAgICAgICAgICAg
IHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRl
ZC4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gMSBnZW5lcmF0ZWQuIik7
CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0
aCIsICIxIik7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpLmxlbmd0aCIsICIwIik7CiAKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAg
ICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHt2aWRlbzp0cnVlfSkudGhlbihnb3RTdHJlYW0yKTsiKQogICAgICAgICAgICAgfQogCkBA
IC0xNDksNiArMTgxLDcgQEAKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgc2hvdWxkQmUo
InR5cGVvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLndlYmtpdEdldFVzZXJNZWRpYSIsICIndW5k
ZWZpbmVkJyIpOwogICAgICAgICAgICAgc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAg
ICAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFt
MSk7Iik7CiAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYS5h
cHBseSh1bmRlZmluZWQsIHthdWRpbzp0cnVlfSkudGhlbihpbnZhbGlkR290U3RyZWFtLCBmdW5j
dGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYS5hcHBseSh1bmRlZmluZWQpIHJlamVjdGVkIHdpdGggZXJy
b3I6ICIgKyBlcnJvcik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLXZpZGVvLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDIxNDEyOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tdmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAgUEFTUyB2aWRlby52aWRlb1RyYWNrc1swXS5raW5kIGlzICJtYWluIgogdmlk
ZW8udmlkZW9UcmFja3NbMF0gcHJvcGVydGllczoKICAgdHJhY2suaWQgPSA8VVVJRD4KICAgdHJh
Y2sua2luZCA9IG1haW4KLSAgdHJhY2subGFiZWwgPSBNb2NrIHZpZGVvIGRldmljZQorICB0cmFj
ay5sYWJlbCA9IE1vY2sgdmlkZW8gZGV2aWNlIDEKICAgdHJhY2subGFuZ3VhZ2UgPSAKICAgdHJh
Y2suc2VsZWN0ZWQgPSB0cnVlCiAgIHRyYWNrLnNvdXJjZUJ1ZmZlciA9IG51bGwKQEAgLTQ4LDcg
KzQ4LDcgQEAgUEFTUyB2aWRlby5hdWRpb1RyYWNrc1swXS5raW5kIGlzICJtYWluIgogdmlkZW8u
YXVkaW9UcmFja3NbMF0gcHJvcGVydGllczoKICAgdHJhY2suaWQgPSA8VVVJRD4KICAgdHJhY2su
a2luZCA9IG1haW4KLSAgdHJhY2subGFiZWwgPSBNb2NrIGF1ZGlvIGRldmljZQorICB0cmFjay5s
YWJlbCA9IE1vY2sgYXVkaW8gZGV2aWNlIDEKICAgdHJhY2subGFuZ3VhZ2UgPSAKICAgdHJhY2su
ZW5hYmxlZCA9IHRydWUKICAgdHJhY2suc291cmNlQnVmZmVyID0gbnVsbApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldENhcGFiaWxpdGllcy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLWdldENhcGFiaWxpdGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIx
NDEyOSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1n
ZXRDYXBhYmlsaXRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3
IEBAIHZpZGVvIHRyYWNrIGNhcGFiaWxpdGllczoKIGF1ZGlvIHRyYWNrIGNhcGFiaWxpdGllczoK
ICAgY2FwYWJpbGl0aWVzLmRldmljZUlkID0gPFVVSUQ+CiAgIGNhcGFiaWxpdGllcy5lY2hvQ2Fu
Y2VsbGF0aW9uID0gWyB0cnVlLCB0cnVlIF0KLSAgY2FwYWJpbGl0aWVzLnNhbXBsZVJhdGUgPSB7
IG1heDogNDQxMDAsIG1pbjogNDQxMDAgfQorICBjYXBhYmlsaXRpZXMuc2FtcGxlUmF0ZSA9IHsg
bWF4OiA0ODAwMCwgbWluOiA0NDEwMCB9CiAgIGNhcGFiaWxpdGllcy52b2x1bWUgPSB7IG1heDog
MSwgbWluOiAwIH0KIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304929</attachid>
            <date>2017-03-20 10:12:38 -0700</date>
            <delta_ts>2017-03-20 10:55:24 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>gum_constraints_patch_2.txt</filename>
            <type>text/plain</type>
            <size>39031</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE3LTAzLTE5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UmVzcGVjdCBjb25zdHJhaW50cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk4NzAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMxMTM4OTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQg
YW5kIEplciBOb2JsZS4KKyAgICAgICAgCisgICAgICAgIFJlbWVtYmVyIHRoZSBmaXRuZXNzIHNj
b3JlIGNhbGN1bGF0ZWQgd2hlbiBldmFsdWF0aW5nIGNvbnN0cmFpbnRzIHBhc3NlZCB0byBnZXRV
c2VyTWVkaWEsIHNvCisgICAgICAgIHRoZSBiZXN0IGRldmljZSBpcyBjaG9zZW4gd2hlbiBtb3Jl
IHRoYW4gb25lIGRldmljZSBzdXBwb3J0cyB0aGUgY29uc3RyYWludHMuIFJlZ2lzdGVyIHR3bwor
ICAgICAgICBtb2NrIHZpZGVvIGFuZCB0d28gbW9jayBhdWRpbyBkZXZpY2VzIHdpdGggZGlmZmVy
ZW50IGNhcGFiaWxpdGllcyBzbyB0aGVzZSBjaGFuZ2VzIGNhbiAKKyAgICAgICAgYmUgdGVzdGVk
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3RpbmcgdGVzdHMgdXBkYXRlZC4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MpOiBTdG9y
ZSBmaXRuZXNzIHNjb3JlIGluIG1fZml0bmVzc1Njb3JlLgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUpOiBEb24ndCBh
c3N1bWUgc2FtcGxlUmF0ZSBpcyA0NC4xSworICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWM6OmVtaXRTYW1wbGVCdWZmZXJzKTogVXNlIHNhbXBsZVJhdGUoKSBpbnN0
ZWFkIG9mIG1fc2FtcGxlUmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlTWFjOjpyZWNvbmZpZ3VyZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWM6OnJlbmRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OmFwcGx5U2FtcGxlUmF0ZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dXBkYXRlU2V0dGluZ3MpOiBE
b24ndCBhc3N1bWUgc2FtcGxlUmF0ZSBpcyA0NC4xSworICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBTdXBwb3J0IGEgcmFu
Z2Ugb2Ygc2FtcGxlIHJhdGVzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6IEluaXRpYWxpemUgc2FtcGxlUmF0ZSBpZiBpdCBo
YXNuJ3QKKyAgICAgICAgYWxyZWFkeSBiZWVuIHNldC4KKworICAgICAgICAqIHBsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcyk6IFJldHVybiBhbiBhcnJheSBvZiBkZXZp
Y2VzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2
aWNlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlOjptb2NrQXVkaW9Tb3VyY2VQZXJzaXN0ZW50SUQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tWaWRlb1NvdXJjZVBl
cnNpc3RlbnRJRCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZTo6bW9ja0F1ZGlvU291cmNlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja1ZpZGVvU291cmNlTmFtZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VJ
bmZvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNl
Ojp2aWRlb0RldmljZUluZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0
cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSk6CisKIDIwMTctMDMtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgc2VsZi5vcmlnaW4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCShyZXZpc2lvbiAyMTQxMjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTQ4LDcgKzU0OCw3IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2VsZWN0U2V0dGluZ3MKICAgICAvLyA1LjEgY29tcHV0ZSB0aGUgZml0bmVzcyBkaXN0YW5jZSBi
ZXR3ZWVuIGl0IGFuZCBlYWNoIHNldHRpbmdzIGRpY3Rpb25hcnkgaW4gY2FuZGlkYXRlcywgdHJl
YXRpbmcgYmFyZQogICAgIC8vICAgICB2YWx1ZXMgb2YgcHJvcGVydGllcyBhcyBleGFjdC4KICAg
ICBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+PiBz
dXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBkb3VibGUgbWluaW11bURpc3RhbmNlID0gc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgIG1fZml0bmVzc1Njb3JlID0g
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogCiAgICAgZm9yIChjb25z
dCBhdXRvJiBhZHZhbmNlZENvbnN0cmFpbnQgOiBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFp
bnRzKCkpIHsKICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IDA7CkBAIC01NjEs
OCArNTYxLDggQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwogICAg
ICAgICAgICAgICAgIHN1cHBvcnRlZCA9IHRydWU7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGlm
IChjb25zdHJhaW50RGlzdGFuY2UgPCBtaW5pbXVtRGlzdGFuY2UpCi0gICAgICAgICAgICBtaW5p
bXVtRGlzdGFuY2UgPSBjb25zdHJhaW50RGlzdGFuY2U7CisgICAgICAgIGlmIChjb25zdHJhaW50
RGlzdGFuY2UgPCBtX2ZpdG5lc3NTY29yZSkKKyAgICAgICAgICAgIG1fZml0bmVzc1Njb3JlID0g
Y29uc3RyYWludERpc3RhbmNlOwogCiAgICAgICAgIC8vIDUuMiBJZiB0aGUgZml0bmVzcyBkaXN0
YW5jZSBpcyBmaW5pdGUgZm9yIG9uZSBvciBtb3JlIHNldHRpbmdzIGRpY3Rpb25hcmllcyBpbiBj
YW5kaWRhdGVzLCBrZWVwIHRob3NlCiAgICAgICAgIC8vICAgICBzZXR0aW5ncyBkaWN0aW9uYXJp
ZXMgaW4gY2FuZGlkYXRlcywgZGlzY2FyZGluZyBvdGhlcnMuCkBAIC01NzMsOSArNTczLDkgQEAg
Ym9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwogCiAgICAgLy8gNi4gU2Vs
ZWN0IG9uZSBzZXR0aW5ncyBkaWN0aW9uYXJ5IGZyb20gY2FuZGlkYXRlcywgYW5kIHJldHVybiBp
dCBhcyB0aGUgcmVzdWx0IG9mIHRoZSBTZWxlY3RTZXR0aW5ncygpIGFsZ29yaXRobS4KICAgICAv
LyAgICBUaGUgVUEgc2hvdWxkIHVzZSB0aGUgb25lIHdpdGggdGhlIHNtYWxsZXN0IGZpdG5lc3Mg
ZGlzdGFuY2UsIGFzIGNhbGN1bGF0ZWQgaW4gc3RlcCAzLgotICAgIGlmICghc3RkOjppc2luZiht
aW5pbXVtRGlzdGFuY2UpKSB7CisgICAgaWYgKCFzdGQ6OmlzaW5mKG1fZml0bmVzc1Njb3JlKSkg
ewogICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29u
c3Qgc3RkOjpwYWlyPGRvdWJsZSwgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiBwYWlyKSAt
PiBib29sIHsKLSAgICAgICAgICAgIHJldHVybiBwYWlyLmZpcnN0ID4gbWluaW11bURpc3RhbmNl
OworICAgICAgICAgICAgcmV0dXJuIHBhaXIuZmlyc3QgPiBtX2ZpdG5lc3NTY29yZTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaWYgKCFzdXBwb3J0ZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgJKHJldmlzaW9uIDIxNDEyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkod29ya2luZyBj
b3B5KQpAQCAtMTA2LDcgKzEwNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmFt
ZShjb25zdCBTdHJpbmcmIG5hbWUpIHsgbV9uYW1lID0gbmFtZTsgfQogICAgIAogICAgIHZpcnR1
YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkgY29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rml0bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5l
c3NTY29yZSkgeyBtX2ZpdG5lc3NTY29yZSA9IGZpdG5lc3NTY29yZTsgfQogCiAgICAgdmlydHVh
bCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGNvbnN0ID0gMDsKQEAgLTIxOSw3ICsyMTgsNyBAQCBwcml2YXRlOgogICAg
IGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBkb3VibGUgbV9zYW1wbGVSYXRlIHsgMCB9Owog
ICAgIGRvdWJsZSBtX3NhbXBsZVNpemUgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9maXRuZXNzU2Nv
cmUgeyAwIH07CisgICAgZG91YmxlIG1fZml0bmVzc1Njb3JlIHsgc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjppbmZpbml0eSgpIH07CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
OjpWaWRlb0ZhY2luZ01vZGUgbV9mYWNpbmdNb2RlIHsgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzOjpVc2VyfTsKIAogICAgIGJvb2wgbV9lY2hvQ2FuY2VsbGF0aW9uIHsgZmFsc2UgfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oCShyZXZpc2lvbiAyMTQx
MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsMTEgKzYxLDkgQEAgcHJp
dmF0ZToKIAogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBm
aW5hbDsKIAotICAgIHNpemVfdCBtX2F1ZGlvQnVmZmVyTGlzdEJ1ZmZlclNpemUgeyAwIH07CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1ZmZlckxpc3Q7
CiAKICAgICB1aW50MzJfdCBtX21heGltaXVtRnJhbWVDb3VudDsKLSAgICB1aW50MzJfdCBtX3Nh
bXBsZVJhdGUgeyAwIH07CiAgICAgdWludDY0X3QgbV9zYW1wbGVzRW1pdHRlZCB7IDAgfTsKICAg
ICB1aW50NjRfdCBtX3NhbXBsZXNSZW5kZXJlZCB7IDAgfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQkocmV2aXNpb24gMjE0MTI5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw4ICs5MCw2IEBAIFJlZlB0cjxNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZT4gTW9ja1JlYWwKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5h
cHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHNvdXJjZSA9IG51bGxwdHI7
CiAKLSAgICBzb3VyY2UtPmFwcGx5U2FtcGxlUmF0ZSg0NDEwMCk7Ci0KICAgICByZXR1cm4gc291
cmNlOwogfQogCkBAIC0xMTksNyArMTE3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZU1hYzo6ZW1pdFNhbQogewogICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0aW9uKTsKIAotICAg
IENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIG1fc2FtcGxl
UmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRl
ZCwgc2FtcGxlUmF0ZSgpKTsKICAgICBtX3NhbXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAK
ICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodG9NZWRpYVRpbWUoc3RhcnRUaW1lKSwgKm1fYXVk
aW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24obV9zdHJlYW1Gb3JtYXQpLCBm
cmFtZUNvdW50KTsKQEAgLTEyNyw3ICsxMjUsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjOjplbWl0U2FtCiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OnJlY29u
ZmlndXJlKCkKIHsKLSAgICBtX21heGltaXVtRnJhbWVDb3VudCA9IFdURjo6cm91bmRVcFRvUG93
ZXJPZlR3byhyZW5kZXJJbnRlcnZhbCgpIC8gMTAwMC4gKiBtX3NhbXBsZVJhdGUgKiAyKTsKKyAg
ICBtX21heGltaXVtRnJhbWVDb3VudCA9IFdURjo6cm91bmRVcFRvUG93ZXJPZlR3byhyZW5kZXJJ
bnRlcnZhbCgpIC8gMTAwMC4gKiBzYW1wbGVSYXRlKCkgKiAyKTsKICAgICBBU1NFUlQobV9tYXhp
bWl1bUZyYW1lQ291bnQpOwogCiAgICAgY29uc3QgaW50IGJ5dGVzUGVyRmxvYXQgPSBzaXplb2Yo
RmxvYXQzMik7CkBAIC0xMzYsNyArMTM0LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZU1hYzo6cmVjb25maQogICAgIGNvbnN0IGJvb2wgaXNGbG9hdCA9IHRydWU7CiAgICAgY29uc3Qg
Ym9vbCBpc0JpZ0VuZGlhbiA9IGZhbHNlOwogICAgIGNvbnN0IGJvb2wgaXNOb25JbnRlcmxlYXZl
ZCA9IHRydWU7Ci0gICAgRmlsbE91dEFTQkRGb3JMUENNKG1fc3RyZWFtRm9ybWF0LCBtX3NhbXBs
ZVJhdGUsIGNoYW5uZWxDb3VudCwgYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0LCBiaXRzUGVy
Qnl0ZSAqIGJ5dGVzUGVyRmxvYXQsIGlzRmxvYXQsIGlzQmlnRW5kaWFuLCBpc05vbkludGVybGVh
dmVkKTsKKyAgICBGaWxsT3V0QVNCREZvckxQQ00obV9zdHJlYW1Gb3JtYXQsIHNhbXBsZVJhdGUo
KSwgY2hhbm5lbENvdW50LCBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQsIGJpdHNQZXJCeXRl
ICogYnl0ZXNQZXJGbG9hdCwgaXNGbG9hdCwgaXNCaWdFbmRpYW4sIGlzTm9uSW50ZXJsZWF2ZWQp
OwogCiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkF1ZGlvQnVm
ZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fc3RyZWFtRm9ybWF0Lm1CeXRlc1BlckZyYW1lICog
bV9tYXhpbWl1bUZyYW1lQ291bnQpOwogCkBAIC0xNTAsNyArMTQ4LDcgQEAgdm9pZCBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZU1hYzo6cmVuZGVyKAogICAgIGlmICghbV9hdWRpb0J1ZmZlckxpc3Qp
CiAgICAgICAgIHJlY29uZmlndXJlKCk7CiAKLSAgICB1aW50MzJfdCB0b3RhbEZyYW1lQ291bnQg
PSBhbGlnblRvMTZCeXRlcyhkZWx0YSAqIG1fc2FtcGxlUmF0ZSk7CisgICAgdWludDMyX3QgdG90
YWxGcmFtZUNvdW50ID0gYWxpZ25UbzE2Qnl0ZXMoZGVsdGEgKiBzYW1wbGVSYXRlKCkpOwogICAg
IHVpbnQzMl90IGZyYW1lQ291bnQgPSBzdGQ6Om1pbih0b3RhbEZyYW1lQ291bnQsIG1fbWF4aW1p
dW1GcmFtZUNvdW50KTsKIAogICAgIHdoaWxlIChmcmFtZUNvdW50KSB7CkBAIC0xNjEsNyArMTU5
LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6cmVuZGVyKAogICAgICAgICAg
ICAgYXVkaW9CdWZmZXIubURhdGFCeXRlU2l6ZSA9IGZyYW1lQ291bnQgKiBtX3N0cmVhbUZvcm1h
dC5tQnl0ZXNQZXJGcmFtZTsKICAgICAgICAgICAgIGlmICghbV9tdXRlZCAmJiBtX2VuYWJsZWQp
IHsKICAgICAgICAgICAgICAgICBtZW1jcHkoYXVkaW9CdWZmZXIubURhdGEsICZtX2JpcEJvcEJ1
ZmZlcltiaXBCb3BTdGFydF0sIHNpemVvZihGbG9hdDMyKSAqIGJpcEJvcENvdW50KTsKLSAgICAg
ICAgICAgICAgICBhZGRIdW0oSHVtVm9sdW1lLCBIdW1GcmVxdWVuY3ksIG1fc2FtcGxlUmF0ZSwg
bV9zYW1wbGVzUmVuZGVyZWQsIHN0YXRpY19jYXN0PGZsb2F0Kj4oYXVkaW9CdWZmZXIubURhdGEp
LCBiaXBCb3BDb3VudCk7CisgICAgICAgICAgICAgICAgYWRkSHVtKEh1bVZvbHVtZSwgSHVtRnJl
cXVlbmN5LCBzYW1wbGVSYXRlKCksIG1fc2FtcGxlc1JlbmRlcmVkLCBzdGF0aWNfY2FzdDxmbG9h
dCo+KGF1ZGlvQnVmZmVyLm1EYXRhKSwgYmlwQm9wQ291bnQpOwogICAgICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICAgICAgbWVtc2V0KGF1ZGlvQnVmZmVyLm1EYXRhLCAwLCBzaXplb2YoRmxv
YXQzMikgKiBiaXBCb3BDb3VudCk7CiAgICAgICAgIH0KQEAgLTE3NywyNSArMTc1LDIzIEBAIGJv
b2wgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OmFwcGx5U2EKICAgICBpZiAoc2FtcGxlUmF0
ZSA8IDQ0MTAwIHx8IHNhbXBsZVJhdGUgPiA0ODAwMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihzYW1wbGVSYXRlKSA9PSBtX3NhbXBsZVJh
dGUpCisgICAgaWYgKHNhbXBsZVJhdGUgPT0gdGhpcy0+c2FtcGxlUmF0ZSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7CiAgICAgbV9mb3Jt
YXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBudWxscHRy
OwotICAgIG1fYXVkaW9CdWZmZXJMaXN0QnVmZmVyU2l6ZSA9IDA7CiAKLSAgICBzaXplX3Qgc2Ft
cGxlQ291bnQgPSAyICogbV9zYW1wbGVSYXRlOworICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIg
KiBzYW1wbGVSYXRlOwogCiAgICAgbV9iaXBCb3BCdWZmZXIuZ3JvdyhzYW1wbGVDb3VudCk7CiAg
ICAgbV9iaXBCb3BCdWZmZXIuZmlsbCgwKTsKIAotICAgIHNpemVfdCBiaXBCb3BTYW1wbGVDb3Vu
dCA9IGNlaWwoQmlwQm9wRHVyYXRpb24gKiBtX3NhbXBsZVJhdGUpOworICAgIHNpemVfdCBiaXBC
b3BTYW1wbGVDb3VudCA9IGNlaWwoQmlwQm9wRHVyYXRpb24gKiBzYW1wbGVSYXRlKTsKICAgICBz
aXplX3QgYmlwU3RhcnQgPSAwOwotICAgIHNpemVfdCBib3BTdGFydCA9IG1fc2FtcGxlUmF0ZTsK
KyAgICBzaXplX3QgYm9wU3RhcnQgPSBzYW1wbGVSYXRlOwogCi0gICAgYWRkSHVtKEJpcEJvcFZv
bHVtZSwgQmlwRnJlcXVlbmN5LCBtX3NhbXBsZVJhdGUsIDAsIG1fYmlwQm9wQnVmZmVyLmRhdGEo
KSArIGJpcFN0YXJ0LCBiaXBCb3BTYW1wbGVDb3VudCk7Ci0gICAgYWRkSHVtKEJpcEJvcFZvbHVt
ZSwgQm9wRnJlcXVlbmN5LCBtX3NhbXBsZVJhdGUsIDAsIG1fYmlwQm9wQnVmZmVyLmRhdGEoKSAr
IGJvcFN0YXJ0LCBiaXBCb3BTYW1wbGVDb3VudCk7CisgICAgYWRkSHVtKEJpcEJvcFZvbHVtZSwg
QmlwRnJlcXVlbmN5LCBzYW1wbGVSYXRlLCAwLCBtX2JpcEJvcEJ1ZmZlci5kYXRhKCkgKyBiaXBT
dGFydCwgYmlwQm9wU2FtcGxlQ291bnQpOworICAgIGFkZEh1bShCaXBCb3BWb2x1bWUsIEJvcEZy
ZXF1ZW5jeSwgc2FtcGxlUmF0ZSwgMCwgbV9iaXBCb3BCdWZmZXIuZGF0YSgpICsgYm9wU3RhcnQs
IGJpcEJvcFNhbXBsZUNvdW50KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAJKHJldmlzaW9uIDIxNDEyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCwxNCAr
ODQsMTQgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dXBkYXRlU2V0dAogewogICAg
IHNldHRpbmdzLnNldFZvbHVtZSh2b2x1bWUoKSk7CiAgICAgc2V0dGluZ3Muc2V0RWNob0NhbmNl
bGxhdGlvbihlY2hvQ2FuY2VsbGF0aW9uKCkpOwotICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUo
NDQxMDApOworICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsKIH0KIAog
dm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgY2FwYWJp
bGl0aWVzLnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDAuMCwgMS4wKSk7CiAgICAg
Y2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKLSAgICBjYXBhYmlsaXRpZXMu
c2V0U2FtcGxlUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDQ0MTAwLCA0NDEwMCkpOworICAg
IGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRlKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoNDQxMDAs
IDQ4MDAwKSk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmluaXRpYWxpemVT
dXBwb3J0ZWRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKQpAQCAtMTAzLDYgKzEwMyw5IEBAIHZvaWQgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmluaXRpYWxpemUKIAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKKyAgICBpZiAoIXNhbXBsZVJhdGUoKSkKKyAg
ICAgICAgc2V0U2FtcGxlUmF0ZSghZGV2aWNlSW5kZXgoKSA/IDQ0MTAwIDogNDgwMDApOworCiAg
ICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogCiAgICAg
bV9zdGFydFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCShyZXZpc2lvbiAyMTQxMjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNTIg
KzQ0LDM3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgQXRvbWljU3RyaW5nJiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja0F1ZGlvU291cmNlUGVyc2lzdGVudElEKCkKK1Zl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNl
cygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIjIzOWMy
NGIxLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHJldHVybiBpZDsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nJiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6bW9ja1ZpZGVvU291cmNlUGVyc2lzdGVudElEKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiMjM5YzI0YjAtMmIx
NS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY2IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgcmV0dXJuIGlkOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlOjptb2NrQXVkaW9Tb3VyY2VOYW1lKCkKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJNb2NrIGF1ZGlvIGRldmljZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHJldHVybiBuYW1lOwotfQotCi1j
b25zdCBBdG9taWNTdHJpbmcmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjptb2NrVmlkZW9Tb3Vy
Y2VOYW1lKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1l
KCJNb2NrIHZpZGVvIGRldmljZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHJldHVybiBuYW1lOwotfQotCi1DYXB0dXJlRGV2aWNlIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjphdWRpb0RldmljZUluZm8oKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
YXB0dXJlRGV2aWNlPiBkZXZpY2VJbmZvKG1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJRCgpLCBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywgbW9ja0F1ZGlvU291cmNlTmFtZSgpLCAi
Iik7Ci0gICAgcmV0dXJuIGRldmljZUluZm87CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPj4gaW5mbzsKKyAgICBpZiAoIWluZm8uZ2V0KCkuc2l6ZSgpKSB7
CisgICAgICAgIGluZm8uZ2V0KCkuYXBwZW5kKENhcHR1cmVEZXZpY2UoIjIzOWMyNGIwLTJiMTUt
MTFlMy04MjI0LTA4MDAyMDBjOWE2NiIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlv
LCAiTW9jayBhdWRpbyBkZXZpY2UgMSIpKTsKKyAgICAgICAgaW5mby5nZXQoKS5hcHBlbmQoQ2Fw
dHVyZURldmljZSgiMjM5YzI0YjEtMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY2IiwgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8sICJNb2NrIGF1ZGlvIGRldmljZSAyIikpOworICAg
IH0KKyAgICByZXR1cm4gaW5mbzsKIH0KIAotQ2FwdHVyZURldmljZSBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZTo6dmlkZW9EZXZpY2VJbmZvKCkKK1ZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNlcygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPENhcHR1cmVEZXZpY2U+IGRldmljZUluZm8obW9ja1ZpZGVvU291cmNlUGVyc2lzdGVu
dElEKCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvLCBtb2NrVmlkZW9Tb3VyY2VO
YW1lKCksICIiKTsKLSAgICByZXR1cm4gZGV2aWNlSW5mbzsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VmVjdG9yPENhcHR1cmVEZXZpY2U+PiBpbmZvOworICAgIGlmICghaW5mby5nZXQoKS5z
aXplKCkpIHsKKyAgICAgICAgaW5mby5nZXQoKS5hcHBlbmQoQ2FwdHVyZURldmljZSgiMjM5YzI0
YjItMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY2IiwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6VmlkZW8sICJNb2NrIHZpZGVvIGRldmljZSAxIikpOworICAgICAgICBpbmZvLmdldCgpLmFw
cGVuZChDYXB0dXJlRGV2aWNlKCIyMzljMjRiMy0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjYi
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbywgIk1vY2sgdmlkZW8gZGV2aWNlIDIi
KSk7CisgICAgfQorICAgIHJldHVybiBpbmZvOwogfQogCi0KIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IEJhc2VSZWFs
dGltZU1lZGlhU291cmNlQ2xhc3MoaWQsIHR5cGUsIG5hbWUpCiB7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAg
c2V0UGVyc2lzdGVudElEKG1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJRCgpKTsKKyAgICAgICAg
bV9kZXZpY2VJbmRleCA9IG5hbWUgPT0gYXVkaW9EZXZpY2VzKClbMF0ubGFiZWwoKSA/IDAgOiAx
OworICAgICAgICBzZXRQZXJzaXN0ZW50SUQoYXVkaW9EZXZpY2VzKClbbV9kZXZpY2VJbmRleF0u
cGVyc2lzdGVudElkKCkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgc2V0UGVyc2lzdGVudElEKG1vY2tWaWRlb1Nv
dXJjZVBlcnNpc3RlbnRJRCgpKTsKKyAgICAgICAgbV9kZXZpY2VJbmRleCA9IG5hbWUgPT0gdmlk
ZW9EZXZpY2VzKClbMF0ubGFiZWwoKSA/IDAgOiAxOworICAgICAgICBzZXRQZXJzaXN0ZW50SUQo
dmlkZW9EZXZpY2VzKClbbV9kZXZpY2VJbmRleF0ucGVyc2lzdGVudElkKCkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgJKHJldmlzaW9uIDIxNDEy
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTQgKzUzLDggQEAgY2xhc3MgTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2UgOiBwdWJsaWMgQgogcHVibGljOgogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlKCkgeyB9CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2Nr
QXVkaW9Tb3VyY2VQZXJzaXN0ZW50SUQoKTsKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBtb2NrQXVkaW9Tb3VyY2VOYW1lKCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBtb2NrVmlkZW9Tb3VyY2VQZXJzaXN0ZW50SUQoKTsKLSAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBtb2NrVmlkZW9Tb3VyY2VOYW1lKCk7Ci0KLSAgICBzdGF0aWMgQ2FwdHVyZURldmlj
ZSBhdWRpb0RldmljZUluZm8oKTsKLSAgICBzdGF0aWMgQ2FwdHVyZURldmljZSB2aWRlb0Rldmlj
ZUluZm8oKTsKKyAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMo
KTsKKyAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiB2aWRlb0RldmljZXMoKTsKIAog
cHJvdGVjdGVkOgogICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQs
IFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CkBAIC03OCw2ICs3Miw4IEBAIHByb3RlY3RlZDoK
ICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFp
bnRzLmdldCgpOyB9CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
JiBzdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgdW5zaWduZWQgZGV2aWNlSW5kZXgoKSB7
IHJldHVybiBtX2RldmljZUluZGV4OyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXpl
Q2FwYWJpbGl0aWVzKCk7CiAgICAgdm9pZCBpbml0aWFsaXplU2V0dGluZ3MoKTsKQEAgLTg3LDYg
KzgzLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3Ry
YWludHM+IG1fY29uc3RyYWludHM7CisgICAgdW5zaWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsK
ICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAyMTQxMjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzMsMjYgKzczLDMxIEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnZhbGkKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoYXVk
aW9Db25zdHJhaW50cy5pc1ZhbGlkKCkpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1v
Y2tBdWRpb1NvdXJjZU5hbWUoKSwgbnVsbHB0cik7Ci0gICAgICAgIGlmICghYXVkaW9Tb3VyY2Ut
PnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQp
KSB7Ci0gICAgICAgICAgICBpZiAoaW52YWxpZEhhbmRsZXIpCi0gICAgICAgICAgICAgICAgaW52
YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0cmFpbnQpOwotICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBhdXRvJiBkZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNl
cygpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZXMuc2l6ZSgpOyBpKysp
IHsKKyAgICAgICAgICAgIGF1dG8mIGRldmljZSA9IGRldmljZXNbaV07CisgICAgICAgICAgICBh
dXRvIGF1ZGlvU291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2Uu
bGFiZWwoKSwgbnVsbHB0cik7CisgICAgICAgICAgICBpZiAoIWF1ZGlvU291cmNlLT5zdXBwb3J0
c0NvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkgeworICAg
ICAgICAgICAgICAgIGlmIChpbnZhbGlkSGFuZGxlcikKKyAgICAgICAgICAgICAgICAgICAgaW52
YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1ZGlvU291cmNlSWRzLmFwcGVuZChkZXZpY2Uu
cGVyc2lzdGVudElkKCkpOwogICAgICAgICB9Ci0KLSAgICAgICAgYXVkaW9Tb3VyY2VJZHMuYXBw
ZW5kKE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjptb2NrQXVkaW9Tb3VyY2VQZXJzaXN0ZW50SUQo
KSk7CiAgICAgfQogCiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7Ci0gICAg
ICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjptb2NrVmlkZW9Tb3VyY2VOYW1lKCksIG51bGxwdHIpOwot
ICAgICAgICBpZiAoIXZpZGVvU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHZpZGVvQ29uc3Ry
YWludHMsIGludmFsaWRDb25zdHJhaW50KSkgewotICAgICAgICAgICAgaWYgKGludmFsaWRIYW5k
bGVyKQotICAgICAgICAgICAgICAgIGludmFsaWRIYW5kbGVyKGludmFsaWRDb25zdHJhaW50KTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byYgZGV2aWNlcyA9IE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBkZXZpY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBhdXRvJiBkZXZpY2UgPSBk
ZXZpY2VzW2ldOworICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOworICAgICAgICAgICAg
aWYgKCF2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBp
bnZhbGlkQ29uc3RyYWludCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW52YWxpZEhhbmRsZXIp
CisgICAgICAgICAgICAgICAgICAgIGludmFsaWRIYW5kbGVyKGludmFsaWRDb25zdHJhaW50KTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2aWRl
b1NvdXJjZUlkcy5hcHBlbmQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsKICAgICAgICAgfQotCi0K
LSAgICAgICAgdmlkZW9Tb3VyY2VJZHMuYXBwZW5kKE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpt
b2NrVmlkZW9Tb3VyY2VQZXJzaXN0ZW50SUQoKSk7CiAgICAgfQogCiAgICAgdmFsaWRIYW5kbGVy
KFdURk1vdmUoYXVkaW9Tb3VyY2VJZHMpLCBXVEZNb3ZlKHZpZGVvU291cmNlSWRzKSk7CkBAIC0x
MDMsMTYgKzEwOCwzMCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVh
CiAgICAgVmVjdG9yPFJlZjxSZWFsdGltZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2VzOwogICAg
IFZlY3RvcjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsKIAotICAgIGlm
IChhdWRpb0RldmljZUlEID09IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjptb2NrQXVkaW9Tb3Vy
Y2VQZXJzaXN0ZW50SUQoKSkgewotICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Om1vY2tBdWRpb1NvdXJj
ZU5hbWUoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2UpCi0gICAgICAg
ICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBp
ZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8mIGF1ZGlvRGV2aWNl
cyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb0RldmljZXMoKTsKKyAgICAgICAgaWYg
KGF1ZGlvRGV2aWNlSUQgPT0gYXVkaW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7CisgICAg
ICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoYXVk
aW9EZXZpY2VzWzBdLmxhYmVsKCksIGF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICAgICAgaWYg
KHNvdXJjZSkKKyAgICAgICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhdWRpb0RldmljZUlEID09IGF1ZGlv
RGV2aWNlc1sxXS5wZXJzaXN0ZW50SWQoKSkgeworICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1sxXS5sYWJlbCgpLCBh
dWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UpCisgICAgICAgICAgICAg
ICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAg
IH0KICAgICB9CiAKLSAgICBpZiAodmlkZW9EZXZpY2VJRCA9PSBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6bW9ja1ZpZGVvU291cmNlUGVyc2lzdGVudElEKCkpIHsKLSAgICAgICAgYXV0byBzb3Vy
Y2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKE1vY2tSZWFsdGltZU1lZGlhU291
cmNlOjptb2NrVmlkZW9Tb3VyY2VOYW1lKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICBp
ZiAoc291cmNlKQotICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSkgeworICAgICAg
ICBhdXRvJiB2aWRlb0RldmljZXMgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZp
Y2VzKCk7CisgICAgICAgIGlmICh2aWRlb0RldmljZUlEID09IHZpZGVvRGV2aWNlc1swXS5wZXJz
aXN0ZW50SWQoKSkgeworICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKHZpZGVvRGV2aWNlc1swXS5sYWJlbCgpLCB2aWRlb0NvbnN0cmFpbnRz
KTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UpCisgICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2Vz
LmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIH0gZWxzZSBpZiAodmlk
ZW9EZXZpY2VJRCA9PSB2aWRlb0RldmljZXNbMV0ucGVyc2lzdGVudElkKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRlb0Rl
dmljZXNbMV0ubGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoc291
cmNlKQorICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VO
b25OdWxsKCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHZpZGVvU291cmNlcy5pc0Vt
cHR5KCkgJiYgYXVkaW9Tb3VyY2VzLmlzRW1wdHkoKSkKQEAgLTEyNSw4ICsxNDQsOCBAQCBWZWN0
b3I8Q2FwdHVyZURldmljZT4gTW9ja1JlYWx0aW1lTWVkaWFTCiB7CiAgICAgVmVjdG9yPENhcHR1
cmVEZXZpY2U+IHNvdXJjZXM7CiAKLSAgICBzb3VyY2VzLmFwcGVuZChNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZTo6YXVkaW9EZXZpY2VJbmZvKCkpOwotICAgIHNvdXJjZXMuYXBwZW5kKE1vY2tSZWFs
dGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZUluZm8oKSk7CisgICAgc291cmNlcy5hcHBlbmRW
ZWN0b3IoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpKTsKKyAgICBzb3Vy
Y2VzLmFwcGVuZFZlY3RvcihNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkp
OwogCiAgICAgcmV0dXJuIHNvdXJjZXM7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAkocmV2aXNp
b24gMjE0MTI5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDggQEAgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZAogICAgIDogTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpWaWRlbywgbmFtZSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlz
LCAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUpCiB7Ci0gICAgc2V0RnJh
bWVSYXRlKDMwKTsKKyAgICBzZXRGcmFtZVJhdGUoIWRldmljZUluZGV4KCkgPyAzMCA6IDE1KTsK
KyAgICBzZXRGYWNpbmdNb2RlKCFkZXZpY2VJbmRleCgpID8gUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpVc2VyIDogUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpFbnZpcm9ubWVudCk7
CiAgICAgbV9kYXNoV2lkdGhzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMik7CiAgICAgbV9kYXNo
V2lkdGhzLnVuY2hlY2tlZEFwcGVuZCg2KTsKICAgICBtX2Rhc2hXaWR0aHMudW5jaGVja2VkQXBw
ZW5kKDYpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0MTI5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDMtMTkgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBS
ZXNwZWN0IGNvbnN0cmFpbnRzIHBhc3NlZCB0byBnZXRVc2VyTWVkaWEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTg3MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzExMzg5MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCBh
bmQgSmVyIE5vYmxlLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMt
ZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRtbDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRDYXBhYmlsaXRp
ZXMtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTAzLTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYVF1ZXJ5TGlzdCBpbnN0YW5jZXMgZG8gbm90IHVwZGF0ZSBm
b3IgYHByZWZlcnMtcmVkdWNlZC1tb3Rpb25gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1lbnVtZXJh
dGVEZXZpY2VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0MTI5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDE4IEBAIFBBU1MgY2FwdHVyZURldmljZS5s
YWJlbCBpcyBub24tbnVsbC4KIFBBU1MgY2FwdHVyZURldmljZS5sYWJlbCBpcyAiIgogUEFTUyBj
YXB0dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwuCiAKK1BBU1MgY2FwdHVyZURldmljZS5r
aW5kIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5vbi1udWxs
LgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2
aWNlLmxhYmVsIGlzICIiCitQQVNTIGNhcHR1cmVEZXZpY2UuZ3JvdXBJZCBpcyBub24tbnVsbC4K
KworUEFTUyBjYXB0dXJlRGV2aWNlLmtpbmQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZp
Y2UuZGV2aWNlSWQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm9u
LW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgIiIKK1BBU1MgY2FwdHVyZURldmlj
ZS5ncm91cElkIGlzIG5vbi1udWxsLgorCiAKICoqKiBDYWxsaW5nIG1lZGlhRGV2aWNlcy5lbnVt
ZXJhdGVEZXZpY2VzIHdpdGggcGVyc2lzdGVudCBhY2Nlc3MsIGFuZCB3aXRob3V0IGEgbWVkaWEg
c3RyZWFtIHRyYWNrCiAKQEAgLTQyLDYgKzU0LDIwIEBAIFBBU1MgY2FwdHVyZURldmljZS5sYWJl
bCBpcyBub3QgIiIKIFBBU1MgY2FwdHVyZURldmljZS5ncm91cElkIGlzIG5vbi1udWxsLgogUEFT
UyBkZXZpY2VJZHMuaW5kZXhPZihjYXB0dXJlRGV2aWNlLmRldmljZUlkKSBpcyBub3QgLTEKIAor
UEFTUyBjYXB0dXJlRGV2aWNlLmtpbmQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2Uu
ZGV2aWNlSWQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm9uLW51
bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm90ICIiCitQQVNTIGNhcHR1cmVEZXZp
Y2UuZ3JvdXBJZCBpcyBub24tbnVsbC4KK1BBU1MgZGV2aWNlSWRzLmluZGV4T2YoY2FwdHVyZURl
dmljZS5kZXZpY2VJZCkgaXMgbm90IC0xCisKK1BBU1MgY2FwdHVyZURldmljZS5raW5kIGlzIG5v
bi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmRldmljZUlkIGlzIG5vbi1udWxsLgorUEFTUyBj
YXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vbi1udWxsLgorUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVs
IGlzIG5vdCAiIgorUEFTUyBjYXB0dXJlRGV2aWNlLmdyb3VwSWQgaXMgbm9uLW51bGwuCitQQVNT
IGRldmljZUlkcy5pbmRleE9mKGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQpIGlzIG5vdCAtMQorCiAK
ICoqKiBDYWxsaW5nIG1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzIHdpdGhvdXQgcGVyc2lz
dGVudCBhY2Nlc3MsIHdpdGggYSBtZWRpYSBzdHJlYW0gdHJhY2sKIApAQCAtNjEsNiArODcsMjAg
QEAgUEFTUyBjYXB0dXJlRGV2aWNlLmxhYmVsIGlzIG5vdCAiIgogUEFTUyBjYXB0dXJlRGV2aWNl
Lmdyb3VwSWQgaXMgbm9uLW51bGwuCiBQQVNTIGRldmljZUlkcy5pbmRleE9mKGNhcHR1cmVEZXZp
Y2UuZGV2aWNlSWQpIGlzIG5vdCAtMQogCitQQVNTIGNhcHR1cmVEZXZpY2Uua2luZCBpcyBub24t
bnVsbC4KK1BBU1MgY2FwdHVyZURldmljZS5kZXZpY2VJZCBpcyBub24tbnVsbC4KK1BBU1MgY2Fw
dHVyZURldmljZS5sYWJlbCBpcyBub24tbnVsbC4KK1BBU1MgY2FwdHVyZURldmljZS5sYWJlbCBp
cyBub3QgIiIKK1BBU1MgY2FwdHVyZURldmljZS5ncm91cElkIGlzIG5vbi1udWxsLgorUEFTUyBk
ZXZpY2VJZHMuaW5kZXhPZihjYXB0dXJlRGV2aWNlLmRldmljZUlkKSBpcyBub3QgLTEKKworUEFT
UyBjYXB0dXJlRGV2aWNlLmtpbmQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UuZGV2
aWNlSWQgaXMgbm9uLW51bGwuCitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm9uLW51bGwu
CitQQVNTIGNhcHR1cmVEZXZpY2UubGFiZWwgaXMgbm90ICIiCitQQVNTIGNhcHR1cmVEZXZpY2Uu
Z3JvdXBJZCBpcyBub24tbnVsbC4KK1BBU1MgZGV2aWNlSWRzLmluZGV4T2YoY2FwdHVyZURldmlj
ZS5kZXZpY2VJZCkgaXMgbm90IC0xCisKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMtZW51bWVyYXRlRGV2aWNlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMuaHRtbAkocmV2
aXNpb24gMjE0MTI5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMtZW51bWVyYXRlRGV2aWNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRW1wdHlTdHJpbmcoImNh
cHR1cmVEZXZpY2UubGFiZWwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZU5vbk51bGwoImNhcHR1cmVEZXZpY2UuZ3JvdXBJZCIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXZpY2VJZHMubGVuZ3Ro
IDwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGV2aWNlSWRzLmxlbmd0aCA8
IDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZUlkcy5wdXNoKGNhcHR1
cmVEZXZpY2UuZGV2aWNlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkTm90QmUoImRldmljZUlkcy5pbmRl
eE9mKGNhcHR1cmVEZXZpY2UuZGV2aWNlSWQpIiwgIi0xIik7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdl
dFVzZXJNZWRpYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDEyOSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTQsMzUgKzQsNTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQQogCiAKIFBBU1MgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMu
d2Via2l0R2V0VXNlck1lZGlhIGlzICd1bmRlZmluZWQnCisKIFBBU1MgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0cmVhbTEpOyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBBU1Mg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pIHJlamVjdGVkIHdpdGggZXJy
b3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYS5hcHBseSh1bmRlZmluZWQpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJv
cjogQ2FuIG9ubHkgY2FsbCBNZWRpYURldmljZXMuZ2V0VXNlck1lZGlhIG9uIGluc3RhbmNlcyBv
ZiBNZWRpYURldmljZXMKLVBBU1MgU3RyZWFtIGdlbmVyYXRlZC4KK1BBU1MgU3RyZWFtIDEgZ2Vu
ZXJhdGVkLgogUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyBz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMAorCiBQQVNTIG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzp0cnVlfSkudGhlbihnb3RTdHJlYW0yKTsgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIFN0cmVhbSBnZW5lcmF0ZWQuCitQQVNTIFN0cmVh
bSAyIGdlbmVyYXRlZC4KIFBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDAK
IFBBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDEKKwogUEFTUyBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRo
ZW4oZ290U3RyZWFtMyk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBTdHJlYW0gZ2Vu
ZXJhdGVkLgorUEFTUyBTdHJlYW0gMyBnZW5lcmF0ZWQuCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBp
cyAxCisKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnt9
LCB2aWRlbzp7fX0pLnRoZW4oZ290U3RyZWFtNCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgot
UEFTUyBTdHJlYW0gZ2VuZXJhdGVkLgorUEFTUyBTdHJlYW0gNCBnZW5lcmF0ZWQuCiBQQVNTIHN0
cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCBpcyAxCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHthdWRpbzphdWRpb0NvbnN0cmFpbnRzLCB2aWRlbzpmYWxzZX0pLnRoZW4oZ290U3RyZWFt
V2l0aENvbnN0cmFpbnRzMSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIFN0cmVhbSBn
ZW5lcmF0ZWQuCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86dmlkZW9Db25zdHJhaW50c30pLnRoZW4oZ290U3RyZWFtV2l0aENvbnN0
cmFpbnRzMikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIFN0cmVhbSBnZW5lcmF0ZWQu
CisKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmF1ZGlv
Q29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czEpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBTdHJlYW0gNSBnZW5lcmF0ZWQuCitQQVNTIHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCBpcyAwCisKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3Zp
ZGVvOnZpZGVvQ29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czIpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBTdHJlYW0gNiBnZW5lcmF0ZWQuCitQQVNTIHN0
cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAwCitQQVNTIHN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCBpcyAxCisKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe3ZpZGVvOnZpZGVvQ29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJh
aW50czMpLmNhdGNoKGVycm9yMSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIFN0cmVh
bSA3IGdlbmVyYXRlZC4KK1BBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0dGlu
Z3MoKS5mYWNpbmdNb2RlIGlzICJ1c2VyIgorUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5s
ZW5ndGggaXMgMAorCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHth
dWRpbzphdWRpb0NvbnN0cmFpbnRzLCB2aWRlbzpmYWxzZX0pLnRoZW4oaW52YWxpZEdvdFN0cmVh
bSkuY2F0Y2goZXJyb3JXaXRoQ29uc3RyYWludHMxKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
IFBBU1MgRXJyb3IgY2FsbGJhY2sgY2FsbGVkLgorCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dmlkZW9Db25zdHJhaW50c30pLnRo
ZW4oaW52YWxpZEdvdFN0cmVhbSkuY2F0Y2goZXJyb3JXaXRoQ29uc3RyYWludHMyKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgRXJyb3IgY2FsbGJhY2sgY2FsbGVkLgogUEFTUyBlcnJv
ckFyZy5uYW1lIGlzICJFcnJvciIKLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKHZhbGlkU3RyZWFtLCBlcnJvcjEpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KKworUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZX0pLnRoZW4odmFsaWRTdHJlYW0pLmNhdGNoKGVycm9yMSk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgogUEFTUyBTdHJlYW0gZ2VuZXJhdGVkIGJlY2F1c2UgcGFnZSBoYXMg
YWxyZWFkeSBhdXRoZW50aWNhdGVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2Vy
TWVkaWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRtbAkocmV2aXNpb24gMjE0MTI5KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgZnVuY3Rpb24gZXJyb3IxKGUpIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJFcnJv
ciBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgRXJyb3Ig
Y2FsbGJhY2sgY2FsbGVkLCBlcnJvciA9ICR7ZX1gKTsKICAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKICAgICAgICAgICAgIH0KIApAQCAtNDYsNyArNDYsOCBAQAogICAgICAgICAgICAg
ICAgIC8vIGFzIGl0IHNob3VsZCBub3Qgc2VlIHRoZSByZXF1ZXN0IGJlY2F1c2UgdGhlIGN1cnJl
bnQgYnJvd3NpbmcgY29udGV4dCBoYXMgYWxyZWFkeQogICAgICAgICAgICAgICAgIC8vIHN1Y2Nl
c3NmdWxseSBjcmVhdGVkIGEgc3RyZWFtIGZvciB0aGUgbW9jayBhdWRpbyBkZXZpY2UuCiAgICAg
ICAgICAgICAgICAgc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHth
dWRpbzp0cnVlfSkudGhlbih2YWxpZFN0cmVhbSwgZXJyb3IxKTsiKTsKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih2YWxpZFN0cmVhbSku
Y2F0Y2goZXJyb3IxKTsiKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24g
ZXJyb3JXaXRoQ29uc3RyYWludHMxKCkgewpAQCAtNTksMTEgKzYwLDE2IEBACiAgICAgICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTEKICAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAgICAgICAgICBzaG91
bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZh
bHNlLCB2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihpbnZhbGlkR290U3RyZWFtKS5jYXRj
aChlcnJvcldpdGhDb25zdHJhaW50czIpIik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGZ1bmN0aW9uIGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czIoKSB7Ci0gICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRlZC4iKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdv
dFN0cmVhbVdpdGhDb25zdHJhaW50czMocykgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIDcgZ2VuZXJhdGVkLiIpOworCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXS5nZXRTZXR0aW5ncygpLmZhY2luZ01vZGUiLCAidXNlciIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgiLCAiMCIpOwogCiAg
ICAgICAgICAgICAgICAgYXVkaW9Db25zdHJhaW50cyA9IHsKICAgICAgICAgICAgICAgICAgICAg
c2FtcGxlUmF0ZTogewpAQCAtNzIsMTQgKzc4LDM1IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZGVhbDogMS4wCiAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAg
IHNhbXBsZVJhdGU6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiA0ODAwMAorICAg
ICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IDg4MDAwCiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAg
ICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoe2F1ZGlvOmF1ZGlvQ29uc3RyYWludHMsIHZpZGVvOmZhbHNlfSkudGhlbihpbnZhbGlkR290
U3RyZWFtKS5jYXRjaChlcnJvcldpdGhDb25zdHJhaW50czEpIik7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czEoKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRlZC4iKTsKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czIocykgeworICAgICAgICAgICAgICAg
IHN0cmVhbSA9IHM7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIDYgZ2VuZXJh
dGVkLiIpOworCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCIsICIwIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpLmxlbmd0aCIsICIxIik7CisKKyAgICAgICAgICAgICAgICB2aWRlb0NvbnN0
cmFpbnRzID0geworICAgICAgICAgICAgICAgICAgICBmYWNpbmdNb2RlOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBleGFjdDogWyd1c2VyJ10KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e3ZpZGVvOnZpZGVvQ29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czMp
LmNhdGNoKGVycm9yMSkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Z290U3RyZWFtV2l0aENvbnN0cmFpbnRzMShzKSB7CisgICAgICAgICAgICAgICAgc3RyZWFtID0g
czsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gNSBnZW5lcmF0ZWQuIik7CisK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
IiwgIjEiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIiwgIjAiKTsKIAogICAgICAgICAgICAgICAgIHZpZGVvQ29uc3RyYWludHMgPSB7
CiAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB7CkBAIC05MywxMiArMTIwLDEzIEBACiAgICAg
ICAgICAgICAgICAgICAgICAgICBleGFjdDogWydlbnZpcm9ubWVudCddCiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZp
ZGVvOnZpZGVvQ29uc3RyYWludHN9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czIpIik7
CisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86dmlkZW9Db25z
dHJhaW50c30pLnRoZW4oZ290U3RyZWFtV2l0aENvbnN0cmFpbnRzMikiKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtNChzKSB7CiAgICAgICAgICAgICAg
ICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gZ2VuZXJh
dGVkLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSA0IGdlbmVyYXRlZC4i
KTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoIiwgIjEiKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJh
Y2tzKCkubGVuZ3RoIiwgIjEiKTsKIApAQCAtMTExLDMzICsxMzksMzcgQEAKICAgICAgICAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgc2FtcGxlU2l6ZTogMTEKICAgICAgICAg
ICAgICAgICB9OwotICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86YXVkaW9Db25zdHJhaW50cywgdmlkZW86ZmFs
c2V9KS50aGVuKGdvdFN0cmVhbVdpdGhDb25zdHJhaW50czEpIik7CisgICAgICAgICAgICAgICAg
ZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86YXVkaW9Db25zdHJhaW50c30pLnRoZW4oZ290
U3RyZWFtV2l0aENvbnN0cmFpbnRzMSkiKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ZnVuY3Rpb24gZ290U3RyZWFtMyhzKSB7CiAgICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gZ2VuZXJhdGVkLiIpOworICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSAzIGdlbmVyYXRlZC4iKTsKICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwgIjEiKTsKICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIiwgIjEi
KTsKIAorICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnt9LCB2
aWRlbzp7fX0pLnRoZW4oZ290U3RyZWFtNCk7Iik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewogICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRlZC4iKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gMiBnZW5lcmF0ZWQuIik7CiAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCIsICIwIik7CiAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCIs
ICIxIik7CiAKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coIm5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlLCB2aWRlbzp0cnVlfSkudGhlbihnb3RTdHJlYW0zKTsiKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7CiAgICAgICAgICAgICAgICAgc3Ry
ZWFtID0gczsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0gZ2VuZXJhdGVkLiIp
OworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSAxIGdlbmVyYXRlZC4iKTsKICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwg
IjEiKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tzKCku
bGVuZ3RoIiwgIjAiKTsKIAorICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAgICAg
ICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e3ZpZGVvOnRydWV9KS50aGVuKGdvdFN0cmVhbTIpOyIpCiAgICAgICAgICAgICB9CiAKQEAgLTE0
OSw2ICsxODEsNyBAQAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBzaG91bGRCZSgidHlw
ZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMud2Via2l0R2V0VXNlck1lZGlhIiwgIid1bmRlZmlu
ZWQnIik7CiAgICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAg
ICAgICAgZGVidWcoIiIpOwogICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihnb3RTdHJlYW0xKTsi
KTsKICAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhLmFwcGx5
KHVuZGVmaW5lZCwge2F1ZGlvOnRydWV9KS50aGVuKGludmFsaWRHb3RTdHJlYW0sIGZ1bmN0aW9u
KGVycm9yKSB7CiAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIm5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhLmFwcGx5KHVuZGVmaW5lZCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjog
IiArIGVycm9yKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tdmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjE0MTI5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyAr
MzQsNyBAQCBQQVNTIHZpZGVvLnZpZGVvVHJhY2tzWzBdLmtpbmQgaXMgIm1haW4iCiB2aWRlby52
aWRlb1RyYWNrc1swXSBwcm9wZXJ0aWVzOgogICB0cmFjay5pZCA9IDxVVUlEPgogICB0cmFjay5r
aW5kID0gbWFpbgotICB0cmFjay5sYWJlbCA9IE1vY2sgdmlkZW8gZGV2aWNlCisgIHRyYWNrLmxh
YmVsID0gTW9jayB2aWRlbyBkZXZpY2UgMQogICB0cmFjay5sYW5ndWFnZSA9IAogICB0cmFjay5z
ZWxlY3RlZCA9IHRydWUKICAgdHJhY2suc291cmNlQnVmZmVyID0gbnVsbApAQCAtNDgsNyArNDgs
NyBAQCBQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzWzBdLmtpbmQgaXMgIm1haW4iCiB2aWRlby5hdWRp
b1RyYWNrc1swXSBwcm9wZXJ0aWVzOgogICB0cmFjay5pZCA9IDxVVUlEPgogICB0cmFjay5raW5k
ID0gbWFpbgotICB0cmFjay5sYWJlbCA9IE1vY2sgYXVkaW8gZGV2aWNlCisgIHRyYWNrLmxhYmVs
ID0gTW9jayBhdWRpbyBkZXZpY2UgMQogICB0cmFjay5sYW5ndWFnZSA9IAogICB0cmFjay5lbmFi
bGVkID0gdHJ1ZQogICB0cmFjay5zb3VyY2VCdWZmZXIgPSBudWxsCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0MTI5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldENh
cGFiaWxpdGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAg
dmlkZW8gdHJhY2sgY2FwYWJpbGl0aWVzOgogYXVkaW8gdHJhY2sgY2FwYWJpbGl0aWVzOgogICBj
YXBhYmlsaXRpZXMuZGV2aWNlSWQgPSA8VVVJRD4KICAgY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24gPSBbIHRydWUsIHRydWUgXQotICBjYXBhYmlsaXRpZXMuc2FtcGxlUmF0ZSA9IHsgbWF4
OiA0NDEwMCwgbWluOiA0NDEwMCB9CisgIGNhcGFiaWxpdGllcy5zYW1wbGVSYXRlID0geyBtYXg6
IDQ4MDAwLCBtaW46IDQ0MTAwIH0KICAgY2FwYWJpbGl0aWVzLnZvbHVtZSA9IHsgbWF4OiAxLCBt
aW46IDAgfQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>