<?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>200097</bug_id>
          
          <creation_ts>2019-07-24 14:53:37 -0700</creation_ts>
          <short_desc>[WebGPU] Update GPUComputePipeline errors to match GPURenderPipeline implementation</short_desc>
          <delta_ts>2019-07-27 17:48:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1555517</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-24 14:53:37 -0700</bug_when>
    <thetext>[WebGPU] Update GPUComputePipeline errors to match GPURenderPipeline implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555521</commentid>
    <comment_count>1</comment_count>
      <attachid>374814</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-24 14:58:51 -0700</bug_when>
    <thetext>Created attachment 374814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556299</commentid>
    <comment_count>2</comment_count>
      <attachid>375003</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-26 17:29:59 -0700</bug_when>
    <thetext>Created attachment 375003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556306</commentid>
    <comment_count>3</comment_count>
      <attachid>375003</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-26 17:40:36 -0700</bug_when>
    <thetext>Comment on attachment 375003
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:-59
&gt; -    ArrayReferenceType(ArrayReferenceType&amp;&amp;) = default;

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556307</commentid>
    <comment_count>4</comment_count>
      <attachid>375003</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-26 17:44:07 -0700</bug_when>
    <thetext>Comment on attachment 375003
Patch

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

&gt;&gt; Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:-59
&gt;&gt; -    ArrayReferenceType(ArrayReferenceType&amp;&amp;) = default;
&gt; 
&gt; Why?

These classes were made RefCounted in a previous patch; remove their move ctors to fix build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556406</commentid>
    <comment_count>5</comment_count>
      <attachid>375003</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-27 17:47:06 -0700</bug_when>
    <thetext>Comment on attachment 375003
Patch

Clearing flags on attachment: 375003

Committed r247892: &lt;https://trac.webkit.org/changeset/247892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556407</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-27 17:47:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556408</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-27 17:48:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/53627743&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374814</attachid>
            <date>2019-07-24 14:58:51 -0700</date>
            <delta_ts>2019-07-26 17:29:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200097-20190724145850.patch</filename>
            <type>text/plain</type>
            <size>24828</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhhMjZmNjgyYzZiMzZm
MTI5NjJhZDEwZmMwOTVkMjFhYzVmNjQyOC4uN2I1YTllYjE2Mjg5MjM3OGY4ZTM4MDY1NzQ1MzQx
NzdkNWY4MmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA3LTI0ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVXBkYXRl
IEdQVUNvbXB1dGVQaXBlbGluZSBlcnJvcnMgdG8gbWF0Y2ggR1BVUmVuZGVyUGlwZWxpbmUgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBwYXNzaW5nIGFyb3VuZCBhIGZ1bmN0aW9uTmFtZSBpbiBHUFVDb21wdXRlUGlw
ZWxpbmUgY3JlYXRpb24gaW4gZmF2b3Igb2Ygc2V0dGluZyBpdCBvbiB0aGUgR1BVRXJyb3JTY29w
ZXMuCisgICAgICAgIEFsc28sIFdlYkdQVSBvYmplY3RzIG5vIGxvbmdlciBjcmVhdGUgbmV3IFJl
Zjw+cyB1bmxlc3Mgb2JqZWN0IGNyZWF0aW9uIHN1Y2NlZWRzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0
ZUJ1ZmZlck1hcHBlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUNvbXB1dGVQaXBlbGluZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUVycm9yU2NvcGVzOjpnZW5lcmF0ZVByZWZpeGVkRXJyb3IpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNjb3Blcy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUJ1ZmZlcjo6dmFsaWRhdGVCdWZmZXJVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCdWZmZXI6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OkdQVUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQ
aXBlbGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0TWV0YWxGdW5jdGlvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0RnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRy
eUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNv
bXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQ
aXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OnRyeVNldE1ldGFsRnVuY3Rpb25zKToKKwogMjAxOS0wNy0yNCAgQWxpY2lhIEJveWEgR2FyY8Ot
YSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01TRV0gUmVlbnF1ZXVlIGFmdGVyIHJl
bW92ZUNvZGVkRnJhbWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuY3BwCmluZGV4IDlkYjBiNGM0NWVkZTZhODkzM2EzMGVkM2NhNjQ2YjNjYzliY2Uw
MTguLmRiOGQ5OTAzYTk2YTdhYjMyMzgwMjAyN2U5YzZmODU0MjQ5OWIxNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtODcsMTUgKzg3
LDE5IEBAIFdlYkdQVURldmljZTo6V2ViR1BVRGV2aWNlKFJlZjxjb25zdCBXZWJHUFVBZGFwdGVy
PiYmIGFkYXB0ZXIsIFJlZjxHUFVEZXZpY2U+JiYKIAogUmVmPFdlYkdQVUJ1ZmZlcj4gV2ViR1BV
RGV2aWNlOjpjcmVhdGVCdWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRv
cikgY29uc3QKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIo
ZGVzY3JpcHRvciwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpOb3RNYXBwZWQsIG1fZXJyb3JTY29w
ZXMuY29weVJlZigpKTsKKyAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJvclByZWZpeCgiR1BVRGV2
aWNlLmNyZWF0ZUJ1ZmZlcigpOiAiKTsKKworICAgIGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRy
eUNyZWF0ZUJ1ZmZlcihkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb246Ok5vdE1hcHBl
ZCwgbV9lcnJvclNjb3Blcyk7CiAgICAgcmV0dXJuIFdlYkdQVUJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUoYnVmZmVyKSk7CiB9CiAKIFZlY3RvcjxKU0M6OkpTVmFsdWU+IFdlYkdQVURldmljZTo6Y3Jl
YXRlQnVmZmVyTWFwcGVkKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgR1BVQnVmZmVyRGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKIHsKKyAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJv
clByZWZpeCgiR1BVRGV2aWNlLmNyZWF0ZUJ1ZmZlck1hcHBlZCgpOiAiKTsKKwogICAgIEpTQzo6
SlNWYWx1ZSB3cmFwcGVkQXJyYXlCdWZmZXIgPSBKU0M6OmpzTnVsbCgpOwogCi0gICAgYXV0byBi
dWZmZXIgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQnVmZmVyKGRlc2NyaXB0b3IsIEdQVUJ1ZmZlck1h
cHBlZE9wdGlvbjo6SXNNYXBwZWQsIG1fZXJyb3JTY29wZXMuY29weVJlZigpKTsKKyAgICBhdXRv
IGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3JpcHRvciwgR1BVQnVmZmVy
TWFwcGVkT3B0aW9uOjpJc01hcHBlZCwgbV9lcnJvclNjb3Blcyk7CiAgICAgaWYgKGJ1ZmZlcikg
ewogICAgICAgICBhdXRvIGFycmF5QnVmZmVyID0gYnVmZmVyLT5tYXBPbkNyZWF0aW9uKCk7CiAg
ICAgICAgIHdyYXBwZWRBcnJheUJ1ZmZlciA9IHRvSlMoJnN0YXRlLCBKU0M6OmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSksIGFycmF5QnVmZmVy
KTsKQEAgLTE2NiwxMSArMTcwLDEzIEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BV
RGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQCiAKIFJlZjxX
ZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5l
KGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0
CiB7CisgICAgbV9lcnJvclNjb3Blcy0+c2V0RXJyb3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVD
b21wdXRlUGlwZWxpbmUoKTogIik7CisKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlw
dG9yLnRyeUNyZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7
CiAgICAgaWYgKCFncHVEZXNjcmlwdG9yKQogICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpjcmVhdGUobnVsbHB0cik7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2Ut
PnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcy5j
b3B5UmVmKCkpOworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0
ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKICAgICByZXR1cm4gV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKaW5kZXgg
NWY2ZjJmMGM0MDNkNzA3ZGQ2ODI4Y2YxNWUwYThjNDFmY2VkNTRkZS4uNjU1MGE0MDQyZjk2MjMx
ZGY2YjJhOGU4OWFkMzhlMTFmYjAzM2U0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAK
ICAgICB+R1BVQnVmZmVyKCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3Jl
YXRlKFJlZjxHUFVEZXZpY2U+JiYsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZm
ZXJNYXBwZWRPcHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CisgICAgc3RhdGljIFJlZlB0
cjxHUFVCdWZmZXI+IHRyeUNyZWF0ZShHUFVEZXZpY2UmLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlw
dG9yJiwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uLCBHUFVFcnJvclNjb3BlcyYpOwogCiAgICAgUGxh
dGZvcm1CdWZmZXIgKnBsYXRmb3JtQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUJ1
ZmZlci5nZXQoKTsgfQogICAgIHNpemVfdCBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9i
eXRlTGVuZ3RoOyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUGVuZGlu
Z01hcHBpbmdDYWxsYmFjayhNYXBwaW5nQ2FsbGJhY2smJik7CiAgICAgfTsKIAotICAgIEdQVUJ1
ZmZlcihQbGF0Zm9ybUJ1ZmZlclNtYXJ0UHRyJiYsIFJlZjxHUFVEZXZpY2U+JiYsIHNpemVfdCwg
T3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4sIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiwg
UmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKKyAgICBHUFVCdWZmZXIoUGxhdGZvcm1CdWZmZXJTbWFy
dFB0ciYmLCBHUFVEZXZpY2UmLCBzaXplX3QsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6Rmxh
Z3M+LCBHUFVCdWZmZXJNYXBwZWRPcHRpb24sIEdQVUVycm9yU2NvcGVzJik7CiAgICAgc3RhdGlj
IGJvb2wgdmFsaWRhdGVCdWZmZXJVc2FnZShjb25zdCBHUFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BV
QnVmZmVyVXNhZ2U6OkZsYWdzPiwgR1BVRXJyb3JTY29wZXMmKTsKIAogICAgIEpTQzo6QXJyYXlC
dWZmZXIqIHN0YWdpbmdCdWZmZXJGb3JSZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggNDZi
N2FkY2VhZDU4OGM0ZTY5ZjRlNWQyOTFjN2EyYTcyZWQ2MzNjOS4uM2Y4ZjcxOTk4ZmQzMmMyYWI0
Njk4YWE5NTRhMTE2OWRiOTdiMTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtNDYsMTQgKzQ2
LDE0IEBAIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgPSBSZXRhaW5QdHI8
TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+OwogCiBjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmUgOiBw
dWJsaWMgR1BVT2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNv
bnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJvclNjb3BlcyYpOwogCiAg
ICAgY29uc3QgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUqIHBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5l
KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQogCiAg
ICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb21wdXRlRGltZW5zaW9uczsgfQogCiBwcml2YXRlOgotICAgIEdQVUNvbXB1dGVQ
aXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyJiYsIFdITFNMOjpDb21wdXRl
RGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKKyAgICBHUFVDb21wdXRlUGlwZWxp
bmUoUGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVu
c2lvbnMsIEdQVUVycm9yU2NvcGVzJik7CiAKICAgICBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNt
YXJ0UHRyIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmU7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1l
bnNpb25zIG1fY29tcHV0ZURpbWVuc2lvbnMgeyAwLCAwLCAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDMwY2VmNjg3
Zjk0NjZjOTVmYTQ1ZDlmYmI1MjlhY2VjYTMwMWJmZGMuLjU0ZDZmMTViMWZkNWMxN2IyZGQ1ZTE4
YWFjNDc3ZGYxNmYwZTVkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC01Miw5ICs1Miw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVCdWZmZXIo
Y29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgR1BVQnVmZmVyTWFwcGVkT3B0
aW9uIGlzTWFwcGVkLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCitSZWZQdHI8
R1BVQnVmZmVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIEdQVUVy
cm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKLSAgICByZXR1cm4gR1BVQnVmZmVyOjp0cnlDcmVh
dGUobWFrZVJlZigqdGhpcyksIGRlc2NyaXB0b3IsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2Nv
cGVzKSk7CisgICAgcmV0dXJuIEdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9y
LCBpc01hcHBlZCwgZXJyb3JTY29wZXMpOwogfQogCiBSZWZQdHI8R1BVVGV4dHVyZT4gR1BVRGV2
aWNlOjp0cnlDcmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKSBjb25zdApAQCAtODcsOSArODcsOSBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQ
VURldmljZTo6dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlwZQogICAg
IHJldHVybiBHUFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yLCBl
cnJvclNjb3Blcyk7CiB9CiAKLVJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6
dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IsIFJlZjxHUFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykgY29uc3QK
K1JlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBp
cGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQ
VUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0
ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IsIFdURk1vdmUoZXJyb3JTY29w
ZXMpKTsKKyAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRl
c2NyaXB0b3IsIGVycm9yU2NvcGVzKTsKIH0KIAogUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IEdQ
VURldmljZTo6dHJ5Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggYjk0OGM4YTYyNTgy
OWQxOTljMTU4MWU3NThiY2Y5MTM5MjU4NDMxNS4uYzhmYjAyNTI3NTk0YTc0ZTFmZWNlOTY0MjIx
MTgyZGY2ZjdmNzI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVEZXZpY2UuaApAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBHUFVEZXZpY2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVRGV2aWNl
PgogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8R1BVRGV2aWNlPiB0cnlDcmVhdGUoY29uc3Qg
T3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1
ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZm
ZXJNYXBwZWRPcHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CisgICAgUmVmUHRyPEdQVUJ1
ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZm
ZXJNYXBwZWRPcHRpb24sIEdQVUVycm9yU2NvcGVzJik7CiAgICAgUmVmUHRyPEdQVVRleHR1cmU+
IHRyeUNyZWF0ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0b3ImKSBjb25zdDsKICAg
ICBSZWZQdHI8R1BVU2FtcGxlcj4gdHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVz
Y3JpcHRvciYpIGNvbnN0OwogCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0
cjxHUFVTaGFkZXJNb2R1bGU+IHRyeUNyZWF0ZVNoYWRlck1vZHVsZShjb25zdCBHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yJikgY29uc3Q7CiAgICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0
cnlDcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Im
LCBHUFVFcnJvclNjb3BlcyYpIGNvbnN0OwotICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+
IHRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKSBjb25zdDsKKyAgICBSZWZQdHI8R1BVQ29tcHV0
ZVBpcGVsaW5lPiB0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciYsIEdQVUVycm9yU2NvcGVzJikgY29uc3Q7CiAKICAgICBSZWZQdHI8R1BV
Q29tbWFuZEJ1ZmZlcj4gdHJ5Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVz
LmNwcAppbmRleCBjMTI1NmE5MWEyNjcwYjBhNjg1YTYwNDliZmE0MjJkMWZhYWE1M2UwLi5mZjkz
ODU1MzBlYjhiN2I0MDEwZWVjZTQzYWNhMGJjNDgzNjc3ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNjb3Blcy5jcHAKQEAg
LTYzLDkgKzYzLDkgQEAgdm9pZCBHUFVFcnJvclNjb3Blczo6Z2VuZXJhdGVFcnJvcihjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIEdQVUVycm9yRmlsdGVyIGZpbHRlcikKICAgICBpdGVyYXRvci0+ZXJy
b3IgPSBjcmVhdGVFcnJvcihmaWx0ZXIsIG1lc3NhZ2UpOwogfQogCi12b2lkIEdQVUVycm9yU2Nv
cGVzOjpnZW5lcmF0ZVByZWZpeGVkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBHUFVFcnJv
ckZpbHRlciBmaWx0ZXIpCit2b2lkIEdQVUVycm9yU2NvcGVzOjpnZW5lcmF0ZVByZWZpeGVkRXJy
b3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGdlbmVyYXRlRXJyb3IobV9wcmVmaXgg
KyBtZXNzYWdlLCBmaWx0ZXIpOworICAgIGdlbmVyYXRlRXJyb3IobV9wcmVmaXggKyBtZXNzYWdl
LCBHUFVFcnJvckZpbHRlcjo6VmFsaWRhdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVF
cnJvclNjb3Blcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVy
cm9yU2NvcGVzLmgKaW5kZXggZTllZTZlYWRjMGY2YWQ1MTE0ZjMwYTAwNWEwZmU4Njg0NTRhYzBi
NC4uYWY4ODU4OGVmMmFiYTBiZWJkNTFiN2M0M2MxM2NjMWEwNTMwZGM5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPEdQVUVycm9yPiBwb3BFcnJv
clNjb3BlKFN0cmluZyYgZmFpbE1lc3NhZ2UpOwogCiAgICAgdm9pZCBnZW5lcmF0ZUVycm9yKGNv
bnN0IFN0cmluZyYsIEdQVUVycm9yRmlsdGVyID0gR1BVRXJyb3JGaWx0ZXI6OlZhbGlkYXRpb24p
OwotICAgIHZvaWQgZ2VuZXJhdGVQcmVmaXhlZEVycm9yKGNvbnN0IFN0cmluZyYsIEdQVUVycm9y
RmlsdGVyID0gR1BVRXJyb3JGaWx0ZXI6OlZhbGlkYXRpb24pOworICAgIHZvaWQgZ2VuZXJhdGVQ
cmVmaXhlZEVycm9yKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RXJyb3JQcmVmaXgoY29u
c3QgU3RyaW5nJiBwcmVmaXgpIHsgbV9wcmVmaXggPSBwcmVmaXg7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVC
dWZmZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVCdWZmZXJNZXRhbC5tbQppbmRleCA1Y2JjNjQ4NTViZGFkODk4OTBkNTQ4MjkzNWEyOWZk
NDliNTYxZWJhLi4yYjI3N2RjY2I2NDU5YWU1NjkxMzAzMDAzZWYzM2QyNjMzNjkxNmM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVm
ZmVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVUJ1ZmZlck1ldGFsLm1tCkBAIC01MCw3ICs1MCw3IEBAIGJvb2wgR1BVQnVmZmVyOjp2
YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBPcHRpb25TZXQ8R1BV
QnVmZmVyCiAgICAgfQogCiAgICAgaWYgKHVzYWdlLmNvbnRhaW5zQWxsKHsgR1BVQnVmZmVyVXNh
Z2U6OkZsYWdzOjpNYXBXcml0ZSwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpNYXBSZWFkIH0pKSB7
Ci0gICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIkdQVUJ1ZmZlcjo6dHJ5Q3JlYXRl
KCk6IEJ1ZmZlciBjYW5ub3QgaGF2ZSBib3RoIE1BUF9SRUFEIGFuZCBNQVBfV1JJVEUgdXNhZ2Uh
Iik7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiQnVmZmVyIGNh
bm5vdCBoYXZlIGJvdGggTUFQX1JFQUQgYW5kIE1BUF9XUklURSB1c2FnZSEiKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNjIsMTcgKzYyLDE3IEBAIGJvb2wgR1BVQnVmZmVy
Ojp2YWxpZGF0ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBPcHRpb25TZXQ8
R1BVQnVmZmVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1
ZmZlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlLCBjb25zdCBHUFVCdWZmZXJE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIFJl
ZjxHUFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykKK1JlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1
ZmZlcjo6dHJ5Q3JlYXRlKEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIEdQVUVycm9y
U2NvcGVzJiBlcnJvclNjb3BlcykKIHsKICAgICAvLyBNVExCdWZmZXIgc2l6ZSAoTlNVSW50ZWdl
cikgaXMgMzIgYml0cyBvbiBzb21lIHBsYXRmb3Jtcy4KICAgICBOU1VJbnRlZ2VyIHNpemUgPSAw
OwogICAgIGlmICghV1RGOjpjb252ZXJ0U2FmZWx5KGRlc2NyaXB0b3Iuc2l6ZSwgc2l6ZSkpIHsK
LSAgICAgICAgZXJyb3JTY29wZXMtPmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpP
dXRPZk1lbW9yeSk7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVy
cm9yRmlsdGVyOjpPdXRPZk1lbW9yeSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IAogICAgIGF1dG8gdXNhZ2UgPSBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPjo6ZnJv
bVJhdyhkZXNjcmlwdG9yLnVzYWdlKTsKLSAgICBpZiAoIXZhbGlkYXRlQnVmZmVyVXNhZ2UoZGV2
aWNlLmdldCgpLCB1c2FnZSwgZXJyb3JTY29wZXMpKQorICAgIGlmICghdmFsaWRhdGVCdWZmZXJV
c2FnZShkZXZpY2UsIHVzYWdlLCBlcnJvclNjb3BlcykpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtOTcsMjIgKzk3LDIyIEBAIFJlZlB0cjxHUFVCdWZm
ZXI+IEdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlLCBjb25zdCBH
UFVCdWZmZXJECiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBtdGxC
dWZmZXIgPSBhZG9wdE5TKFtkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExl
bmd0aDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXNjcmlwdG9yLnNpemUpIG9wdGlvbnM6cmVz
b3VyY2VPcHRpb25zXSk7CisgICAgbXRsQnVmZmVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3Jt
RGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXNj
cmlwdG9yLnNpemUpIG9wdGlvbnM6cmVzb3VyY2VPcHRpb25zXSk7CiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCiAgICAgaWYgKCFtdGxCdWZmZXIpIHsKLSAgICAgICAgZXJyb3JT
Y29wZXMtPmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSk7Cisg
ICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpPdXRP
Zk1lbW9yeSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKG10bEJ1ZmZlciksIFdURk1vdmUoZGV2aWNl
KSwgc2l6ZSwgdXNhZ2UsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKG10bEJ1ZmZlciksIGRldmljZSwg
c2l6ZSwgdXNhZ2UsIGlzTWFwcGVkLCBlcnJvclNjb3BlcykpOwogfQogCi1HUFVCdWZmZXI6OkdQ
VUJ1ZmZlcihSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGJ1ZmZlciwgUmVmPEdQVURldmljZT4mJiBk
ZXZpY2UsIHNpemVfdCBzaXplLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiB1c2Fn
ZSwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIGlzTWFwcGVkLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYg
ZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNlKFdURk1vdmUoZXJyb3JTY29wZXMpKQor
R1BVQnVmZmVyOjpHUFVCdWZmZXIoUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBidWZmZXIsIEdQVURl
dmljZSYgZGV2aWNlLCBzaXplX3Qgc2l6ZSwgT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFn
cz4gdXNhZ2UsIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgR1BVRXJyb3JTY29wZXMm
IGVycm9yU2NvcGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkK
ICAgICAsIG1fcGxhdGZvcm1CdWZmZXIoV1RGTW92ZShidWZmZXIpKQotICAgICwgbV9kZXZpY2Uo
V1RGTW92ZShkZXZpY2UpKQorICAgICwgbV9kZXZpY2UobWFrZVJlZihkZXZpY2UpKQogICAgICwg
bV9ieXRlTGVuZ3RoKHNpemUpCiAgICAgLCBtX3VzYWdlKHVzYWdlKQogICAgICwgbV9pc01hcHBl
ZEZyb21DcmVhdGlvbihpc01hcHBlZCA9PSBHUFVCdWZmZXJNYXBwZWRPcHRpb246OklzTWFwcGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4IDA4ODRmMjc1
OTRiYTc1NGQ0Yjc3OTcwNWNhZDAzY2QyOWYwNGE2MWEuLjJiNGM2NTc4MDViN2NiNDIzMzg1ZWMx
MGZhNTQyZWU3ZTY5MGE3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0
YWwubW0KQEAgLTM4LDE4ICszOCwxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFt
ZSwgTVRMTGlicmFyeSAqY29tcHV0ZU1ldGFsTGlicmFyeSwgTVRMQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvciAqbXRsRGVzY3JpcHRvciwgY29uc3QgU3RyaW5nJiBjb21wdXRlRW50cnlQb2ludE5h
bWUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKK3N0YXRpYyBib29sIHRyeVNldE1ldGFs
RnVuY3Rpb25zKE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExpYnJhcnksIE1UTENvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0IFN0cmluZyYgY29tcHV0ZUVudHJ5
UG9pbnROYW1lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgaWYgKCFjb21wdXRlTWV0YWxMaWJyYXJ5KSB7Ci0g
ICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUs
ICI6IE1UTExpYnJhcnkgZm9yIGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIikpOworICAg
ICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IoIk1UTExpYnJhcnkgZm9yIGNv
bXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKICAgICBhdXRvIGZ1bmN0aW9uID0gYWRvcHROUyhbY29tcHV0ZU1ldGFsTGlicmFyeSBu
ZXdGdW5jdGlvbldpdGhOYW1lOmNvbXB1dGVFbnRyeVBvaW50TmFtZV0pOwogICAgIGlmICghZnVu
Y3Rpb24pIHsKLSAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1
bmN0aW9uTmFtZSwgIjogQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0aW9uIFwiIiwgY29t
cHV0ZUVudHJ5UG9pbnROYW1lLCAiXCIhIikpOworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0
ZVByZWZpeGVkRXJyb3IobWFrZVN0cmluZygiQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0
aW9uICciLCBjb21wdXRlRW50cnlQb2ludE5hbWUsICInISIpKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgYm9vbCB0cnlTZXRNZXRhbEZ1
bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1UTExpYnJhcnkgKmNvbQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1l
bnNpb25zPiB0cnlTZXRGdW5jdGlvbnMoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBj
b25zdCBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciYgY29tcHV0ZVN0YWdlLCBjb25zdCBHUFVE
ZXZpY2UmIGRldmljZSwgTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciogbXRsRGVzY3JpcHRv
ciwgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+JiB3aGxzbERlc2Ny
aXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKK3N0YXRpYyBPcHRpb25hbDxXSExT
TDo6Q29tcHV0ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvciYgY29tcHV0ZVN0YWdlLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgTVRM
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciogbXRsRGVzY3JpcHRvciwgT3B0aW9uYWw8V0hMU0w6
OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+JiB3aGxzbERlc2NyaXB0b3IsIEdQVUVycm9yU2Nv
cGVzJiBlcnJvclNjb3BlcykKIHsKICAgICBSZXRhaW5QdHI8TVRMTGlicmFyeT4gY29tcHV0ZUxp
YnJhcnk7CiAgICAgU3RyaW5nIGNvbXB1dGVFbnRyeVBvaW50OwpAQCAtNzYsNyArNzYsNyBAQCBz
dGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlTZXRGdW5jdGlvbnMo
Y29uc3QgY2hhciogY29uc3QgZnVuYwogCiAgICAgICAgIGF1dG8gd2hsc2xDb21waWxlUmVzdWx0
ID0gV0hMU0w6OnByZXBhcmUod2hsc2xTb3VyY2UsICp3aGxzbERlc2NyaXB0b3IpOwogICAgICAg
ICBpZiAoIXdobHNsQ29tcGlsZVJlc3VsdCkgewotICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2Vu
ZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogV0hMU0wgY29tcGlsYXRpb24g
ZmFpbGVkISIpKTsKKyAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJv
cigiV0hMU0wgY29tcGlsYXRpb24gZmFpbGVkISIpOwogICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIE9wdGlvbmFs
PFdITFNMOjpDb21wdXRlRGltZW5zaW9ucz4gdHJ5U2V0RnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmMKICAgICAgICAgY29tcHV0ZUVudHJ5UG9pbnQgPSBjb21wdXRlU3RhZ2UuZW50cnlQ
b2ludDsKICAgICB9CiAKLSAgICBpZiAodHJ5U2V0TWV0YWxGdW5jdGlvbnMoZnVuY3Rpb25OYW1l
LCBjb21wdXRlTGlicmFyeS5nZXQoKSwgbXRsRGVzY3JpcHRvciwgY29tcHV0ZUVudHJ5UG9pbnQs
IGVycm9yU2NvcGVzKSkKKyAgICBpZiAodHJ5U2V0TWV0YWxGdW5jdGlvbnMoY29tcHV0ZUxpYnJh
cnkuZ2V0KCksIG10bERlc2NyaXB0b3IsIGNvbXB1dGVFbnRyeVBvaW50LCBlcnJvclNjb3Blcykp
CiAgICAgICAgIHJldHVybiBjb21wdXRlRGltZW5zaW9uczsKIAogICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CkBAIC0xMTEsNyArMTExLDcgQEAgc3RydWN0IENvbnZlcnRSZXN1bHQgewogICAgIFdI
TFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9uczsKIH07CiAKLXN0YXRpYyBP
cHRpb25hbDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihj
b25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNj
b3BlcyYgZXJyb3JTY29wZXMpCitzdGF0aWMgT3B0aW9uYWw8Q29udmVydFJlc3VsdD4gY29udmVy
dENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUVycm9yU2NvcGVz
JiBlcnJvclNjb3BlcykKIHsKICAgICBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcj4gbXRsRGVzY3JpcHRvcjsKIApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBPcHRpb25h
bDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBj
aGFyKiBjb25zCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIGlmICghbXRs
RGVzY3JpcHRvcikgewotICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJp
bmcoZnVuY3Rpb25OYW1lLCAiOiBFcnJvciBjcmVhdGluZyBNVExEZXNjcmlwdG9yISIpKTsKKyAg
ICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKCJFcnJvciBjcmVhdGluZyBN
VExDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yISIpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMTM2LDEyICsxMzYsMTIgQEAgc3RhdGljIE9wdGlvbmFsPENvbnZl
cnRSZXN1bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNv
bnMKICAgICAgICAgaWYgKGF1dG8gbGF5b3V0ID0gY29udmVydExheW91dCgqZGVzY3JpcHRvci5s
YXlvdXQpKQogICAgICAgICAgICAgd2hsc2xEZXNjcmlwdG9yLT5sYXlvdXQgPSBXVEZNb3ZlKCps
YXlvdXQpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRl
RXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IEVycm9yIGNvbnZlcnRpbmcgR1BVUGlw
ZWxpbmVMYXlvdXQhIikpOworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhl
ZEVycm9yKCJFcnJvciBjb252ZXJ0aW5nIEdQVVBpcGVsaW5lTGF5b3V0ISIpOwogICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRv
IGNvbXB1dGVEaW1lbnNpb25zID0gdHJ5U2V0RnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29tcHV0
ZVN0YWdlLCBkZXZpY2UsIG10bERlc2NyaXB0b3IuZ2V0KCksIHdobHNsRGVzY3JpcHRvciwgZXJy
b3JTY29wZXMpKQorICAgIGlmIChhdXRvIGNvbXB1dGVEaW1lbnNpb25zID0gdHJ5U2V0RnVuY3Rp
b25zKGNvbXB1dGVTdGFnZSwgZGV2aWNlLCBtdGxEZXNjcmlwdG9yLmdldCgpLCB3aGxzbERlc2Ny
aXB0b3IsIGVycm9yU2NvcGVzKSkKICAgICAgICAgcmV0dXJuIHt7IG10bERlc2NyaXB0b3IsICpj
b21wdXRlRGltZW5zaW9ucyB9fTsKIAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0xNTIs
MTQgKzE1MiwxNCBAQCBzdHJ1Y3QgQ3JlYXRlUmVzdWx0IHsKICAgICBXSExTTDo6Q29tcHV0ZURp
bWVuc2lvbnMgY29tcHV0ZURpbWVuc2lvbnM7CiB9OwogCi1zdGF0aWMgT3B0aW9uYWw8Q3JlYXRl
UmVzdWx0PiB0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25z
dCBmdW5jdGlvbk5hbWUsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29w
ZXMpCitzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0cnlDcmVhdGVNVExDb21wdXRlUGlw
ZWxpbmVTdGF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQog
ewogICAgIGlmICghZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkpIHsKLSAgICAgICAgZXJyb3JTY29w
ZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogSW52YWxpZCBHUFVE
ZXZpY2UhIikpOworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IoIklu
dmFsaWQgR1BVRGV2aWNlISIpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0K
IAotICAgIGF1dG8gY29udmVydFJlc3VsdCA9IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yKGZ1bmN0aW9uTmFtZSwgZGVzY3JpcHRvciwgZGV2aWNlLCBlcnJvclNjb3Blcyk7CisgICAg
YXV0byBjb252ZXJ0UmVzdWx0ID0gY29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoZGVz
Y3JpcHRvciwgZGV2aWNlLCBlcnJvclNjb3Blcyk7CiAgICAgaWYgKCFjb252ZXJ0UmVzdWx0KQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIEFTU0VSVChjb252ZXJ0UmVzdWx0LT5w
aXBlbGluZURlc2NyaXB0b3IpOwpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyBPcHRpb25hbDxD
cmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGNvbnN0IGNoYXIq
IGNvbnN0CiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgcGlwZWxpbmUgPSBhZG9wdE5T
KFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdDb21wdXRlUGlwZWxpbmVTdGF0ZVdpdGhEZXNj
cmlwdG9yOm10bERlc2NyaXB0b3IuZ2V0KCkgb3B0aW9uczpNVExQaXBlbGluZU9wdGlvbk5vbmUg
cmVmbGVjdGlvbjpuaWwgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKCFwaXBlbGluZSkgewotICAg
ICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCAi
OiAiLCAoZXJyb3IgPyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbi5VVEY4U3RyaW5nIDogIlVu
YWJsZSB0byBjcmVhdGUgTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUhIikpKTsKKyAgICAgICAgZXJy
b3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKGVycm9yID8gZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24uVVRGOFN0cmluZyA6ICJVbmFibGUgdG8gY3JlYXRlIE1UTENvbXB1dGVQaXBlbGlu
ZVN0YXRlISIpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTgx
LDE5ICsxODEsMTcgQEAgc3RhdGljIE9wdGlvbmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRlTVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGUoY29uc3QgY2hhciogY29uc3QKICAgICByZXR1cm4ge3sgcGlw
ZWxpbmUsIGNvbnZlcnRSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zIH19OwogfQogCi1SZWZQdHI8
R1BVQ29tcHV0ZVBpcGVsaW5lPiBHUFVDb21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZShjb25zdCBH
UFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVzKQorUmVmUHRyPEdQVUNv
bXB1dGVQaXBlbGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0
b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKLSAgICBjb25zdCBjaGFyKiBjb25z
dCBmdW5jdGlvbk5hbWUgPSAiR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKSI7Ci0KLSAg
ICBhdXRvIGNyZWF0ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGZ1
bmN0aW9uTmFtZSwgZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJvclNjb3Blcyk7CisgICAgYXV0byBj
cmVhdGVSZXN1bHQgPSB0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShkZXZpY2UsIGRl
c2NyaXB0b3IsIGVycm9yU2NvcGVzKTsKICAgICBpZiAoIWNyZWF0ZVJlc3VsdCkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBl
bGluZShXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+
Y29tcHV0ZURpbWVuc2lvbnMsIFdURk1vdmUoZXJyb3JTY29wZXMpKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBHUFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVs
aW5lU3RhdGUpLCBjcmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zLCBlcnJvclNjb3Blcykp
OwogfQogCi1HUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8
TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5z
aW9ucyBjb21wdXRlRGltZW5zaW9ucywgUmVmPEdQVUVycm9yU2NvcGVzPiYmIGVycm9yU2NvcGVz
KQotICAgIDogR1BVT2JqZWN0QmFzZShXVEZNb3ZlKGVycm9yU2NvcGVzKSkKK0dQVUNvbXB1dGVQ
aXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVT
dGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNp
b25zLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKG1h
a2VSZWYoZXJyb3JTY29wZXMpKQogICAgICwgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZN
b3ZlKHBpcGVsaW5lKSkKICAgICAsIG1fY29tcHV0ZURpbWVuc2lvbnMoY29tcHV0ZURpbWVuc2lv
bnMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IGE4M2Mw
ZmEwMTJmOGIzODk2MzFmMWZiMmMwM2EzMTFiYWUxZWUyNjIuLjNlYzc0YjYxZTQyMzBmMGQ5ZDA0
YjI5MjM3ZDE0MzgyMDliYjQ2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1l
dGFsLm1tCkBAIC0zNDQsNyArMzQ0LDcgQEAgc3RhdGljIGJvb2wgdHJ5U2V0TWV0YWxGdW5jdGlv
bnMoTVRMTGlicmFyeSAqdmVydGV4TWV0YWxMaWJyYXJ5LCBNVExMaWJyYXJ5ICpmcmEKIAogICAg
ICAgICBhdXRvIGZ1bmN0aW9uID0gYWRvcHROUyhbdmVydGV4TWV0YWxMaWJyYXJ5IG5ld0Z1bmN0
aW9uV2l0aE5hbWU6dmVydGV4RW50cnlQb2ludE5hbWVdKTsKICAgICAgICAgaWYgKCFmdW5jdGlv
bikgewotICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKG1ha2VT
dHJpbmcoIkNhbm5vdCBjcmVhdGUgdmVydGV4IE1UTEZ1bmN0aW9uIFwiIiwgdmVydGV4RW50cnlQ
b2ludE5hbWUsICJcIiEiKSk7CisgICAgICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZp
eGVkRXJyb3IobWFrZVN0cmluZygiQ2Fubm90IGNyZWF0ZSB2ZXJ0ZXggTVRMRnVuY3Rpb24gJyIs
IHZlcnRleEVudHJ5UG9pbnROYW1lLCAiJyEiKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KIApAQCAtMzYzLDcgKzM2Myw3IEBAIHN0YXRpYyBib29sIHRyeVNldE1ldGFs
RnVuY3Rpb25zKE1UTExpYnJhcnkgKnZlcnRleE1ldGFsTGlicmFyeSwgTVRMTGlicmFyeSAqZnJh
CiAgICAgICAgIGF1dG8gZnVuY3Rpb24gPSBhZG9wdE5TKFtmcmFnbWVudE1ldGFsTGlicmFyeSBu
ZXdGdW5jdGlvbldpdGhOYW1lOmZyYWdtZW50RW50cnlQb2ludE5hbWVdKTsKIAogICAgICAgICBp
ZiAoIWZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVk
RXJyb3IobWFrZVN0cmluZygiQ2Fubm90IGNyZWF0ZSBmcmFnbWVudCBNVExGdW5jdGlvbiBcIiIs
IGZyYWdtZW50RW50cnlQb2ludE5hbWUsICJcIiEiKSk7CisgICAgICAgICAgICBlcnJvclNjb3Bl
cy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IobWFrZVN0cmluZygiQ2Fubm90IGNyZWF0ZSBmcmFnbWVu
dCBNVExGdW5jdGlvbiAnIiwgZnJhZ21lbnRFbnRyeVBvaW50TmFtZSwgIichIikpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375003</attachid>
            <date>2019-07-26 17:29:59 -0700</date>
            <delta_ts>2019-07-27 17:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200097-20190726172958.patch</filename>
            <type>text/plain</type>
            <size>29537</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRkNTVlY2UwY2Y4ZGJj
MDY5N2I2NjZlYTA0NDZiNjMzNDU4NzFiZC4uZjM4MmJhNjhkNzg1NTY4NWEwODIwZjNmZWVhZGFi
ZDRmYWU2MDI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA3LTI2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVXBkYXRl
IEdQVUNvbXB1dGVQaXBlbGluZSBlcnJvcnMgdG8gbWF0Y2ggR1BVUmVuZGVyUGlwZWxpbmUgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBwYXNzaW5nIGFyb3VuZCBhIGZ1bmN0aW9uTmFtZSBpbiBHUFVDb21wdXRlUGlw
ZWxpbmUgY3JlYXRpb24gaW4gZmF2b3Igb2Ygc2V0dGluZyBpdCBvbiB0aGUgR1BVRXJyb3JTY29w
ZXMuCisgICAgICAgIEFsc28sIFdlYkdQVSBvYmplY3RzIG5vIGxvbmdlciBjcmVhdGUgbmV3IFJl
Zjw+cyB1bmxlc3Mgb2JqZWN0IGNyZWF0aW9uIHN1Y2NlZWRzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0
ZUJ1ZmZlck1hcHBlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZUNvbXB1dGVQaXBlbGluZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUVycm9yU2NvcGVzOjpnZW5lcmF0ZVByZWZpeGVkRXJyb3IpOiBPbmx5IHZhbGlk
YXRvbiBlcnJvcnMgaGF2ZSBtZXNzYWdlcyByaWdodCBub3cuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQnVm
ZmVyOjp2YWxpZGF0ZUJ1ZmZlclVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6
dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6R1BVQnVmZmVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0
YWwubW06CisgICAgICAgIChXZWJDb3JlOjp0cnlTZXRNZXRhbEZ1bmN0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjp0cnlTZXRGdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydENv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVs
aW5lOjp0cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpH
UFVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0TWV0
YWxGdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0RnVuY3Rpb25zKToKKworICAg
ICAgICBUaGVzZSBjbGFzc2VzIHdlcmUgbWFkZSBSZWZDb3VudGVkIGluIGEgcHJldmlvdXMgcGF0
Y2g7IHJlbW92ZSB0aGVpciBtb3ZlIGN0b3JzIHRvIGZpeCBidWlsZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xBcnJheVJlZmVyZW5jZVR5cGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xBcnJheVR5cGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xQb2ludGVyVHlwZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlZmVyZW5jZVR5cGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5uYW1lZFR5cGUuaDoKKwogMjAxOS0wNy0y
NiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGZp
cmUgcmVhZHlzdGF0ZWNoYW5nZSBldmVudHMgYXQgZG9jdW1lbnRzIGFib3V0IHRvIGdldCByZXBs
YWNlZCBieSBqYXZhc2NyaXB0IFVSTHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xBcnJheVJlZmVyZW5jZVR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5o
CmluZGV4IDc4OTk2MmNmMWM2MTdjNDViY2U5YjgyYTg3MTgyNDgzZDBiNjJkMDguLjUxYWU0NGY5
MjYwNDgxYTc3NjE0Mzc5N2MxZTFjNTNkNDNhZDY5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVm
ZXJlbmNlVHlwZS5oCkBAIC01Niw3ICs1Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BcnJh
eVJlZmVyZW5jZVR5cGUoKSA9IGRlZmF1bHQ7CiAKICAgICBBcnJheVJlZmVyZW5jZVR5cGUoY29u
c3QgQXJyYXlSZWZlcmVuY2VUeXBlJikgPSBkZWxldGU7Ci0gICAgQXJyYXlSZWZlcmVuY2VUeXBl
KEFycmF5UmVmZXJlbmNlVHlwZSYmKSA9IGRlZmF1bHQ7CiAKICAgICBib29sIGlzQXJyYXlSZWZl
cmVuY2VUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xBcnJheVR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlw
ZS5oCmluZGV4IGJhYmVhNmExMmM0NzY3MDY5NjhkMWMwZjgwYjQ1NTZjNGQyOGQwM2EuLmIzNDE2
ZTA4ZjUwMTFhMDFjOTI1ZWU3MmVhZWFkMzhiYWEyZjRlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oCkBA
IC01OCw3ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BcnJheVR5cGUoKSA9IGRlZmF1
bHQ7CiAKICAgICBBcnJheVR5cGUoY29uc3QgQXJyYXlUeXBlJikgPSBkZWxldGU7Ci0gICAgQXJy
YXlUeXBlKEFycmF5VHlwZSYmKSA9IGRlZmF1bHQ7CiAKICAgICBib29sIGlzQXJyYXlUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xQb2ludGVyVHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUG9pbnRlclR5cGUuaAppbmRl
eCAzYzM4NjBhOTE4MGVkNDRkMjhiZDg3ODJiMjBiMzY4OGQwNGNkNTIxLi5lMDUwNjg5YmQ5ZWJi
NTU5ZmY4ZWQ1OTNhMzBjMmEzYTFiY2E5YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xQb2ludGVyVHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFBvaW50ZXJUeXBlLmgKQEAgLTU3
LDcgKzU3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBvaW50ZXJUeXBlKCkgPSBkZWZhdWx0
OwogCiAgICAgUG9pbnRlclR5cGUoY29uc3QgUG9pbnRlclR5cGUmKSA9IGRlbGV0ZTsKLSAgICBQ
b2ludGVyVHlwZShQb2ludGVyVHlwZSYmKSA9IGRlZmF1bHQ7CiAKICAgICBib29sIGlzUG9pbnRl
clR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlZmVyZW5jZVR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlZmVyZW5j
ZVR5cGUuaAppbmRleCAwOWZjNzg4ZDc3ZDJjZjRlNzc5M2Q2YzY2NDRiNmMxZmIwODM4NmRmLi4y
NTdkOWM0NDFhYzQ1M2YyZTM0Mjk1Nzg3M2RhMWQwYjdmYjYwYzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZWZlcmVuY2VUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVmZXJl
bmNlVHlwZS5oCkBAIC01NCw3ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWZlcmVu
Y2VUeXBlKCkgPSBkZWZhdWx0OwogCiAgICAgUmVmZXJlbmNlVHlwZShjb25zdCBSZWZlcmVuY2VU
eXBlJikgPSBkZWxldGU7Ci0gICAgUmVmZXJlbmNlVHlwZShSZWZlcmVuY2VUeXBlJiYpID0gZGVm
YXVsdDsKIAogICAgIGJvb2wgaXNSZWZlcmVuY2VUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmgKaW5kZXggZjBmOTZmZDVlODk5ZjUy
OGFkMGIyMjA4ODRiODQzNmZkN2JjNGQxOS4uZjJlZjAyODkxNDM1N2Q4ZmQxYzhhMjhhZTQzYTM4
MjYzZWFmN2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hM
U0wvQVNUL1dITFNMVHlwZVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVSZWZlcmVuY2UuaApAQCAtNjAsNyArNjAsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+VHlwZVJlZmVyZW5jZSgpID0gZGVmYXVsdDsKIAogICAgIFR5
cGVSZWZlcmVuY2UoY29uc3QgVHlwZVJlZmVyZW5jZSYpID0gZGVsZXRlOwotICAgIFR5cGVSZWZl
cmVuY2UoVHlwZVJlZmVyZW5jZSYmKSA9IGRlZmF1bHQ7CiAKICAgICBzdGF0aWMgUmVmPFR5cGVS
ZWZlcmVuY2U+IHdyYXAoQ29kZUxvY2F0aW9uLCBOYW1lZFR5cGUmIHJlc29sdmVkVHlwZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TFVubmFtZWRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xVbm5hbWVkVHlwZS5oCmluZGV4IGE0OGE4MzFhM2M2ODIxYjM2MjYwZjM5ZTRmZDc5Zjlk
MjViODVhMTAuLmU5N2NkNDE3OTY3ZWQ3NzBhNmRkNGRiNGFmZWFhNDc1YTM1MDU1YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVubmFt
ZWRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dI
TFNMVW5uYW1lZFR5cGUuaApAQCAtNTEsNyArNTEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
VW5uYW1lZFR5cGUoKSA9IGRlZmF1bHQ7CiAKICAgICBVbm5hbWVkVHlwZShjb25zdCBVbm5hbWVk
VHlwZSYpID0gZGVsZXRlOwotICAgIFVubmFtZWRUeXBlKFVubmFtZWRUeXBlJiYpID0gZGVmYXVs
dDsKIAogICAgIGJvb2wgaXNVbm5hbWVkVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUeXBlUmVmZXJlbmNlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwCmluZGV4IDlkYjBiNGM0NWVkZTZhODkzM2EzMGVkM2NhNjQ2YjNjYzliY2UwMTguLmRiOGQ5
OTAzYTk2YTdhYjMyMzgwMjAyN2U5YzZmODU0MjQ5OWIxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtODcsMTUgKzg3LDE5IEBAIFdl
YkdQVURldmljZTo6V2ViR1BVRGV2aWNlKFJlZjxjb25zdCBXZWJHUFVBZGFwdGVyPiYmIGFkYXB0
ZXIsIFJlZjxHUFVEZXZpY2U+JiYKIAogUmVmPFdlYkdQVUJ1ZmZlcj4gV2ViR1BVRGV2aWNlOjpj
cmVhdGVCdWZmZXIoY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QK
IHsKLSAgICBhdXRvIGJ1ZmZlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3JpcHRv
ciwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uOjpOb3RNYXBwZWQsIG1fZXJyb3JTY29wZXMuY29weVJl
ZigpKTsKKyAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJvclByZWZpeCgiR1BVRGV2aWNlLmNyZWF0
ZUJ1ZmZlcigpOiAiKTsKKworICAgIGF1dG8gYnVmZmVyID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJ1
ZmZlcihkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb246Ok5vdE1hcHBlZCwgbV9lcnJv
clNjb3Blcyk7CiAgICAgcmV0dXJuIFdlYkdQVUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVy
KSk7CiB9CiAKIFZlY3RvcjxKU0M6OkpTVmFsdWU+IFdlYkdQVURldmljZTo6Y3JlYXRlQnVmZmVy
TWFwcGVkKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgR1BVQnVmZmVyRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikgY29uc3QKIHsKKyAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJvclByZWZpeCgi
R1BVRGV2aWNlLmNyZWF0ZUJ1ZmZlck1hcHBlZCgpOiAiKTsKKwogICAgIEpTQzo6SlNWYWx1ZSB3
cmFwcGVkQXJyYXlCdWZmZXIgPSBKU0M6OmpzTnVsbCgpOwogCi0gICAgYXV0byBidWZmZXIgPSBt
X2RldmljZS0+dHJ5Q3JlYXRlQnVmZmVyKGRlc2NyaXB0b3IsIEdQVUJ1ZmZlck1hcHBlZE9wdGlv
bjo6SXNNYXBwZWQsIG1fZXJyb3JTY29wZXMuY29weVJlZigpKTsKKyAgICBhdXRvIGJ1ZmZlciA9
IG1fZGV2aWNlLT50cnlDcmVhdGVCdWZmZXIoZGVzY3JpcHRvciwgR1BVQnVmZmVyTWFwcGVkT3B0
aW9uOjpJc01hcHBlZCwgbV9lcnJvclNjb3Blcyk7CiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAg
ICBhdXRvIGFycmF5QnVmZmVyID0gYnVmZmVyLT5tYXBPbkNyZWF0aW9uKCk7CiAgICAgICAgIHdy
YXBwZWRBcnJheUJ1ZmZlciA9IHRvSlMoJnN0YXRlLCBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSksIGFycmF5QnVmZmVyKTsKQEAgLTE2
NiwxMSArMTcwLDEzIEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpj
cmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQCiAKIFJlZjxXZWJHUFVDb21w
dXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdl
YkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CisgICAg
bV9lcnJvclNjb3Blcy0+c2V0RXJyb3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVDb21wdXRlUGlw
ZWxpbmUoKTogIik7CisKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNy
ZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAgaWYg
KCFncHVEZXNjcmlwdG9yKQogICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpj
cmVhdGUobnVsbHB0cik7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0
ZUNvbXB1dGVQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcy5jb3B5UmVmKCkp
OworICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5l
KCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKICAgICByZXR1cm4gV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKaW5kZXggNWY2ZjJmMGM0
MDNkNzA3ZGQ2ODI4Y2YxNWUwYThjNDFmY2VkNTRkZS4uNjU1MGE0MDQyZjk2MjMxZGY2YjJhOGU4
OWFkMzhlMTFmYjAzM2U0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXIuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICB+R1BV
QnVmZmVyKCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlKFJlZjxH
UFVEZXZpY2U+JiYsIGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZmZXJNYXBwZWRP
cHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CisgICAgc3RhdGljIFJlZlB0cjxHUFVCdWZm
ZXI+IHRyeUNyZWF0ZShHUFVEZXZpY2UmLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiwgR1BV
QnVmZmVyTWFwcGVkT3B0aW9uLCBHUFVFcnJvclNjb3BlcyYpOwogCiAgICAgUGxhdGZvcm1CdWZm
ZXIgKnBsYXRmb3JtQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUJ1ZmZlci5nZXQo
KTsgfQogICAgIHNpemVfdCBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlTGVuZ3Ro
OyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUGVuZGluZ01hcHBpbmdD
YWxsYmFjayhNYXBwaW5nQ2FsbGJhY2smJik7CiAgICAgfTsKIAotICAgIEdQVUJ1ZmZlcihQbGF0
Zm9ybUJ1ZmZlclNtYXJ0UHRyJiYsIFJlZjxHUFVEZXZpY2U+JiYsIHNpemVfdCwgT3B0aW9uU2V0
PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4sIEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiwgUmVmPEdQVUVy
cm9yU2NvcGVzPiYmKTsKKyAgICBHUFVCdWZmZXIoUGxhdGZvcm1CdWZmZXJTbWFydFB0ciYmLCBH
UFVEZXZpY2UmLCBzaXplX3QsIE9wdGlvblNldDxHUFVCdWZmZXJVc2FnZTo6RmxhZ3M+LCBHUFVC
dWZmZXJNYXBwZWRPcHRpb24sIEdQVUVycm9yU2NvcGVzJik7CiAgICAgc3RhdGljIGJvb2wgdmFs
aWRhdGVCdWZmZXJVc2FnZShjb25zdCBHUFVEZXZpY2UmLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNh
Z2U6OkZsYWdzPiwgR1BVRXJyb3JTY29wZXMmKTsKIAogICAgIEpTQzo6QXJyYXlCdWZmZXIqIHN0
YWdpbmdCdWZmZXJGb3JSZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggNDZiN2FkY2VhZDU4
OGM0ZTY5ZjRlNWQyOTFjN2EyYTcyZWQ2MzNjOS4uM2Y4ZjcxOTk4ZmQzMmMyYWI0Njk4YWE5NTRh
MTE2OWRiOTdiMTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHVz
aW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMQ29tcHV0
ZVBpcGVsaW5lU3RhdGU+OwogCiBjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmUgOiBwdWJsaWMgR1BV
T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxp
bmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiwgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQ
VUNvbXB1dGVQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJvclNjb3BlcyYpOwogCiAgICAgY29uc3Qg
UGxhdGZvcm1Db21wdXRlUGlwZWxpbmUqIHBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3Qg
eyByZXR1cm4gbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6
OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9j
b21wdXRlRGltZW5zaW9uczsgfQogCiBwcml2YXRlOgotICAgIEdQVUNvbXB1dGVQaXBlbGluZShQ
bGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cywgUmVmPEdQVUVycm9yU2NvcGVzPiYmKTsKKyAgICBHUFVDb21wdXRlUGlwZWxpbmUoUGxhdGZv
cm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMsIEdQ
VUVycm9yU2NvcGVzJik7CiAKICAgICBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyIG1f
cGxhdGZvcm1Db21wdXRlUGlwZWxpbmU7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIG1f
Y29tcHV0ZURpbWVuc2lvbnMgeyAwLCAwLCAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDMwY2VmNjg3Zjk0NjZjOTVm
YTQ1ZDlmYmI1MjlhY2VjYTMwMWJmZGMuLjU0ZDZmMTViMWZkNWMxN2IyZGQ1ZTE4YWFjNDc3ZGYx
NmYwZTVkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCkBAIC01Miw5ICs1Miw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVCdWZmZXIoY29uc3QgR1BV
QnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgR1BVQnVmZmVyTWFwcGVkT3B0aW9uIGlzTWFw
cGVkLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYgZXJyb3JTY29wZXMpCitSZWZQdHI8R1BVQnVmZmVy
PiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIEdQVUVycm9yU2NvcGVz
JiBlcnJvclNjb3BlcykKIHsKLSAgICByZXR1cm4gR1BVQnVmZmVyOjp0cnlDcmVhdGUobWFrZVJl
ZigqdGhpcyksIGRlc2NyaXB0b3IsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSk7Cisg
ICAgcmV0dXJuIEdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yLCBpc01hcHBl
ZCwgZXJyb3JTY29wZXMpOwogfQogCiBSZWZQdHI8R1BVVGV4dHVyZT4gR1BVRGV2aWNlOjp0cnlD
cmVhdGVUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25z
dApAQCAtODcsOSArODcsOSBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVURldmljZTo6
dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgR1BVUmVuZGVyUGlwZQogICAgIHJldHVybiBH
UFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yLCBlcnJvclNjb3Bl
cyk7CiB9CiAKLVJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRl
Q29tcHV0ZVBpcGVsaW5lKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IsIFJlZjxHUFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykgY29uc3QKK1JlZlB0cjxH
UFVDb21wdXRlUGlwZWxpbmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNv
bnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUVycm9yU2Nv
cGVzJiBlcnJvclNjb3BlcykgY29uc3QKIHsKLSAgICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5l
Ojp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IsIFdURk1vdmUoZXJyb3JTY29wZXMpKTsKKyAg
ICByZXR1cm4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3Is
IGVycm9yU2NvcGVzKTsKIH0KIAogUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+IEdQVURldmljZTo6
dHJ5Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggYjk0OGM4YTYyNTgyOWQxOTljMTU4
MWU3NThiY2Y5MTM5MjU4NDMxNS4uYzhmYjAyNTI3NTk0YTc0ZTFmZWNlOTY0MjIxMTgyZGY2Zjdm
NzI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuaApAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVEZXZpY2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVRGV2aWNlPgogcHVibGlj
OgogICAgIHN0YXRpYyBSZWZQdHI8R1BVRGV2aWNlPiB0cnlDcmVhdGUoY29uc3QgT3B0aW9uYWw8
R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zPiYpOwogCi0gICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5
Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZmZXJNYXBwZWRP
cHRpb24sIFJlZjxHUFVFcnJvclNjb3Blcz4mJik7CisgICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5
Q3JlYXRlQnVmZmVyKGNvbnN0IEdQVUJ1ZmZlckRlc2NyaXB0b3ImLCBHUFVCdWZmZXJNYXBwZWRP
cHRpb24sIEdQVUVycm9yU2NvcGVzJik7CiAgICAgUmVmUHRyPEdQVVRleHR1cmU+IHRyeUNyZWF0
ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0b3ImKSBjb25zdDsKICAgICBSZWZQdHI8
R1BVU2FtcGxlcj4gdHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRvciYp
IGNvbnN0OwogCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxHUFVTaGFk
ZXJNb2R1bGU+IHRyeUNyZWF0ZVNoYWRlck1vZHVsZShjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJikgY29uc3Q7CiAgICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGVS
ZW5kZXJQaXBlbGluZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJv
clNjb3BlcyYpIGNvbnN0OwotICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IHRyeUNyZWF0
ZUNvbXB1dGVQaXBlbGluZShjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgUmVm
PEdQVUVycm9yU2NvcGVzPiYmKSBjb25zdDsKKyAgICBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5l
PiB0cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYsIEdQVUVycm9yU2NvcGVzJikgY29uc3Q7CiAKICAgICBSZWZQdHI8R1BVQ29tbWFuZEJ1
ZmZlcj4gdHJ5Q3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcAppbmRl
eCBjMTI1NmE5MWEyNjcwYjBhNjg1YTYwNDliZmE0MjJkMWZhYWE1M2UwLi5mZjkzODU1MzBlYjhi
N2I0MDEwZWVjZTQzYWNhMGJjNDgzNjc3ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNjb3Blcy5jcHAKQEAgLTYzLDkgKzYz
LDkgQEAgdm9pZCBHUFVFcnJvclNjb3Blczo6Z2VuZXJhdGVFcnJvcihjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEdQVUVycm9yRmlsdGVyIGZpbHRlcikKICAgICBpdGVyYXRvci0+ZXJyb3IgPSBjcmVh
dGVFcnJvcihmaWx0ZXIsIG1lc3NhZ2UpOwogfQogCi12b2lkIEdQVUVycm9yU2NvcGVzOjpnZW5l
cmF0ZVByZWZpeGVkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBHUFVFcnJvckZpbHRlciBm
aWx0ZXIpCit2b2lkIEdQVUVycm9yU2NvcGVzOjpnZW5lcmF0ZVByZWZpeGVkRXJyb3IoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewotICAgIGdlbmVyYXRlRXJyb3IobV9wcmVmaXggKyBtZXNzYWdl
LCBmaWx0ZXIpOworICAgIGdlbmVyYXRlRXJyb3IobV9wcmVmaXggKyBtZXNzYWdlLCBHUFVFcnJv
ckZpbHRlcjo6VmFsaWRhdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNjb3Bl
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVz
LmgKaW5kZXggZTllZTZlYWRjMGY2YWQ1MTE0ZjMwYTAwNWEwZmU4Njg0NTRhYzBiNC4uYWY4ODU4
OGVmMmFiYTBiZWJkNTFiN2M0M2MxM2NjMWEwNTMwZGM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPEdQVUVycm9yPiBwb3BFcnJvclNjb3BlKFN0
cmluZyYgZmFpbE1lc3NhZ2UpOwogCiAgICAgdm9pZCBnZW5lcmF0ZUVycm9yKGNvbnN0IFN0cmlu
ZyYsIEdQVUVycm9yRmlsdGVyID0gR1BVRXJyb3JGaWx0ZXI6OlZhbGlkYXRpb24pOwotICAgIHZv
aWQgZ2VuZXJhdGVQcmVmaXhlZEVycm9yKGNvbnN0IFN0cmluZyYsIEdQVUVycm9yRmlsdGVyID0g
R1BVRXJyb3JGaWx0ZXI6OlZhbGlkYXRpb24pOworICAgIHZvaWQgZ2VuZXJhdGVQcmVmaXhlZEVy
cm9yKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RXJyb3JQcmVmaXgoY29uc3QgU3RyaW5n
JiBwcmVmaXgpIHsgbV9wcmVmaXggPSBwcmVmaXg7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZm
ZXJNZXRhbC5tbQppbmRleCA1Y2JjNjQ4NTViZGFkODk4OTBkNTQ4MjkzNWEyOWZkNDliNTYxZWJh
Li4yYjI3N2RjY2I2NDU5YWU1NjkxMzAzMDAzZWYzM2QyNjMzNjkxNmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJ1
ZmZlck1ldGFsLm1tCkBAIC01MCw3ICs1MCw3IEBAIGJvb2wgR1BVQnVmZmVyOjp2YWxpZGF0ZUJ1
ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBPcHRpb25TZXQ8R1BVQnVmZmVyCiAg
ICAgfQogCiAgICAgaWYgKHVzYWdlLmNvbnRhaW5zQWxsKHsgR1BVQnVmZmVyVXNhZ2U6OkZsYWdz
OjpNYXBXcml0ZSwgR1BVQnVmZmVyVXNhZ2U6OkZsYWdzOjpNYXBSZWFkIH0pKSB7Ci0gICAgICAg
IGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIkdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKCk6IEJ1ZmZl
ciBjYW5ub3QgaGF2ZSBib3RoIE1BUF9SRUFEIGFuZCBNQVBfV1JJVEUgdXNhZ2UhIik7CisgICAg
ICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiQnVmZmVyIGNhbm5vdCBoYXZl
IGJvdGggTUFQX1JFQUQgYW5kIE1BUF9XUklURSB1c2FnZSEiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtNjIsMTcgKzYyLDE3IEBAIGJvb2wgR1BVQnVmZmVyOjp2YWxpZGF0
ZUJ1ZmZlclVzYWdlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBPcHRpb25TZXQ8R1BVQnVmZmVy
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1ZmZlcjo6dHJ5
Q3JlYXRlKFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIFJlZjxHUFVFcnJv
clNjb3Blcz4mJiBlcnJvclNjb3BlcykKK1JlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1ZmZlcjo6dHJ5
Q3JlYXRlKEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yLCBHUFVCdWZmZXJNYXBwZWRPcHRpb24gaXNNYXBwZWQsIEdQVUVycm9yU2NvcGVzJiBl
cnJvclNjb3BlcykKIHsKICAgICAvLyBNVExCdWZmZXIgc2l6ZSAoTlNVSW50ZWdlcikgaXMgMzIg
Yml0cyBvbiBzb21lIHBsYXRmb3Jtcy4KICAgICBOU1VJbnRlZ2VyIHNpemUgPSAwOwogICAgIGlm
ICghV1RGOjpjb252ZXJ0U2FmZWx5KGRlc2NyaXB0b3Iuc2l6ZSwgc2l6ZSkpIHsKLSAgICAgICAg
ZXJyb3JTY29wZXMtPmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpPdXRPZk1lbW9y
eSk7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVy
OjpPdXRPZk1lbW9yeSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGF1
dG8gdXNhZ2UgPSBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPjo6ZnJvbVJhdyhkZXNj
cmlwdG9yLnVzYWdlKTsKLSAgICBpZiAoIXZhbGlkYXRlQnVmZmVyVXNhZ2UoZGV2aWNlLmdldCgp
LCB1c2FnZSwgZXJyb3JTY29wZXMpKQorICAgIGlmICghdmFsaWRhdGVCdWZmZXJVc2FnZShkZXZp
Y2UsIHVzYWdlLCBlcnJvclNjb3BlcykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtOTcsMjIgKzk3LDIyIEBAIFJlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1
ZmZlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVEZXZpY2U+JiYgZGV2aWNlLCBjb25zdCBHUFVCdWZmZXJE
CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBtdGxCdWZmZXIgPSBh
ZG9wdE5TKFtkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3QnVmZmVyV2l0aExlbmd0aDpzdGF0
aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXNjcmlwdG9yLnNpemUpIG9wdGlvbnM6cmVzb3VyY2VPcHRp
b25zXSk7CisgICAgbXRsQnVmZmVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkg
bmV3QnVmZmVyV2l0aExlbmd0aDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXNjcmlwdG9yLnNp
emUpIG9wdGlvbnM6cmVzb3VyY2VPcHRpb25zXSk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCiAgICAgaWYgKCFtdGxCdWZmZXIpIHsKLSAgICAgICAgZXJyb3JTY29wZXMtPmdl
bmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSk7CisgICAgICAgIGVy
cm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IoIiIsIEdQVUVycm9yRmlsdGVyOjpPdXRPZk1lbW9yeSk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKG10bEJ1ZmZlciksIFdURk1vdmUoZGV2aWNlKSwgc2l6ZSwg
dXNhZ2UsIGlzTWFwcGVkLCBXVEZNb3ZlKGVycm9yU2NvcGVzKSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEdQVUJ1ZmZlcihXVEZNb3ZlKG10bEJ1ZmZlciksIGRldmljZSwgc2l6ZSwgdXNh
Z2UsIGlzTWFwcGVkLCBlcnJvclNjb3BlcykpOwogfQogCi1HUFVCdWZmZXI6OkdQVUJ1ZmZlcihS
ZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGJ1ZmZlciwgUmVmPEdQVURldmljZT4mJiBkZXZpY2UsIHNp
emVfdCBzaXplLCBPcHRpb25TZXQ8R1BVQnVmZmVyVXNhZ2U6OkZsYWdzPiB1c2FnZSwgR1BVQnVm
ZmVyTWFwcGVkT3B0aW9uIGlzTWFwcGVkLCBSZWY8R1BVRXJyb3JTY29wZXM+JiYgZXJyb3JTY29w
ZXMpCi0gICAgOiBHUFVPYmplY3RCYXNlKFdURk1vdmUoZXJyb3JTY29wZXMpKQorR1BVQnVmZmVy
OjpHUFVCdWZmZXIoUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBidWZmZXIsIEdQVURldmljZSYgZGV2
aWNlLCBzaXplX3Qgc2l6ZSwgT3B0aW9uU2V0PEdQVUJ1ZmZlclVzYWdlOjpGbGFncz4gdXNhZ2Us
IEdQVUJ1ZmZlck1hcHBlZE9wdGlvbiBpc01hcHBlZCwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkKICAgICAsIG1f
cGxhdGZvcm1CdWZmZXIoV1RGTW92ZShidWZmZXIpKQotICAgICwgbV9kZXZpY2UoV1RGTW92ZShk
ZXZpY2UpKQorICAgICwgbV9kZXZpY2UobWFrZVJlZihkZXZpY2UpKQogICAgICwgbV9ieXRlTGVu
Z3RoKHNpemUpCiAgICAgLCBtX3VzYWdlKHVzYWdlKQogICAgICwgbV9pc01hcHBlZEZyb21DcmVh
dGlvbihpc01hcHBlZCA9PSBHUFVCdWZmZXJNYXBwZWRPcHRpb246OklzTWFwcGVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1
dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4IGNkN2YyNmM4NGMyMDAwMjlk
YjlmOGI4ZGI3ZGVhZWM1NTczYmIzMWEuLmE0NzQ1ZTU4MTJiYmNjYTYzNzM1MGI1NTQxNWQ0Njkx
MjU4OTRlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KQEAg
LTM4LDE4ICszOCwxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIHRy
eVNldE1ldGFsRnVuY3Rpb25zKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgTVRMTGli
cmFyeSAqY29tcHV0ZU1ldGFsTGlicmFyeSwgTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciAq
bXRsRGVzY3JpcHRvciwgY29uc3QgU3RyaW5nJiBjb21wdXRlRW50cnlQb2ludE5hbWUsIEdQVUVy
cm9yU2NvcGVzJiBlcnJvclNjb3BlcykKK3N0YXRpYyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25z
KE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExpYnJhcnksIE1UTENvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0IFN0cmluZyYgY29tcHV0ZUVudHJ5UG9pbnROYW1l
LCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgaWYgKCFjb21wdXRlTWV0YWxMaWJyYXJ5KSB7Ci0gICAgICAgIGVy
cm9yU2NvcGVzLmdlbmVyYXRlRXJyb3IobWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IE1UTExp
YnJhcnkgZm9yIGNvbXB1dGUgc3RhZ2UgZG9lcyBub3QgZXhpc3QhIikpOworICAgICAgICBlcnJv
clNjb3Blcy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IoIk1UTExpYnJhcnkgZm9yIGNvbXB1dGUgc3Rh
Z2UgZG9lcyBub3QgZXhpc3QhIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAg
ICBhdXRvIGZ1bmN0aW9uID0gYWRvcHROUyhbY29tcHV0ZU1ldGFsTGlicmFyeSBuZXdGdW5jdGlv
bldpdGhOYW1lOmNvbXB1dGVFbnRyeVBvaW50TmFtZV0pOwogICAgIGlmICghZnVuY3Rpb24pIHsK
LSAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFt
ZSwgIjogQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0aW9uIFwiIiwgY29tcHV0ZUVudHJ5
UG9pbnROYW1lLCAiXCIhIikpOworICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVk
RXJyb3IobWFrZVN0cmluZygiQ2Fubm90IGNyZWF0ZSBjb21wdXRlIE1UTEZ1bmN0aW9uICciLCBj
b21wdXRlRW50cnlQb2ludE5hbWUsICInISIpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgYm9vbCB0cnlTZXRNZXRhbEZ1bmN0aW9ucyhj
b25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1UTExpYnJhcnkgKmNvbQogICAgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0
cnlTZXRGdW5jdGlvbnMoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVQ
aXBlbGluZVN0YWdlRGVzY3JpcHRvciYgY29tcHV0ZVN0YWdlLCBjb25zdCBHUFVEZXZpY2UmIGRl
dmljZSwgTVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciogbXRsRGVzY3JpcHRvciwgT3B0aW9u
YWw8V0hMU0w6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+JiB3aGxzbERlc2NyaXB0b3IsIEdQ
VUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKK3N0YXRpYyBPcHRpb25hbDxXSExTTDo6Q29tcHV0
ZURpbWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBHUFVQaXBlbGluZVN0YWdlRGVzY3Jp
cHRvciYgY29tcHV0ZVN0YWdlLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgTVRMQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciogbXRsRGVzY3JpcHRvciwgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3I+JiB3aGxzbERlc2NyaXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJv
clNjb3BlcykKIHsKICAgICBSZXRhaW5QdHI8TVRMTGlicmFyeT4gY29tcHV0ZUxpYnJhcnk7CiAg
ICAgU3RyaW5nIGNvbXB1dGVFbnRyeVBvaW50OwpAQCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgT3B0
aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlTZXRGdW5jdGlvbnMoY29uc3QgY2hh
ciogY29uc3QgZnVuYwogCiAgICAgICAgIGF1dG8gd2hsc2xDb21waWxlUmVzdWx0ID0gV0hMU0w6
OnByZXBhcmUod2hsc2xTb3VyY2UsICp3aGxzbERlc2NyaXB0b3IpOwogICAgICAgICBpZiAoIXdo
bHNsQ29tcGlsZVJlc3VsdCkgewotICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJv
cihtYWtlU3RyaW5nKCJXSExTTCBjb21waWxhdGlvbiBmYWlsZWQuICIsIHdobHNsQ29tcGlsZVJl
c3VsdC5lcnJvcigpKSk7CisgICAgICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVk
RXJyb3IobWFrZVN0cmluZygiV0hMU0wgY29tcGlsZSBlcnJvcjogIiwgd2hsc2xDb21waWxlUmVz
dWx0LmVycm9yKCkpKTsKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgICAg
IH0KIApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBPcHRpb25hbDxXSExTTDo6Q29tcHV0ZURp
bWVuc2lvbnM+IHRyeVNldEZ1bmN0aW9ucyhjb25zdCBjaGFyKiBjb25zdCBmdW5jCiAgICAgICAg
IGNvbXB1dGVFbnRyeVBvaW50ID0gY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQ7CiAgICAgfQogCi0g
ICAgaWYgKHRyeVNldE1ldGFsRnVuY3Rpb25zKGZ1bmN0aW9uTmFtZSwgY29tcHV0ZUxpYnJhcnku
Z2V0KCksIG10bERlc2NyaXB0b3IsIGNvbXB1dGVFbnRyeVBvaW50LCBlcnJvclNjb3BlcykpCisg
ICAgaWYgKHRyeVNldE1ldGFsRnVuY3Rpb25zKGNvbXB1dGVMaWJyYXJ5LmdldCgpLCBtdGxEZXNj
cmlwdG9yLCBjb21wdXRlRW50cnlQb2ludCwgZXJyb3JTY29wZXMpKQogICAgICAgICByZXR1cm4g
Y29tcHV0ZURpbWVuc2lvbnM7CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTExLDcg
KzExMSw3IEBAIHN0cnVjdCBDb252ZXJ0UmVzdWx0IHsKICAgICBXSExTTDo6Q29tcHV0ZURpbWVu
c2lvbnMgY29tcHV0ZURpbWVuc2lvbnM7CiB9OwogCi1zdGF0aWMgT3B0aW9uYWw8Q29udmVydFJl
c3VsdD4gY29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoY29uc3QgY2hhciogY29uc3Qg
ZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVz
KQorc3RhdGljIE9wdGlvbmFsPENvbnZlcnRSZXN1bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yKGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCiB7
CiAgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IG10bERlc2NyaXB0
b3I7CiAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgT3B0aW9uYWw8Q29udmVydFJlc3VsdD4g
Y29udmVydENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IoY29uc3QgY2hhciogY29ucwogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKLSAg
ICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwg
IjogRXJyb3IgY3JlYXRpbmcgTVRMRGVzY3JpcHRvciEiKSk7CisgICAgICAgIGVycm9yU2NvcGVz
LmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiRXJyb3IgY3JlYXRpbmcgTVRMQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvciEiKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTEzNiwxMiArMTM2LDEyIEBAIHN0YXRpYyBPcHRpb25hbDxDb252ZXJ0UmVzdWx0PiBjb252ZXJ0
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zCiAgICAgICAgIGlmIChh
dXRvIGxheW91dCA9IGNvbnZlcnRMYXlvdXQoKmRlc2NyaXB0b3IubGF5b3V0KSkKICAgICAgICAg
ICAgIHdobHNsRGVzY3JpcHRvci0+bGF5b3V0ID0gV1RGTW92ZSgqbGF5b3V0KTsKICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZUVycm9yKG1ha2VTdHJpbmco
ZnVuY3Rpb25OYW1lLCAiOiBFcnJvciBjb252ZXJ0aW5nIEdQVVBpcGVsaW5lTGF5b3V0ISIpKTsK
KyAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiRXJyb3IgY29u
dmVydGluZyBHUFVQaXBlbGluZUxheW91dCEiKTsKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoYXV0byBjb21wdXRlRGltZW5zaW9u
cyA9IHRyeVNldEZ1bmN0aW9ucyhmdW5jdGlvbk5hbWUsIGNvbXB1dGVTdGFnZSwgZGV2aWNlLCBt
dGxEZXNjcmlwdG9yLmdldCgpLCB3aGxzbERlc2NyaXB0b3IsIGVycm9yU2NvcGVzKSkKKyAgICBp
ZiAoYXV0byBjb21wdXRlRGltZW5zaW9ucyA9IHRyeVNldEZ1bmN0aW9ucyhjb21wdXRlU3RhZ2Us
IGRldmljZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgd2hsc2xEZXNjcmlwdG9yLCBlcnJvclNjb3Bl
cykpCiAgICAgICAgIHJldHVybiB7eyBtdGxEZXNjcmlwdG9yLCAqY29tcHV0ZURpbWVuc2lvbnMg
fX07CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTUyLDE0ICsxNTIsMTQgQEAgc3Ry
dWN0IENyZWF0ZVJlc3VsdCB7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVE
aW1lbnNpb25zOwogfTsKIAotc3RhdGljIE9wdGlvbmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRl
TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBj
b25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQorc3RhdGljIE9wdGlv
bmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoY29uc3Qg
R1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKICAgICBpZiAoIWRldmlj
ZS5wbGF0Zm9ybURldmljZSgpKSB7Ci0gICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlRXJyb3Io
bWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsICI6IEludmFsaWQgR1BVRGV2aWNlISIpKTsKKyAgICAg
ICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKCJJbnZhbGlkIEdQVURldmljZSEi
KTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBhdXRvIGNvbnZl
cnRSZXN1bHQgPSBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUs
IGRlc2NyaXB0b3IsIGRldmljZSwgZXJyb3JTY29wZXMpOworICAgIGF1dG8gY29udmVydFJlc3Vs
dCA9IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGRlc2NyaXB0b3IsIGRldmljZSwg
ZXJyb3JTY29wZXMpOwogICAgIGlmICghY29udmVydFJlc3VsdCkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICAgICBBU1NFUlQoY29udmVydFJlc3VsdC0+cGlwZWxpbmVEZXNjcmlwdG9y
KTsKQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgT3B0aW9uYWw8Q3JlYXRlUmVzdWx0PiB0cnlD
cmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShjb25zdCBjaGFyKiBjb25zdAogICAgIE5TRXJy
b3IgKmVycm9yID0gbmlsOwogICAgIHBpcGVsaW5lID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3Jt
RGV2aWNlKCkgbmV3Q29tcHV0ZVBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlw
dG9yLmdldCgpIG9wdGlvbnM6TVRMUGlwZWxpbmVPcHRpb25Ob25lIHJlZmxlY3Rpb246bmlsIGVy
cm9yOiZlcnJvcl0pOwogICAgIGlmICghcGlwZWxpbmUpIHsKLSAgICAgICAgZXJyb3JTY29wZXMu
Z2VuZXJhdGVFcnJvcihtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgIjogIiwgKGVycm9yID8gZXJy
b3IubG9jYWxpemVkRGVzY3JpcHRpb24uVVRGOFN0cmluZyA6ICJVbmFibGUgdG8gY3JlYXRlIE1U
TENvbXB1dGVQaXBlbGluZVN0YXRlISIpKSk7CisgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRl
UHJlZml4ZWRFcnJvcihlcnJvciA/IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uLlVURjhTdHJp
bmcgOiAiVW5hYmxlIHRvIGNyZWF0ZSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSEiKTsKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE4MSwxOSArMTgxLDE3IEBAIHN0
YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0
YXRlKGNvbnN0IGNoYXIqIGNvbnN0CiAgICAgcmV0dXJuIHt7IHBpcGVsaW5lLCBjb252ZXJ0UmVz
dWx0LT5jb21wdXRlRGltZW5zaW9ucyB9fTsKIH0KIAotUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGlu
ZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFJlZjxHUFVF
cnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykKK1JlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQ
VUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25z
dCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVFcnJvclNjb3Bl
cyYgZXJyb3JTY29wZXMpCiB7Ci0gICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0g
IkdQVUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKCkiOwotCi0gICAgYXV0byBjcmVhdGVSZXN1
bHQgPSB0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZShmdW5jdGlvbk5hbWUsIGRldmlj
ZSwgZGVzY3JpcHRvciwgZXJyb3JTY29wZXMpOworICAgIGF1dG8gY3JlYXRlUmVzdWx0ID0gdHJ5
Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJvclNj
b3Blcyk7CiAgICAgaWYgKCFjcmVhdGVSZXN1bHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVh
dGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBjcmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25z
LCBXVEZNb3ZlKGVycm9yU2NvcGVzKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVQ29t
cHV0ZVBpcGVsaW5lKFdURk1vdmUoY3JlYXRlUmVzdWx0LT5waXBlbGluZVN0YXRlKSwgY3JlYXRl
UmVzdWx0LT5jb21wdXRlRGltZW5zaW9ucywgZXJyb3JTY29wZXMpKTsKIH0KIAotR1BVQ29tcHV0
ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUoUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGlu
ZVN0YXRlPiYmIHBpcGVsaW5lLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgY29tcHV0ZURpbWVu
c2lvbnMsIFJlZjxHUFVFcnJvclNjb3Blcz4mJiBlcnJvclNjb3BlcykKLSAgICA6IEdQVU9iamVj
dEJhc2UoV1RGTW92ZShlcnJvclNjb3BlcykpCitHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1
dGVQaXBlbGluZShSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUs
IFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucywgR1BVRXJyb3JTY29w
ZXMmIGVycm9yU2NvcGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVz
KSkKICAgICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCiAg
ICAgLCBtX2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1lbnNpb25zKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBp
cGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCBhODNjMGZhMDEyZjhiMzg5NjMxZjFm
YjJjMDNhMzExYmFlMWVlMjYyLi4xNjNkYmRmODllNDlmZmZlZDhjZWE4ZWNkOWJlMjM2MWNlZTFm
ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQpAQCAtMzQ0LDcg
KzM0NCw3IEBAIHN0YXRpYyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25zKE1UTExpYnJhcnkgKnZl
cnRleE1ldGFsTGlicmFyeSwgTVRMTGlicmFyeSAqZnJhCiAKICAgICAgICAgYXV0byBmdW5jdGlv
biA9IGFkb3B0TlMoW3ZlcnRleE1ldGFsTGlicmFyeSBuZXdGdW5jdGlvbldpdGhOYW1lOnZlcnRl
eEVudHJ5UG9pbnROYW1lXSk7CiAgICAgICAgIGlmICghZnVuY3Rpb24pIHsKLSAgICAgICAgICAg
IGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcihtYWtlU3RyaW5nKCJDYW5ub3QgY3Jl
YXRlIHZlcnRleCBNVExGdW5jdGlvbiBcIiIsIHZlcnRleEVudHJ5UG9pbnROYW1lLCAiXCIhIikp
OworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKG1ha2VTdHJp
bmcoIkNhbm5vdCBjcmVhdGUgdmVydGV4IE1UTEZ1bmN0aW9uICciLCB2ZXJ0ZXhFbnRyeVBvaW50
TmFtZSwgIichIikpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKQEAg
LTM2Myw3ICszNjMsNyBAQCBzdGF0aWMgYm9vbCB0cnlTZXRNZXRhbEZ1bmN0aW9ucyhNVExMaWJy
YXJ5ICp2ZXJ0ZXhNZXRhbExpYnJhcnksIE1UTExpYnJhcnkgKmZyYQogICAgICAgICBhdXRvIGZ1
bmN0aW9uID0gYWRvcHROUyhbZnJhZ21lbnRNZXRhbExpYnJhcnkgbmV3RnVuY3Rpb25XaXRoTmFt
ZTpmcmFnbWVudEVudHJ5UG9pbnROYW1lXSk7CiAKICAgICAgICAgaWYgKCFmdW5jdGlvbikgewot
ICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKG1ha2VTdHJpbmco
IkNhbm5vdCBjcmVhdGUgZnJhZ21lbnQgTVRMRnVuY3Rpb24gXCIiLCBmcmFnbWVudEVudHJ5UG9p
bnROYW1lLCAiXCIhIikpOworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhl
ZEVycm9yKG1ha2VTdHJpbmcoIkNhbm5vdCBjcmVhdGUgZnJhZ21lbnQgTVRMRnVuY3Rpb24gJyIs
IGZyYWdtZW50RW50cnlQb2ludE5hbWUsICInISIpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogCkBAIC0zOTIsNyArMzkyLDcgQEAgc3RhdGljIGJvb2wgdHJ5U2V0RnVu
Y3Rpb25zKGNvbnN0IEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yJiB2ZXJ0ZXhTdGFnZSwgY29u
c3QKIAogICAgICAgICBhdXRvIHdobHNsQ29tcGlsZVJlc3VsdCA9IFdITFNMOjpwcmVwYXJlKHdo
bHNsU291cmNlLCAqd2hsc2xEZXNjcmlwdG9yKTsKICAgICAgICAgaWYgKCF3aGxzbENvbXBpbGVS
ZXN1bHQpIHsKLSAgICAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigi
V0hMU0wgY29tcGlsYXRpb24gZmFpbGVkISIpOworICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2Vu
ZXJhdGVQcmVmaXhlZEVycm9yKG1ha2VTdHJpbmcoIldITFNMIGNvbXBpbGUgZXJyb3I6ICIsIHdo
bHNsQ29tcGlsZVJlc3VsdC5lcnJvcigpKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>