<?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>237437</bug_id>
          
          <creation_ts>2022-03-03 10:27:29 -0800</creation_ts>
          <short_desc>[WebGPU] Abide by the WebKit Style Guide</short_desc>
          <delta_ts>2022-03-03 13:04:17 -0800</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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>djg</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1847962</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 10:27:29 -0800</bug_when>
    <thetext>[WebGPU] Abide by the WebKit Style Guide</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847967</commentid>
    <comment_count>1</comment_count>
      <attachid>453758</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 10:30:04 -0800</bug_when>
    <thetext>Created attachment 453758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847971</commentid>
    <comment_count>2</comment_count>
      <attachid>453758</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 10:33:48 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt; Source/WebGPU/ChangeLog:9
&gt; +        1. &quot;Donât add explicit initializations to nil&quot;

Wait, what? What is that guideline?

Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!

&gt; Source/WebGPU/WebGPU/BindGroup.h:55
&gt; -    id &lt;MTLBuffer&gt; m_vertexArgumentBuffer { nil };
&gt; -    id &lt;MTLBuffer&gt; m_fragmentArgumentBuffer { nil };
&gt; -    id &lt;MTLBuffer&gt; m_computeArgumentBuffer { nil };
&gt; +    id&lt;MTLBuffer&gt; m_vertexArgumentBuffer;
&gt; +    id&lt;MTLBuffer&gt; m_fragmentArgumentBuffer;
&gt; +    id&lt;MTLBuffer&gt; m_computeArgumentBuffer;

Removing the { nil } here does not seem right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847973</commentid>
    <comment_count>3</comment_count>
      <attachid>453758</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 10:35:30 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt; 
&gt; Wait, what? What is that guideline?
&gt; 
&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!

https://webkit.org/code-style-guidelines/#zero-objc-variables

&quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847976</commentid>
    <comment_count>4</comment_count>
      <attachid>453758</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 10:36:21 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt;&gt; 
&gt;&gt; Wait, what? What is that guideline?
&gt;&gt; 
&gt;&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!
&gt; 
&gt; https://webkit.org/code-style-guidelines/#zero-objc-variables
&gt; 
&gt; &quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;

Oh, maybe that&apos;s just for ivars and not regular variables?

And maybe doesn&apos;t apply in Objective-C++?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847981</commentid>
    <comment_count>5</comment_count>
      <attachid>453758</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 10:41:13 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt;&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt;&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt;&gt;&gt; 
&gt;&gt;&gt; Wait, what? What is that guideline?
&gt;&gt;&gt; 
&gt;&gt;&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!
&gt;&gt; 
&gt;&gt; https://webkit.org/code-style-guidelines/#zero-objc-variables
&gt;&gt; 
&gt;&gt; &quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;
&gt; 
&gt; Oh, maybe that&apos;s just for ivars and not regular variables?
&gt; 
&gt; And maybe doesn&apos;t apply in Objective-C++?

Yes, just instance variables. It does apply in Objective-C++, but structure members and C++ class members are not instance variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848000</commentid>
    <comment_count>6</comment_count>
      <attachid>453758</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 11:23:15 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt;&gt;&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Wait, what? What is that guideline?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!
&gt;&gt;&gt; 
&gt;&gt;&gt; https://webkit.org/code-style-guidelines/#zero-objc-variables
&gt;&gt;&gt; 
&gt;&gt;&gt; &quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;
&gt;&gt; 
&gt;&gt; Oh, maybe that&apos;s just for ivars and not regular variables?
&gt;&gt; 
&gt;&gt; And maybe doesn&apos;t apply in Objective-C++?
&gt; 
&gt; Yes, just instance variables. It does apply in Objective-C++, but structure members and C++ class members are not instance variables.

Looking at the disassembly, it looks like it does zero-out uninitialized Obj-C objects in C++ classes. If I add a new uninitialized Obj-C member to the class, then the C++ constructor gains an extra instruction:

    0x1014c53d4 &lt;+84&gt;:  movq   $0x0, 0x10(%rax)

Either way, I&apos;m happy to be defensive and explicitly zero-out these members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848003</commentid>
    <comment_count>7</comment_count>
      <attachid>453758</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 11:30:24 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt;&gt;&gt;&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Wait, what? What is that guideline?
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; https://webkit.org/code-style-guidelines/#zero-objc-variables
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; &quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;
&gt;&gt;&gt; 
&gt;&gt;&gt; Oh, maybe that&apos;s just for ivars and not regular variables?
&gt;&gt;&gt; 
&gt;&gt;&gt; And maybe doesn&apos;t apply in Objective-C++?
&gt;&gt; 
&gt;&gt; Yes, just instance variables. It does apply in Objective-C++, but structure members and C++ class members are not instance variables.
&gt; 
&gt; Looking at the disassembly, it looks like it does zero-out uninitialized Obj-C objects in C++ classes. If I add a new uninitialized Obj-C member to the class, then the C++ constructor gains an extra instruction:
&gt; 
&gt;     0x1014c53d4 &lt;+84&gt;:  movq   $0x0, 0x10(%rax)
&gt; 
&gt; Either way, I&apos;m happy to be defensive and explicitly zero-out these members.

If so, this is a change from the ARC transition, although maybe it does affect non-ARC files perhaps due to a compiler option we were passing. This was not the case when we started the WebKit project; we need to double check it to be sure. Not sure that single experiment is enough. I welcome the change to remove the unneeded nil if it’s truly unneeded now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848004</commentid>
    <comment_count>8</comment_count>
      <attachid>453758</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 11:30:58 -0800</bug_when>
    <thetext>Comment on attachment 453758
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt;&gt; Source/WebGPU/ChangeLog:9
&gt;&gt;&gt;&gt;&gt;&gt;&gt; +        1. &quot;Donât add explicit initializations to nil&quot;
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; Wait, what? What is that guideline?
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; Under ARC things are initialized without doing it explicitly, but with manual retain/release I am pretty sure you need to do it!
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; https://webkit.org/code-style-guidelines/#zero-objc-variables
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; &quot;In Objective-C, instance variables are initialized to zero automatically. Don’t add explicit initializations to nil or NO in an init method.&quot;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Oh, maybe that&apos;s just for ivars and not regular variables?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; And maybe doesn&apos;t apply in Objective-C++?
&gt;&gt;&gt; 
&gt;&gt;&gt; Yes, just instance variables. It does apply in Objective-C++, but structure members and C++ class members are not instance variables.
&gt;&gt; 
&gt;&gt; Looking at the disassembly, it looks like it does zero-out uninitialized Obj-C objects in C++ classes. If I add a new uninitialized Obj-C member to the class, then the C++ constructor gains an extra instruction:
&gt;&gt; 
&gt;&gt;     0x1014c53d4 &lt;+84&gt;:  movq   $0x0, 0x10(%rax)
&gt;&gt; 
&gt;&gt; Either way, I&apos;m happy to be defensive and explicitly zero-out these members.
&gt; 
&gt; If so, this is a change from the ARC transition, although maybe it does affect non-ARC files perhaps due to a compiler option we were passing. This was not the case when we started the WebKit project; we need to double check it to be sure. Not sure that single experiment is enough. I welcome the change to remove the unneeded nil if it’s truly unneeded now.

The style guide is absolutely *not* talking about this, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848006</commentid>
    <comment_count>9</comment_count>
      <attachid>453767</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-03 11:35:07 -0800</bug_when>
    <thetext>Created attachment 453767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848042</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-03 13:03:32 -0800</bug_when>
    <thetext>Committed r290791 (248031@main): &lt;https://commits.webkit.org/248031@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453767.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848043</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-03 13:04:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89772856&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453758</attachid>
            <date>2022-03-03 10:30:04 -0800</date>
            <delta_ts>2022-03-03 11:35:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237437-20220303103003.patch</filename>
            <type>text/plain</type>
            <size>52950</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGRmOTM1ODc0NDFmY2VlODI0
NWVjNDI3YzI4ZGJkN2RiNTYxY2I0NjYuLjdmZDVlNDY4NmE4NGMyNGMxMTJmOWI3M2UzYTM1MjA5
M2Y1NTIyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM5IEBACisyMDIyLTAzLTAzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQWJp
ZGUgYnkgdGhlIFdlYktpdCBTdHlsZSBHdWlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWJpZGUgYnkgMiBydWxlczoKKyAgICAgICAgMS4gIkRvbuKA
mXQgYWRkIGV4cGxpY2l0IGluaXRpYWxpemF0aW9ucyB0byBuaWwiCisgICAgICAgIDIuICJEbyBu
b3QgcGxhY2UgYSBzcGFjZSBiZXR3ZWVuIHRoZSB0eXBlIG5hbWUgYW5kIHRoZSBwcm90b2NvbCBu
YW1lIgorCisgICAgICAgIE5vIHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hh
bmdlLgorCisgICAgICAgICogV2ViR1BVL0FkYXB0ZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6QWRh
cHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL0Fk
YXB0ZXIubW06CisgICAgICAgIChXZWJHUFU6OkFkYXB0ZXI6OkFkYXB0ZXIpOgorICAgICAgICAo
V2ViR1BVOjpkZXZpY2VNZWV0c1JlcXVpcmVkTGltaXRzKToKKyAgICAgICAgKiBXZWJHUFUvQmlu
ZEdyb3VwLmg6CisgICAgICAgIChXZWJHUFU6OkJpbmRHcm91cDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkdQVTo6QmluZEdyb3VwOjp2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJHUFU6OkJpbmRHcm91cDo6ZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciBjb25zdCk6CisgICAg
ICAgIChXZWJHUFU6OkJpbmRHcm91cDo6Y29tcHV0ZUFyZ3VtZW50QnVmZmVyIGNvbnN0KToKKyAg
ICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL0JpbmRHcm91cC5tbToKKyAgICAg
ICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVCaW5kR3JvdXApOgorICAgICAgICAoV2ViR1BVOjpC
aW5kR3JvdXA6OkJpbmRHcm91cCk6CisgICAgICAgICogV2ViR1BVL0JpbmRHcm91cExheW91dC5o
OgorICAgICAgICAoV2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJHUFU6OkJpbmRHcm91cExheW91dDo6dmVydGV4QXJndW1lbnRFbmNvZGVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0OjpmcmFnbWVudEFyZ3VtZW50RW5jb2RlciBj
b25zdCk6CisgICAgICAgIChXZWJHUFU6OkJpbmRHcm91cExheW91dDo6Y29tcHV0ZUFyZ3VtZW50
RW5jb2RlciBjb25zdCk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVS9C
aW5kR3JvdXBMYXlvdXQubW06CisgICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlQmluZEdy
b3VwTGF5b3V0KToKKyAgICAgICAgKFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0OjpCaW5kR3JvdXBM
YXlvdXQpOgorICAgICAgICAqIFdlYkdQVS9CdWZmZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6QnVm
ZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6OmJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVS9CdWZmZXIubW06CisgICAgICAg
IChXZWJHUFU6OkJ1ZmZlcjo6QnVmZmVyKToKKyAgICAgICAgKiBXZWJHUFUvQ29tbWFuZEJ1ZmZl
ci5oOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViR1BVOjpDb21tYW5kQnVmZmVyOjpjb21tYW5kQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL0NvbW1hbmRCdWZmZXIubW06CisgICAgICAgIChX
ZWJHUFU6OkNvbW1hbmRCdWZmZXI6OkNvbW1hbmRCdWZmZXIpOgorICAgICAgICAqIFdlYkdQVS9D
b21tYW5kRW5jb2Rlci5oOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Y3JlYXRl
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVy
Lm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Q29tbWFuZEVuY29kZXIpOgor
ICAgICAgICAqIFdlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6
Q29tcHV0ZVBhc3NFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21w
dXRlUGFzc0VuY29kZXI6OkNvbXB1dGVQYXNzRW5jb2Rlcik6CisgICAgICAgICogV2ViR1BVL0Nv
bXB1dGVQaXBlbGluZS5oOgorICAgICAgICAoV2ViR1BVOjpDb21wdXRlUGlwZWxpbmU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJHUFU6OkNvbXB1dGVQaXBlbGluZTo6Y29tcHV0ZVBpcGVsaW5lU3Rh
dGUgY29uc3QpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFUvQ29tcHV0
ZVBpcGVsaW5lLm1tOgorICAgICAgICAoV2ViR1BVOjpjcmVhdGVMaWJyYXJ5KToKKyAgICAgICAg
KFdlYkdQVTo6Y3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAoV2ViR1BVOjpjcmVhdGVDb21wdXRl
UGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJHUFU6OkNvbXB1dGVQaXBlbGluZTo6Q29tcHV0
ZVBpcGVsaW5lKToKKyAgICAgICAgKiBXZWJHUFUvRGV2aWNlLmg6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVS9EZXZpY2UubW06CisgICAgICAgIChXZWJHUFU6OkRldmlj
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpEZXZpY2UpOgorICAgICAgICAq
IFdlYkdQVS9JbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYkdQVTo6c29ydGVkRGV2aWNlcyk6Cisg
ICAgICAgIChXZWJHUFU6Okluc3RhbmNlOjpyZXF1ZXN0QWRhcHRlcik6CisgICAgICAgICogV2Vi
R1BVL1F1ZXJ5U2V0Lmg6CisgICAgICAgIChXZWJHUFU6OlF1ZXJ5U2V0OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViR1BVOjpRdWVyeVNldDo6Y291bnRlclNhbXBsZUJ1ZmZlciBjb25zdCk6CisgICAg
ICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVS9RdWVyeVNldC5tbToKKyAgICAgICAg
KFdlYkdQVTo6UXVlcnlTZXQ6OlF1ZXJ5U2V0KToKKyAgICAgICAgKiBXZWJHUFUvUXVldWUuaDoK
KyAgICAgICAgKFdlYkdQVTo6UXVldWU6OmNyZWF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVS9RdWV1ZS5tbToKKyAgICAgICAgKFdlYkdQVTo6UXVldWU6OlF1ZXVl
KToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyQnVuZGxlLmg6CisgICAgICAgIChXZWJHUFU6OlJl
bmRlckJ1bmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVuZGxlOjppbmRp
cmVjdENvbW1hbmRCdWZmZXIgY29uc3QpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJHUFUvUmVuZGVyQnVuZGxlLm1tOgorICAgICAgICAoV2ViR1BVOjpSZW5kZXJCdW5kbGU6
OlJlbmRlckJ1bmRsZSk6CisgICAgICAgICogV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIuaDoK
KyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcjo6Y3JlYXRlKToKKyAgICAgICAg
KCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIubW06Cisg
ICAgICAgIChXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbmRlckJ1bmRsZUVuY29kZXIp
OgorICAgICAgICAqIFdlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAoV2ViR1BV
OjpSZW5kZXJQYXNzRW5jb2Rlcjo6Y3JlYXRlKToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpSZW5k
ZXJQYXNzRW5jb2Rlcjo6UmVuZGVyUGFzc0VuY29kZXIpOgorICAgICAgICAqIFdlYkdQVS9SZW5k
ZXJQaXBlbGluZS5oOgorICAgICAgICAoV2ViR1BVOjpSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkdQVTo6UmVuZGVyUGlwZWxpbmU6OnJlbmRlclBpcGVsaW5lU3RhdGUgY29u
c3QpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyUGlwZWxp
bmUubW06CisgICAgICAgIChXZWJHUFU6OlJlbmRlclBpcGVsaW5lOjpSZW5kZXJQaXBlbGluZSk6
CisgICAgICAgICogV2ViR1BVL1NhbXBsZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6U2FtcGxlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6U2FtcGxlcjo6c2FtcGxlclN0YXRlIGNvbnN0KToK
KyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVL1NhbXBsZXIubW06CisgICAg
ICAgIChXZWJHUFU6OlNhbXBsZXI6OlNhbXBsZXIpOgorICAgICAgICAqIFdlYkdQVS9TaGFkZXJN
b2R1bGUuaDoKKyAgICAgICAgKFdlYkdQVTo6U2hhZGVyTW9kdWxlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViR1BVOjpTaGFkZXJNb2R1bGU6OmxpYnJhcnkgY29uc3QpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BV
OjpTaGFkZXJNb2R1bGU6OmNyZWF0ZUxpYnJhcnkpOgorICAgICAgICAoV2ViR1BVOjplYXJseUNv
bXBpbGVTaGFkZXJNb2R1bGUpOgorICAgICAgICAoV2ViR1BVOjpTaGFkZXJNb2R1bGU6OlNoYWRl
ck1vZHVsZSk6CisgICAgICAgICogV2ViR1BVL1RleHR1cmUuaDoKKyAgICAgICAgKFdlYkdQVTo6
VGV4dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZTo6dGV4dHVyZSBjb25z
dCk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVS9UZXh0dXJlLm1tOgor
ICAgICAgICAoV2ViR1BVOjpUZXh0dXJlOjpUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFUvVGV4
dHVyZVZpZXcuaDoKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZVZpZXc6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJHUFU6OlRleHR1cmVWaWV3Ojp0ZXh0dXJlIGNvbnN0KToKKyAgICAgICAgKCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVL1RleHR1cmVWaWV3Lm1tOgorICAgICAgICAoV2ViR1BV
OjpUZXh0dXJlVmlldzo6VGV4dHVyZVZpZXcpOgorCiAyMDIyLTAyLTIyICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHdhdGNo
T1MgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIuaCBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIuaAppbmRleCBkNGFjZmVkMjI1NDQ1MmExYzRhZGJl
ZGE1YjRlYmZlYjk0OGNhN2FiLi5kNjI5MDhmMzQ4YzYyMzc4ZDdhYjg5YTJlMThiMzc2MGQ5NDQ2
YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLmgKKysrIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIERldmlj
ZTsKIGNsYXNzIEFkYXB0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBZGFwdGVyPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBZGFwdGVyPiBj
cmVhdGUoaWQgPE1UTERldmljZT4gZGV2aWNlKQorICAgIHN0YXRpYyBSZWY8QWRhcHRlcj4gY3Jl
YXRlKGlkPE1UTERldmljZT4gZGV2aWNlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWRhcHRlcihkZXZpY2UpKTsKICAgICB9CkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgV0dQVURldmljZURlc2NyaXB0b3IqLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFJlZlB0cjxEZXZpY2U+JiYs
IGNvbnN0IGNoYXIqKT4mJiBjYWxsYmFjayk7CiAKIHByaXZhdGU6Ci0gICAgQWRhcHRlcihpZCA8
TVRMRGV2aWNlPik7CisgICAgQWRhcHRlcihpZDxNVExEZXZpY2U+KTsKIAotICAgIGlkIDxNVExE
ZXZpY2U+IG1fZGV2aWNlIHsgbmlsIH07CisgICAgaWQ8TVRMRGV2aWNlPiBtX2RldmljZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQWRhcHRlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggODE5
MTUzOTZmMzhhYzQzNDEwYTY5NmE4MDJkNTNmNTBlOWQ3NDI5NS4uODAzMTA3MmVkMWMzNjNkZmRm
YjY3YjA2MzZkZmQzOWZlOTM4NmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0zMSw3
ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJHUFUgewogCi1BZGFwdGVyOjpBZGFwdGVyKGlkIDxN
VExEZXZpY2U+IGRldmljZSkKK0FkYXB0ZXI6OkFkYXB0ZXIoaWQ8TVRMRGV2aWNlPiBkZXZpY2Up
CiAgICAgOiBtX2RldmljZShkZXZpY2UpCiB7CiB9CkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWRh
cHRlcjo6aGFzRmVhdHVyZShXR1BVRmVhdHVyZU5hbWUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1zdGF0aWMgYm9vbCBkZXZpY2VNZWV0c1JlcXVpcmVkTGltaXRzKGlkIDxNVExEZXZpY2U+LCBj
b25zdCBXR1BVUmVxdWlyZWRMaW1pdHMmIHJlcXVpcmVkTGltaXRzKQorc3RhdGljIGJvb2wgZGV2
aWNlTWVldHNSZXF1aXJlZExpbWl0cyhpZDxNVExEZXZpY2U+LCBjb25zdCBXR1BVUmVxdWlyZWRM
aW1pdHMmIHJlcXVpcmVkTGltaXRzKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
ICAgICByZXR1cm4gIXJlcXVpcmVkTGltaXRzLm5leHRJbkNoYWluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRH
cm91cC5oCmluZGV4IDgyYjY4ZDUzYzkzM2ExMTk0MzA5ZmQzZTY2OWExNDYzZWQ5YTY1MDcuLjJj
ODc1NmE4MDRkMjM5MmU4MTU3MWIyN2JmYzg4YmRhYjNkZGZiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Jp
bmRHcm91cC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJHUFUgewogY2xhc3MgQmlu
ZEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8QmluZEdyb3VwPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCaW5kR3JvdXA+IGNyZWF0ZShp
ZCA8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgaWQgPE1UTEJ1ZmZlcj4gZnJhZ21l
bnRBcmd1bWVudEJ1ZmZlciwgaWQgPE1UTEJ1ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyKQor
ICAgIHN0YXRpYyBSZWY8QmluZEdyb3VwPiBjcmVhdGUoaWQ8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1
bWVudEJ1ZmZlciwgaWQ8TVRMQnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBpZDxNVExC
dWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEJpbmRHcm91cCh2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgZnJhZ21lbnRBcmd1bWVu
dEJ1ZmZlciwgY29tcHV0ZUFyZ3VtZW50QnVmZmVyKSk7CiAgICAgfQpAQCAtNDMsMTYgKzQzLDE2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCi0gICAgaWQg
PE1UTEJ1ZmZlcj4gdmVydGV4QXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRl
eEFyZ3VtZW50QnVmZmVyOyB9Ci0gICAgaWQgPE1UTEJ1ZmZlcj4gZnJhZ21lbnRBcmd1bWVudEJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRBcmd1bWVudEJ1ZmZlcjsgfQotICAgIGlk
IDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cHV0ZUFyZ3VtZW50QnVmZmVyOyB9CisgICAgaWQ8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4QXJndW1lbnRCdWZmZXI7IH0KKyAgICBpZDxN
VExCdWZmZXI+IGZyYWdtZW50QXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdt
ZW50QXJndW1lbnRCdWZmZXI7IH0KKyAgICBpZDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50QnVmZmVyOyB9CiAKIHByaXZh
dGU6Ci0gICAgQmluZEdyb3VwKGlkIDxNVExCdWZmZXI+IHZlcnRleEFyZ3VtZW50QnVmZmVyLCBp
ZCA8TVRMQnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBpZCA8TVRMQnVmZmVyPiBjb21w
dXRlQXJndW1lbnRCdWZmZXIpOworICAgIEJpbmRHcm91cChpZDxNVExCdWZmZXI+IHZlcnRleEFy
Z3VtZW50QnVmZmVyLCBpZDxNVExCdWZmZXI+IGZyYWdtZW50QXJndW1lbnRCdWZmZXIsIGlkPE1U
TEJ1ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyKTsKIAotICAgIGlkIDxNVExCdWZmZXI+IG1f
dmVydGV4QXJndW1lbnRCdWZmZXIgeyBuaWwgfTsKLSAgICBpZCA8TVRMQnVmZmVyPiBtX2ZyYWdt
ZW50QXJndW1lbnRCdWZmZXIgeyBuaWwgfTsKLSAgICBpZCA8TVRMQnVmZmVyPiBtX2NvbXB1dGVB
cmd1bWVudEJ1ZmZlciB7IG5pbCB9OworICAgIGlkPE1UTEJ1ZmZlcj4gbV92ZXJ0ZXhBcmd1bWVu
dEJ1ZmZlcjsKKyAgICBpZDxNVExCdWZmZXI+IG1fZnJhZ21lbnRBcmd1bWVudEJ1ZmZlcjsKKyAg
ICBpZDxNVExCdWZmZXI+IG1fY29tcHV0ZUFyZ3VtZW50QnVmZmVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAu
bW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAubW0KaW5kZXggNGM0ODg2ZWE3MGVl
ODZiMmQyMzBmNTcyZTdiNTAzN2FlMzNhYjBhYi4uODhjZTdmNjBkMmMxMmRmODk0Njc0YWRjOWZl
MWYyMDA1YzM0ZDFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdyb3Vw
Lm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cC5tbQpAQCAtNTgsOSArNTgs
OSBAQCBSZWZQdHI8QmluZEdyb3VwPiBEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBXR1BV
QmluZEdyb3VwRGVzY3JpcHRvciogZGVzY3JpcAogCiAgICAgLy8gRklYTUU6IERvbid0IGFsbG9j
YXRlIDMgbmV3IGJ1ZmZlcnMgZm9yIGV2ZXJ5IGJpbmQgZ3JvdXAuCiAgICAgLy8gSW4gZmFjdCwg
ZG9uJ3QgZXZlbiBhbGxvY2F0ZSBhIHNpbmdsZSBuZXcgYnVmZmVyIGZvciBldmVyeSBiaW5kIGdy
b3VwLgotICAgIGlkIDxNVExCdWZmZXI+IHZlcnRleEFyZ3VtZW50QnVmZmVyID0gW21fZGV2aWNl
IG5ld0J1ZmZlcldpdGhMZW5ndGg6YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5ndGgoKSBvcHRp
b25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRdOwotICAgIGlkIDxNVExCdWZmZXI+IGZy
YWdtZW50QXJndW1lbnRCdWZmZXIgPSBbbV9kZXZpY2UgbmV3QnVmZmVyV2l0aExlbmd0aDpiaW5k
R3JvdXBMYXlvdXQuZW5jb2RlZExlbmd0aCgpIG9wdGlvbnM6TVRMUmVzb3VyY2VTdG9yYWdlTW9k
ZVNoYXJlZF07Ci0gICAgaWQgPE1UTEJ1ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyID0gW21f
ZGV2aWNlIG5ld0J1ZmZlcldpdGhMZW5ndGg6YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5ndGgo
KSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRdOworICAgIGlkPE1UTEJ1ZmZl
cj4gdmVydGV4QXJndW1lbnRCdWZmZXIgPSBbbV9kZXZpY2UgbmV3QnVmZmVyV2l0aExlbmd0aDpi
aW5kR3JvdXBMYXlvdXQuZW5jb2RlZExlbmd0aCgpIG9wdGlvbnM6TVRMUmVzb3VyY2VTdG9yYWdl
TW9kZVNoYXJlZF07CisgICAgaWQ8TVRMQnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyID0g
W21fZGV2aWNlIG5ld0J1ZmZlcldpdGhMZW5ndGg6YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5n
dGgoKSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRdOworICAgIGlkPE1UTEJ1
ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyID0gW21fZGV2aWNlIG5ld0J1ZmZlcldpdGhMZW5n
dGg6YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5ndGgoKSBvcHRpb25zOk1UTFJlc291cmNlU3Rv
cmFnZU1vZGVTaGFyZWRdOwogICAgIGlmICghdmVydGV4QXJndW1lbnRCdWZmZXIgfHwgIWZyYWdt
ZW50QXJndW1lbnRCdWZmZXIgfHwgIWNvbXB1dGVBcmd1bWVudEJ1ZmZlcikKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKQEAgLTY5LDkgKzY5LDkgQEAgUmVmUHRyPEJpbmRHcm91cD4gRGV2aWNl
OjpjcmVhdGVCaW5kR3JvdXAoY29uc3QgV0dQVUJpbmRHcm91cERlc2NyaXB0b3IqIGRlc2NyaXAK
ICAgICBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLmxhYmVsID0gbGFiZWw7CiAgICAgY29tcHV0ZUFy
Z3VtZW50QnVmZmVyLmxhYmVsID0gbGFiZWw7CiAKLSAgICBpZCA8TVRMQXJndW1lbnRFbmNvZGVy
PiB2ZXJ0ZXhBcmd1bWVudEVuY29kZXIgPSBiaW5kR3JvdXBMYXlvdXQudmVydGV4QXJndW1lbnRF
bmNvZGVyKCk7Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnRBcmd1bWVudEVu
Y29kZXIgPSBiaW5kR3JvdXBMYXlvdXQuZnJhZ21lbnRBcmd1bWVudEVuY29kZXIoKTsKLSAgICBp
ZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlQXJndW1lbnRFbmNvZGVyID0gYmluZEdyb3Vw
TGF5b3V0LmNvbXB1dGVBcmd1bWVudEVuY29kZXIoKTsKKyAgICBpZDxNVExBcmd1bWVudEVuY29k
ZXI+IHZlcnRleEFyZ3VtZW50RW5jb2RlciA9IGJpbmRHcm91cExheW91dC52ZXJ0ZXhBcmd1bWVu
dEVuY29kZXIoKTsKKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1lbnRF
bmNvZGVyID0gYmluZEdyb3VwTGF5b3V0LmZyYWdtZW50QXJndW1lbnRFbmNvZGVyKCk7CisgICAg
aWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlQXJndW1lbnRFbmNvZGVyID0gYmluZEdyb3Vw
TGF5b3V0LmNvbXB1dGVBcmd1bWVudEVuY29kZXIoKTsKICAgICBbdmVydGV4QXJndW1lbnRFbmNv
ZGVyIHNldEFyZ3VtZW50QnVmZmVyOnZlcnRleEFyZ3VtZW50QnVmZmVyIG9mZnNldDowXTsKICAg
ICBbZnJhZ21lbnRBcmd1bWVudEVuY29kZXIgc2V0QXJndW1lbnRCdWZmZXI6ZnJhZ21lbnRBcmd1
bWVudEJ1ZmZlciBvZmZzZXQ6MF07CiAgICAgW2NvbXB1dGVBcmd1bWVudEVuY29kZXIgc2V0QXJn
dW1lbnRCdWZmZXI6Y29tcHV0ZUFyZ3VtZW50QnVmZmVyIG9mZnNldDowXTsKQEAgLTg5LDE4ICs4
OSwxOCBAQCBSZWZQdHI8QmluZEdyb3VwPiBEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBX
R1BVQmluZEdyb3VwRGVzY3JpcHRvciogZGVzY3JpcAogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAgICAgaWYgKGJ1ZmZlcklzUHJlc2VudCkgewotICAgICAgICAgICAgaWQgPE1U
TEJ1ZmZlcj4gYnVmZmVyID0gZW50cnkuYnVmZmVyLT5idWZmZXItPmJ1ZmZlcigpOworICAgICAg
ICAgICAgaWQ8TVRMQnVmZmVyPiBidWZmZXIgPSBlbnRyeS5idWZmZXItPmJ1ZmZlci0+YnVmZmVy
KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVXNlIGNoZWNrZWQgY2FzdHMuCiAgICAgICAgICAg
ICBbdmVydGV4QXJndW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjpidWZmZXIgb2Zmc2V0OnN0YXRpY19j
YXN0PE5TVUludGVnZXI+KGVudHJ5Lm9mZnNldCkgYXRJbmRleDplbnRyeS5iaW5kaW5nXTsKICAg
ICAgICAgICAgIFtmcmFnbWVudEFyZ3VtZW50RW5jb2RlciBzZXRCdWZmZXI6YnVmZmVyIG9mZnNl
dDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihlbnRyeS5vZmZzZXQpIGF0SW5kZXg6ZW50cnkuYmlu
ZGluZ107CiAgICAgICAgICAgICBbY29tcHV0ZUFyZ3VtZW50RW5jb2RlciBzZXRCdWZmZXI6YnVm
ZmVyIG9mZnNldDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihlbnRyeS5vZmZzZXQpIGF0SW5kZXg6
ZW50cnkuYmluZGluZ107CiAgICAgICAgIH0gZWxzZSBpZiAoc2FtcGxlcklzUHJlc2VudCkgewot
ICAgICAgICAgICAgaWQgPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlciA9IGVudHJ5LnNhbXBsZXIt
PnNhbXBsZXItPnNhbXBsZXJTdGF0ZSgpOworICAgICAgICAgICAgaWQ8TVRMU2FtcGxlclN0YXRl
PiBzYW1wbGVyID0gZW50cnkuc2FtcGxlci0+c2FtcGxlci0+c2FtcGxlclN0YXRlKCk7CiAgICAg
ICAgICAgICBbdmVydGV4QXJndW1lbnRFbmNvZGVyIHNldFNhbXBsZXJTdGF0ZTpzYW1wbGVyIGF0
SW5kZXg6ZW50cnkuYmluZGluZ107CiAgICAgICAgICAgICBbZnJhZ21lbnRBcmd1bWVudEVuY29k
ZXIgc2V0U2FtcGxlclN0YXRlOnNhbXBsZXIgYXRJbmRleDplbnRyeS5iaW5kaW5nXTsKICAgICAg
ICAgICAgIFtjb21wdXRlQXJndW1lbnRFbmNvZGVyIHNldFNhbXBsZXJTdGF0ZTpzYW1wbGVyIGF0
SW5kZXg6ZW50cnkuYmluZGluZ107CiAgICAgICAgIH0gZWxzZSBpZiAodGV4dHVyZVZpZXdJc1By
ZXNlbnQpIHsKLSAgICAgICAgICAgIGlkIDxNVExUZXh0dXJlPiB0ZXh0dXJlID0gZW50cnkudGV4
dHVyZVZpZXctPnRleHR1cmVWaWV3LT50ZXh0dXJlKCk7CisgICAgICAgICAgICBpZDxNVExUZXh0
dXJlPiB0ZXh0dXJlID0gZW50cnkudGV4dHVyZVZpZXctPnRleHR1cmVWaWV3LT50ZXh0dXJlKCk7
CiAgICAgICAgICAgICBbdmVydGV4QXJndW1lbnRFbmNvZGVyIHNldFRleHR1cmU6dGV4dHVyZSBh
dEluZGV4OmVudHJ5LmJpbmRpbmddOwogICAgICAgICAgICAgW2ZyYWdtZW50QXJndW1lbnRFbmNv
ZGVyIHNldFRleHR1cmU6dGV4dHVyZSBhdEluZGV4OmVudHJ5LmJpbmRpbmddOwogICAgICAgICAg
ICAgW2NvbXB1dGVBcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTp0ZXh0dXJlIGF0SW5kZXg6ZW50
cnkuYmluZGluZ107CkBAIC0xMTMsNyArMTEzLDcgQEAgUmVmUHRyPEJpbmRHcm91cD4gRGV2aWNl
OjpjcmVhdGVCaW5kR3JvdXAoY29uc3QgV0dQVUJpbmRHcm91cERlc2NyaXB0b3IqIGRlc2NyaXAK
ICAgICByZXR1cm4gQmluZEdyb3VwOjpjcmVhdGUodmVydGV4QXJndW1lbnRCdWZmZXIsIGZyYWdt
ZW50QXJndW1lbnRCdWZmZXIsIGNvbXB1dGVBcmd1bWVudEJ1ZmZlcik7CiB9CiAKLUJpbmRHcm91
cDo6QmluZEdyb3VwKGlkIDxNVExCdWZmZXI+IHZlcnRleEFyZ3VtZW50QnVmZmVyLCBpZCA8TVRM
QnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBpZCA8TVRMQnVmZmVyPiBjb21wdXRlQXJn
dW1lbnRCdWZmZXIpCitCaW5kR3JvdXA6OkJpbmRHcm91cChpZDxNVExCdWZmZXI+IHZlcnRleEFy
Z3VtZW50QnVmZmVyLCBpZDxNVExCdWZmZXI+IGZyYWdtZW50QXJndW1lbnRCdWZmZXIsIGlkPE1U
TEJ1ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyKQogICAgIDogbV92ZXJ0ZXhBcmd1bWVudEJ1
ZmZlcih2ZXJ0ZXhBcmd1bWVudEJ1ZmZlcikKICAgICAsIG1fZnJhZ21lbnRBcmd1bWVudEJ1ZmZl
cihmcmFnbWVudEFyZ3VtZW50QnVmZmVyKQogICAgICwgbV9jb21wdXRlQXJndW1lbnRCdWZmZXIo
Y29tcHV0ZUFyZ3VtZW50QnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
QmluZEdyb3VwTGF5b3V0LmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXBMYXlvdXQu
aAppbmRleCAyYTliNzRiNmY2YWFkOThkNzRjNDg5MGZiODA2ZTY0OWZmN2FmNzdiLi42YmM2NmZm
YzI5ZDBlMjYwZTc5ZmE4YzNmZmM5Y2VmNDc5ODI3ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9CaW5kR3JvdXBMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9C
aW5kR3JvdXBMYXlvdXQuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNs
YXNzIEJpbmRHcm91cExheW91dCA6IHB1YmxpYyBSZWZDb3VudGVkPEJpbmRHcm91cExheW91dD4g
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
QmluZEdyb3VwTGF5b3V0PiBjcmVhdGUoaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gdmVydGV4QXJn
dW1lbnRFbmNvZGVyLCBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFnbWVudEFyZ3VtZW50RW5j
b2RlciwgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2RlcikKKyAg
ICBzdGF0aWMgUmVmPEJpbmRHcm91cExheW91dD4gY3JlYXRlKGlkPE1UTEFyZ3VtZW50RW5jb2Rl
cj4gdmVydGV4QXJndW1lbnRFbmNvZGVyLCBpZDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50
QXJndW1lbnRFbmNvZGVyLCBpZDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVu
Y29kZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaW5kR3JvdXBMYXlv
dXQodmVydGV4QXJndW1lbnRFbmNvZGVyLCBmcmFnbWVudEFyZ3VtZW50RW5jb2RlciwgY29tcHV0
ZUFyZ3VtZW50RW5jb2RlcikpOwogICAgIH0KQEAgLTQ1LDE2ICs0NSwxNiBAQCBwdWJsaWM6CiAK
ICAgICBOU1VJbnRlZ2VyIGVuY29kZWRMZW5ndGgoKSBjb25zdDsKIAotICAgIGlkIDxNVExBcmd1
bWVudEVuY29kZXI+IHZlcnRleEFyZ3VtZW50RW5jb2RlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVy
dGV4QXJndW1lbnRFbmNvZGVyOyB9Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21l
bnRBcmd1bWVudEVuY29kZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50QXJndW1lbnRFbmNv
ZGVyOyB9Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2Rl
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50RW5jb2RlcjsgfQorICAgIGlkPE1U
TEFyZ3VtZW50RW5jb2Rlcj4gdmVydGV4QXJndW1lbnRFbmNvZGVyKCkgY29uc3QgeyByZXR1cm4g
bV92ZXJ0ZXhBcmd1bWVudEVuY29kZXI7IH0KKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IGZy
YWdtZW50QXJndW1lbnRFbmNvZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50
RW5jb2RlcjsgfQorICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5j
b2RlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3VtZW50RW5jb2RlcjsgfQogCiBwcml2
YXRlOgotICAgIEJpbmRHcm91cExheW91dChpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiB2ZXJ0ZXhB
cmd1bWVudEVuY29kZXIsIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1lbnRF
bmNvZGVyLCBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlQXJndW1lbnRFbmNvZGVyKTsK
KyAgICBCaW5kR3JvdXBMYXlvdXQoaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiB2ZXJ0ZXhBcmd1bWVu
dEVuY29kZXIsIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnRBcmd1bWVudEVuY29kZXIs
IGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2Rlcik7CiAKLSAgICBp
ZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBtX3ZlcnRleEFyZ3VtZW50RW5jb2RlciB7IG5pbCB9Owot
ICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IG1fZnJhZ21lbnRBcmd1bWVudEVuY29kZXIgeyBu
aWwgfTsKLSAgICBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBtX2NvbXB1dGVBcmd1bWVudEVuY29k
ZXIgeyBuaWwgfTsKKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IG1fdmVydGV4QXJndW1lbnRF
bmNvZGVyOworICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gbV9mcmFnbWVudEFyZ3VtZW50RW5j
b2RlcjsKKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IG1fY29tcHV0ZUFyZ3VtZW50RW5jb2Rl
cjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQ
VS9XZWJHUFUvQmluZEdyb3VwTGF5b3V0Lm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdy
b3VwTGF5b3V0Lm1tCmluZGV4IGFjMzM4NWIxNzE0YzliNGVhOGZjNGViNGIyOGQyMDk0MzY3ZGRi
ZTQuLjI4ODc2OTVmYWM5NzFlMDM3Y2IzMTQyY2M3Njk0MzYwYzczNjc5MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cExheW91dC5tbQorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9CaW5kR3JvdXBMYXlvdXQubW0KQEAgLTE5OSw5ICsxOTksOSBAQCBSZWZQdHI8
QmluZEdyb3VwTGF5b3V0PiBEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXR1BV
QmluZEdyb3VwTGF5b3V0RAogICAgICAgICBbY29tcHV0ZUFyZ3VtZW50cyBhZGRPYmplY3Q6Y29t
cHV0ZURlc2NyaXB0b3JdOwogICAgIH0KIAotICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IHZl
cnRleEFyZ3VtZW50RW5jb2RlciA9IFttX2RldmljZSBuZXdBcmd1bWVudEVuY29kZXJXaXRoQXJn
dW1lbnRzOnZlcnRleEFyZ3VtZW50c107Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJh
Z21lbnRBcmd1bWVudEVuY29kZXIgPSBbbV9kZXZpY2UgbmV3QXJndW1lbnRFbmNvZGVyV2l0aEFy
Z3VtZW50czpmcmFnbWVudEFyZ3VtZW50c107Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4g
Y29tcHV0ZUFyZ3VtZW50RW5jb2RlciA9IFttX2RldmljZSBuZXdBcmd1bWVudEVuY29kZXJXaXRo
QXJndW1lbnRzOmNvbXB1dGVBcmd1bWVudHNdOworICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4g
dmVydGV4QXJndW1lbnRFbmNvZGVyID0gW21fZGV2aWNlIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhB
cmd1bWVudHM6dmVydGV4QXJndW1lbnRzXTsKKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IGZy
YWdtZW50QXJndW1lbnRFbmNvZGVyID0gW21fZGV2aWNlIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhB
cmd1bWVudHM6ZnJhZ21lbnRBcmd1bWVudHNdOworICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4g
Y29tcHV0ZUFyZ3VtZW50RW5jb2RlciA9IFttX2RldmljZSBuZXdBcmd1bWVudEVuY29kZXJXaXRo
QXJndW1lbnRzOmNvbXB1dGVBcmd1bWVudHNdOwogICAgIGlmICghdmVydGV4QXJndW1lbnRFbmNv
ZGVyIHx8ICFmcmFnbWVudEFyZ3VtZW50RW5jb2RlciB8fCAhY29tcHV0ZUFyZ3VtZW50RW5jb2Rl
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBSZWZQdHI8
QmluZEdyb3VwTGF5b3V0PiBEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBXR1BV
QmluZEdyb3VwTGF5b3V0RAogICAgIHJldHVybiBCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSh2ZXJ0
ZXhBcmd1bWVudEVuY29kZXIsIGZyYWdtZW50QXJndW1lbnRFbmNvZGVyLCBjb21wdXRlQXJndW1l
bnRFbmNvZGVyKTsKIH0KIAotQmluZEdyb3VwTGF5b3V0OjpCaW5kR3JvdXBMYXlvdXQoaWQgPE1U
TEFyZ3VtZW50RW5jb2Rlcj4gdmVydGV4QXJndW1lbnRFbmNvZGVyLCBpZCA8TVRMQXJndW1lbnRF
bmNvZGVyPiBmcmFnbWVudEFyZ3VtZW50RW5jb2RlciwgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4g
Y29tcHV0ZUFyZ3VtZW50RW5jb2RlcikKK0JpbmRHcm91cExheW91dDo6QmluZEdyb3VwTGF5b3V0
KGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gdmVydGV4QXJndW1lbnRFbmNvZGVyLCBpZDxNVExBcmd1
bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1lbnRFbmNvZGVyLCBpZDxNVExBcmd1bWVudEVuY29k
ZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIpCiAgICAgOiBtX3ZlcnRleEFyZ3VtZW50RW5jb2Rl
cih2ZXJ0ZXhBcmd1bWVudEVuY29kZXIpCiAgICAgLCBtX2ZyYWdtZW50QXJndW1lbnRFbmNvZGVy
KGZyYWdtZW50QXJndW1lbnRFbmNvZGVyKQogICAgICwgbV9jb21wdXRlQXJndW1lbnRFbmNvZGVy
KGNvbXB1dGVBcmd1bWVudEVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9CdWZmZXIuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5oCmluZGV4IGEzNWZiNmRl
OGNmYjA0YWVjZDRkODE3ZjZmZTY1YzRhM2E4NTk4OWEuLjI4NzFlZTA0N2IyMzJkODBjY2Y2NTJi
NDc1MTE4NmI3NTBkOWFmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5oCkBAIC0zNSw3ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJHUFUgewogY2xhc3MgQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QnVm
ZmVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxCdWZmZXI+IGNyZWF0ZShpZCA8TVRMQnVmZmVyPiBidWZmZXIpCisgICAgc3RhdGljIFJl
ZjxCdWZmZXI+IGNyZWF0ZShpZDxNVExCdWZmZXI+IGJ1ZmZlcikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEJ1ZmZlcihidWZmZXIpKTsKICAgICB9CkBAIC00OSwxMiArNDks
MTIgQEAgcHVibGljOgogICAgIHZvaWQgdW5tYXAoKTsKICAgICB2b2lkIHNldExhYmVsKGNvbnN0
IGNoYXIqKTsKIAotICAgIGlkIDxNVExCdWZmZXI+IGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
YnVmZmVyOyB9CisgICAgaWQ8TVRMQnVmZmVyPiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1
ZmZlcjsgfQogCiBwcml2YXRlOgotICAgIEJ1ZmZlcihpZCA8TVRMQnVmZmVyPik7CisgICAgQnVm
ZmVyKGlkPE1UTEJ1ZmZlcj4pOwogCi0gICAgaWQgPE1UTEJ1ZmZlcj4gbV9idWZmZXIgeyBuaWwg
fTsKKyAgICBpZDxNVExCdWZmZXI+IG1fYnVmZmVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
R1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0gYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggMTJkMzFkN2UzZGFmMTkzYTcxNzUxNzA2NjQw
N2M5MDQxYmY0MDExNS4uODYyMzViNTdiZmNmMzM3OGMxN2ZjZTJjOGU5ODdmOGNjZDU0ZWY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMzYsNyArMzYsNyBAQCBSZWZQdHI8QnVmZmVyPiBE
ZXZpY2U6OmNyZWF0ZUJ1ZmZlcihjb25zdCBXR1BVQnVmZmVyRGVzY3JpcHRvciogZGVzY3JpcHRv
cikKICAgICByZXR1cm4gQnVmZmVyOjpjcmVhdGUobmlsKTsKIH0KIAotQnVmZmVyOjpCdWZmZXIo
aWQgPE1UTEJ1ZmZlcj4gYnVmZmVyKQorQnVmZmVyOjpCdWZmZXIoaWQ8TVRMQnVmZmVyPiBidWZm
ZXIpCiAgICAgOiBtX2J1ZmZlcihidWZmZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21tYW5kQnVmZmVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5k
QnVmZmVyLmgKaW5kZXggNmZkODVmMGM1NjRlYjJmOWVlMGM4MDA5ZTc4NjM5ODNhMzU2Y2ZlZS4u
OTg4NjIwMTY4ZjliMWU0NDU2YzU2MWE3MTcyMDAyZGFjNWI2MzY1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0NvbW1hbmRCdWZmZXIuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsK
IGNsYXNzIENvbW1hbmRCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDb21tYW5kQnVmZmVyPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxD
b21tYW5kQnVmZmVyPiBjcmVhdGUoaWQgPE1UTENvbW1hbmRCdWZmZXI+IGNvbW1hbmRCdWZmZXIp
CisgICAgc3RhdGljIFJlZjxDb21tYW5kQnVmZmVyPiBjcmVhdGUoaWQ8TVRMQ29tbWFuZEJ1ZmZl
cj4gY29tbWFuZEJ1ZmZlcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENv
bW1hbmRCdWZmZXIoY29tbWFuZEJ1ZmZlcikpOwogICAgIH0KQEAgLTQzLDEyICs0MywxMiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAgIGlkIDxNVExD
b21tYW5kQnVmZmVyPiBjb21tYW5kQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kQnVm
ZmVyOyB9CisgICAgaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZEJ1ZmZlcjsgfQogCiBwcml2YXRlOgotICAgIENvbW1hbmRCdWZmZXIo
aWQgPE1UTENvbW1hbmRCdWZmZXI+KTsKKyAgICBDb21tYW5kQnVmZmVyKGlkPE1UTENvbW1hbmRC
dWZmZXI+KTsKIAotICAgIGlkIDxNVExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXIgeyBu
aWwgfTsKKyAgICBpZDxNVExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Nv
bW1hbmRCdWZmZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kQnVmZmVyLm1tCmlu
ZGV4IDE5ZjUxMTY3NzI0Njg3YTdkZGZjZTY4MGY2ZDZkZjQyZTZkMmExZmIuLjA4MWRlMGJmY2M5
ZjA5MTdjZTY1MjBmMzIyNWE2OGI2YzIwNWViYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbW1hbmRCdWZmZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFu
ZEJ1ZmZlci5tbQpAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIAotQ29t
bWFuZEJ1ZmZlcjo6Q29tbWFuZEJ1ZmZlcihpZCA8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1
ZmZlcikKK0NvbW1hbmRCdWZmZXI6OkNvbW1hbmRCdWZmZXIoaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4g
Y29tbWFuZEJ1ZmZlcikKICAgICA6IG1fY29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIuaCBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLmgKaW5kZXggNzFiZmZmNGQ5NjY4ZjYy
NWQ3MzczMjQ0YjkyMzk5ZTFiMjRkOTY1My4uNmYzZDEyZWNkNjczMjcxYmUxMDQzNjNjZjY1ZDll
MDJiOTRiYjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oCkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIFJlbmRlclBhc3NFbmNvZGVyOwogY2xhc3MgQ29tbWFuZEVuY29kZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDb21tYW5kRW5jb2Rlcj4gewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29tbWFuZEVuY29kZXI+IGNyZWF0
ZShpZCA8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlcikKKyAgICBzdGF0aWMgUmVmPENv
bW1hbmRFbmNvZGVyPiBjcmVhdGUoaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlcikK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbW1hbmRFbmNvZGVyKGNvbW1h
bmRCdWZmZXIpKTsKICAgICB9CkBAIC02NCw5ICs2NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IGNoYXIqKTsKIAogcHJpdmF0ZToKLSAgICBDb21tYW5kRW5jb2RlcihpZCA8
TVRMQ29tbWFuZEJ1ZmZlcj4pOworICAgIENvbW1hbmRFbmNvZGVyKGlkPE1UTENvbW1hbmRCdWZm
ZXI+KTsKIAotICAgIGlkIDxNVExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXIgeyBuaWwg
fTsKKyAgICBpZDxNVExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXI7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1h
bmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KaW5k
ZXggNjlhZjgwYjUzZThlYjBlZjk5Y2NiMGNhNzRjMjQ0NTY1NmM0MTI4My4uZjhiMDNjYTUyZThm
MGY5ZGJmZDk1MWY0Yzg1NmY1NjQ5NDZmODkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFu
ZEVuY29kZXIubW0KQEAgLTQxLDcgKzQxLDcgQEAgUmVmUHRyPENvbW1hbmRFbmNvZGVyPiBEZXZp
Y2U6OmNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IFdHUFVDb21tYW5kRW5jb2RlckRlc2MKICAg
ICByZXR1cm4gQ29tbWFuZEVuY29kZXI6OmNyZWF0ZShuaWwpOwogfQogCi1Db21tYW5kRW5jb2Rl
cjo6Q29tbWFuZEVuY29kZXIoaWQgPE1UTENvbW1hbmRCdWZmZXI+IGNvbW1hbmRCdWZmZXIpCitD
b21tYW5kRW5jb2Rlcjo6Q29tbWFuZEVuY29kZXIoaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFu
ZEJ1ZmZlcikKICAgICA6IG1fY29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLmggYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIuaAppbmRleCBmNWE5MzliMjIyOTU5
YWJlOTFlZmQ3ZjZlMDVlNDJkYzQ3ZWQxODhkLi5kNDA0NzAyNTJhY2JkOWZlN2U2MDM3MzkxMDI3
MDNkZjFlYjgzOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFz
c0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIu
aApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBRdWVyeVNldDsKIGNsYXNzIENvbXB1dGVQYXNzRW5j
b2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPENvbXB1dGVQYXNzRW5jb2Rlcj4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29tcHV0ZVBhc3NF
bmNvZGVyPiBjcmVhdGUoaWQgPE1UTENvbXB1dGVDb21tYW5kRW5jb2Rlcj4gY29tcHV0ZUNvbW1h
bmRFbmNvZGVyKQorICAgIHN0YXRpYyBSZWY8Q29tcHV0ZVBhc3NFbmNvZGVyPiBjcmVhdGUoaWQ8
TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjb21wdXRlQ29tbWFuZEVuY29kZXIpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21wdXRlUGFzc0VuY29kZXIoY29tcHV0ZUNv
bW1hbmRFbmNvZGVyKSk7CiAgICAgfQpAQCAtNTksOSArNTksOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKIHByaXZhdGU6Ci0gICAgQ29tcHV0ZVBhc3NFbmNv
ZGVyKGlkIDxNVExDb21wdXRlQ29tbWFuZEVuY29kZXI+KTsKKyAgICBDb21wdXRlUGFzc0VuY29k
ZXIoaWQ8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPik7CiAKLSAgICBpZCA8TVRMQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyPiBtX2NvbXB1dGVDb21tYW5kRW5jb2RlciB7IG5pbCB9OworICAgIGlkPE1U
TENvbXB1dGVDb21tYW5kRW5jb2Rlcj4gbV9jb21wdXRlQ29tbWFuZEVuY29kZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Nv
bXB1dGVQYXNzRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQYXNzRW5j
b2Rlci5tbQppbmRleCA0ZjQ3ZDAwOTVjNTEzNDE1NGE0NWZmNTZhODAxNDJmYjgwY2VkNDcyLi4w
MjQ1ZGY5MWY3YWJlNGRkODg5NjhlY2Q0MTNlYzJlMTI0N2EyNjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLm1tCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJHUFUgewogCi1Db21wdXRlUGFzc0VuY29kZXI6OkNvbXB1dGVQYXNzRW5jb2Rlcihp
ZCA8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjb21wdXRlQ29tbWFuZEVuY29kZXIpCitDb21w
dXRlUGFzc0VuY29kZXI6OkNvbXB1dGVQYXNzRW5jb2RlcihpZDxNVExDb21wdXRlQ29tbWFuZEVu
Y29kZXI+IGNvbXB1dGVDb21tYW5kRW5jb2RlcikKICAgICA6IG1fY29tcHV0ZUNvbW1hbmRFbmNv
ZGVyKGNvbXB1dGVDb21tYW5kRW5jb2RlcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0
ZVBpcGVsaW5lLmgKaW5kZXggNTUzOTRlMTlhMjhiZWNmYjk0NjU0NzUwYzZhZGYzMGQxYTc1ZjQ2
MS4uOWQ1NjlhOWEzZDA1ODU1ZDM0YTI2NTY2NGFjYzAzM2IyYTMxMjNjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQmluZEdy
b3VwTGF5b3V0OwogY2xhc3MgQ29tcHV0ZVBpcGVsaW5lIDogcHVibGljIFJlZkNvdW50ZWQ8Q29t
cHV0ZVBpcGVsaW5lPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZShpZCA8TVRMQ29tcHV0ZVBpcGVs
aW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlKQorICAgIHN0YXRpYyBSZWY8Q29tcHV0ZVBp
cGVsaW5lPiBjcmVhdGUoaWQ8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGlu
ZVN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tcHV0ZVBpcGVs
aW5lKGNvbXB1dGVQaXBlbGluZVN0YXRlKSk7CiAgICAgfQpAQCAtNDYsMTIgKzQ2LDEyIEBAIHB1
YmxpYzoKICAgICBSZWY8QmluZEdyb3VwTGF5b3V0PiBnZXRCaW5kR3JvdXBMYXlvdXQodWludDMy
X3QgZ3JvdXBJbmRleCk7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKLSAgICBp
ZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZTsgfQorICAgIGlkPE1UTENvbXB1dGVQaXBl
bGluZVN0YXRlPiBjb21wdXRlUGlwZWxpbmVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0
ZVBpcGVsaW5lU3RhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBDb21wdXRlUGlwZWxpbmUoaWQgPE1U
TENvbXB1dGVQaXBlbGluZVN0YXRlPik7CisgICAgQ29tcHV0ZVBpcGVsaW5lKGlkPE1UTENvbXB1
dGVQaXBlbGluZVN0YXRlPik7CiAKLSAgICBpZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IG1f
Y29tcHV0ZVBpcGVsaW5lU3RhdGUgeyBuaWwgfTsKKyAgICBpZDxNVExDb21wdXRlUGlwZWxpbmVT
dGF0ZT4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQ
VQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tIGIv
U291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCmluZGV4IDkwMGI1NzM4YzNl
ZDFjMGY3MDYwZGY3NGVhMDZhMTFiOTkxZGNkMmMuLmUxYmZkZTM4N2U5N2FkODk2YzEwMjM1ODMx
OTdhNmIyNWI4OWNhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQ
aXBlbGluZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0K
QEAgLTM1LDExICszNSwxMSBAQAogbmFtZXNwYWNlIFdlYkdQVSB7CiAKIHN0cnVjdCBMaWJyYXJ5
Q3JlYXRpb25SZXN1bHQgewotICAgIGlkIDxNVExMaWJyYXJ5PiBsaWJyYXJ5OworICAgIGlkPE1U
TExpYnJhcnk+IGxpYnJhcnk7CiAgICAgV0dTTDo6UmVmbGVjdGlvbjo6RW50cnlQb2ludEluZm9y
bWF0aW9uIGVudHJ5UG9pbnRJbmZvcm1hdGlvbjsgLy8gRklYTUU6IFRoaXMgaXMgYmlnLiBEb24n
dCBjb3B5IHRoaXMgYXJvdW5kLgogfTsKIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGlicmFyeUNy
ZWF0aW9uUmVzdWx0PiBjcmVhdGVMaWJyYXJ5KGlkIDxNVExEZXZpY2U+IGRldmljZSwgY29uc3Qg
U2hhZGVyTW9kdWxlJiBzaGFkZXJNb2R1bGUsIGNvbnN0IFBpcGVsaW5lTGF5b3V0JiBwaXBlbGlu
ZUxheW91dCwgY29uc3QgU3RyaW5nJiBlbnRyeVBvaW50LCBOU1N0cmluZyAqbGFiZWwpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxMaWJyYXJ5Q3JlYXRpb25SZXN1bHQ+IGNyZWF0ZUxpYnJhcnkoaWQ8
TVRMRGV2aWNlPiBkZXZpY2UsIGNvbnN0IFNoYWRlck1vZHVsZSYgc2hhZGVyTW9kdWxlLCBjb25z
dCBQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQsIGNvbnN0IFN0cmluZyYgZW50cnlQb2lu
dCwgTlNTdHJpbmcgKmxhYmVsKQogewogICAgIGlmIChzaGFkZXJNb2R1bGUubGlicmFyeSgpKSB7
CiAgICAgICAgIGlmIChjb25zdCBhdXRvKiBwaXBlbGluZUxheW91dEhpbnQgPSBzaGFkZXJNb2R1
bGUucGlwZWxpbmVMYXlvdXRIaW50KGVudHJ5UG9pbnQpKSB7CkBAIC0xMDcsNyArMTA3LDcgQEAg
c3RhdGljIE1UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgKmNyZWF0ZUNvbnN0YW50VmFsdWVzKHVp
bnQzMl90IGNvbnN0YW50Q291bnQsIGMKICAgICByZXR1cm4gY29uc3RhbnRWYWx1ZXM7CiB9CiAK
LXN0YXRpYyBpZCA8TVRMRnVuY3Rpb24+IGNyZWF0ZUZ1bmN0aW9uKGlkIDxNVExMaWJyYXJ5PiBs
aWJyYXJ5LCBjb25zdCBXR1NMOjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50SW5mb3JtYXRpb24mIGVu
dHJ5UG9pbnRJbmZvcm1hdGlvbiwgY29uc3QgV0dQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRv
ciYgY29tcHV0ZSwgTlNTdHJpbmcgKmxhYmVsKQorc3RhdGljIGlkPE1UTEZ1bmN0aW9uPiBjcmVh
dGVGdW5jdGlvbihpZDxNVExMaWJyYXJ5PiBsaWJyYXJ5LCBjb25zdCBXR1NMOjpSZWZsZWN0aW9u
OjpFbnRyeVBvaW50SW5mb3JtYXRpb24mIGVudHJ5UG9pbnRJbmZvcm1hdGlvbiwgY29uc3QgV0dQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYgY29tcHV0ZSwgTlNTdHJpbmcgKmxhYmVsKQog
ewogICAgIGF1dG8gZnVuY3Rpb25EZXNjcmlwdG9yID0gW01UTEZ1bmN0aW9uRGVzY3JpcHRvciBu
ZXddOwogICAgIGZ1bmN0aW9uRGVzY3JpcHRvci5uYW1lID0gZW50cnlQb2ludEluZm9ybWF0aW9u
Lm1hbmdsZWROYW1lOwpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgc3RhdGljIGlkIDxNVExGdW5jdGlv
bj4gY3JlYXRlRnVuY3Rpb24oaWQgPE1UTExpYnJhcnk+IGxpYnJhcnksIGNvbnN0IFdHU0w6OlJl
ZmwKICAgICAgICAgZnVuY3Rpb25EZXNjcmlwdG9yLmNvbnN0YW50VmFsdWVzID0gY29uc3RhbnRW
YWx1ZXM7CiAgICAgfQogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIGlkIDxNVExGdW5j
dGlvbj4gZnVuY3Rpb24gPSBbbGlicmFyeSBuZXdGdW5jdGlvbldpdGhEZXNjcmlwdG9yOmZ1bmN0
aW9uRGVzY3JpcHRvciBlcnJvcjomZXJyb3JdOworICAgIGlkPE1UTEZ1bmN0aW9uPiBmdW5jdGlv
biA9IFtsaWJyYXJ5IG5ld0Z1bmN0aW9uV2l0aERlc2NyaXB0b3I6ZnVuY3Rpb25EZXNjcmlwdG9y
IGVycm9yOiZlcnJvcl07CiAgICAgaWYgKGVycm9yKQogICAgICAgICBXVEZMb2dBbHdheXMoIkZ1
bmN0aW9uIGNyZWF0aW9uIGVycm9yOiAlQCIsIGVycm9yKTsKICAgICBmdW5jdGlvbi5sYWJlbCA9
IGxhYmVsOwogICAgIHJldHVybiBmdW5jdGlvbjsKIH0KIAotc3RhdGljIGlkIDxNVExDb21wdXRl
UGlwZWxpbmVTdGF0ZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lU3RhdGUoaWQgPE1UTERldmljZT4g
ZGV2aWNlLCBpZCA8TVRMRnVuY3Rpb24+IGZ1bmN0aW9uLCBjb25zdCBQaXBlbGluZUxheW91dCYg
cGlwZWxpbmVMYXlvdXQsIGNvbnN0IFdHU0w6OlJlZmxlY3Rpb246OkNvbXB1dGUmIGNvbXB1dGVJ
bmZvcm1hdGlvbiwgTlNTdHJpbmcgKmxhYmVsKQorc3RhdGljIGlkPE1UTENvbXB1dGVQaXBlbGlu
ZVN0YXRlPiBjcmVhdGVDb21wdXRlUGlwZWxpbmVTdGF0ZShpZDxNVExEZXZpY2U+IGRldmljZSwg
aWQ8TVRMRnVuY3Rpb24+IGZ1bmN0aW9uLCBjb25zdCBQaXBlbGluZUxheW91dCYgcGlwZWxpbmVM
YXlvdXQsIGNvbnN0IFdHU0w6OlJlZmxlY3Rpb246OkNvbXB1dGUmIGNvbXB1dGVJbmZvcm1hdGlv
biwgTlNTdHJpbmcgKmxhYmVsKQogewogICAgIGF1dG8gY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciA9IFtNVExDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIG5ld107CiAgICAgY29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5jb21wdXRlRnVuY3Rpb24gPSBmdW5jdGlvbjsKQEAgLTEzNyw3ICsxMzcs
NyBAQCBzdGF0aWMgaWQgPE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiBjcmVhdGVDb21wdXRlUGlw
ZWxpbmVTdGF0ZShpZCA8TVRMRGV2aWNlPiBkZQogICAgIGNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IubGFiZWwgPSBsYWJlbDsKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICAvLyBGSVhN
RTogUnVuIHRoZSBhc3luY2hyb25vdXMgdmVyc2lvbiBvZiB0aGlzCi0gICAgaWQgPE1UTENvbXB1
dGVQaXBlbGluZVN0YXRlPiBjb21wdXRlUGlwZWxpbmVTdGF0ZSA9IFtkZXZpY2UgbmV3Q29tcHV0
ZVBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjpjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIG9w
dGlvbnM6TVRMUGlwZWxpbmVPcHRpb25Ob25lIHJlZmxlY3Rpb246bmlsIGVycm9yOiZlcnJvcl07
CisgICAgaWQ8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlID0g
W2RldmljZSBuZXdDb21wdXRlUGlwZWxpbmVTdGF0ZVdpdGhEZXNjcmlwdG9yOmNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3Igb3B0aW9uczpNVExQaXBlbGluZU9wdGlvbk5vbmUgcmVmbGVjdGlvbjpu
aWwgZXJyb3I6JmVycm9yXTsKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
UGlwZWxpbmUgc3RhdGUgY3JlYXRpb24gZXJyb3I6ICVAIiwgZXJyb3IpOwogICAgIHJldHVybiBj
b21wdXRlUGlwZWxpbmVTdGF0ZTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIERldmljZTo6Y3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IqIGRlcwogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiB9CiAKLUNvbXB1dGVQaXBlbGlu
ZTo6Q29tcHV0ZVBpcGVsaW5lKGlkIDxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4gY29tcHV0ZVBp
cGVsaW5lU3RhdGUpCitDb21wdXRlUGlwZWxpbmU6OkNvbXB1dGVQaXBlbGluZShpZDxNVExDb21w
dXRlUGlwZWxpbmVTdGF0ZT4gY29tcHV0ZVBpcGVsaW5lU3RhdGUpCiAgICAgOiBtX2NvbXB1dGVQ
aXBlbGluZVN0YXRlKGNvbXB1dGVQaXBlbGluZVN0YXRlKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvRGV2aWNlLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZpY2Uu
aAppbmRleCA5N2RiODlmZWZhMmZmOTRmOWExMmFjNTAwMWJlYmM0MTZjYzQ4ZWFjLi5kODc3OTA5
ZDM0YjkwYTA0ZTA5MWRkMzY5MmJiMTNiNjFiYjc1MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9EZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZpY2UuaApA
QCAtNTIsNyArNTIsNyBAQCBjbGFzcyBRdWV1ZTsKIGNsYXNzIERldmljZSA6IHB1YmxpYyBSZWZD
b3VudGVkPERldmljZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8RGV2aWNlPiBjcmVhdGUoaWQgPE1UTERldmljZT4pOworICAgIHN0
YXRpYyBSZWZQdHI8RGV2aWNlPiBjcmVhdGUoaWQ8TVRMRGV2aWNlPik7CiAKICAgICB+RGV2aWNl
KCk7CiAKQEAgLTgzLDkgKzgzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwoY29uc3Qg
Y2hhciopOwogCiBwcml2YXRlOgotICAgIERldmljZShpZCA8TVRMRGV2aWNlPiwgUmVmPFF1ZXVl
PiYmKTsKKyAgICBEZXZpY2UoaWQ8TVRMRGV2aWNlPiwgUmVmPFF1ZXVlPiYmKTsKIAotICAgIGlk
IDxNVExEZXZpY2U+IG1fZGV2aWNlIHsgbmlsIH07CisgICAgaWQ8TVRMRGV2aWNlPiBtX2Rldmlj
ZTsKICAgICBSZWY8UXVldWU+IG1fZGVmYXVsdFF1ZXVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvRGV2aWNlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvRGV2aWNl
Lm1tCmluZGV4IGZkNTU3OGQwNjE4YjA2OWE0Zjk5MWQ1YzE5ZWFjMzBjZTliZDNlYWIuLjViNWMw
YTRhMjRjOWM4ZGQ5ODI3NWRkZTI2NTgyMmI1NTNhY2Y2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0RldmljZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZpY2Uu
bW0KQEAgLTQ1LDkgKzQ1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkdQVSB7CiAKLVJlZlB0cjxEZXZp
Y2U+IERldmljZTo6Y3JlYXRlKGlkIDxNVExEZXZpY2U+IGRldmljZSkKK1JlZlB0cjxEZXZpY2U+
IERldmljZTo6Y3JlYXRlKGlkPE1UTERldmljZT4gZGV2aWNlKQogewotICAgIGlkIDxNVExDb21t
YW5kUXVldWU+IGNvbW1hbmRRdWV1ZSA9IFtkZXZpY2UgbmV3Q29tbWFuZFF1ZXVlXTsKKyAgICBp
ZDxNVExDb21tYW5kUXVldWU+IGNvbW1hbmRRdWV1ZSA9IFtkZXZpY2UgbmV3Q29tbWFuZFF1ZXVl
XTsKICAgICBpZiAoIWNvbW1hbmRRdWV1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
YXV0byBxdWV1ZSA9IFF1ZXVlOjpjcmVhdGUoY29tbWFuZFF1ZXVlKTsKQEAgLTU1LDcgKzU1LDcg
QEAgUmVmUHRyPERldmljZT4gRGV2aWNlOjpjcmVhdGUoaWQgPE1UTERldmljZT4gZGV2aWNlKQog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZShkZXZpY2UsIFdURk1vdmUocXVldWUpKSk7
CiB9CiAKLURldmljZTo6RGV2aWNlKGlkIDxNVExEZXZpY2U+IGRldmljZSwgUmVmPFF1ZXVlPiYm
IHF1ZXVlKQorRGV2aWNlOjpEZXZpY2UoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIFJlZjxRdWV1ZT4m
JiBxdWV1ZSkKICAgICA6IG1fZGV2aWNlKGRldmljZSkKICAgICAsIG1fZGVmYXVsdFF1ZXVlKFdU
Rk1vdmUocXVldWUpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvSW5zdGFu
Y2UubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9JbnN0YW5jZS5tbQppbmRleCBiYjM1ZjBiZjEw
ZjA4M2Q0Y2RlMGEzODk2MTk3NDhhOTQzYzllNjFiLi5mYWIzMWIxOGRmZjdhMTUxYjYwZmMwN2Mw
Yjc2ZTBiODdhMWVjZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9JbnN0YW5j
ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9JbnN0YW5jZS5tbQpAQCAtNzQsMTQgKzc0
LDE0IEBAIHZvaWQgSW5zdGFuY2U6OnByb2Nlc3NFdmVudHMoKQogICAgIH0gd2hpbGUgKHJlc3Vs
dCk7CiB9CiAKLXN0YXRpYyBOU0FycmF5PGlkIDxNVExEZXZpY2U+PiAqc29ydGVkRGV2aWNlcyhO
U0FycmF5PGlkIDxNVExEZXZpY2U+PiAqZGV2aWNlcywgV0dQVVBvd2VyUHJlZmVyZW5jZSBwb3dl
clByZWZlcmVuY2UpCitzdGF0aWMgTlNBcnJheTxpZDxNVExEZXZpY2U+PiAqc29ydGVkRGV2aWNl
cyhOU0FycmF5PGlkPE1UTERldmljZT4+ICpkZXZpY2VzLCBXR1BVUG93ZXJQcmVmZXJlbmNlIHBv
d2VyUHJlZmVyZW5jZSkKIHsKICAgICBzd2l0Y2ggKHBvd2VyUHJlZmVyZW5jZSkgewogICAgIGNh
c2UgV0dQVVBvd2VyUHJlZmVyZW5jZV9VbmRlZmluZWQ6CiAgICAgICAgIHJldHVybiBkZXZpY2Vz
OwogICAgIGNhc2UgV0dQVVBvd2VyUHJlZmVyZW5jZV9Mb3dQb3dlcjoKICNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgICAgICByZXR1cm4gW2RldmljZXMgc29y
dGVkQXJyYXlXaXRoT3B0aW9uczpOU1NvcnRTdGFibGUgdXNpbmdDb21wYXJhdG9yOl5OU0NvbXBh
cmlzb25SZXN1bHQgKGlkIDxNVExEZXZpY2U+IG9iajEsIGlkIDxNVExEZXZpY2U+IG9iajIpCisg
ICAgICAgIHJldHVybiBbZGV2aWNlcyBzb3J0ZWRBcnJheVdpdGhPcHRpb25zOk5TU29ydFN0YWJs
ZSB1c2luZ0NvbXBhcmF0b3I6Xk5TQ29tcGFyaXNvblJlc3VsdCAoaWQ8TVRMRGV2aWNlPiBvYmox
LCBpZDxNVExEZXZpY2U+IG9iajIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChvYmoxLmxv
d1Bvd2VyID09IG9iajIubG93UG93ZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3JkZXJl
ZFNhbWU7CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBOU0FycmF5PGlkIDxNVExEZXZpY2U+PiAq
c29ydGVkRGV2aWNlcyhOU0FycmF5PGlkIDxNVExEZXZpY2U+PiAqZGV2aWNlcywKICNlbmRpZgog
ICAgIGNhc2UgV0dQVVBvd2VyUHJlZmVyZW5jZV9IaWdoUGVyZm9ybWFuY2U6CiAjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICAgICAgcmV0dXJuIFtkZXZpY2Vz
IHNvcnRlZEFycmF5V2l0aE9wdGlvbnM6TlNTb3J0U3RhYmxlIHVzaW5nQ29tcGFyYXRvcjpeTlND
b21wYXJpc29uUmVzdWx0IChpZCA8TVRMRGV2aWNlPiBvYmoxLCBpZCA8TVRMRGV2aWNlPiBvYmoy
KQorICAgICAgICByZXR1cm4gW2RldmljZXMgc29ydGVkQXJyYXlXaXRoT3B0aW9uczpOU1NvcnRT
dGFibGUgdXNpbmdDb21wYXJhdG9yOl5OU0NvbXBhcmlzb25SZXN1bHQgKGlkPE1UTERldmljZT4g
b2JqMSwgaWQ8TVRMRGV2aWNlPiBvYmoyKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAob2Jq
MS5sb3dQb3dlciA9PSBvYmoyLmxvd1Bvd2VyKQogICAgICAgICAgICAgICAgIHJldHVybiBOU09y
ZGVyZWRTYW1lOwpAQCAtMTEzLDEwICsxMTMsMTAgQEAgc3RhdGljIE5TQXJyYXk8aWQgPE1UTERl
dmljZT4+ICpzb3J0ZWREZXZpY2VzKE5TQXJyYXk8aWQgPE1UTERldmljZT4+ICpkZXZpY2VzLAog
dm9pZCBJbnN0YW5jZTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV0dQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucyogb3B0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVSZXF1ZXN0QWRhcHRlclN0YXR1
cywgUmVmUHRyPEFkYXB0ZXI+JiYsIGNvbnN0IGNoYXIqKT4mJiBjYWxsYmFjaykKIHsKICNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIE5TQXJyYXk8aWQgPE1U
TERldmljZT4+ICpkZXZpY2VzID0gTVRMQ29weUFsbERldmljZXMoKTsKKyAgICBOU0FycmF5PGlk
PE1UTERldmljZT4+ICpkZXZpY2VzID0gTVRMQ29weUFsbERldmljZXMoKTsKICNlbHNlCi0gICAg
TlNNdXRhYmxlQXJyYXk8aWQgPE1UTERldmljZT4+ICpkZXZpY2VzID0gW05TTXV0YWJsZUFycmF5
IGFycmF5XTsKLSAgICBpZiAoaWQgPE1UTERldmljZT4gZGV2aWNlID0gTVRMQ3JlYXRlU3lzdGVt
RGVmYXVsdERldmljZSgpKQorICAgIE5TTXV0YWJsZUFycmF5PGlkPE1UTERldmljZT4+ICpkZXZp
Y2VzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBpZiAoaWQ8TVRMRGV2aWNlPiBkZXZp
Y2UgPSBNVExDcmVhdGVTeXN0ZW1EZWZhdWx0RGV2aWNlKCkpCiAgICAgICAgIFtkZXZpY2VzIGFk
ZE9iamVjdDpkZXZpY2VdOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL1F1ZXJ5U2V0LmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5oCmluZGV4IGEw
N2ZiZWI4YTU1ZjU0NWY5NTI4MGMwYjI4YWZlMzIyMWEzMWIyZmQuLjg5OTVlMDg2ODFkMjYwODk4
NmQxM2NhODg2MzE5MDYyNTc4NzExM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1F1ZXJ5U2V0LmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVlcnlTZXQuaApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIFF1ZXJ5U2V0IDogcHVibGljIFJl
ZkNvdW50ZWQ8UXVlcnlTZXQ+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFF1ZXJ5U2V0PiBjcmVhdGUoaWQgPE1UTENvdW50ZXJTYW1wbGVC
dWZmZXI+IGNvdW50ZXJTYW1wbGVCdWZmZXIpCisgICAgc3RhdGljIFJlZjxRdWVyeVNldD4gY3Jl
YXRlKGlkPE1UTENvdW50ZXJTYW1wbGVCdWZmZXI+IGNvdW50ZXJTYW1wbGVCdWZmZXIpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBRdWVyeVNldChjb3VudGVyU2FtcGxlQnVm
ZmVyKSk7CiAgICAgfQpAQCAtNDQsMTIgKzQ0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlc3Ry
b3koKTsKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAgIGlkIDxNVExDb3Vu
dGVyU2FtcGxlQnVmZmVyPiBjb3VudGVyU2FtcGxlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9j
b3VudGVyU2FtcGxlQnVmZmVyOyB9CisgICAgaWQ8TVRMQ291bnRlclNhbXBsZUJ1ZmZlcj4gY291
bnRlclNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclNhbXBsZUJ1ZmZlcjsg
fQogCiBwcml2YXRlOgotICAgIFF1ZXJ5U2V0KGlkIDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPik7
CisgICAgUXVlcnlTZXQoaWQ8TVRMQ291bnRlclNhbXBsZUJ1ZmZlcj4pOwogCi0gICAgaWQgPE1U
TENvdW50ZXJTYW1wbGVCdWZmZXI+IG1fY291bnRlclNhbXBsZUJ1ZmZlciB7IG5pbCB9OworICAg
IGlkPE1UTENvdW50ZXJTYW1wbGVCdWZmZXI+IG1fY291bnRlclNhbXBsZUJ1ZmZlcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
UXVlcnlTZXQubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5tbQppbmRleCBiNjdm
M2YzMmIxYWE1NmExODk0NWY5YzdlY2VlOTJhYjlhNjY1YTJmLi5hODA2M2I2MDg0ZmVjOGQyOTE0
ZWM3MThlZDA1MzA5NTBjZWYxYjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9R
dWVyeVNldC5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5tbQpAQCAtMzYs
NyArMzYsNyBAQCBSZWZQdHI8UXVlcnlTZXQ+IERldmljZTo6Y3JlYXRlUXVlcnlTZXQoY29uc3Qg
V0dQVVF1ZXJ5U2V0RGVzY3JpcHRvciogZGVzY3JpcHRvcgogICAgIHJldHVybiBRdWVyeVNldDo6
Y3JlYXRlKG5pbCk7CiB9CiAKLVF1ZXJ5U2V0OjpRdWVyeVNldChpZCA8TVRMQ291bnRlclNhbXBs
ZUJ1ZmZlcj4gY291bnRlclNhbXBsZUJ1ZmZlcikKK1F1ZXJ5U2V0OjpRdWVyeVNldChpZDxNVExD
b3VudGVyU2FtcGxlQnVmZmVyPiBjb3VudGVyU2FtcGxlQnVmZmVyKQogICAgIDogbV9jb3VudGVy
U2FtcGxlQnVmZmVyKGNvdW50ZXJTYW1wbGVCdWZmZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUuaApp
bmRleCBmNGJhNDUxN2Y0ZTgyNDQ2OWQ4YWRiYzdmYTkyOTFhYjE2ZDczMDM4Li5lYjY3YzljYzk3
ZWUxZjEzZWE2YmRhODViMjg5ODk5YzQ2ZjE3M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9RdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLmgKQEAgLTM5
LDcgKzM5LDcgQEAgY2xhc3MgQ29tbWFuZEJ1ZmZlcjsKIGNsYXNzIFF1ZXVlIDogcHVibGljIFJl
ZkNvdW50ZWQ8UXVldWU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFF1ZXVlPiBjcmVhdGUoaWQgPE1UTENvbW1hbmRRdWV1ZT4gY29tbWFu
ZFF1ZXVlKQorICAgIHN0YXRpYyBSZWY8UXVldWU+IGNyZWF0ZShpZDxNVExDb21tYW5kUXVldWU+
IGNvbW1hbmRRdWV1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFF1ZXVl
KGNvbW1hbmRRdWV1ZSkpOwogICAgIH0KQEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCiBwcml2YXRlOgotICAgIFF1ZXVlKGlkIDxNVExD
b21tYW5kUXVldWU+KTsKKyAgICBRdWV1ZShpZDxNVExDb21tYW5kUXVldWU+KTsKIAotICAgIGlk
IDxNVExDb21tYW5kUXVldWU+IG1fY29tbWFuZFF1ZXVlIHsgbmlsIH07CisgICAgaWQ8TVRMQ29t
bWFuZFF1ZXVlPiBtX2NvbW1hbmRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0gYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9RdWV1ZS5tbQppbmRleCA0NzYwMGJhNDlmMmZkN2U5YmJjZWY3MTA4MDViMWIyMGI4
OTBhNmNkLi43NGYzNTZiN2E2MmUyZmQzMDhkOWRlNzZmZDdiMWY4ZDVlYjhjOGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9RdWV1ZS5tbQpAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIAot
UXVldWU6OlF1ZXVlKGlkIDxNVExDb21tYW5kUXVldWU+IGNvbW1hbmRRdWV1ZSkKK1F1ZXVlOjpR
dWV1ZShpZDxNVExDb21tYW5kUXVldWU+IGNvbW1hbmRRdWV1ZSkKICAgICA6IG1fY29tbWFuZFF1
ZXVlKGNvbW1hbmRRdWV1ZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1JlbmRlckJ1bmRsZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlLmgKaW5k
ZXggOTJjOGRhNDA5ZjZlNTZiN2I2NjY5YWNmM2FkMWM2N2JmYzgxZmYyOS4uZjA5MDYwOTEwNTMz
N2FmNmYxMGIzMTU1MDRkMzBiZGE3OTU1Y2UzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvUmVuZGVyQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVu
ZGxlLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkdQVSB7CiBjbGFzcyBSZW5kZXJC
dW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5kZXJCdW5kbGU+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbmRlckJ1bmRsZT4gY3Jl
YXRlKGlkIDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikK
KyAgICBzdGF0aWMgUmVmPFJlbmRlckJ1bmRsZT4gY3JlYXRlKGlkPE1UTEluZGlyZWN0Q29tbWFu
ZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVuZGVyQnVuZGxlKGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikpOwogICAgIH0K
QEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNo
YXIqKTsKIAotICAgIGlkIDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFu
ZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21tYW5kQnVmZmVyOyB9CisgICAg
aWQ8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPiBpbmRpcmVjdENvbW1hbmRCdWZmZXIoKSBjb25z
dCB7IHJldHVybiBtX2luZGlyZWN0Q29tbWFuZEJ1ZmZlcjsgfQogCiBwcml2YXRlOgotICAgIFJl
bmRlckJ1bmRsZShpZCA8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPik7CisgICAgUmVuZGVyQnVu
ZGxlKGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4pOwogCi0gICAgaWQgPE1UTEluZGlyZWN0
Q29tbWFuZEJ1ZmZlcj4gbV9pbmRpcmVjdENvbW1hbmRCdWZmZXIgeyBuaWwgfTsKKyAgICBpZDxN
VExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IG1faW5kaXJlY3RDb21tYW5kQnVmZmVyOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9S
ZW5kZXJCdW5kbGUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGUubW0KaW5k
ZXggNTM2ZWM3NTNhOTRjZjBmOGQyMjE1ZjhhMTQ4MjVmNmE5NTAxNDY1NS4uMzczOGFmN2FhMDU3
MmYyNmYzYzNjM2YxZTcwODI5NDVkN2Y3NDMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvUmVuZGVyQnVuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1
bmRsZS5tbQpAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIAotUmVuZGVy
QnVuZGxlOjpSZW5kZXJCdW5kbGUoaWQgPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJl
Y3RDb21tYW5kQnVmZmVyKQorUmVuZGVyQnVuZGxlOjpSZW5kZXJCdW5kbGUoaWQ8TVRMSW5kaXJl
Y3RDb21tYW5kQnVmZmVyPiBpbmRpcmVjdENvbW1hbmRCdWZmZXIpCiAgICAgOiBtX2luZGlyZWN0
Q29tbWFuZEJ1ZmZlcihpbmRpcmVjdENvbW1hbmRCdWZmZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmggYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmgKaW5kZXggOGNiYzk4OTQ3YTUyY2Q3ZDEyYzRm
YWY2ZmZlMzEyNzc0NjM4NDE3NS4uNjBkN2FhNjhhZGI0MzczMjIxYzc4ZTc3ZTQyNWE3ZmUwNTM5
MTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rl
ci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIuaApAQCAt
NDAsNyArNDAsNyBAQCBjbGFzcyBSZW5kZXJQaXBlbGluZTsKIGNsYXNzIFJlbmRlckJ1bmRsZUVu
Y29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5kZXJCdW5kbGVFbmNvZGVyPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW5kZXJCdW5k
bGVFbmNvZGVyPiBjcmVhdGUoaWQgPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RD
b21tYW5kQnVmZmVyKQorICAgIHN0YXRpYyBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rlcj4gY3JlYXRl
KGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVuZGVyQnVuZGxlRW5jb2RlcihpbmRp
cmVjdENvbW1hbmRCdWZmZXIpKTsKICAgICB9CkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAogcHJpdmF0ZToKLSAgICBSZW5kZXJCdW5k
bGVFbmNvZGVyKGlkIDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+KTsKKyAgICBSZW5kZXJCdW5k
bGVFbmNvZGVyKGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4pOwogCi0gICAgaWQgPE1UTElu
ZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gbV9pbmRpcmVjdENvbW1hbmRCdWZmZXIgeyBuaWwgfTsKKyAg
ICBpZDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IG1faW5kaXJlY3RDb21tYW5kQnVmZmVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVy
QnVuZGxlRW5jb2Rlci5tbQppbmRleCA1NmVhZmU3MzJjMGQ5NGZiYmY3YTcyMTYzYzkwZjg3MWFm
ODYxM2NmLi5kOWQ5M2YyMzMwYmY4NTY1ZjQ5Y2U0ZGRkMTMwZjBjY2I1NTI3MGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIubW0KQEAgLTQwLDcgKzQwLDcg
QEAgUmVmUHRyPFJlbmRlckJ1bmRsZUVuY29kZXI+IERldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBXR1BVUmVuZGVyQnUKICAgICByZXR1cm4gUmVuZGVyQnVuZGxlRW5jb2Rl
cjo6Y3JlYXRlKG5pbCk7CiB9CiAKLVJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbmRlckJ1bmRsZUVu
Y29kZXIoaWQgPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVy
KQorUmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVuZGVyQnVuZGxlRW5jb2RlcihpZDxNVExJbmRpcmVj
dENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikKICAgICA6IG1faW5kaXJlY3RD
b21tYW5kQnVmZmVyKGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDg0ODZmZDRhMjE2ZmUwMDViNWZkYzRkY2Jm
YTM1N2U5ZDY3NGU1NzEuLjM1NjBjMzVlMjI1ZDhjOGMxMjBiNGVmNGZhODUyOWVlZGRkMDU2OGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmgKKysr
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBSZW5kZXJQaXBlbGluZTsKIGNsYXNzIFJlbmRlclBhc3NFbmNvZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8UmVuZGVyUGFzc0VuY29kZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBjcmVh
dGUoaWQgPE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiByZW5kZXJDb21tYW5kRW5jb2RlcikKKyAg
ICBzdGF0aWMgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoaWQ8TVRMUmVuZGVyQ29tbWFu
ZEVuY29kZXI+IHJlbmRlckNvbW1hbmRFbmNvZGVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVuZGVyUGFzc0VuY29kZXIocmVuZGVyQ29tbWFuZEVuY29kZXIpKTsKICAg
ICB9CkBAIC03Myw5ICs3Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNo
YXIqKTsKIAogcHJpdmF0ZToKLSAgICBSZW5kZXJQYXNzRW5jb2RlcihpZCA8TVRMUmVuZGVyQ29t
bWFuZEVuY29kZXI+KTsKKyAgICBSZW5kZXJQYXNzRW5jb2RlcihpZDxNVExSZW5kZXJDb21tYW5k
RW5jb2Rlcj4pOwogCi0gICAgaWQgPE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiBtX3JlbmRlckNv
bW1hbmRFbmNvZGVyIHsgbmlsIH07CisgICAgaWQ8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IG1f
cmVuZGVyQ29tbWFuZEVuY29kZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLm1tIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0KaW5kZXggNTNhNjRiNDA4MjU3MmUy
YWIwOGI0NjMwMjc0YzgwMDA2MWFkNzE2Ni4uMTFmMjU1OGM5MmMzMjFmODM0M2VkODA5ZTVlNzM2
M2UyMTk4MDhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0Vu
Y29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0K
QEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkdQVSB7CiAKLVJlbmRlclBhc3NFbmNv
ZGVyOjpSZW5kZXJQYXNzRW5jb2RlcihpZCA8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IHJlbmRl
ckNvbW1hbmRFbmNvZGVyKQorUmVuZGVyUGFzc0VuY29kZXI6OlJlbmRlclBhc3NFbmNvZGVyKGlk
PE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiByZW5kZXJDb21tYW5kRW5jb2RlcikKICAgICA6IG1f
cmVuZGVyQ29tbWFuZEVuY29kZXIocmVuZGVyQ29tbWFuZEVuY29kZXIpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvUmVuZGVyUGlwZWxpbmUuaAppbmRleCA5YjZkMTRkOTlmMDg2ODU1NDA2NDM4Yjg4
YjcxM2YzMGZlNTJjZjRlLi40ZTcwYjMwZTliMmZlMGExNDliY2QxNTM0MDhjYWZiYWZkY2UwOWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5oCisrKyBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBpcGVsaW5lLmgKQEAgLTM2LDcgKzM2LDcgQEAg
Y2xhc3MgQmluZEdyb3VwTGF5b3V0OwogY2xhc3MgUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVm
Q291bnRlZDxSZW5kZXJQaXBlbGluZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShpZCA8TVRMUmVu
ZGVyUGlwZWxpbmVTdGF0ZT4gcmVuZGVyUGlwZWxpbmVTdGF0ZSkKKyAgICBzdGF0aWMgUmVmPFJl
bmRlclBpcGVsaW5lPiBjcmVhdGUoaWQ8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gcmVuZGVyUGlw
ZWxpbmVTdGF0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclBp
cGVsaW5lKHJlbmRlclBpcGVsaW5lU3RhdGUpKTsKICAgICB9CkBAIC00NiwxMiArNDYsMTIgQEAg
cHVibGljOgogICAgIFJlZjxCaW5kR3JvdXBMYXlvdXQ+IGdldEJpbmRHcm91cExheW91dCh1aW50
MzJfdCBncm91cEluZGV4KTsKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAg
IGlkIDxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiByZW5kZXJQaXBlbGluZVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZW5kZXJQaXBlbGluZVN0YXRlOyB9CisgICAgaWQ8TVRMUmVuZGVyUGlwZWxp
bmVTdGF0ZT4gcmVuZGVyUGlwZWxpbmVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyUGlw
ZWxpbmVTdGF0ZTsgfQogCiBwcml2YXRlOgotICAgIFJlbmRlclBpcGVsaW5lKGlkIDxNVExSZW5k
ZXJQaXBlbGluZVN0YXRlPik7CisgICAgUmVuZGVyUGlwZWxpbmUoaWQ8TVRMUmVuZGVyUGlwZWxp
bmVTdGF0ZT4pOwogCi0gICAgaWQgPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IG1fcmVuZGVyUGlw
ZWxpbmVTdGF0ZSB7IG5pbCB9OworICAgIGlkPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IG1fcmVu
ZGVyUGlwZWxpbmVTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxpbmUubW0gYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9SZW5kZXJQaXBlbGluZS5tbQppbmRleCBhNTExN2I3OTAwNDAyNmY5NjE0NTViZjll
NDZkZTEwZDA0OTVkMDgxLi45MmQ0OTFlMTc4ZmM2NzllYTFiYjY3ZTE2MzhkZDQ2ZDIxM2I2YjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5tbQorKysg
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5tbQpAQCAtNDMsNyArNDMsNyBA
QCB2b2lkIERldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25zdCBXR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yKiBkZXNjcgogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiB9
CiAKLVJlbmRlclBpcGVsaW5lOjpSZW5kZXJQaXBlbGluZShpZCA8TVRMUmVuZGVyUGlwZWxpbmVT
dGF0ZT4gcmVuZGVyUGlwZWxpbmVTdGF0ZSkKK1JlbmRlclBpcGVsaW5lOjpSZW5kZXJQaXBlbGlu
ZShpZDxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiByZW5kZXJQaXBlbGluZVN0YXRlKQogICAgIDog
bV9yZW5kZXJQaXBlbGluZVN0YXRlKHJlbmRlclBpcGVsaW5lU3RhdGUpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9TYW1wbGVyLmgKaW5kZXggYWI3MjRmMDI3Yjc2OGMxNzRiYjRmNmYyNWZmOTI3OTYzMmI5MmNh
ZS4uODI2MTNiODg4ODZlY2NkZWI3NzA4NDY4YmE1M2QxZmJlMjBiZjViOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1NhbXBsZXIuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIFNh
bXBsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTYW1wbGVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTYW1wbGVyPiBjcmVhdGUoaWQgPE1U
TFNhbXBsZXJTdGF0ZT4gc2FtcGxlclN0YXRlKQorICAgIHN0YXRpYyBSZWY8U2FtcGxlcj4gY3Jl
YXRlKGlkPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlclN0YXRlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2FtcGxlcihzYW1wbGVyU3RhdGUpKTsKICAgICB9CkBAIC00Mywx
MiArNDMsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAK
LSAgICBpZCA8TVRMU2FtcGxlclN0YXRlPiBzYW1wbGVyU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3NhbXBsZXJTdGF0ZTsgfQorICAgIGlkPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlclN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW1wbGVyU3RhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBTYW1wbGVy
KGlkIDxNVExTYW1wbGVyU3RhdGU+KTsKKyAgICBTYW1wbGVyKGlkPE1UTFNhbXBsZXJTdGF0ZT4p
OwogCi0gICAgaWQgPE1UTFNhbXBsZXJTdGF0ZT4gbV9zYW1wbGVyU3RhdGUgeyBuaWwgfTsKKyAg
ICBpZDxNVExTYW1wbGVyU3RhdGU+IG1fc2FtcGxlclN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tIGIv
U291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRleCA1NWRkZDM5MmQyN2U4ZDg3Mjdk
YTMzNGMxNGQwMDE2NTFjYmEzNmQ3Li5kYmE2YjkxZDlmOWY1NTBjM2VkMTBkOTk2NjgyMjM0M2I5
MjY3YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAgLTM2LDcgKzM2LDcgQEAgUmVmUHRy
PFNhbXBsZXI+IERldmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBXR1BVU2FtcGxlckRlc2NyaXB0
b3IqIGRlc2NyaXB0b3IpCiAgICAgcmV0dXJuIFNhbXBsZXI6OmNyZWF0ZShuaWwpOwogfQogCi1T
YW1wbGVyOjpTYW1wbGVyKGlkIDxNVExTYW1wbGVyU3RhdGU+IHNhbXBsZXJTdGF0ZSkKK1NhbXBs
ZXI6OlNhbXBsZXIoaWQ8TVRMU2FtcGxlclN0YXRlPiBzYW1wbGVyU3RhdGUpCiAgICAgOiBtX3Nh
bXBsZXJTdGF0ZShzYW1wbGVyU3RhdGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9TaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVs
ZS5oCmluZGV4IGJjNjZiMGZkNWQ2NTFhZTBiMGQ5MTRkY2EyNjU1ZTMzYWU4ZTIzYTQuLmJmZDc4
OWU0ZmU4MmRhYTgwNmEzZGEyMDdkNjdlNWM1MjMzZDRjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1No
YWRlck1vZHVsZS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFBpcGVsaW5lTGF5b3V0OwogY2xh
c3MgU2hhZGVyTW9kdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZGVyTW9kdWxlPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTaGFkZXJN
b2R1bGU+IGNyZWF0ZShzdGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vzc2Z1bENoZWNrLCBXR1NMOjpG
YWlsZWRDaGVjaz4mJiBjaGVja1Jlc3VsdCwgSGFzaE1hcDxTdHJpbmcsIFJlZjxQaXBlbGluZUxh
eW91dD4+JiYgcGlwZWxpbmVMYXlvdXRIaW50cywgSGFzaE1hcDxTdHJpbmcsIFdHU0w6OlJlZmxl
Y3Rpb246OkVudHJ5UG9pbnRJbmZvcm1hdGlvbj4mJiBlbnRyeVBvaW50SW5mb3JtYXRpb24sIGlk
IDxNVExMaWJyYXJ5PiBsaWJyYXJ5KQorICAgIHN0YXRpYyBSZWY8U2hhZGVyTW9kdWxlPiBjcmVh
dGUoc3RkOjp2YXJpYW50PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaywgV0dTTDo6RmFpbGVkQ2hlY2s+
JiYgY2hlY2tSZXN1bHQsIEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlwZWxpbmVMYXlvdXQ+PiYmIHBp
cGVsaW5lTGF5b3V0SGludHMsIEhhc2hNYXA8U3RyaW5nLCBXR1NMOjpSZWZsZWN0aW9uOjpFbnRy
eVBvaW50SW5mb3JtYXRpb24+JiYgZW50cnlQb2ludEluZm9ybWF0aW9uLCBpZDxNVExMaWJyYXJ5
PiBsaWJyYXJ5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhZGVyTW9k
dWxlKFdURk1vdmUoY2hlY2tSZXN1bHQpLCBXVEZNb3ZlKHBpcGVsaW5lTGF5b3V0SGludHMpLCBX
VEZNb3ZlKGVudHJ5UG9pbnRJbmZvcm1hdGlvbiksIGxpYnJhcnkpKTsKICAgICB9CkBAIC01MCwy
MSArNTAsMjEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCiAg
ICAgc3RhdGljIFdHU0w6OlBpcGVsaW5lTGF5b3V0IGNvbnZlcnRQaXBlbGluZUxheW91dChjb25z
dCBQaXBlbGluZUxheW91dCYpOwotICAgIHN0YXRpYyBpZCA8TVRMTGlicmFyeT4gY3JlYXRlTGli
cmFyeShpZCA8TVRMRGV2aWNlPiwgY29uc3QgU3RyaW5nJiBtc2wsIE5TU3RyaW5nICpsYWJlbCk7
CisgICAgc3RhdGljIGlkPE1UTExpYnJhcnk+IGNyZWF0ZUxpYnJhcnkoaWQ8TVRMRGV2aWNlPiwg
Y29uc3QgU3RyaW5nJiBtc2wsIE5TU3RyaW5nICpsYWJlbCk7CiAKICAgICBjb25zdCBXR1NMOjpB
U1QqIGFzdCgpIGNvbnN0OwogCiAgICAgY29uc3QgUGlwZWxpbmVMYXlvdXQqIHBpcGVsaW5lTGF5
b3V0SGludChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBjb25zdCBXR1NMOjpSZWZsZWN0aW9u
OjpFbnRyeVBvaW50SW5mb3JtYXRpb24qIGVudHJ5UG9pbnRJbmZvcm1hdGlvbihjb25zdCBTdHJp
bmcmKSBjb25zdDsKLSAgICBpZCA8TVRMTGlicmFyeT4gbGlicmFyeSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGlicmFyeTsgfQorICAgIGlkPE1UTExpYnJhcnk+IGxpYnJhcnkoKSBjb25zdCB7IHJldHVy
biBtX2xpYnJhcnk7IH0KIAogcHJpdmF0ZToKLSAgICBTaGFkZXJNb2R1bGUoc3RkOjp2YXJpYW50
PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaywgV0dTTDo6RmFpbGVkQ2hlY2s+JiYsIEhhc2hNYXA8U3Ry
aW5nLCBSZWY8UGlwZWxpbmVMYXlvdXQ+PiYmLCBIYXNoTWFwPFN0cmluZywgV0dTTDo6UmVmbGVj
dGlvbjo6RW50cnlQb2ludEluZm9ybWF0aW9uPiYmLCBpZCA8TVRMTGlicmFyeT4pOworICAgIFNo
YWRlck1vZHVsZShzdGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vzc2Z1bENoZWNrLCBXR1NMOjpGYWls
ZWRDaGVjaz4mJiwgSGFzaE1hcDxTdHJpbmcsIFJlZjxQaXBlbGluZUxheW91dD4+JiYsIEhhc2hN
YXA8U3RyaW5nLCBXR1NMOjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50SW5mb3JtYXRpb24+JiYsIGlk
PE1UTExpYnJhcnk+KTsKIAogICAgIGNvbnN0IHN0ZDo6dmFyaWFudDxXR1NMOjpTdWNjZXNzZnVs
Q2hlY2ssIFdHU0w6OkZhaWxlZENoZWNrPiBtX2NoZWNrUmVzdWx0OwogICAgIGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBSZWY8UGlwZWxpbmVMYXlvdXQ+PiBtX3BpcGVsaW5lTGF5b3V0SGludHM7CiAg
ICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFdHU0w6OlJlZmxlY3Rpb246OkVudHJ5UG9pbnRJbmZv
cm1hdGlvbj4gbV9lbnRyeVBvaW50SW5mb3JtYXRpb247Ci0gICAgaWQgPE1UTExpYnJhcnk+IG1f
bGlicmFyeSB7IG5pbCB9OyAvLyBUaGlzIGlzIG9ubHkgbm9uLW51bGwgaWYgd2UgY291bGQgY29t
cGlsZSB0aGUgbW9kdWxlIGVhcmx5LgorICAgIGlkPE1UTExpYnJhcnk+IG1fbGlicmFyeTsgLy8g
VGhpcyBpcyBvbmx5IG5vbi1udWxsIGlmIHdlIGNvdWxkIGNvbXBpbGUgdGhlIG1vZHVsZSBlYXJs
eS4KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQ
VS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9k
dWxlLm1tCmluZGV4IGViYTc2NDVjMTYxYjI5YmFhNzgxYjgyZDY2Yzg5MTFkNDRjYzQxZGIuLjE3
ZGJkODgwYWY4YzEyMGM3MWIxNDM1NDNiNWNiMDUyNjQwMWU0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9TaGFkZXJNb2R1bGUubW0KQEAgLTY2LDIwICs2NiwyMCBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxTaGFkZXJNb2R1bGVQYXJhbWV0ZXJzPiBmaW5kU2hhZGVyTW9kdWxlUGFyYW1ldGVycyhjb25z
dCBXRwogICAgIHJldHVybiB7IHsgKndnc2wsIGhpbnRzIH0gfTsKIH0KIAotaWQgPE1UTExpYnJh
cnk+IFNoYWRlck1vZHVsZTo6Y3JlYXRlTGlicmFyeShpZCA8TVRMRGV2aWNlPiBkZXZpY2UsIGNv
bnN0IFN0cmluZyYgbXNsLCBOU1N0cmluZyAqbGFiZWwpCitpZDxNVExMaWJyYXJ5PiBTaGFkZXJN
b2R1bGU6OmNyZWF0ZUxpYnJhcnkoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIGNvbnN0IFN0cmluZyYg
bXNsLCBOU1N0cmluZyAqbGFiZWwpCiB7CiAgICAgYXV0byBvcHRpb25zID0gW01UTENvbXBpbGVP
cHRpb25zIG5ld107CiAgICAgb3B0aW9ucy5mYXN0TWF0aEVuYWJsZWQgPSBZRVM7CiAgICAgTlNF
cnJvciAqZXJyb3IgPSBuaWw7CiAgICAgLy8gRklYTUU6IFJ1biB0aGUgYXN5bmNocm9ub3VzIHZl
cnNpb24gb2YgdGhpcwotICAgIGlkIDxNVExMaWJyYXJ5PiBsaWJyYXJ5ID0gW2RldmljZSBuZXdM
aWJyYXJ5V2l0aFNvdXJjZTptc2wgb3B0aW9uczpvcHRpb25zIGVycm9yOiZlcnJvcl07CisgICAg
aWQ8TVRMTGlicmFyeT4gbGlicmFyeSA9IFtkZXZpY2UgbmV3TGlicmFyeVdpdGhTb3VyY2U6bXNs
IG9wdGlvbnM6b3B0aW9ucyBlcnJvcjomZXJyb3JdOwogICAgIGlmIChlcnJvcikKICAgICAgICAg
V1RGTG9nQWx3YXlzKCJNU0wgY29tcGlsYXRpb24gZXJyb3I6ICVAIiwgZXJyb3IpOwogICAgIGxp
YnJhcnkubGFiZWwgPSBsYWJlbDsKICAgICByZXR1cm4gbGlicmFyeTsKIH0KIAotc3RhdGljIFJl
ZlB0cjxTaGFkZXJNb2R1bGU+IGVhcmx5Q29tcGlsZVNoYWRlck1vZHVsZShpZCA8TVRMRGV2aWNl
PiBkZXZpY2UsIHN0ZDo6dmFyaWFudDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2ssIFdHU0w6OkZhaWxl
ZENoZWNrPiYmIGNoZWNrUmVzdWx0LCBjb25zdCBXR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvckhp
bnRzJiBzdXBwbGllZEhpbnRzLCBOU1N0cmluZyAqbGFiZWwpCitzdGF0aWMgUmVmUHRyPFNoYWRl
ck1vZHVsZT4gZWFybHlDb21waWxlU2hhZGVyTW9kdWxlKGlkPE1UTERldmljZT4gZGV2aWNlLCBz
dGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vzc2Z1bENoZWNrLCBXR1NMOjpGYWlsZWRDaGVjaz4mJiBj
aGVja1Jlc3VsdCwgY29uc3QgV0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3JIaW50cyYgc3VwcGxp
ZWRIaW50cywgTlNTdHJpbmcgKmxhYmVsKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlw
ZWxpbmVMYXlvdXQ+PiBoaW50czsKICAgICBIYXNoTWFwPFN0cmluZywgV0dTTDo6UGlwZWxpbmVM
YXlvdXQ+IHdnc2xIaW50czsKQEAgLTExNyw3ICsxMTcsNyBAQCBSZWZQdHI8U2hhZGVyTW9kdWxl
PiBEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVsZShjb25zdCBXR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvcgogICAgIHJldHVybiBTaGFkZXJNb2R1bGU6OmNyZWF0ZShXVEZNb3ZlKGNoZWNrUmVzdWx0
KSwgeyB9LCB7IH0sIG5pbCk7CiB9CiAKLVNoYWRlck1vZHVsZTo6U2hhZGVyTW9kdWxlKHN0ZDo6
dmFyaWFudDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2ssIFdHU0w6OkZhaWxlZENoZWNrPiYmIGNoZWNr
UmVzdWx0LCBIYXNoTWFwPFN0cmluZywgUmVmPFBpcGVsaW5lTGF5b3V0Pj4mJiBwaXBlbGluZUxh
eW91dEhpbnRzLCBIYXNoTWFwPFN0cmluZywgV0dTTDo6UmVmbGVjdGlvbjo6RW50cnlQb2ludElu
Zm9ybWF0aW9uPiYmIGVudHJ5UG9pbnRJbmZvcm1hdGlvbiwgaWQgPE1UTExpYnJhcnk+IGxpYnJh
cnkpCitTaGFkZXJNb2R1bGU6OlNoYWRlck1vZHVsZShzdGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vz
c2Z1bENoZWNrLCBXR1NMOjpGYWlsZWRDaGVjaz4mJiBjaGVja1Jlc3VsdCwgSGFzaE1hcDxTdHJp
bmcsIFJlZjxQaXBlbGluZUxheW91dD4+JiYgcGlwZWxpbmVMYXlvdXRIaW50cywgSGFzaE1hcDxT
dHJpbmcsIFdHU0w6OlJlZmxlY3Rpb246OkVudHJ5UG9pbnRJbmZvcm1hdGlvbj4mJiBlbnRyeVBv
aW50SW5mb3JtYXRpb24sIGlkPE1UTExpYnJhcnk+IGxpYnJhcnkpCiAgICAgOiBtX2NoZWNrUmVz
dWx0KFdURk1vdmUoY2hlY2tSZXN1bHQpKQogICAgICwgbV9waXBlbGluZUxheW91dEhpbnRzKFdU
Rk1vdmUocGlwZWxpbmVMYXlvdXRIaW50cykpCiAgICAgLCBtX2VudHJ5UG9pbnRJbmZvcm1hdGlv
bihXVEZNb3ZlKGVudHJ5UG9pbnRJbmZvcm1hdGlvbikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9UZXh0dXJlLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgKaW5k
ZXggZmQwNWViYzZjOGM5ZTJmZTM4MjhlOWJkNDE4NTUyMGYxZjUwZGI4MS4uYjVlOWY2MWViYjY2
MWMyYjNjYjA4MDQ3MjU0MTAxMmZjMjZlMjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUuaApAQCAt
MzcsNyArMzcsNyBAQCBjbGFzcyBUZXh0dXJlVmlldzsKIGNsYXNzIFRleHR1cmUgOiBwdWJsaWMg
UmVmQ291bnRlZDxUZXh0dXJlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0dXJlPiBjcmVhdGUoaWQgPE1UTFRleHR1cmU+IHRleHR1
cmUpCisgICAgc3RhdGljIFJlZjxUZXh0dXJlPiBjcmVhdGUoaWQ8TVRMVGV4dHVyZT4gdGV4dHVy
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmUodGV4dHVyZSkp
OwogICAgIH0KQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXN0cm95KCk7
CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKLSAgICBpZCA8TVRMVGV4dHVyZT4g
dGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorICAgIGlkPE1UTFRleHR1cmU+
IHRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KIAogcHJpdmF0ZToKLSAgICBU
ZXh0dXJlKGlkIDxNVExUZXh0dXJlPik7CisgICAgVGV4dHVyZShpZDxNVExUZXh0dXJlPik7CiAK
LSAgICBpZCA8TVRMVGV4dHVyZT4gbV90ZXh0dXJlIHsgbmlsIH07CisgICAgaWQ8TVRMVGV4dHVy
ZT4gbV90ZXh0dXJlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4
dHVyZS5tbQppbmRleCA1YzQ3ZWQ2OGEwYjMwN2ZhYzY0ZTBlNzFiMTUxNjlkMWY4NDFjMjQ4Li4w
ZjI3Nzk1NjVlZTNkNGIwZTY2N2M4ODJjMzkyZjM5NzI5ZGU5MmQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1Rl
eHR1cmUubW0KQEAgLTM3LDcgKzM3LDcgQEAgUmVmUHRyPFRleHR1cmU+IERldmljZTo6Y3JlYXRl
VGV4dHVyZShjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3IqIGRlc2NyaXB0b3IpCiAgICAgcmV0
dXJuIFRleHR1cmU6OmNyZWF0ZShuaWwpOwogfQogCi1UZXh0dXJlOjpUZXh0dXJlKGlkIDxNVExU
ZXh0dXJlPiB0ZXh0dXJlKQorVGV4dHVyZTo6VGV4dHVyZShpZDxNVExUZXh0dXJlPiB0ZXh0dXJl
KQogICAgIDogbV90ZXh0dXJlKHRleHR1cmUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9UZXh0dXJlVmlldy5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZVZp
ZXcuaAppbmRleCAwOTY3MTJjNjk2NjI4ODNjNzg0ZjVmMjhiNjY5ZmU4N2E2MjQ2MDBjLi44OTgz
MTRiZjMxMjc0ZGM4ZTlmNWJkYWViZGIwZjA0MmJlODJlMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1Rl
eHR1cmVWaWV3LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkdQVSB7CiBjbGFzcyBU
ZXh0dXJlVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHR1cmVWaWV3PiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0dXJlVmlldz4g
Y3JlYXRlKGlkIDxNVExUZXh0dXJlPiB0ZXh0dXJlKQorICAgIHN0YXRpYyBSZWY8VGV4dHVyZVZp
ZXc+IGNyZWF0ZShpZDxNVExUZXh0dXJlPiB0ZXh0dXJlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dHVyZVZpZXcodGV4dHVyZSkpOwogICAgIH0KQEAgLTQzLDEyICs0
MywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAg
IGlkIDxNVExUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0dXJlOyB9Cisg
ICAgaWQ8TVRMVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQog
CiBwcml2YXRlOgotICAgIFRleHR1cmVWaWV3KGlkIDxNVExUZXh0dXJlPik7CisgICAgVGV4dHVy
ZVZpZXcoaWQ8TVRMVGV4dHVyZT4pOwogCi0gICAgaWQgPE1UTFRleHR1cmU+IG1fdGV4dHVyZSB7
IG5pbCB9OworICAgIGlkPE1UTFRleHR1cmU+IG1fdGV4dHVyZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZVZpZXcu
bW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5tbQppbmRleCA2MWNkOGE0NzA2
OWE0NWVjZGNhYTI3MzU2YjIwYmJkOTE4N2JkOTZlLi4wYWFlOTJiOGUwMjJkZTY3Y2I4ODE3YThl
MDM2NzEwYTc0YjAyYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJl
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5tbQpAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIAotVGV4dHVyZVZpZXc6OlRleHR1cmVW
aWV3KGlkIDxNVExUZXh0dXJlPiB0ZXh0dXJlKQorVGV4dHVyZVZpZXc6OlRleHR1cmVWaWV3KGlk
PE1UTFRleHR1cmU+IHRleHR1cmUpCiAgICAgOiBtX3RleHR1cmUodGV4dHVyZSkKIHsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453767</attachid>
            <date>2022-03-03 11:35:07 -0800</date>
            <delta_ts>2022-03-03 13:03:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237437-20220303113506.patch</filename>
            <type>text/plain</type>
            <size>52593</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGRmOTM1ODc0NDFmY2VlODI0
NWVjNDI3YzI4ZGJkN2RiNTYxY2I0NjYuLjNkMmRkMmFiOWNkZmYyYTY0NjY3ZTkzMzMwN2QzOTNh
MmJkMWQxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE2IEBACisyMDIyLTAzLTAzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQWJp
ZGUgYnkgdGhlIFdlYktpdCBTdHlsZSBHdWlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIHN0eWxlIGd1aWRlIHNheXMgIkRvIG5vdCBwbGFjZSBh
IHNwYWNlIGJldHdlZW4gdGhlIHR5cGUgbmFtZSBhbmQgdGhlIHByb3RvY29sIG5hbWUuIgorCisg
ICAgICAgICogV2ViR1BVL0FkYXB0ZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6QWRhcHRlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBXZWJHUFUvQWRhcHRlci5tbToKKyAgICAgICAgKFdlYkdQVTo6QWRh
cHRlcjo6QWRhcHRlcik6CisgICAgICAgIChXZWJHUFU6OmRldmljZU1lZXRzUmVxdWlyZWRMaW1p
dHMpOgorICAgICAgICAqIFdlYkdQVS9CaW5kR3JvdXAuaDoKKyAgICAgICAgKFdlYkdQVTo6Qmlu
ZEdyb3VwOjpjcmVhdGUpOgorICAgICAgICAoV2ViR1BVOjpCaW5kR3JvdXA6OnZlcnRleEFyZ3Vt
ZW50QnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkdQVTo6QmluZEdyb3VwOjpmcmFnbWVudEFy
Z3VtZW50QnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkdQVTo6QmluZEdyb3VwOjpjb21wdXRl
QXJndW1lbnRCdWZmZXIgY29uc3QpOgorICAgICAgICAqIFdlYkdQVS9CaW5kR3JvdXAubW06Cisg
ICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlQmluZEdyb3VwKToKKyAgICAgICAgKFdlYkdQ
VTo6QmluZEdyb3VwOjpCaW5kR3JvdXApOgorICAgICAgICAqIFdlYkdQVS9CaW5kR3JvdXBMYXlv
dXQuaDoKKyAgICAgICAgKFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ6OnZlcnRleEFyZ3VtZW50RW5jb2RlciBjb25zdCk6
CisgICAgICAgIChXZWJHUFU6OkJpbmRHcm91cExheW91dDo6ZnJhZ21lbnRBcmd1bWVudEVuY29k
ZXIgY29uc3QpOgorICAgICAgICAoV2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ6OmNvbXB1dGVBcmd1
bWVudEVuY29kZXIgY29uc3QpOgorICAgICAgICAqIFdlYkdQVS9CaW5kR3JvdXBMYXlvdXQubW06
CisgICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KToKKyAgICAg
ICAgKFdlYkdQVTo6QmluZEdyb3VwTGF5b3V0OjpCaW5kR3JvdXBMYXlvdXQpOgorICAgICAgICAq
IFdlYkdQVS9CdWZmZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViR1BVOjpCdWZmZXI6OmJ1ZmZlciBjb25zdCk6CisgICAgICAgICogV2ViR1BVL0J1
ZmZlci5tbToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjpCdWZmZXIpOgorICAgICAgICAqIFdl
YkdQVS9Db21tYW5kQnVmZmVyLmg6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRCdWZmZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRCdWZmZXI6OmNvbW1hbmRCdWZmZXIgY29u
c3QpOgorICAgICAgICAqIFdlYkdQVS9Db21tYW5kQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kQnVmZmVyOjpDb21tYW5kQnVmZmVyKToKKyAgICAgICAgKiBXZWJHUFUvQ29tbWFu
ZEVuY29kZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21t
YW5kRW5jb2Rlcjo6Q29tbWFuZEVuY29kZXIpOgorICAgICAgICAqIFdlYkdQVS9Db21wdXRlUGFz
c0VuY29kZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIFdlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW06CisgICAgICAgIChXZWJH
UFU6OkNvbXB1dGVQYXNzRW5jb2Rlcjo6Q29tcHV0ZVBhc3NFbmNvZGVyKToKKyAgICAgICAgKiBX
ZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLmg6CisgICAgICAgIChXZWJHUFU6OkNvbXB1dGVQaXBlbGlu
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lOjpjb21wdXRlUGlw
ZWxpbmVTdGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToK
KyAgICAgICAgKFdlYkdQVTo6Y3JlYXRlTGlicmFyeSk6CisgICAgICAgIChXZWJHUFU6OmNyZWF0
ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lU3RhdGUp
OgorICAgICAgICAoV2ViR1BVOjpDb21wdXRlUGlwZWxpbmU6OkNvbXB1dGVQaXBlbGluZSk6Cisg
ICAgICAgICogV2ViR1BVL0RldmljZS5oOgorICAgICAgICAqIFdlYkdQVS9EZXZpY2UubW06Cisg
ICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNl
OjpEZXZpY2UpOgorICAgICAgICAqIFdlYkdQVS9JbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYkdQ
VTo6c29ydGVkRGV2aWNlcyk6CisgICAgICAgIChXZWJHUFU6Okluc3RhbmNlOjpyZXF1ZXN0QWRh
cHRlcik6CisgICAgICAgICogV2ViR1BVL1F1ZXJ5U2V0Lmg6CisgICAgICAgIChXZWJHUFU6OlF1
ZXJ5U2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViR1BVOjpRdWVyeVNldDo6Y291bnRlclNhbXBs
ZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogV2ViR1BVL1F1ZXJ5U2V0Lm1tOgorICAgICAgICAo
V2ViR1BVOjpRdWVyeVNldDo6UXVlcnlTZXQpOgorICAgICAgICAqIFdlYkdQVS9RdWV1ZS5oOgor
ICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJHUFUvUXVldWUu
bW06CisgICAgICAgIChXZWJHUFU6OlF1ZXVlOjpRdWV1ZSk6CisgICAgICAgICogV2ViR1BVL1Jl
bmRlckJ1bmRsZS5oOgorICAgICAgICAoV2ViR1BVOjpSZW5kZXJCdW5kbGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJHUFU6OlJlbmRlckJ1bmRsZTo6aW5kaXJlY3RDb21tYW5kQnVmZmVyIGNvbnN0
KToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyQnVuZGxlLm1tOgorICAgICAgICAoV2ViR1BVOjpS
ZW5kZXJCdW5kbGU6OlJlbmRlckJ1bmRsZSk6CisgICAgICAgICogV2ViR1BVL1JlbmRlckJ1bmRs
ZUVuY29kZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5tbToKKyAgICAgICAgKFdl
YkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcjo6UmVuZGVyQnVuZGxlRW5jb2Rlcik6CisgICAgICAg
ICogV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmg6CisgICAgICAgIChXZWJHUFU6OlJlbmRlclBh
c3NFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5t
bToKKyAgICAgICAgKFdlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI6OlJlbmRlclBhc3NFbmNvZGVy
KToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkdQVTo6
UmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJHUFU6OlJlbmRlclBpcGVsaW5l
OjpyZW5kZXJQaXBlbGluZVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBXZWJHUFUvUmVuZGVyUGlw
ZWxpbmUubW06CisgICAgICAgIChXZWJHUFU6OlJlbmRlclBpcGVsaW5lOjpSZW5kZXJQaXBlbGlu
ZSk6CisgICAgICAgICogV2ViR1BVL1NhbXBsZXIuaDoKKyAgICAgICAgKFdlYkdQVTo6U2FtcGxl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdQVTo6U2FtcGxlcjo6c2FtcGxlclN0YXRlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6U2FtcGxl
cjo6U2FtcGxlcik6CisgICAgICAgICogV2ViR1BVL1NoYWRlck1vZHVsZS5oOgorICAgICAgICAo
V2ViR1BVOjpTaGFkZXJNb2R1bGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJHUFU6OlNoYWRlck1v
ZHVsZTo6bGlicmFyeSBjb25zdCk6CisgICAgICAgICogV2ViR1BVL1NoYWRlck1vZHVsZS5tbToK
KyAgICAgICAgKFdlYkdQVTo6U2hhZGVyTW9kdWxlOjpjcmVhdGVMaWJyYXJ5KToKKyAgICAgICAg
KFdlYkdQVTo6ZWFybHlDb21waWxlU2hhZGVyTW9kdWxlKToKKyAgICAgICAgKFdlYkdQVTo6U2hh
ZGVyTW9kdWxlOjpTaGFkZXJNb2R1bGUpOgorICAgICAgICAqIFdlYkdQVS9UZXh0dXJlLmg6Cisg
ICAgICAgIChXZWJHUFU6OlRleHR1cmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJHUFU6OlRleHR1
cmU6OnRleHR1cmUgY29uc3QpOgorICAgICAgICAqIFdlYkdQVS9UZXh0dXJlLm1tOgorICAgICAg
ICAoV2ViR1BVOjpUZXh0dXJlOjpUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFUvVGV4dHVyZVZp
ZXcuaDoKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZVZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJHUFU6OlRleHR1cmVWaWV3Ojp0ZXh0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJHUFUvVGV4
dHVyZVZpZXcubW06CisgICAgICAgIChXZWJHUFU6OlRleHR1cmVWaWV3OjpUZXh0dXJlVmlldyk6
CisKIDIwMjItMDItMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViR1BVXSBGaXggd2F0Y2hPUyBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkdQVS9XZWJHUFUvQWRhcHRlci5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5o
CmluZGV4IGQ0YWNmZWQyMjU0NDUyYTFjNGFkYmVkYTViNGViZmViOTQ4Y2E3YWIuLjFhOTUxYWQx
MDcyZmQ5NzY4ZWMxZDE5Y2EzNjRhZTZjNDM3NGFlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0FkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLmgK
QEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgRGV2aWNlOwogY2xhc3MgQWRhcHRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFkYXB0ZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEFkYXB0ZXI+IGNyZWF0ZShpZCA8TVRMRGV2aWNlPiBkZXZpY2Up
CisgICAgc3RhdGljIFJlZjxBZGFwdGVyPiBjcmVhdGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBZGFwdGVyKGRldmljZSkpOwogICAg
IH0KQEAgLTUyLDkgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdERldmljZShjb25z
dCBXR1BVRGV2aWNlRGVzY3JpcHRvciosIFdURjo6RnVuY3Rpb248dm9pZChXR1BVUmVxdWVzdERl
dmljZVN0YXR1cywgUmVmUHRyPERldmljZT4mJiwgY29uc3QgY2hhciopPiYmIGNhbGxiYWNrKTsK
IAogcHJpdmF0ZToKLSAgICBBZGFwdGVyKGlkIDxNVExEZXZpY2U+KTsKKyAgICBBZGFwdGVyKGlk
PE1UTERldmljZT4pOwogCi0gICAgaWQgPE1UTERldmljZT4gbV9kZXZpY2UgeyBuaWwgfTsKKyAg
ICBpZDxNVExEZXZpY2U+IG1fZGV2aWNlIHsgbmlsIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCmluZGV4IDgxOTE1Mzk2ZjM4YWM0MzQxMGE2OTZh
ODAyZDUzZjUwZTlkNzQyOTUuLjgwMzEwNzJlZDFjMzYzZGZkZmI2N2IwNjM2ZGZkMzlmZTkzODZk
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KKysrIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQpAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViR1BVIHsKIAotQWRhcHRlcjo6QWRhcHRlcihpZCA8TVRMRGV2aWNlPiBkZXZpY2UpCitB
ZGFwdGVyOjpBZGFwdGVyKGlkPE1UTERldmljZT4gZGV2aWNlKQogICAgIDogbV9kZXZpY2UoZGV2
aWNlKQogewogfQpAQCAtNzEsNyArNzEsNyBAQCBib29sIEFkYXB0ZXI6Omhhc0ZlYXR1cmUoV0dQ
VUZlYXR1cmVOYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgZGV2aWNl
TWVldHNSZXF1aXJlZExpbWl0cyhpZCA8TVRMRGV2aWNlPiwgY29uc3QgV0dQVVJlcXVpcmVkTGlt
aXRzJiByZXF1aXJlZExpbWl0cykKK3N0YXRpYyBib29sIGRldmljZU1lZXRzUmVxdWlyZWRMaW1p
dHMoaWQ8TVRMRGV2aWNlPiwgY29uc3QgV0dQVVJlcXVpcmVkTGltaXRzJiByZXF1aXJlZExpbWl0
cykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiAgICAgcmV0dXJuICFyZXF1aXJl
ZExpbWl0cy5uZXh0SW5DaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQmlu
ZEdyb3VwLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAuaAppbmRleCA4MmI2OGQ1
M2M5MzNhMTE5NDMwOWZkM2U2NjlhMTQ2M2VkOWE2NTA3Li4wNTc0YTJlMWZlYzJlODA5ZDE4MzNh
Yjg0NjliMTM2MmFiN2UwYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5k
R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAuaApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIEJpbmRHcm91cCA6IHB1YmxpYyBSZWZD
b3VudGVkPEJpbmRHcm91cD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8QmluZEdyb3VwPiBjcmVhdGUoaWQgPE1UTEJ1ZmZlcj4gdmVydGV4
QXJndW1lbnRCdWZmZXIsIGlkIDxNVExCdWZmZXI+IGZyYWdtZW50QXJndW1lbnRCdWZmZXIsIGlk
IDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlcikKKyAgICBzdGF0aWMgUmVmPEJpbmRH
cm91cD4gY3JlYXRlKGlkPE1UTEJ1ZmZlcj4gdmVydGV4QXJndW1lbnRCdWZmZXIsIGlkPE1UTEJ1
ZmZlcj4gZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciwgaWQ8TVRMQnVmZmVyPiBjb21wdXRlQXJndW1l
bnRCdWZmZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaW5kR3JvdXAo
dmVydGV4QXJndW1lbnRCdWZmZXIsIGZyYWdtZW50QXJndW1lbnRCdWZmZXIsIGNvbXB1dGVBcmd1
bWVudEJ1ZmZlcikpOwogICAgIH0KQEAgLTQzLDE2ICs0MywxNiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAgIGlkIDxNVExCdWZmZXI+IHZlcnRleEFy
Z3VtZW50QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhBcmd1bWVudEJ1ZmZlcjsgfQot
ICAgIGlkIDxNVExCdWZmZXI+IGZyYWdtZW50QXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX2ZyYWdtZW50QXJndW1lbnRCdWZmZXI7IH0KLSAgICBpZCA8TVRMQnVmZmVyPiBjb21wdXRl
QXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmd1bWVudEJ1ZmZlcjsg
fQorICAgIGlkPE1UTEJ1ZmZlcj4gdmVydGV4QXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3ZlcnRleEFyZ3VtZW50QnVmZmVyOyB9CisgICAgaWQ8TVRMQnVmZmVyPiBmcmFnbWVudEFy
Z3VtZW50QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50QnVmZmVyOyB9
CisgICAgaWQ8TVRMQnVmZmVyPiBjb21wdXRlQXJndW1lbnRCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX2NvbXB1dGVBcmd1bWVudEJ1ZmZlcjsgfQogCiBwcml2YXRlOgotICAgIEJpbmRHcm91cChp
ZCA8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgaWQgPE1UTEJ1ZmZlcj4gZnJhZ21l
bnRBcmd1bWVudEJ1ZmZlciwgaWQgPE1UTEJ1ZmZlcj4gY29tcHV0ZUFyZ3VtZW50QnVmZmVyKTsK
KyAgICBCaW5kR3JvdXAoaWQ8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgaWQ8TVRM
QnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBpZDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1
bWVudEJ1ZmZlcik7CiAKLSAgICBpZCA8TVRMQnVmZmVyPiBtX3ZlcnRleEFyZ3VtZW50QnVmZmVy
IHsgbmlsIH07Ci0gICAgaWQgPE1UTEJ1ZmZlcj4gbV9mcmFnbWVudEFyZ3VtZW50QnVmZmVyIHsg
bmlsIH07Ci0gICAgaWQgPE1UTEJ1ZmZlcj4gbV9jb21wdXRlQXJndW1lbnRCdWZmZXIgeyBuaWwg
fTsKKyAgICBpZDxNVExCdWZmZXI+IG1fdmVydGV4QXJndW1lbnRCdWZmZXIgeyBuaWwgfTsKKyAg
ICBpZDxNVExCdWZmZXI+IG1fZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciB7IG5pbCB9OworICAgIGlk
PE1UTEJ1ZmZlcj4gbV9jb21wdXRlQXJndW1lbnRCdWZmZXIgeyBuaWwgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdy
b3VwLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdyb3VwLm1tCmluZGV4IDRjNDg4NmVh
NzBlZTg2YjJkMjMwZjU3MmU3YjUwMzdhZTMzYWIwYWIuLjg4Y2U3ZjYwZDJjMTJkZjg5NDY3NGFk
YzlmZTFmMjAwNWMzNGQxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRH
cm91cC5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3JvdXAubW0KQEAgLTU4LDkg
KzU4LDkgQEAgUmVmUHRyPEJpbmRHcm91cD4gRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAoY29uc3Qg
V0dQVUJpbmRHcm91cERlc2NyaXB0b3IqIGRlc2NyaXAKIAogICAgIC8vIEZJWE1FOiBEb24ndCBh
bGxvY2F0ZSAzIG5ldyBidWZmZXJzIGZvciBldmVyeSBiaW5kIGdyb3VwLgogICAgIC8vIEluIGZh
Y3QsIGRvbid0IGV2ZW4gYWxsb2NhdGUgYSBzaW5nbGUgbmV3IGJ1ZmZlciBmb3IgZXZlcnkgYmlu
ZCBncm91cC4KLSAgICBpZCA8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciA9IFttX2Rl
dmljZSBuZXdCdWZmZXJXaXRoTGVuZ3RoOmJpbmRHcm91cExheW91dC5lbmNvZGVkTGVuZ3RoKCkg
b3B0aW9uczpNVExSZXNvdXJjZVN0b3JhZ2VNb2RlU2hhcmVkXTsKLSAgICBpZCA8TVRMQnVmZmVy
PiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyID0gW21fZGV2aWNlIG5ld0J1ZmZlcldpdGhMZW5ndGg6
YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5ndGgoKSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFn
ZU1vZGVTaGFyZWRdOwotICAgIGlkIDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlciA9
IFttX2RldmljZSBuZXdCdWZmZXJXaXRoTGVuZ3RoOmJpbmRHcm91cExheW91dC5lbmNvZGVkTGVu
Z3RoKCkgb3B0aW9uczpNVExSZXNvdXJjZVN0b3JhZ2VNb2RlU2hhcmVkXTsKKyAgICBpZDxNVExC
dWZmZXI+IHZlcnRleEFyZ3VtZW50QnVmZmVyID0gW21fZGV2aWNlIG5ld0J1ZmZlcldpdGhMZW5n
dGg6YmluZEdyb3VwTGF5b3V0LmVuY29kZWRMZW5ndGgoKSBvcHRpb25zOk1UTFJlc291cmNlU3Rv
cmFnZU1vZGVTaGFyZWRdOworICAgIGlkPE1UTEJ1ZmZlcj4gZnJhZ21lbnRBcmd1bWVudEJ1ZmZl
ciA9IFttX2RldmljZSBuZXdCdWZmZXJXaXRoTGVuZ3RoOmJpbmRHcm91cExheW91dC5lbmNvZGVk
TGVuZ3RoKCkgb3B0aW9uczpNVExSZXNvdXJjZVN0b3JhZ2VNb2RlU2hhcmVkXTsKKyAgICBpZDxN
VExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlciA9IFttX2RldmljZSBuZXdCdWZmZXJXaXRo
TGVuZ3RoOmJpbmRHcm91cExheW91dC5lbmNvZGVkTGVuZ3RoKCkgb3B0aW9uczpNVExSZXNvdXJj
ZVN0b3JhZ2VNb2RlU2hhcmVkXTsKICAgICBpZiAoIXZlcnRleEFyZ3VtZW50QnVmZmVyIHx8ICFm
cmFnbWVudEFyZ3VtZW50QnVmZmVyIHx8ICFjb21wdXRlQXJndW1lbnRCdWZmZXIpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCkBAIC02OSw5ICs2OSw5IEBAIFJlZlB0cjxCaW5kR3JvdXA+IERl
dmljZTo6Y3JlYXRlQmluZEdyb3VwKGNvbnN0IFdHUFVCaW5kR3JvdXBEZXNjcmlwdG9yKiBkZXNj
cmlwCiAgICAgZnJhZ21lbnRBcmd1bWVudEJ1ZmZlci5sYWJlbCA9IGxhYmVsOwogICAgIGNvbXB1
dGVBcmd1bWVudEJ1ZmZlci5sYWJlbCA9IGxhYmVsOwogCi0gICAgaWQgPE1UTEFyZ3VtZW50RW5j
b2Rlcj4gdmVydGV4QXJndW1lbnRFbmNvZGVyID0gYmluZEdyb3VwTGF5b3V0LnZlcnRleEFyZ3Vt
ZW50RW5jb2RlcigpOwotICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1l
bnRFbmNvZGVyID0gYmluZEdyb3VwTGF5b3V0LmZyYWdtZW50QXJndW1lbnRFbmNvZGVyKCk7Ci0g
ICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2RlciA9IGJpbmRH
cm91cExheW91dC5jb21wdXRlQXJndW1lbnRFbmNvZGVyKCk7CisgICAgaWQ8TVRMQXJndW1lbnRF
bmNvZGVyPiB2ZXJ0ZXhBcmd1bWVudEVuY29kZXIgPSBiaW5kR3JvdXBMYXlvdXQudmVydGV4QXJn
dW1lbnRFbmNvZGVyKCk7CisgICAgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFnbWVudEFyZ3Vt
ZW50RW5jb2RlciA9IGJpbmRHcm91cExheW91dC5mcmFnbWVudEFyZ3VtZW50RW5jb2RlcigpOwor
ICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2RlciA9IGJpbmRH
cm91cExheW91dC5jb21wdXRlQXJndW1lbnRFbmNvZGVyKCk7CiAgICAgW3ZlcnRleEFyZ3VtZW50
RW5jb2RlciBzZXRBcmd1bWVudEJ1ZmZlcjp2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciBvZmZzZXQ6MF07
CiAgICAgW2ZyYWdtZW50QXJndW1lbnRFbmNvZGVyIHNldEFyZ3VtZW50QnVmZmVyOmZyYWdtZW50
QXJndW1lbnRCdWZmZXIgb2Zmc2V0OjBdOwogICAgIFtjb21wdXRlQXJndW1lbnRFbmNvZGVyIHNl
dEFyZ3VtZW50QnVmZmVyOmNvbXB1dGVBcmd1bWVudEJ1ZmZlciBvZmZzZXQ6MF07CkBAIC04OSwx
OCArODksMTggQEAgUmVmUHRyPEJpbmRHcm91cD4gRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXAoY29u
c3QgV0dQVUJpbmRHcm91cERlc2NyaXB0b3IqIGRlc2NyaXAKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgICAgIGlmIChidWZmZXJJc1ByZXNlbnQpIHsKLSAgICAgICAgICAgIGlk
IDxNVExCdWZmZXI+IGJ1ZmZlciA9IGVudHJ5LmJ1ZmZlci0+YnVmZmVyLT5idWZmZXIoKTsKKyAg
ICAgICAgICAgIGlkPE1UTEJ1ZmZlcj4gYnVmZmVyID0gZW50cnkuYnVmZmVyLT5idWZmZXItPmJ1
ZmZlcigpOwogICAgICAgICAgICAgLy8gRklYTUU6IFVzZSBjaGVja2VkIGNhc3RzLgogICAgICAg
ICAgICAgW3ZlcnRleEFyZ3VtZW50RW5jb2RlciBzZXRCdWZmZXI6YnVmZmVyIG9mZnNldDpzdGF0
aWNfY2FzdDxOU1VJbnRlZ2VyPihlbnRyeS5vZmZzZXQpIGF0SW5kZXg6ZW50cnkuYmluZGluZ107
CiAgICAgICAgICAgICBbZnJhZ21lbnRBcmd1bWVudEVuY29kZXIgc2V0QnVmZmVyOmJ1ZmZlciBv
ZmZzZXQ6c3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZW50cnkub2Zmc2V0KSBhdEluZGV4OmVudHJ5
LmJpbmRpbmddOwogICAgICAgICAgICAgW2NvbXB1dGVBcmd1bWVudEVuY29kZXIgc2V0QnVmZmVy
OmJ1ZmZlciBvZmZzZXQ6c3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZW50cnkub2Zmc2V0KSBhdElu
ZGV4OmVudHJ5LmJpbmRpbmddOwogICAgICAgICB9IGVsc2UgaWYgKHNhbXBsZXJJc1ByZXNlbnQp
IHsKLSAgICAgICAgICAgIGlkIDxNVExTYW1wbGVyU3RhdGU+IHNhbXBsZXIgPSBlbnRyeS5zYW1w
bGVyLT5zYW1wbGVyLT5zYW1wbGVyU3RhdGUoKTsKKyAgICAgICAgICAgIGlkPE1UTFNhbXBsZXJT
dGF0ZT4gc2FtcGxlciA9IGVudHJ5LnNhbXBsZXItPnNhbXBsZXItPnNhbXBsZXJTdGF0ZSgpOwog
ICAgICAgICAgICAgW3ZlcnRleEFyZ3VtZW50RW5jb2RlciBzZXRTYW1wbGVyU3RhdGU6c2FtcGxl
ciBhdEluZGV4OmVudHJ5LmJpbmRpbmddOwogICAgICAgICAgICAgW2ZyYWdtZW50QXJndW1lbnRF
bmNvZGVyIHNldFNhbXBsZXJTdGF0ZTpzYW1wbGVyIGF0SW5kZXg6ZW50cnkuYmluZGluZ107CiAg
ICAgICAgICAgICBbY29tcHV0ZUFyZ3VtZW50RW5jb2RlciBzZXRTYW1wbGVyU3RhdGU6c2FtcGxl
ciBhdEluZGV4OmVudHJ5LmJpbmRpbmddOwogICAgICAgICB9IGVsc2UgaWYgKHRleHR1cmVWaWV3
SXNQcmVzZW50KSB7Ci0gICAgICAgICAgICBpZCA8TVRMVGV4dHVyZT4gdGV4dHVyZSA9IGVudHJ5
LnRleHR1cmVWaWV3LT50ZXh0dXJlVmlldy0+dGV4dHVyZSgpOworICAgICAgICAgICAgaWQ8TVRM
VGV4dHVyZT4gdGV4dHVyZSA9IGVudHJ5LnRleHR1cmVWaWV3LT50ZXh0dXJlVmlldy0+dGV4dHVy
ZSgpOwogICAgICAgICAgICAgW3ZlcnRleEFyZ3VtZW50RW5jb2RlciBzZXRUZXh0dXJlOnRleHR1
cmUgYXRJbmRleDplbnRyeS5iaW5kaW5nXTsKICAgICAgICAgICAgIFtmcmFnbWVudEFyZ3VtZW50
RW5jb2RlciBzZXRUZXh0dXJlOnRleHR1cmUgYXRJbmRleDplbnRyeS5iaW5kaW5nXTsKICAgICAg
ICAgICAgIFtjb21wdXRlQXJndW1lbnRFbmNvZGVyIHNldFRleHR1cmU6dGV4dHVyZSBhdEluZGV4
OmVudHJ5LmJpbmRpbmddOwpAQCAtMTEzLDcgKzExMyw3IEBAIFJlZlB0cjxCaW5kR3JvdXA+IERl
dmljZTo6Y3JlYXRlQmluZEdyb3VwKGNvbnN0IFdHUFVCaW5kR3JvdXBEZXNjcmlwdG9yKiBkZXNj
cmlwCiAgICAgcmV0dXJuIEJpbmRHcm91cDo6Y3JlYXRlKHZlcnRleEFyZ3VtZW50QnVmZmVyLCBm
cmFnbWVudEFyZ3VtZW50QnVmZmVyLCBjb21wdXRlQXJndW1lbnRCdWZmZXIpOwogfQogCi1CaW5k
R3JvdXA6OkJpbmRHcm91cChpZCA8TVRMQnVmZmVyPiB2ZXJ0ZXhBcmd1bWVudEJ1ZmZlciwgaWQg
PE1UTEJ1ZmZlcj4gZnJhZ21lbnRBcmd1bWVudEJ1ZmZlciwgaWQgPE1UTEJ1ZmZlcj4gY29tcHV0
ZUFyZ3VtZW50QnVmZmVyKQorQmluZEdyb3VwOjpCaW5kR3JvdXAoaWQ8TVRMQnVmZmVyPiB2ZXJ0
ZXhBcmd1bWVudEJ1ZmZlciwgaWQ8TVRMQnVmZmVyPiBmcmFnbWVudEFyZ3VtZW50QnVmZmVyLCBp
ZDxNVExCdWZmZXI+IGNvbXB1dGVBcmd1bWVudEJ1ZmZlcikKICAgICA6IG1fdmVydGV4QXJndW1l
bnRCdWZmZXIodmVydGV4QXJndW1lbnRCdWZmZXIpCiAgICAgLCBtX2ZyYWdtZW50QXJndW1lbnRC
dWZmZXIoZnJhZ21lbnRBcmd1bWVudEJ1ZmZlcikKICAgICAsIG1fY29tcHV0ZUFyZ3VtZW50QnVm
ZmVyKGNvbXB1dGVBcmd1bWVudEJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0JpbmRHcm91cExheW91dC5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdyb3VwTGF5
b3V0LmgKaW5kZXggMmE5Yjc0YjZmNmFhZDk4ZDc0YzQ4OTBmYjgwNmU2NDlmZjdhZjc3Yi4uMTA0
ZWJlYTI5ODI2ZTUyYWJmN2Q4NjcwN2UxMDUwMjZmN2YzMTZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkdQVS9XZWJHUFUvQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvQmluZEdyb3VwTGF5b3V0LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkdQVSB7
CiBjbGFzcyBCaW5kR3JvdXBMYXlvdXQgOiBwdWJsaWMgUmVmQ291bnRlZDxCaW5kR3JvdXBMYXlv
dXQ+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEJpbmRHcm91cExheW91dD4gY3JlYXRlKGlkIDxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRl
eEFyZ3VtZW50RW5jb2RlciwgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnRBcmd1bWVu
dEVuY29kZXIsIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIp
CisgICAgc3RhdGljIFJlZjxCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShpZDxNVExBcmd1bWVudEVu
Y29kZXI+IHZlcnRleEFyZ3VtZW50RW5jb2RlciwgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFn
bWVudEFyZ3VtZW50RW5jb2RlciwgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlQXJndW1l
bnRFbmNvZGVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmluZEdyb3Vw
TGF5b3V0KHZlcnRleEFyZ3VtZW50RW5jb2RlciwgZnJhZ21lbnRBcmd1bWVudEVuY29kZXIsIGNv
bXB1dGVBcmd1bWVudEVuY29kZXIpKTsKICAgICB9CkBAIC00NSwxNiArNDUsMTYgQEAgcHVibGlj
OgogCiAgICAgTlNVSW50ZWdlciBlbmNvZGVkTGVuZ3RoKCkgY29uc3Q7CiAKLSAgICBpZCA8TVRM
QXJndW1lbnRFbmNvZGVyPiB2ZXJ0ZXhBcmd1bWVudEVuY29kZXIoKSBjb25zdCB7IHJldHVybiBt
X3ZlcnRleEFyZ3VtZW50RW5jb2RlcjsgfQotICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGZy
YWdtZW50QXJndW1lbnRFbmNvZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3VtZW50
RW5jb2RlcjsgfQotICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVu
Y29kZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmd1bWVudEVuY29kZXI7IH0KKyAgICBp
ZDxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleEFyZ3VtZW50RW5jb2RlcigpIGNvbnN0IHsgcmV0
dXJuIG1fdmVydGV4QXJndW1lbnRFbmNvZGVyOyB9CisgICAgaWQ8TVRMQXJndW1lbnRFbmNvZGVy
PiBmcmFnbWVudEFyZ3VtZW50RW5jb2RlcigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRBcmd1
bWVudEVuY29kZXI7IH0KKyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVu
dEVuY29kZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmd1bWVudEVuY29kZXI7IH0KIAog
cHJpdmF0ZToKLSAgICBCaW5kR3JvdXBMYXlvdXQoaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gdmVy
dGV4QXJndW1lbnRFbmNvZGVyLCBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFnbWVudEFyZ3Vt
ZW50RW5jb2RlciwgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gY29tcHV0ZUFyZ3VtZW50RW5jb2Rl
cik7CisgICAgQmluZEdyb3VwTGF5b3V0KGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gdmVydGV4QXJn
dW1lbnRFbmNvZGVyLCBpZDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1lbnRFbmNv
ZGVyLCBpZDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIpOwogCi0g
ICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gbV92ZXJ0ZXhBcmd1bWVudEVuY29kZXIgeyBuaWwg
fTsKLSAgICBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiBtX2ZyYWdtZW50QXJndW1lbnRFbmNvZGVy
IHsgbmlsIH07Ci0gICAgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gbV9jb21wdXRlQXJndW1lbnRF
bmNvZGVyIHsgbmlsIH07CisgICAgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBtX3ZlcnRleEFyZ3Vt
ZW50RW5jb2RlciB7IG5pbCB9OworICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gbV9mcmFnbWVu
dEFyZ3VtZW50RW5jb2RlciB7IG5pbCB9OworICAgIGlkPE1UTEFyZ3VtZW50RW5jb2Rlcj4gbV9j
b21wdXRlQXJndW1lbnRFbmNvZGVyIHsgbmlsIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cExheW91dC5tbSBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cExheW91dC5tbQppbmRleCBhYzMzODViMTcx
NGM5YjRlYThmYzRlYjRiMjhkMjA5NDM2N2RkYmU0Li4yODg3Njk1ZmFjOTcxZTAzN2NiMzE0MmNj
NzY5NDM2MGM3MzY3OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CaW5kR3Jv
dXBMYXlvdXQubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQmluZEdyb3VwTGF5b3V0Lm1t
CkBAIC0xOTksOSArMTk5LDkgQEAgUmVmUHRyPEJpbmRHcm91cExheW91dD4gRGV2aWNlOjpjcmVh
dGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgV0dQVUJpbmRHcm91cExheW91dEQKICAgICAgICAgW2Nv
bXB1dGVBcmd1bWVudHMgYWRkT2JqZWN0OmNvbXB1dGVEZXNjcmlwdG9yXTsKICAgICB9CiAKLSAg
ICBpZCA8TVRMQXJndW1lbnRFbmNvZGVyPiB2ZXJ0ZXhBcmd1bWVudEVuY29kZXIgPSBbbV9kZXZp
Y2UgbmV3QXJndW1lbnRFbmNvZGVyV2l0aEFyZ3VtZW50czp2ZXJ0ZXhBcmd1bWVudHNdOwotICAg
IGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGZyYWdtZW50QXJndW1lbnRFbmNvZGVyID0gW21fZGV2
aWNlIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhBcmd1bWVudHM6ZnJhZ21lbnRBcmd1bWVudHNdOwot
ICAgIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIgPSBbbV9k
ZXZpY2UgbmV3QXJndW1lbnRFbmNvZGVyV2l0aEFyZ3VtZW50czpjb21wdXRlQXJndW1lbnRzXTsK
KyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleEFyZ3VtZW50RW5jb2RlciA9IFttX2Rl
dmljZSBuZXdBcmd1bWVudEVuY29kZXJXaXRoQXJndW1lbnRzOnZlcnRleEFyZ3VtZW50c107Cisg
ICAgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFnbWVudEFyZ3VtZW50RW5jb2RlciA9IFttX2Rl
dmljZSBuZXdBcmd1bWVudEVuY29kZXJXaXRoQXJndW1lbnRzOmZyYWdtZW50QXJndW1lbnRzXTsK
KyAgICBpZDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIgPSBbbV9k
ZXZpY2UgbmV3QXJndW1lbnRFbmNvZGVyV2l0aEFyZ3VtZW50czpjb21wdXRlQXJndW1lbnRzXTsK
ICAgICBpZiAoIXZlcnRleEFyZ3VtZW50RW5jb2RlciB8fCAhZnJhZ21lbnRBcmd1bWVudEVuY29k
ZXIgfHwgIWNvbXB1dGVBcmd1bWVudEVuY29kZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CkBAIC0yMTMsNyArMjEzLDcgQEAgUmVmUHRyPEJpbmRHcm91cExheW91dD4gRGV2aWNlOjpjcmVh
dGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgV0dQVUJpbmRHcm91cExheW91dEQKICAgICByZXR1cm4g
QmluZEdyb3VwTGF5b3V0OjpjcmVhdGUodmVydGV4QXJndW1lbnRFbmNvZGVyLCBmcmFnbWVudEFy
Z3VtZW50RW5jb2RlciwgY29tcHV0ZUFyZ3VtZW50RW5jb2Rlcik7CiB9CiAKLUJpbmRHcm91cExh
eW91dDo6QmluZEdyb3VwTGF5b3V0KGlkIDxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleEFyZ3Vt
ZW50RW5jb2RlciwgaWQgPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnRBcmd1bWVudEVuY29k
ZXIsIGlkIDxNVExBcmd1bWVudEVuY29kZXI+IGNvbXB1dGVBcmd1bWVudEVuY29kZXIpCitCaW5k
R3JvdXBMYXlvdXQ6OkJpbmRHcm91cExheW91dChpZDxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRl
eEFyZ3VtZW50RW5jb2RlciwgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBmcmFnbWVudEFyZ3VtZW50
RW5jb2RlciwgaWQ8TVRMQXJndW1lbnRFbmNvZGVyPiBjb21wdXRlQXJndW1lbnRFbmNvZGVyKQog
ICAgIDogbV92ZXJ0ZXhBcmd1bWVudEVuY29kZXIodmVydGV4QXJndW1lbnRFbmNvZGVyKQogICAg
ICwgbV9mcmFnbWVudEFyZ3VtZW50RW5jb2RlcihmcmFnbWVudEFyZ3VtZW50RW5jb2RlcikKICAg
ICAsIG1fY29tcHV0ZUFyZ3VtZW50RW5jb2Rlcihjb21wdXRlQXJndW1lbnRFbmNvZGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLmggYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9CdWZmZXIuaAppbmRleCBhMzVmYjZkZThjZmIwNGFlY2Q0ZDgxN2Y2ZmU2NWM0YTNhODU5
ODlhLi45NTA2NjMxYmU5YTM2ZTdiZGIzYTdkYWUwNzc4MWVmODg5ODY1NDA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9CdWZmZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIEJ1
ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEJ1ZmZlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QnVmZmVyPiBjcmVhdGUoaWQgPE1UTEJ1
ZmZlcj4gYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8QnVmZmVyPiBjcmVhdGUoaWQ8TVRMQnVmZmVy
PiBidWZmZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCdWZmZXIoYnVm
ZmVyKSk7CiAgICAgfQpAQCAtNDksMTIgKzQ5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHVubWFw
KCk7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKLSAgICBpZCA8TVRMQnVmZmVy
PiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcjsgfQorICAgIGlkPE1UTEJ1ZmZlcj4g
YnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXI7IH0KIAogcHJpdmF0ZToKLSAgICBCdWZm
ZXIoaWQgPE1UTEJ1ZmZlcj4pOworICAgIEJ1ZmZlcihpZDxNVExCdWZmZXI+KTsKIAotICAgIGlk
IDxNVExCdWZmZXI+IG1fYnVmZmVyIHsgbmlsIH07CisgICAgaWQ8TVRMQnVmZmVyPiBtX2J1ZmZl
ciB7IG5pbCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIu
bW0KaW5kZXggMTJkMzFkN2UzZGFmMTkzYTcxNzUxNzA2NjQwN2M5MDQxYmY0MDExNS4uODYyMzVi
NTdiZmNmMzM3OGMxN2ZjZTJjOGU5ODdmOGNjZDU0ZWY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvQnVmZmVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5t
bQpAQCAtMzYsNyArMzYsNyBAQCBSZWZQdHI8QnVmZmVyPiBEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihj
b25zdCBXR1BVQnVmZmVyRGVzY3JpcHRvciogZGVzY3JpcHRvcikKICAgICByZXR1cm4gQnVmZmVy
OjpjcmVhdGUobmlsKTsKIH0KIAotQnVmZmVyOjpCdWZmZXIoaWQgPE1UTEJ1ZmZlcj4gYnVmZmVy
KQorQnVmZmVyOjpCdWZmZXIoaWQ8TVRMQnVmZmVyPiBidWZmZXIpCiAgICAgOiBtX2J1ZmZlcihi
dWZmZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kQnVmZmVyLmgKaW5kZXggNmZkODVm
MGM1NjRlYjJmOWVlMGM4MDA5ZTc4NjM5ODNhMzU2Y2ZlZS4uOTIwODdkM2I2ZTViYjJmMzEyNGFj
NzNhMDU5N2Q4MmY0ZmJiNzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
bWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRCdWZmZXIuaApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIENvbW1hbmRCdWZmZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDb21tYW5kQnVmZmVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDb21tYW5kQnVmZmVyPiBjcmVhdGUo
aWQgPE1UTENvbW1hbmRCdWZmZXI+IGNvbW1hbmRCdWZmZXIpCisgICAgc3RhdGljIFJlZjxDb21t
YW5kQnVmZmVyPiBjcmVhdGUoaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlcikKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbW1hbmRCdWZmZXIoY29tbWFuZEJ1
ZmZlcikpOwogICAgIH0KQEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IGNoYXIqKTsKIAotICAgIGlkIDxNVExDb21tYW5kQnVmZmVyPiBjb21tYW5k
QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kQnVmZmVyOyB9CisgICAgaWQ8TVRMQ29t
bWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWFuZEJ1ZmZl
cjsgfQogCiBwcml2YXRlOgotICAgIENvbW1hbmRCdWZmZXIoaWQgPE1UTENvbW1hbmRCdWZmZXI+
KTsKKyAgICBDb21tYW5kQnVmZmVyKGlkPE1UTENvbW1hbmRCdWZmZXI+KTsKIAotICAgIGlkIDxN
VExDb21tYW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXIgeyBuaWwgfTsKKyAgICBpZDxNVExDb21t
YW5kQnVmZmVyPiBtX2NvbW1hbmRCdWZmZXIgeyBuaWwgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEJ1ZmZlci5t
bSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRCdWZmZXIubW0KaW5kZXggMTlmNTExNjc3
MjQ2ODdhN2RkZmNlNjgwZjZkNmRmNDJlNmQyYTFmYi4uMDgxZGUwYmZjYzlmMDkxN2NlNjUyMGYz
MjI1YTY4YjZjMjA1ZWJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFu
ZEJ1ZmZlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kQnVmZmVyLm1tCkBA
IC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJHUFUgewogCi1Db21tYW5kQnVmZmVyOjpD
b21tYW5kQnVmZmVyKGlkIDxNVExDb21tYW5kQnVmZmVyPiBjb21tYW5kQnVmZmVyKQorQ29tbWFu
ZEJ1ZmZlcjo6Q29tbWFuZEJ1ZmZlcihpZDxNVExDb21tYW5kQnVmZmVyPiBjb21tYW5kQnVmZmVy
KQogICAgIDogbV9jb21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXIpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQ29tbWFuZEVuY29kZXIuaAppbmRleCA3MWJmZmY0ZDk2NjhmNjI1ZDczNzMyNDRiOTIz
OTllMWIyNGQ5NjUzLi5kMjYxZWViNDBjMDhhMTZlNDFiMDNlZDUxZDY4ZmIxYjg3NWQwMWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xh
c3MgUmVuZGVyUGFzc0VuY29kZXI7CiBjbGFzcyBDb21tYW5kRW5jb2RlciA6IHB1YmxpYyBSZWZD
b3VudGVkPENvbW1hbmRFbmNvZGVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDb21tYW5kRW5jb2Rlcj4gY3JlYXRlKGlkIDxNVExDb21t
YW5kQnVmZmVyPiBjb21tYW5kQnVmZmVyKQorICAgIHN0YXRpYyBSZWY8Q29tbWFuZEVuY29kZXI+
IGNyZWF0ZShpZDxNVExDb21tYW5kQnVmZmVyPiBjb21tYW5kQnVmZmVyKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tbWFuZEVuY29kZXIoY29tbWFuZEJ1ZmZlcikpOwog
ICAgIH0KQEAgLTY0LDkgKzY0LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwoY29uc3Qg
Y2hhciopOwogCiBwcml2YXRlOgotICAgIENvbW1hbmRFbmNvZGVyKGlkIDxNVExDb21tYW5kQnVm
ZmVyPik7CisgICAgQ29tbWFuZEVuY29kZXIoaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4pOwogCi0gICAg
aWQgPE1UTENvbW1hbmRCdWZmZXI+IG1fY29tbWFuZEJ1ZmZlciB7IG5pbCB9OworICAgIGlkPE1U
TENvbW1hbmRCdWZmZXI+IG1fY29tbWFuZEJ1ZmZlciB7IG5pbCB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5j
b2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCmluZGV4IDY5
YWY4MGI1M2U4ZWIwZWY5OWNjYjBjYTc0YzI0NDU2NTZjNDEyODMuLmY4YjAzY2E1MmU4ZjBmOWRi
ZmQ5NTFmNGM4NTZmNTY0OTQ2Zjg5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0NvbW1hbmRFbmNvZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNv
ZGVyLm1tCkBAIC00MSw3ICs0MSw3IEBAIFJlZlB0cjxDb21tYW5kRW5jb2Rlcj4gRGV2aWNlOjpj
cmVhdGVDb21tYW5kRW5jb2Rlcihjb25zdCBXR1BVQ29tbWFuZEVuY29kZXJEZXNjCiAgICAgcmV0
dXJuIENvbW1hbmRFbmNvZGVyOjpjcmVhdGUobmlsKTsKIH0KIAotQ29tbWFuZEVuY29kZXI6OkNv
bW1hbmRFbmNvZGVyKGlkIDxNVExDb21tYW5kQnVmZmVyPiBjb21tYW5kQnVmZmVyKQorQ29tbWFu
ZEVuY29kZXI6OkNvbW1hbmRFbmNvZGVyKGlkPE1UTENvbW1hbmRCdWZmZXI+IGNvbW1hbmRCdWZm
ZXIpCiAgICAgOiBtX2NvbW1hbmRCdWZmZXIoY29tbWFuZEJ1ZmZlcikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLmgKaW5kZXggZjVhOTM5YjIyMjk1OWFiZTkx
ZWZkN2Y2ZTA1ZTQyZGM0N2VkMTg4ZC4uNDkwY2Y4YTliNGE2OTViNzRjZTI3Y2I0NzhmN2U5OGU4
NDZmMGY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNv
ZGVyLmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgUXVlcnlTZXQ7CiBjbGFzcyBDb21wdXRlUGFzc0VuY29kZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDb21wdXRlUGFzc0VuY29kZXI+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENvbXB1dGVQYXNzRW5jb2Rl
cj4gY3JlYXRlKGlkIDxNVExDb21wdXRlQ29tbWFuZEVuY29kZXI+IGNvbXB1dGVDb21tYW5kRW5j
b2RlcikKKyAgICBzdGF0aWMgUmVmPENvbXB1dGVQYXNzRW5jb2Rlcj4gY3JlYXRlKGlkPE1UTENv
bXB1dGVDb21tYW5kRW5jb2Rlcj4gY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tcHV0ZVBhc3NFbmNvZGVyKGNvbXB1dGVDb21tYW5k
RW5jb2RlcikpOwogICAgIH0KQEAgLTU5LDkgKzU5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
TGFiZWwoY29uc3QgY2hhciopOwogCiBwcml2YXRlOgotICAgIENvbXB1dGVQYXNzRW5jb2Rlcihp
ZCA8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPik7CisgICAgQ29tcHV0ZVBhc3NFbmNvZGVyKGlk
PE1UTENvbXB1dGVDb21tYW5kRW5jb2Rlcj4pOwogCi0gICAgaWQgPE1UTENvbXB1dGVDb21tYW5k
RW5jb2Rlcj4gbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgeyBuaWwgfTsKKyAgICBpZDxNVExDb21w
dXRlQ29tbWFuZEVuY29kZXI+IG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyIHsgbmlsIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0NvbXB1dGVQYXNzRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQYXNz
RW5jb2Rlci5tbQppbmRleCA0ZjQ3ZDAwOTVjNTEzNDE1NGE0NWZmNTZhODAxNDJmYjgwY2VkNDcy
Li4wMjQ1ZGY5MWY3YWJlNGRkODg5NjhlY2Q0MTNlYzJlMTI0N2EyNjA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGFzc0VuY29kZXIubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tcHV0ZVBhc3NFbmNvZGVyLm1tCkBAIC0zMyw3ICszMyw3IEBACiAKIG5h
bWVzcGFjZSBXZWJHUFUgewogCi1Db21wdXRlUGFzc0VuY29kZXI6OkNvbXB1dGVQYXNzRW5jb2Rl
cihpZCA8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjb21wdXRlQ29tbWFuZEVuY29kZXIpCitD
b21wdXRlUGFzc0VuY29kZXI6OkNvbXB1dGVQYXNzRW5jb2RlcihpZDxNVExDb21wdXRlQ29tbWFu
ZEVuY29kZXI+IGNvbXB1dGVDb21tYW5kRW5jb2RlcikKICAgICA6IG1fY29tcHV0ZUNvbW1hbmRF
bmNvZGVyKGNvbXB1dGVDb21tYW5kRW5jb2RlcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
cHV0ZVBpcGVsaW5lLmgKaW5kZXggNTUzOTRlMTlhMjhiZWNmYjk0NjU0NzUwYzZhZGYzMGQxYTc1
ZjQ2MS4uYTYyYTU3NmNkMzRiZjc0YTU1M2VkNTEyZTRjMGE3YmU1ODc4ZjM1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQmlu
ZEdyb3VwTGF5b3V0OwogY2xhc3MgQ29tcHV0ZVBpcGVsaW5lIDogcHVibGljIFJlZkNvdW50ZWQ8
Q29tcHV0ZVBpcGVsaW5lPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZShpZCA8TVRMQ29tcHV0ZVBp
cGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlKQorICAgIHN0YXRpYyBSZWY8Q29tcHV0
ZVBpcGVsaW5lPiBjcmVhdGUoaWQ8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBl
bGluZVN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tcHV0ZVBp
cGVsaW5lKGNvbXB1dGVQaXBlbGluZVN0YXRlKSk7CiAgICAgfQpAQCAtNDYsMTIgKzQ2LDEyIEBA
IHB1YmxpYzoKICAgICBSZWY8QmluZEdyb3VwTGF5b3V0PiBnZXRCaW5kR3JvdXBMYXlvdXQodWlu
dDMyX3QgZ3JvdXBJbmRleCk7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKLSAg
ICBpZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZTsgfQorICAgIGlkPE1UTENvbXB1dGVQ
aXBlbGluZVN0YXRlPiBjb21wdXRlUGlwZWxpbmVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cHV0ZVBpcGVsaW5lU3RhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBDb21wdXRlUGlwZWxpbmUoaWQg
PE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPik7CisgICAgQ29tcHV0ZVBpcGVsaW5lKGlkPE1UTENv
bXB1dGVQaXBlbGluZVN0YXRlPik7CiAKLSAgICBpZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+
IG1fY29tcHV0ZVBpcGVsaW5lU3RhdGUgeyBuaWwgfTsKKyAgICBpZDxNVExDb21wdXRlUGlwZWxp
bmVTdGF0ZT4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZSB7IG5pbCB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlw
ZWxpbmUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KaW5kZXgg
OTAwYjU3MzhjM2VkMWMwZjcwNjBkZjc0ZWEwNmExMWI5OTFkY2QyYy4uZTFiZmRlMzg3ZTk3YWQ4
OTZjMTAyMzU4MzE5N2E2YjI1Yjg5Y2EwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tcHV0ZVBpcGVsaW5lLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQ
aXBlbGluZS5tbQpAQCAtMzUsMTEgKzM1LDExIEBACiBuYW1lc3BhY2UgV2ViR1BVIHsKIAogc3Ry
dWN0IExpYnJhcnlDcmVhdGlvblJlc3VsdCB7Ci0gICAgaWQgPE1UTExpYnJhcnk+IGxpYnJhcnk7
CisgICAgaWQ8TVRMTGlicmFyeT4gbGlicmFyeTsKICAgICBXR1NMOjpSZWZsZWN0aW9uOjpFbnRy
eVBvaW50SW5mb3JtYXRpb24gZW50cnlQb2ludEluZm9ybWF0aW9uOyAvLyBGSVhNRTogVGhpcyBp
cyBiaWcuIERvbid0IGNvcHkgdGhpcyBhcm91bmQuCiB9OwogCi1zdGF0aWMgc3RkOjpvcHRpb25h
bDxMaWJyYXJ5Q3JlYXRpb25SZXN1bHQ+IGNyZWF0ZUxpYnJhcnkoaWQgPE1UTERldmljZT4gZGV2
aWNlLCBjb25zdCBTaGFkZXJNb2R1bGUmIHNoYWRlck1vZHVsZSwgY29uc3QgUGlwZWxpbmVMYXlv
dXQmIHBpcGVsaW5lTGF5b3V0LCBjb25zdCBTdHJpbmcmIGVudHJ5UG9pbnQsIE5TU3RyaW5nICps
YWJlbCkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPExpYnJhcnlDcmVhdGlvblJlc3VsdD4gY3JlYXRl
TGlicmFyeShpZDxNVExEZXZpY2U+IGRldmljZSwgY29uc3QgU2hhZGVyTW9kdWxlJiBzaGFkZXJN
b2R1bGUsIGNvbnN0IFBpcGVsaW5lTGF5b3V0JiBwaXBlbGluZUxheW91dCwgY29uc3QgU3RyaW5n
JiBlbnRyeVBvaW50LCBOU1N0cmluZyAqbGFiZWwpCiB7CiAgICAgaWYgKHNoYWRlck1vZHVsZS5s
aWJyYXJ5KCkpIHsKICAgICAgICAgaWYgKGNvbnN0IGF1dG8qIHBpcGVsaW5lTGF5b3V0SGludCA9
IHNoYWRlck1vZHVsZS5waXBlbGluZUxheW91dEhpbnQoZW50cnlQb2ludCkpIHsKQEAgLTEwNyw3
ICsxMDcsNyBAQCBzdGF0aWMgTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyAqY3JlYXRlQ29uc3Rh
bnRWYWx1ZXModWludDMyX3QgY29uc3RhbnRDb3VudCwgYwogICAgIHJldHVybiBjb25zdGFudFZh
bHVlczsKIH0KIAotc3RhdGljIGlkIDxNVExGdW5jdGlvbj4gY3JlYXRlRnVuY3Rpb24oaWQgPE1U
TExpYnJhcnk+IGxpYnJhcnksIGNvbnN0IFdHU0w6OlJlZmxlY3Rpb246OkVudHJ5UG9pbnRJbmZv
cm1hdGlvbiYgZW50cnlQb2ludEluZm9ybWF0aW9uLCBjb25zdCBXR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yJiBjb21wdXRlLCBOU1N0cmluZyAqbGFiZWwpCitzdGF0aWMgaWQ8TVRMRnVu
Y3Rpb24+IGNyZWF0ZUZ1bmN0aW9uKGlkPE1UTExpYnJhcnk+IGxpYnJhcnksIGNvbnN0IFdHU0w6
OlJlZmxlY3Rpb246OkVudHJ5UG9pbnRJbmZvcm1hdGlvbiYgZW50cnlQb2ludEluZm9ybWF0aW9u
LCBjb25zdCBXR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yJiBjb21wdXRlLCBOU1N0cmlu
ZyAqbGFiZWwpCiB7CiAgICAgYXV0byBmdW5jdGlvbkRlc2NyaXB0b3IgPSBbTVRMRnVuY3Rpb25E
ZXNjcmlwdG9yIG5ld107CiAgICAgZnVuY3Rpb25EZXNjcmlwdG9yLm5hbWUgPSBlbnRyeVBvaW50
SW5mb3JtYXRpb24ubWFuZ2xlZE5hbWU7CkBAIC0xMTgsMTQgKzExOCwxNCBAQCBzdGF0aWMgaWQg
PE1UTEZ1bmN0aW9uPiBjcmVhdGVGdW5jdGlvbihpZCA8TVRMTGlicmFyeT4gbGlicmFyeSwgY29u
c3QgV0dTTDo6UmVmbAogICAgICAgICBmdW5jdGlvbkRlc2NyaXB0b3IuY29uc3RhbnRWYWx1ZXMg
PSBjb25zdGFudFZhbHVlczsKICAgICB9CiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAg
aWQgPE1UTEZ1bmN0aW9uPiBmdW5jdGlvbiA9IFtsaWJyYXJ5IG5ld0Z1bmN0aW9uV2l0aERlc2Ny
aXB0b3I6ZnVuY3Rpb25EZXNjcmlwdG9yIGVycm9yOiZlcnJvcl07CisgICAgaWQ8TVRMRnVuY3Rp
b24+IGZ1bmN0aW9uID0gW2xpYnJhcnkgbmV3RnVuY3Rpb25XaXRoRGVzY3JpcHRvcjpmdW5jdGlv
bkRlc2NyaXB0b3IgZXJyb3I6JmVycm9yXTsKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIFdURkxv
Z0Fsd2F5cygiRnVuY3Rpb24gY3JlYXRpb24gZXJyb3I6ICVAIiwgZXJyb3IpOwogICAgIGZ1bmN0
aW9uLmxhYmVsID0gbGFiZWw7CiAgICAgcmV0dXJuIGZ1bmN0aW9uOwogfQogCi1zdGF0aWMgaWQg
PE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiBjcmVhdGVDb21wdXRlUGlwZWxpbmVTdGF0ZShpZCA8
TVRMRGV2aWNlPiBkZXZpY2UsIGlkIDxNVExGdW5jdGlvbj4gZnVuY3Rpb24sIGNvbnN0IFBpcGVs
aW5lTGF5b3V0JiBwaXBlbGluZUxheW91dCwgY29uc3QgV0dTTDo6UmVmbGVjdGlvbjo6Q29tcHV0
ZSYgY29tcHV0ZUluZm9ybWF0aW9uLCBOU1N0cmluZyAqbGFiZWwpCitzdGF0aWMgaWQ8TVRMQ29t
cHV0ZVBpcGVsaW5lU3RhdGU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZVN0YXRlKGlkPE1UTERldmlj
ZT4gZGV2aWNlLCBpZDxNVExGdW5jdGlvbj4gZnVuY3Rpb24sIGNvbnN0IFBpcGVsaW5lTGF5b3V0
JiBwaXBlbGluZUxheW91dCwgY29uc3QgV0dTTDo6UmVmbGVjdGlvbjo6Q29tcHV0ZSYgY29tcHV0
ZUluZm9ybWF0aW9uLCBOU1N0cmluZyAqbGFiZWwpCiB7CiAgICAgYXV0byBjb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yID0gW01UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgbmV3XTsKICAgICBj
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNvbXB1dGVGdW5jdGlvbiA9IGZ1bmN0aW9uOwpAQCAt
MTM3LDcgKzEzNyw3IEBAIHN0YXRpYyBpZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNyZWF0
ZUNvbXB1dGVQaXBlbGluZVN0YXRlKGlkIDxNVExEZXZpY2U+IGRlCiAgICAgY29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5sYWJlbCA9IGxhYmVsOwogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwog
ICAgIC8vIEZJWE1FOiBSdW4gdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIHRoaXMKLSAgICBp
ZCA8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNvbXB1dGVQaXBlbGluZVN0YXRlID0gW2Rldmlj
ZSBuZXdDb21wdXRlUGlwZWxpbmVTdGF0ZVdpdGhEZXNjcmlwdG9yOmNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3Igb3B0aW9uczpNVExQaXBlbGluZU9wdGlvbk5vbmUgcmVmbGVjdGlvbjpuaWwgZXJy
b3I6JmVycm9yXTsKKyAgICBpZDxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4gY29tcHV0ZVBpcGVs
aW5lU3RhdGUgPSBbZGV2aWNlIG5ld0NvbXB1dGVQaXBlbGluZVN0YXRlV2l0aERlc2NyaXB0b3I6
Y29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBvcHRpb25zOk1UTFBpcGVsaW5lT3B0aW9uTm9uZSBy
ZWZsZWN0aW9uOm5pbCBlcnJvcjomZXJyb3JdOwogICAgIGlmIChlcnJvcikKICAgICAgICAgV1RG
TG9nQWx3YXlzKCJQaXBlbGluZSBzdGF0ZSBjcmVhdGlvbiBlcnJvcjogJUAiLCBlcnJvcik7CiAg
ICAgcmV0dXJuIGNvbXB1dGVQaXBlbGluZVN0YXRlOwpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQg
RGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25zdCBXR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciogZGVzCiAgICAgVU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKIH0KIAotQ29t
cHV0ZVBpcGVsaW5lOjpDb21wdXRlUGlwZWxpbmUoaWQgPE1UTENvbXB1dGVQaXBlbGluZVN0YXRl
PiBjb21wdXRlUGlwZWxpbmVTdGF0ZSkKK0NvbXB1dGVQaXBlbGluZTo6Q29tcHV0ZVBpcGVsaW5l
KGlkPE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiBjb21wdXRlUGlwZWxpbmVTdGF0ZSkKICAgICA6
IG1fY29tcHV0ZVBpcGVsaW5lU3RhdGUoY29tcHV0ZVBpcGVsaW5lU3RhdGUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZpY2UuaCBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0RldmljZS5oCmluZGV4IDk3ZGI4OWZlZmEyZmY5NGY5YTEyYWM1MDAxYmViYzQxNmNjNDhl
YWMuLjkyZmY0OWU5ZDcyYjAxNTU1YTMzY2Q4MDk0OWRkYWE2NDQ2NzYwYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0RldmljZS5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFF1ZXVlOwogY2xhc3MgRGV2aWNlIDog
cHVibGljIFJlZkNvdW50ZWQ8RGV2aWNlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEZXZpY2U+IGNyZWF0ZShpZCA8TVRMRGV2aWNl
Pik7CisgICAgc3RhdGljIFJlZlB0cjxEZXZpY2U+IGNyZWF0ZShpZDxNVExEZXZpY2U+KTsKIAog
ICAgIH5EZXZpY2UoKTsKIApAQCAtODMsOSArODMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRM
YWJlbChjb25zdCBjaGFyKik7CiAKIHByaXZhdGU6Ci0gICAgRGV2aWNlKGlkIDxNVExEZXZpY2U+
LCBSZWY8UXVldWU+JiYpOworICAgIERldmljZShpZDxNVExEZXZpY2U+LCBSZWY8UXVldWU+JiYp
OwogCi0gICAgaWQgPE1UTERldmljZT4gbV9kZXZpY2UgeyBuaWwgfTsKKyAgICBpZDxNVExEZXZp
Y2U+IG1fZGV2aWNlIHsgbmlsIH07CiAgICAgUmVmPFF1ZXVlPiBtX2RlZmF1bHRRdWV1ZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5tbSBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0RldmljZS5tbQppbmRleCBmZDU1NzhkMDYxOGIwNjlhNGY5OTFkNWMxOWVh
YzMwY2U5YmQzZWFiLi41YjVjMGE0YTI0YzljOGRkOTgyNzVkZGUyNjU4MjJiNTUzYWNmNmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZpY2UubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvRGV2aWNlLm1tCkBAIC00NSw5ICs0NSw5IEBACiAKIG5hbWVzcGFjZSBXZWJH
UFUgewogCi1SZWZQdHI8RGV2aWNlPiBEZXZpY2U6OmNyZWF0ZShpZCA8TVRMRGV2aWNlPiBkZXZp
Y2UpCitSZWZQdHI8RGV2aWNlPiBEZXZpY2U6OmNyZWF0ZShpZDxNVExEZXZpY2U+IGRldmljZSkK
IHsKLSAgICBpZCA8TVRMQ29tbWFuZFF1ZXVlPiBjb21tYW5kUXVldWUgPSBbZGV2aWNlIG5ld0Nv
bW1hbmRRdWV1ZV07CisgICAgaWQ8TVRMQ29tbWFuZFF1ZXVlPiBjb21tYW5kUXVldWUgPSBbZGV2
aWNlIG5ld0NvbW1hbmRRdWV1ZV07CiAgICAgaWYgKCFjb21tYW5kUXVldWUpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGF1dG8gcXVldWUgPSBRdWV1ZTo6Y3JlYXRlKGNvbW1hbmRRdWV1
ZSk7CkBAIC01NSw3ICs1NSw3IEBAIFJlZlB0cjxEZXZpY2U+IERldmljZTo6Y3JlYXRlKGlkIDxN
VExEZXZpY2U+IGRldmljZSkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2UoZGV2aWNl
LCBXVEZNb3ZlKHF1ZXVlKSkpOwogfQogCi1EZXZpY2U6OkRldmljZShpZCA8TVRMRGV2aWNlPiBk
ZXZpY2UsIFJlZjxRdWV1ZT4mJiBxdWV1ZSkKK0RldmljZTo6RGV2aWNlKGlkPE1UTERldmljZT4g
ZGV2aWNlLCBSZWY8UXVldWU+JiYgcXVldWUpCiAgICAgOiBtX2RldmljZShkZXZpY2UpCiAgICAg
LCBtX2RlZmF1bHRRdWV1ZShXVEZNb3ZlKHF1ZXVlKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0luc3RhbmNlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvSW5zdGFuY2Uu
bW0KaW5kZXggYmIzNWYwYmYxMGYwODNkNGNkZTBhMzg5NjE5NzQ4YTk0M2M5ZTYxYi4uZmFiMzFi
MThkZmY3YTE1MWI2MGZjMDdjMGI3NmUwYjg3YTFlY2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvSW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvSW5zdGFu
Y2UubW0KQEAgLTc0LDE0ICs3NCwxNCBAQCB2b2lkIEluc3RhbmNlOjpwcm9jZXNzRXZlbnRzKCkK
ICAgICB9IHdoaWxlIChyZXN1bHQpOwogfQogCi1zdGF0aWMgTlNBcnJheTxpZCA8TVRMRGV2aWNl
Pj4gKnNvcnRlZERldmljZXMoTlNBcnJheTxpZCA8TVRMRGV2aWNlPj4gKmRldmljZXMsIFdHUFVQ
b3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlKQorc3RhdGljIE5TQXJyYXk8aWQ8TVRMRGV2
aWNlPj4gKnNvcnRlZERldmljZXMoTlNBcnJheTxpZDxNVExEZXZpY2U+PiAqZGV2aWNlcywgV0dQ
VVBvd2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UpCiB7CiAgICAgc3dpdGNoIChwb3dlclBy
ZWZlcmVuY2UpIHsKICAgICBjYXNlIFdHUFVQb3dlclByZWZlcmVuY2VfVW5kZWZpbmVkOgogICAg
ICAgICByZXR1cm4gZGV2aWNlczsKICAgICBjYXNlIFdHUFVQb3dlclByZWZlcmVuY2VfTG93UG93
ZXI6CiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICAgICAg
cmV0dXJuIFtkZXZpY2VzIHNvcnRlZEFycmF5V2l0aE9wdGlvbnM6TlNTb3J0U3RhYmxlIHVzaW5n
Q29tcGFyYXRvcjpeTlNDb21wYXJpc29uUmVzdWx0IChpZCA8TVRMRGV2aWNlPiBvYmoxLCBpZCA8
TVRMRGV2aWNlPiBvYmoyKQorICAgICAgICByZXR1cm4gW2RldmljZXMgc29ydGVkQXJyYXlXaXRo
T3B0aW9uczpOU1NvcnRTdGFibGUgdXNpbmdDb21wYXJhdG9yOl5OU0NvbXBhcmlzb25SZXN1bHQg
KGlkPE1UTERldmljZT4gb2JqMSwgaWQ8TVRMRGV2aWNlPiBvYmoyKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAob2JqMS5sb3dQb3dlciA9PSBvYmoyLmxvd1Bvd2VyKQogICAgICAgICAgICAg
ICAgIHJldHVybiBOU09yZGVyZWRTYW1lOwpAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgTlNBcnJh
eTxpZCA8TVRMRGV2aWNlPj4gKnNvcnRlZERldmljZXMoTlNBcnJheTxpZCA8TVRMRGV2aWNlPj4g
KmRldmljZXMsCiAjZW5kaWYKICAgICBjYXNlIFdHUFVQb3dlclByZWZlcmVuY2VfSGlnaFBlcmZv
cm1hbmNlOgogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAg
ICAgIHJldHVybiBbZGV2aWNlcyBzb3J0ZWRBcnJheVdpdGhPcHRpb25zOk5TU29ydFN0YWJsZSB1
c2luZ0NvbXBhcmF0b3I6Xk5TQ29tcGFyaXNvblJlc3VsdCAoaWQgPE1UTERldmljZT4gb2JqMSwg
aWQgPE1UTERldmljZT4gb2JqMikKKyAgICAgICAgcmV0dXJuIFtkZXZpY2VzIHNvcnRlZEFycmF5
V2l0aE9wdGlvbnM6TlNTb3J0U3RhYmxlIHVzaW5nQ29tcGFyYXRvcjpeTlNDb21wYXJpc29uUmVz
dWx0IChpZDxNVExEZXZpY2U+IG9iajEsIGlkPE1UTERldmljZT4gb2JqMikKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKG9iajEubG93UG93ZXIgPT0gb2JqMi5sb3dQb3dlcikKICAgICAgICAg
ICAgICAgICByZXR1cm4gTlNPcmRlcmVkU2FtZTsKQEAgLTExMywxMCArMTEzLDEwIEBAIHN0YXRp
YyBOU0FycmF5PGlkIDxNVExEZXZpY2U+PiAqc29ydGVkRGV2aWNlcyhOU0FycmF5PGlkIDxNVExE
ZXZpY2U+PiAqZGV2aWNlcywKIHZvaWQgSW5zdGFuY2U6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdH
UFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMqIG9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZChXR1BV
UmVxdWVzdEFkYXB0ZXJTdGF0dXMsIFJlZlB0cjxBZGFwdGVyPiYmLCBjb25zdCBjaGFyKik+JiYg
Y2FsbGJhY2spCiB7CiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSAgICBOU0FycmF5PGlkIDxNVExEZXZpY2U+PiAqZGV2aWNlcyA9IE1UTENvcHlBbGxEZXZpY2Vz
KCk7CisgICAgTlNBcnJheTxpZDxNVExEZXZpY2U+PiAqZGV2aWNlcyA9IE1UTENvcHlBbGxEZXZp
Y2VzKCk7CiAjZWxzZQotICAgIE5TTXV0YWJsZUFycmF5PGlkIDxNVExEZXZpY2U+PiAqZGV2aWNl
cyA9IFtOU011dGFibGVBcnJheSBhcnJheV07Ci0gICAgaWYgKGlkIDxNVExEZXZpY2U+IGRldmlj
ZSA9IE1UTENyZWF0ZVN5c3RlbURlZmF1bHREZXZpY2UoKSkKKyAgICBOU011dGFibGVBcnJheTxp
ZDxNVExEZXZpY2U+PiAqZGV2aWNlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgaWYg
KGlkPE1UTERldmljZT4gZGV2aWNlID0gTVRMQ3JlYXRlU3lzdGVtRGVmYXVsdERldmljZSgpKQog
ICAgICAgICBbZGV2aWNlcyBhZGRPYmplY3Q6ZGV2aWNlXTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUv
UXVlcnlTZXQuaAppbmRleCBhMDdmYmViOGE1NWY1NDVmOTUyODBjMGIyOGFmZTMyMjFhMzFiMmZk
Li5hMGU3ODE1MjEyNjNkZDYzNDI3MzZlOTIwNDMxNjAzYzJhYjA3Njg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1F1ZXJ5U2V0LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkdQVSB7CiBjbGFzcyBR
dWVyeVNldCA6IHB1YmxpYyBSZWZDb3VudGVkPFF1ZXJ5U2V0PiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxRdWVyeVNldD4gY3JlYXRlKGlk
IDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPiBjb3VudGVyU2FtcGxlQnVmZmVyKQorICAgIHN0YXRp
YyBSZWY8UXVlcnlTZXQ+IGNyZWF0ZShpZDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPiBjb3VudGVy
U2FtcGxlQnVmZmVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUXVlcnlT
ZXQoY291bnRlclNhbXBsZUJ1ZmZlcikpOwogICAgIH0KQEAgLTQ0LDEyICs0NCwxMiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkZXN0cm95KCk7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7
CiAKLSAgICBpZCA8TVRMQ291bnRlclNhbXBsZUJ1ZmZlcj4gY291bnRlclNhbXBsZUJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclNhbXBsZUJ1ZmZlcjsgfQorICAgIGlkPE1UTENvdW50
ZXJTYW1wbGVCdWZmZXI+IGNvdW50ZXJTYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
dW50ZXJTYW1wbGVCdWZmZXI7IH0KIAogcHJpdmF0ZToKLSAgICBRdWVyeVNldChpZCA8TVRMQ291
bnRlclNhbXBsZUJ1ZmZlcj4pOworICAgIFF1ZXJ5U2V0KGlkPE1UTENvdW50ZXJTYW1wbGVCdWZm
ZXI+KTsKIAotICAgIGlkIDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPiBtX2NvdW50ZXJTYW1wbGVC
dWZmZXIgeyBuaWwgfTsKKyAgICBpZDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPiBtX2NvdW50ZXJT
YW1wbGVCdWZmZXIgeyBuaWwgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVlcnlTZXQubW0gYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9RdWVyeVNldC5tbQppbmRleCBiNjdmM2YzMmIxYWE1NmExODk0NWY5YzdlY2VlOTJhYjlh
NjY1YTJmLi5hODA2M2I2MDg0ZmVjOGQyOTE0ZWM3MThlZDA1MzA5NTBjZWYxYjUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWVyeVNldC5tbQorKysgYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9RdWVyeVNldC5tbQpAQCAtMzYsNyArMzYsNyBAQCBSZWZQdHI8UXVlcnlTZXQ+IERl
dmljZTo6Y3JlYXRlUXVlcnlTZXQoY29uc3QgV0dQVVF1ZXJ5U2V0RGVzY3JpcHRvciogZGVzY3Jp
cHRvcgogICAgIHJldHVybiBRdWVyeVNldDo6Y3JlYXRlKG5pbCk7CiB9CiAKLVF1ZXJ5U2V0OjpR
dWVyeVNldChpZCA8TVRMQ291bnRlclNhbXBsZUJ1ZmZlcj4gY291bnRlclNhbXBsZUJ1ZmZlcikK
K1F1ZXJ5U2V0OjpRdWVyeVNldChpZDxNVExDb3VudGVyU2FtcGxlQnVmZmVyPiBjb3VudGVyU2Ft
cGxlQnVmZmVyKQogICAgIDogbV9jb3VudGVyU2FtcGxlQnVmZmVyKGNvdW50ZXJTYW1wbGVCdWZm
ZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5oIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUuaAppbmRleCBmNGJhNDUxN2Y0ZTgyNDQ2OWQ4YWRiYzdm
YTkyOTFhYjE2ZDczMDM4Li4zZmY5NzM3YWJlY2Q4YjgxM2ExZGY5ZDg1MWVjMmU0ZmU4NGY0YWIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1F1ZXVlLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgQ29tbWFuZEJ1ZmZl
cjsKIGNsYXNzIFF1ZXVlIDogcHVibGljIFJlZkNvdW50ZWQ8UXVldWU+IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFF1ZXVlPiBjcmVhdGUo
aWQgPE1UTENvbW1hbmRRdWV1ZT4gY29tbWFuZFF1ZXVlKQorICAgIHN0YXRpYyBSZWY8UXVldWU+
IGNyZWF0ZShpZDxNVExDb21tYW5kUXVldWU+IGNvbW1hbmRRdWV1ZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFF1ZXVlKGNvbW1hbmRRdWV1ZSkpOwogICAgIH0KQEAgLTUz
LDkgKzUzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCiBw
cml2YXRlOgotICAgIFF1ZXVlKGlkIDxNVExDb21tYW5kUXVldWU+KTsKKyAgICBRdWV1ZShpZDxN
VExDb21tYW5kUXVldWU+KTsKIAotICAgIGlkIDxNVExDb21tYW5kUXVldWU+IG1fY29tbWFuZFF1
ZXVlIHsgbmlsIH07CisgICAgaWQ8TVRMQ29tbWFuZFF1ZXVlPiBtX2NvbW1hbmRRdWV1ZSB7IG5p
bCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9RdWV1ZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCmluZGV4
IDQ3NjAwYmE0OWYyZmQ3ZTliYmNlZjcxMDgwNWIxYjIwYjg5MGE2Y2QuLjc0ZjM1NmI3YTYyZTJm
ZDMwOGQ5ZGU3NmZkN2IxZjhkNWViOGM4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL1F1ZXVlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0zMSw3
ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJHUFUgewogCi1RdWV1ZTo6UXVldWUoaWQgPE1UTENv
bW1hbmRRdWV1ZT4gY29tbWFuZFF1ZXVlKQorUXVldWU6OlF1ZXVlKGlkPE1UTENvbW1hbmRRdWV1
ZT4gY29tbWFuZFF1ZXVlKQogICAgIDogbV9jb21tYW5kUXVldWUoY29tbWFuZFF1ZXVlKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlLmggYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGUuaAppbmRleCA5MmM4ZGE0MDlmNmU1NmI3YjY2
NjlhY2YzYWQxYzY3YmZjODFmZjI5Li5jYjc0MWY3ZDcxNTg0MTRkZTY5NmYwOWMwY2UzZDBlOTQ2
ZmRmMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGUuaApAQCAtMzQsNyArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViR1BVIHsKIGNsYXNzIFJlbmRlckJ1bmRsZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJlbmRlckJ1bmRsZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVuZGVyQnVuZGxlPiBjcmVhdGUoaWQgPE1UTEluZGlyZWN0Q29t
bWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKQorICAgIHN0YXRpYyBSZWY8UmVuZGVy
QnVuZGxlPiBjcmVhdGUoaWQ8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPiBpbmRpcmVjdENvbW1h
bmRCdWZmZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW5kZXJCdW5k
bGUoaW5kaXJlY3RDb21tYW5kQnVmZmVyKSk7CiAgICAgfQpAQCAtNDMsMTIgKzQzLDEyIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCi0gICAgaWQgPE1UTElu
ZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKCkgY29uc3QgeyByZXR1
cm4gbV9pbmRpcmVjdENvbW1hbmRCdWZmZXI7IH0KKyAgICBpZDxNVExJbmRpcmVjdENvbW1hbmRC
dWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RD
b21tYW5kQnVmZmVyOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVuZGVyQnVuZGxlKGlkIDxNVExJbmRp
cmVjdENvbW1hbmRCdWZmZXI+KTsKKyAgICBSZW5kZXJCdW5kbGUoaWQ8TVRMSW5kaXJlY3RDb21t
YW5kQnVmZmVyPik7CiAKLSAgICBpZCA8TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPiBtX2luZGly
ZWN0Q29tbWFuZEJ1ZmZlciB7IG5pbCB9OworICAgIGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZl
cj4gbV9pbmRpcmVjdENvbW1hbmRCdWZmZXIgeyBuaWwgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlLm1t
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxlLm1tCmluZGV4IDUzNmVjNzUzYTk0
Y2YwZjhkMjIxNWY4YTE0ODI1ZjZhOTUwMTQ2NTUuLjM3MzhhZjdhYTA1NzJmMjZmM2MzYzNmMWU3
MDgyOTQ1ZDdmNzQzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1
bmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGUubW0KQEAgLTI5
LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkdQVSB7CiAKLVJlbmRlckJ1bmRsZTo6UmVuZGVy
QnVuZGxlKGlkIDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZl
cikKK1JlbmRlckJ1bmRsZTo6UmVuZGVyQnVuZGxlKGlkPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZl
cj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKQogICAgIDogbV9pbmRpcmVjdENvbW1hbmRCdWZmZXIo
aW5kaXJlY3RDb21tYW5kQnVmZmVyKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvUmVuZGVyQnVuZGxlRW5jb2Rlci5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVy
QnVuZGxlRW5jb2Rlci5oCmluZGV4IDhjYmM5ODk0N2E1MmNkN2QxMmM0ZmFmNmZmZTMxMjc3NDYz
ODQxNzUuLjk1MmVmNjJkYmNjYWI4YjFhY2RmZjEyZDA0ZTc5OTMyMzIyN2UzY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLmgKQEAgLTQwLDcgKzQwLDcgQEAg
Y2xhc3MgUmVuZGVyUGlwZWxpbmU7CiBjbGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVuZGVyQnVuZGxlRW5jb2Rlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rlcj4gY3Jl
YXRlKGlkIDxNVExJbmRpcmVjdENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikK
KyAgICBzdGF0aWMgUmVmPFJlbmRlckJ1bmRsZUVuY29kZXI+IGNyZWF0ZShpZDxNVExJbmRpcmVj
dENvbW1hbmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlbmRlckJ1bmRsZUVuY29kZXIoaW5kaXJlY3RDb21tYW5kQnVm
ZmVyKSk7CiAgICAgfQpAQCAtNjIsOSArNjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYWJl
bChjb25zdCBjaGFyKik7CiAKIHByaXZhdGU6Ci0gICAgUmVuZGVyQnVuZGxlRW5jb2RlcihpZCA8
TVRMSW5kaXJlY3RDb21tYW5kQnVmZmVyPik7CisgICAgUmVuZGVyQnVuZGxlRW5jb2RlcihpZDxN
VExJbmRpcmVjdENvbW1hbmRCdWZmZXI+KTsKIAotICAgIGlkIDxNVExJbmRpcmVjdENvbW1hbmRC
dWZmZXI+IG1faW5kaXJlY3RDb21tYW5kQnVmZmVyIHsgbmlsIH07CisgICAgaWQ8TVRMSW5kaXJl
Y3RDb21tYW5kQnVmZmVyPiBtX2luZGlyZWN0Q29tbWFuZEJ1ZmZlciB7IG5pbCB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9S
ZW5kZXJCdW5kbGVFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyQnVuZGxl
RW5jb2Rlci5tbQppbmRleCA1NmVhZmU3MzJjMGQ5NGZiYmY3YTcyMTYzYzkwZjg3MWFmODYxM2Nm
Li5kOWQ5M2YyMzMwYmY4NTY1ZjQ5Y2U0ZGRkMTMwZjBjY2I1NTI3MGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJCdW5kbGVFbmNvZGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1JlbmRlckJ1bmRsZUVuY29kZXIubW0KQEAgLTQwLDcgKzQwLDcgQEAgUmVm
UHRyPFJlbmRlckJ1bmRsZUVuY29kZXI+IERldmljZTo6Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rl
cihjb25zdCBXR1BVUmVuZGVyQnUKICAgICByZXR1cm4gUmVuZGVyQnVuZGxlRW5jb2Rlcjo6Y3Jl
YXRlKG5pbCk7CiB9CiAKLVJlbmRlckJ1bmRsZUVuY29kZXI6OlJlbmRlckJ1bmRsZUVuY29kZXIo
aWQgPE1UTEluZGlyZWN0Q29tbWFuZEJ1ZmZlcj4gaW5kaXJlY3RDb21tYW5kQnVmZmVyKQorUmVu
ZGVyQnVuZGxlRW5jb2Rlcjo6UmVuZGVyQnVuZGxlRW5jb2RlcihpZDxNVExJbmRpcmVjdENvbW1h
bmRCdWZmZXI+IGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikKICAgICA6IG1faW5kaXJlY3RDb21tYW5k
QnVmZmVyKGluZGlyZWN0Q29tbWFuZEJ1ZmZlcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9S
ZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDg0ODZmZDRhMjE2ZmUwMDViNWZkYzRkY2JmYTM1N2U5
ZDY3NGU1NzEuLjA3ZGM4M2I3NDkyZDkyNmMxMjRkMTM5MGJlYzY0ZTU4N2RjMjk2ZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBSZW5kZXJQaXBlbGluZTsKIGNsYXNzIFJlbmRlclBhc3NFbmNvZGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVuZGVyUGFzc0VuY29kZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoaWQg
PE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiByZW5kZXJDb21tYW5kRW5jb2RlcikKKyAgICBzdGF0
aWMgUmVmPFJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoaWQ8TVRMUmVuZGVyQ29tbWFuZEVuY29k
ZXI+IHJlbmRlckNvbW1hbmRFbmNvZGVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVuZGVyUGFzc0VuY29kZXIocmVuZGVyQ29tbWFuZEVuY29kZXIpKTsKICAgICB9CkBA
IC03Myw5ICs3Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIqKTsK
IAogcHJpdmF0ZToKLSAgICBSZW5kZXJQYXNzRW5jb2RlcihpZCA8TVRMUmVuZGVyQ29tbWFuZEVu
Y29kZXI+KTsKKyAgICBSZW5kZXJQYXNzRW5jb2RlcihpZDxNVExSZW5kZXJDb21tYW5kRW5jb2Rl
cj4pOwogCi0gICAgaWQgPE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiBtX3JlbmRlckNvbW1hbmRF
bmNvZGVyIHsgbmlsIH07CisgICAgaWQ8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IG1fcmVuZGVy
Q29tbWFuZEVuY29kZXIgeyBuaWwgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5tbQppbmRleCA1M2E2NGI0MDgyNTcy
ZTJhYjA4YjQ2MzAyNzRjODAwMDYxYWQ3MTY2Li4xMWYyNTU4YzkyYzMyMWY4MzQzZWQ4MDllNWU3
MzYzZTIxOTgwOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQYXNz
RW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5t
bQpAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIAotUmVuZGVyUGFzc0Vu
Y29kZXI6OlJlbmRlclBhc3NFbmNvZGVyKGlkIDxNVExSZW5kZXJDb21tYW5kRW5jb2Rlcj4gcmVu
ZGVyQ29tbWFuZEVuY29kZXIpCitSZW5kZXJQYXNzRW5jb2Rlcjo6UmVuZGVyUGFzc0VuY29kZXIo
aWQ8TVRMUmVuZGVyQ29tbWFuZEVuY29kZXI+IHJlbmRlckNvbW1hbmRFbmNvZGVyKQogICAgIDog
bV9yZW5kZXJDb21tYW5kRW5jb2RlcihyZW5kZXJDb21tYW5kRW5jb2RlcikKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5oCmluZGV4IDliNmQxNGQ5OWYwODY4NTU0MDY0Mzhi
ODhiNzEzZjMwZmU1MmNmNGUuLjhjMjU2ZmQ2ZjA5M2I2NTkwOGJiM2Y3MWI0NWQyOGFhOTg1NjJj
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBpcGVsaW5lLmgKKysr
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxpbmUuaApAQCAtMzYsNyArMzYsNyBA
QCBjbGFzcyBCaW5kR3JvdXBMYXlvdXQ7CiBjbGFzcyBSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJlbmRlclBpcGVsaW5lPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW5kZXJQaXBlbGluZT4gY3JlYXRlKGlkIDxNVExS
ZW5kZXJQaXBlbGluZVN0YXRlPiByZW5kZXJQaXBlbGluZVN0YXRlKQorICAgIHN0YXRpYyBSZWY8
UmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShpZDxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiByZW5kZXJQ
aXBlbGluZVN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVuZGVy
UGlwZWxpbmUocmVuZGVyUGlwZWxpbmVTdGF0ZSkpOwogICAgIH0KQEAgLTQ2LDEyICs0NiwxMiBA
QCBwdWJsaWM6CiAgICAgUmVmPEJpbmRHcm91cExheW91dD4gZ2V0QmluZEdyb3VwTGF5b3V0KHVp
bnQzMl90IGdyb3VwSW5kZXgpOwogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgY2hhciopOwogCi0g
ICAgaWQgPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHJlbmRlclBpcGVsaW5lU3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3JlbmRlclBpcGVsaW5lU3RhdGU7IH0KKyAgICBpZDxNVExSZW5kZXJQaXBl
bGluZVN0YXRlPiByZW5kZXJQaXBlbGluZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJQ
aXBlbGluZVN0YXRlOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVuZGVyUGlwZWxpbmUoaWQgPE1UTFJl
bmRlclBpcGVsaW5lU3RhdGU+KTsKKyAgICBSZW5kZXJQaXBlbGluZShpZDxNVExSZW5kZXJQaXBl
bGluZVN0YXRlPik7CiAKLSAgICBpZCA8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gbV9yZW5kZXJQ
aXBlbGluZVN0YXRlIHsgbmlsIH07CisgICAgaWQ8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gbV9y
ZW5kZXJQaXBlbGluZVN0YXRlIHsgbmlsIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1JlbmRlclBpcGVsaW5lLm1tIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxpbmUubW0KaW5kZXggYTUxMTdiNzkwMDQwMjZm
OTYxNDU1YmY5ZTQ2ZGUxMGQwNDk1ZDA4MS4uOTJkNDkxZTE3OGZjNjc5ZWExYmI2N2UxNjM4ZGQ0
NmQyMTNiNmIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxp
bmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxpbmUubW0KQEAgLTQz
LDcgKzQzLDcgQEAgdm9pZCBEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3Qg
V0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciogZGVzY3IKICAgICBVTlVTRURfUEFSQU0oY2Fs
bGJhY2spOwogfQogCi1SZW5kZXJQaXBlbGluZTo6UmVuZGVyUGlwZWxpbmUoaWQgPE1UTFJlbmRl
clBpcGVsaW5lU3RhdGU+IHJlbmRlclBpcGVsaW5lU3RhdGUpCitSZW5kZXJQaXBlbGluZTo6UmVu
ZGVyUGlwZWxpbmUoaWQ8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gcmVuZGVyUGlwZWxpbmVTdGF0
ZSkKICAgICA6IG1fcmVuZGVyUGlwZWxpbmVTdGF0ZShyZW5kZXJQaXBlbGluZVN0YXRlKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5oIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvU2FtcGxlci5oCmluZGV4IGFiNzI0ZjAyN2I3NjhjMTc0YmI0ZjZmMjVmZjky
Nzk2MzJiOTJjYWUuLjNjZDVmZWYzNDkxYTU2Yjg2MTgzMGI5Y2NjYzMyOGVhMGYwNDk2NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9TYW1wbGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkdQVSB7
CiBjbGFzcyBTYW1wbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U2FtcGxlcj4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2FtcGxlcj4gY3Jl
YXRlKGlkIDxNVExTYW1wbGVyU3RhdGU+IHNhbXBsZXJTdGF0ZSkKKyAgICBzdGF0aWMgUmVmPFNh
bXBsZXI+IGNyZWF0ZShpZDxNVExTYW1wbGVyU3RhdGU+IHNhbXBsZXJTdGF0ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNhbXBsZXIoc2FtcGxlclN0YXRlKSk7CiAgICAg
fQpAQCAtNDMsMTIgKzQzLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TGFiZWwoY29uc3Qg
Y2hhciopOwogCi0gICAgaWQgPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlclN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9zYW1wbGVyU3RhdGU7IH0KKyAgICBpZDxNVExTYW1wbGVyU3RhdGU+IHNhbXBs
ZXJTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlclN0YXRlOyB9CiAKIHByaXZhdGU6Ci0g
ICAgU2FtcGxlcihpZCA8TVRMU2FtcGxlclN0YXRlPik7CisgICAgU2FtcGxlcihpZDxNVExTYW1w
bGVyU3RhdGU+KTsKIAotICAgIGlkIDxNVExTYW1wbGVyU3RhdGU+IG1fc2FtcGxlclN0YXRlIHsg
bmlsIH07CisgICAgaWQ8TVRMU2FtcGxlclN0YXRlPiBtX3NhbXBsZXJTdGF0ZSB7IG5pbCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9TYW1wbGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRleCA1
NWRkZDM5MmQyN2U4ZDg3MjdkYTMzNGMxNGQwMDE2NTFjYmEzNmQ3Li5kYmE2YjkxZDlmOWY1NTBj
M2VkMTBkOTk2NjgyMjM0M2I5MjY3YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9TYW1wbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAgLTM2
LDcgKzM2LDcgQEAgUmVmUHRyPFNhbXBsZXI+IERldmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBX
R1BVU2FtcGxlckRlc2NyaXB0b3IqIGRlc2NyaXB0b3IpCiAgICAgcmV0dXJuIFNhbXBsZXI6OmNy
ZWF0ZShuaWwpOwogfQogCi1TYW1wbGVyOjpTYW1wbGVyKGlkIDxNVExTYW1wbGVyU3RhdGU+IHNh
bXBsZXJTdGF0ZSkKK1NhbXBsZXI6OlNhbXBsZXIoaWQ8TVRMU2FtcGxlclN0YXRlPiBzYW1wbGVy
U3RhdGUpCiAgICAgOiBtX3NhbXBsZXJTdGF0ZShzYW1wbGVyU3RhdGUpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1NoYWRlck1vZHVsZS5oCmluZGV4IGJjNjZiMGZkNWQ2NTFhZTBiMGQ5MTRkY2EyNjU1
ZTMzYWU4ZTIzYTQuLjEwOTlmYWM2NTdmNmY4NTFkMjBhYjU2YzdjMDk0MjFkODljNjIxNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFBp
cGVsaW5lTGF5b3V0OwogY2xhc3MgU2hhZGVyTW9kdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8U2hh
ZGVyTW9kdWxlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTaGFkZXJNb2R1bGU+IGNyZWF0ZShzdGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vz
c2Z1bENoZWNrLCBXR1NMOjpGYWlsZWRDaGVjaz4mJiBjaGVja1Jlc3VsdCwgSGFzaE1hcDxTdHJp
bmcsIFJlZjxQaXBlbGluZUxheW91dD4+JiYgcGlwZWxpbmVMYXlvdXRIaW50cywgSGFzaE1hcDxT
dHJpbmcsIFdHU0w6OlJlZmxlY3Rpb246OkVudHJ5UG9pbnRJbmZvcm1hdGlvbj4mJiBlbnRyeVBv
aW50SW5mb3JtYXRpb24sIGlkIDxNVExMaWJyYXJ5PiBsaWJyYXJ5KQorICAgIHN0YXRpYyBSZWY8
U2hhZGVyTW9kdWxlPiBjcmVhdGUoc3RkOjp2YXJpYW50PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaywg
V0dTTDo6RmFpbGVkQ2hlY2s+JiYgY2hlY2tSZXN1bHQsIEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlw
ZWxpbmVMYXlvdXQ+PiYmIHBpcGVsaW5lTGF5b3V0SGludHMsIEhhc2hNYXA8U3RyaW5nLCBXR1NM
OjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50SW5mb3JtYXRpb24+JiYgZW50cnlQb2ludEluZm9ybWF0
aW9uLCBpZDxNVExMaWJyYXJ5PiBsaWJyYXJ5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2hhZGVyTW9kdWxlKFdURk1vdmUoY2hlY2tSZXN1bHQpLCBXVEZNb3ZlKHBpcGVs
aW5lTGF5b3V0SGludHMpLCBXVEZNb3ZlKGVudHJ5UG9pbnRJbmZvcm1hdGlvbiksIGxpYnJhcnkp
KTsKICAgICB9CkBAIC01MCwyMSArNTAsMjEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFiZWwo
Y29uc3QgY2hhciopOwogCiAgICAgc3RhdGljIFdHU0w6OlBpcGVsaW5lTGF5b3V0IGNvbnZlcnRQ
aXBlbGluZUxheW91dChjb25zdCBQaXBlbGluZUxheW91dCYpOwotICAgIHN0YXRpYyBpZCA8TVRM
TGlicmFyeT4gY3JlYXRlTGlicmFyeShpZCA8TVRMRGV2aWNlPiwgY29uc3QgU3RyaW5nJiBtc2ws
IE5TU3RyaW5nICpsYWJlbCk7CisgICAgc3RhdGljIGlkPE1UTExpYnJhcnk+IGNyZWF0ZUxpYnJh
cnkoaWQ8TVRMRGV2aWNlPiwgY29uc3QgU3RyaW5nJiBtc2wsIE5TU3RyaW5nICpsYWJlbCk7CiAK
ICAgICBjb25zdCBXR1NMOjpBU1QqIGFzdCgpIGNvbnN0OwogCiAgICAgY29uc3QgUGlwZWxpbmVM
YXlvdXQqIHBpcGVsaW5lTGF5b3V0SGludChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBjb25z
dCBXR1NMOjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50SW5mb3JtYXRpb24qIGVudHJ5UG9pbnRJbmZv
cm1hdGlvbihjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICBpZCA8TVRMTGlicmFyeT4gbGlicmFy
eSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlicmFyeTsgfQorICAgIGlkPE1UTExpYnJhcnk+IGxpYnJh
cnkoKSBjb25zdCB7IHJldHVybiBtX2xpYnJhcnk7IH0KIAogcHJpdmF0ZToKLSAgICBTaGFkZXJN
b2R1bGUoc3RkOjp2YXJpYW50PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaywgV0dTTDo6RmFpbGVkQ2hl
Y2s+JiYsIEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlwZWxpbmVMYXlvdXQ+PiYmLCBIYXNoTWFwPFN0
cmluZywgV0dTTDo6UmVmbGVjdGlvbjo6RW50cnlQb2ludEluZm9ybWF0aW9uPiYmLCBpZCA8TVRM
TGlicmFyeT4pOworICAgIFNoYWRlck1vZHVsZShzdGQ6OnZhcmlhbnQ8V0dTTDo6U3VjY2Vzc2Z1
bENoZWNrLCBXR1NMOjpGYWlsZWRDaGVjaz4mJiwgSGFzaE1hcDxTdHJpbmcsIFJlZjxQaXBlbGlu
ZUxheW91dD4+JiYsIEhhc2hNYXA8U3RyaW5nLCBXR1NMOjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50
SW5mb3JtYXRpb24+JiYsIGlkPE1UTExpYnJhcnk+KTsKIAogICAgIGNvbnN0IHN0ZDo6dmFyaWFu
dDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2ssIFdHU0w6OkZhaWxlZENoZWNrPiBtX2NoZWNrUmVzdWx0
OwogICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlwZWxpbmVMYXlvdXQ+PiBtX3BpcGVs
aW5lTGF5b3V0SGludHM7CiAgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFdHU0w6OlJlZmxlY3Rp
b246OkVudHJ5UG9pbnRJbmZvcm1hdGlvbj4gbV9lbnRyeVBvaW50SW5mb3JtYXRpb247Ci0gICAg
aWQgPE1UTExpYnJhcnk+IG1fbGlicmFyeSB7IG5pbCB9OyAvLyBUaGlzIGlzIG9ubHkgbm9uLW51
bGwgaWYgd2UgY291bGQgY29tcGlsZSB0aGUgbW9kdWxlIGVhcmx5LgorICAgIGlkPE1UTExpYnJh
cnk+IG1fbGlicmFyeSB7IG5pbCB9OyAvLyBUaGlzIGlzIG9ubHkgbm9uLW51bGwgaWYgd2UgY291
bGQgY29tcGlsZSB0aGUgbW9kdWxlIGVhcmx5LgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BV
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KaW5kZXggZWJhNzY0NWMxNjFiMjliYWE3
ODFiODJkNjZjODkxMWQ0NGNjNDFkYi4uMTdkYmQ4ODBhZjhjMTIwYzcxYjE0MzU0M2I1Y2IwNTI2
NDAxZTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQpAQCAtNjYsMjAgKzY2
LDIwIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYWRlck1vZHVsZVBhcmFtZXRlcnM+IGZpbmRT
aGFkZXJNb2R1bGVQYXJhbWV0ZXJzKGNvbnN0IFdHCiAgICAgcmV0dXJuIHsgeyAqd2dzbCwgaGlu
dHMgfSB9OwogfQogCi1pZCA8TVRMTGlicmFyeT4gU2hhZGVyTW9kdWxlOjpjcmVhdGVMaWJyYXJ5
KGlkIDxNVExEZXZpY2U+IGRldmljZSwgY29uc3QgU3RyaW5nJiBtc2wsIE5TU3RyaW5nICpsYWJl
bCkKK2lkPE1UTExpYnJhcnk+IFNoYWRlck1vZHVsZTo6Y3JlYXRlTGlicmFyeShpZDxNVExEZXZp
Y2U+IGRldmljZSwgY29uc3QgU3RyaW5nJiBtc2wsIE5TU3RyaW5nICpsYWJlbCkKIHsKICAgICBh
dXRvIG9wdGlvbnMgPSBbTVRMQ29tcGlsZU9wdGlvbnMgbmV3XTsKICAgICBvcHRpb25zLmZhc3RN
YXRoRW5hYmxlZCA9IFlFUzsKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICAvLyBGSVhN
RTogUnVuIHRoZSBhc3luY2hyb25vdXMgdmVyc2lvbiBvZiB0aGlzCi0gICAgaWQgPE1UTExpYnJh
cnk+IGxpYnJhcnkgPSBbZGV2aWNlIG5ld0xpYnJhcnlXaXRoU291cmNlOm1zbCBvcHRpb25zOm9w
dGlvbnMgZXJyb3I6JmVycm9yXTsKKyAgICBpZDxNVExMaWJyYXJ5PiBsaWJyYXJ5ID0gW2Rldmlj
ZSBuZXdMaWJyYXJ5V2l0aFNvdXJjZTptc2wgb3B0aW9uczpvcHRpb25zIGVycm9yOiZlcnJvcl07
CiAgICAgaWYgKGVycm9yKQogICAgICAgICBXVEZMb2dBbHdheXMoIk1TTCBjb21waWxhdGlvbiBl
cnJvcjogJUAiLCBlcnJvcik7CiAgICAgbGlicmFyeS5sYWJlbCA9IGxhYmVsOwogICAgIHJldHVy
biBsaWJyYXJ5OwogfQogCi1zdGF0aWMgUmVmUHRyPFNoYWRlck1vZHVsZT4gZWFybHlDb21waWxl
U2hhZGVyTW9kdWxlKGlkIDxNVExEZXZpY2U+IGRldmljZSwgc3RkOjp2YXJpYW50PFdHU0w6OlN1
Y2Nlc3NmdWxDaGVjaywgV0dTTDo6RmFpbGVkQ2hlY2s+JiYgY2hlY2tSZXN1bHQsIGNvbnN0IFdH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9ySGludHMmIHN1cHBsaWVkSGludHMsIE5TU3RyaW5nICps
YWJlbCkKK3N0YXRpYyBSZWZQdHI8U2hhZGVyTW9kdWxlPiBlYXJseUNvbXBpbGVTaGFkZXJNb2R1
bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIHN0ZDo6dmFyaWFudDxXR1NMOjpTdWNjZXNzZnVsQ2hl
Y2ssIFdHU0w6OkZhaWxlZENoZWNrPiYmIGNoZWNrUmVzdWx0LCBjb25zdCBXR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvckhpbnRzJiBzdXBwbGllZEhpbnRzLCBOU1N0cmluZyAqbGFiZWwpCiB7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxQaXBlbGluZUxheW91dD4+IGhpbnRzOwogICAgIEhhc2hN
YXA8U3RyaW5nLCBXR1NMOjpQaXBlbGluZUxheW91dD4gd2dzbEhpbnRzOwpAQCAtMTE3LDcgKzEx
Nyw3IEBAIFJlZlB0cjxTaGFkZXJNb2R1bGU+IERldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNv
bnN0IFdHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yCiAgICAgcmV0dXJuIFNoYWRlck1vZHVsZTo6
Y3JlYXRlKFdURk1vdmUoY2hlY2tSZXN1bHQpLCB7IH0sIHsgfSwgbmlsKTsKIH0KIAotU2hhZGVy
TW9kdWxlOjpTaGFkZXJNb2R1bGUoc3RkOjp2YXJpYW50PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaywg
V0dTTDo6RmFpbGVkQ2hlY2s+JiYgY2hlY2tSZXN1bHQsIEhhc2hNYXA8U3RyaW5nLCBSZWY8UGlw
ZWxpbmVMYXlvdXQ+PiYmIHBpcGVsaW5lTGF5b3V0SGludHMsIEhhc2hNYXA8U3RyaW5nLCBXR1NM
OjpSZWZsZWN0aW9uOjpFbnRyeVBvaW50SW5mb3JtYXRpb24+JiYgZW50cnlQb2ludEluZm9ybWF0
aW9uLCBpZCA8TVRMTGlicmFyeT4gbGlicmFyeSkKK1NoYWRlck1vZHVsZTo6U2hhZGVyTW9kdWxl
KHN0ZDo6dmFyaWFudDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2ssIFdHU0w6OkZhaWxlZENoZWNrPiYm
IGNoZWNrUmVzdWx0LCBIYXNoTWFwPFN0cmluZywgUmVmPFBpcGVsaW5lTGF5b3V0Pj4mJiBwaXBl
bGluZUxheW91dEhpbnRzLCBIYXNoTWFwPFN0cmluZywgV0dTTDo6UmVmbGVjdGlvbjo6RW50cnlQ
b2ludEluZm9ybWF0aW9uPiYmIGVudHJ5UG9pbnRJbmZvcm1hdGlvbiwgaWQ8TVRMTGlicmFyeT4g
bGlicmFyeSkKICAgICA6IG1fY2hlY2tSZXN1bHQoV1RGTW92ZShjaGVja1Jlc3VsdCkpCiAgICAg
LCBtX3BpcGVsaW5lTGF5b3V0SGludHMoV1RGTW92ZShwaXBlbGluZUxheW91dEhpbnRzKSkKICAg
ICAsIG1fZW50cnlQb2ludEluZm9ybWF0aW9uKFdURk1vdmUoZW50cnlQb2ludEluZm9ybWF0aW9u
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUuaCBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1RleHR1cmUuaAppbmRleCBmZDA1ZWJjNmM4YzllMmZlMzgyOGU5YmQ0MTg1
NTIwZjFmNTBkYjgxLi5lOGM2MTU2YjllZTk2ZDIzZjk3OGQxZTI4NmRiNjQ0NGNjNTVhMTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgKKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvVGV4dHVyZS5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFRleHR1cmVWaWV3
OwogY2xhc3MgVGV4dHVyZSA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHR1cmU+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHR1cmU+IGNy
ZWF0ZShpZCA8TVRMVGV4dHVyZT4gdGV4dHVyZSkKKyAgICBzdGF0aWMgUmVmPFRleHR1cmU+IGNy
ZWF0ZShpZDxNVExUZXh0dXJlPiB0ZXh0dXJlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGV4dHVyZSh0ZXh0dXJlKSk7CiAgICAgfQpAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1
YmxpYzoKICAgICB2b2lkIGRlc3Ryb3koKTsKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IGNoYXIq
KTsKIAotICAgIGlkIDxNVExUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0
dXJlOyB9CisgICAgaWQ8TVRMVGV4dHVyZT4gdGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4
dHVyZTsgfQogCiBwcml2YXRlOgotICAgIFRleHR1cmUoaWQgPE1UTFRleHR1cmU+KTsKKyAgICBU
ZXh0dXJlKGlkPE1UTFRleHR1cmU+KTsKIAotICAgIGlkIDxNVExUZXh0dXJlPiBtX3RleHR1cmUg
eyBuaWwgfTsKKyAgICBpZDxNVExUZXh0dXJlPiBtX3RleHR1cmUgeyBuaWwgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4
dHVyZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUubW0KaW5kZXggNWM0N2VkNjhh
MGIzMDdmYWM2NGUwZTcxYjE1MTY5ZDFmODQxYzI0OC4uMGYyNzc5NTY1ZWUzZDRiMGU2NjdjODgy
YzM5MmYzOTcyOWRlOTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVy
ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCkBAIC0zNyw3ICszNyw3
IEBAIFJlZlB0cjxUZXh0dXJlPiBEZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3QgV0dQVVRleHR1
cmVEZXNjcmlwdG9yKiBkZXNjcmlwdG9yKQogICAgIHJldHVybiBUZXh0dXJlOjpjcmVhdGUobmls
KTsKIH0KIAotVGV4dHVyZTo6VGV4dHVyZShpZCA8TVRMVGV4dHVyZT4gdGV4dHVyZSkKK1RleHR1
cmU6OlRleHR1cmUoaWQ8TVRMVGV4dHVyZT4gdGV4dHVyZSkKICAgICA6IG1fdGV4dHVyZSh0ZXh0
dXJlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZVZpZXcu
aCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmVWaWV3LmgKaW5kZXggMDk2NzEyYzY5NjYy
ODgzYzc4NGY1ZjI4YjY2OWZlODdhNjI0NjAwYy4uY2U5YTQ1MTBiZTg5YjA1ZmNkYzNlZDFiOWQ5
MDRlNjE2MTkzNDU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZVZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5oCkBAIC0zNCw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJHUFUgewogY2xhc3MgVGV4dHVyZVZpZXcgOiBwdWJsaWMgUmVm
Q291bnRlZDxUZXh0dXJlVmlldz4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8VGV4dHVyZVZpZXc+IGNyZWF0ZShpZCA8TVRMVGV4dHVyZT4g
dGV4dHVyZSkKKyAgICBzdGF0aWMgUmVmPFRleHR1cmVWaWV3PiBjcmVhdGUoaWQ8TVRMVGV4dHVy
ZT4gdGV4dHVyZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmVW
aWV3KHRleHR1cmUpKTsKICAgICB9CkBAIC00MywxMiArNDMsMTIgQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRMYWJlbChjb25zdCBjaGFyKik7CiAKLSAgICBpZCA8TVRMVGV4dHVyZT4gdGV4dHVy
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorICAgIGlkPE1UTFRleHR1cmU+IHRleHR1
cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KIAogcHJpdmF0ZToKLSAgICBUZXh0dXJl
VmlldyhpZCA8TVRMVGV4dHVyZT4pOworICAgIFRleHR1cmVWaWV3KGlkPE1UTFRleHR1cmU+KTsK
IAotICAgIGlkIDxNVExUZXh0dXJlPiBtX3RleHR1cmUgeyBuaWwgfTsKKyAgICBpZDxNVExUZXh0
dXJlPiBtX3RleHR1cmUgeyBuaWwgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZVZpZXcubW0gYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9UZXh0dXJlVmlldy5tbQppbmRleCA2MWNkOGE0NzA2OWE0NWVjZGNhYTI3MzU2
YjIwYmJkOTE4N2JkOTZlLi4wYWFlOTJiOGUwMjJkZTY3Y2I4ODE3YThlMDM2NzEwYTc0YjAyYjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlVmlldy5tbQpAQCAtMjksNyArMjksNyBAQAogCiBu
YW1lc3BhY2UgV2ViR1BVIHsKIAotVGV4dHVyZVZpZXc6OlRleHR1cmVWaWV3KGlkIDxNVExUZXh0
dXJlPiB0ZXh0dXJlKQorVGV4dHVyZVZpZXc6OlRleHR1cmVWaWV3KGlkPE1UTFRleHR1cmU+IHRl
eHR1cmUpCiAgICAgOiBtX3RleHR1cmUodGV4dHVyZSkKIHsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>