<?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>190653</bug_id>
          
          <creation_ts>2018-10-16 16:44:06 -0700</creation_ts>
          <short_desc>[WebGPU] Implement WebGPU bindings up through WebGPUDevice creation</short_desc>
          <delta_ts>2018-10-18 09:28:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1469946</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-16 16:44:06 -0700</bug_when>
    <thetext>[WebGPU] Implement WebGPU bindings up through WebGPUDevice creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469954</commentid>
    <comment_count>1</comment_count>
      <attachid>352519</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-16 16:51:55 -0700</bug_when>
    <thetext>Created attachment 352519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469962</commentid>
    <comment_count>2</comment_count>
      <attachid>352521</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-16 17:05:20 -0700</bug_when>
    <thetext>Created attachment 352521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469965</commentid>
    <comment_count>3</comment_count>
      <attachid>352521</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-16 17:13:48 -0700</bug_when>
    <thetext>Comment on attachment 352521
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPU.cpp:46
&gt; +    promise.resolve(WebGPUAdapter::create(descriptor));

&apos;eyyyyyyy

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.h:42
&gt; +    WebGPUAdapter&amp; adapter() const { return *m_adapter.get(); } // FIXME: Probably not right; possible to deref nullptr.

this is definitely not right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469973</commentid>
    <comment_count>4</comment_count>
      <attachid>352521</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-10-16 17:24:37 -0700</bug_when>
    <thetext>Comment on attachment 352521
Patch

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

&gt; Source/WebCore/Modules/webgpu/DOMWindowWebGPU.cpp:49
&gt; +// static

Remove this.

&gt; Source/WebCore/Modules/webgpu/DOMWindowWebGPU.cpp:61
&gt; +// static

Same.

&gt; Source/WebCore/Modules/webgpu/DOMWindowWebGPU.idl:27
&gt; +// Add a &quot;webgpu&quot; member to Window that contains the global instance of a &quot;WebGPU&quot;

I don&apos;t think we need this comment.

&gt; Source/WebCore/Modules/webgpu/WebGPU.cpp:37
&gt; +// static

Remove.

&gt; Source/WebCore/Modules/webgpu/WebGPU.cpp:46
&gt; +    WebGPUAdapterPromise promise = WTFMove(deferred);
&gt; +    promise.resolve(WebGPUAdapter::create(descriptor));

This is ok for now, but this will eventually keep a list of active adapters and pass out references to them.

&gt; Source/WebCore/Modules/webgpu/WebGPU.cpp:49
&gt; +WebGPU::WebGPU() = default;

I think this should go after ::create, or in the header.

&gt; Source/WebCore/Modules/webgpu/WebGPU.h:34
&gt; +class WebGPUAdapter;

Don&apos;t need this.

&gt; Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:37
&gt; +// static

Remove.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.h:47
&gt; +    WeakPtr&lt;WebGPUAdapter&gt; m_adapter;

Why is this weak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470271</commentid>
    <comment_count>5</comment_count>
      <attachid>352614</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 12:47:01 -0700</bug_when>
    <thetext>Created attachment 352614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470279</commentid>
    <comment_count>6</comment_count>
      <attachid>352617</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 12:51:05 -0700</bug_when>
    <thetext>Created attachment 352617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470310</commentid>
    <comment_count>7</comment_count>
      <attachid>352631</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 13:36:45 -0700</bug_when>
    <thetext>Created attachment 352631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470314</commentid>
    <comment_count>8</comment_count>
      <attachid>352617</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-10-17 13:37:56 -0700</bug_when>
    <thetext>Comment on attachment 352617
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:45
&gt; +    UNUSED_PARAM(m_descriptor);

This is not needed.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:41
&gt; +    UNUSED_PARAM(m_adapter);

Nor this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470316</commentid>
    <comment_count>9</comment_count>
      <attachid>352631</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-10-17 13:38:45 -0700</bug_when>
    <thetext>Comment on attachment 352631
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:45
&gt; +    UNUSED_PARAM(m_descriptor);

Remove.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:41
&gt; +    UNUSED_PARAM(m_adapter);

Remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470320</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 13:53:38 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #9)
&gt; Comment on attachment 352631 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=352631&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:45
&gt; &gt; +    UNUSED_PARAM(m_descriptor);
&gt; 
&gt; Remove.
&gt; 
&gt; &gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:41
&gt; &gt; +    UNUSED_PARAM(m_adapter);
&gt; 
&gt; Remove.

If I don&apos;t use the private member variables, I get a &quot;Private field __ is unused&quot; error when compiling :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470322</commentid>
    <comment_count>11</comment_count>
      <attachid>352634</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 13:53:46 -0700</bug_when>
    <thetext>Created attachment 352634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470358</commentid>
    <comment_count>12</comment_count>
      <attachid>352634</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-17 15:25:21 -0700</bug_when>
    <thetext>Comment on attachment 352634
Patch

Rejecting attachment 352634 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 352634, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/9643624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470373</commentid>
    <comment_count>13</comment_count>
      <attachid>352657</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-10-17 15:53:58 -0700</bug_when>
    <thetext>Created attachment 352657
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470391</commentid>
    <comment_count>14</comment_count>
      <attachid>352657</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-17 16:31:05 -0700</bug_when>
    <thetext>Comment on attachment 352657
Patch for landing

Clearing flags on attachment: 352657

Committed r237239: &lt;https://trac.webkit.org/changeset/237239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470392</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-17 16:31:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470394</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-17 16:33:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/45355883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470531</commentid>
    <comment_count>17</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-10-18 08:15:02 -0700</bug_when>
    <thetext>the new test webgpu/webgpu-enabled.html

added in https://trac.webkit.org/changeset/237239/webkit

appears to have no test expectations and is showing missing test results. 

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=webgpu%2Fwebgpu-enabled.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352519</attachid>
            <date>2018-10-16 16:51:55 -0700</date>
            <delta_ts>2018-10-16 17:05:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181016165154.patch</filename>
            <type>text/plain</type>
            <size>46126</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA1MmVlNTgyYmI3MGEz
NzRjNDZmYWM4NmU2MjUzNGZlMGRkYjg0OC4uOGFhZGM1YWM1YTgzYmM3MTgwYWZjZDJmNjBhMTgy
ODIwNzRhNzg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuaDogQWRkZWQgYW4gaW5jbHVk
ZSB0byBwcmV2ZW50IGJ1aWxkIGVycm9ycyBpbiBVbmlmaWVkU291cmNlcy4KKwogMjAxOC0xMC0x
NSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXZWJH
UFUgMjAxOCBmZWF0dXJlIGZsYWcgYW5kIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGZsYWcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggNWYwNWQxZWQ4YTM1NWUyNDU2ZmVjZGQwYmZhYmU5MDc1M2Q4MGMz
My4uNmRiMjNiNWRlNzhkZmI1MmM1NTJhOWJlNDNlNGU4NDFmYzUzZDg2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmF1dGhuIgogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3dlYmRhdGFiYXNlIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dl
YmRyaXZlciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2Vic29ja2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy93ZWJ2ciIKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIKQEAgLTE4Nyw2ICsx
ODgsNyBAQCBzZXQoV2ViQ29yZV9JRExfSU5DTFVERVMKICAgICBNb2R1bGVzL3N0cmVhbXMKICAg
ICBNb2R1bGVzL3dlYmF1ZGlvCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZQorICAgIE1vZHVsZXMv
d2ViZ3B1CiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzCiAgICAgTW9kdWxlcy93ZWJ2cgogCkBAIC00
NDQsNiArNDQ2LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICBNb2R1
bGVzL3dlYmRyaXZlci9OYXZpZ2F0b3JXZWJEcml2ZXIuaWRsCiAKKyAgICBNb2R1bGVzL3dlYmdw
dS9ET01XaW5kb3dXZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbAorICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmlkbAorCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaWRsCiAgICAgTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNGE1ZmRmYTI5ZDVjN2VjZTA1MGNkN2RlMGVmMWJhYWE0MmZjODUyMy4uNGVmY2QwZTNk
ZjU4NDY4MzRmNzRjOGRkMGI1NDZiMDljYTUxMGRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC01OSw2ICs1OSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkYXRhYmFzZSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRyaXZlciBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ciBcCiAgICAgJChXZWJDb3JlKS9h
Y2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbiBcCkBAIC0zNjUsNiArMzY2
LDExIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZlci5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0
cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZS
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5k
b3dXZWJHUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2Vi
R1BVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZGM3YWYzMmM1ZDc3ZmY3N2RiNDk0ZWZhZjMwYjEyNjExNTQy
MDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9N
V2luZG93V2ViR1BVLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd1dlYkdQVS5oIgorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJXZWJHUFUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitET01XaW5kb3dXZWJHUFU6OkRPTVdpbmRvd1dlYkdQVShET01XaW5kb3cqIHdpbmRvdykKKyAg
ICA6IERPTVdpbmRvd1Byb3BlcnR5KHdpbmRvdykKK3sKK30KKworRE9NV2luZG93V2ViR1BVOjp+
RE9NV2luZG93V2ViR1BVKCkgPSBkZWZhdWx0OworCitjb25zdCBjaGFyKiBET01XaW5kb3dXZWJH
UFU6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkRPTVdpbmRvd1dlYkdQVSI7Cit9
CisKKy8vIHN0YXRpYworRE9NV2luZG93V2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OmZyb20oRE9N
V2luZG93KiB3aW5kb3cpCit7CisgICAgRE9NV2luZG93V2ViR1BVKiBzdXBwbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8RE9NV2luZG93V2ViR1BVKj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdp
bmRvdywgc3VwcGxlbWVudE5hbWUoKSkpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAg
ICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVdpbmRvd1dlYkdQVT4o
d2luZG93KTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAg
ICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxl
bWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworLy8gc3RhdGljCitX
ZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6d2ViZ3B1KERPTVdpbmRvdyYgd2luZG93KQoreworICAg
IHJldHVybiBET01XaW5kb3dXZWJHUFU6OmZyb20oJndpbmRvdyktPndlYmdwdSgpOworfQorCitX
ZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6d2ViZ3B1KCkgY29uc3QKK3sKKyAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV93ZWJncHUgJiYgZnJhbWUoKSkKKyAg
ICAgICAgbV93ZWJncHUgPSBXZWJHUFU6OmNyZWF0ZSgpOworICAgIHJldHVybiBtX3dlYmdwdS5n
ZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRv
d1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BV
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTZmZDY4MTllYmVhMzU3NmJhNTU0MTEyODFkY2Y5MzEyYmU5MjE3ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRv
d1dlYkdQVS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgorI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RE9NV2luZG93OworY2xhc3MgV2ViR1BVOworCitjbGFzcyBET01XaW5kb3dXZWJHUFUgOiBwdWJs
aWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVi
bGljOgorICAgIGV4cGxpY2l0IERPTVdpbmRvd1dlYkdQVShET01XaW5kb3cqKTsKKyAgICB2aXJ0
dWFsIH5ET01XaW5kb3dXZWJHUFUoKTsKKyAgICBzdGF0aWMgRE9NV2luZG93V2ViR1BVKiBmcm9t
KERPTVdpbmRvdyopOworICAgIHN0YXRpYyBXZWJHUFUqIHdlYmdwdShET01XaW5kb3cmKTsKKyAg
ICBXZWJHUFUqIHdlYmdwdSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgbXV0YWJsZSBSZWZQdHI8V2ViR1BVPiBtX3dl
YmdwdTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5k
b3dXZWJHUFUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2Vi
R1BVLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MGVjZjI0ODMwZjA0Mjg0NDYxMzk1MjhlMGQ1MjdlMDkyYzZh
MzY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9N
V2luZG93V2ViR1BVLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8v
Z2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRs
CisKKy8vIEFkZCBhICJ3ZWJncHUiIG1lbWJlciB0byBXaW5kb3cgdGhhdCBjb250YWlucyB0aGUg
Z2xvYmFsIGluc3RhbmNlIG9mIGEgIldlYkdQVSIKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVQorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgeworICAgIFtSZXBsYWNlYWJsZSwg
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVSB3ZWJncHU7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM2YWFjNjVmNmM3
MDdlMDNkMzUyZDcxN2QzN2VkYmUxNTJkODJmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFUuaCIKKworI2lmIEVO
QUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJKU1dlYkdQVUFkYXB0ZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVBZGFwdGVyUHJvbWlzZSA9IERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8V2ViR1BVQWRhcHRlcj4+OworCisvLyBzdGF0aWMKK1JlZjxXZWJH
UFU+IFdlYkdQVTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFUp
OworfQorCit2b2lkIFdlYkdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVmZXJyZWQpIGNv
bnN0Cit7CisgICAgV2ViR1BVQWRhcHRlclByb21pc2UgcHJvbWlzZSA9IFdURk1vdmUoZGVmZXJy
ZWQpOworICAgIHByb21pc2UucmVzb2x2ZShXZWJHUFVBZGFwdGVyOjpjcmVhdGUoZGVzY3JpcHRv
cikpOworfQorCitXZWJHUFU6OldlYkdQVSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFjYzgzYWY1MDUzMzE1NzVlNGJmNzJiODcxZWI1
OGE1NWI2YmQ4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdQVUFkYXB0ZXI7CitzdHJ1Y3Qg
V2ViR1BVQWRhcHRlckRlc2NyaXB0b3I7CisKK2NsYXNzIFdlYkdQVSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYkdQVT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVPiBjcmVhdGUoKTsK
KworICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3Im
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJHUFUo
KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJH
UFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YzIwNGZhMjQ5M2IxYTNkOGEzMjNjMDFhNDBkNWE5OGVmOGU5NTMxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbApAQCAtMCwwICsxLDMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2Iv
bWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFUg
eworICAgIFByb21pc2U8V2ViR1BVQWRhcHRlcj4gcmVxdWVzdEFkYXB0ZXIoV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IgZGVzYyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTUwOGYxN2Q3MWJjMjA5YWEzZWIzYzli
YmUzMzk2YzU2YmZkZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVBZGFwdGVyLmgiCisKKyNpZiBF
TkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIldlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gc3RhdGljCitSZWY8V2ViR1BVQWRhcHRl
cj4gV2ViR1BVQWRhcHRlcjo6Y3JlYXRlKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUFkYXB0ZXIoZGVz
Y3JpcHRvcikpOworfQorCitXZWJHUFVBZGFwdGVyOjpXZWJHUFVBZGFwdGVyKGNvbnN0IFdlYkdQ
VUFkYXB0ZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorICAgIDogbV9kZXNjcmlwdG9yKGRlc2Ny
aXB0b3IpCit7CisgICAgVU5VU0VEX1BBUkFNKG1fZGVzY3JpcHRvcik7Cit9CisKK1JlZjxXZWJH
UFVEZXZpY2U+IFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZURldmljZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQoreworICAgIHJldHVybiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShjb250ZXh0
LCBtYWtlV2Vha1B0cih0aGlzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVBZGFwdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1YzljZDM4ZTkyZTQ1NmE4NjEyOTllNmU3NDY0
MzllNTk4ZjBiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUFkYXB0ZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3I7CitjbGFzcyBXZWJHUFVEZXZpY2U7CisKK2NsYXNzIFdlYkdQVUFkYXB0ZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJHUFVBZGFwdGVyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkdQVUFk
YXB0ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUFkYXB0ZXI+IGNyZWF0ZShj
b25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYpOworCisgICAgUmVmPFdlYkdQVURldmljZT4g
Y3JlYXRlRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKworcHJpdmF0ZToKKyAgICBX
ZWJHUFVBZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJik7CisKKyAgICBjb25z
dCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgbV9kZXNjcmlwdG9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlMTFi
ODZjOGMzYzc5ZDYzZGQ1ZTk2ZGY5MmQ1NTU2MzFhMTRiNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxv
Yi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9
V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQ
VUFkYXB0ZXIgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAg
ICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRlbnNpb25zOworICAg
IC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOyBEb24ndCBleHBvc2Ug
aGlnaGVyIGxpbWl0cyBmb3Igbm93LgorCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIFdlYkdQVURldmljZSBjcmVhdGVEZXZpY2UoLypXZWJHUFVEZXZpY2VEZXNjcmlwdG9y
IGRlc2NyaXB0b3IqLyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVlNGQ4OWExMzM5
NTYzMDVlZTM4OTcxYTg5MWRhMjVlOTc5Y2YwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3Ig
eworICAgIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAg
ICAgICAgTG93UG93ZXIsCisgICAgICAgIEhpZ2hQZXJmb3JtYW5jZQorICAgIH07CisKKyAgICBQ
b3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlID0gUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFk
YXB0ZXJEZXNjcmlwdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODYzMDlhZTNlOTE4MjcxNzg5ZGIxNGE3
NGQ0YzBkYjZmOTFiYjI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIv
ZGVzaWduL3NrZXRjaC53ZWJpZGwKKworZW51bSBXZWJHUFVQb3dlclByZWZlcmVuY2UgeworICAg
ICJkZWZhdWx0IiwKKyAgICAibG93LXBvd2VyIiwKKyAgICAiaGlnaC1wZXJmb3JtYW5jZSIKK307
CisKK2RpY3Rpb25hcnkgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IgeworICAgIFdlYkdQVVBvd2Vy
UHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UgPSAiZGVmYXVsdCI7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFiNzdi
NDUwOWJjOTkxYWViZTgwNTdmNGI4ODllZTZiNWQ4Yjc1MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVE
ZXZpY2UuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Ly8gc3RhdGljCitSZWY8V2ViR1BVRGV2aWNlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxXZWJHUFVBZGFwdGVyPiYmIGFkYXB0ZXIpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVRGV2aWNlKFdURk1vdmUoYWRhcHRlcikpKTsK
K30KKworV2ViR1BVRGV2aWNlOjpXZWJHUFVEZXZpY2UoV2Vha1B0cjxXZWJHUFVBZGFwdGVyPiYm
IGFkYXB0ZXIpCisgICAgOiBtX2FkYXB0ZXIoV1RGTW92ZShhZGFwdGVyKSkKK3sKKyAgICBVTlVT
RURfUEFSQU0obV9hZGFwdGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE0YTVhODYyMzIxNTA3MmFiZTBjZmZlODA5NmU2YWE3
ZTA3YjdiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdQVUFkYXB0ZXI7CisKK2NsYXNzIFdl
YkdQVURldmljZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVURldmljZT4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFdlYWtQdHI8V2ViR1BVQWRhcHRlcj4mJik7CisKKyAgICBXZWJHUFVBZGFwdGVyJiBhZGFw
dGVyKCkgY29uc3QgeyByZXR1cm4gKm1fYWRhcHRlci5nZXQoKTsgfSAvLyBGSVhNRTogUHJvYmFi
bHkgbm90IHJpZ2h0OyBwb3NzaWJsZSB0byBkZXJlZiBudWxscHRyLgorCitwcml2YXRlOgorICAg
IFdlYkdQVURldmljZShXZWFrUHRyPFdlYkdQVUFkYXB0ZXI+JiYpOworCisgICAgV2Vha1B0cjxX
ZWJHUFVBZGFwdGVyPiBtX2FkYXB0ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVlMjYxMTY2NTI4MjRhNzQwZGUwMjMx
ZTFiMTlhOGIzN2NmZDdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisv
LyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tl
dGNoLndlYmlkbAorCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVRGV2aWNlIHsKKyAgICAvLyBy
ZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRlbnNpb25zOworICAgIC8vIHJl
YWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBXZWJHUFVBZGFwdGVyIGFkYXB0ZXI7CisKKy8qCisgICAgV2ViR1BVQnVmZmVyIGNyZWF0
ZUJ1ZmZlcihXZWJHUFVCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVRl
eHR1cmUgY3JlYXRlVGV4dHVyZShXZWJHUFVUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsK
KyAgICBXZWJHUFVTYW1wbGVyIGNyZWF0ZVNhbXBsZXIoV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Ig
ZGVzY3JpcHRvcik7CisKKyAgICBXZWJHUFVCaW5kR3JvdXBMYXlvdXQgY3JlYXRlQmluZEdyb3Vw
TGF5b3V0KFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAg
V2ViR1BVUGlwZWxpbmVMYXlvdXQgY3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUJpbmRHcm91cCBjcmVhdGVC
aW5kR3JvdXAoV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIFdl
YkdQVUJsZW5kU3RhdGUgY3JlYXRlQmxlbmRTdGF0ZShXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZSBjcmVhdGVEZXB0aFN0
ZW5jaWxTdGF0ZShXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CisgICAgV2ViR1BVSW5wdXRTdGF0ZSBjcmVhdGVJbnB1dFN0YXRlKFdlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNoYWRlck1vZHVsZSBjcmVhdGVTaGFk
ZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBX
ZWJHUFVBdHRhY2htZW50U3RhdGUgY3JlYXRlQXR0YWNobWVudFN0YXRlKFdlYkdQVUF0dGFjaG1l
bnRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IpOworICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lIGNyZWF0ZVJlbmRlclBpcGVsaW5l
KFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIFdlYkdQ
VUNvbW1hbmRCdWZmZXIgY3JlYXRlQ29tbWFuZEJ1ZmZlcihXZWJHUFVDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVGZW5jZSBjcmVhdGVGZW5jZShXZWJHUFVG
ZW5jZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICBXZWJHUFVRdWV1ZSBnZXRRdWV1ZSgp
OworCisgICAgYXR0cmlidXRlIFdlYkdQVUxvZ0NhbGxiYWNrIG9uTG9nOworICAgIFdlYkdQVU9i
amVjdFN0YXR1c1F1ZXJ5IGdldE9iamVjdFN0YXR1cyhTdGF0dXNhYmxlT2JqZWN0IHN0YXR1c2Fi
bGVPYmplY3QpOworKi8KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQyYTI5MDJhNTUzMmE5NGU2OWQ3
YjI5NmUxZjFhY2M4NmU0OTljMDYuLmE2YWJmZWMzODU3ZTc0Njk1MjU1MDg3MmMzNjhiNzQxNzUy
NjJkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yOTUsNiArMjk1LDExIEBAIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCiAKK01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAKK01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3BwCitNb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisKIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2Vi
VlIuY3BwCiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHAKIE1vZHVsZXMvd2VidnIvVlJEaXNw
bGF5RXZlbnQuY3BwCkBAIC0yNTcwLDYgKzI1NzUsNyBAQCBKU0RPTVdpbmRvd0ZldGNoLmNwcAog
SlNET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBKU0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIEpTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCitKU0RPTVdpbmRvd1dlYkdQVS5jcHAK
IEpTRE9NV2luZG93V2ViVlIuY3BwCiBKU0RhdGFUcmFuc2Zlci5jcHAKIEpTRGF0YVRyYW5zZmVy
SXRlbS5jcHAKQEAgLTMxNTQsNiArMzE2MCwxMCBAQCBKU1Zpc3VhbFZpZXdwb3J0LmNwcAogSlNW
b2lkQ2FsbGJhY2suY3BwCiBKU1dhdmVTaGFwZXJOb2RlLmNwcAogSlNXZWJBbmltYXRpb24uY3Bw
CitKU1dlYkdQVS5jcHAKK0pTV2ViR1BVQWRhcHRlci5jcHAKK0pTV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3IuY3BwCitKU1dlYkdQVURldmljZS5jcHAKIEpTV2ViTWV0YWxCdWZmZXIuY3BwCiBKU1dl
Yk1ldGFsQ29tbWFuZEJ1ZmZlci5jcHAKIEpTV2ViTWV0YWxDb21tYW5kUXVldWUuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YWMzNWUzYjgzMDg4ZGQ5YjkyYjM5ZDg5OGU0ODA3NjU3ZWMyN2U2MC4uZTEyMTI0MTlmNGE3Yjdj
ZTdjMzI2ODNiZTk2NzBmYzE0ZDZkZmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2MjIsNiArMTM2MjIsMjAgQEAKIAkJ
RDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMDBFRDI1MTFDMUI5Q0QwMEM0NzcyNiAv
KiBTdWJmcmFtZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdWJmcmFtZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMDBF
RDI2MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTdWJmcmFtZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVdpbmRvd1dlYkdQVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd1dlYkdQVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwMEY1OTQyMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IERPTVdpbmRvd1dlYkdQVS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQwMEY1OTQ2MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
R1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQ3MjE2RUZFNTQwMDBE
NzFEQiAvKiBXZWJHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDgyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQ
VS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAw
RjU5NEMyMTZGREY4RTAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwMEY1OTRFMjE2RkY2RjAwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDBGNTk0RjIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVBZGFwdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwMEY1OTUwMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMDBGNTk1MTIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR1BVQWRhcHRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
MEY1OTUyMjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR1BVRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTUzMjE3
MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTQyMTcw
MUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVRGV2aWNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8q
IFNwYWNlU3BsaXRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BhY2VTcGxpdFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
MUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDAyRjg1NEUyMTY4MkE0QTAwODhFRTc0IC8qIFdlYk1ldGFsQ29tbWFu
ZFF1ZXVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJNZXRhbENvbW1hbmRRdWV1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTIyOCw2ICsyMTI0Miw3IEBACiAJCQkJNTdEODQ2MkExRkVBRjU3
RjAwQ0EzNjgyIC8qIHdlYmF1dGhuICovLAogCQkJCTk3QkM2OUQ1MTUwNUYwNTQwMDFCNzRBQyAv
KiB3ZWJkYXRhYmFzZSAqLywKIAkJCQk5OTZFNTlEQTFERjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJp
dmVyICovLAorCQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJ
OTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8sCiAJCQkJMkRERTFDQUIx
RjU3NDc1OTAwRDFBMzY1IC8qIHdlYnZyICovLAogCQkJKTsKQEAgLTI1Mjc4LDYgKzI1MjkzLDI3
IEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
RDAwRjU5M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdlYmdwdSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRDAwRjU5NDEyMTZFQ0M3QTAwMEQ3MURCIC8qIERP
TVdpbmRvd1dlYkdQVS5jcHAgKi8sCisJCQkJRDAwRjU5NDAyMTZFQ0M3QTAwMEQ3MURCIC8qIERP
TVdpbmRvd1dlYkdQVS5oICovLAorCQkJCUQwMEY1OTQyMjE2RUNDN0EwMDBENzFEQiAvKiBET01X
aW5kb3dXZWJHUFUuaWRsICovLAorCQkJCUQwMEY1OTQ3MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJH
UFUuY3BwICovLAorCQkJCUQwMEY1OTQ2MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJHUFUuaCAqLywK
KwkJCQlEMDBGNTk0ODIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmlkbCAqLywKKwkJCQlEMDBG
NTk1MDIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5jcHAgKi8sCisJCQkJRDAwRjU5
NEYyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuaCAqLywKKwkJCQlEMDBGNTk1MTIx
NkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5pZGwgKi8sCisJCQkJRDAwRjU5NEUyMTZG
RjZGMDAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJRDAwRjU5
NEMyMTZGREY4RTAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCAqLywKKwkJ
CQlEMDBGNTk1MzIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmNwcCAqLywKKwkJCQlE
MDBGNTk1MjIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmggKi8sCisJCQkJRDAwRjU5
NTQyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5pZGwgKi8sCisJCQkpOworCQkJcGF0
aCA9IHdlYmdwdTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCURGOUFGRDZG
MTNGQzMxQjAwMDE1RkVCNyAvKiBvYmpjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAppbmRleCBmYjFhNWQyM2VkYWE5MTg3OTAzZTAxNmNiOWE5MjViN2Q2YzgyZDE5
Li5kZTQyZTFlZjM0YjRhNTFhNzMxYzkwMDM1ZTIwNmI5N2Y0MDVkMmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xNjYsNiAr
MTY2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhWaXN1YWxWaWV3cG9ydCkg
XAogICAgIG1hY3JvKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHTFZl
cnRleEFycmF5T2JqZWN0KSBcCisgICAgbWFjcm8oV2ViR1BVKSBcCisgICAgbWFjcm8oV2ViR1BV
QWRhcHRlcikgXAorICAgIG1hY3JvKFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yKSBcCisgICAgbWFj
cm8oV2ViR1BVRGV2aWNlKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxCdWZmZXIpIFwKICAgICBtYWNy
byhXZWJNZXRhbENvbW1hbmRCdWZmZXIpIFwKICAgICBtYWNybyhXZWJNZXRhbENvbW1hbmRRdWV1
ZSkgXApAQCAtMzExLDYgKzMxNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh3
ZWJraXRJREJSZXF1ZXN0KSBcCiAgICAgbWFjcm8od2Via2l0SURCVHJhbnNhY3Rpb24pIFwKICAg
ICBtYWNybyh3ZWJraXRJbmRleGVkREIpIFwKKyAgICBtYWNybyh3ZWJncHUpIFwKICAgICBtYWNy
byh3aW5kb3cpIFwKICAgICBtYWNybyh3cml0aW5nKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVy
LmgKaW5kZXggZDY2YmEwMzhjNTUyNjM1MzM2OGY3NjhlY2YxNjA5NjZmNDgyNWY1MS4uOGVlNTgz
ZWQxN2U0N2I2YjQ2NDEwZTUyZWJhNmM2M2RkOGQ5YThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVj
dCBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHk7CiBjbGFzcyBDU1NWYWx1ZTsKIGNsYXNzIFN0
eWxlUmVzb2x2ZXI7CiBzdHJ1Y3QgQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDAyODdiNTM5NmMzNDYyMDU2NjZiNzgxZWM2YmNmMGE1Njk4MzVjYjAuLjRiYjQ0NTFiNDYwNTI3
Zjk0NmE0YTZhMGU1MTI3Mzc3NTIwYzc1MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0x
MC0xNiAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJH
UFVdIEltcGxlbWVudCBXZWJHUFUgYmluZGluZ3MgdXAgdGhyb3VnaCBXZWJHUFVEZXZpY2UgY3Jl
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNt
YWxsIHRlc3QgdG8gdmFsaWRhdGUgY3JlYXRpb24gb2YgYSBXZWJHUFVEZXZpY2Ugd2hlbiBXZWJH
UFUgaXMgZW5hYmxlZC4KKworICAgICAgICAqIHdlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sOiBB
ZGRlZC4KKwogMjAxOC0xMC0xNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByZWZlcnMtY29sb3Itc2NoZW1lIG1lZGlhIHF1
ZXJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NzIw
NDM3OTE3MGViOThhN2I5NzcyOGMzOTM2NTIxODRkYjU5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHNob3VsZEJlRGVmaW5lZCh3aW5kb3cud2ViZ3B1KTsKKyAgICB3aW5kb3cud2ViZ3B1
LnJlcXVlc3RBZGFwdGVyKHsgcG93ZXJQcmVmZXJlbmNlOiAiZGVmYXVsdCIgfSkudGhlbihhZGFw
dGVyID0+IHsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKGFkYXB0ZXIpOworICAgICAgICBsZXQg
ZGVmYXVsdERldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7CisgICAgICAgIHNob3VsZEJl
RGVmaW5lZChkZWZhdWx0RGV2aWNlKTsKKyAgICB9KS5jYXRjaChlcnJvciA9PiB7CisgICAgICAg
IHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0pOworfQorCitydW5UZXN0KCk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352521</attachid>
            <date>2018-10-16 17:05:20 -0700</date>
            <delta_ts>2018-10-17 12:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181016170519.patch</filename>
            <type>text/plain</type>
            <size>45616</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYTk3MWM4NjNkZDk5MDdlNzE5ZTUwMDg3NjViMTQy
MmJiNmZmZGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorCiAyMDE4LTEwLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHN3aXRjaCBmb3IgV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlYzI5NjU1OWI1NWQwYzViN2M1ODk0Zjc4ZGNjOGQ4ODcwZWFlNWNlLi4yYzE1ZmU0ODFi
MWNiN2RkN2YwN2ZmYzdlOTVjNTU5NmMzNTUzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NTEsNiArNTEsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2ViYXV0aG4iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
d2ViZGF0YWJhc2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZHJpdmVyIgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAg
ICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChX
ZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvc3RyZWFtcwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8KICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCisgICAgTW9kdWxlcy93ZWJncHUKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMKICAgICBNb2R1bGVzL3dlYnZyCiAKQEAgLTQ0NCw2ICs0NDYsMTIg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIE1vZHVsZXMvd2ViZHJpdmVy
L05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAorICAgIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dl
YkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYmE2YTA1
YThmMWNjMTM0NDZkNjgwNjg0ODVlY2UzMGFkZGFlMTI1Li4wYmI2NGYyMzc1YzI2NzVmYTE3ZDk3
YWZlZjA1OTM3ZjZjOTFiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU5
LDYgKzU5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKQEAgLTM2NSw2ICszNjYsMTEgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJkYzdhZjMyYzVkNzdmZjc3ZGI0OTRlZmFmMzBiMTI2MTE1NDIwNmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
Y3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93V2ViR1BVLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIldlYkdQVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd1dl
YkdQVTo6RE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93KQoreworfQorCitET01XaW5kb3dXZWJHUFU6On5ET01XaW5kb3dXZWJH
UFUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIERPTVdpbmRvd1dlYkdQVTo6c3VwcGxlbWVu
dE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93V2ViR1BVIjsKK30KKworLy8gc3RhdGlj
CitET01XaW5kb3dXZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6ZnJvbShET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICBET01XaW5kb3dXZWJHUFUqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01X
aW5kb3dXZWJHUFUqPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20od2luZG93LCBzdXBwbGVt
ZW50TmFtZSgpKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIGF1dG8gbmV3U3Vw
cGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NV2luZG93V2ViR1BVPih3aW5kb3cpOworICAg
ICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRv
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAg
fQorICAgIHJldHVybiBzdXBwbGVtZW50OworfQorCisvLyBzdGF0aWMKK1dlYkdQVSogRE9NV2lu
ZG93V2ViR1BVOjp3ZWJncHUoRE9NV2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIERPTVdp
bmRvd1dlYkdQVTo6ZnJvbSgmd2luZG93KS0+d2ViZ3B1KCk7Cit9CisKK1dlYkdQVSogRE9NV2lu
ZG93V2ViR1BVOjp3ZWJncHUoKSBjb25zdAoreworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgaWYgKCFtX3dlYmdwdSAmJiBmcmFtZSgpKQorICAgICAgICBtX3dlYmdw
dSA9IFdlYkdQVTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIG1fd2ViZ3B1LmdldCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNmZkNjgxOWViZWEzNTc2YmE1NTQxMTI4MWRjZjkzMTJiZTkyMTdlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmgKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7Citj
bGFzcyBXZWJHUFU7CisKK2NsYXNzIERPTVdpbmRvd1dlYkdQVSA6IHB1YmxpYyBTdXBwbGVtZW50
PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgRE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyopOworICAgIHZpcnR1YWwgfkRPTVdpbmRv
d1dlYkdQVSgpOworICAgIHN0YXRpYyBET01XaW5kb3dXZWJHUFUqIGZyb20oRE9NV2luZG93Kik7
CisgICAgc3RhdGljIFdlYkdQVSogd2ViZ3B1KERPTVdpbmRvdyYpOworICAgIFdlYkdQVSogd2Vi
Z3B1KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1l
bnROYW1lKCk7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxXZWJHUFU+IG1fd2ViZ3B1OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgwZWNmMjQ4MzBmMDQyODQ0NjEzOTUyOGUwZDUyN2UwOTJjNmEzNjQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
aWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dw
dXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworLy8gQWRkIGEg
IndlYmdwdSIgbWVtYmVyIHRvIFdpbmRvdyB0aGF0IGNvbnRhaW5zIHRoZSBnbG9iYWwgaW5zdGFu
Y2Ugb2YgYSAiV2ViR1BVIgorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIHBhcnRp
YWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7CisgICAgW1JlcGxhY2VhYmxlLCBTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVIHdlYmdwdTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzZhYWM2NWY2YzcwN2UwM2QzNTJkNzE3
ZDM3ZWRiZTE1MmQ4MmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkpTV2ViR1BVQWRhcHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3VzaW5nIFdlYkdQVUFkYXB0ZXJQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxXZWJHUFVBZGFwdGVyPj47CisKKy8vIHN0YXRpYworUmVmPFdlYkdQVT4gV2ViR1BVOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVSk7Cit9CisKK3ZvaWQg
V2ViR1BVOjpyZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBkZWZlcnJlZCkgY29uc3QKK3sKKyAgICBX
ZWJHUFVBZGFwdGVyUHJvbWlzZSBwcm9taXNlID0gV1RGTW92ZShkZWZlcnJlZCk7CisgICAgcHJv
bWlzZS5yZXNvbHZlKFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZShkZXNjcmlwdG9yKSk7Cit9CisKK1dl
YkdQVTo6V2ViR1BVKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YWNjODNhZjUwNTMzMTU3NWU0YmY3MmI4NzFlYjU4YTU1YjZiZDg5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR1BVQWRhcHRlcjsKK3N0cnVjdCBXZWJHUFVBZGFwdGVy
RGVzY3JpcHRvcjsKKworY2xhc3MgV2ViR1BVIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJHUFU+IGNyZWF0ZSgpOworCisgICAgdm9pZCBy
ZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYkdQVSgpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMjA0ZmEyNDkzYjFh
M2Q4YTMyM2MwMWE0MGQ1YTk4ZWY4ZTk1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIElt
cGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVSB7CisgICAgUHJvbWlz
ZTxXZWJHUFVBZGFwdGVyPiByZXF1ZXN0QWRhcHRlcihXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciBk
ZXNjKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxNTA4ZjE3ZDcxYmMyMDlhYTNlYjNjOWJiZTMzOTZjNTZiZmRl
ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUp
CisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisvLyBzdGF0aWMKK1JlZjxXZWJHUFVBZGFwdGVyPiBXZWJHUFVBZGFw
dGVyOjpjcmVhdGUoY29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQWRhcHRlcihkZXNjcmlwdG9yKSk7Cit9
CisKK1dlYkdQVUFkYXB0ZXI6OldlYkdQVUFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCisgICAgOiBtX2Rlc2NyaXB0b3IoZGVzY3JpcHRvcikKK3sKKyAg
ICBVTlVTRURfUEFSQU0obV9kZXNjcmlwdG9yKTsKK30KKworUmVmPFdlYkdQVURldmljZT4gV2Vi
R1BVQWRhcHRlcjo6Y3JlYXRlRGV2aWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
Cit7CisgICAgcmV0dXJuIFdlYkdQVURldmljZTo6Y3JlYXRlKGNvbnRleHQsIG1ha2VXZWFrUHRy
KHRoaXMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUFkYXB0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZDVjOWNkMzhlOTJlNDU2YTg2MTI5OWU2ZTc0NjQzOWU1OThmMGJiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKK3N0cnVjdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvcjsKK2NsYXNzIFdl
YkdQVURldmljZTsKKworY2xhc3MgV2ViR1BVQWRhcHRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkdQVUFkYXB0ZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViR1BVQWRhcHRlcj4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVQWRhcHRlcj4gY3JlYXRlKGNvbnN0IFdlYkdQVUFk
YXB0ZXJEZXNjcmlwdG9yJik7CisKKyAgICBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGVEZXZpY2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCitwcml2YXRlOgorICAgIFdlYkdQVUFkYXB0ZXIo
Y29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3ImKTsKKworICAgIGNvbnN0IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yJiBtX2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2UxMWI4NmM4YzNjNzlkNjNk
ZDVlOTZkZjkyZDU1NTYzMWExNGI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNp
Z24vc2tldGNoLndlYmlkbAorCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAg
SW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVQWRhcHRlciB7Cisg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIFdlYkdQVUxpbWl0cyBsaW1pdHM7IERvbid0IGV4cG9zZSBoaWdoZXIgbGltaXRz
IGZvciBub3cuCisKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gV2ViR1BV
RGV2aWNlIGNyZWF0ZURldmljZSgvKldlYkdQVURldmljZURlc2NyaXB0b3IgZGVzY3JpcHRvciov
KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVB
ZGFwdGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWU0ZDg5YTEzMzk1NjMwNWVlMzg5NzFh
ODkxZGEyNWU5NzljZjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7CisgICAgZW51bSBj
bGFzcyBQb3dlclByZWZlcmVuY2UgeworICAgICAgICBEZWZhdWx0LAorICAgICAgICBMb3dQb3dl
ciwKKyAgICAgICAgSGlnaFBlcmZvcm1hbmNlCisgICAgfTsKKworICAgIFBvd2VyUHJlZmVyZW5j
ZSBwb3dlclByZWZlcmVuY2UgPSBQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3Iu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI4NjMwOWFlM2U5MTgyNzE3ODlkYjE0YTc0ZDRjMGRiNmY5MWJi
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBo
dHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNo
LndlYmlkbAorCitlbnVtIFdlYkdQVVBvd2VyUHJlZmVyZW5jZSB7CisgICAgImRlZmF1bHQiLAor
ICAgICJsb3ctcG93ZXIiLAorICAgICJoaWdoLXBlcmZvcm1hbmNlIgorfTsKKworZGljdGlvbmFy
eSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7CisgICAgV2ViR1BVUG93ZXJQcmVmZXJlbmNlIHBv
d2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWI3N2I0NTA5YmM5OTFhZWJl
ODA1N2Y0Yjg4OWVlNmI1ZDhiNzUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBzdGF0aWMKK1Jl
ZjxXZWJHUFVEZXZpY2U+IFdlYkdQVURldmljZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBXZWFrUHRyPFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJHUFVEZXZpY2UoV1RGTW92ZShhZGFwdGVyKSkpOworfQorCitXZWJHUFVE
ZXZpY2U6OldlYkdQVURldmljZShXZWFrUHRyPFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKKyAg
ICA6IG1fYWRhcHRlcihXVEZNb3ZlKGFkYXB0ZXIpKQoreworICAgIFVOVVNFRF9QQVJBTShtX2Fk
YXB0ZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YTRhNWE4NjIzMjE1MDcyYWJlMGNmZmU4MDk2ZTZhYTdlMDdiN2I4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OworY2xhc3MgV2ViR1BVQWRhcHRlcjsKKworY2xhc3MgV2ViR1BVRGV2aWNlIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVRGV2aWNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJHUFVEZXZpY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxX
ZWJHUFVBZGFwdGVyPiYmKTsKKworICAgIFdlYkdQVUFkYXB0ZXImIGFkYXB0ZXIoKSBjb25zdCB7
IHJldHVybiAqbV9hZGFwdGVyLmdldCgpOyB9IC8vIEZJWE1FOiBQcm9iYWJseSBub3QgcmlnaHQ7
IHBvc3NpYmxlIHRvIGRlcmVmIG51bGxwdHIuCisKK3ByaXZhdGU6CisgICAgV2ViR1BVRGV2aWNl
KFdlYWtQdHI8V2ViR1BVQWRhcHRlcj4mJik7CisKKyAgICBXZWFrUHRyPFdlYkdQVUFkYXB0ZXI+
IG1fYWRhcHRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZWUyNjExNjY1MjgyNGE3NDBkZTAyMzFlMWIxOWE4YjM3Y2Zk
N2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmlkbApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0
aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisK
K1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVEZXZpY2UgeworICAgIC8vIHJlYWRvbmx5IGF0dHJp
YnV0ZSBXZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIFdlYkdQVUxpbWl0cyBsaW1pdHM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUFk
YXB0ZXIgYWRhcHRlcjsKKworLyoKKyAgICBXZWJHUFVCdWZmZXIgY3JlYXRlQnVmZmVyKFdlYkdQ
VUJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVU
ZXh0dXJlKFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNh
bXBsZXIgY3JlYXRlU2FtcGxlcihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsK
KworICAgIFdlYkdQVUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVQaXBlbGlu
ZUxheW91dCBjcmVhdGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQmxlbmRTdGF0
ZSBjcmVhdGVCbGVuZFN0YXRlKFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OworICAgIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlIGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdl
YkdQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVJ
bnB1dFN0YXRlIGNyZWF0ZUlucHV0U3RhdGUoV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVz
Y3JpcHRvcik7CisgICAgV2ViR1BVU2hhZGVyTW9kdWxlIGNyZWF0ZVNoYWRlck1vZHVsZShXZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUF0dGFjaG1l
bnRTdGF0ZSBjcmVhdGVBdHRhY2htZW50U3RhdGUoV2ViR1BVQXR0YWNobWVudFN0YXRlRGVzY3Jp
cHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0
ZVBpcGVsaW5lKFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Cisg
ICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUgY3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQ29tbWFuZEJ1ZmZl
ciBjcmVhdGVDb21tYW5kQnVmZmVyKFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpOworICAgIFdlYkdQVUZlbmNlIGNyZWF0ZUZlbmNlKFdlYkdQVUZlbmNlRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKKworICAgIFdlYkdQVVF1ZXVlIGdldFF1ZXVlKCk7CisKKyAgICBhdHRy
aWJ1dGUgV2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7CisgICAgV2ViR1BVT2JqZWN0U3RhdHVzUXVl
cnkgZ2V0T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVPYmplY3Qgc3RhdHVzYWJsZU9iamVjdCk7Cisq
LworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggNjgwNjY2NDc5OTgyY2U4ZTRlNzY1ZTRmZWE4YWUyZDQ5
OTdiYWU3ZS4uMjEyZmM1OTljMGE2YzQxNjRkNzU0NGI4ZTU2N2E4ODIxYzY5NTEwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTI5NSw2ICsyOTUsMTEgQEAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEZyYW1lLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKIE1v
ZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIAor
TW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BV
LmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5jcHAKKwogTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKIE1vZHVs
ZXMvd2VidnIvVlJEaXNwbGF5LmNwcAogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAK
QEAgLTI1NzYsNiArMjU4MSw3IEBAIEpTRE9NV2luZG93RmV0Y2guY3BwCiBKU0RPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5jcHAKIEpTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogSlNET01X
aW5kb3dXZWJEYXRhYmFzZS5jcHAKK0pTRE9NV2luZG93V2ViR1BVLmNwcAogSlNET01XaW5kb3dX
ZWJWUi5jcHAKIEpTRGF0YVRyYW5zZmVyLmNwcAogSlNEYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAt
MzE2MCw2ICszMTY2LDEwIEBAIEpTVmlzdWFsVmlld3BvcnQuY3BwCiBKU1ZvaWRDYWxsYmFjay5j
cHAKIEpTV2F2ZVNoYXBlck5vZGUuY3BwCiBKU1dlYkFuaW1hdGlvbi5jcHAKK0pTV2ViR1BVLmNw
cAorSlNXZWJHUFVBZGFwdGVyLmNwcAorSlNXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5jcHAKK0pT
V2ViR1BVRGV2aWNlLmNwcAogSlNXZWJNZXRhbEJ1ZmZlci5jcHAKIEpTV2ViTWV0YWxDb21tYW5k
QnVmZmVyLmNwcAogSlNXZWJNZXRhbENvbW1hbmRRdWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5N2IzNWFmZmY5MWEz
MjM1NjMwN2NhNmE3NDYwMDU4ZDIwMmEwNWJmLi43ZTgwNjg3OGEwMGFhZTVmNGQyNzM5MjQ5N2M5
NGYwYzJlNWQyNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzYzNiw2ICsxMzYzNiwyMCBAQAogCQlEMDAwRUJBMTExQkRB
RkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDAwMEVEMjUxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9h
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YmZyYW1lTG9h
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwMEVEMjYxMUMxQjlDRDAw
QzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN1YmZyYW1lTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1
OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NV2luZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQx
MjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRE9NV2luZG93V2ViR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAw
RjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2lu
ZG93V2ViR1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDYyMTZF
RkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQ
VS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMDBGNTk0ODIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJHUFUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0QzIxNkZERjhF
MDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NEUy
MTZGRjZGMDAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwMEY1OTRGMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAw
RjU5NTAyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
MEY1OTUxMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVB
ZGFwdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTIyMTcwMUQ4
QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVEZXZpY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURC
IC8qIFdlYkdQVURldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVEZXZpY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIg
LyogV2ViR1BVRGV2aWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0
cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0
U3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZE
ODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMDJGODU0RTIxNjgyQTRBMDA4OEVFNzQgLyogV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYk1ldGFsQ29tbWFuZFF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIxMjQyLDYgKzIxMjU2LDcgQEAKIAkJCQk1N0Q4NDYyQTFGRUFGNTdGMDBDQTM2ODIgLyog
d2ViYXV0aG4gKi8sCiAJCQkJOTdCQzY5RDUxNTA1RjA1NDAwMUI3NEFDIC8qIHdlYmRhdGFiYXNl
ICovLAogCQkJCTk5NkU1OURBMURGMDBENDUwMDY2MTJCOSAvKiB3ZWJkcml2ZXIgKi8sCisJCQkJ
RDAwRjU5M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdlYmdwdSAqLywKIAkJCQk5N0FBQkNGNzE0RkEw
OUI1MDA3NDU3QUUgLyogd2Vic29ja2V0cyAqLywKIAkJCQkyRERFMUNBQjFGNTc0NzU5MDBEMUEz
NjUgLyogd2VidnIgKi8sCiAJCQkpOwpAQCAtMjUyOTQsNiArMjUzMDksMjcgQEAKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlEMDBGNTkzRTIxNkVD
QzQzMDAwRDcxREIgLyogd2ViZ3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQlEMDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BV
LmNwcCAqLywKKwkJCQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BV
LmggKi8sCisJCQkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5p
ZGwgKi8sCisJCQkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAgKi8sCisJ
CQkJRDAwRjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovLAorCQkJCUQwMEY1OTQ4
MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJHUFUuaWRsICovLAorCQkJCUQwMEY1OTUwMjE2RkZBQzIw
MDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmNwcCAqLywKKwkJCQlEMDBGNTk0RjIxNkZGQUMyMDAw
RDcxREIgLyogV2ViR1BVQWRhcHRlci5oICovLAorCQkJCUQwMEY1OTUxMjE2RkZBQzIwMDBENzFE
QiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLywKKwkJCQlEMDBGNTk0RTIxNkZGNkYwMDAwRDcxREIg
LyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLywKKwkJCQlEMDBGNTk0QzIxNkZERjhFMDAw
RDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwMEY1OTUzMjE3
MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovLAorCQkJCUQwMEY1OTUyMjE3MDFE
OEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLywKKwkJCQlEMDBGNTk1NDIxNzAxRDhDMDAw
RDcxREIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2ViZ3B1Owor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJREY5QUZENkYxM0ZDMzFCMDAwMTVG
RUI3IC8qIG9iamMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmlu
ZGV4IDU0ODk5ZWMzYmU5MmI3ZDEzMGJlMzcxNDJjYWE1MjlkNzk2MDVhY2QuLjk2YjQ5Yjk4MGE1
YWQzYTE0MWIwYjA4Nzg3YTFlMWIwMmQzM2M3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3Miw2ICsxNzIsMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFZpc3VhbFZpZXdwb3J0KSBcCiAgICAgbWFjcm8o
V2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3QpIFwKKyAgICBtYWNybyhXZWJHUFUpIFwKKyAgICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCisg
ICAgbWFjcm8oV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhXZWJHUFVEZXZp
Y2UpIFwKICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29t
bWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBcCkBAIC0zMTgs
NiArMzIyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHdlYmtpdElEQlJlcXVl
c3QpIFwKICAgICBtYWNybyh3ZWJraXRJREJUcmFuc2FjdGlvbikgXAogICAgIG1hY3JvKHdlYmtp
dEluZGV4ZWREQikgXAorICAgIG1hY3JvKHdlYmdwdSkgXAogICAgIG1hY3JvKHdpbmRvdykgXAog
ICAgIG1hY3JvKHdyaXRpbmcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOGFjNTM3ZWRkY2MyYThmYmJiMzg2Njg5ZmU0
YTZlNzdiNDliMDUxLi42ZmE4NGU1MWY5NTkwMjZkNWI5YmNhYWEyMWIwNmU2YzJlYTdjMGUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgV2ViR1BVIGJpbmRpbmdz
IHVwIHRocm91Z2ggV2ViR1BVRGV2aWNlIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbWFsbCB0ZXN0IHRvIHZhbGlkYXRlIGNyZWF0aW9u
IG9mIGEgV2ViR1BVRGV2aWNlIHdoZW4gV2ViR1BVIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiB3
ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbDogQWRkZWQuCisKIDIwMTgtMTAtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3aW5kb3cucGVyZm9ybWFuY2Ugc2hv
dWxkIG5vdCBiZWNvbWUgbnVsbCBhZnRlciB0aGUgd2luZG93IGxvc2VzIGl0cyBicm93c2luZyBj
b250ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2
NzIwNDM3OTE3MGViOThhN2I5NzcyOGMzOTM2NTIxODRkYjU5MDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDI2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIHNob3VsZEJlRGVmaW5lZCh3aW5kb3cud2ViZ3B1KTsKKyAgICB3aW5kb3cud2Vi
Z3B1LnJlcXVlc3RBZGFwdGVyKHsgcG93ZXJQcmVmZXJlbmNlOiAiZGVmYXVsdCIgfSkudGhlbihh
ZGFwdGVyID0+IHsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKGFkYXB0ZXIpOworICAgICAgICBs
ZXQgZGVmYXVsdERldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7CisgICAgICAgIHNob3Vs
ZEJlRGVmaW5lZChkZWZhdWx0RGV2aWNlKTsKKyAgICB9KS5jYXRjaChlcnJvciA9PiB7CisgICAg
ICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0pOworfQorCitydW5UZXN0KCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352614</attachid>
            <date>2018-10-17 12:47:01 -0700</date>
            <delta_ts>2018-10-17 12:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181017124700.patch</filename>
            <type>text/plain</type>
            <size>45465</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYTk3MWM4NjNkZDk5MDdlNzE5ZTUwMDg3NjViMTQy
MmJiNmZmZGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorCiAyMDE4LTEwLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHN3aXRjaCBmb3IgV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlYzI5NjU1OWI1NWQwYzViN2M1ODk0Zjc4ZGNjOGQ4ODcwZWFlNWNlLi4yYzE1ZmU0ODFi
MWNiN2RkN2YwN2ZmYzdlOTVjNTU5NmMzNTUzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NTEsNiArNTEsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2ViYXV0aG4iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
d2ViZGF0YWJhc2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZHJpdmVyIgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAg
ICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChX
ZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvc3RyZWFtcwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8KICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCisgICAgTW9kdWxlcy93ZWJncHUKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMKICAgICBNb2R1bGVzL3dlYnZyCiAKQEAgLTQ0NCw2ICs0NDYsMTIg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIE1vZHVsZXMvd2ViZHJpdmVy
L05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAorICAgIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dl
YkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYmE2YTA1
YThmMWNjMTM0NDZkNjgwNjg0ODVlY2UzMGFkZGFlMTI1Li4wYmI2NGYyMzc1YzI2NzVmYTE3ZDk3
YWZlZjA1OTM3ZjZjOTFiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU5
LDYgKzU5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKQEAgLTM2NSw2ICszNjYsMTEgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhMjc4N2YzZjFjYmNjZmY3YjAzZGQwOTY2NjM0NWFiZDdmNjZiODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
Y3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93V2ViR1BVLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIldlYkdQVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd1dl
YkdQVTo6RE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93KQoreworfQorCitET01XaW5kb3dXZWJHUFU6On5ET01XaW5kb3dXZWJH
UFUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIERPTVdpbmRvd1dlYkdQVTo6c3VwcGxlbWVu
dE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93V2ViR1BVIjsKK30KKworRE9NV2luZG93
V2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAg
RE9NV2luZG93V2ViR1BVKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93V2ViR1BV
Kj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSkp
OworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPERPTVdpbmRvd1dlYkdQVT4od2luZG93KTsKKyAgICAgICAgc3VwcGxl
bWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1
cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1
cm4gc3VwcGxlbWVudDsKK30KKworV2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OndlYmdwdShET01X
aW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93V2ViR1BVOjpmcm9tKCZ3aW5k
b3cpLT53ZWJncHUoKTsKK30KKworV2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OndlYmdwdSgpIGNv
bnN0Cit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIW1f
d2ViZ3B1ICYmIGZyYW1lKCkpCisgICAgICAgIG1fd2ViZ3B1ID0gV2ViR1BVOjpjcmVhdGUoKTsK
KyAgICByZXR1cm4gbV93ZWJncHUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZmQ2ODE5ZWJlYTM1NzZiYTU1
NDExMjgxZGNmOTMxMmJlOTIxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiRE9N
V2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIFdlYkdQVTsKKworY2xhc3Mg
RE9NV2luZG93V2ViR1BVIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERP
TVdpbmRvd1Byb3BlcnR5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBET01XaW5kb3dXZWJHUFUo
RE9NV2luZG93Kik7CisgICAgdmlydHVhbCB+RE9NV2luZG93V2ViR1BVKCk7CisgICAgc3RhdGlj
IERPTVdpbmRvd1dlYkdQVSogZnJvbShET01XaW5kb3cqKTsKKyAgICBzdGF0aWMgV2ViR1BVKiB3
ZWJncHUoRE9NV2luZG93Jik7CisgICAgV2ViR1BVKiB3ZWJncHUoKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIG11dGFi
bGUgUmVmUHRyPFdlYkdQVT4gbV93ZWJncHU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA0NGM4ODUwNDdkMjBk
ZTlmNDkxMmExYmIzYmJkNzhlOGUyNWYzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKQEAgLTAsMCArMSwzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rl
ci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIHBhcnRpYWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7
CisgICAgW1JlcGxhY2VhYmxlLCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BV
IHdlYmdwdTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZGI2OGEwZWVkZTY3NDc5NjdjZDMzZGI3MzFiZTU5ZGRlZTY4ZDJkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdQVS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkpTV2ViR1BVQWRh
cHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUFkYXB0ZXJQcm9t
aXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJHUFVBZGFwdGVyPj47CisK
K1JlZjxXZWJHUFU+IFdlYkdQVTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJHUFUpOworfQorCit2b2lkIFdlYkdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVm
ZXJyZWQpIGNvbnN0Cit7CisgICAgV2ViR1BVQWRhcHRlclByb21pc2UgcHJvbWlzZSA9IFdURk1v
dmUoZGVmZXJyZWQpOworICAgIHByb21pc2UucmVzb2x2ZShXZWJHUFVBZGFwdGVyOjpjcmVhdGUo
ZGVzY3JpcHRvcikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMmQ4MWE1M2VlNjYzNWU2NWFlZjk0YzZmMWU0ODNkZDg1ZDgwNjI1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFzcyBXZWJHUFUgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJHUFU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQ
VT4gY3JlYXRlKCk7CisKKyAgICB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7CisKK3ByaXZhdGU6
CisgICAgV2ViR1BVKCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2M2RlOGFkNTNkMTYyMzc5ODljNTRhNTE1Y2I2MGU5OTc3
YTYxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIu
Y29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWwor
ICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFUgeworICAgIFBy
b21pc2U8V2ViR1BVQWRhcHRlcj4gcmVxdWVzdEFkYXB0ZXIoV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IgZGVzYyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVB
ZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGY0NWUxYmVkNjI0Y2I1OThiMjk4YWRhOTI2NTIyMDUy
YjFmZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUFkYXB0ZXI+IFdlYkdQVUFkYXB0ZXI6OmNy
ZWF0ZShjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVBZGFwdGVyKGRlc2NyaXB0b3IpKTsKK30KKworV2Vi
R1BVQWRhcHRlcjo6V2ViR1BVQWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworICAgIFVOVVNF
RF9QQVJBTShtX2Rlc2NyaXB0b3IpOworfQorCitSZWY8V2ViR1BVRGV2aWNlPiBXZWJHUFVBZGFw
dGVyOjpjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAg
ICByZXR1cm4gV2ViR1BVRGV2aWNlOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYTg1
MTFjYzg4YjI1MWM1OWJlYzllZGFlZGFmYjQyMmMwOTk3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmgKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdQVURldmljZTsKKworc3RydWN0
IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFzcyBXZWJHUFVBZGFwdGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViR1BVQWRhcHRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2Vi
R1BVQWRhcHRlcj4gY3JlYXRlKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJik7CisKKyAg
ICBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OworCitwcml2YXRlOgorICAgIFdlYkdQVUFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3ImKTsKKworICAgIGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiBtX2Rlc2NyaXB0
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOWNlNTA1YWZiMzU3ZDg0YzI4YjIxOTkyZTQyMDA0YmY0MmY4MmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisg
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVUFkYXB0ZXIgewor
ICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAvLyByZWFkb25s
eSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRlbnNpb25zOworICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOyBEb24ndCBleHBvc2UgaGlnaGVyIGxpbWl0
cyBmb3Igbm93LgorCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFdlYkdQ
VURldmljZSBjcmVhdGVEZXZpY2UoLypXZWJHUFVEZXZpY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3Iq
Lyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUFkYXB0ZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVlNGQ4OWExMzM5NTYzMDVlZTM4OTcx
YTg5MWRhMjVlOTc5Y2YwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IgeworICAgIGVudW0g
Y2xhc3MgUG93ZXJQcmVmZXJlbmNlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAgTG93UG93
ZXIsCisgICAgICAgIEhpZ2hQZXJmb3JtYW5jZQorICAgIH07CisKKyAgICBQb3dlclByZWZlcmVu
Y2UgcG93ZXJQcmVmZXJlbmNlID0gUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlw
dG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjk0ZDdjYjM0NWVhYTk2NTNhNDM3ZTFjYzA5MTVkYWUwNzVi
YTc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8g
aHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRj
aC53ZWJpZGwKKworZW51bSBXZWJHUFVQb3dlclByZWZlcmVuY2UgeworICAgICJkZWZhdWx0IiwK
KyAgICAibG93LXBvd2VyIiwKKyAgICAiaGlnaC1wZXJmb3JtYW5jZSIKK307CisKK1sKKyAgICBD
b25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gZGljdGlv
bmFyeSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7CisgICAgV2ViR1BVUG93ZXJQcmVmZXJlbmNl
IHBvd2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q0OGQ4NWE3YzIwODU4
ODY5NjkwOGVhZjkxMGQxNmY2YTNhMmExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V2ViR1BV
RGV2aWNlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
PFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJHUFVEZXZpY2UoV1RGTW92ZShhZGFwdGVyKSkpOworfQorCitXZWJHUFVEZXZpY2U6OldlYkdQ
VURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJiBhZGFwdGVyKQorICAgIDogbV9hZGFwdGVyKFdU
Rk1vdmUoYWRhcHRlcikpCit7CisgICAgVU5VU0VEX1BBUkFNKG1fYWRhcHRlcik7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZDcw
YjQ0MDQ2NmY0Y2MxOWVmMmE2NGZlZGY4YmIzNmExYTlkMDQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViR1BVQWRhcHRlcjsKKworY2xhc3Mg
V2ViR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVRGV2aWNlPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJHUFVEZXZpY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYpOworCisgICAgV2ViR1BVQWRhcHRlciYgYWRhcHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fYWRhcHRlci5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdl
YkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJik7CisKKyAgICBSZWY8V2ViR1BVQWRhcHRl
cj4gbV9hZGFwdGVyOyAvLyBGSVhNRTogQW0gSSBjcmVhdGluZyB0aGlzIHJlZmVyZW5jZSBjb3Jy
ZWN0bHk/Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDc1ZTgwODNhODc4MDZhOWM5MGVjZDIyNmI0NjFmYzNmZWVlMTZiMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisg
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVURldmljZSB7Cisg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKKyAg
ICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVTGltaXRzIGxpbWl0czsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgV2ViR1BVQWRhcHRlciBhZGFwdGVyOworCisvKgorICAgIFdlYkdQVUJ1ZmZl
ciBjcmVhdGVCdWZmZXIoV2ViR1BVQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBX
ZWJHUFVUZXh0dXJlIGNyZWF0ZVRleHR1cmUoV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IgZGVzY3Jp
cHRvcik7CisgICAgV2ViR1BVU2FtcGxlciBjcmVhdGVTYW1wbGVyKFdlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0ZUJp
bmRHcm91cExheW91dChXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OworICAgIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVCaW5kR3JvdXAg
Y3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisK
KyAgICBXZWJHUFVCbGVuZFN0YXRlIGNyZWF0ZUJsZW5kU3RhdGUoV2ViR1BVQmxlbmRTdGF0ZURl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUgY3JlYXRl
RGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpOworICAgIFdlYkdQVUlucHV0U3RhdGUgY3JlYXRlSW5wdXRTdGF0ZShXZWJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVTaGFkZXJNb2R1bGUgY3Jl
YXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CisgICAgV2ViR1BVQXR0YWNobWVudFN0YXRlIGNyZWF0ZUF0dGFjaG1lbnRTdGF0ZShXZWJHUFVB
dHRhY2htZW50U3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUNvbXB1dGVQ
aXBlbGluZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVSZW5kZXJQaXBlbGluZSBjcmVhdGVSZW5kZXJQ
aXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAg
ICBXZWJHUFVDb21tYW5kQnVmZmVyIGNyZWF0ZUNvbW1hbmRCdWZmZXIoV2ViR1BVQ29tbWFuZEJ1
ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVRmVuY2UgY3JlYXRlRmVuY2Uo
V2ViR1BVRmVuY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVUXVldWUgZ2V0
UXVldWUoKTsKKworICAgIGF0dHJpYnV0ZSBXZWJHUFVMb2dDYWxsYmFjayBvbkxvZzsKKyAgICBX
ZWJHUFVPYmplY3RTdGF0dXNRdWVyeSBnZXRPYmplY3RTdGF0dXMoU3RhdHVzYWJsZU9iamVjdCBz
dGF0dXNhYmxlT2JqZWN0KTsKKyovCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2ODA2NjY0Nzk5ODJj
ZThlNGU3NjVlNGZlYThhZTJkNDk5N2JhZTdlLi4yMTJmYzU5OWMwYTZjNDE2NGQ3NTQ0YjhlNTY3
YTg4MjFjNjk1MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjk1LDYgKzI5NSwxMSBAQCBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAogCitNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCitN
b2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNw
cAorTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorCiBNb2R1bGVzL3dlYnZyL05hdmln
YXRvcldlYlZSLmNwcAogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXkuY3BwCiBNb2R1bGVzL3dlYnZy
L1ZSRGlzcGxheUV2ZW50LmNwcApAQCAtMjU3Niw2ICsyNTgxLDcgQEAgSlNET01XaW5kb3dGZXRj
aC5jcHAKIEpTRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAogSlNET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuY3BwCiBKU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorSlNET01XaW5kb3dXZWJH
UFUuY3BwCiBKU0RPTVdpbmRvd1dlYlZSLmNwcAogSlNEYXRhVHJhbnNmZXIuY3BwCiBKU0RhdGFU
cmFuc2Zlckl0ZW0uY3BwCkBAIC0zMTYwLDYgKzMxNjYsMTAgQEAgSlNWaXN1YWxWaWV3cG9ydC5j
cHAKIEpTVm9pZENhbGxiYWNrLmNwcAogSlNXYXZlU2hhcGVyTm9kZS5jcHAKIEpTV2ViQW5pbWF0
aW9uLmNwcAorSlNXZWJHUFUuY3BwCitKU1dlYkdQVUFkYXB0ZXIuY3BwCitKU1dlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yLmNwcAorSlNXZWJHUFVEZXZpY2UuY3BwCiBKU1dlYk1ldGFsQnVmZmVyLmNw
cAogSlNXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZFF1ZXVlLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDk3YjM1YWZmZjkxYTMyMzU2MzA3Y2E2YTc0NjAwNThkMjAyYTA1YmYuLjdlODA2ODc4
YTAwYWFlNWY0ZDI3MzkyNDk3Yzk0ZjBjMmU1ZDI2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjM2LDYgKzEzNjM2LDIw
IEBACiAJCUQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUxvYWRlclN0YXRlTWFj
aGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDAwRUQyNTExQzFCOUNEMDBD
NDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3ViZnJhbWVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMDAwRUQyNjExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDAyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQ
VS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01XaW5kb3dXZWJHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDAwRjU5NDEyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dXZWJHUFUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDBGNTk0MjIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2Vi
R1BVLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBET01XaW5kb3dXZWJHUFUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEMDBGNTk0NjIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0NzIxNkVG
RTU0MDAwRDcxREIgLyogV2ViR1BVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQ4MjE2RUZFNTQwMDBENzFEQiAv
KiBXZWJHUFUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwMEY1OTRDMjE2RkRGOEUwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMDBGNTk0RTIxNkZGNkYwMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NEYyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQ
VUFkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQWRhcHRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDBGNTk1MDIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVBZGFwdGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTEyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMDBGNTk1MjIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBG
NTk1MzIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkdQVURldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1
OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVURldmlj
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FCMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMkY4NTRFMjE2ODJBNEEwMDg4RUU3NCAvKiBXZWJNZXRh
bENvbW1hbmRRdWV1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEyNDIsNiArMjEyNTYsNyBAQAogCQkJCTU3RDg0NjJB
MUZFQUY1N0YwMENBMzY4MiAvKiB3ZWJhdXRobiAqLywKIAkJCQk5N0JDNjlENTE1MDVGMDU0MDAx
Qjc0QUMgLyogd2ViZGF0YWJhc2UgKi8sCiAJCQkJOTk2RTU5REExREYwMEQ0NTAwNjYxMkI5IC8q
IHdlYmRyaXZlciAqLywKKwkJCQlEMDBGNTkzRTIxNkVDQzQzMDAwRDcxREIgLyogd2ViZ3B1ICov
LAogCQkJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovLAogCQkJCTJE
REUxQ0FCMUY1NzQ3NTkwMEQxQTM2NSAvKiB3ZWJ2ciAqLywKIAkJCSk7CkBAIC0yNTI5NCw2ICsy
NTMwOSwyNyBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUQwMEY1OTQxMjE2RUNDN0EwMDBENzFE
QiAvKiBET01XaW5kb3dXZWJHUFUuY3BwICovLAorCQkJCUQwMEY1OTQwMjE2RUNDN0EwMDBENzFE
QiAvKiBET01XaW5kb3dXZWJHUFUuaCAqLywKKwkJCQlEMDBGNTk0MjIxNkVDQzdBMDAwRDcxREIg
LyogRE9NV2luZG93V2ViR1BVLmlkbCAqLywKKwkJCQlEMDBGNTk0NzIxNkVGRTU0MDAwRDcxREIg
LyogV2ViR1BVLmNwcCAqLywKKwkJCQlEMDBGNTk0NjIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BV
LmggKi8sCisJCQkJRDAwRjU5NDgyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5pZGwgKi8sCisJ
CQkJRDAwRjU5NTAyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuY3BwICovLAorCQkJ
CUQwMEY1OTRGMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmggKi8sCisJCQkJRDAw
RjU5NTEyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuaWRsICovLAorCQkJCUQwMEY1
OTRFMjE2RkY2RjAwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oICovLAorCQkJ
CUQwMEY1OTRDMjE2RkRGOEUwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGwg
Ki8sCisJCQkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5jcHAgKi8s
CisJCQkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5oICovLAorCQkJ
CUQwMEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaWRsICovLAorCQkJKTsK
KwkJCXBhdGggPSB3ZWJncHU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlE
RjlBRkQ2RjEzRkMzMUIwMDAxNUZFQjcgLyogb2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNTQ4OTllYzNiZTkyYjdkMTMwYmUzNzE0MmNhYTUyOWQ3
OTYwNWFjZC4uOTZiNDliOTgwYTVhZDNhMTQxYjBiMDg3ODdhMWUxYjAyZDMzYzczMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAt
MTcyLDYgKzE3MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oVmlzdWFsVmll
d3BvcnQpIFwKICAgICBtYWNybyhXZWJHTDJSZW5kZXJpbmdDb250ZXh0KSBcCiAgICAgbWFjcm8o
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCkgXAorICAgIG1hY3JvKFdlYkdQVSkgXAorICAgIG1hY3Jv
KFdlYkdQVUFkYXB0ZXIpIFwKKyAgICBtYWNybyhXZWJHUFVBZGFwdGVyRGVzY3JpcHRvcikgXAor
ICAgIG1hY3JvKFdlYkdQVURldmljZSkgXAogICAgIG1hY3JvKFdlYk1ldGFsQnVmZmVyKSBcCiAg
ICAgbWFjcm8oV2ViTWV0YWxDb21tYW5kQnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxDb21t
YW5kUXVldWUpIFwKQEAgLTMxOCw2ICszMjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8od2Via2l0SURCUmVxdWVzdCkgXAogICAgIG1hY3JvKHdlYmtpdElEQlRyYW5zYWN0aW9u
KSBcCiAgICAgbWFjcm8od2Via2l0SW5kZXhlZERCKSBcCisgICAgbWFjcm8od2ViZ3B1KSBcCiAg
ICAgbWFjcm8od2luZG93KSBcCiAgICAgbWFjcm8od3JpdGluZykKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4YWM1Mzdl
ZGRjYzJhOGZiYmIzODY2ODlmZTRhNmU3N2I0OWIwNTEuLjZmYTg0ZTUxZjk1OTAyNmQ1YjliY2Fh
YTIxYjA2ZTZjMmVhN2MwZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0xMC0xNiAgSnVz
dGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHUFVdIEltcGxl
bWVudCBXZWJHUFUgYmluZGluZ3MgdXAgdGhyb3VnaCBXZWJHUFVEZXZpY2UgY3JlYXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY1MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNtYWxsIHRlc3Qg
dG8gdmFsaWRhdGUgY3JlYXRpb24gb2YgYSBXZWJHUFVEZXZpY2Ugd2hlbiBXZWJHUFUgaXMgZW5h
YmxlZC4KKworICAgICAgICAqIHdlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sOiBBZGRlZC4KKwog
MjAxOC0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHdp
bmRvdy5wZXJmb3JtYW5jZSBzaG91bGQgbm90IGJlY29tZSBudWxsIGFmdGVyIHRoZSB3aW5kb3cg
bG9zZXMgaXRzIGJyb3dzaW5nIGNvbnRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdw
dS93ZWJncHUtZW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dlYmdwdS1lbmFibGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzY3MjA0Mzc5MTcwZWI5OGE3Yjk3NzI4YzM5MzY1MjE4NGRiNTkw
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5o
dG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgc2hvdWxkQmVEZWZpbmVkKHdpbmRvdy53ZWJn
cHUpOworICAgIHdpbmRvdy53ZWJncHUucmVxdWVzdEFkYXB0ZXIoeyBwb3dlclByZWZlcmVuY2U6
ICJkZWZhdWx0IiB9KS50aGVuKGFkYXB0ZXIgPT4geworICAgICAgICBzaG91bGRCZURlZmluZWQo
YWRhcHRlcik7CisgICAgICAgIGxldCBkZWZhdWx0RGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZp
Y2UoKTsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKGRlZmF1bHREZXZpY2UpOworICAgIH0pLmNh
dGNoKGVycm9yID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZChlcnJvcik7CisgICAgfSk7Cit9CisK
K3J1blRlc3QoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352617</attachid>
            <date>2018-10-17 12:51:05 -0700</date>
            <delta_ts>2018-10-17 13:41:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181017125104.patch</filename>
            <type>text/plain</type>
            <size>45415</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYTk3MWM4NjNkZDk5MDdlNzE5ZTUwMDg3NjViMTQy
MmJiNmZmZGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorCiAyMDE4LTEwLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHN3aXRjaCBmb3IgV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlYzI5NjU1OWI1NWQwYzViN2M1ODk0Zjc4ZGNjOGQ4ODcwZWFlNWNlLi4yYzE1ZmU0ODFi
MWNiN2RkN2YwN2ZmYzdlOTVjNTU5NmMzNTUzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NTEsNiArNTEsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2ViYXV0aG4iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
d2ViZGF0YWJhc2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZHJpdmVyIgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAg
ICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChX
ZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvc3RyZWFtcwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8KICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCisgICAgTW9kdWxlcy93ZWJncHUKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMKICAgICBNb2R1bGVzL3dlYnZyCiAKQEAgLTQ0NCw2ICs0NDYsMTIg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIE1vZHVsZXMvd2ViZHJpdmVy
L05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAorICAgIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dl
YkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYmE2YTA1
YThmMWNjMTM0NDZkNjgwNjg0ODVlY2UzMGFkZGFlMTI1Li4wYmI2NGYyMzc1YzI2NzVmYTE3ZDk3
YWZlZjA1OTM3ZjZjOTFiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU5
LDYgKzU5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKQEAgLTM2NSw2ICszNjYsMTEgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhMjc4N2YzZjFjYmNjZmY3YjAzZGQwOTY2NjM0NWFiZDdmNjZiODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
Y3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93V2ViR1BVLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIldlYkdQVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd1dl
YkdQVTo6RE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93KQoreworfQorCitET01XaW5kb3dXZWJHUFU6On5ET01XaW5kb3dXZWJH
UFUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIERPTVdpbmRvd1dlYkdQVTo6c3VwcGxlbWVu
dE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93V2ViR1BVIjsKK30KKworRE9NV2luZG93
V2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAg
RE9NV2luZG93V2ViR1BVKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93V2ViR1BV
Kj4oU3VwcGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSkp
OworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPERPTVdpbmRvd1dlYkdQVT4od2luZG93KTsKKyAgICAgICAgc3VwcGxl
bWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1
cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1
cm4gc3VwcGxlbWVudDsKK30KKworV2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OndlYmdwdShET01X
aW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93V2ViR1BVOjpmcm9tKCZ3aW5k
b3cpLT53ZWJncHUoKTsKK30KKworV2ViR1BVKiBET01XaW5kb3dXZWJHUFU6OndlYmdwdSgpIGNv
bnN0Cit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkdQVUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIW1f
d2ViZ3B1ICYmIGZyYW1lKCkpCisgICAgICAgIG1fd2ViZ3B1ID0gV2ViR1BVOjpjcmVhdGUoKTsK
KyAgICByZXR1cm4gbV93ZWJncHUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZmQ2ODE5ZWJlYTM1NzZiYTU1
NDExMjgxZGNmOTMxMmJlOTIxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiRE9N
V2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIFdlYkdQVTsKKworY2xhc3Mg
RE9NV2luZG93V2ViR1BVIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERP
TVdpbmRvd1Byb3BlcnR5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBET01XaW5kb3dXZWJHUFUo
RE9NV2luZG93Kik7CisgICAgdmlydHVhbCB+RE9NV2luZG93V2ViR1BVKCk7CisgICAgc3RhdGlj
IERPTVdpbmRvd1dlYkdQVSogZnJvbShET01XaW5kb3cqKTsKKyAgICBzdGF0aWMgV2ViR1BVKiB3
ZWJncHUoRE9NV2luZG93Jik7CisgICAgV2ViR1BVKiB3ZWJncHUoKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIG11dGFi
bGUgUmVmUHRyPFdlYkdQVT4gbV93ZWJncHU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA0NGM4ODUwNDdkMjBk
ZTlmNDkxMmExYmIzYmJkNzhlOGUyNWYzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwKQEAgLTAsMCArMSwzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rl
ci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIHBhcnRpYWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7
CisgICAgW1JlcGxhY2VhYmxlLCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BV
IHdlYmdwdTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZGI2OGEwZWVkZTY3NDc5NjdjZDMzZGI3MzFiZTU5ZGRlZTY4ZDJkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdQVS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkpTV2ViR1BVQWRh
cHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUFkYXB0ZXJQcm9t
aXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJHUFVBZGFwdGVyPj47CisK
K1JlZjxXZWJHUFU+IFdlYkdQVTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJHUFUpOworfQorCit2b2lkIFdlYkdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVm
ZXJyZWQpIGNvbnN0Cit7CisgICAgV2ViR1BVQWRhcHRlclByb21pc2UgcHJvbWlzZSA9IFdURk1v
dmUoZGVmZXJyZWQpOworICAgIHByb21pc2UucmVzb2x2ZShXZWJHUFVBZGFwdGVyOjpjcmVhdGUo
ZGVzY3JpcHRvcikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMmQ4MWE1M2VlNjYzNWU2NWFlZjk0YzZmMWU0ODNkZDg1ZDgwNjI1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFzcyBXZWJHUFUgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJHUFU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQ
VT4gY3JlYXRlKCk7CisKKyAgICB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7CisKK3ByaXZhdGU6
CisgICAgV2ViR1BVKCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2M2RlOGFkNTNkMTYyMzc5ODljNTRhNTE1Y2I2MGU5OTc3
YTYxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIu
Y29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWwor
ICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFUgeworICAgIFBy
b21pc2U8V2ViR1BVQWRhcHRlcj4gcmVxdWVzdEFkYXB0ZXIoV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IgZGVzYyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVB
ZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGY0NWUxYmVkNjI0Y2I1OThiMjk4YWRhOTI2NTIyMDUy
YjFmZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVBZGFwdGVyLmgiCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUFkYXB0ZXI+IFdlYkdQVUFkYXB0ZXI6OmNy
ZWF0ZShjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVBZGFwdGVyKGRlc2NyaXB0b3IpKTsKK30KKworV2Vi
R1BVQWRhcHRlcjo6V2ViR1BVQWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworICAgIFVOVVNF
RF9QQVJBTShtX2Rlc2NyaXB0b3IpOworfQorCitSZWY8V2ViR1BVRGV2aWNlPiBXZWJHUFVBZGFw
dGVyOjpjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAg
ICByZXR1cm4gV2ViR1BVRGV2aWNlOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYTg1
MTFjYzg4YjI1MWM1OWJlYzllZGFlZGFmYjQyMmMwOTk3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmgKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdQVURldmljZTsKKworc3RydWN0
IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFzcyBXZWJHUFVBZGFwdGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViR1BVQWRhcHRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2Vi
R1BVQWRhcHRlcj4gY3JlYXRlKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJik7CisKKyAg
ICBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OworCitwcml2YXRlOgorICAgIFdlYkdQVUFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3ImKTsKKworICAgIGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiBtX2Rlc2NyaXB0
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOWNlNTA1YWZiMzU3ZDg0YzI4YjIxOTkyZTQyMDA0YmY0MmY4MmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisg
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVUFkYXB0ZXIgewor
ICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAvLyByZWFkb25s
eSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRlbnNpb25zOworICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOyBEb24ndCBleHBvc2UgaGlnaGVyIGxpbWl0
cyBmb3Igbm93LgorCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFdlYkdQ
VURldmljZSBjcmVhdGVEZXZpY2UoLypXZWJHUFVEZXZpY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3Iq
Lyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUFkYXB0ZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVlNGQ4OWExMzM5NTYzMDVlZTM4OTcx
YTg5MWRhMjVlOTc5Y2YwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IgeworICAgIGVudW0g
Y2xhc3MgUG93ZXJQcmVmZXJlbmNlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAgTG93UG93
ZXIsCisgICAgICAgIEhpZ2hQZXJmb3JtYW5jZQorICAgIH07CisKKyAgICBQb3dlclByZWZlcmVu
Y2UgcG93ZXJQcmVmZXJlbmNlID0gUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlw
dG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjk0ZDdjYjM0NWVhYTk2NTNhNDM3ZTFjYzA5MTVkYWUwNzVi
YTc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8g
aHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRj
aC53ZWJpZGwKKworZW51bSBXZWJHUFVQb3dlclByZWZlcmVuY2UgeworICAgICJkZWZhdWx0IiwK
KyAgICAibG93LXBvd2VyIiwKKyAgICAiaGlnaC1wZXJmb3JtYW5jZSIKK307CisKK1sKKyAgICBD
b25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gZGljdGlv
bmFyeSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7CisgICAgV2ViR1BVUG93ZXJQcmVmZXJlbmNl
IHBvd2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q0OGQ4NWE3YzIwODU4
ODY5NjkwOGVhZjkxMGQxNmY2YTNhMmExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V2ViR1BV
RGV2aWNlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
PFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJHUFVEZXZpY2UoV1RGTW92ZShhZGFwdGVyKSkpOworfQorCitXZWJHUFVEZXZpY2U6OldlYkdQ
VURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJiBhZGFwdGVyKQorICAgIDogbV9hZGFwdGVyKFdU
Rk1vdmUoYWRhcHRlcikpCit7CisgICAgVU5VU0VEX1BBUkFNKG1fYWRhcHRlcik7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4Y2Vj
MWExN2E4ZTZkZGNlYTRlZWFkYmE2YTVlOWJjZTJhYjU4OGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViR1BVQWRhcHRlcjsKKworY2xhc3Mg
V2ViR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVRGV2aWNlPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJHUFVEZXZpY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYpOworCisgICAgV2ViR1BVQWRhcHRlciYgYWRhcHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fYWRhcHRlci5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdl
YkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJik7CisKKyAgICBSZWY8V2ViR1BVQWRhcHRl
cj4gbV9hZGFwdGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NWU4MDgzYTg3ODA2YTljOTBlY2QyMjZiNDYxZmMzZmVl
ZTE2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuaWRsCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9n
aXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwK
KworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQ
VSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVEZXZp
Y2UgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lv
bnM7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUxpbWl0cyBsaW1pdHM7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUFkYXB0ZXIgYWRhcHRlcjsKKworLyoKKyAgICBXZWJH
UFVCdWZmZXIgY3JlYXRlQnVmZmVyKFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CisgICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJlKFdlYkdQVVRleHR1cmVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxlcihXZWJHUFVTYW1w
bGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIFdlYkdQVUJpbmRHcm91cExheW91dCBj
cmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBkZXNj
cmlwdG9yKTsKKyAgICBXZWJHUFVQaXBlbGluZUxheW91dCBjcmVhdGVQaXBlbGluZUxheW91dChX
ZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQmlu
ZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yIGRlc2NyaXB0
b3IpOworCisgICAgV2ViR1BVQmxlbmRTdGF0ZSBjcmVhdGVCbGVuZFN0YXRlKFdlYkdQVUJsZW5k
U3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRl
IGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVJbnB1dFN0YXRlIGNyZWF0ZUlucHV0U3RhdGUoV2Vi
R1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVU2hhZGVyTW9k
dWxlIGNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpOworICAgIFdlYkdQVUF0dGFjaG1lbnRTdGF0ZSBjcmVhdGVBdHRhY2htZW50U3RhdGUo
V2ViR1BVQXR0YWNobWVudFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVD
b21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUgY3JlYXRl
UmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OworCisgICAgV2ViR1BVQ29tbWFuZEJ1ZmZlciBjcmVhdGVDb21tYW5kQnVmZmVyKFdlYkdQVUNv
bW1hbmRCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUZlbmNlIGNyZWF0
ZUZlbmNlKFdlYkdQVUZlbmNlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIFdlYkdQVVF1
ZXVlIGdldFF1ZXVlKCk7CisKKyAgICBhdHRyaWJ1dGUgV2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7
CisgICAgV2ViR1BVT2JqZWN0U3RhdHVzUXVlcnkgZ2V0T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVP
YmplY3Qgc3RhdHVzYWJsZU9iamVjdCk7CisqLworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNjgwNjY2
NDc5OTgyY2U4ZTRlNzY1ZTRmZWE4YWUyZDQ5OTdiYWU3ZS4uMjEyZmM1OTljMGE2YzQxNjRkNzU0
NGI4ZTU2N2E4ODIxYzY5NTEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI5NSw2ICsyOTUsMTEgQEAg
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIAorTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BV
LmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKwogTW9kdWxlcy93ZWJ2
ci9OYXZpZ2F0b3JXZWJWUi5jcHAKIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcAogTW9kdWxl
cy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAKQEAgLTI1NzYsNiArMjU4MSw3IEBAIEpTRE9NV2lu
ZG93RmV0Y2guY3BwCiBKU0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKIEpTRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzLmNwcAogSlNET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKK0pTRE9NV2lu
ZG93V2ViR1BVLmNwcAogSlNET01XaW5kb3dXZWJWUi5jcHAKIEpTRGF0YVRyYW5zZmVyLmNwcAog
SlNEYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzE2MCw2ICszMTY2LDEwIEBAIEpTVmlzdWFsVmll
d3BvcnQuY3BwCiBKU1ZvaWRDYWxsYmFjay5jcHAKIEpTV2F2ZVNoYXBlck5vZGUuY3BwCiBKU1dl
YkFuaW1hdGlvbi5jcHAKK0pTV2ViR1BVLmNwcAorSlNXZWJHUFVBZGFwdGVyLmNwcAorSlNXZWJH
UFVBZGFwdGVyRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVRGV2aWNlLmNwcAogSlNXZWJNZXRhbEJ1
ZmZlci5jcHAKIEpTV2ViTWV0YWxDb21tYW5kQnVmZmVyLmNwcAogSlNXZWJNZXRhbENvbW1hbmRR
dWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5N2IzNWFmZmY5MWEzMjM1NjMwN2NhNmE3NDYwMDU4ZDIwMmEwNWJmLi43
ZTgwNjg3OGEwMGFhZTVmNGQyNzM5MjQ5N2M5NGYwYzJlNWQyNjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzYzNiw2ICsx
MzYzNiwyMCBAQAogCQlEMDAwRUJBMTExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0
ZU1hY2hpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwMEVEMjUxMUMx
QjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFN1YmZyYW1lTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDAwMEVEMjYxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1YmZyYW1lTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5k
b3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQxMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dX
ZWJHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdp
bmRvd1dlYkdQVS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93V2ViR1BVLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5
NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0ODIxNkVGRTU0MDAw
RDcxREIgLyogV2ViR1BVLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NEUyMTZGRjZGMDAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTRGMjE2RkZBQzIwMDBENzFEQiAv
KiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTAyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQ
VUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQWRhcHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTUxMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJH
UFVBZGFwdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVBZGFwdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHUFVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
UFVEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlC
RkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJGODU0RTIxNjgyQTRBMDA4OEVFNzQgLyog
V2ViTWV0YWxDb21tYW5kUXVldWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk1ldGFsQ29tbWFuZFF1ZXVlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjQyLDYgKzIxMjU2LDcgQEAKIAkJCQk1
N0Q4NDYyQTFGRUFGNTdGMDBDQTM2ODIgLyogd2ViYXV0aG4gKi8sCiAJCQkJOTdCQzY5RDUxNTA1
RjA1NDAwMUI3NEFDIC8qIHdlYmRhdGFiYXNlICovLAogCQkJCTk5NkU1OURBMURGMDBENDUwMDY2
MTJCOSAvKiB3ZWJkcml2ZXIgKi8sCisJCQkJRDAwRjU5M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdl
YmdwdSAqLywKIAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3NDU3QUUgLyogd2Vic29ja2V0cyAqLywK
IAkJCQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyogd2VidnIgKi8sCiAJCQkpOwpAQCAtMjUy
OTQsNiArMjUzMDksMjcgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQlEMDBGNTkzRTIxNkVDQzQzMDAwRDcxREIgLyogd2ViZ3B1ICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlEMDBGNTk0MTIxNkVDQzdB
MDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmNwcCAqLywKKwkJCQlEMDBGNTk0MDIxNkVDQzdB
MDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmggKi8sCisJCQkJRDAwRjU5NDIyMTZFQ0M3QTAw
MEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8sCisJCQkJRDAwRjU5NDcyMTZFRkU1NDAw
MEQ3MURCIC8qIFdlYkdQVS5jcHAgKi8sCisJCQkJRDAwRjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8q
IFdlYkdQVS5oICovLAorCQkJCUQwMEY1OTQ4MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJHUFUuaWRs
ICovLAorCQkJCUQwMEY1OTUwMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmNwcCAq
LywKKwkJCQlEMDBGNTk0RjIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5oICovLAor
CQkJCUQwMEY1OTUxMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLywKKwkJ
CQlEMDBGNTk0RTIxNkZGNkYwMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAq
LywKKwkJCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IuaWRsICovLAorCQkJCUQwMEY1OTUzMjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2Uu
Y3BwICovLAorCQkJCUQwMEY1OTUyMjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAq
LywKKwkJCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIgLyogV2ViR1BVRGV2aWNlLmlkbCAqLywK
KwkJCSk7CisJCQlwYXRoID0gd2ViZ3B1OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJREY5QUZENkYxM0ZDMzFCMDAwMTVGRUI3IC8qIG9iamMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDU0ODk5ZWMzYmU5MmI3ZDEzMGJlMzcxNDJj
YWE1MjlkNzk2MDVhY2QuLjk2YjQ5Yjk4MGE1YWQzYTE0MWIwYjA4Nzg3YTFlMWIwMmQzM2M3MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTE3Miw2ICsxNzIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFZp
c3VhbFZpZXdwb3J0KSBcCiAgICAgbWFjcm8oV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgXAogICAg
IG1hY3JvKFdlYkdMVmVydGV4QXJyYXlPYmplY3QpIFwKKyAgICBtYWNybyhXZWJHUFUpIFwKKyAg
ICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCisgICAgbWFjcm8oV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IpIFwKKyAgICBtYWNybyhXZWJHUFVEZXZpY2UpIFwKICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZl
cikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1l
dGFsQ29tbWFuZFF1ZXVlKSBcCkBAIC0zMTgsNiArMzIyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHdlYmtpdElEQlJlcXVlc3QpIFwKICAgICBtYWNybyh3ZWJraXRJREJUcmFu
c2FjdGlvbikgXAogICAgIG1hY3JvKHdlYmtpdEluZGV4ZWREQikgXAorICAgIG1hY3JvKHdlYmdw
dSkgXAogICAgIG1hY3JvKHdpbmRvdykgXAogICAgIG1hY3JvKHdyaXRpbmcpCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
OGFjNTM3ZWRkY2MyYThmYmJiMzg2Njg5ZmU0YTZlNzdiNDliMDUxLi42ZmE4NGU1MWY5NTkwMjZk
NWI5YmNhYWEyMWIwNmU2YzJlYTdjMGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAt
MTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BV
XSBJbXBsZW1lbnQgV2ViR1BVIGJpbmRpbmdzIHVwIHRocm91Z2ggV2ViR1BVRGV2aWNlIGNyZWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbWFs
bCB0ZXN0IHRvIHZhbGlkYXRlIGNyZWF0aW9uIG9mIGEgV2ViR1BVRGV2aWNlIHdoZW4gV2ViR1BV
IGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiB3ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbDogQWRk
ZWQuCisKIDIwMTgtMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICB3aW5kb3cucGVyZm9ybWFuY2Ugc2hvdWxkIG5vdCBiZWNvbWUgbnVsbCBhZnRlciB0aGUg
d2luZG93IGxvc2VzIGl0cyBicm93c2luZyBjb250ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS93ZWJncHUt
ZW5hYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NzIwNDM3OTE3MGViOThhN2I5NzcyOGMzOTM2NTIx
ODRkYjU5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVu
YWJsZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHNob3VsZEJlRGVmaW5lZCh3aW5k
b3cud2ViZ3B1KTsKKyAgICB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHsgcG93ZXJQcmVm
ZXJlbmNlOiAiZGVmYXVsdCIgfSkudGhlbihhZGFwdGVyID0+IHsKKyAgICAgICAgc2hvdWxkQmVE
ZWZpbmVkKGFkYXB0ZXIpOworICAgICAgICBsZXQgZGVmYXVsdERldmljZSA9IGFkYXB0ZXIuY3Jl
YXRlRGV2aWNlKCk7CisgICAgICAgIHNob3VsZEJlRGVmaW5lZChkZWZhdWx0RGV2aWNlKTsKKyAg
ICB9KS5jYXRjaChlcnJvciA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0p
OworfQorCitydW5UZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352631</attachid>
            <date>2018-10-17 13:36:45 -0700</date>
            <delta_ts>2018-10-17 13:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181017133644.patch</filename>
            <type>text/plain</type>
            <size>45325</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYTk3MWM4NjNkZDk5MDdlNzE5ZTUwMDg3NjViMTQy
MmJiNmZmZGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorCiAyMDE4LTEwLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHN3aXRjaCBmb3IgV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlYzI5NjU1OWI1NWQwYzViN2M1ODk0Zjc4ZGNjOGQ4ODcwZWFlNWNlLi4yYzE1ZmU0ODFi
MWNiN2RkN2YwN2ZmYzdlOTVjNTU5NmMzNTUzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NTEsNiArNTEsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2ViYXV0aG4iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
d2ViZGF0YWJhc2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZHJpdmVyIgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAg
ICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChX
ZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvc3RyZWFtcwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8KICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCisgICAgTW9kdWxlcy93ZWJncHUKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMKICAgICBNb2R1bGVzL3dlYnZyCiAKQEAgLTQ0NCw2ICs0NDYsMTIg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIE1vZHVsZXMvd2ViZHJpdmVy
L05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAorICAgIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dl
YkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYmE2YTA1
YThmMWNjMTM0NDZkNjgwNjg0ODVlY2UzMGFkZGFlMTI1Li4wYmI2NGYyMzc1YzI2NzVmYTE3ZDk3
YWZlZjA1OTM3ZjZjOTFiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU5
LDYgKzU5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKQEAgLTM2NSw2ICszNjYsMTEgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MGM4Y2IxMzg3YmQ2NzlkZTUxNDkzYzAzMzVkY2UxOTc3ODMyYTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
Y3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93V2ViR1BVLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIldlYkdQVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd1dl
YkdQVTo6RE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93KQoreworfQorCitjb25zdCBjaGFyKiBET01XaW5kb3dXZWJHUFU6OnN1
cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkRPTVdpbmRvd1dlYkdQVSI7Cit9CisKK0RP
TVdpbmRvd1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIERPTVdpbmRvd1dlYkdQVSogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRv
d1dlYkdQVSo+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnRO
YW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVt
ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5kb3dXZWJHUFU+KHdpbmRvdyk7CisgICAgICAg
IHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAgICAgICBwcm92aWRlVG8od2lu
ZG93LCBzdXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjp3ZWJn
cHUoRE9NV2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIERPTVdpbmRvd1dlYkdQVTo6ZnJv
bSgmd2luZG93KS0+d2ViZ3B1KCk7Cit9CisKK1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjp3ZWJn
cHUoKSBjb25zdAoreworICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSk7CisKKyAgICBpZiAoIW1fd2ViZ3B1ICYmIGZyYW1l
KCkpCisgICAgICAgIG1fd2ViZ3B1ID0gV2ViR1BVOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gbV93
ZWJncHUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9E
T01XaW5kb3dXZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRv
d1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZWM0MzBmNjZjNTgyYTk1ZDY4YWUzZDI0NjhlNDk3ODMy
OGFjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9E
T01XaW5kb3dXZWJHUFUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHku
aCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIFdlYkdQVTsKKworY2xhc3MgRE9NV2luZG93V2ViR1BV
IDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBET01XaW5kb3dXZWJHUFUoRE9NV2luZG93Kik7Cisg
ICAgdmlydHVhbCB+RE9NV2luZG93V2ViR1BVKCkgPSBkZWZhdWx0OworICAgIHN0YXRpYyBET01X
aW5kb3dXZWJHUFUqIGZyb20oRE9NV2luZG93Kik7CisgICAgc3RhdGljIFdlYkdQVSogd2ViZ3B1
KERPTVdpbmRvdyYpOworICAgIFdlYkdQVSogd2ViZ3B1KCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBtdXRhYmxlIFJl
ZlB0cjxXZWJHUFU+IG1fd2ViZ3B1OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNDRjODg1MDQ3ZDIwZGU5ZjQ5
MTJhMWJiM2JiZDc4ZThlMjVmMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVz
aWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVQorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgeworICAg
IFtSZXBsYWNlYWJsZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVSB3ZWJn
cHU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTk2YWVmZmQ1NDliYWUwOGRkZTY1YTNhY2YwYjQ3MGEyMTczYWRjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJH
UFUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJXZWJHUFVBZGFwdGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVT4gV2ViR1BVOjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVSk7Cit9CisKK3ZvaWQgV2ViR1BVOjpy
ZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwg
V2ViR1BVQWRhcHRlclByb21pc2UmJiBkZWZlcnJlZCkgY29uc3QKK3sKKyAgICBkZWZlcnJlZC5y
ZXNvbHZlKFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZShkZXNjcmlwdG9yKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNTEwNzY5MDI4ZTEzNjAxOWE4YzI2
NmJiMGI3ZDZjYTg1MGIwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFUuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHUFVBZGFwdGVyOwor
CitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3I7CisKK2NsYXNzIFdlYkdQVSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYkdQVT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVPiBj
cmVhdGUoKTsKKworICAgIHVzaW5nIFdlYkdQVUFkYXB0ZXJQcm9taXNlID0gRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxXZWJHUFVBZGFwdGVyPj47CisKKyAgICB2b2lkIHJlcXVlc3RB
ZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiwgV2ViR1BVQWRhcHRlclByb21p
c2UmJikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR1BVKCkgPSBkZWZhdWx0OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2M2RlOGFkNTNk
MTYyMzc5ODljNTRhNTE1Y2I2MGU5OTc3YTYxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVz
aWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGlu
dGVyZmFjZSBXZWJHUFUgeworICAgIFByb21pc2U8V2ViR1BVQWRhcHRlcj4gcmVxdWVzdEFkYXB0
ZXIoV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IgZGVzYyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGY0NWUxYmVk
NjI0Y2I1OThiMjk4YWRhOTI2NTIyMDUyYjFmZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVBZGFw
dGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiV2ViR1BVRGV2aWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUFk
YXB0ZXI+IFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZShjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVBZGFwdGVy
KGRlc2NyaXB0b3IpKTsKK30KKworV2ViR1BVQWRhcHRlcjo6V2ViR1BVQWRhcHRlcihjb25zdCBX
ZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihk
ZXNjcmlwdG9yKQoreworICAgIFVOVVNFRF9QQVJBTShtX2Rlc2NyaXB0b3IpOworfQorCitSZWY8
V2ViR1BVRGV2aWNlPiBXZWJHUFVBZGFwdGVyOjpjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICByZXR1cm4gV2ViR1BVRGV2aWNlOjpjcmVhdGUoY29u
dGV4dCwgKnRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRhYTg1MTFjYzg4YjI1MWM1OWJlYzllZGFlZGFmYjQyMmMwOTk3
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNz
IFdlYkdQVURldmljZTsKKworc3RydWN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFz
cyBXZWJHUFVBZGFwdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQWRhcHRlcj4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVQWRhcHRlcj4gY3JlYXRlKGNvbnN0IFdlYkdQVUFk
YXB0ZXJEZXNjcmlwdG9yJik7CisKKyAgICBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGVEZXZpY2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCitwcml2YXRlOgorICAgIFdlYkdQVUFkYXB0ZXIo
Y29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3ImKTsKKworICAgIGNvbnN0IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yJiBtX2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWNlNTA1YWZiMzU3ZDg0YzI4
YjIxOTkyZTQyMDA0YmY0MmY4MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNp
Z24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFdlYkdQVUFkYXB0ZXIgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRl
bnNpb25zOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOyBE
b24ndCBleHBvc2UgaGlnaGVyIGxpbWl0cyBmb3Igbm93LgorCisgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIFdlYkdQVURldmljZSBjcmVhdGVEZXZpY2UoLypXZWJHUFVEZXZp
Y2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IqLyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGVlNGQ4OWExMzM5NTYzMDVlZTM4OTcxYTg5MWRhMjVlOTc5Y2YwZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IgeworICAgIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIHsKKyAgICAgICAg
RGVmYXVsdCwKKyAgICAgICAgTG93UG93ZXIsCisgICAgICAgIEhpZ2hQZXJmb3JtYW5jZQorICAg
IH07CisKKyAgICBQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlID0gUG93ZXJQcmVmZXJl
bmNlOjpEZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjk0ZDdjYjM0NWVh
YTk2NTNhNDM3ZTFjYzA5MTVkYWUwNzViYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIv
YmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworZW51bSBXZWJHUFVQb3dlclByZWZl
cmVuY2UgeworICAgICJkZWZhdWx0IiwKKyAgICAibG93LXBvd2VyIiwKKyAgICAiaGlnaC1wZXJm
b3JtYW5jZSIKK307CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7Cisg
ICAgV2ViR1BVUG93ZXJQcmVmZXJlbmNlIHBvd2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jY2Q0OGQ4NWE3YzIwODU4ODY5NjkwOGVhZjkxMGQxNmY2YTNhMmExCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNw
cApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVURldmljZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitSZWY8V2ViR1BVRGV2aWNlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVEZXZpY2UoV1RGTW92ZShhZGFwdGVyKSkpOwor
fQorCitXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJiBhZGFw
dGVyKQorICAgIDogbV9hZGFwdGVyKFdURk1vdmUoYWRhcHRlcikpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1fYWRhcHRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY4Y2VjMWExN2E4ZTZkZGNlYTRlZWFkYmE2YTVlOWJjZTJhYjU4
OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
V2ViR1BVQWRhcHRlcjsKKworY2xhc3MgV2ViR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViR1BVRGV2aWNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJHUFVEZXZpY2U+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYpOworCisg
ICAgV2ViR1BVQWRhcHRlciYgYWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWRhcHRlci5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFdlYkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJik7
CisKKyAgICBSZWY8V2ViR1BVQWRhcHRlcj4gbV9hZGFwdGVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NWU4MDgzYTg3
ODA2YTljOTBlY2QyMjZiNDYxZmMzZmVlZTE2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCkBAIC0wLDAgKzEsNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
CitdIGludGVyZmFjZSBXZWJHUFVEZXZpY2UgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBX
ZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdl
YkdQVUxpbWl0cyBsaW1pdHM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUFkYXB0ZXIg
YWRhcHRlcjsKKworLyoKKyAgICBXZWJHUFVCdWZmZXIgY3JlYXRlQnVmZmVyKFdlYkdQVUJ1ZmZl
ckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJl
KFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNhbXBsZXIg
Y3JlYXRlU2FtcGxlcihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAg
IFdlYkdQVUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVQaXBlbGluZUxheW91
dCBjcmVhdGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVz
Y3JpcHRvcik7CisgICAgV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQmxlbmRTdGF0ZSBjcmVh
dGVCbGVuZFN0YXRlKFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAg
IFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlIGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURl
cHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVJbnB1dFN0
YXRlIGNyZWF0ZUlucHV0U3RhdGUoV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgV2ViR1BVU2hhZGVyTW9kdWxlIGNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFk
ZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUF0dGFjaG1lbnRTdGF0
ZSBjcmVhdGVBdHRhY2htZW50U3RhdGUoV2ViR1BVQXR0YWNobWVudFN0YXRlRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVs
aW5lKFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgY3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQ29tbWFuZEJ1ZmZlciBjcmVh
dGVDb21tYW5kQnVmZmVyKFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OworICAgIFdlYkdQVUZlbmNlIGNyZWF0ZUZlbmNlKFdlYkdQVUZlbmNlRGVzY3JpcHRvciBkZXNj
cmlwdG9yKTsKKworICAgIFdlYkdQVVF1ZXVlIGdldFF1ZXVlKCk7CisKKyAgICBhdHRyaWJ1dGUg
V2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7CisgICAgV2ViR1BVT2JqZWN0U3RhdHVzUXVlcnkgZ2V0
T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVPYmplY3Qgc3RhdHVzYWJsZU9iamVjdCk7CisqLworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNjgwNjY2NDc5OTgyY2U4ZTRlNzY1ZTRmZWE4YWUyZDQ5OTdiYWU3
ZS4uMjEyZmM1OTljMGE2YzQxNjRkNzU0NGI4ZTU2N2E4ODIxYzY5NTEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTI5NSw2ICsyOTUsMTEgQEAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1l
LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKIE1vZHVsZXMv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIAorTW9kdWxl
cy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcAor
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKKwogTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKIE1vZHVsZXMvd2Vi
dnIvVlJEaXNwbGF5LmNwcAogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAKQEAgLTI1
NzYsNiArMjU4MSw3IEBAIEpTRE9NV2luZG93RmV0Y2guY3BwCiBKU0RPTVdpbmRvd0luZGV4ZWRE
YXRhYmFzZS5jcHAKIEpTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogSlNET01XaW5kb3dX
ZWJEYXRhYmFzZS5jcHAKK0pTRE9NV2luZG93V2ViR1BVLmNwcAogSlNET01XaW5kb3dXZWJWUi5j
cHAKIEpTRGF0YVRyYW5zZmVyLmNwcAogSlNEYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzE2MCw2
ICszMTY2LDEwIEBAIEpTVmlzdWFsVmlld3BvcnQuY3BwCiBKU1ZvaWRDYWxsYmFjay5jcHAKIEpT
V2F2ZVNoYXBlck5vZGUuY3BwCiBKU1dlYkFuaW1hdGlvbi5jcHAKK0pTV2ViR1BVLmNwcAorSlNX
ZWJHUFVBZGFwdGVyLmNwcAorSlNXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BV
RGV2aWNlLmNwcAogSlNXZWJNZXRhbEJ1ZmZlci5jcHAKIEpTV2ViTWV0YWxDb21tYW5kQnVmZmVy
LmNwcAogSlNXZWJNZXRhbENvbW1hbmRRdWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5N2IzNWFmZmY5MWEzMjM1NjMw
N2NhNmE3NDYwMDU4ZDIwMmEwNWJmLi43ZTgwNjg3OGEwMGFhZTVmNGQyNzM5MjQ5N2M5NGYwYzJl
NWQyNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzYzNiw2ICsxMzYzNiwyMCBAQAogCQlEMDAwRUJBMTExQkRBRkQ0MDBD
NDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAwMEVEMjUxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YmZyYW1lTG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwMEVEMjYxMUMxQjlDRDAwQzQ3NzI2
IC8qIFN1YmZyYW1lTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1
YmZyYW1lTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQwMjE2
RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2lu
ZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQxMjE2RUND
N0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9N
V2luZG93V2ViR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDIy
MTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93V2Vi
R1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDYyMTZFRkU1NDAw
MEQ3MURCIC8qIFdlYkdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMDBGNTk0ODIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcx
REIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXJEZXNj
cmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NEUyMTZGRjZG
MDAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
MEY1OTRGMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTAy
MTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTUx
MjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVBZGFwdGVy
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3
MURCIC8qIFdlYkdQVURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVEZXZpY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdl
YkdQVURldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVEZXZpY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIgLyogV2Vi
R1BVRGV2aWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5n
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZEODAwMDI2
QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJG
ODU0RTIxNjgyQTRBMDA4OEVFNzQgLyogV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
Yk1ldGFsQ29tbWFuZFF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIx
MjQyLDYgKzIxMjU2LDcgQEAKIAkJCQk1N0Q4NDYyQTFGRUFGNTdGMDBDQTM2ODIgLyogd2ViYXV0
aG4gKi8sCiAJCQkJOTdCQzY5RDUxNTA1RjA1NDAwMUI3NEFDIC8qIHdlYmRhdGFiYXNlICovLAog
CQkJCTk5NkU1OURBMURGMDBENDUwMDY2MTJCOSAvKiB3ZWJkcml2ZXIgKi8sCisJCQkJRDAwRjU5
M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdlYmdwdSAqLywKIAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3
NDU3QUUgLyogd2Vic29ja2V0cyAqLywKIAkJCQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyog
d2VidnIgKi8sCiAJCQkpOwpAQCAtMjUyOTQsNiArMjUzMDksMjcgQEAKIAkJCXBhdGggPSBpb3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlEMDBGNTkzRTIxNkVDQzQzMDAw
RDcxREIgLyogd2ViZ3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlEMDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmNwcCAq
LywKKwkJCQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmggKi8s
CisJCQkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8s
CisJCQkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAgKi8sCisJCQkJRDAw
RjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovLAorCQkJCUQwMEY1OTQ4MjE2RUZF
NTQwMDBENzFEQiAvKiBXZWJHUFUuaWRsICovLAorCQkJCUQwMEY1OTUwMjE2RkZBQzIwMDBENzFE
QiAvKiBXZWJHUFVBZGFwdGVyLmNwcCAqLywKKwkJCQlEMDBGNTk0RjIxNkZGQUMyMDAwRDcxREIg
LyogV2ViR1BVQWRhcHRlci5oICovLAorCQkJCUQwMEY1OTUxMjE2RkZBQzIwMDBENzFEQiAvKiBX
ZWJHUFVBZGFwdGVyLmlkbCAqLywKKwkJCQlEMDBGNTk0RTIxNkZGNkYwMDAwRDcxREIgLyogV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLywKKwkJCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcxREIg
LyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwMEY1OTUzMjE3MDFEOEMw
MDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovLAorCQkJCUQwMEY1OTUyMjE3MDFEOEMwMDBE
NzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLywKKwkJCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIg
LyogV2ViR1BVRGV2aWNlLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2ViZ3B1OworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJREY5QUZENkYxM0ZDMzFCMDAwMTVGRUI3IC8q
IG9iamMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDU0
ODk5ZWMzYmU5MmI3ZDEzMGJlMzcxNDJjYWE1MjlkNzk2MDVhY2QuLjk2YjQ5Yjk4MGE1YWQzYTE0
MWIwYjA4Nzg3YTFlMWIwMmQzM2M3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3Miw2ICsxNzIsMTAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKFZpc3VhbFZpZXdwb3J0KSBcCiAgICAgbWFjcm8oV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdMVmVydGV4QXJyYXlPYmplY3QpIFwK
KyAgICBtYWNybyhXZWJHUFUpIFwKKyAgICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCisgICAgbWFj
cm8oV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhXZWJHUFVEZXZpY2UpIFwK
ICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZEJ1
ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBcCkBAIC0zMTgsNiArMzIy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHdlYmtpdElEQlJlcXVlc3QpIFwK
ICAgICBtYWNybyh3ZWJraXRJREJUcmFuc2FjdGlvbikgXAogICAgIG1hY3JvKHdlYmtpdEluZGV4
ZWREQikgXAorICAgIG1hY3JvKHdlYmdwdSkgXAogICAgIG1hY3JvKHdpbmRvdykgXAogICAgIG1h
Y3JvKHdyaXRpbmcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOGFjNTM3ZWRkY2MyYThmYmJiMzg2Njg5ZmU0YTZlNzdi
NDliMDUxLi42ZmE4NGU1MWY5NTkwMjZkNWI5YmNhYWEyMWIwNmU2YzJlYTdjMGUzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgV2ViR1BVIGJpbmRpbmdzIHVwIHRo
cm91Z2ggV2ViR1BVRGV2aWNlIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTbWFsbCB0ZXN0IHRvIHZhbGlkYXRlIGNyZWF0aW9uIG9mIGEg
V2ViR1BVRGV2aWNlIHdoZW4gV2ViR1BVIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiB3ZWJncHUv
d2ViZ3B1LWVuYWJsZWQuaHRtbDogQWRkZWQuCisKIDIwMTgtMTAtMTYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3aW5kb3cucGVyZm9ybWFuY2Ugc2hvdWxkIG5v
dCBiZWNvbWUgbnVsbCBhZnRlciB0aGUgd2luZG93IGxvc2VzIGl0cyBicm93c2luZyBjb250ZXh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NzIwNDM3
OTE3MGViOThhN2I5NzcyOGMzOTM2NTIxODRkYjU5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
d2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgIHNob3VsZEJlRGVmaW5lZCh3aW5kb3cud2ViZ3B1KTsKKyAgICB3aW5kb3cud2ViZ3B1LnJl
cXVlc3RBZGFwdGVyKHsgcG93ZXJQcmVmZXJlbmNlOiAiZGVmYXVsdCIgfSkudGhlbihhZGFwdGVy
ID0+IHsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKGFkYXB0ZXIpOworICAgICAgICBsZXQgZGVm
YXVsdERldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7CisgICAgICAgIHNob3VsZEJlRGVm
aW5lZChkZWZhdWx0RGV2aWNlKTsKKyAgICB9KS5jYXRjaChlcnJvciA9PiB7CisgICAgICAgIHRl
c3RGYWlsZWQoZXJyb3IpOworICAgIH0pOworfQorCitydW5UZXN0KCk7CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352634</attachid>
            <date>2018-10-17 13:53:46 -0700</date>
            <delta_ts>2018-10-17 15:53:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190653-20181017135345.patch</filename>
            <type>text/plain</type>
            <size>45327</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYTk3MWM4NjNkZDk5MDdlNzE5ZTUwMDg3NjViMTQy
MmJiNmZmZGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ3B1
L3dlYmdwdS1lbmFibGVkLmh0bWwKKworICAgICAgICBBZGQgV2ViR1BVIFNrZXRjaCBiaW5kaW5n
cyBmb3Igd2luZG93LndlYmdwdSwgV2ViR1BVQWRhcHRlciwgV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IsCisgICAgICAgIGFuZCBXZWJHUFVEZXZpY2UgY3JlYXRpb24uIEJhc2VkIG9mZiBJREwgY29t
bWl0IHZlcnNpb24gYjZjNjFlZS4gCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIv
Z3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViR1BVOjpET01XaW5kb3dXZWJHUFUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93V2ViR1BVOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dXZWJHUFU6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3
ZWJncHUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViR1BVOjp3ZWJncHUgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVTo6cmVxdWVzdEFkYXB0
ZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6
V2ViR1BVQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVBZGFwdGVyOjpjcmVhdGVE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjph
ZGFwdGVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOgorCiAyMDE4LTEwLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHN3aXRjaCBmb3IgV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlYzI5NjU1OWI1NWQwYzViN2M1ODk0Zjc4ZGNjOGQ4ODcwZWFlNWNlLi4yYzE1ZmU0ODFi
MWNiN2RkN2YwN2ZmYzdlOTVjNTU5NmMzNTUzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NTEsNiArNTEsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2ViYXV0aG4iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
d2ViZGF0YWJhc2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZHJpdmVyIgorICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAg
ICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChX
ZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvc3RyZWFtcwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8KICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCisgICAgTW9kdWxlcy93ZWJncHUKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMKICAgICBNb2R1bGVzL3dlYnZyCiAKQEAgLTQ0NCw2ICs0NDYsMTIg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIE1vZHVsZXMvd2ViZHJpdmVy
L05hdmlnYXRvcldlYkRyaXZlci5pZGwKIAorICAgIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dl
YkdQVS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisKICAgICBN
b2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYmE2YTA1
YThmMWNjMTM0NDZkNjgwNjg0ODVlY2UzMGFkZGFlMTI1Li4wYmI2NGYyMzc1YzI2NzVmYTE3ZDk3
YWZlZjA1OTM3ZjZjOTFiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU5
LDYgKzU5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkg
XAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKQEAgLTM2NSw2ICszNjYsMTEgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJkcml2ZXIvTmF2aWdhdG9yV2ViRHJpdmVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
QWRhcHRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MGM4Y2IxMzg3YmQ2NzlkZTUxNDkzYzAzMzVkY2UxOTc3ODMyYTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUu
Y3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NV2luZG93V2ViR1BVLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIldlYkdQVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdpbmRvd1dl
YkdQVTo6RE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93KQoreworfQorCitjb25zdCBjaGFyKiBET01XaW5kb3dXZWJHUFU6OnN1
cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkRPTVdpbmRvd1dlYkdQVSI7Cit9CisKK0RP
TVdpbmRvd1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIERPTVdpbmRvd1dlYkdQVSogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRv
d1dlYkdQVSo+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnRO
YW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVt
ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5kb3dXZWJHUFU+KHdpbmRvdyk7CisgICAgICAg
IHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAgICAgICBwcm92aWRlVG8od2lu
ZG93LCBzdXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjp3ZWJn
cHUoRE9NV2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIERPTVdpbmRvd1dlYkdQVTo6ZnJv
bSgmd2luZG93KS0+d2ViZ3B1KCk7Cit9CisKK1dlYkdQVSogRE9NV2luZG93V2ViR1BVOjp3ZWJn
cHUoKSBjb25zdAoreworICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLndlYkdQVUVuYWJsZWQoKSk7CisKKyAgICBpZiAoIW1fd2ViZ3B1ICYmIGZyYW1l
KCkpCisgICAgICAgIG1fd2ViZ3B1ID0gV2ViR1BVOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gbV93
ZWJncHUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9E
T01XaW5kb3dXZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0RPTVdpbmRv
d1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZWM0MzBmNjZjNTgyYTk1ZDY4YWUzZDI0NjhlNDk3ODMy
OGFjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9E
T01XaW5kb3dXZWJHUFUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHku
aCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIFdlYkdQVTsKKworY2xhc3MgRE9NV2luZG93V2ViR1BV
IDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBET01XaW5kb3dXZWJHUFUoRE9NV2luZG93Kik7Cisg
ICAgdmlydHVhbCB+RE9NV2luZG93V2ViR1BVKCkgPSBkZWZhdWx0OworICAgIHN0YXRpYyBET01X
aW5kb3dXZWJHUFUqIGZyb20oRE9NV2luZG93Kik7CisgICAgc3RhdGljIFdlYkdQVSogd2ViZ3B1
KERPTVdpbmRvdyYpOworICAgIFdlYkdQVSogd2ViZ3B1KCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBtdXRhYmxlIFJl
ZlB0cjxXZWJHUFU+IG1fd2ViZ3B1OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQVS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNDRjODg1MDQ3ZDIwZGU5ZjQ5
MTJhMWJiM2JiZDc4ZThlMjVmMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVz
aWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVQorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgeworICAg
IFtSZXBsYWNlYWJsZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVSB3ZWJn
cHU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjc0NTE4ODJhZDIzMDlkNzg4OWE0YTY3MTc3ZTM0ZDRjNWYyNmJhNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJH
UFUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJKU1dlYkdQVUFkYXB0ZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V2ViR1BVPiBXZWJHUFU6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVKTsKK30KKwordm9pZCBXZWJHUFU6
OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
LCBXZWJHUFVBZGFwdGVyUHJvbWlzZSYmIGRlZmVycmVkKSBjb25zdAoreworICAgIGRlZmVycmVk
LnJlc29sdmUoV2ViR1BVQWRhcHRlcjo6Y3JlYXRlKGRlc2NyaXB0b3IpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ1MTA3NjkwMjhlMTM2MDE5YThj
MjY2YmIwYjdkNmNhODUwYjAzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VE
ZWZlcnJlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdQVUFkYXB0ZXI7
CisKK3N0cnVjdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvcjsKKworY2xhc3MgV2ViR1BVIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2ViR1BVPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJHUFU+
IGNyZWF0ZSgpOworCisgICAgdXNpbmcgV2ViR1BVQWRhcHRlclByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWNlPFdlYkdQVUFkYXB0ZXI+PjsKKworICAgIHZvaWQgcmVxdWVz
dEFkYXB0ZXIoY29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3ImLCBXZWJHUFVBZGFwdGVyUHJv
bWlzZSYmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJHUFUoKSA9IGRlZmF1bHQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYzZGU4YWQ1
M2QxNjIzNzk4OWM1NGE1MTVjYjYwZTk5NzdhNjExNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9k
ZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10g
aW50ZXJmYWNlIFdlYkdQVSB7CisgICAgUHJvbWlzZTxXZWJHUFVBZGFwdGVyPiByZXF1ZXN0QWRh
cHRlcihXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciBkZXNjKTsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkZjQ1ZTFi
ZWQ2MjRjYjU5OGIyOThhZGE5MjY1MjIwNTJiMWZmZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUFk
YXB0ZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCIKKyNpbmNs
dWRlICJXZWJHUFVEZXZpY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V2ViR1BV
QWRhcHRlcj4gV2ViR1BVQWRhcHRlcjo6Y3JlYXRlKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUFkYXB0
ZXIoZGVzY3JpcHRvcikpOworfQorCitXZWJHUFVBZGFwdGVyOjpXZWJHUFVBZGFwdGVyKGNvbnN0
IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorICAgIDogbV9kZXNjcmlwdG9y
KGRlc2NyaXB0b3IpCit7CisgICAgVU5VU0VEX1BBUkFNKG1fZGVzY3JpcHRvcik7Cit9CisKK1Jl
ZjxXZWJHUFVEZXZpY2U+IFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZURldmljZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQoreworICAgIHJldHVybiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShj
b250ZXh0LCAqdGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVB
ZGFwdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFhODUxMWNjODhiMjUxYzU5YmVjOWVkYWVkYWZiNDIyYzA5
OTdkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xh
c3MgV2ViR1BVRGV2aWNlOworCitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3I7CisKK2Ns
YXNzIFdlYkdQVUFkYXB0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVBZGFwdGVyPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJHUFVBZGFwdGVyPiBjcmVhdGUoY29uc3QgV2ViR1BV
QWRhcHRlckRlc2NyaXB0b3ImKTsKKworICAgIFJlZjxXZWJHUFVEZXZpY2U+IGNyZWF0ZURldmlj
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKK3ByaXZhdGU6CisgICAgV2ViR1BVQWRhcHRl
cihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYpOworCisgICAgY29uc3QgV2ViR1BVQWRh
cHRlckRlc2NyaXB0b3ImIG1fZGVzY3JpcHRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5Y2U1MDVhZmIzNTdkODRj
MjhiMjE5OTJlNDIwMDRiZjQyZjgyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rl
c2lnbi9za2V0Y2gud2ViaWRsCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBp
bnRlcmZhY2UgV2ViR1BVQWRhcHRlciB7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBuYW1lOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVFeHRlbnNpb25zIGV4
dGVuc2lvbnM7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUxpbWl0cyBsaW1pdHM7
IERvbid0IGV4cG9zZSBoaWdoZXIgbGltaXRzIGZvciBub3cuCisKKyAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gV2ViR1BVRGV2aWNlIGNyZWF0ZURldmljZSgvKldlYkdQVURl
dmljZURlc2NyaXB0b3IgZGVzY3JpcHRvciovKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZWU0ZDg5YTEzMzk1NjMwNWVlMzg5NzFhODkxZGEyNWU5NzljZjBkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBXZWJHUFVBZGFw
dGVyRGVzY3JpcHRvciB7CisgICAgZW51bSBjbGFzcyBQb3dlclByZWZlcmVuY2UgeworICAgICAg
ICBEZWZhdWx0LAorICAgICAgICBMb3dQb3dlciwKKyAgICAgICAgSGlnaFBlcmZvcm1hbmNlCisg
ICAgfTsKKworICAgIFBvd2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UgPSBQb3dlclByZWZl
cmVuY2U6OkRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyOTRkN2NiMzQ1
ZWFhOTY1M2E0MzdlMWNjMDkxNWRhZTA3NWJhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGwKQEAgLTAs
MCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdl
Yi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitlbnVtIFdlYkdQVVBvd2VyUHJl
ZmVyZW5jZSB7CisgICAgImRlZmF1bHQiLAorICAgICJsb3ctcG93ZXIiLAorICAgICJoaWdoLXBl
cmZvcm1hbmNlIgorfTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yIHsK
KyAgICBXZWJHUFVQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlID0gImRlZmF1bHQiOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNjZDQ4ZDg1YTdjMjA4NTg4Njk2OTA4ZWFmOTEwZDE2ZjZhM2EyYTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZjxXZWJHUFVEZXZpY2U+IFdlYkdQVURldmljZTo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8V2ViR1BVQWRhcHRlcj4mJiBhZGFwdGVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVURldmljZShXVEZNb3ZlKGFkYXB0ZXIpKSk7
Cit9CisKK1dlYkdQVURldmljZTo6V2ViR1BVRGV2aWNlKFJlZjxXZWJHUFVBZGFwdGVyPiYmIGFk
YXB0ZXIpCisgICAgOiBtX2FkYXB0ZXIoV1RGTW92ZShhZGFwdGVyKSkKK3sKKyAgICBVTlVTRURf
UEFSQU0obV9hZGFwdGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhjZWMxYTE3YThlNmRkY2VhNGVlYWRiYTZhNWU5YmNlMmFi
NTg4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFz
cyBXZWJHUFVBZGFwdGVyOworCitjbGFzcyBXZWJHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJHUFVEZXZpY2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVURldmljZT4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8V2ViR1BVQWRhcHRlcj4mJik7CisK
KyAgICBXZWJHUFVBZGFwdGVyJiBhZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbV9hZGFwdGVyLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BVRGV2aWNlKFJlZjxXZWJHUFVBZGFwdGVyPiYm
KTsKKworICAgIFJlZjxXZWJHUFVBZGFwdGVyPiBtX2FkYXB0ZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1ZTgwODNh
ODc4MDZhOWM5MGVjZDIyNmI0NjFmYzNmZWVlMTZiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKQEAgLTAsMCArMSw2MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21h
c3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUKK10gaW50ZXJmYWNlIFdlYkdQVURldmljZSB7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IFdlYkdQVUV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUg
V2ViR1BVTGltaXRzIGxpbWl0czsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVQWRhcHRl
ciBhZGFwdGVyOworCisvKgorICAgIFdlYkdQVUJ1ZmZlciBjcmVhdGVCdWZmZXIoV2ViR1BVQnVm
ZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVUZXh0dXJlIGNyZWF0ZVRleHR1
cmUoV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVU2FtcGxl
ciBjcmVhdGVTYW1wbGVyKFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisg
ICAgV2ViR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVBpcGVsaW5lTGF5
b3V0IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVCaW5kR3JvdXAgY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICBXZWJHUFVCbGVuZFN0YXRlIGNy
ZWF0ZUJsZW5kU3RhdGUoV2ViR1BVQmxlbmRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Cisg
ICAgV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUgY3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BV
RGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUlucHV0
U3RhdGUgY3JlYXRlSW5wdXRTdGF0ZShXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBkZXNjcmlw
dG9yKTsKKyAgICBXZWJHUFVTaGFkZXJNb2R1bGUgY3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQXR0YWNobWVudFN0
YXRlIGNyZWF0ZUF0dGFjaG1lbnRTdGF0ZShXZWJHUFVBdHRhY2htZW50U3RhdGVEZXNjcmlwdG9y
IGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUNvbXB1dGVQaXBlbGluZSBjcmVhdGVDb21wdXRlUGlw
ZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBX
ZWJHUFVSZW5kZXJQaXBlbGluZSBjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICBXZWJHUFVDb21tYW5kQnVmZmVyIGNy
ZWF0ZUNvbW1hbmRCdWZmZXIoV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgV2ViR1BVRmVuY2UgY3JlYXRlRmVuY2UoV2ViR1BVRmVuY2VEZXNjcmlwdG9yIGRl
c2NyaXB0b3IpOworCisgICAgV2ViR1BVUXVldWUgZ2V0UXVldWUoKTsKKworICAgIGF0dHJpYnV0
ZSBXZWJHUFVMb2dDYWxsYmFjayBvbkxvZzsKKyAgICBXZWJHUFVPYmplY3RTdGF0dXNRdWVyeSBn
ZXRPYmplY3RTdGF0dXMoU3RhdHVzYWJsZU9iamVjdCBzdGF0dXNhYmxlT2JqZWN0KTsKKyovCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA2ODA2NjY0Nzk5ODJjZThlNGU3NjVlNGZlYThhZTJkNDk5N2Jh
ZTdlLi4yMTJmYzU5OWMwYTZjNDE2NGQ3NTQ0YjhlNTY3YTg4MjFjNjk1MTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMjk1LDYgKzI5NSwxMSBAQCBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJh
bWUuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAogTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAogCitNb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3Bw
CitNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmNwcAorCiBNb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmNwcAogTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXkuY3BwCiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcApAQCAt
MjU3Niw2ICsyNTgxLDcgQEAgSlNET01XaW5kb3dGZXRjaC5jcHAKIEpTRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmNwcAogSlNET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBKU0RPTVdpbmRv
d1dlYkRhdGFiYXNlLmNwcAorSlNET01XaW5kb3dXZWJHUFUuY3BwCiBKU0RPTVdpbmRvd1dlYlZS
LmNwcAogSlNEYXRhVHJhbnNmZXIuY3BwCiBKU0RhdGFUcmFuc2Zlckl0ZW0uY3BwCkBAIC0zMTYw
LDYgKzMxNjYsMTAgQEAgSlNWaXN1YWxWaWV3cG9ydC5jcHAKIEpTVm9pZENhbGxiYWNrLmNwcAog
SlNXYXZlU2hhcGVyTm9kZS5jcHAKIEpTV2ViQW5pbWF0aW9uLmNwcAorSlNXZWJHUFUuY3BwCitK
U1dlYkdQVUFkYXB0ZXIuY3BwCitKU1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmNwcAorSlNXZWJH
UFVEZXZpY2UuY3BwCiBKU1dlYk1ldGFsQnVmZmVyLmNwcAogSlNXZWJNZXRhbENvbW1hbmRCdWZm
ZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZFF1ZXVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk3YjM1YWZmZjkxYTMyMzU2
MzA3Y2E2YTc0NjAwNThkMjAyYTA1YmYuLjdlODA2ODc4YTAwYWFlNWY0ZDI3MzkyNDk3Yzk0ZjBj
MmU1ZDI2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEzNjM2LDYgKzEzNjM2LDIwIEBACiAJCUQwMDBFQkExMTFCREFGRDQw
MEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMDAwRUQyNTExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3ViZnJhbWVMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDAwRUQyNjExQzFCOUNEMDBDNDc3
MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDAy
MTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01X
aW5kb3dXZWJHUFUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDEyMTZF
Q0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
T01XaW5kb3dXZWJHUFUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0
MjIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01XaW5kb3dX
ZWJHUFUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0NjIxNkVGRTU0
MDAwRDcxREIgLyogV2ViR1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0NzIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwMEY1OTQ4MjE2RUZFNTQwMDBENzFEQiAvKiBXZWJHUFUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQ
VS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTRDMjE2RkRGOEUwMDBE
NzFEQiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQWRhcHRlckRl
c2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0RTIxNkZG
NkYwMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDAwRjU5NEYyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViR1BVQWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1
MDIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVBZGFwdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5
NTEyMTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1MjIxNzAxRDhDMDAw
RDcxREIgLyogV2ViR1BVRGV2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVURldmljZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1MzIxNzAxRDhDMDAwRDcxREIgLyog
V2ViR1BVRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURldmljZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBX
ZWJHUFVEZXZpY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVURldmljZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5n
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDFBMjdBQzEwQzlCRkQ4MDAw
MjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGFjZVNwbGl0U3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
MkY4NTRFMjE2ODJBNEEwMDg4RUU3NCAvKiBXZWJNZXRhbENvbW1hbmRRdWV1ZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViTWV0YWxDb21tYW5kUXVldWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjEyNDIsNiArMjEyNTYsNyBAQAogCQkJCTU3RDg0NjJBMUZFQUY1N0YwMENBMzY4MiAvKiB3ZWJh
dXRobiAqLywKIAkJCQk5N0JDNjlENTE1MDVGMDU0MDAxQjc0QUMgLyogd2ViZGF0YWJhc2UgKi8s
CiAJCQkJOTk2RTU5REExREYwMEQ0NTAwNjYxMkI5IC8qIHdlYmRyaXZlciAqLywKKwkJCQlEMDBG
NTkzRTIxNkVDQzQzMDAwRDcxREIgLyogd2ViZ3B1ICovLAogCQkJCTk3QUFCQ0Y3MTRGQTA5QjUw
MDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovLAogCQkJCTJEREUxQ0FCMUY1NzQ3NTkwMEQxQTM2NSAv
KiB3ZWJ2ciAqLywKIAkJCSk7CkBAIC0yNTI5NCw2ICsyNTMwOSwyNyBAQAogCQkJcGF0aCA9IGlv
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUQwMEY1OTNFMjE2RUNDNDMw
MDBENzFEQiAvKiB3ZWJncHUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCUQwMEY1OTQxMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuY3Bw
ICovLAorCQkJCUQwMEY1OTQwMjE2RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaCAq
LywKKwkJCQlEMDBGNTk0MjIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmlkbCAq
LywKKwkJCQlEMDBGNTk0NzIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmNwcCAqLywKKwkJCQlE
MDBGNTk0NjIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmggKi8sCisJCQkJRDAwRjU5NDgyMTZF
RkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5pZGwgKi8sCisJCQkJRDAwRjU5NTAyMTZGRkFDMjAwMEQ3
MURCIC8qIFdlYkdQVUFkYXB0ZXIuY3BwICovLAorCQkJCUQwMEY1OTRGMjE2RkZBQzIwMDBENzFE
QiAvKiBXZWJHUFVBZGFwdGVyLmggKi8sCisJCQkJRDAwRjU5NTEyMTZGRkFDMjAwMEQ3MURCIC8q
IFdlYkdQVUFkYXB0ZXIuaWRsICovLAorCQkJCUQwMEY1OTRFMjE2RkY2RjAwMDBENzFEQiAvKiBX
ZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oICovLAorCQkJCUQwMEY1OTRDMjE2RkRGOEUwMDBENzFE
QiAvKiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGwgKi8sCisJCQkJRDAwRjU5NTMyMTcwMUQ4
QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5jcHAgKi8sCisJCQkJRDAwRjU5NTIyMTcwMUQ4QzAw
MEQ3MURCIC8qIFdlYkdQVURldmljZS5oICovLAorCQkJCUQwMEY1OTU0MjE3MDFEOEMwMDBENzFE
QiAvKiBXZWJHUFVEZXZpY2UuaWRsICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJncHU7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlERjlBRkQ2RjEzRkMzMUIwMDAxNUZFQjcg
Lyogb2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXgg
NTQ4OTllYzNiZTkyYjdkMTMwYmUzNzE0MmNhYTUyOWQ3OTYwNWFjZC4uOTZiNDliOTgwYTVhZDNh
MTQxYjBiMDg3ODdhMWUxYjAyZDMzYzczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcyLDYgKzE3MiwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oVmlzdWFsVmlld3BvcnQpIFwKICAgICBtYWNybyhXZWJH
TDJSZW5kZXJpbmdDb250ZXh0KSBcCiAgICAgbWFjcm8oV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCkg
XAorICAgIG1hY3JvKFdlYkdQVSkgXAorICAgIG1hY3JvKFdlYkdQVUFkYXB0ZXIpIFwKKyAgICBt
YWNybyhXZWJHUFVBZGFwdGVyRGVzY3JpcHRvcikgXAorICAgIG1hY3JvKFdlYkdQVURldmljZSkg
XAogICAgIG1hY3JvKFdlYk1ldGFsQnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxDb21tYW5k
QnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxDb21tYW5kUXVldWUpIFwKQEAgLTMxOCw2ICsz
MjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8od2Via2l0SURCUmVxdWVzdCkg
XAogICAgIG1hY3JvKHdlYmtpdElEQlRyYW5zYWN0aW9uKSBcCiAgICAgbWFjcm8od2Via2l0SW5k
ZXhlZERCKSBcCisgICAgbWFjcm8od2ViZ3B1KSBcCiAgICAgbWFjcm8od2luZG93KSBcCiAgICAg
bWFjcm8od3JpdGluZykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4YWM1MzdlZGRjYzJhOGZiYmIzODY2ODlmZTRhNmU3
N2I0OWIwNTEuLjZmYTg0ZTUxZjk1OTAyNmQ1YjliY2FhYTIxYjA2ZTZjMmVhN2MwZTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxOC0xMC0xNiAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBw
bGUuY29tPgorCisgICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBXZWJHUFUgYmluZGluZ3MgdXAg
dGhyb3VnaCBXZWJHUFVEZXZpY2UgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNtYWxsIHRlc3QgdG8gdmFsaWRhdGUgY3JlYXRpb24gb2Yg
YSBXZWJHUFVEZXZpY2Ugd2hlbiBXZWJHUFUgaXMgZW5hYmxlZC4KKworICAgICAgICAqIHdlYmdw
dS93ZWJncHUtZW5hYmxlZC5odG1sOiBBZGRlZC4KKwogMjAxOC0xMC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZSBzaG91bGQg
bm90IGJlY29tZSBudWxsIGFmdGVyIHRoZSB3aW5kb3cgbG9zZXMgaXRzIGJyb3dzaW5nIGNvbnRl
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3dlYmdwdS1lbmFibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY3MjA0
Mzc5MTcwZWI5OGE3Yjk3NzI4YzM5MzY1MjE4NGRiNTkwNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdwdS93ZWJncHUtZW5hYmxlZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgc2hvdWxkQmVEZWZpbmVkKHdpbmRvdy53ZWJncHUpOworICAgIHdpbmRvdy53ZWJncHUu
cmVxdWVzdEFkYXB0ZXIoeyBwb3dlclByZWZlcmVuY2U6ICJkZWZhdWx0IiB9KS50aGVuKGFkYXB0
ZXIgPT4geworICAgICAgICBzaG91bGRCZURlZmluZWQoYWRhcHRlcik7CisgICAgICAgIGxldCBk
ZWZhdWx0RGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZpY2UoKTsKKyAgICAgICAgc2hvdWxkQmVE
ZWZpbmVkKGRlZmF1bHREZXZpY2UpOworICAgIH0pLmNhdGNoKGVycm9yID0+IHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfSk7Cit9CisKK3J1blRlc3QoKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352657</attachid>
            <date>2018-10-17 15:53:58 -0700</date>
            <delta_ts>2018-10-17 16:31:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190653-20181017155357.patch</filename>
            <type>text/plain</type>
            <size>45323</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2YmYyNjc5ZDkxYTZm
MDA3NTg1ZjAwMWU0MzRmYjQ1NTEzZjg2NS4uYThlNjE2ZGU1ZTFmMWJiMjU1NjMxYTA3MzNiODBj
OTVlNjVmMmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTE2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gSW1wbGVt
ZW50IFdlYkdQVSBiaW5kaW5ncyB1cCB0aHJvdWdoIFdlYkdQVURldmljZSBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS93
ZWJncHUtZW5hYmxlZC5odG1sCisKKyAgICAgICAgQWRkIFdlYkdQVSBTa2V0Y2ggYmluZGluZ3Mg
Zm9yIHdpbmRvdy53ZWJncHUsIFdlYkdQVUFkYXB0ZXIsIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LAorICAgICAgICBhbmQgV2ViR1BVRGV2aWNlIGNyZWF0aW9uLiBCYXNlZCBvZmYgSURMIGNvbW1p
dCB2ZXJzaW9uIGI2YzYxZWUuIAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dw
dXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1dlYkdQVTo6RE9NV2luZG93V2ViR1BVKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvd1dlYkdQVTo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93V2ViR1BVOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkdQVTo6d2Vi
Z3B1KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkdQVTo6d2ViZ3B1IGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFU6OnJlcXVlc3RBZGFwdGVy
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQWRhcHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUFkYXB0ZXI6Oldl
YkdQVUFkYXB0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQWRhcHRlcjo6Y3JlYXRlRGV2
aWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVRGV2aWNlOjpXZWJHUFVEZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6YWRh
cHRlciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbDog
QWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaDoKKwogMjAxOC0xMC0xNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYSBzd2l0Y2ggZm9yIFdlYiBTUUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZWMyOTY1NTliNTVkMGM1YjdjNTg5NGY3OGRjYzhkODg3MGVhZTVjZS4uMmMxNWZlNDgxYjFj
YjdkZDdmMDdmZmM3ZTk1YzU1OTZjMzU1MzJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUx
LDYgKzUxLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL3dlYmF1dGhuIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dl
YmRhdGFiYXNlIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmRyaXZlciIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVs
ZXMvd2Vic29ja2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJ2ciIKICAgICAi
JHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIKQEAgLTE4Nyw2ICsxODgsNyBAQCBzZXQoV2Vi
Q29yZV9JRExfSU5DTFVERVMKICAgICBNb2R1bGVzL3N0cmVhbXMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZQorICAgIE1vZHVsZXMvd2ViZ3B1CiAgICAgTW9k
dWxlcy93ZWJzb2NrZXRzCiAgICAgTW9kdWxlcy93ZWJ2cgogCkBAIC00NDQsNiArNDQ2LDEyIEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICBNb2R1bGVzL3dlYmRyaXZlci9O
YXZpZ2F0b3JXZWJEcml2ZXIuaWRsCiAKKyAgICBNb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJH
UFUuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUFkYXB0ZXIuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2Ny
aXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAorCiAgICAgTW9k
dWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaWRsCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5pZGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmJhNmEwNWE4
ZjFjYzEzNDQ2ZDY4MDY4NDg1ZWNlMzBhZGRhZTEyNS4uMGJiNjRmMjM3NWMyNjc1ZmExN2Q5N2Fm
ZWYwNTkzN2Y2YzkxYmU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01OSw2
ICs1OSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnNvY2tldHMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ2ciBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwK
ICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbiBcCkBAIC0zNjUsNiArMzY2LDExIEBAIEpTX0JJTkRJ
TkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFk
YXB0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJE
ZXNjcmlwdG9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ODBjOGNiMTM4N2JkNjc5ZGU1MTQ5M2MwMzM1ZGNlMTk3NzgzMmE1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNw
cApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRPTVdpbmRvd1dlYkdQVS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNp
bmNsdWRlICJXZWJHUFUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01XaW5kb3dXZWJH
UFU6OkRPTVdpbmRvd1dlYkdQVShET01XaW5kb3cqIHdpbmRvdykKKyAgICA6IERPTVdpbmRvd1By
b3BlcnR5KHdpbmRvdykKK3sKK30KKworY29uc3QgY2hhciogRE9NV2luZG93V2ViR1BVOjpzdXBw
bGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJET01XaW5kb3dXZWJHUFUiOworfQorCitET01X
aW5kb3dXZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICBET01XaW5kb3dXZWJHUFUqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dX
ZWJHUFUqPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20od2luZG93LCBzdXBwbGVtZW50TmFt
ZSgpKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NV2luZG93V2ViR1BVPih3aW5kb3cpOworICAgICAgICBz
dXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRvKHdpbmRv
dywgc3VwcGxlbWVudE5hbWUoKSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgfQorICAg
IHJldHVybiBzdXBwbGVtZW50OworfQorCitXZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6d2ViZ3B1
KERPTVdpbmRvdyYgd2luZG93KQoreworICAgIHJldHVybiBET01XaW5kb3dXZWJHUFU6OmZyb20o
JndpbmRvdyktPndlYmdwdSgpOworfQorCitXZWJHUFUqIERPTVdpbmRvd1dlYkdQVTo6d2ViZ3B1
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpOworCisgICAgaWYgKCFtX3dlYmdwdSAmJiBmcmFtZSgp
KQorICAgICAgICBtX3dlYmdwdSA9IFdlYkdQVTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIG1fd2Vi
Z3B1LmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9N
V2luZG93V2ViR1BVLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9ET01XaW5kb3dX
ZWJHUFUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZWVjNDMwZjY2YzU4MmE5NWQ2OGFlM2QyNDY4ZTQ5NzgzMjhh
Y2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvRE9N
V2luZG93V2ViR1BVLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5Lmgi
CisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBET01XaW5kb3c7CitjbGFzcyBXZWJHUFU7CisKK2NsYXNzIERPTVdpbmRvd1dlYkdQVSA6
IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgRE9NV2luZG93V2ViR1BVKERPTVdpbmRvdyopOworICAg
IHZpcnR1YWwgfkRPTVdpbmRvd1dlYkdQVSgpID0gZGVmYXVsdDsKKyAgICBzdGF0aWMgRE9NV2lu
ZG93V2ViR1BVKiBmcm9tKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBXZWJHUFUqIHdlYmdwdShE
T01XaW5kb3cmKTsKKyAgICBXZWJHUFUqIHdlYmdwdSgpIGNvbnN0OworCitwcml2YXRlOgorICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgbXV0YWJsZSBSZWZQ
dHI8V2ViR1BVPiBtX3dlYmdwdTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvRE9NV2luZG93V2ViR1BVLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDQ0Yzg4NTA0N2QyMGRlOWY0OTEy
YTFiYjNiYmQ3OGU4ZTI1ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2ln
bi9za2V0Y2gud2ViaWRsCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJHUFUKK10gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2luZG93IHsKKyAgICBb
UmVwbGFjZWFibGUsIFNhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFUgd2ViZ3B1
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI3NDUxODgyYWQyMzA5ZDc4ODlhNGE2NzE3N2UzNGQ0YzVmMjZiYTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BV
LmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiSlNXZWJHUFVBZGFwdGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVT4gV2ViR1BVOjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVSk7Cit9CisKK3ZvaWQgV2ViR1BVOjpy
ZXF1ZXN0QWRhcHRlcihjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwg
V2ViR1BVQWRhcHRlclByb21pc2UmJiBkZWZlcnJlZCkgY29uc3QKK3sKKyAgICBkZWZlcnJlZC5y
ZXNvbHZlKFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZShkZXNjcmlwdG9yKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNTEwNzY5MDI4ZTEzNjAxOWE4YzI2
NmJiMGI3ZDZjYTg1MGIwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFUuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHUFVBZGFwdGVyOwor
CitzdHJ1Y3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3I7CisKK2NsYXNzIFdlYkdQVSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYkdQVT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVPiBj
cmVhdGUoKTsKKworICAgIHVzaW5nIFdlYkdQVUFkYXB0ZXJQcm9taXNlID0gRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxXZWJHUFVBZGFwdGVyPj47CisKKyAgICB2b2lkIHJlcXVlc3RB
ZGFwdGVyKGNvbnN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yJiwgV2ViR1BVQWRhcHRlclByb21p
c2UmJikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR1BVKCkgPSBkZWZhdWx0OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2M2RlOGFkNTNk
MTYyMzc5ODljNTRhNTE1Y2I2MGU5OTc3YTYxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVz
aWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGlu
dGVyZmFjZSBXZWJHUFUgeworICAgIFByb21pc2U8V2ViR1BVQWRhcHRlcj4gcmVxdWVzdEFkYXB0
ZXIoV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IgZGVzYyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGY0NWUxYmVk
NjI0Y2I1OThiMjk4YWRhOTI2NTIyMDUyYjFmZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVBZGFw
dGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiV2ViR1BVRGV2aWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUFk
YXB0ZXI+IFdlYkdQVUFkYXB0ZXI6OmNyZWF0ZShjb25zdCBXZWJHUFVBZGFwdGVyRGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVBZGFwdGVy
KGRlc2NyaXB0b3IpKTsKK30KKworV2ViR1BVQWRhcHRlcjo6V2ViR1BVQWRhcHRlcihjb25zdCBX
ZWJHUFVBZGFwdGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihk
ZXNjcmlwdG9yKQoreworICAgIFVOVVNFRF9QQVJBTShtX2Rlc2NyaXB0b3IpOworfQorCitSZWY8
V2ViR1BVRGV2aWNlPiBXZWJHUFVBZGFwdGVyOjpjcmVhdGVEZXZpY2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICByZXR1cm4gV2ViR1BVRGV2aWNlOjpjcmVhdGUoY29u
dGV4dCwgKnRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQWRhcHRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRh
cHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRhYTg1MTFjYzg4YjI1MWM1OWJlYzllZGFlZGFmYjQyMmMwOTk3
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVBZGFwdGVyLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNz
IFdlYkdQVURldmljZTsKKworc3RydWN0IFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yOworCitjbGFz
cyBXZWJHUFVBZGFwdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQWRhcHRlcj4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVQWRhcHRlcj4gY3JlYXRlKGNvbnN0IFdlYkdQVUFk
YXB0ZXJEZXNjcmlwdG9yJik7CisKKyAgICBSZWY8V2ViR1BVRGV2aWNlPiBjcmVhdGVEZXZpY2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCitwcml2YXRlOgorICAgIFdlYkdQVUFkYXB0ZXIo
Y29uc3QgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3ImKTsKKworICAgIGNvbnN0IFdlYkdQVUFkYXB0
ZXJEZXNjcmlwdG9yJiBtX2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWNlNTA1YWZiMzU3ZDg0YzI4
YjIxOTkyZTQyMDA0YmY0MmY4MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNp
Z24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFdlYkdQVUFkYXB0ZXIgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVRXh0ZW5zaW9ucyBleHRl
bnNpb25zOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHUFVMaW1pdHMgbGltaXRzOyBE
b24ndCBleHBvc2UgaGlnaGVyIGxpbWl0cyBmb3Igbm93LgorCisgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIFdlYkdQVURldmljZSBjcmVhdGVEZXZpY2UoLypXZWJHUFVEZXZp
Y2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IqLyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGVlNGQ4OWExMzM5NTYzMDVlZTM4OTcxYTg5MWRhMjVlOTc5Y2YwZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IgeworICAgIGVudW0gY2xhc3MgUG93ZXJQcmVmZXJlbmNlIHsKKyAgICAgICAg
RGVmYXVsdCwKKyAgICAgICAgTG93UG93ZXIsCisgICAgICAgIEhpZ2hQZXJmb3JtYW5jZQorICAg
IH07CisKKyAgICBQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlID0gUG93ZXJQcmVmZXJl
bmNlOjpEZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjk0ZDdjYjM0NWVh
YTk2NTNhNDM3ZTFjYzA5MTVkYWUwNzViYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIv
YmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworZW51bSBXZWJHUFVQb3dlclByZWZl
cmVuY2UgeworICAgICJkZWZhdWx0IiwKKyAgICAibG93LXBvd2VyIiwKKyAgICAiaGlnaC1wZXJm
b3JtYW5jZSIKK307CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvciB7Cisg
ICAgV2ViR1BVUG93ZXJQcmVmZXJlbmNlIHBvd2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jY2Q0OGQ4NWE3YzIwODU4ODY5NjkwOGVhZjkxMGQxNmY2YTNhMmExCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNw
cApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVURldmljZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitSZWY8V2ViR1BVRGV2aWNlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYgYWRhcHRlcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVEZXZpY2UoV1RGTW92ZShhZGFwdGVyKSkpOwor
fQorCitXZWJHUFVEZXZpY2U6OldlYkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJiBhZGFw
dGVyKQorICAgIDogbV9hZGFwdGVyKFdURk1vdmUoYWRhcHRlcikpCit7CisgICAgVU5VU0VEX1BB
UkFNKG1fYWRhcHRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY4Y2VjMWExN2E4ZTZkZGNlYTRlZWFkYmE2YTVlOWJjZTJhYjU4
OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
V2ViR1BVQWRhcHRlcjsKKworY2xhc3MgV2ViR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViR1BVRGV2aWNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJHUFVEZXZpY2U+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFdlYkdQVUFkYXB0ZXI+JiYpOworCisg
ICAgV2ViR1BVQWRhcHRlciYgYWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWRhcHRlci5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFdlYkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJik7
CisKKyAgICBSZWY8V2ViR1BVQWRhcHRlcj4gbV9hZGFwdGVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NWU4MDgzYTg3
ODA2YTljOTBlY2QyMjZiNDYxZmMzZmVlZTE2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCkBAIC0wLDAgKzEsNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
CitdIGludGVyZmFjZSBXZWJHUFVEZXZpY2UgeworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBX
ZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdl
YkdQVUxpbWl0cyBsaW1pdHM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUFkYXB0ZXIg
YWRhcHRlcjsKKworLyoKKyAgICBXZWJHUFVCdWZmZXIgY3JlYXRlQnVmZmVyKFdlYkdQVUJ1ZmZl
ckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJl
KFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNhbXBsZXIg
Y3JlYXRlU2FtcGxlcihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAg
IFdlYkdQVUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVQaXBlbGluZUxheW91
dCBjcmVhdGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVz
Y3JpcHRvcik7CisgICAgV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQmxlbmRTdGF0ZSBjcmVh
dGVCbGVuZFN0YXRlKFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAg
IFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlIGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURl
cHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVJbnB1dFN0
YXRlIGNyZWF0ZUlucHV0U3RhdGUoV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgV2ViR1BVU2hhZGVyTW9kdWxlIGNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFk
ZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUF0dGFjaG1lbnRTdGF0
ZSBjcmVhdGVBdHRhY2htZW50U3RhdGUoV2ViR1BVQXR0YWNobWVudFN0YXRlRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVs
aW5lKFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgY3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworCisgICAgV2ViR1BVQ29tbWFuZEJ1ZmZlciBjcmVh
dGVDb21tYW5kQnVmZmVyKFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OworICAgIFdlYkdQVUZlbmNlIGNyZWF0ZUZlbmNlKFdlYkdQVUZlbmNlRGVzY3JpcHRvciBkZXNj
cmlwdG9yKTsKKworICAgIFdlYkdQVVF1ZXVlIGdldFF1ZXVlKCk7CisKKyAgICBhdHRyaWJ1dGUg
V2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7CisgICAgV2ViR1BVT2JqZWN0U3RhdHVzUXVlcnkgZ2V0
T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVPYmplY3Qgc3RhdHVzYWJsZU9iamVjdCk7CisqLworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNjgwNjY2NDc5OTgyY2U4ZTRlNzY1ZTRmZWE4YWUyZDQ5OTdiYWU3
ZS4uMjEyZmM1OTljMGE2YzQxNjRkNzU0NGI4ZTU2N2E4ODIxYzY5NTEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTI5NSw2ICsyOTUsMTEgQEAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1l
LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKIE1vZHVsZXMv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIAorTW9kdWxl
cy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcAor
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKKwogTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKIE1vZHVsZXMvd2Vi
dnIvVlJEaXNwbGF5LmNwcAogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAKQEAgLTI1
NzYsNiArMjU4MSw3IEBAIEpTRE9NV2luZG93RmV0Y2guY3BwCiBKU0RPTVdpbmRvd0luZGV4ZWRE
YXRhYmFzZS5jcHAKIEpTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogSlNET01XaW5kb3dX
ZWJEYXRhYmFzZS5jcHAKK0pTRE9NV2luZG93V2ViR1BVLmNwcAogSlNET01XaW5kb3dXZWJWUi5j
cHAKIEpTRGF0YVRyYW5zZmVyLmNwcAogSlNEYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzE2MCw2
ICszMTY2LDEwIEBAIEpTVmlzdWFsVmlld3BvcnQuY3BwCiBKU1ZvaWRDYWxsYmFjay5jcHAKIEpT
V2F2ZVNoYXBlck5vZGUuY3BwCiBKU1dlYkFuaW1hdGlvbi5jcHAKK0pTV2ViR1BVLmNwcAorSlNX
ZWJHUFVBZGFwdGVyLmNwcAorSlNXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BV
RGV2aWNlLmNwcAogSlNXZWJNZXRhbEJ1ZmZlci5jcHAKIEpTV2ViTWV0YWxDb21tYW5kQnVmZmVy
LmNwcAogSlNXZWJNZXRhbENvbW1hbmRRdWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5N2IzNWFmZmY5MWEzMjM1NjMw
N2NhNmE3NDYwMDU4ZDIwMmEwNWJmLi43ZTgwNjg3OGEwMGFhZTVmNGQyNzM5MjQ5N2M5NGYwYzJl
NWQyNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzYzNiw2ICsxMzYzNiwyMCBAQAogCQlEMDAwRUJBMTExQkRBRkQ0MDBD
NDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAwMEVEMjUxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YmZyYW1lTG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAwMEVEMjYxMUMxQjlDRDAwQzQ3NzI2
IC8qIFN1YmZyYW1lTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1
YmZyYW1lTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQwMjE2
RUNDN0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2lu
ZG93V2ViR1BVLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTQxMjE2RUND
N0EwMDBENzFEQiAvKiBET01XaW5kb3dXZWJHUFUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9N
V2luZG93V2ViR1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDIy
MTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93V2Vi
R1BVLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDYyMTZFRkU1NDAw
MEQ3MURCIC8qIFdlYkdQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMDBGNTk0ODIxNkVGRTU0MDAwRDcxREIgLyogV2ViR1BVLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcx
REIgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUFkYXB0ZXJEZXNj
cmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NEUyMTZGRjZG
MDAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
MEY1OTRGMjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVUFkYXB0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTAy
MTZGRkFDMjAwMEQ3MURCIC8qIFdlYkdQVUFkYXB0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMEY1OTUx
MjE2RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVBZGFwdGVy
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3
MURCIC8qIFdlYkdQVURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVEZXZpY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdl
YkdQVURldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVEZXZpY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIgLyogV2Vi
R1BVRGV2aWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5n
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZEODAwMDI2
QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDJG
ODU0RTIxNjgyQTRBMDA4OEVFNzQgLyogV2ViTWV0YWxDb21tYW5kUXVldWUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
Yk1ldGFsQ29tbWFuZFF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIx
MjQyLDYgKzIxMjU2LDcgQEAKIAkJCQk1N0Q4NDYyQTFGRUFGNTdGMDBDQTM2ODIgLyogd2ViYXV0
aG4gKi8sCiAJCQkJOTdCQzY5RDUxNTA1RjA1NDAwMUI3NEFDIC8qIHdlYmRhdGFiYXNlICovLAog
CQkJCTk5NkU1OURBMURGMDBENDUwMDY2MTJCOSAvKiB3ZWJkcml2ZXIgKi8sCisJCQkJRDAwRjU5
M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdlYmdwdSAqLywKIAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3
NDU3QUUgLyogd2Vic29ja2V0cyAqLywKIAkJCQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyog
d2VidnIgKi8sCiAJCQkpOwpAQCAtMjUyOTQsNiArMjUzMDksMjcgQEAKIAkJCXBhdGggPSBpb3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlEMDBGNTkzRTIxNkVDQzQzMDAw
RDcxREIgLyogd2ViZ3B1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlEMDBGNTk0MTIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmNwcCAq
LywKKwkJCQlEMDBGNTk0MDIxNkVDQzdBMDAwRDcxREIgLyogRE9NV2luZG93V2ViR1BVLmggKi8s
CisJCQkJRDAwRjU5NDIyMTZFQ0M3QTAwMEQ3MURCIC8qIERPTVdpbmRvd1dlYkdQVS5pZGwgKi8s
CisJCQkJRDAwRjU5NDcyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5jcHAgKi8sCisJCQkJRDAw
RjU5NDYyMTZFRkU1NDAwMEQ3MURCIC8qIFdlYkdQVS5oICovLAorCQkJCUQwMEY1OTQ4MjE2RUZF
NTQwMDBENzFEQiAvKiBXZWJHUFUuaWRsICovLAorCQkJCUQwMEY1OTUwMjE2RkZBQzIwMDBENzFE
QiAvKiBXZWJHUFVBZGFwdGVyLmNwcCAqLywKKwkJCQlEMDBGNTk0RjIxNkZGQUMyMDAwRDcxREIg
LyogV2ViR1BVQWRhcHRlci5oICovLAorCQkJCUQwMEY1OTUxMjE2RkZBQzIwMDBENzFEQiAvKiBX
ZWJHUFVBZGFwdGVyLmlkbCAqLywKKwkJCQlEMDBGNTk0RTIxNkZGNkYwMDAwRDcxREIgLyogV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLywKKwkJCQlEMDBGNTk0QzIxNkZERjhFMDAwRDcxREIg
LyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwMEY1OTUzMjE3MDFEOEMw
MDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuY3BwICovLAorCQkJCUQwMEY1OTUyMjE3MDFEOEMwMDBE
NzFEQiAvKiBXZWJHUFVEZXZpY2UuaCAqLywKKwkJCQlEMDBGNTk1NDIxNzAxRDhDMDAwRDcxREIg
LyogV2ViR1BVRGV2aWNlLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2ViZ3B1OworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJREY5QUZENkYxM0ZDMzFCMDAwMTVGRUI3IC8q
IG9iamMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDU0
ODk5ZWMzYmU5MmI3ZDEzMGJlMzcxNDJjYWE1MjlkNzk2MDVhY2QuLjk2YjQ5Yjk4MGE1YWQzYTE0
MWIwYjA4Nzg3YTFlMWIwMmQzM2M3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3Miw2ICsxNzIsMTAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKFZpc3VhbFZpZXdwb3J0KSBcCiAgICAgbWFjcm8oV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdMVmVydGV4QXJyYXlPYmplY3QpIFwK
KyAgICBtYWNybyhXZWJHUFUpIFwKKyAgICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCisgICAgbWFj
cm8oV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhXZWJHUFVEZXZpY2UpIFwK
ICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZEJ1
ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBcCkBAIC0zMTgsNiArMzIy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHdlYmtpdElEQlJlcXVlc3QpIFwK
ICAgICBtYWNybyh3ZWJraXRJREJUcmFuc2FjdGlvbikgXAogICAgIG1hY3JvKHdlYmtpdEluZGV4
ZWREQikgXAorICAgIG1hY3JvKHdlYmdwdSkgXAogICAgIG1hY3JvKHdpbmRvdykgXAogICAgIG1h
Y3JvKHdyaXRpbmcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOGFjNTM3ZWRkY2MyYThmYmJiMzg2Njg5ZmU0YTZlNzdi
NDliMDUxLi43ZjdkM2NlOTFmZDA0ZGViODhmOGM2ODcwOGVhNDlhNzgxMWNiNWJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAtMTYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgV2ViR1BVIGJpbmRpbmdzIHVwIHRo
cm91Z2ggV2ViR1BVRGV2aWNlIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEph
Y2tzb24uCisKKyAgICAgICAgU21hbGwgdGVzdCB0byB2YWxpZGF0ZSBjcmVhdGlvbiBvZiBhIFdl
YkdQVURldmljZSB3aGVuIFdlYkdQVSBpcyBlbmFibGVkLgorCisgICAgICAgICogd2ViZ3B1L3dl
YmdwdS1lbmFibGVkLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTE2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgd2luZG93LnBlcmZvcm1hbmNlIHNob3VsZCBub3Qg
YmVjb21lIG51bGwgYWZ0ZXIgdGhlIHdpbmRvdyBsb3NlcyBpdHMgYnJvd3NpbmcgY29udGV4dApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dlYmdwdS1lbmFibGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJncHUvd2ViZ3B1LWVuYWJsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjcyMDQzNzkx
NzBlYjk4YTdiOTc3MjhjMzkzNjUyMTg0ZGI1OTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3dlYmdwdS1lbmFibGVkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHdp
bmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICBzaG91bGRCZURlZmluZWQod2luZG93LndlYmdwdSk7CisgICAgd2luZG93LndlYmdwdS5yZXF1
ZXN0QWRhcHRlcih7IHBvd2VyUHJlZmVyZW5jZTogImRlZmF1bHQiIH0pLnRoZW4oYWRhcHRlciA9
PiB7CisgICAgICAgIHNob3VsZEJlRGVmaW5lZChhZGFwdGVyKTsKKyAgICAgICAgbGV0IGRlZmF1
bHREZXZpY2UgPSBhZGFwdGVyLmNyZWF0ZURldmljZSgpOworICAgICAgICBzaG91bGRCZURlZmlu
ZWQoZGVmYXVsdERldmljZSk7CisgICAgfSkuY2F0Y2goZXJyb3IgPT4geworICAgICAgICB0ZXN0
RmFpbGVkKGVycm9yKTsKKyAgICB9KTsKK30KKworcnVuVGVzdCgpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>