<?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>195427</bug_id>
          
          <creation_ts>2019-03-07 12:17:16 -0800</creation_ts>
          <short_desc>[Web GPU] GPUSampler implementation</short_desc>
          <delta_ts>2019-03-07 15:04:01 -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>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>P1</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>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1513641</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 12:17:16 -0800</bug_when>
    <thetext>[Web GPU] GPUSampler implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513646</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-07 12:38:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/48686011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513650</commentid>
    <comment_count>2</comment_count>
      <attachid>363910</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 12:47:09 -0800</bug_when>
    <thetext>Created attachment 363910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513651</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 12:50:31 -0800</bug_when>
    <thetext>Attachment 363910 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:64:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:65:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:66:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513654</commentid>
    <comment_count>4</comment_count>
      <attachid>363913</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 12:56:36 -0800</bug_when>
    <thetext>Created attachment 363913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513655</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 13:00:06 -0800</bug_when>
    <thetext>Attachment 363913 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:64:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:65:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:66:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513661</commentid>
    <comment_count>6</comment_count>
      <attachid>363916</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 13:15:05 -0800</bug_when>
    <thetext>Created attachment 363916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513662</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 13:18:23 -0800</bug_when>
    <thetext>Attachment 363916 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:64:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:65:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/gpu/GPUProgrammablePassEncoder.h:66:  The parameter name &quot;const&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513697</commentid>
    <comment_count>8</comment_count>
      <attachid>363916</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-03-07 13:57:04 -0800</bug_when>
    <thetext>Comment on attachment 363916
Patch

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

&gt; Source/WebCore/platform/graphics/gpu/GPUSamplerDescriptor.h:63
&gt; +    AddressMode addressModeU = AddressMode::ClampToEdge;
&gt; +    AddressMode addressModeV = AddressMode::ClampToEdge;
&gt; +    AddressMode addressModeW = AddressMode::ClampToEdge;
&gt; +    FilterMode magFilter = FilterMode::Nearest;
&gt; +    FilterMode minFilter = FilterMode::Nearest;
&gt; +    FilterMode mipmapFilter = FilterMode::Nearest;
&gt; +    float lodMinClamp = 0;
&gt; +    float lodMaxClamp = 0xffffffff;
&gt; +    unsigned maxAnisotropy = 1;
&gt; +    GPUCompareFunction compareFunction = GPUCompareFunction::Never;
&gt; +    BorderColor borderColor = BorderColor::TransparentBlack;

Is there any difference between this syntax and using AddressMode addressModeU { AddressMode::ClampToEdge }; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513712</commentid>
    <comment_count>9</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 14:21:23 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #8)
&gt; Comment on attachment 363916 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363916&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gpu/GPUSamplerDescriptor.h:63
&gt; &gt; +    AddressMode addressModeU = AddressMode::ClampToEdge;
&gt; &gt; +    AddressMode addressModeV = AddressMode::ClampToEdge;
&gt; &gt; +    AddressMode addressModeW = AddressMode::ClampToEdge;
&gt; &gt; +    FilterMode magFilter = FilterMode::Nearest;
&gt; &gt; +    FilterMode minFilter = FilterMode::Nearest;
&gt; &gt; +    FilterMode mipmapFilter = FilterMode::Nearest;
&gt; &gt; +    float lodMinClamp = 0;
&gt; &gt; +    float lodMaxClamp = 0xffffffff;
&gt; &gt; +    unsigned maxAnisotropy = 1;
&gt; &gt; +    GPUCompareFunction compareFunction = GPUCompareFunction::Never;
&gt; &gt; +    BorderColor borderColor = BorderColor::TransparentBlack;
&gt; 
&gt; Is there any difference between this syntax and using AddressMode
&gt; addressModeU { AddressMode::ClampToEdge }; ?

In this case there is no difference. I guess in the case of default initialization, brace initialization is a little less error-prone, but it&apos;s a style choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513716</commentid>
    <comment_count>10</comment_count>
      <attachid>363928</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-03-07 14:30:09 -0800</bug_when>
    <thetext>Created attachment 363928
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513742</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-07 15:03:08 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 363928:

loader/load-defer-resume-crash.html bug 195438 (authors: max.hong.shen@gmail.com and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513743</commentid>
    <comment_count>12</comment_count>
      <attachid>363928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-07 15:03:59 -0800</bug_when>
    <thetext>Comment on attachment 363928
Patch for landing

Clearing flags on attachment: 363928

Committed r242615: &lt;https://trac.webkit.org/changeset/242615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513744</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-07 15:04:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363910</attachid>
            <date>2019-03-07 12:47:09 -0800</date>
            <delta_ts>2019-03-07 12:56:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195427-20190307124708.patch</filename>
            <type>text/plain</type>
            <size>67336</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxZmYwZmM0MDBmMzI2
OGEwOTU5YjZkZjJkMmExM2FiNTlmZWMzNi4uNjk2YWViYWEyNDYxMzIxZDAwNmM2YWU0YWJhOTcz
N2IwNWU0MzdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDE5LTAzLTA3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVNh
bXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBhYmlsaXR5IHRvIGNyZWF0ZSBHUFVTYW1wbGVycyBhbmQg
dXNlIHRoZW0gYXMgcGlwZWxpbmUgcmVzb3VyY2UgYmluZGluZ3MuCisKKyAgICAgICAgVGVzdDog
dGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sIHVwZGF0ZWQuCisKKyAgICAgICAgQWRkIHN5bWJv
bHMgdG8gcHJvamVjdDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgIEdQVVNhbXBsZXIgY3JlYXRpb246Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyIGNvbnN0KTogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1w
bGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVTYW1wbGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU2FtcGxlcjo6V2ViR1BVU2FtcGxlcik6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVNhbXBsZXI6OnNhbXBsZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5
Q3JlYXRlU2FtcGxlciBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2Ft
cGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXI6OnBsYXRmb3JtU2Ft
cGxlciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXJE
ZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVTYW1wbGVyTWV0YWwubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bXRsQWRkcmVz
c01vZGVGb3JBZGRyZXNzTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjptdGxCb3JkZXJDb2xvckZv
ckJvcmRlckNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6Om10bE1pbk1hZ0ZpbHRlckZvckZpbHRl
ck1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6bXRsTWlwRmlsdGVyRm9yRmlsdGVyTW9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjp0cnlDcmVhdGVNdGxTYW1wbGVyU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVU2FtcGxlcjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBs
ZXI6OkdQVVNhbXBsZXIpOgorCisgICAgICAgIE1vdmUgR1BVQ29tcGFyZUZ1bmN0aW9uIHRvIFV0
aWxzIGZvciBzaGFyZWQgdXNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVD
b21wYXJlRnVuY3Rpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRp
bHMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlw
ZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRyeUNyZWF0ZU10bERlcHRoU3RlbmNp
bFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQW5kQ29udmVydERlcHRoQ29tcGFy
ZUZ1bmN0aW9uVG9NdGwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1UZXh0
dXJlRm9ybWF0Rm9yR1BVVGV4dHVyZUZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUNvbXBhcmVGdW5jdGlvbkZvckdQVUNvbXBhcmVGdW5jdGlvbik6CisKKyAgICAgICAgRXhwYW5k
IGJpbmQgZ3JvdXBzIHRvIGFjY2VwdCBHUFVTYW1wbGVyczoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwQmluZGluZy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yOjphc0dQVUJpbmRHcm91cERlc2NyaXB0b3IgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlcjo6c2V0QmluZEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBh
c3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzU2FtcGxlck9uRW5j
b2Rlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29k
ZXI6OnNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKToKKworICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwOiBNaXNzaW5nIGluY2x1ZGUuCisKIDIwMTktMDMtMDYg
IEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEdQVV0g
R1BVVGV4dHVyZSBhbmQgR1BVVGV4dHVyZVZpZXcgdXBkYXRlcywgYW5kIHJlbGF0ZWQgR1BVQmlu
ZEdyb3VwIHVwZGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjUyYmQ0ZjU2MDY0NDkyZWM4
YTQ0N2E3MWU4NTZkYjlkMDRkNDQ0Ni4uNmFhYjU3NTBkYTk0NzQzZTMyZWZhMDdiMDM4YzI2YTEx
NTJmNjg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ3Myw2ICs0NzMsNyBAQCBzZXQoV2Vi
Q29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9HUFVPcmlnaW4zRC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9H
UFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxl
ckRlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRs
CiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU3RvcmVPcC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9H
UFVUZXh0dXJlRGVzY3JpcHRvci5pZGwKQEAgLTUwMyw2ICs1MDQsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5l
LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5p
ZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbAorICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2hhZGVyTW9kdWxlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzQy
MzAwNjJjMjNkYWNjODAxMjg1ZjdjZGY0MGMwOTNlNjMyOTkzMS4uMjdiNzJiNzcwZDJjZDBiNjNh
OTcxYmE1NDQ3ZTYwY2E3YjJmYWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzIsNiArMzMyLDcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJncHUvR1BVRXh0ZW50M0QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmdwdS9HUFVMb2FkT3AuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVPcmln
aW4zRC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVy
T3B0aW9ucy5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNj
cmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VC
aXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVTdG9yZU9wLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsCkBAIC0z
NjksNiArMzcwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVy
UGFzc0VuY29kZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQaXBlbGluZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTYW1wbGVyLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hh
ZGVyTW9kdWxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVNoYWRlclN0YWdlQml0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCBjNjRhYTNjZjU5MmE0OTNiNTliY2Q4MjQwMTFhMGVjZGQ3
ZTdmMWE3Li5hYzJiNjM4YTAyMWRhZjFiZDU0YmI5ZTQ5N2I1NzJjZDQwYWJkZTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTk5
LDYgKzU5OSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR1BVT3JpZ2luM0QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0dQVU9yaWdpbjNELmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVT
YW1wbGVyRGVzY3JpcHRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTR1BVU2FtcGxlckRlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJpdC5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVU2hhZGVyU3RhZ2VCaXQu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTdG9y
ZU9wLmNwcApAQCAtMTkzMyw2ICsxOTM1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3AKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNhbXBs
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YkdQVVNhbXBsZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJHUFVTaGFkZXJNb2R1bGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNoYWRlck1vZHVsZS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ZTY1ZDQ3ZTdhMWMyOWE0
ZjhmNDQxMjFjMzA4NTlhZTU1NDM3NTYyLi5lNGI4MjVkNDc0NzFmN2NjZDU3MGYzYjJmY2ZjMDVm
YWRmZDc4ZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM4Myw2ICszODMs
NyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9H
UFVMb2FkT3AuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNE
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9w
dGlvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNj
cmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFn
ZUJpdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVU3RvcmVPcC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRs
IFwKQEAgLTQxMyw2ICs0MTQsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2Ny
aXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2Ny
aXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4YmFjZDQwNWEzMjM3Y2VmNGVmMWRhYzA5YTIyMTI4NGEx
ZWFkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9H
UFVTYW1wbGVyRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBo
dHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNo
LndlYmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitlbnVtIEdQVUFkZHJlc3NN
b2RlIHsKKyAgICAiY2xhbXAtdG8tZWRnZSIsCisgICAgInJlcGVhdCIsCisgICAgIm1pcnJvci1y
ZXBlYXQiLAorICAgICJjbGFtcC10by1ib3JkZXItY29sb3IiCit9OworCitlbnVtIEdQVUZpbHRl
ck1vZGUgeworICAgICJuZWFyZXN0IiwKKyAgICAibGluZWFyIgorfTsKKworZW51bSBHUFVCb3Jk
ZXJDb2xvciB7CisgICAgInRyYW5zcGFyZW50LWJsYWNrIiwKKyAgICAib3BhcXVlLWJsYWNrIiwK
KyAgICAib3BhcXVlLXdoaXRlIgorfTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IEdQVVNhbXBsZXJEZXNjcmlw
dG9yIHsKKyAgICBHUFVBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVUgPSAiY2xhbXBUb0VkZ2UiOwor
ICAgIEdQVUFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlViA9ICJjbGFtcFRvRWRnZSI7CisgICAgR1BV
QWRkcmVzc01vZGUgYWRkcmVzc01vZGVXID0gImNsYW1wVG9FZGdlIjsKKyAgICBHUFVGaWx0ZXJN
b2RlIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBHUFVGaWx0ZXJNb2RlIG1pbkZpbHRlciA9
ICJuZWFyZXN0IjsKKyAgICBHUFVGaWx0ZXJNb2RlIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsK
KyAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSAweGZm
ZmZmZmZmOyAvLyBUT0RPOiBXaGF0IHNob3VsZCB0aGlzIGJlPyBXYXMgTnVtYmVyLk1BWF9WQUxV
RS4KKyAgICB1MzIgbWF4QW5pc290cm9weSA9IDE7CisgICAgR1BVQ29tcGFyZUZ1bmN0aW9uIGNv
bXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3Ig
PSAidHJhbnNwYXJlbnRCbGFjayI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5oCmluZGV4IGRkZGY5OTVjNzIyNmI1
YzFlOTUyZWVhZTE4ODQzOThkZmI2ODkwMzYuLjlmOTlkYjNjZDkyNzQxM2M5YmNhYzE0MDEyNGQw
ODc0YTZlNmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUJpbmRHcm91cEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmgKQEAgLTI4LDEyICsyOCwxMyBAQAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKICNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCisjaW5jbHVkZSAi
V2ViR1BVU2FtcGxlci5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3LmgiCiAjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBXZWJHUFVC
aW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4sIFdlYkdQ
VUJ1ZmZlckJpbmRpbmc+OwordXNpbmcgV2ViR1BVQmluZGluZ1Jlc291cmNlID0gVmFyaWFudDxS
ZWZQdHI8V2ViR1BVU2FtcGxlcj4sIFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4sIFdlYkdQVUJ1
ZmZlckJpbmRpbmc+OwogCiBzdHJ1Y3QgV2ViR1BVQmluZEdyb3VwQmluZGluZyB7CiAgICAgdW5z
aWduZWQgbG9uZyBiaW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmlkbAppbmRleCBhMjY3MjA2NzgwMmM5YWU4
YWQ0ZTVhYmU0NTgxZWM2ZTYxZjAxY2E1Li43MWQ0NThkZDcyYzZjMTQxNDRhYmJjY2FhNGNhN2Q5
MTM4MDhiNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCaW5kR3JvdXBCaW5kaW5nLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmlkbApAQCAtMjUsNyArMjUsNyBAQAogLy8gaHR0cHM6
Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJp
ZGwKIAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKLXR5cGVkZWYgKC8qV2ViR1BVU2FtcGxl
ciBvciAqL1dlYkdQVVRleHR1cmVWaWV3IG9yIFdlYkdQVUJ1ZmZlckJpbmRpbmcpIFdlYkdQVUJp
bmRpbmdSZXNvdXJjZTsKK3R5cGVkZWYgKFdlYkdQVVNhbXBsZXIgb3IgV2ViR1BVVGV4dHVyZVZp
ZXcgb3IgV2ViR1BVQnVmZmVyQmluZGluZykgV2ViR1BVQmluZGluZ1Jlc291cmNlOwogCiBbCiAg
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAppbmRleCAyNjM4MWJm
NzE1ODYzZTQwMzE3OTVmNDY2ZTQzZTJmNmYxMGE4ZjcxLi44YTRiZTY5NTBkNzllNDJjOGE4ZWFi
MzNlMDNkMzk5OGNkZjc4Njk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcApAQCAtODgsNyArODgs
MTUgQEAgT3B0aW9uYWw8R1BVQmluZEdyb3VwRGVzY3JpcHRvcj4gV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvcjo6YXNHUFVCaW5kR3JvdXBEZXNjcmkKIAogICAgICAgICBjb25zdCBhdXRvIGxheW91
dEJpbmRpbmcgPSBpdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgYXV0byBiaW5kaW5nUmVzb3Vy
Y2VWaXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbXShjb25zdCBSZWZQdHI8V2ViR1BVVGV4dHVy
ZVZpZXc+JiB2aWV3KSAtPiBPcHRpb25hbDxHUFVCaW5kaW5nUmVzb3VyY2U+IHsKKyAgICAgICAg
YXV0byBiaW5kaW5nUmVzb3VyY2VWaXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbXShjb25zdCBS
ZWZQdHI8V2ViR1BVU2FtcGxlcj4mIHNhbXBsZXIpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNv
dXJjZT4geworICAgICAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgICAgICAgICBhdXRvIGdwdVNhbXBsZXIgPSBzYW1wbGVyLT5z
YW1wbGVyKCk7CisgICAgICAgICAgICBpZiAoIWdwdVNhbXBsZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQ
VUJpbmRpbmdSZXNvdXJjZT4obWFrZVJlZigqZ3B1U2FtcGxlcikpOworICAgICAgICB9LCBbXShj
b25zdCBSZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+JiB2aWV3KSAtPiBPcHRpb25hbDxHUFVCaW5k
aW5nUmVzb3VyY2U+IHsKICAgICAgICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICAgICAgYXV0byB0ZXh0dXJlID0gdmlldy0+dGV4
dHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5j
cHAKaW5kZXggNDQ1ZTkzYTFhOWNjZjhlYzA0YTQzN2JiYjdiY2FjMGM1ZTUwYzA4Yi4uMjI5NGY4
NWI1MDM5OGZhYTczMDhkNjgxMDY0NzdiMjI1ZDA4MWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5j
bHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiR1BVU2FtcGxlci5oIgorI2luY2x1ZGUgIkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiCiAj
aW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1
cmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTIsNiArNTQsNyBAQAog
I2luY2x1ZGUgIldlYkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUu
aCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRl
ICJXZWJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCiAjaW5j
bHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVRl
eHR1cmUuaCIKQEAgLTg0LDYgKzg3LDEyIEBAIFJlZjxXZWJHUFVUZXh0dXJlPiBXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yCiAgICAg
cmV0dXJuIFdlYkdQVVRleHR1cmU6OmNyZWF0ZShXVEZNb3ZlKHRleHR1cmUpKTsKIH0KIAorUmVm
PFdlYkdQVVNhbXBsZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1w
bGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK3sKKyAgICBhdXRvIHNhbXBsZXIgPSBt
X2RldmljZS0+dHJ5Q3JlYXRlU2FtcGxlcihkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gV2ViR1BV
U2FtcGxlcjo6Y3JlYXRlKFdURk1vdmUoc2FtcGxlcikpOworfQorCiBSZWY8V2ViR1BVQmluZEdy
b3VwTGF5b3V0PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewogICAgIGF1dG8g
bGF5b3V0ID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChkZXNjcmlwdG9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggOTk1
Y2NiOWYzYTY1YjY2MTc1NGFkNDc1MTcwOTEyY2ZlMmM1NjBmNS4uZGQwZWNiZjdjNDQxNjU4OGEz
YThjNjIyNzc5MTA5MzZmZTkzNzA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmgKQEAgLTQ0LDExICs0NCwxMyBAQCBjbGFzcyBXZWJHUFVCdWZmZXI7
CiBjbGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyOwogY2xhc3MgV2ViR1BVUGlwZWxpbmVMYXlvdXQ7
CiBjbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZTsKK2NsYXNzIFdlYkdQVVNhbXBsZXI7CiBjbGFz
cyBXZWJHUFVTaGFkZXJNb2R1bGU7CiBjbGFzcyBXZWJHUFVUZXh0dXJlOwogCiBzdHJ1Y3QgR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVCdWZmZXJEZXNjcmlwdG9yOwor
c3RydWN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yOwogc3RydWN0IEdQVVRleHR1cmVEZXNjcmlwdG9y
Owogc3RydWN0IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yOwpAQCAtNjQsNiArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8
V2ViR1BVQnVmZmVyPiBjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsK
ICAgICBSZWY8V2ViR1BVVGV4dHVyZT4gY3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRv
ciYmKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVU2FtcGxlcj4gY3JlYXRlU2FtcGxlcihjb25zdCBH
UFVTYW1wbGVyRGVzY3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVUJpbmRHcm91cExh
eW91dD4gY3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3ImKSBjb25zdDsKICAgICBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IGNyZWF0ZVBpcGVs
aW5lTGF5b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCmluZGV4IGM4ZGFm
YzdlNWVlNWEzNjk1YWU5NTdkNDA0MTY4OWEyMTA4MDYzZTQuLjE5ZDNjYTU1YTIzZmU2ZDlmNTg2
M2ZjOGU2ZGFmZTIzZTA5N2VmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmlkbApAQCAtMzMsNiArMzMsNyBAQAogCiAgICAgV2ViR1BVQnVmZmVy
IGNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIFdlYkdQ
VVRleHR1cmUgY3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsK
KyAgICBXZWJHUFVTYW1wbGVyIGNyZWF0ZVNhbXBsZXIoR1BVU2FtcGxlckRlc2NyaXB0b3IgZGVz
Y3JpcHRvcik7CiAKICAgICBXZWJHUFVCaW5kR3JvdXBMYXlvdXQgY3JlYXRlQmluZEdyb3VwTGF5
b3V0KEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BV
UGlwZWxpbmVMYXlvdXQgY3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXRE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwpAQCAtNTAsOCArNTEsNiBAQAogICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CiAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIFdlYkdQVUxpbWl0cyBsaW1pdHM7CiAKLSAgICAvLyBXZWJHUFVTYW1wbGVyIGNy
ZWF0ZVNhbXBsZXIoV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0KICAgICAv
LyBXZWJHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgLy8gV2ViR1BVRmVuY2UgY3Jl
YXRlRmVuY2UoV2ViR1BVRmVuY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
NTIwZTYzYTFhMDA1NDkwOTdlNDAxYWVlYjhiNDMyZDVkMTI2MDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVVNhbXBsZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVmPFdlYkdQVVNhbXBsZXI+IFdlYkdQVVNhbXBsZXI6OmNyZWF0ZShSZWZQdHI8R1BV
U2FtcGxlcj4mJiBzYW1wbGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVNh
bXBsZXIoV1RGTW92ZShzYW1wbGVyKSkpOworfQorCitXZWJHUFVTYW1wbGVyOjpXZWJHUFVTYW1w
bGVyKFJlZlB0cjxHUFVTYW1wbGVyPiYmIHNhbXBsZXIpCisgICAgOiBtX3NhbXBsZXIoV1RGTW92
ZShzYW1wbGVyKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNh
bXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYjU5M2QwM2RkOTFhODIyYjRmZTIyMzdhNWZiZGYxOTMyNTM4
OGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2FtcGxlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR1BVU2FtcGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkdQVVNhbXBsZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVVNhbXBsZXI+IGNy
ZWF0ZShSZWZQdHI8R1BVU2FtcGxlcj4mJik7CisKKyAgICBHUFVTYW1wbGVyKiBzYW1wbGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW1wbGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BV
U2FtcGxlcihSZWZQdHI8R1BVU2FtcGxlcj4mJik7CisKKyAgICBSZWZQdHI8R1BVU2FtcGxlcj4g
bV9zYW1wbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVNhbXBsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2Ft
cGxlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEyYzNiNTM5OGVmYzAyOGQ0YTY1NWFhZTVkYjExYjUxNjQ3
NmYwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVNhbXBsZXIuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9n
aXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwK
KworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQ
VSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVTYW1w
bGVyIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1
cmUuY3BwCmluZGV4IDE2YTI2MzY5OGZlMGM1ZjA4MjcxMGM2ODljNzQ3ZDU3YjE2MzAxOWUuLjRk
OTIxYmM1MGY2MzM1MDc0MTg3NzljYTZiZTMxMmQwYWM0NTY0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IldlYkdQVVRleHR1cmVWaWV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggOWEwYjVlMDM3ZWRhZjEzYzBlNDgxMjVjNjQxYmVkODdhMzQ1ZDZmNS4uM2JlOWNkOWE1
ZWU1OTNiZmZjODdjNTg4NWMwNjJjMDg3Y2U5M2QwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM2Myw2
ICszNjMsNyBAQCBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcAogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5jcHAKIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBD
aGFpbi5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCkBAIC0yNzgxLDYgKzI3
ODIsNyBAQCBKU0dQVUV4dGVudDNELmNwcAogSlNHUFVMb2FkT3AuY3BwCiBKU0dQVU9yaWdpbjNE
LmNwcAogSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCitKU0dQVVNhbXBsZXJEZXNjcmlw
dG9yLmNwcAogSlNHUFVTaGFkZXJTdGFnZUJpdC5jcHAKIEpTR1BVU3RvcmVPcC5jcHAKIEpTR1BV
VGV4dHVyZURlc2NyaXB0b3IuY3BwCkBAIC0zMzM5LDYgKzMzNDEsNyBAQCBKU1dlYkdQVVJlbmRl
clBhc3NEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKIEpTV2Vi
R1BVUmVuZGVyUGlwZWxpbmUuY3BwCiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5j
cHAKK0pTV2ViR1BVU2FtcGxlci5jcHAKIEpTV2ViR1BVU2hhZGVyTW9kdWxlLmNwcAogSlNXZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVTd2FwQ2hhaW4uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCA1N2UyZGY4NTYxZjg4YjgwMzkyN2IwZWVjOGJjZjBjYmFh
NGIwNTU2Li43MzRlZjc4NWYzYTgxOTczNDBmYjAyMTA0NWFjNjFmY2FiMDM0ZGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMyNSw2ICszMjUsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVNhbXBsZXJNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNo
YWRlck1vZHVsZU1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU3dhcENo
YWluTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVUZXh0dXJlTWV0YWwu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4YzI0MzBiZDZlOWM1OTQ5N2FiMzY3ZWU2MmNiNzRiYmVkOWI1YTBmLi41ODJiYWE0
YmUwOThlNzEwMmI3YTMwMjcwZjEyZGM1NjViZmIyYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDEwMCw2ICsxNDEwMCwx
MyBAQAogCQlEMEEyMEQ1NDIwOTJBMEE2MDBFMEMyNTkgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFTVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFTVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBBMjBENTYyMDky
QTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RDLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RDLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQz
IC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZXNvdXJjZUxvYWRlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDBBREIyNjIyMjMwOUQ3NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdQVVNhbXBsZXJEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwQURCMjYzMjIzMDlENzYwMEEyMjkzNSAvKiBHUFVTYW1wbGVyRGVzY3JpcHRv
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMEFEQjI2ODIyMzBBQUNCMDBBMjI5MzUgLyogR1BVU2FtcGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVTYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
QURCMjZCMjIzMEFDQzAwMEEyMjkzNSAvKiBHUFVTYW1wbGVyTWV0YWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBHUFVTYW1wbGVyTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwQURCMjZDMjIzMEJCOEUwMEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdQVVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBB
REIyNkQyMjMwQkI4RTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
QURCMjZGMjIzMEMxRjEwMEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVT
YW1wbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCMDU1NjYwOUM2NzAw
MTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyZWF0ZUxpbmtDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcmVhdGVMaW5rQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQjhCQjAxMjFDNDZFNzgwMDBDNzY4MSAv
KiBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJpbmRHcm91
cExheW91dEJpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDk1LDYg
KzE4NTAyLDggQEAKIAkJCQkzMTJGRjhCOTIxQTRDMkVGMDBFQjE5OUQgLyogR1BVUmVuZGVyUGlw
ZWxpbmUuaCAqLywKIAkJCQkzMTJGRjhCQzIxQTRDMkYwMDBFQjE5OUQgLyogR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDA2QTlBMjEyMjAyNkM3QTAwODNDNjYyIC8qIEdQ
VVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oICovLAorCQkJCUQwQURCMjY4MjIzMEFBQ0IwMEEyMjkz
NSAvKiBHUFVTYW1wbGVyLmggKi8sCisJCQkJRDBBREIyNjIyMjMwOUQ3NjAwQTIyOTM1IC8qIEdQ
VVNhbXBsZXJEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzEyRkY4QkIyMUE0QzJGMDAwRUIxOTlEIC8q
IEdQVVNoYWRlck1vZHVsZS5oICovLAogCQkJCTMxMkZGOEMwMjFBNEMyRjIwMEVCMTk5RCAvKiBH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDA4QUEwMzIyMjBEMEQwQjAwNThD
NTAyIC8qIEdQVVN0b3JlT3AuaCAqLywKQEAgLTI2MDkwLDYgKzI2MDk5LDcgQEAKIAkJCQlEMEND
QTk0OTIyMjk5Rjk3MDA2OTc5QjYgLyogR1BVT3JpZ2luM0QuaCAqLywKIAkJCQlEMENDQTk0QTIy
Mjk5Rjk3MDA2OTc5QjYgLyogR1BVT3JpZ2luM0QuaWRsICovLAogCQkJCUQwMkMyNjkyMjE4MTQx
NkQwMEQ4MThFNCAvKiBHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRsICovLAorCQkJCUQwQURC
MjYzMjIzMDlENzYwMEEyMjkzNSAvKiBHUFVTYW1wbGVyRGVzY3JpcHRvci5pZGwgKi8sCiAJCQkJ
RDBERThGQjgyMjJFMDlFMjAwODgyNTUwIC8qIEdQVVNoYWRlclN0YWdlQml0LmggKi8sCiAJCQkJ
RDBERThGQjkyMjJFMDlFMjAwODgyNTUwIC8qIEdQVVNoYWRlclN0YWdlQml0LmlkbCAqLywKIAkJ
CQlEMDhBQTAzMTIyMEQwQ0U2MDA1OEM1MDIgLyogR1BVU3RvcmVPcC5pZGwgKi8sCkBAIC0yNjE2
MCw2ICsyNjE3MCw5IEBACiAJCQkJRDBDNDE5RjkyMTg0MDREQTAwOUVDMURFIC8qIFdlYkdQVVJl
bmRlclBpcGVsaW5lLmlkbCAqLywKIAkJCQlEMEM0MTlGMjIxODNFRkVDMDA5RUMxREUgLyogV2Vi
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDBDNDE5RjMyMTgzRUZFQzAw
OUVDMURFIC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwgKi8sCisJCQkJRDBB
REIyNkQyMjMwQkI4RTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuY3BwICovLAorCQkJCUQwQURC
MjZDMjIzMEJCOEUwMEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmggKi8sCisJCQkJRDBBREIyNkYy
MjMwQzFGMTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuaWRsICovLAogCQkJCUQwNjE1RkNEMjE3
RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuY3BwICovLAogCQkJCUQwNjE1RkND
MjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaCAqLywKIAkJCQlEMDYxNUZD
RTIxN0ZFNUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLywKQEAgLTI2MTk1
LDYgKzI2MjA4LDcgQEAKIAkJCQlEMDg3Q0UzOTIxQUNBOTQyMDBCREUxNzQgLyogR1BVUXVldWVN
ZXRhbC5tbSAqLywKIAkJCQlEMDg3Q0UzQTIxQUNBOTQyMDBCREUxNzQgLyogR1BVUmVuZGVyUGFz
c0VuY29kZXJNZXRhbC5tbSAqLywKIAkJCQlEMDg3Q0UzRDIxQUNBOTQyMDBCREUxNzQgLyogR1BV
UmVuZGVyUGlwZWxpbmVNZXRhbC5tbSAqLywKKwkJCQlEMEFEQjI2QjIyMzBBQ0MwMDBBMjI5MzUg
LyogR1BVU2FtcGxlck1ldGFsLm1tICovLAogCQkJCUQwODdDRTQwMjFBQ0E5NDIwMEJERTE3NCAv
KiBHUFVTaGFkZXJNb2R1bGVNZXRhbC5tbSAqLywKIAkJCQlEMDg3Q0UzRTIxQUNBOTQyMDBCREUx
NzQgLyogR1BVU3dhcENoYWluTWV0YWwubW0gKi8sCiAJCQkJRDA4N0NFM0YyMUFDQTk0MjAwQkRF
MTc0IC8qIEdQVVRleHR1cmVNZXRhbC5tbSAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBkOTVkZmJkM2VhZWQ4YWMwZTAxZDk1
ZjJhNDc1YmU3Nzg4NGQ3OWI4Li4zM2E3ZDEzNDA3MmFlYzMyY2YwMmMwMDlmY2Q2NzAwMzdmNzMw
ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCkBAIC0yMDgsNiArMjA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KFdlYkdQVVJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHUFVSZW5kZXJQYXNzRW5j
b2RlcikgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBcCisgICAgbWFjcm8oV2Vi
R1BVU2FtcGxlcikgXAogICAgIG1hY3JvKFdlYkdQVVNoYWRlck1vZHVsZSkgXAogICAgIG1hY3Jv
KFdlYkdQVVN3YXBDaGFpbikgXAogICAgIG1hY3JvKFdlYkdQVVRleHR1cmUpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5k
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3Vw
QmluZGluZy5oCmluZGV4IGNmYThiMDFmYzI2Y2Y1YTZhOWFjYzEwYjcwZGJiZTYzZTJkN2ZlZTYu
LjQ3YmQ3YWY2MDJmYTM4ZDEyOTQ0YmMzNTI5ZGRmODZiZjc0N2U3ZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJp
bmRpbmcuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1
ZGUgIkdQVUJ1ZmZlckJpbmRpbmcuaCIKKyNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVk
ZSAiR1BVVGV4dHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdXNpbmcgR1BVQmluZGluZ1Jlc291cmNlID0gVmFyaWFudDxSZWY8R1BVVGV4
dHVyZT4sIEdQVUJ1ZmZlckJpbmRpbmc+OwordXNpbmcgR1BVQmluZGluZ1Jlc291cmNlID0gVmFy
aWFudDxSZWY8R1BVU2FtcGxlcj4sIFJlZjxHUFVUZXh0dXJlPiwgR1BVQnVmZmVyQmluZGluZz47
CiAKIHN0cnVjdCBHUFVCaW5kR3JvdXBCaW5kaW5nIHsKICAgICB1bnNpZ25lZCBsb25nIGJpbmRp
bmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
Q29tcGFyZUZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tcGFyZUZ1bmN0aW9uLmgKaW5kZXggZGRlOWY2NWM3NDBmOWFmODA4ZTYzNmUzOGVlZjk3
NTRmNTkyM2U2Ny4uZWUwYmJhMzljOWRmZTRkMDAyODkzYzlhYjVjMjhkMTJmZTRjMjhmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVD
b21wYXJlRnVuY3Rpb24uaApAQCAtNDAsNiArNDAsOCBAQCBlbnVtIGNsYXNzIEdQVUNvbXBhcmVG
dW5jdGlvbiB7CiAgICAgQWx3YXlzCiB9OwogCit1c2luZyBQbGF0Zm9ybUNvbXBhcmVGdW5jdGlv
biA9IHVuc2lnbmVkOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRGV2aWNlLmNwcAppbmRleCA3ZWMxNjVjZjA4ZTU5YTU2YmVhOWEzZjE5ZDk2ZDdkOTMwMWU3
ZDIxLi5lNTBlOWFkMjJmMTRiYzkwYzE1NzMzNWRkODY5ZTY5NGY5YmNmM2JhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAt
MzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIgog
I2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVU2FtcGxlci5oIgorI2luY2x1ZGUgIkdQVVNh
bXBsZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlLmgiCiAjaW5jbHVk
ZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIK
QEAgLTU0LDYgKzU2LDExIEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVEZXZpY2U6OnRyeUNyZWF0
ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yCiAgICAgcmV0dXJuIEdQ
VVRleHR1cmU6OnRyeUNyZWF0ZSgqdGhpcywgV1RGTW92ZShkZXNjcmlwdG9yKSk7CiB9CiAKK1Jl
ZlB0cjxHUFVTYW1wbGVyPiBHUFVEZXZpY2U6OnRyeUNyZWF0ZVNhbXBsZXIoY29uc3QgR1BVU2Ft
cGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0Cit7CisgICAgcmV0dXJuIEdQVVNhbXBs
ZXI6OnRyeUNyZWF0ZSgqdGhpcywgZGVzY3JpcHRvcik7Cit9CisKIFJlZlB0cjxHUFVCaW5kR3Jv
dXBMYXlvdXQ+IEdQVURldmljZTo6dHJ5Q3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCp0aGlzLCBkZXNjcmlwdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAppbmRleCA0
NzY5ZTJkMjAzMWQ2NWE5NmI5OTc0YjFhMTMzOTQ4NDdjYzE3N2Q3Li44ODc0MGNmMzI5NzRlMmFi
ODgyODBlMzE4NDBiNjg3MDNkYmYwZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIEdQVUJ1
ZmZlcjsKIGNsYXNzIEdQVUNvbW1hbmRCdWZmZXI7CiBjbGFzcyBHUFVQaXBlbGluZUxheW91dDsK
IGNsYXNzIEdQVVJlbmRlclBpcGVsaW5lOworY2xhc3MgR1BVU2FtcGxlcjsKIGNsYXNzIEdQVVNo
YWRlck1vZHVsZTsKIGNsYXNzIEdQVVRleHR1cmU7CiAKQEAgLTUzLDYgKzU0LDcgQEAgc3RydWN0
IEdQVUJ1ZmZlckRlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
Owogc3RydWN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnM7CitzdHJ1Y3QgR1BVU2FtcGxlckRlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BV
U2hhZGVyTW9kdWxlRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVUZXh0dXJlRGVzY3JpcHRvcjsKIApA
QCAtNjIsNiArNjQsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8R1BVQnVmZmVyPiB0cnlDcmVh
dGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKTsKICAgICBSZWZQdHI8R1BVVGV4dHVyZT4g
dHJ5Q3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmKSBjb25zdDsKKyAgICBSZWZQ
dHI8R1BVU2FtcGxlcj4gdHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRv
ciYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3JlYXRlQmlu
ZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKSBjb25zdDsK
ICAgICBSZWY8R1BVUGlwZWxpbmVMYXlvdXQ+IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvciYmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyLmgKaW5kZXggZDg5ZTYyNDYzNjc4ZWZkNmEwZjljOTA3MGJmZjg2NzI4OTRlZTZlMC4uM2Nk
YzE5ZjliNThiODc3ZTAxODIzZDE0MzIyZDMyY2JmMmUwMmE5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmgKQEAgLTYxLDggKzYxLDkgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRl
OgogI2lmIFVTRShNRVRBTCkKLSAgICB2b2lkIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIo
TVRMQXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYsIHVuc2lnbmVk
LCBjb25zdCBjaGFyKiBjb25zdCk7Ci0gICAgdm9pZCBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5j
b2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5z
aWduZWQsIGNvbnN0IGNoYXIqIGNvbnN0KTsKKyAgICB2b2lkIHNldFJlc291cmNlQXNCdWZmZXJP
bkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcm
LCBjb25zdCBjaGFyKiBjb25zdCk7CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzU2FtcGxlck9uRW5j
b2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYsIGNv
bnN0IGNoYXIqIGNvbnN0KTsKKyAgICB2b2lkIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVy
KE1UTEFyZ3VtZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiwgY29uc3Qg
Y2hhciogY29uc3QpOwogICAgIHZpcnR1YWwgdm9pZCB1c2VSZXNvdXJjZShNVExSZXNvdXJjZSAq
LCB1bnNpZ25lZCkgPSAwOwogCiAgICAgLy8gUmVuZGVyIGNvbW1hbmQgZW5jb2RlciBtZXRob2Rz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNh
bXBsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWRjNDI3ZjY2ODYyOWE1N2I0MWEzYTFhZjYxNjc4NTIxMzJkMzhmYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVTYW1wbGVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19Q
Uk9UT0NPTChNVExTYW1wbGVyU3RhdGUpOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdQVURldmljZTsKKworc3RydWN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yOworCit1c2luZyBQbGF0
Zm9ybVNhbXBsZXIgPSBNVExTYW1wbGVyU3RhdGU7Cit1c2luZyBQbGF0Zm9ybVNhbXBsZXJTbWFy
dFB0ciA9IFJldGFpblB0cjxNVExTYW1wbGVyU3RhdGU+OworCitjbGFzcyBHUFVTYW1wbGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVU2FtcGxlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQ
dHI8R1BVU2FtcGxlcj4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVVNhbXBs
ZXJEZXNjcmlwdG9yJik7CisKKyAgICBQbGF0Zm9ybVNhbXBsZXIqIHBsYXRmb3JtU2FtcGxlcigp
IGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1TYW1wbGVyLmdldCgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgR1BVU2FtcGxlcihQbGF0Zm9ybVNhbXBsZXJTbWFydFB0ciYmKTsKKworICAgIFBsYXRmb3Jt
U2FtcGxlclNtYXJ0UHRyIG1fcGxhdGZvcm1TYW1wbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjEzMDA4Y2Y3MmIyYzMyZmNiOGM4YzQyMDhmYjNiN2UzNWU5YWVjNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVT
YW1wbGVyRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVDb21wYXJlRnVuY3Rp
b24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgR1BVU2FtcGxlckRlc2NyaXB0
b3IgeworICAgIGVudW0gY2xhc3MgQWRkcmVzc01vZGUgeworICAgICAgICBDbGFtcFRvRWRnZSwK
KyAgICAgICAgUmVwZWF0LAorICAgICAgICBNaXJyb3JSZXBlYXQsCisgICAgICAgIENsYW1wVG9C
b3JkZXJDb2xvciwKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBGaWx0ZXJNb2RlIHsKKyAgICAg
ICAgTmVhcmVzdCwKKyAgICAgICAgTGluZWFyLAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIEJv
cmRlckNvbG9yIHsKKyAgICAgICAgVHJhbnNwYXJlbnRCbGFjaywKKyAgICAgICAgT3BhcXVlQmxh
Y2ssCisgICAgICAgIE9wYXF1ZVdoaXRlLAorICAgIH07CisKKyAgICBBZGRyZXNzTW9kZSBhZGRy
ZXNzTW9kZVUgPSBBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2U7CisgICAgQWRkcmVzc01vZGUgYWRk
cmVzc01vZGVWID0gQWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlOworICAgIEFkZHJlc3NNb2RlIGFk
ZHJlc3NNb2RlVyA9IEFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZTsKKyAgICBGaWx0ZXJNb2RlIG1h
Z0ZpbHRlciA9IEZpbHRlck1vZGU6Ok5lYXJlc3Q7CisgICAgRmlsdGVyTW9kZSBtaW5GaWx0ZXIg
PSBGaWx0ZXJNb2RlOjpOZWFyZXN0OworICAgIEZpbHRlck1vZGUgbWlwbWFwRmlsdGVyID0gRmls
dGVyTW9kZTo6TmVhcmVzdDsKKyAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgZmxvYXQg
bG9kTWF4Q2xhbXAgPSAweGZmZmZmZmZmOworICAgIHVuc2lnbmVkIG1heEFuaXNvdHJvcHkgPSAx
OworICAgIEdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSBHUFVDb21wYXJlRnVu
Y3Rpb246Ok5ldmVyOworICAgIEJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gQm9yZGVyQ29sb3I6
OlRyYW5zcGFyZW50QmxhY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVVXRpbHMuaAppbmRleCA0NzA1YWI1YThkMzk0MjVjZDIyMGY1ODE0NzY0YzVlOGRi
YjJmNTdmLi4wNWQ5YTVjNzA3NGM0YWU2MzNlOGU2MDEyYzVjYzg3NjhiZmI0ZjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMuaApAQCAtMjcs
MTEgKzI3LDEzIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQ29tcGFy
ZUZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZUZvcm1hdC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBsYXRmb3JtVGV4dHVyZUZvcm1hdCBwbGF0Zm9ybVRleHR1cmVGb3JtYXRG
b3JHUFVUZXh0dXJlRm9ybWF0KEdQVVRleHR1cmVGb3JtYXQpOworUGxhdGZvcm1Db21wYXJlRnVu
Y3Rpb24gcGxhdGZvcm1Db21wYXJlRnVuY3Rpb25Gb3JHUFVDb21wYXJlRnVuY3Rpb24oR1BVQ29t
cGFyZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDViNzhmMDE4
YzVjYjYwMGQ2MDFiNjNjODFjNWZmYzFiM2E3NmMyNDguLjQ1MDA4NDdhYmRkMDljMDA1YmJjNDg1
NTk2OTNlMGE3ZjQwNTU3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC03MCwzMCArNzAsMzcgQEAgdm9pZCBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGluZGV4LCBHUFVCaW5kR3Jv
dXAmIGJpbmQKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgLy8gU2V0IGVh
Y2ggcmVzb3VyY2Ugb24gZWFjaCBNVExBcmd1bWVudEVuY29kZXIgaXQgc2hvdWxkIGJlIHZpc2li
bGUgb24uCi0gICAgY29uc3QgYXV0byYgYmluZGluZ3NNYXAgPSBiaW5kR3JvdXAubGF5b3V0KCku
YmluZGluZ3NNYXAoKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBiaW5kR3JvdXAu
YmluZGluZ3MoKSkgewotICAgICAgICBhdXRvIGl0ZXJhdG9yID0gYmluZGluZ3NNYXAuZmluZChi
aW5kaW5nLmJpbmRpbmcpOwotICAgICAgICBpZiAoaXRlcmF0b3IgPT0gYmluZGluZ3NNYXAuZW5k
KCkpIHsKLSAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogR1BVQmluZEdyb3VwQmluZGluZyAl
bHUgbm90IGZvdW5kIGluIEdQVUJpbmRHcm91cExheW91dCEiLCBmdW5jdGlvbk5hbWUsIGJpbmRp
bmcuYmluZGluZyk7CisgICAgY29uc3QgYXV0byYgbGF5b3V0QmluZGluZ3NNYXAgPSBiaW5kR3Jv
dXAubGF5b3V0KCkuYmluZGluZ3NNYXAoKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJlc291cmNl
QmluZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7CisgICAgICAgIGF1dG8gbGF5b3V0SXRl
cmF0b3IgPSBsYXlvdXRCaW5kaW5nc01hcC5maW5kKHJlc291cmNlQmluZGluZy5iaW5kaW5nKTsK
KyAgICAgICAgaWYgKGxheW91dEl0ZXJhdG9yID09IGxheW91dEJpbmRpbmdzTWFwLmVuZCgpKSB7
CisgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5v
dCBmb3VuZCBpbiBHUFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCByZXNvdXJjZUJp
bmRpbmcuYmluZGluZyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
YXV0byBiaW5kR3JvdXBMYXlvdXRCaW5kaW5nID0gaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBh
dXRvIGxheW91dEJpbmRpbmcgPSBsYXlvdXRJdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgc3dp
dGNoIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoIChsYXlv
dXRCaW5kaW5nLnR5cGUpIHsKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbW9yZSByZXNvdXJj
ZSB0eXBlcy4KICAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5n
VHlwZTo6VW5pZm9ybUJ1ZmZlcjoKICAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5k
aW5nOjpCaW5kaW5nVHlwZTo6U3RvcmFnZUJ1ZmZlcjogewotICAgICAgICAgICAgaWYgKGJpbmRH
cm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6
VmVydGV4KQotICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIodmVy
dGV4QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcs
IGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52
aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkKLSAgICAgICAg
ICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVy
LmdldCgpLCBiaW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7
CisgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3Rh
Z2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywgZnVu
Y3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBH
UFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAgICAgIHNldFJl
c291cmNlQXNCdWZmZXJPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291
cmNlQmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlNh
bXBsZXI6IHsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVT
aGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJj
ZUFzU2FtcGxlck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmlu
ZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2li
aWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAg
ICAgIHNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdl
dCgpLCByZXNvdXJjZUJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpTYW1wbGVkVGV4dHVyZTogewotICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91
dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6VmVydGV4KQot
ICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKHZlcnRleEFyZ3Mu
ZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlv
bk5hbWUpOwotICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0
eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6RnJhZ21lbnQpCi0gICAgICAgICAgICAgICAg
c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCks
IGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAg
ICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6
RmxhZ3M6OlZlcnRleCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5j
b2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFk
ZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAgICAgIHNldFJlc291cmNl
QXNUZXh0dXJlT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJp
bmRpbmcsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgpAQCAtMTAzLDcgKzExMCw3IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBpbmRleCwgR1BVQmluZEdyb3VwJiBiaW5k
CiAgICAgfQogfQogCi12b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJj
ZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBj
b25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25lZCBpbmRleCwgY29uc3Qg
Y2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQordm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3Vt
ZW50RW5jb2RlciwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYgYmluZGluZywgY29uc3QgY2hh
ciogY29uc3QgZnVuY3Rpb25OYW1lKQogewogI2lmIExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9Q
QVJBTShmdW5jdGlvbk5hbWUpOwpAQCAtMTEzLDEyICsxMjAsMTIgQEAgdm9pZCBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVu
dEVuY29kZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSkpIHsKKyAgICBpZiAoIVdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8R1BVQnVmZmVyQmluZGluZz4oYmluZGluZy5yZXNvdXJjZSkpIHsK
ICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBidWZmZXIgdHlwZSEi
LCBmdW5jdGlvbk5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYgYnVm
ZmVyQmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKTsKKyAgICBh
dXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8R1BVQnVmZmVyQmluZGluZz4oYmluZGluZy5y
ZXNvdXJjZSk7CiAgICAgYXV0byYgYnVmZmVyUmVmID0gYnVmZmVyQmluZGluZy5idWZmZXI7CiAg
ICAgYXV0byBtdGxCdWZmZXIgPSBidWZmZXJSZWYtPnBsYXRmb3JtQnVmZmVyKCk7CiAKQEAgLTEy
OSw3ICsxMzYsNyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJj
ZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlcgogCiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCi0gICAgW2FyZ3VtZW50RW5jb2RlciBzZXRCdWZmZXI6bXRsQnVm
ZmVyIG9mZnNldDpidWZmZXJCaW5kaW5nLm9mZnNldCBhdEluZGV4OmluZGV4XTsKKyAgICBbYXJn
dW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjptdGxCdWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRpbmcub2Zm
c2V0IGF0SW5kZXg6YmluZGluZy5iaW5kaW5nXTsKICAgICB1c2VSZXNvdXJjZShtdGxCdWZmZXIs
IGJ1ZmZlclJlZi0+aXNSZWFkT25seSgpID8gTVRMUmVzb3VyY2VVc2FnZVJlYWQgOiBNVExSZXNv
dXJjZVVzYWdlUmVhZCB8IE1UTFJlc291cmNlVXNhZ2VXcml0ZSk7CiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpAQCAtMTM3LDcgKzE0NCwzNSBAQCB2b2lkIEdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5j
b2RlcgogICAgIG1fY29tbWFuZEJ1ZmZlci0+dXNlQnVmZmVyKGJ1ZmZlclJlZi5jb3B5UmVmKCkp
OwogfQogCi12b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzVGV4
dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3Qg
R1BVQmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IGNoYXIq
IGNvbnN0IGZ1bmN0aW9uTmFtZSkKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRF
bmNvZGVyLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiBiaW5kaW5nLCBjb25zdCBjaGFyICpj
b25zdCBmdW5jdGlvbk5hbWUpCit7CisjaWYgTE9HX0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFN
KGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBpZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAg
ICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3VtZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBz
dGFnZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxHUFVTYW1wbGVyPj4oYmluZGluZy5y
ZXNvdXJjZSkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBH
UFVTYW1wbGVyISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvJiBzYW1wbGVyUmVmID0gV1RGOjpnZXQ8UmVmPEdQVVNhbXBsZXI+PihiaW5kaW5nLnJl
c291cmNlKTsKKyAgICBhdXRvIG10bFNhbXBsZXIgPSBzYW1wbGVyUmVmLT5wbGF0Zm9ybVNhbXBs
ZXIoKTsKKworICAgIGlmICghbXRsU2FtcGxlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IEludmFsaWQgTVRMU2FtcGxlclN0YXRlIGluIEdQVVNhbXBsZXIgYmluZGluZyEiLCBmdW5jdGlv
bk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIFthcmd1bWVudEVuY29kZXIgc2V0U2FtcGxlclN0YXRlOm10bFNhbXBs
ZXIgYXRJbmRleDpiaW5kaW5nLmJpbmRpbmddOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7Cit9CisKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNU
ZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBjb25z
dCBHUFVCaW5kR3JvdXBCaW5kaW5nJiBiaW5kaW5nLCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUpCiB7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFt
ZSk7CkBAIC0xNDcsMTIgKzE4MiwxMiBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxH
UFVUZXh0dXJlPj4ocmVzb3VyY2UpKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3Vy
Y2UgaXMgbm90IGEgdGV4dHVyZSB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgaWYgKCFXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxHUFVUZXh0dXJlPj4oYmluZGluZy5yZXNvdXJjZSkpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBHUFVUZXh0dXJlVmll
dyEiLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYg
dGV4dHVyZVJlZiA9IFdURjo6Z2V0PFJlZjxHUFVUZXh0dXJlPj4ocmVzb3VyY2UpOworICAgIGF1
dG8mIHRleHR1cmVSZWYgPSBXVEY6OmdldDxSZWY8R1BVVGV4dHVyZT4+KGJpbmRpbmcucmVzb3Vy
Y2UpOwogICAgIGF1dG8gbXRsVGV4dHVyZSA9IHRleHR1cmVSZWYtPnBsYXRmb3JtVGV4dHVyZSgp
OwogCiAgICAgaWYgKCFtdGxUZXh0dXJlKSB7CkBAIC0xNjIsNyArMTk3LDcgQEAgdm9pZCBHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGUKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAg
IFthcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTptdGxUZXh0dXJlIGF0SW5kZXg6aW5kZXhdOwor
ICAgIFthcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTptdGxUZXh0dXJlIGF0SW5kZXg6YmluZGlu
Zy5iaW5kaW5nXTsKICAgICB1c2VSZXNvdXJjZShtdGxUZXh0dXJlLCB0ZXh0dXJlUmVmLT5pc1Jl
YWRPbmx5KCkgPyBNVExSZXNvdXJjZVVzYWdlUmVhZCA6IE1UTFJlc291cmNlVXNhZ2VSZWFkIHwg
TVRMUmVzb3VyY2VVc2FnZVdyaXRlKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IDg0ZWJlYTcxMWM1
YmQwYjliNTc5YWRlNTM3YWVlMWY4ODJjODYxODMuLmJmNDQ3ZjllODkyZDZkZjA4MDI0ZmEzZTY5
NThlZDM4MTBlMjRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1t
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2ltcG9ydCAiR1BVTGlt
aXRzLmgiCisjaW1wb3J0ICJHUFVVdGlscy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiV0hMU0xWZXJ0ZXhCdWZmZXJJbmRleENhbGN1bGF0b3IuaCIKICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CkBAIC0zNywzMCArMzgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBPcHRpb25hbDxNVExDb21wYXJlRnVuY3Rpb24+IHZhbGlkYXRlQW5kQ29udmVydERlcHRoQ29t
cGFyZUZ1bmN0aW9uVG9NdGwoR1BVQ29tcGFyZUZ1bmN0aW9uIGZ1bmMpCi17Ci0gICAgc3dpdGNo
IChmdW5jKSB7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Ok5ldmVyOgotICAgICAgICBy
ZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTmV2ZXI7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rp
b246Okxlc3M6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25MZXNzOwotICAgIGNh
c2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpFcXVhbDoKLSAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVG
dW5jdGlvbkVxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzRXF1YWw6Ci0g
ICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25MZXNzRXF1YWw7Ci0gICAgY2FzZSBHUFVD
b21wYXJlRnVuY3Rpb246OkdyZWF0ZXI6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25HcmVhdGVyOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbDoKLSAgICAg
ICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbk5vdEVxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFy
ZUZ1bmN0aW9uOjpHcmVhdGVyRXF1YWw6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25HcmVhdGVyRXF1YWw7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246OkFsd2F5czoKLSAg
ICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkFsd2F5czsKLSAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIH0KLX0KLQogc3RhdGljIFJldGFpblB0cjxN
VExEZXB0aFN0ZW5jaWxTdGF0ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUoY29uc3Qg
Y2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQogewogI2lmIExPR19E
SVNBQkxFRApAQCAtNzksMTMgKzU2LDggQEAgc3RhdGljIFJldGFpblB0cjxNVExEZXB0aFN0ZW5j
aWxTdGF0ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUoY29uc3QgY2hhcioKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBtdGxEZXB0aENvbXBhcmUgPSB2
YWxpZGF0ZUFuZENvbnZlcnREZXB0aENvbXBhcmVGdW5jdGlvblRvTXRsKGRlc2NyaXB0b3IuZGVw
dGhDb21wYXJlKTsKLSAgICBpZiAoIW10bERlcHRoQ29tcGFyZSkgewotICAgICAgICBMT0coV2Vi
R1BVLCAiJXM6IEludmFsaWQgR1BVQ29tcGFyZUZ1bmN0aW9uIGluIEdQVURlcHRoU3RlbmNpbFN0
YXRlRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0KLSAgICBbbXRsRGVzY3JpcHRvciBzZXREZXB0aENvbXBhcmVGdW5jdGlvbjoqbXRs
RGVwdGhDb21wYXJlXTsKKyAgICBhdXRvIG10bERlcHRoQ29tcGFyZSA9IHN0YXRpY19jYXN0PE1U
TENvbXBhcmVGdW5jdGlvbj4ocGxhdGZvcm1Db21wYXJlRnVuY3Rpb25Gb3JHUFVDb21wYXJlRnVu
Y3Rpb24oZGVzY3JpcHRvci5kZXB0aENvbXBhcmUpKTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRE
ZXB0aENvbXBhcmVGdW5jdGlvbjptdGxEZXB0aENvbXBhcmVdOwogICAgIFttdGxEZXNjcmlwdG9y
IHNldERlcHRoV3JpdGVFbmFibGVkOmRlc2NyaXB0b3IuZGVwdGhXcml0ZUVuYWJsZWRdOwogCiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBiYWNrL2Zyb250RmFjZVN0ZW5jaWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2FtcGxlck1l
dGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNh
bXBsZXJNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDEyODU0MTFkM2RkMjczMWMxMDA3ZjNjMmJjODVm
YjYwMmQ3ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbQpAQCAtMCwwICsxLDE1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVU2FtcGxlci5oIgorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJHUFVT
YW1wbGVyRGVzY3JpcHRvci5oIgorI2ltcG9ydCAiR1BVVXRpbHMuaCIKKyNpbXBvcnQgIkxvZ2dp
bmcuaCIKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBNVExTYW1wbGVyQWRk
cmVzc01vZGUgbXRsQWRkcmVzc01vZGVGb3JBZGRyZXNzTW9kZShHUFVTYW1wbGVyRGVzY3JpcHRv
cjo6QWRkcmVzc01vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQ
VVNhbXBsZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2U6CisgICAgICAgIHJl
dHVybiBNVExTYW1wbGVyQWRkcmVzc01vZGVDbGFtcFRvRWRnZTsKKyAgICBjYXNlIEdQVVNhbXBs
ZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZTo6UmVwZWF0OgorICAgICAgICByZXR1cm4gTVRMU2Ft
cGxlckFkZHJlc3NNb2RlUmVwZWF0OworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFk
ZHJlc3NNb2RlOjpNaXJyb3JSZXBlYXQ6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQWRkcmVz
c01vZGVNaXJyb3JSZXBlYXQ7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6QWRkcmVz
c01vZGU6OkNsYW1wVG9Cb3JkZXJDb2xvcjoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRy
ZXNzTW9kZUNsYW1wVG9Cb3JkZXJDb2xvcjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKworc3RhdGljIE1UTFNhbXBsZXJCb3JkZXJDb2xvciBtdGxCb3JkZXJDb2xvckZv
ckJvcmRlckNvbG9yKEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpCb3JkZXJDb2xvciBjb2xvcikKK3sK
KyAgICBzd2l0Y2ggKGNvbG9yKSB7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6Qm9y
ZGVyQ29sb3I6OlRyYW5zcGFyZW50QmxhY2s6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQm9y
ZGVyQ29sb3JUcmFuc3BhcmVudEJsYWNrOworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6
OkJvcmRlckNvbG9yOjpPcGFxdWVCbGFjazoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJCb3Jk
ZXJDb2xvck9wYXF1ZUJsYWNrOworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkJvcmRl
ckNvbG9yOjpPcGFxdWVXaGl0ZToKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJCb3JkZXJDb2xv
ck9wYXF1ZVdoaXRlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitz
dGF0aWMgTVRMU2FtcGxlck1pbk1hZ0ZpbHRlciBtdGxNaW5NYWdGaWx0ZXJGb3JGaWx0ZXJNb2Rl
KEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlIG1vZGUpCit7CisgICAgc3dpdGNoICht
b2RlKSB7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZTo6TmVhcmVz
dDoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJNaW5NYWdGaWx0ZXJOZWFyZXN0OworICAgIGNh
c2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGU6OkxpbmVhcjoKKyAgICAgICAgcmV0
dXJuIE1UTFNhbXBsZXJNaW5NYWdGaWx0ZXJMaW5lYXI7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBNVExTYW1wbGVyTWlwRmlsdGVyIG10bE1pcEZpbHRl
ckZvckZpbHRlck1vZGUoR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGUgbW9kZSkKK3sK
KyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpGaWx0
ZXJNb2RlOjpOZWFyZXN0OgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pcEZpbHRlck5lYXJl
c3Q7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZTo6TGluZWFyOgor
ICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pcEZpbHRlckxpbmVhcjsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIFJldGFpblB0cjxNVExTYW1wbGVyU3Rh
dGU+IHRyeUNyZWF0ZU10bFNhbXBsZXJTdGF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29u
c3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgaWYgKCFkZXZpY2Uu
cGxhdGZvcm1EZXZpY2UoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVU2FtcGxlcjo6dHJ5
Q3JlYXRlKCk6IEludmFsaWQgR1BVRGV2aWNlISIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBSZXRhaW5QdHI8TVRMU2FtcGxlckRlc2NyaXB0b3I+IG10bERlc2NyaXB0
b3I7CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgbXRsRGVzY3JpcHRv
ciA9IGFkb3B0TlMoW01UTFNhbXBsZXJEZXNjcmlwdG9yIG5ld10pOworICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisKKyAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVVNhbXBsZXI6OnRyeUNyZWF0ZSgpOiBFcnJvciBjcmVhdGluZyBNVExTYW1w
bGVyRGVzY3JpcHRvciEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAg
UmV0YWluUHRyPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlcjsKKworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRSQWRkcmVzc01vZGU6bXRsQWRk
cmVzc01vZGVGb3JBZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVSldOworICAgIFtt
dGxEZXNjcmlwdG9yIHNldFNBZGRyZXNzTW9kZTptdGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2Rl
KGRlc2NyaXB0b3IuYWRkcmVzc01vZGVWKV07CisgICAgW210bERlc2NyaXB0b3Igc2V0VEFkZHJl
c3NNb2RlOm10bEFkZHJlc3NNb2RlRm9yQWRkcmVzc01vZGUoZGVzY3JpcHRvci5hZGRyZXNzTW9k
ZVcpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRCb3JkZXJDb2xvcjptdGxCb3JkZXJDb2xvckZv
ckJvcmRlckNvbG9yKGRlc2NyaXB0b3IuYm9yZGVyQ29sb3IpXTsKKyAgICBbbXRsRGVzY3JpcHRv
ciBzZXRNaW5GaWx0ZXI6bXRsTWluTWFnRmlsdGVyRm9yRmlsdGVyTW9kZShkZXNjcmlwdG9yLm1p
bkZpbHRlcildOworICAgIFttdGxEZXNjcmlwdG9yIHNldE1hZ0ZpbHRlcjptdGxNaW5NYWdGaWx0
ZXJGb3JGaWx0ZXJNb2RlKGRlc2NyaXB0b3IubWFnRmlsdGVyKV07CisgICAgW210bERlc2NyaXB0
b3Igc2V0TWlwRmlsdGVyOm10bE1pcEZpbHRlckZvckZpbHRlck1vZGUoZGVzY3JpcHRvci5taXBt
YXBGaWx0ZXIpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRMb2RNaW5DbGFtcDpkZXNjcmlwdG9y
LmxvZE1pbkNsYW1wXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRMb2RNYXhDbGFtcDpkZXNjcmlw
dG9yLmxvZE1heENsYW1wXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRNYXhBbmlzb3Ryb3B5OmRl
c2NyaXB0b3IubWF4QW5pc290cm9weV07CisgICAgW210bERlc2NyaXB0b3Igc2V0Q29tcGFyZUZ1
bmN0aW9uOnN0YXRpY19jYXN0PE1UTENvbXBhcmVGdW5jdGlvbj4ocGxhdGZvcm1Db21wYXJlRnVu
Y3Rpb25Gb3JHUFVDb21wYXJlRnVuY3Rpb24oZGVzY3JpcHRvci5jb21wYXJlRnVuY3Rpb24pKV07
CisKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRTdXBwb3J0QXJndW1lbnRCdWZmZXJzOllFU107CisK
KyAgICBzYW1wbGVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3U2FtcGxl
clN0YXRlV2l0aERlc2NyaXB0b3I6bXRsRGVzY3JpcHRvci5nZXQoKV0pOworICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgIExPRyhXZWJH
UFUsICJHUFVTYW1wbGVyOjp0cnlDcmVhdGUoKTogRXJyb3IgY3JlYXRpbmcgTVRMU2FtcGxlclN0
YXRlISIpOworCisgICAgcmV0dXJuIHNhbXBsZXI7Cit9CisKK1JlZlB0cjxHUFVTYW1wbGVyPiBH
UFVTYW1wbGVyOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVNh
bXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworICAgIGF1dG8gc2FtcGxlciA9IHRyeUNy
ZWF0ZU10bFNhbXBsZXJTdGF0ZShkZXZpY2UsIGRlc2NyaXB0b3IpOworICAgIGlmICghc2FtcGxl
cikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQ
VVNhbXBsZXIoV1RGTW92ZShzYW1wbGVyKSkpOworfQorCitHUFVTYW1wbGVyOjpHUFVTYW1wbGVy
KFJldGFpblB0cjxNVExTYW1wbGVyU3RhdGU+JiYgc2FtcGxlcikKKyAgICA6IG1fcGxhdGZvcm1T
YW1wbGVyKFdURk1vdmUoc2FtcGxlcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVXRpbHNNZXRhbC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCmluZGV4IGU0
YjM3MDIxYTM5NDk5YmVhYzgzMWM4MGQ0M2EyMzVjMjk1NjU0MTMuLmQyNzJiNGRiZmUwZTQzYTY0
M2M5OTQ5MDM5MTI2YTRlZTkzYzlhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCkBAIC00NCw2
ICs0NCwzMiBAQCBQbGF0Zm9ybVRleHR1cmVGb3JtYXQgcGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9y
R1BVVGV4dHVyZUZvcm1hdChHUFVUZXh0dXJlRm9ybWF0CiAgICAgY2FzZSBHUFVUZXh0dXJlRm9y
bWF0OjpEMzJGbG9hdFM4VWludDoKICAgICAgICAgcmV0dXJuIE1UTFBpeGVsRm9ybWF0RGVwdGgz
MkZsb2F0X1N0ZW5jaWw4OwogICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
CitQbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbiBwbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbkZvckdQVUNv
bXBhcmVGdW5jdGlvbihHUFVDb21wYXJlRnVuY3Rpb24gZnVuYykKK3sKKyAgICBzd2l0Y2ggKGZ1
bmMpIHsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TmV2ZXI6CisgICAgICAgIHJldHVy
biBNVExDb21wYXJlRnVuY3Rpb25OZXZlcjsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6
TGVzczoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkxlc3M7CisgICAgY2FzZSBH
UFVDb21wYXJlRnVuY3Rpb246OkVxdWFsOgorICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0
aW9uRXF1YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Okxlc3NFcXVhbDoKKyAgICAg
ICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkxlc3NFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBh
cmVGdW5jdGlvbjo6R3JlYXRlcjoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdy
ZWF0ZXI7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Ok5vdEVxdWFsOgorICAgICAgICBy
ZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTm90RXF1YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVu
Y3Rpb246OkdyZWF0ZXJFcXVhbDoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdy
ZWF0ZXJFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6QWx3YXlzOgorICAgICAg
ICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uQWx3YXlzOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzdjYTk1
YTA2NTY2NmJkMDhmNGQ2NTkwMzAzZmJjYTY1YmZkOGM1Mi4uZDhjYjRiN2I2YzE4ZDExMmZjNDIy
NDNlMWExODJhNjExYTA1YTUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTAzLTA3ICBK
dXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQ
VVNhbXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwIHRvIHVzZSBhIEdQ
VVNhbXBsZXIgcHJvdmlkZWQgdGhyb3VnaCBiaW5kaW5ncyBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9u
ZSBpbiBzaGFkZXIuCisKKyAgICAgICAgKiB3ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5o
dG1sOgorCiAyMDE5LTAzLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYiBHUFVdIEdQVVRleHR1cmUgYW5kIEdQVVRleHR1cmVWaWV3IHVwZGF0ZXMs
IGFuZCByZWxhdGVkIEdQVUJpbmRHcm91cCB1cGRhdGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1
L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbAppbmRleCBmMzIyYTU1ZjNiOGM4NTg3ZjQxODk3
MTE1YzMzOTdmYWY1ZmZmNzBiLi4zMGI2ZGI0NDU4YTQwOGVlYTQ0MTViOTU2YzJlOGRjNThkNGRi
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJp
cC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0
bWwKQEAgLTEwLDYgKzEwLDE0IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiAKK2NvbnN0IHBvc2l0aW9uQnVmZmVySW5kZXggPSAwOwor
Y29uc3QgdGV4Q29vcmRzQnVmZmVySW5kZXggPSAxOworY29uc3QgcG9zaXRpb25BdHRyaWJ1dGVO
dW0gPSAwOworY29uc3QgdGV4Q29vcmRzQXR0cmlidXRlTnVtID0gMTsKK2NvbnN0IGJpbmRHcm91
cEluZGV4ID0gMDsKK2NvbnN0IHRleHR1cmVCaW5kaW5nTnVtID0gMDsKK2NvbnN0IHNhbXBsZXJC
aW5kaW5nTnVtID0gMTsKKwogY29uc3Qgc2hhZGVyQ29kZSA9IGAKICNpbmNsdWRlIDxtZXRhbF9z
dGRsaWI+CiAgICAgCkBAIC0xNyw4ICsyNSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBtZXRhbDsKIAog
c3RydWN0IFZlcnRleEluCiB7Ci0gICAgZmxvYXQ0IHBvc2l0aW9uIFtbYXR0cmlidXRlKDApXV07
Ci0gICAgZmxvYXQyIHRleENvb3JkcyBbW2F0dHJpYnV0ZSgxKV1dOworICAgIGZsb2F0NCBwb3Np
dGlvbiBbW2F0dHJpYnV0ZSgke3Bvc2l0aW9uQXR0cmlidXRlTnVtfSldXTsKKyAgICBmbG9hdDIg
dGV4Q29vcmRzIFtbYXR0cmlidXRlKCR7dGV4Q29vcmRzQXR0cmlidXRlTnVtfSldXTsKIH07CiAK
IHN0cnVjdCBWZXJ0ZXhPdXQKQEAgLTM1LDE1ICs0MywxNSBAQCB2ZXJ0ZXggVmVydGV4T3V0IHZl
cnRleF9tYWluKFZlcnRleEluIHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKICAgICByZXR1cm4gdk91
dDsKIH0KIAotc3RydWN0IFRleHR1cmUKK3N0cnVjdCBUZXh0dXJlU2FtcGxlcgogewotICAgIHRl
eHR1cmUyZDxmbG9hdD4gaW1hZ2UgW1tpZCgwKV1dOworICAgIHRleHR1cmUyZDxmbG9hdD4gdCBb
W2lkKCR7dGV4dHVyZUJpbmRpbmdOdW19KV1dOworICAgIHNhbXBsZXIgcyBbW2lkKCR7c2FtcGxl
ckJpbmRpbmdOdW19KV1dOwogfTsKIAotZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVy
dGV4T3V0IHYgW1tzdGFnZV9pbl1dLCBjb25zdCBkZXZpY2UgVGV4dHVyZSYgdCBbW2J1ZmZlcigw
KV1dKQorZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4T3V0IHYgW1tzdGFnZV9p
bl1dLCBjb25zdCBkZXZpY2UgVGV4dHVyZVNhbXBsZXImIGFyZ3MgW1tidWZmZXIoJHtiaW5kR3Jv
dXBJbmRleH0pXV0pCiB7Ci0gICAgY29uc3RleHByIHNhbXBsZXIgcyhjb29yZDo6bm9ybWFsaXpl
ZCwgYWRkcmVzczo6Y2xhbXBfdG9femVybywgZmlsdGVyOjpuZWFyZXN0KTsKLSAgICByZXR1cm4g
dC5pbWFnZS5zYW1wbGUocywgdi50ZXhDb29yZHMpOworICAgIHJldHVybiBhcmdzLnQuc2FtcGxl
KGFyZ3Mucywgdi50ZXhDb29yZHMpOwogfQogYAogCkBAIC01MSwyMiArNTksMjIgQEAgZnVuY3Rp
b24gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKSB7CiAgICAgcmV0dXJuIHsKICAgICAgICAg
aW5kZXhGb3JtYXQ6IFdlYkdQVUluZGV4Rm9ybWF0LlVJTlQzMiwKICAgICAgICAgYXR0cmlidXRl
czogW3sKLSAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiAwLAotICAgICAgICAgICAgaW5wdXRT
bG90OiAwLAorICAgICAgICAgICAgc2hhZGVyTG9jYXRpb246IHBvc2l0aW9uQXR0cmlidXRlTnVt
LAorICAgICAgICAgICAgaW5wdXRTbG90OiBwb3NpdGlvbkJ1ZmZlckluZGV4LAogICAgICAgICAg
ICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgZm9ybWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxP
QVRfUjMyX0czMl9CMzJfQTMyCiAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHNoYWRlckxvY2F0
aW9uOiAxLAotICAgICAgICAgICAgaW5wdXRTbG90OiAxLAorICAgICAgICAgICAgc2hhZGVyTG9j
YXRpb246IHRleENvb3Jkc0F0dHJpYnV0ZU51bSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogdGV4
Q29vcmRzQnVmZmVySW5kZXgsCiAgICAgICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICBm
b3JtYXQ6IFdlYkdQVVZlcnRleEZvcm1hdC5GTE9BVF9SMzJfRzMyCiAgICAgICAgIH1dLAogICAg
ICAgICBpbnB1dHM6IFt7Ci0gICAgICAgICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBp
bnB1dFNsb3Q6IHBvc2l0aW9uQnVmZmVySW5kZXgsCiAgICAgICAgICAgICBzdHJpZGU6IDQgKiA0
LAogICAgICAgICAgICAgc3RlcE1vZGU6IFdlYkdQVUlucHV0U3RlcE1vZGUuVkVSVEVYCiAgICAg
ICAgIH0sIHsKLSAgICAgICAgICAgIGlucHV0U2xvdDogMSwKKyAgICAgICAgICAgIGlucHV0U2xv
dDogdGV4Q29vcmRzQnVmZmVySW5kZXgsCiAgICAgICAgICAgICBzdHJpZGU6IDQgKiAyLAogICAg
ICAgICAgICAgc3RlcE1vZGU6IFdlYkdQVUlucHV0U3RlcE1vZGUuVkVSVEVYCiAgICAgICAgIH1d
CkBAIC04MCwyNSArODgsMjUgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAvLyBGSVhN
RTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVycy4KICAgICBjb25zdCBzaGFkZXJNb2R1bGUg
PSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKIAotICAg
IGNvbnN0IHZlcnRleEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbCisgICAgY29uc3QgcG9zaXRp
b25BcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWwogICAgICAgICAvLyBmbG9hdDQgeHl6dwogICAg
ICAgICAtMSwgMSwgMCwgMSwKICAgICAgICAgLTEsIC0xLCAwLCAxLAogICAgICAgICAxLCAxLCAw
LCAxLCAKICAgICAgICAgMSwgLTEsIDAsIDEKICAgICBdKTsKLSAgICBjb25zdCB2ZXJ0ZXhCdWZm
ZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogdmVydGV4QXJyYXkuYnl0ZUxlbmd0aCwg
dXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RT
VCB9KTsKLSAgICB2ZXJ0ZXhCdWZmZXIuc2V0U3ViRGF0YSgwLCB2ZXJ0ZXhBcnJheS5idWZmZXIp
OworICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6
IHBvc2l0aW9uQXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8
IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKKyAgICBwb3NpdGlvbkJ1ZmZlci5zZXRT
dWJEYXRhKDAsIHBvc2l0aW9uQXJyYXkuYnVmZmVyKTsKIAotICAgIGNvbnN0IHRleHR1cmVDb29y
ZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbCisgICAgY29uc3QgdGV4Q29vcmRzQXJyYXkgPSBu
ZXcgRmxvYXQzMkFycmF5KFsKICAgICAgICAgLy8gZmxvYXQyIHRleENvb3JkcwogICAgICAgICAw
LCAwLAogICAgICAgICAwLCAxLAogICAgICAgICAxLCAwLAogICAgICAgICAxLCAxCiAgICAgXSk7
Ci0gICAgY29uc3QgdGV4dHVyZUNvb3JkQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNp
emU6IHRleHR1cmVDb29yZEFycmF5LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5W
RVJURVggfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfSk7Ci0gICAgdGV4dHVyZUNvb3Jk
QnVmZmVyLnNldFN1YkRhdGEoMCwgdGV4dHVyZUNvb3JkQXJyYXkuYnVmZmVyKTsKKyAgICBjb25z
dCB0ZXh0dXJlQ29vcmRCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogdGV4Q29v
cmRzQXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1
ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKKyAgICB0ZXh0dXJlQ29vcmRCdWZmZXIuc2V0U3Vi
RGF0YSgwLCB0ZXhDb29yZHNBcnJheS5idWZmZXIpOwogCiAgICAgY29uc3QgaW5wdXRTdGF0ZURl
c2NyaXB0b3IgPSBjcmVhdGVJbnB1dFN0YXRlRGVzY3JpcHRvcigpOwogCkBAIC0xNDMsMTcgKzE1
MSwzNiBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH07CiAgICAgY29uc3QgdGV4dHVy
ZSA9IGRldmljZS5jcmVhdGVUZXh0dXJlKHRleHR1cmVEZXNjcmlwdG9yKTsKIAotICAgIC8vIEJp
bmQgdGV4dHVyZSB0byBwaXBlbGluZQotICAgIGNvbnN0IHRleHR1cmVCaW5kaW5nTnVtID0gMDsK
KyAgICAvLyBCaW5kIHRleHR1cmUgYW5kIGEgc2FtcGxlciB0byBwaXBlbGluZQorICAgIGNvbnN0
IHRleHR1cmVMYXlvdXRCaW5kaW5nID0geyAKKyAgICAgICAgYmluZGluZzogdGV4dHVyZUJpbmRp
bmdOdW0sIAorICAgICAgICB2aXNpYmlsaXR5OiBHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwg
CisgICAgICAgIHR5cGU6ICJzYW1wbGVkLXRleHR1cmUiIAorICAgIH07CisgICAgY29uc3Qgc2Ft
cGxlckxheW91dEJpbmRpbmcgPSB7CisgICAgICAgIGJpbmRpbmc6IHNhbXBsZXJCaW5kaW5nTnVt
LAorICAgICAgICB2aXNpYmlsaXR5OiBHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwKKyAgICAg
ICAgdHlwZTogInNhbXBsZXIiCisgICAgfTsKKwogICAgIGNvbnN0IGJpbmRHcm91cExheW91dERl
c2NyaXB0b3IgPSB7Ci0gICAgICAgIGJpbmRpbmdzOiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGlu
Z051bSwgdmlzaWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VCaXQuRlJBR01FTlQsIHR5cGU6ICJzYW1w
bGVkLXRleHR1cmUiIH1dCisgICAgICAgIGJpbmRpbmdzOiBbdGV4dHVyZUxheW91dEJpbmRpbmcs
IHNhbXBsZXJMYXlvdXRCaW5kaW5nXQogICAgIH07CiAgICAgYmluZEdyb3VwTGF5b3V0ID0gZGV2
aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKICAg
ICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dCh7IGJp
bmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlvdXRdIH0pOwogCisgICAgY29uc3QgdGV4dHVy
ZUJpbmRpbmcgPSB7IAorICAgICAgICBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgCisgICAg
ICAgIHJlc291cmNlOiB0ZXh0dXJlLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpIAorICAgIH07
CisgICAgY29uc3Qgc2FtcGxlckJpbmRpbmcgPSB7CisgICAgICAgIGJpbmRpbmc6IHNhbXBsZXJC
aW5kaW5nTnVtLAorICAgICAgICByZXNvdXJjZTogZGV2aWNlLmNyZWF0ZVNhbXBsZXIoeyBtaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtYWdGaWx0ZXI6ICJsaW5lYXIiIH0pCisgICAgfTsKKwogICAgIGNv
bnN0IGJpbmRHcm91cERlc2NyaXB0b3IgPSB7CiAgICAgICAgIGxheW91dDogYmluZEdyb3VwTGF5
b3V0LAotICAgICAgICBiaW5kaW5nczogW3sgYmluZGluZzogdGV4dHVyZUJpbmRpbmdOdW0sIHJl
c291cmNlOiB0ZXh0dXJlLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpIH1dCisgICAgICAgIGJp
bmRpbmdzOiBbdGV4dHVyZUJpbmRpbmcsIHNhbXBsZXJCaW5kaW5nXQogICAgIH07CiAgICAgY29u
c3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9y
KTsKIApAQCAtMTc2LDE0ICsyMDMsMTQgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBj
b21tYW5kQnVmZmVyLmNvcHlCdWZmZXJUb1RleHR1cmUoYnVmZmVyQ29weVZpZXcsIHRleHR1cmVD
b3B5VmlldywgdGV4dHVyZVNpemUpOwogICAgIGNvbnN0IHBhc3NFbmNvZGVyID0gYmVnaW5CYXNp
Y1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZlcik7CiAgICAgcGFzc0VuY29kZXIuc2V0
UGlwZWxpbmUocGlwZWxpbmUpOwotICAgIHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBiaW5k
R3JvdXApOwotICAgIHBhc3NFbmNvZGVyLnNldFZlcnRleEJ1ZmZlcnMoMCwgW3ZlcnRleEJ1ZmZl
ciwgdGV4dHVyZUNvb3JkQnVmZmVyXSwgWzAsIDBdKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRCaW5k
R3JvdXAoYmluZEdyb3VwSW5kZXgsIGJpbmRHcm91cCk7CisgICAgcGFzc0VuY29kZXIuc2V0VmVy
dGV4QnVmZmVycyhwb3NpdGlvbkJ1ZmZlckluZGV4LCBbcG9zaXRpb25CdWZmZXIsIHRleHR1cmVD
b29yZEJ1ZmZlcl0sIFswLCAwXSk7CiAgICAgcGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsK
ICAgICBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CiAKICAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5n
ZXRRdWV1ZSgpOwogICAgIHF1ZXVlLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOwotICAgIHZlcnRl
eEJ1ZmZlci5kZXN0cm95KCk7CisgICAgcG9zaXRpb25CdWZmZXIuZGVzdHJveSgpOwogICAgIHRl
eHR1cmVDb29yZEJ1ZmZlci5kZXN0cm95KCk7CiAgICAgdGV4dHVyZS5kZXN0cm95KCk7CiAgICAg
Y29udGV4dC5wcmVzZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363913</attachid>
            <date>2019-03-07 12:56:36 -0800</date>
            <delta_ts>2019-03-07 13:14:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195427-20190307125635.patch</filename>
            <type>text/plain</type>
            <size>67408</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxZmYwZmM0MDBmMzI2
OGEwOTU5YjZkZjJkMmExM2FiNTlmZWMzNi4uOThmZDEzMTkyNzAzZTMzMDMxNGQyNDQxNDBhMGI1
NDQzYTZlM2FjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE5LTAzLTA3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVNh
bXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg2ODYwMTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IGFiaWxpdHkgdG8gY3JlYXRlIEdQVVNhbXBsZXJzIGFuZCB1c2UgdGhlbSBhcyBwaXBlbGluZSBy
ZXNvdXJjZSBiaW5kaW5ncy4KKworICAgICAgICBUZXN0OiB0ZXh0dXJlLXRyaWFuZ2xlLXN0cmlw
Lmh0bWwgdXBkYXRlZC4KKworICAgICAgICBBZGQgc3ltYm9scyB0byBwcm9qZWN0OgorICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6
CisKKyAgICAgICAgR1BVU2FtcGxlciBjcmVhdGlvbjoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9HUFVTYW1wbGVyRGVzY3JpcHRvci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZVNhbXBsZXIgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVNhbXBsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVTYW1wbGVyOjpXZWJHUFVTYW1wbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTYW1wbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU2FtcGxlcjo6
c2FtcGxlciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5p
ZGw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGVTYW1wbGVyIGNvbnN0KTog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6cGxhdGZvcm1TYW1wbGVyIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjptdGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6Om10bEJvcmRlckNvbG9yRm9yQm9yZGVyQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bXRsTWluTWFnRmlsdGVyRm9yRmlsdGVyTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjptdGxNaXBGaWx0ZXJGb3JGaWx0ZXJNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeUNy
ZWF0ZU10bFNhbXBsZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjp0cnlD
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6R1BVU2FtcGxlcik6CisKKyAg
ICAgICAgTW92ZSBHUFVDb21wYXJlRnVuY3Rpb24gdG8gVXRpbHMgZm9yIHNoYXJlZCB1c2UuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVVdGlscy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGVBbmRDb252ZXJ0RGVwdGhDb21wYXJlRnVuY3Rpb25Ub010bCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVV0aWxzTWV0YWwu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybVRleHR1cmVGb3JtYXRGb3JHUFVUZXh0dXJl
Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9yR1BV
Q29tcGFyZUZ1bmN0aW9uKToKKworICAgICAgICBFeHBhbmQgYmluZCBncm91cHMgdG8gYWNjZXB0
IEdQVVNhbXBsZXJzOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJp
bmRpbmcuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5n
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I6OmFzR1BV
QmluZEdyb3VwRGVzY3JpcHRvciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNl
QXNCdWZmZXJPbkVuY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1
cmVPbkVuY29kZXIpOgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5j
cHA6IE1pc3NpbmcgaW5jbHVkZS4KKwogMjAxOS0wMy0wNiAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBHUFVUZXh0dXJlIGFuZCBHUFVUZXh0
dXJlVmlldyB1cGRhdGVzLCBhbmQgcmVsYXRlZCBHUFVCaW5kR3JvdXAgdXBkYXRlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBmNTJiZDRmNTYwNjQ0OTJlYzhhNDQ3YTcxZTg1NmRiOWQwNGQ0NDQ2
Li42YWFiNTc1MGRhOTQ3NDNlMzJlZmEwN2IwMzhjMjZhMTE1MmY2ODU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtNDczLDYgKzQ3Myw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVT
CiAgICAgTW9kdWxlcy93ZWJncHUvR1BVTG9hZE9wLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQ
VU9yaWdpbjNELmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cy5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5pZGwKICAgICBN
b2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9H
UFVTdG9yZU9wLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmlk
bApAQCAtNTAzLDYgKzUwNCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCiAgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2Ft
cGxlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjNDIzMDA2MmMyM2RhY2M4MDEyODVmN2Nk
ZjQwYzA5M2U2MzI5OTMxLi4yN2I3MmI3NzBkMmNkMGI2M2E5NzFiYTU0NDdlNjBjYTdiMmZhZTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTMzMiw2ICszMzIsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVFeHRl
bnQzRC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmlkbAorJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViZ3B1L0dQVVN0b3JlT3AuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmdwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5pZGwKQEAgLTM2OSw2ICszNzAsNyBAQCAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4
IGM2NGFhM2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEwZWNkZDdlN2YxYTcuLmFjMmI2MzhhMDIxZGFm
MWJkNTRiYjllNDk3YjU3MmNkNDBhYmRlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01OTksNiArNTk5LDggQEAgJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVPcmlnaW4zRC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3JpZ2luM0Qu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVSZXF1
ZXN0QWRhcHRlck9wdGlvbnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTYW1wbGVy
RGVzY3JpcHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dQVVNoYWRlclN0YWdlQml0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJpdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVN0b3JlT3AuY3BwCkBAIC0xOTMzLDYgKzE5
MzUsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHUFVSZW5k
ZXJpbmdDb250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVU2FtcGxlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVU2FtcGxlci5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNoYWRlck1vZHVs
ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2Vi
R1BVU2hhZGVyTW9kdWxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDhlNjVkNDdlN2ExYzI5YTRmOGY0NDEyMWMzMDg1OWFlNTU0Mzc1
NjIuLmU0YjgyNWQ0NzQ3MWY3Y2NkNTcwZjNiMmZjZmMwNWZhZGZkNzhmYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzgzLDYgKzM4Myw3IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVT3JpZ2luM0QuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTdG9yZU9wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5pZGwgXApAQCAtNDEzLDYgKzQxNCw3IEBA
IEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVNoYWRlck1vZHVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDhiYWNkNDA1YTMyMzdjZWY0ZWYxZGFjMDlhMjIxMjg0YTFlYWRmNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3
ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5z
aWduZWQgbG9uZyB1MzI7CisKK2VudW0gR1BVQWRkcmVzc01vZGUgeworICAgICJjbGFtcC10by1l
ZGdlIiwKKyAgICAicmVwZWF0IiwKKyAgICAibWlycm9yLXJlcGVhdCIsCisgICAgImNsYW1wLXRv
LWJvcmRlci1jb2xvciIKK307CisKK2VudW0gR1BVRmlsdGVyTW9kZSB7CisgICAgIm5lYXJlc3Qi
LAorICAgICJsaW5lYXIiCit9OworCitlbnVtIEdQVUJvcmRlckNvbG9yIHsKKyAgICAidHJhbnNw
YXJlbnQtYmxhY2siLAorICAgICJvcGFxdWUtYmxhY2siLAorICAgICJvcGFxdWUtd2hpdGUiCit9
OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
R1BVCitdIGRpY3Rpb25hcnkgR1BVU2FtcGxlckRlc2NyaXB0b3IgeworICAgIEdQVUFkZHJlc3NN
b2RlIGFkZHJlc3NNb2RlVSA9ICJjbGFtcFRvRWRnZSI7CisgICAgR1BVQWRkcmVzc01vZGUgYWRk
cmVzc01vZGVWID0gImNsYW1wVG9FZGdlIjsKKyAgICBHUFVBZGRyZXNzTW9kZSBhZGRyZXNzTW9k
ZVcgPSAiY2xhbXBUb0VkZ2UiOworICAgIEdQVUZpbHRlck1vZGUgbWFnRmlsdGVyID0gIm5lYXJl
c3QiOworICAgIEdQVUZpbHRlck1vZGUgbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIEdQVUZp
bHRlck1vZGUgbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGZsb2F0IGxvZE1pbkNsYW1w
ID0gMDsKKyAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IDB4ZmZmZmZmZmY7IC8vIFRPRE86IFdoYXQg
c2hvdWxkIHRoaXMgYmU/IFdhcyBOdW1iZXIuTUFYX1ZBTFVFLgorICAgIHUzMiBtYXhBbmlzb3Ry
b3B5ID0gMTsKKyAgICBHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVy
IjsKKyAgICBHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5k
R3JvdXBCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5k
R3JvdXBCaW5kaW5nLmgKaW5kZXggZGRkZjk5NWM3MjI2YjVjMWU5NTJlZWFlMTg4NDM5OGRmYjY4
OTAzNi4uOWY5OWRiM2NkOTI3NDEzYzliY2FjMTQwMTI0ZDA4NzRhNmU2ZWE3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRp
bmcuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUg
IldlYkdQVUJ1ZmZlckJpbmRpbmcuaCIKKyNpbmNsdWRlICJXZWJHUFVTYW1wbGVyLmgiCiAjaW5j
bHVkZSAiV2ViR1BVVGV4dHVyZVZpZXcuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIFdlYkdQVUJpbmRpbmdSZXNvdXJjZSA9IFZhcmlh
bnQ8UmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiwgV2ViR1BVQnVmZmVyQmluZGluZz47Cit1c2lu
ZyBXZWJHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXZWJHUFVTYW1wbGVyPiwg
UmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiwgV2ViR1BVQnVmZmVyQmluZGluZz47CiAKIHN0cnVj
dCBXZWJHUFVCaW5kR3JvdXBCaW5kaW5nIHsKICAgICB1bnNpZ25lZCBsb25nIGJpbmRpbmc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBC
aW5kaW5nLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91
cEJpbmRpbmcuaWRsCmluZGV4IGEyNjcyMDY3ODAyYzlhZThhZDRlNWFiZTQ1ODFlYzZlNjFmMDFj
YTUuLjcxZDQ1OGRkNzJjNmMxNDE0NGFiYmNjYWE0Y2E3ZDkxMzgwOGI0NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRp
bmcuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dw
dXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAogCiB0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgdTMyOwotdHlwZWRlZiAoLypXZWJHUFVTYW1wbGVyIG9yICovV2ViR1BVVGV4dHVyZVZp
ZXcgb3IgV2ViR1BVQnVmZmVyQmluZGluZykgV2ViR1BVQmluZGluZ1Jlc291cmNlOwordHlwZWRl
ZiAoV2ViR1BVU2FtcGxlciBvciBXZWJHUFVUZXh0dXJlVmlldyBvciBXZWJHUFVCdWZmZXJCaW5k
aW5nKSBXZWJHUFVCaW5kaW5nUmVzb3VyY2U7CiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IuY3BwCmluZGV4IDI2MzgxYmY3MTU4NjNlNDAzMTc5NWY0NjZlNDNl
MmY2ZjEwYThmNzEuLjhhNGJlNjk1MGQ3OWU0MmM4YThlYWIzM2UwM2QzOTk4Y2RmNzg2OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERl
c2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IuY3BwCkBAIC04OCw3ICs4OCwxNSBAQCBPcHRpb25hbDxHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yPiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOjphc0dQVUJpbmRHcm91
cERlc2NyaQogCiAgICAgICAgIGNvbnN0IGF1dG8gbGF5b3V0QmluZGluZyA9IGl0ZXJhdG9yLT52
YWx1ZTsKIAotICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZVZpc2l0b3IgPSBXVEY6Om1ha2VW
aXNpdG9yKFtdKGNvbnN0IFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4mIHZpZXcpIC0+IE9wdGlv
bmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4geworICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZVZp
c2l0b3IgPSBXVEY6Om1ha2VWaXNpdG9yKFtdKGNvbnN0IFJlZlB0cjxXZWJHUFVTYW1wbGVyPiYg
c2FtcGxlcikgLT4gT3B0aW9uYWw8R1BVQmluZGluZ1Jlc291cmNlPiB7CisgICAgICAgICAgICBp
ZiAoIXNhbXBsZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAg
ICAgICAgIGF1dG8gZ3B1U2FtcGxlciA9IHNhbXBsZXItPnNhbXBsZXIoKTsKKyAgICAgICAgICAg
IGlmICghZ3B1U2FtcGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGluZ1Jlc291cmNlPihtYWtl
UmVmKCpncHVTYW1wbGVyKSk7CisgICAgICAgIH0sIFtdKGNvbnN0IFJlZlB0cjxXZWJHUFVUZXh0
dXJlVmlldz4mIHZpZXcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewogICAgICAg
ICAgICAgaWYgKCF2aWV3KQogICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAg
ICAgICAgICAgICBhdXRvIHRleHR1cmUgPSB2aWV3LT50ZXh0dXJlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCA0NDVlOTNhMWE5Y2Nm
OGVjMDRhNDM3YmJiN2JjYWMwYzVlNTBjMDhiLi4yMjk0Zjg1YjUwMzk4ZmFhNzMwOGQ2ODEwNjQ3
N2IyMjVkMDgxZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVy
LmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCisj
aW5jbHVkZSAiR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCkBAIC01Miw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViR1BVUXVldWUu
aCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2luY2x1ZGUgIldlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVNhbXBsZXIuaCIKICNp
bmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZS5oIgpAQCAtODQsNiArODcs
MTIgQEAgUmVmPFdlYkdQVVRleHR1cmU+IFdlYkdQVURldmljZTo6Y3JlYXRlVGV4dHVyZShHUFVU
ZXh0dXJlRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IKICAgICByZXR1cm4gV2ViR1BVVGV4dHVyZTo6
Y3JlYXRlKFdURk1vdmUodGV4dHVyZSkpOwogfQogCitSZWY8V2ViR1BVU2FtcGxlcj4gV2ViR1BV
RGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKSBjb25zdAoreworICAgIGF1dG8gc2FtcGxlciA9IG1fZGV2aWNlLT50cnlDcmVhdGVTYW1w
bGVyKGRlc2NyaXB0b3IpOworICAgIHJldHVybiBXZWJHUFVTYW1wbGVyOjpjcmVhdGUoV1RGTW92
ZShzYW1wbGVyKSk7Cit9CisKIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CiAgICAgYXV0byBsYXlvdXQgPSBtX2RldmljZS0+dHJ5
Q3JlYXRlQmluZEdyb3VwTGF5b3V0KGRlc2NyaXB0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCA5OTVjY2I5ZjNhNjViNjYxNzU0YWQ0NzUx
NzA5MTJjZmUyYzU2MGY1Li5kZDBlY2JmN2M0NDE2NTg4YTNhOGM2MjI3NzkxMDkzNmZlOTM3MDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaApAQCAt
NDQsMTEgKzQ0LDEzIEBAIGNsYXNzIFdlYkdQVUJ1ZmZlcjsKIGNsYXNzIFdlYkdQVUNvbW1hbmRC
dWZmZXI7CiBjbGFzcyBXZWJHUFVQaXBlbGluZUxheW91dDsKIGNsYXNzIFdlYkdQVVJlbmRlclBp
cGVsaW5lOworY2xhc3MgV2ViR1BVU2FtcGxlcjsKIGNsYXNzIFdlYkdQVVNoYWRlck1vZHVsZTsK
IGNsYXNzIFdlYkdQVVRleHR1cmU7CiAKIHN0cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yOwogc3RydWN0IEdQVUJ1ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgR1BVU2FtcGxlckRlc2Ny
aXB0b3I7CiBzdHJ1Y3QgR1BVVGV4dHVyZURlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVQmluZEdy
b3VwRGVzY3JpcHRvcjsKIHN0cnVjdCBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CkBA
IC02NCw2ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIFJlZjxXZWJHUFVCdWZmZXI+IGNyZWF0ZUJ1
ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yJiYpIGNvbnN0OwogICAgIFJlZjxXZWJHUFVUZXh0dXJl
PiBjcmVhdGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yJiYpIGNvbnN0OworICAgIFJlZjxX
ZWJHUFVTYW1wbGVyPiBjcmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikg
Y29uc3Q7CiAKICAgICBSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBjcmVhdGVCaW5kR3JvdXBM
YXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJl
ZjxXZWJHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5pZGwKaW5kZXggYzhkYWZjN2U1ZWU1YTM2OTVhZTk1N2Q0MDQx
Njg5YTIxMDgwNjNlNC4uMTlkM2NhNTVhMjNmZTZkOWY1ODYzZmM4ZTZkYWZlMjNlMDk3ZWZkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCkBA
IC0zMyw2ICszMyw3IEBACiAKICAgICBXZWJHUFVCdWZmZXIgY3JlYXRlQnVmZmVyKEdQVUJ1ZmZl
ckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJl
KEdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVVNhbXBsZXIgY3Jl
YXRlU2FtcGxlcihHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKIAogICAgIFdlYkdQ
VUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVQaXBlbGluZUxheW91dCBjcmVhdGVQ
aXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CkBAIC01MCw4ICs1MSw2IEBACiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdQVUV4dGVu
c2lvbnMgZXh0ZW5zaW9uczsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgV2ViR1BVTGltaXRz
IGxpbWl0czsKIAotICAgIC8vIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxlcihXZWJHUFVTYW1w
bGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLQogICAgIC8vIFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKICAgICAvLyBXZWJHUFVGZW5jZSBjcmVhdGVGZW5jZShXZWJHUFVGZW5jZURl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVU2FtcGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE1MjBlNjNhMWEwMDU0OTA5N2U0MDFh
ZWViOGI0MzJkNWQxMjYwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU2FtcGxlci5oIgorCisjaWYg
RU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V2ViR1BVU2FtcGxl
cj4gV2ViR1BVU2FtcGxlcjo6Y3JlYXRlKFJlZlB0cjxHUFVTYW1wbGVyPiYmIHNhbXBsZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVU2FtcGxlcihXVEZNb3ZlKHNhbXBsZXIp
KSk7Cit9CisKK1dlYkdQVVNhbXBsZXI6OldlYkdQVVNhbXBsZXIoUmVmUHRyPEdQVVNhbXBsZXI+
JiYgc2FtcGxlcikKKyAgICA6IG1fc2FtcGxlcihXVEZNb3ZlKHNhbXBsZXIpKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNi
NTkzZDAzZGQ5MWE4MjJiNGZlMjIzN2E1ZmJkZjE5MzI1Mzg4YzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
ZWJHUFVTYW1wbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVU2FtcGxlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViR1BVU2FtcGxlcj4gY3JlYXRlKFJlZlB0cjxHUFVTYW1wbGVy
PiYmKTsKKworICAgIEdQVVNhbXBsZXIqIHNhbXBsZXIoKSBjb25zdCB7IHJldHVybiBtX3NhbXBs
ZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXZWJHUFVTYW1wbGVyKFJlZlB0cjxHUFVTYW1w
bGVyPiYmKTsKKworICAgIFJlZlB0cjxHUFVTYW1wbGVyPiBtX3NhbXBsZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YTJjM2I1Mzk4ZWZjMDI4ZDRhNjU1YWFlNWRiMTFiNTE2NDc2ZjBhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5pZGwKQEAgLTAs
MCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdl
Yi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9
V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVVNhbXBsZXIgeworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5jcHAKaW5kZXggMTZhMjYzNjk4
ZmUwYzVmMDgyNzEwYzY4OWM3NDdkNTdiMTYzMDE5ZS4uNGQ5MjFiYzUwZjYzMzUwNzQxODc3OWNh
NmJlMzEyZDBhYzQ1NjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZpZXcuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5YTBiNWUwMzdlZGFmMTNj
MGU0ODEyNWM2NDFiZWQ4N2EzNDVkNmY1Li4zYmU5Y2Q5YTVlZTU5M2JmZmM4N2M1ODg1YzA2MmMw
ODdjZTkzZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzYzLDYgKzM2Myw3IEBAIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNv
ZGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCitNb2R1bGVz
L3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9k
dWxlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmNwcAogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVGV4dHVyZS5jcHAKQEAgLTI3ODEsNiArMjc4Miw3IEBAIEpTR1BVRXh0ZW50M0Qu
Y3BwCiBKU0dQVUxvYWRPcC5jcHAKIEpTR1BVT3JpZ2luM0QuY3BwCiBKU0dQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5jcHAKK0pTR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwCiBKU0dQVVNoYWRlclN0
YWdlQml0LmNwcAogSlNHUFVTdG9yZU9wLmNwcAogSlNHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAK
QEAgLTMzMzksNiArMzM0MSw3IEBAIEpTV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCiBK
U1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAogSlNXZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAK
IEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorSlNXZWJHUFVTYW1wbGVyLmNw
cAogSlNXZWJHUFVTaGFkZXJNb2R1bGUuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuY3BwCiBKU1dlYkdQVVN3YXBDaGFpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IDU3ZTJkZjg1NjFmODhiODAzOTI3YjBlZWM4YmNmMGNiYWE0YjA1NTYuLjczNGVmNzg1ZjNhODE5
NzM0MGZiMDIxMDQ1YWM2MWZjYWIwMzRkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAt
MzI1LDYgKzMyNSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlck1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVl
dWVNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNv
ZGVyTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGlu
ZU1ldGFsLm1tCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2FtcGxlck1ldGFsLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxlTWV0YWwubW0KIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjMjQzMGJkNmU5YzU5
NDk3YWIzNjdlZTYyY2I3NGJiZWQ5YjVhMGYuLjU4MmJhYTRiZTA5OGU3MTAyYjdhMzAyNzBmMTJk
YzU2NWJmYjJjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE0MTAwLDYgKzE0MTAwLDEzIEBACiAJCUQwQTIwRDU0MjA5MkEw
QTYwMEUwQzI1OSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEEyMEQ1NjIwOTJBMEE2MDBFMEMyNTkgLyogV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFTVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMEEzQTczMDE0MDVBMzk4MDBGQjhFRDMgLyogUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZGVyT3B0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2MjIyMzA5RDc2MDBB
MjI5MzUgLyogR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVU2FtcGxl
ckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNjMyMjMw
OUQ3NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVTYW1wbGVy
RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQURCMjY4MjIz
MEFBQ0IwMEEyMjkzNSAvKiBHUFVTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVNhbXBsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNkIyMjMwQUNDMDAwQTIyOTM1
IC8qIEdQVVNhbXBsZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVNhbXBsZXJN
ZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNkMyMjMwQkI4RTAw
QTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2FtcGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2RDIyMzBCQjhFMDBBMjI5MzUg
LyogV2ViR1BVU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTYW1wbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNkYyMjMwQzFGMTAwQTIyOTM1
IC8qIFdlYkdQVVNhbXBsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVNhbXBsZXIuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlu
a0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTGlua0Nv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCMDU1NjcwOUM2NzAwMTAw
MzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENyZWF0ZUxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDBCOEJCMDEyMUM0NkU3ODAwMEM3NjgxIC8qIEdQVUJpbmRHcm91cExheW91dEJp
bmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg0OTUsNiArMTg1MDIsOCBAQAogCQkJCTMxMkZG
OEI5MjFBNEMyRUYwMEVCMTk5RCAvKiBHUFVSZW5kZXJQaXBlbGluZS5oICovLAogCQkJCTMxMkZG
OEJDMjFBNEMyRjAwMEVCMTk5RCAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCAqLywK
IAkJCQlEMDZBOUEyMTIyMDI2QzdBMDA4M0M2NjIgLyogR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
LmggKi8sCisJCQkJRDBBREIyNjgyMjMwQUFDQjAwQTIyOTM1IC8qIEdQVVNhbXBsZXIuaCAqLywK
KwkJCQlEMEFEQjI2MjIyMzA5RDc2MDBBMjI5MzUgLyogR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAq
LywKIAkJCQkzMTJGRjhCQjIxQTRDMkYwMDBFQjE5OUQgLyogR1BVU2hhZGVyTW9kdWxlLmggKi8s
CiAJCQkJMzEyRkY4QzAyMUE0QzJGMjAwRUIxOTlEIC8qIEdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuaCAqLywKIAkJCQlEMDhBQTAzMjIyMEQwRDBCMDA1OEM1MDIgLyogR1BVU3RvcmVPcC5oICov
LApAQCAtMjYwOTAsNiArMjYwOTksNyBAQAogCQkJCUQwQ0NBOTQ5MjIyOTlGOTcwMDY5NzlCNiAv
KiBHUFVPcmlnaW4zRC5oICovLAogCQkJCUQwQ0NBOTRBMjIyOTlGOTcwMDY5NzlCNiAvKiBHUFVP
cmlnaW4zRC5pZGwgKi8sCiAJCQkJRDAyQzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIEdQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5pZGwgKi8sCisJCQkJRDBBREIyNjMyMjMwOUQ3NjAwQTIyOTM1IC8q
IEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlkbCAqLywKIAkJCQlEMERFOEZCODIyMkUwOUUyMDA4ODI1
NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLywKIAkJCQlEMERFOEZCOTIyMkUwOUUyMDA4ODI1
NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaWRsICovLAogCQkJCUQwOEFBMDMxMjIwRDBDRTYwMDU4
QzUwMiAvKiBHUFVTdG9yZU9wLmlkbCAqLywKQEAgLTI2MTYwLDYgKzI2MTcwLDkgQEAKIAkJCQlE
MEM0MTlGOTIxODQwNERBMDA5RUMxREUgLyogV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsICovLAog
CQkJCUQwQzQxOUYyMjE4M0VGRUMwMDlFQzFERSAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaCAqLywKIAkJCQlEMEM0MTlGMzIxODNFRkVDMDA5RUMxREUgLyogV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMEFEQjI2RDIyMzBCQjhFMDBBMjI5MzUg
LyogV2ViR1BVU2FtcGxlci5jcHAgKi8sCisJCQkJRDBBREIyNkMyMjMwQkI4RTAwQTIyOTM1IC8q
IFdlYkdQVVNhbXBsZXIuaCAqLywKKwkJCQlEMEFEQjI2RjIyMzBDMUYxMDBBMjI5MzUgLyogV2Vi
R1BVU2FtcGxlci5pZGwgKi8sCiAJCQkJRDA2MTVGQ0QyMTdGRTVDNjAwOEE0OEE4IC8qIFdlYkdQ
VVNoYWRlck1vZHVsZS5jcHAgKi8sCiAJCQkJRDA2MTVGQ0MyMTdGRTVDNjAwOEE0OEE4IC8qIFdl
YkdQVVNoYWRlck1vZHVsZS5oICovLAogCQkJCUQwNjE1RkNFMjE3RkU1QzYwMDhBNDhBOCAvKiBX
ZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLApAQCAtMjYxOTUsNiArMjYyMDgsNyBAQAogCQkJCUQw
ODdDRTM5MjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVRdWV1ZU1ldGFsLm1tICovLAogCQkJCUQwODdD
RTNBMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tICovLAog
CQkJCUQwODdDRTNEMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1t
ICovLAorCQkJCUQwQURCMjZCMjIzMEFDQzAwMEEyMjkzNSAvKiBHUFVTYW1wbGVyTWV0YWwubW0g
Ki8sCiAJCQkJRDA4N0NFNDAyMUFDQTk0MjAwQkRFMTc0IC8qIEdQVVNoYWRlck1vZHVsZU1ldGFs
Lm1tICovLAogCQkJCUQwODdDRTNFMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVTd2FwQ2hhaW5NZXRh
bC5tbSAqLywKIAkJCQlEMDg3Q0UzRjIxQUNBOTQyMDBCREUxNzQgLyogR1BVVGV4dHVyZU1ldGFs
Lm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCmluZGV4IGQ5NWRmYmQzZWFlZDhhYzBlMDFkOTVmMmE0NzViZTc3ODg0ZDc5YjguLjMz
YTdkMTM0MDcyYWVjMzJjZjAyYzAwOWZjZDY3MDAzN2Y3MzBkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIwOCw2ICsyMDgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyaW5nQ29udGV4
dCkgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oV2Vi
R1BVUmVuZGVyUGlwZWxpbmUpIFwKKyAgICBtYWNybyhXZWJHUFVTYW1wbGVyKSBcCiAgICAgbWFj
cm8oV2ViR1BVU2hhZGVyTW9kdWxlKSBcCiAgICAgbWFjcm8oV2ViR1BVU3dhcENoYWluKSBcCiAg
ICAgbWFjcm8oV2ViR1BVVGV4dHVyZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmgKaW5kZXggY2ZhOGIw
MWZjMjZjZjVhNmE5YWNjMTBiNzBkYmJlNjNlMmQ3ZmVlNi4uNDdiZDdhZjYwMmZhMzhkMTI5NDRi
YzM1MjlkZGY4NmJmNzQ3ZTdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oCkBAIC0yOCwxMiArMjgs
MTMgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiR1BVQnVmZmVyQmluZGluZy5o
IgorI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCiAjaW5j
bHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBHUFVC
aW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZjxHUFVUZXh0dXJlPiwgR1BVQnVmZmVyQmluZGlu
Zz47Cit1c2luZyBHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZjxHUFVTYW1wbGVyPiwg
UmVmPEdQVVRleHR1cmU+LCBHUFVCdWZmZXJCaW5kaW5nPjsKIAogc3RydWN0IEdQVUJpbmRHcm91
cEJpbmRpbmcgewogICAgIHVuc2lnbmVkIGxvbmcgYmluZGluZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24uaApp
bmRleCBkZGU5ZjY1Yzc0MGY5YWY4MDhlNjM2ZTM4ZWVmOTc1NGY1OTIzZTY3Li5lZTBiYmEzOWM5
ZGZlNGQwMDI4OTNjOWFiNWMyOGQxMmZlNGMyOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5oCkBAIC00
MCw2ICs0MCw4IEBAIGVudW0gY2xhc3MgR1BVQ29tcGFyZUZ1bmN0aW9uIHsKICAgICBBbHdheXMK
IH07CiAKK3VzaW5nIFBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uID0gdW5zaWduZWQ7CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDdl
YzE2NWNmMDhlNTlhNTZiZWE5YTNmMTlkOTZkN2Q5MzAxZTdkMjEuLmU1MGU5YWQyMmYxNGJjOTBj
MTU3MzM1ZGQ4NjllNjk0ZjliY2YzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSAiR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlw
ZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNs
dWRlICJHUFVTYW1wbGVyLmgiCisjaW5jbHVkZSAiR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgpAQCAtNTQsNiArNTYsMTEgQEAgUmVm
UHRyPEdQVVRleHR1cmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVz
Y3JpcHRvciYmIGRlc2NyaXB0b3IKICAgICByZXR1cm4gR1BVVGV4dHVyZTo6dHJ5Q3JlYXRlKCp0
aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKIH0KIAorUmVmUHRyPEdQVVNhbXBsZXI+IEdQVURl
dmljZTo6dHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikgY29uc3QKK3sKKyAgICByZXR1cm4gR1BVU2FtcGxlcjo6dHJ5Q3JlYXRlKCp0aGlzLCBk
ZXNjcmlwdG9yKTsKK30KKwogUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVRGV2aWNlOjp0
cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikgY29uc3QKIHsKICAgICByZXR1cm4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0
cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDQ3NjllMmQyMDMxZDY1YTk2Yjk5NzRi
MWExMzM5NDg0N2NjMTc3ZDcuLjg4NzQwY2YzMjk3NGUyYWI4ODI4MGUzMTg0MGI2ODcwM2RiZjBm
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2
aWNlLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFu
ZEJ1ZmZlcjsKIGNsYXNzIEdQVVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgR1BVUmVuZGVyUGlwZWxp
bmU7CitjbGFzcyBHUFVTYW1wbGVyOwogY2xhc3MgR1BVU2hhZGVyTW9kdWxlOwogY2xhc3MgR1BV
VGV4dHVyZTsKIApAQCAtNTMsNiArNTQsNyBAQCBzdHJ1Y3QgR1BVQnVmZmVyRGVzY3JpcHRvcjsK
IHN0cnVjdCBHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yOwogc3RydWN0IEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9uczsKK3N0cnVj
dCBHUFVTYW1wbGVyRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9y
Owogc3RydWN0IEdQVVRleHR1cmVEZXNjcmlwdG9yOwogCkBAIC02Miw2ICs2NCw3IEBAIHB1Ymxp
YzoKIAogICAgIFJlZlB0cjxHUFVCdWZmZXI+IHRyeUNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNj
cmlwdG9yJiYpOwogICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0cnlDcmVhdGVUZXh0dXJlKEdQVVRl
eHR1cmVEZXNjcmlwdG9yJiYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVh
dGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWZQ
dHI8R1BVQmluZEdyb3VwTGF5b3V0PiB0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZjxHUFVQaXBlbGluZUxh
eW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBkODllNjI0NjM2
NzhlZmQ2YTBmOWM5MDcwYmZmODY3Mjg5NGVlNmUwLi4zY2RjMTlmOWI1OGI4NzdlMDE4MjNkMTQz
MjJkMzJjYmYyZTAyYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApAQCAt
NjEsOCArNjEsOSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAjaWYgVVNFKE1FVEFMKQotICAg
IHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwg
Y29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQsIGNvbnN0IGNoYXIqIGNvbnN0KTsK
LSAgICB2b2lkIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2Rl
ciAqLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmLCB1bnNpZ25lZCwgY29uc3QgY2hhciogY29u
c3QpOworICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVu
Y29kZXIgKiwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYsIGNvbnN0IGNoYXIqIGNvbnN0KTsK
KyAgICB2b2lkIHNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2Rl
ciAqLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiwgY29uc3QgY2hhciogY29uc3QpOworICAg
IHZvaWQgc2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICos
IGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcmLCBjb25zdCBjaGFyKiBjb25zdCk7CiAgICAgdmly
dHVhbCB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkKSA9IDA7CiAKICAg
ICAvLyBSZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGM0Mjdm
NjY4NjI5YTU3YjQxYTNhMWFmNjE2Nzg1MjEzMmQzOGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXIuaApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX1BST1RPQ09MKE1UTFNhbXBsZXJTdGF0
ZSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVRGV2aWNlOworCitzdHJ1Y3Qg
R1BVU2FtcGxlckRlc2NyaXB0b3I7CisKK3VzaW5nIFBsYXRmb3JtU2FtcGxlciA9IE1UTFNhbXBs
ZXJTdGF0ZTsKK3VzaW5nIFBsYXRmb3JtU2FtcGxlclNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTFNh
bXBsZXJTdGF0ZT47CisKK2NsYXNzIEdQVVNhbXBsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVT
YW1wbGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImKTsKKworICAg
IFBsYXRmb3JtU2FtcGxlciogcGxhdGZvcm1TYW1wbGVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybVNhbXBsZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBHUFVTYW1wbGVyKFBsYXRmb3Jt
U2FtcGxlclNtYXJ0UHRyJiYpOworCisgICAgUGxhdGZvcm1TYW1wbGVyU21hcnRQdHIgbV9wbGF0
Zm9ybVNhbXBsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTMwMDhjZjcy
YjJjMzJmY2I4YzhjNDIwOGZiM2I3ZTM1ZTlhZWM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmgKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2luY2x1ZGUgIkdQVUNvbXBhcmVGdW5jdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBHUFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgZW51bSBjbGFzcyBB
ZGRyZXNzTW9kZSB7CisgICAgICAgIENsYW1wVG9FZGdlLAorICAgICAgICBSZXBlYXQsCisgICAg
ICAgIE1pcnJvclJlcGVhdCwKKyAgICAgICAgQ2xhbXBUb0JvcmRlckNvbG9yLAorICAgIH07CisK
KyAgICBlbnVtIGNsYXNzIEZpbHRlck1vZGUgeworICAgICAgICBOZWFyZXN0LAorICAgICAgICBM
aW5lYXIsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgQm9yZGVyQ29sb3IgeworICAgICAgICBU
cmFuc3BhcmVudEJsYWNrLAorICAgICAgICBPcGFxdWVCbGFjaywKKyAgICAgICAgT3BhcXVlV2hp
dGUsCisgICAgfTsKKworICAgIEFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlVSA9IEFkZHJlc3NNb2Rl
OjpDbGFtcFRvRWRnZTsKKyAgICBBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVYgPSBBZGRyZXNzTW9k
ZTo6Q2xhbXBUb0VkZ2U7CisgICAgQWRkcmVzc01vZGUgYWRkcmVzc01vZGVXID0gQWRkcmVzc01v
ZGU6OkNsYW1wVG9FZGdlOworICAgIEZpbHRlck1vZGUgbWFnRmlsdGVyID0gRmlsdGVyTW9kZTo6
TmVhcmVzdDsKKyAgICBGaWx0ZXJNb2RlIG1pbkZpbHRlciA9IEZpbHRlck1vZGU6Ok5lYXJlc3Q7
CisgICAgRmlsdGVyTW9kZSBtaXBtYXBGaWx0ZXIgPSBGaWx0ZXJNb2RlOjpOZWFyZXN0OworICAg
IGZsb2F0IGxvZE1pbkNsYW1wID0gMDsKKyAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IDB4ZmZmZmZm
ZmY7CisgICAgdW5zaWduZWQgbWF4QW5pc290cm9weSA9IDE7CisgICAgR1BVQ29tcGFyZUZ1bmN0
aW9uIGNvbXBhcmVGdW5jdGlvbiA9IEdQVUNvbXBhcmVGdW5jdGlvbjo6TmV2ZXI7CisgICAgQm9y
ZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSBCb3JkZXJDb2xvcjo6VHJhbnNwYXJlbnRCbGFjazsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVVdGlscy5oCmluZGV4
IDQ3MDVhYjVhOGQzOTQyNWNkMjIwZjU4MTQ3NjRjNWU4ZGJiMmY1N2YuLjA1ZDlhNWM3MDc0YzRh
ZTYzM2U4ZTYwMTJjNWNjODc2OGJmYjRmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVVdGlscy5oCkBAIC0yNywxMSArMjcsMTMgQEAKIAogI2lmIEVO
QUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVDb21wYXJlRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJHUFVUZXh0dXJlRm9ybWF0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxhdGZvcm1U
ZXh0dXJlRm9ybWF0IHBsYXRmb3JtVGV4dHVyZUZvcm1hdEZvckdQVVRleHR1cmVGb3JtYXQoR1BV
VGV4dHVyZUZvcm1hdCk7CitQbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbiBwbGF0Zm9ybUNvbXBhcmVG
dW5jdGlvbkZvckdQVUNvbXBhcmVGdW5jdGlvbihHUFVDb21wYXJlRnVuY3Rpb24pOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyTWV0YWwubW0KaW5kZXggNWI3OGYwMThjNWNiNjAwZDYwMWI2M2M4MWM1ZmZj
MWIzYTc2YzI0OC4uNDUwMDg0N2FiZGQwOWMwMDViYmM0ODU1OTY5M2UwYTdmNDA1NTczOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0K
QEAgLTcwLDMwICs3MCwzNyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRC
aW5kR3JvdXAodW5zaWduZWQgaW5kZXgsIEdQVUJpbmRHcm91cCYgYmluZAogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBTZXQgZWFjaCByZXNvdXJjZSBvbiBlYWNoIE1U
TEFyZ3VtZW50RW5jb2RlciBpdCBzaG91bGQgYmUgdmlzaWJsZSBvbi4KLSAgICBjb25zdCBhdXRv
JiBiaW5kaW5nc01hcCA9IGJpbmRHcm91cC5sYXlvdXQoKS5iaW5kaW5nc01hcCgpOwotICAgIGZv
ciAoY29uc3QgYXV0byYgYmluZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7Ci0gICAgICAg
IGF1dG8gaXRlcmF0b3IgPSBiaW5kaW5nc01hcC5maW5kKGJpbmRpbmcuYmluZGluZyk7Ci0gICAg
ICAgIGlmIChpdGVyYXRvciA9PSBiaW5kaW5nc01hcC5lbmQoKSkgewotICAgICAgICAgICAgTE9H
KFdlYkdQVSwgIiVzOiBHUFVCaW5kR3JvdXBCaW5kaW5nICVsdSBub3QgZm91bmQgaW4gR1BVQmlu
ZEdyb3VwTGF5b3V0ISIsIGZ1bmN0aW9uTmFtZSwgYmluZGluZy5iaW5kaW5nKTsKKyAgICBjb25z
dCBhdXRvJiBsYXlvdXRCaW5kaW5nc01hcCA9IGJpbmRHcm91cC5sYXlvdXQoKS5iaW5kaW5nc01h
cCgpOworICAgIGZvciAoY29uc3QgYXV0byYgcmVzb3VyY2VCaW5kaW5nIDogYmluZEdyb3VwLmJp
bmRpbmdzKCkpIHsKKyAgICAgICAgYXV0byBsYXlvdXRJdGVyYXRvciA9IGxheW91dEJpbmRpbmdz
TWFwLmZpbmQocmVzb3VyY2VCaW5kaW5nLmJpbmRpbmcpOworICAgICAgICBpZiAobGF5b3V0SXRl
cmF0b3IgPT0gbGF5b3V0QmluZGluZ3NNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIExPRyhXZWJH
UFUsICIlczogR1BVQmluZEdyb3VwQmluZGluZyAlbHUgbm90IGZvdW5kIGluIEdQVUJpbmRHcm91
cExheW91dCEiLCBmdW5jdGlvbk5hbWUsIHJlc291cmNlQmluZGluZy5iaW5kaW5nKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBhdXRvIGJpbmRHcm91cExheW91dEJp
bmRpbmcgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgICAgIGF1dG8gbGF5b3V0QmluZGluZyA9IGxh
eW91dEl0ZXJhdG9yLT52YWx1ZTsKIAotICAgICAgICBzd2l0Y2ggKGJpbmRHcm91cExheW91dEJp
bmRpbmcudHlwZSkgeworICAgICAgICBzd2l0Y2ggKGxheW91dEJpbmRpbmcudHlwZSkgewogICAg
ICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIHJlc291cmNlIHR5cGVzLgogICAgICAgICBjYXNl
IEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpVbmlmb3JtQnVmZmVyOgog
ICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpTdG9y
YWdlQnVmZmVyOiB7Ci0gICAgICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52aXNp
YmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCi0gICAgICAgICAgICAg
ICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCks
IGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKLSAgICAg
ICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJT
dGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQotICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNC
dWZmZXJPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCksIGJpbmRpbmcucmVzb3Vy
Y2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlv
dXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkK
KyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFyZ3Mu
ZW5jb2Rlci5nZXQoKSwgcmVzb3VyY2VCaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAg
ICAgaWYgKGxheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFn
czo6RnJhZ21lbnQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2Rl
cihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgcmVzb3VyY2VCaW5kaW5nLCBmdW5jdGlvbk5h
bWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBHUFVCaW5k
R3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6U2FtcGxlcjogeworICAgICAgICAgICAg
aWYgKGxheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6
VmVydGV4KQorICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKHZl
cnRleEFyZ3MuZW5jb2Rlci5nZXQoKSwgcmVzb3VyY2VCaW5kaW5nLCBmdW5jdGlvbk5hbWUpOwor
ICAgICAgICAgICAgaWYgKGxheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdl
Qml0OjpGbGFnczo6RnJhZ21lbnQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc1NhbXBs
ZXJPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywg
ZnVuY3Rpb25OYW1lKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlNhbXBsZWRUZXh0dXJl
OiB7Ci0gICAgICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYg
R1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCi0gICAgICAgICAgICAgICAgc2V0UmVz
b3VyY2VBc1RleHR1cmVPbkVuY29kZXIodmVydGV4QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5n
LnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBp
ZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6
OkZsYWdzOjpGcmFnbWVudCkKLSAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9u
RW5jb2RlcihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmlu
ZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgaWYgKGxheW91dEJpbmRp
bmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6VmVydGV4KQorICAgICAg
ICAgICAgICAgIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKHZlcnRleEFyZ3MuZW5jb2Rl
ci5nZXQoKSwgcmVzb3VyY2VCaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgaWYg
KGxheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6RnJh
Z21lbnQpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoZnJh
Z21lbnRBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywgZnVuY3Rpb25OYW1lKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMDMs
NyArMTEwLDcgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3Vw
KHVuc2lnbmVkIGluZGV4LCBHUFVCaW5kR3JvdXAmIGJpbmQKICAgICB9CiB9CiAKLXZvaWQgR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJj
ZSYgcmVzb3VyY2UsIHVuc2lnbmVkIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5h
bWUpCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVy
T25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBjb25zdCBHUFVC
aW5kR3JvdXBCaW5kaW5nJiBiaW5kaW5nLCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUp
CiB7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7CkBA
IC0xMTMsMTIgKzEyMCwxMiBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRS
ZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlcgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEdQVUJ1ZmZlckJp
bmRpbmc+KHJlc291cmNlKSkgeworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxHUFVC
dWZmZXJCaW5kaW5nPihiaW5kaW5nLnJlc291cmNlKSkgewogICAgICAgICBMT0coV2ViR1BVLCAi
JXM6IFJlc291cmNlIGlzIG5vdCBhIGJ1ZmZlciB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8
R1BVQnVmZmVyQmluZGluZz4ocmVzb3VyY2UpOworICAgIGF1dG8mIGJ1ZmZlckJpbmRpbmcgPSBX
VEY6OmdldDxHUFVCdWZmZXJCaW5kaW5nPihiaW5kaW5nLnJlc291cmNlKTsKICAgICBhdXRvJiBi
dWZmZXJSZWYgPSBidWZmZXJCaW5kaW5nLmJ1ZmZlcjsKICAgICBhdXRvIG10bEJ1ZmZlciA9IGJ1
ZmZlclJlZi0+cGxhdGZvcm1CdWZmZXIoKTsKIApAQCAtMTI5LDcgKzEzNiw3IEBAIHZvaWQgR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGVyCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAg
ICBbYXJndW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjptdGxCdWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRp
bmcub2Zmc2V0IGF0SW5kZXg6aW5kZXhdOworICAgIFthcmd1bWVudEVuY29kZXIgc2V0QnVmZmVy
Om10bEJ1ZmZlciBvZmZzZXQ6YnVmZmVyQmluZGluZy5vZmZzZXQgYXRJbmRleDpiaW5kaW5nLmJp
bmRpbmddOwogICAgIHVzZVJlc291cmNlKG10bEJ1ZmZlciwgYnVmZmVyUmVmLT5pc1JlYWRPbmx5
KCkgPyBNVExSZXNvdXJjZVVzYWdlUmVhZCA6IE1UTFJlc291cmNlVXNhZ2VSZWFkIHwgTVRMUmVz
b3VyY2VVc2FnZVdyaXRlKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0x
MzcsNyArMTQ0LDM1IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291
cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyCiAgICAgbV9jb21tYW5kQnVm
ZmVyLT51c2VCdWZmZXIoYnVmZmVyUmVmLmNvcHlSZWYoKSk7CiB9CiAKLXZvaWQgR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3Vt
ZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJl
c291cmNlLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQor
dm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1NhbXBsZXJPbkVu
Y29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRH
cm91cEJpbmRpbmcmIGJpbmRpbmcsIGNvbnN0IGNoYXIgKmNvbnN0IGZ1bmN0aW9uTmFtZSkKK3sK
KyNpZiBMT0dfRElTQUJMRUQKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKKyNlbmRp
ZgorICAgIGlmICghYXJndW1lbnRFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczog
Tm8gYXJndW1lbnQgZW5jb2RlciBmb3IgcmVxdWVzdGVkIHN0YWdlIGZvdW5kISIsIGZ1bmN0aW9u
TmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8UmVmPEdQVVNhbXBsZXI+PihiaW5kaW5nLnJlc291cmNlKSkgeworICAgICAgICBM
T0coV2ViR1BVLCAiJXM6IFJlc291cmNlIGlzIG5vdCBhIEdQVVNhbXBsZXIhIiwgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIHNhbXBsZXJSZWYgPSBX
VEY6OmdldDxSZWY8R1BVU2FtcGxlcj4+KGJpbmRpbmcucmVzb3VyY2UpOworICAgIGF1dG8gbXRs
U2FtcGxlciA9IHNhbXBsZXJSZWYtPnBsYXRmb3JtU2FtcGxlcigpOworCisgICAgaWYgKCFtdGxT
YW1wbGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBNVExTYW1wbGVyU3Rh
dGUgaW4gR1BVU2FtcGxlciBiaW5kaW5nISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgW2FyZ3Vt
ZW50RW5jb2RlciBzZXRTYW1wbGVyU3RhdGU6bXRsU2FtcGxlciBhdEluZGV4OmJpbmRpbmcuYmlu
ZGluZ107CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKwordm9pZCBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRMQXJn
dW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcm
IGJpbmRpbmcsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSkKIHsKICNpZiBMT0dfRElT
QUJMRUQKICAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKQEAgLTE0NywxMiArMTgyLDEy
IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNUZXh0dXJl
T25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPEdQVVRleHR1cmU+PihyZXNvdXJjZSkp
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSB0ZXh0dXJlIHR5
cGUhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PEdQVVRleHR1cmU+PihiaW5kaW5nLnJlc291cmNlKSkgeworICAgICAgICBMT0coV2ViR1BVLCAi
JXM6IFJlc291cmNlIGlzIG5vdCBhIEdQVVRleHR1cmVWaWV3ISIsIGZ1bmN0aW9uTmFtZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvJiB0ZXh0dXJlUmVmID0gV1RGOjpnZXQ8
UmVmPEdQVVRleHR1cmU+PihyZXNvdXJjZSk7CisgICAgYXV0byYgdGV4dHVyZVJlZiA9IFdURjo6
Z2V0PFJlZjxHUFVUZXh0dXJlPj4oYmluZGluZy5yZXNvdXJjZSk7CiAgICAgYXV0byBtdGxUZXh0
dXJlID0gdGV4dHVyZVJlZi0+cGxhdGZvcm1UZXh0dXJlKCk7CiAKICAgICBpZiAoIW10bFRleHR1
cmUpIHsKQEAgLTE2Miw3ICsxOTcsNyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZQogCiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgW2FyZ3VtZW50RW5jb2RlciBzZXRU
ZXh0dXJlOm10bFRleHR1cmUgYXRJbmRleDppbmRleF07CisgICAgW2FyZ3VtZW50RW5jb2RlciBz
ZXRUZXh0dXJlOm10bFRleHR1cmUgYXRJbmRleDpiaW5kaW5nLmJpbmRpbmddOwogICAgIHVzZVJl
c291cmNlKG10bFRleHR1cmUsIHRleHR1cmVSZWYtPmlzUmVhZE9ubHkoKSA/IE1UTFJlc291cmNl
VXNhZ2VSZWFkIDogTVRMUmVzb3VyY2VVc2FnZVJlYWQgfCBNVExSZXNvdXJjZVVzYWdlV3JpdGUp
OwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFs
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBpcGVsaW5lTWV0YWwubW0KaW5kZXggODRlYmVhNzExYzViZDBiOWI1NzlhZGU1MzdhZWUxZjg4
MmM4NjE4My4uYmY0NDdmOWU4OTJkNmRmMDgwMjRmYTNlNjk1OGVkMzgxMGUyNGEyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoV0VCR1BVKQogCiAjaW1wb3J0ICJHUFVMaW1pdHMuaCIKKyNpbXBvcnQgIkdQVVV0
aWxzLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXSExTTFZlcnRleEJ1ZmZlcklu
ZGV4Q2FsY3VsYXRvci5oIgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KQEAgLTM3LDMwICszOCw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIE9wdGlvbmFsPE1UTENvbXBhcmVG
dW5jdGlvbj4gdmFsaWRhdGVBbmRDb252ZXJ0RGVwdGhDb21wYXJlRnVuY3Rpb25Ub010bChHUFVD
b21wYXJlRnVuY3Rpb24gZnVuYykKLXsKLSAgICBzd2l0Y2ggKGZ1bmMpIHsKLSAgICBjYXNlIEdQ
VUNvbXBhcmVGdW5jdGlvbjo6TmV2ZXI6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25OZXZlcjsKLSAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TGVzczoKLSAgICAgICAgcmV0
dXJuIE1UTENvbXBhcmVGdW5jdGlvbkxlc3M7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246
OkVxdWFsOgotICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uRXF1YWw7Ci0gICAgY2Fz
ZSBHUFVDb21wYXJlRnVuY3Rpb246Okxlc3NFcXVhbDoKLSAgICAgICAgcmV0dXJuIE1UTENvbXBh
cmVGdW5jdGlvbkxlc3NFcXVhbDsKLSAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6R3JlYXRl
cjoKLSAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdyZWF0ZXI7Ci0gICAgY2FzZSBH
UFVDb21wYXJlRnVuY3Rpb246Ok5vdEVxdWFsOgotICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1
bmN0aW9uTm90RXF1YWw7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246OkdyZWF0ZXJFcXVh
bDoKLSAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdyZWF0ZXJFcXVhbDsKLSAgICBj
YXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6QWx3YXlzOgotICAgICAgICByZXR1cm4gTVRMQ29tcGFy
ZUZ1bmN0aW9uQWx3YXlzOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgfQotfQotCiBzdGF0aWMgUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiB0
cnlDcmVhdGVNdGxEZXB0aFN0ZW5jaWxTdGF0ZShjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5h
bWUsIGNvbnN0IEdQVURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgY29u
c3QgR1BVRGV2aWNlJiBkZXZpY2UpCiB7CiAjaWYgTE9HX0RJU0FCTEVECkBAIC03OSwxMyArNTYs
OCBAQCBzdGF0aWMgUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiB0cnlDcmVhdGVNdGxE
ZXB0aFN0ZW5jaWxTdGF0ZShjb25zdCBjaGFyKgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBhdXRvIG10bERlcHRoQ29tcGFyZSA9IHZhbGlkYXRlQW5kQ29udmVydERlcHRo
Q29tcGFyZUZ1bmN0aW9uVG9NdGwoZGVzY3JpcHRvci5kZXB0aENvbXBhcmUpOwotICAgIGlmICgh
bXRsRGVwdGhDb21wYXJlKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBHUFVD
b21wYXJlRnVuY3Rpb24gaW4gR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yISIsIGZ1bmN0
aW9uTmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIFttdGxEZXNj
cmlwdG9yIHNldERlcHRoQ29tcGFyZUZ1bmN0aW9uOiptdGxEZXB0aENvbXBhcmVdOworICAgIGF1
dG8gbXRsRGVwdGhDb21wYXJlID0gc3RhdGljX2Nhc3Q8TVRMQ29tcGFyZUZ1bmN0aW9uPihwbGF0
Zm9ybUNvbXBhcmVGdW5jdGlvbkZvckdQVUNvbXBhcmVGdW5jdGlvbihkZXNjcmlwdG9yLmRlcHRo
Q29tcGFyZSkpOworICAgIFttdGxEZXNjcmlwdG9yIHNldERlcHRoQ29tcGFyZUZ1bmN0aW9uOm10
bERlcHRoQ29tcGFyZV07CiAgICAgW210bERlc2NyaXB0b3Igc2V0RGVwdGhXcml0ZUVuYWJsZWQ6
ZGVzY3JpcHRvci5kZXB0aFdyaXRlRW5hYmxlZF07CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGJhY2svZnJvbnRGYWNlU3RlbmNpbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTYW1wbGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2FtcGxlck1ldGFsLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI0MTI4NTQxMWQzZGQyNzMxYzEwMDdmM2MyYmM4NWZiNjAyZDdkMDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2Ft
cGxlck1ldGFsLm1tCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJHUFVTYW1wbGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisj
aW1wb3J0ICJHUFVEZXZpY2UuaCIKKyNpbXBvcnQgIkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiCisj
aW1wb3J0ICJHUFVVdGlscy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCA8TWV0YWwv
TWV0YWwuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIE1UTFNhbXBsZXJBZGRyZXNzTW9kZSBtdGxBZGRyZXNzTW9k
ZUZvckFkZHJlc3NNb2RlKEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZSBtb2RlKQor
eworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFk
ZHJlc3NNb2RlOjpDbGFtcFRvRWRnZToKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRyZXNz
TW9kZUNsYW1wVG9FZGdlOworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFkZHJlc3NN
b2RlOjpSZXBlYXQ6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQWRkcmVzc01vZGVSZXBlYXQ7
CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6QWRkcmVzc01vZGU6Ok1pcnJvclJlcGVh
dDoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRyZXNzTW9kZU1pcnJvclJlcGVhdDsKKyAg
ICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0JvcmRlckNv
bG9yOgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlckFkZHJlc3NNb2RlQ2xhbXBUb0JvcmRlckNv
bG9yOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitzdGF0aWMgTVRM
U2FtcGxlckJvcmRlckNvbG9yIG10bEJvcmRlckNvbG9yRm9yQm9yZGVyQ29sb3IoR1BVU2FtcGxl
ckRlc2NyaXB0b3I6OkJvcmRlckNvbG9yIGNvbG9yKQoreworICAgIHN3aXRjaCAoY29sb3IpIHsK
KyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpCb3JkZXJDb2xvcjo6VHJhbnNwYXJlbnRC
bGFjazoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJCb3JkZXJDb2xvclRyYW5zcGFyZW50Qmxh
Y2s7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6Qm9yZGVyQ29sb3I6Ok9wYXF1ZUJs
YWNrOgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlckJvcmRlckNvbG9yT3BhcXVlQmxhY2s7Cisg
ICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6Qm9yZGVyQ29sb3I6Ok9wYXF1ZVdoaXRlOgor
ICAgICAgICByZXR1cm4gTVRMU2FtcGxlckJvcmRlckNvbG9yT3BhcXVlV2hpdGU7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBNVExTYW1wbGVyTWluTWFn
RmlsdGVyIG10bE1pbk1hZ0ZpbHRlckZvckZpbHRlck1vZGUoR1BVU2FtcGxlckRlc2NyaXB0b3I6
OkZpbHRlck1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQVVNh
bXBsZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlOjpOZWFyZXN0OgorICAgICAgICByZXR1cm4gTVRM
U2FtcGxlck1pbk1hZ0ZpbHRlck5lYXJlc3Q7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRv
cjo6RmlsdGVyTW9kZTo6TGluZWFyOgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pbk1hZ0Zp
bHRlckxpbmVhcjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3Rh
dGljIE1UTFNhbXBsZXJNaXBGaWx0ZXIgbXRsTWlwRmlsdGVyRm9yRmlsdGVyTW9kZShHUFVTYW1w
bGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgewor
ICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGU6Ok5lYXJlc3Q6CisgICAg
ICAgIHJldHVybiBNVExTYW1wbGVyTWlwRmlsdGVyTmVhcmVzdDsKKyAgICBjYXNlIEdQVVNhbXBs
ZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlOjpMaW5lYXI6CisgICAgICAgIHJldHVybiBNVExTYW1w
bGVyTWlwRmlsdGVyTGluZWFyOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPE1UTFNhbXBsZXJTdGF0ZT4gdHJ5Q3JlYXRlTXRsU2FtcGxl
clN0YXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKK3sKKyAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7Cisg
ICAgICAgIExPRyhXZWJHUFUsICJHUFVTYW1wbGVyOjp0cnlDcmVhdGUoKTogSW52YWxpZCBHUFVE
ZXZpY2UhIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFJldGFpblB0
cjxNVExTYW1wbGVyRGVzY3JpcHRvcj4gbXRsRGVzY3JpcHRvcjsKKworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBtdGxEZXNjcmlwdG9yID0gYWRvcHROUyhbTVRMU2FtcGxl
ckRlc2NyaXB0b3IgbmV3XSk7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAg
IGlmICghbXRsRGVzY3JpcHRvcikgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVU2FtcGxlcjo6
dHJ5Q3JlYXRlKCk6IEVycm9yIGNyZWF0aW5nIE1UTFNhbXBsZXJEZXNjcmlwdG9yISIpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8TVRMU2FtcGxlclN0
YXRlPiBzYW1wbGVyOworCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIFtt
dGxEZXNjcmlwdG9yIHNldFJBZGRyZXNzTW9kZTptdGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2Rl
KGRlc2NyaXB0b3IuYWRkcmVzc01vZGVVKV07CisgICAgW210bERlc2NyaXB0b3Igc2V0U0FkZHJl
c3NNb2RlOm10bEFkZHJlc3NNb2RlRm9yQWRkcmVzc01vZGUoZGVzY3JpcHRvci5hZGRyZXNzTW9k
ZVYpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRUQWRkcmVzc01vZGU6bXRsQWRkcmVzc01vZGVG
b3JBZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVyldOworICAgIFttdGxEZXNjcmlw
dG9yIHNldEJvcmRlckNvbG9yOm10bEJvcmRlckNvbG9yRm9yQm9yZGVyQ29sb3IoZGVzY3JpcHRv
ci5ib3JkZXJDb2xvcildOworICAgIFttdGxEZXNjcmlwdG9yIHNldE1pbkZpbHRlcjptdGxNaW5N
YWdGaWx0ZXJGb3JGaWx0ZXJNb2RlKGRlc2NyaXB0b3IubWluRmlsdGVyKV07CisgICAgW210bERl
c2NyaXB0b3Igc2V0TWFnRmlsdGVyOm10bE1pbk1hZ0ZpbHRlckZvckZpbHRlck1vZGUoZGVzY3Jp
cHRvci5tYWdGaWx0ZXIpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRNaXBGaWx0ZXI6bXRsTWlw
RmlsdGVyRm9yRmlsdGVyTW9kZShkZXNjcmlwdG9yLm1pcG1hcEZpbHRlcildOworICAgIFttdGxE
ZXNjcmlwdG9yIHNldExvZE1pbkNsYW1wOmRlc2NyaXB0b3IubG9kTWluQ2xhbXBdOworICAgIFtt
dGxEZXNjcmlwdG9yIHNldExvZE1heENsYW1wOmRlc2NyaXB0b3IubG9kTWF4Q2xhbXBdOworICAg
IFttdGxEZXNjcmlwdG9yIHNldE1heEFuaXNvdHJvcHk6ZGVzY3JpcHRvci5tYXhBbmlzb3Ryb3B5
XTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRDb21wYXJlRnVuY3Rpb246c3RhdGljX2Nhc3Q8TVRM
Q29tcGFyZUZ1bmN0aW9uPihwbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbkZvckdQVUNvbXBhcmVGdW5j
dGlvbihkZXNjcmlwdG9yLmNvbXBhcmVGdW5jdGlvbikpXTsKKworICAgIFttdGxEZXNjcmlwdG9y
IHNldFN1cHBvcnRBcmd1bWVudEJ1ZmZlcnM6WUVTXTsKKworICAgIHNhbXBsZXIgPSBhZG9wdE5T
KFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdTYW1wbGVyU3RhdGVXaXRoRGVzY3JpcHRvcjpt
dGxEZXNjcmlwdG9yLmdldCgpXSk7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKwor
ICAgIGlmICghc2FtcGxlcikKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVNhbXBsZXI6OnRyeUNy
ZWF0ZSgpOiBFcnJvciBjcmVhdGluZyBNVExTYW1wbGVyU3RhdGUhIik7CisKKyAgICByZXR1cm4g
c2FtcGxlcjsKK30KKworUmVmUHRyPEdQVVNhbXBsZXI+IEdQVVNhbXBsZXI6OnRyeUNyZWF0ZShj
b25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCit7CisgICAgYXV0byBzYW1wbGVyID0gdHJ5Q3JlYXRlTXRsU2FtcGxlclN0YXRlKGRl
dmljZSwgZGVzY3JpcHRvcik7CisgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVU2FtcGxlcihXVEZNb3ZlKHNhbXBs
ZXIpKSk7Cit9CisKK0dQVVNhbXBsZXI6OkdQVVNhbXBsZXIoUmV0YWluUHRyPE1UTFNhbXBsZXJT
dGF0ZT4mJiBzYW1wbGVyKQorICAgIDogbV9wbGF0Zm9ybVNhbXBsZXIoV1RGTW92ZShzYW1wbGVy
KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9j
b2NvYS9HUFVVdGlsc01ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVV0aWxzTWV0YWwubW0KaW5kZXggZTRiMzcwMjFhMzk0OTliZWFjODMxYzgw
ZDQzYTIzNWMyOTU2NTQxMy4uZDI3MmI0ZGJmZTBlNDNhNjQzYzk5NDkwMzkxMjZhNGVlOTNjOWFl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVV0aWxzTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVV0aWxzTWV0YWwubW0KQEAgLTQ0LDYgKzQ0LDMyIEBAIFBsYXRmb3JtVGV4
dHVyZUZvcm1hdCBwbGF0Zm9ybVRleHR1cmVGb3JtYXRGb3JHUFVUZXh0dXJlRm9ybWF0KEdQVVRl
eHR1cmVGb3JtYXQKICAgICBjYXNlIEdQVVRleHR1cmVGb3JtYXQ6OkQzMkZsb2F0UzhVaW50Ogog
ICAgICAgICByZXR1cm4gTVRMUGl4ZWxGb3JtYXREZXB0aDMyRmxvYXRfU3RlbmNpbDg7CiAgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1BsYXRmb3JtQ29tcGFyZUZ1bmN0
aW9uIHBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9yR1BVQ29tcGFyZUZ1bmN0aW9uKEdQVUNvbXBh
cmVGdW5jdGlvbiBmdW5jKQoreworICAgIHN3aXRjaCAoZnVuYykgeworICAgIGNhc2UgR1BVQ29t
cGFyZUZ1bmN0aW9uOjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbk5l
dmVyOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzOgorICAgICAgICByZXR1cm4g
TVRMQ29tcGFyZUZ1bmN0aW9uTGVzczsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6RXF1
YWw6CisgICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25FcXVhbDsKKyAgICBjYXNlIEdQ
VUNvbXBhcmVGdW5jdGlvbjo6TGVzc0VxdWFsOgorICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1
bmN0aW9uTGVzc0VxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpHcmVhdGVyOgor
ICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uR3JlYXRlcjsKKyAgICBjYXNlIEdQVUNv
bXBhcmVGdW5jdGlvbjo6Tm90RXF1YWw6CisgICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25Ob3RFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6R3JlYXRlckVxdWFsOgor
ICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uR3JlYXRlckVxdWFsOworICAgIGNhc2Ug
R1BVQ29tcGFyZUZ1bmN0aW9uOjpBbHdheXM6CisgICAgICAgIHJldHVybiBNVExDb21wYXJlRnVu
Y3Rpb25BbHdheXM7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzN2NhOTVhMDY1NjY2YmQwOGY0ZDY1OTAzMDNm
YmNhNjViZmQ4YzUyLi5iYTc2YWVkY2I4ZGM4NzNjM2JiNzE4NjRjYjIwMjkyZDllNDhkZmFhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDMtMDcgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEdQVV0gR1BVU2FtcGxlciBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDI3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODY4NjAxMT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGV4dHVyZS10cmlhbmdsZS1zdHJp
cCB0byB1c2UgYSBHUFVTYW1wbGVyIHByb3ZpZGVkIHRocm91Z2ggYmluZGluZ3MgaW5zdGVhZCBv
ZiBjcmVhdGluZyBvbmUgaW4gc2hhZGVyLgorCisgICAgICAgICogd2ViZ3B1L3RleHR1cmUtdHJp
YW5nbGUtc3RyaXAuaHRtbDoKKwogMjAxOS0wMy0wNiAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBHUFVUZXh0dXJlIGFuZCBHUFVUZXh0dXJl
VmlldyB1cGRhdGVzLCBhbmQgcmVsYXRlZCBHUFVCaW5kR3JvdXAgdXBkYXRlcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5kZXggZjMyMmE1NWYz
YjhjODU4N2Y0MTg5NzExNWMzMzk3ZmFmNWZmZjcwYi4uMTRmZmI4ZmU4YjYwYjRlNTZhMTJmOWRj
NzU5YjViY2ExMDQyMmUzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUt
dHJpYW5nbGUtc3RyaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlh
bmdsZS1zdHJpcC5odG1sCkBAIC0xMCw2ICsxMCwxNCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCitjb25zdCBwb3NpdGlvbkJ1ZmZl
ckluZGV4ID0gMDsKK2NvbnN0IHRleENvb3Jkc0J1ZmZlckluZGV4ID0gMTsKK2NvbnN0IHBvc2l0
aW9uQXR0cmlidXRlTnVtID0gMDsKK2NvbnN0IHRleENvb3Jkc0F0dHJpYnV0ZU51bSA9IDE7Citj
b25zdCBiaW5kR3JvdXBJbmRleCA9IDA7Citjb25zdCB0ZXh0dXJlQmluZGluZ051bSA9IDA7Citj
b25zdCBzYW1wbGVyQmluZGluZ051bSA9IDE7CisKIGNvbnN0IHNoYWRlckNvZGUgPSBgCiAjaW5j
bHVkZSA8bWV0YWxfc3RkbGliPgogICAgIApAQCAtMTcsOCArMjUsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgbWV0YWw7CiAKIHN0cnVjdCBWZXJ0ZXhJbgogewotICAgIGZsb2F0NCBwb3NpdGlvbiBbW2F0
dHJpYnV0ZSgwKV1dOwotICAgIGZsb2F0MiB0ZXhDb29yZHMgW1thdHRyaWJ1dGUoMSldXTsKKyAg
ICBmbG9hdDQgcG9zaXRpb24gW1thdHRyaWJ1dGUoJHtwb3NpdGlvbkF0dHJpYnV0ZU51bX0pXV07
CisgICAgZmxvYXQyIHRleENvb3JkcyBbW2F0dHJpYnV0ZSgke3RleENvb3Jkc0F0dHJpYnV0ZU51
bX0pXV07CiB9OwogCiBzdHJ1Y3QgVmVydGV4T3V0CkBAIC0zNSwxNSArNDMsMTUgQEAgdmVydGV4
IFZlcnRleE91dCB2ZXJ0ZXhfbWFpbihWZXJ0ZXhJbiB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCiAg
ICAgcmV0dXJuIHZPdXQ7CiB9CiAKLXN0cnVjdCBUZXh0dXJlCitzdHJ1Y3QgVGV4dHVyZVNhbXBs
ZXIKIHsKLSAgICB0ZXh0dXJlMmQ8ZmxvYXQ+IGltYWdlIFtbaWQoMCldXTsKKyAgICB0ZXh0dXJl
MmQ8ZmxvYXQ+IHQgW1tpZCgke3RleHR1cmVCaW5kaW5nTnVtfSldXTsKKyAgICBzYW1wbGVyIHMg
W1tpZCgke3NhbXBsZXJCaW5kaW5nTnVtfSldXTsKIH07CiAKLWZyYWdtZW50IGZsb2F0NCBmcmFn
bWVudF9tYWluKFZlcnRleE91dCB2IFtbc3RhZ2VfaW5dXSwgY29uc3QgZGV2aWNlIFRleHR1cmUm
IHQgW1tidWZmZXIoMCldXSkKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZlcnRleE91
dCB2IFtbc3RhZ2VfaW5dXSwgY29uc3QgZGV2aWNlIFRleHR1cmVTYW1wbGVyJiBhcmdzIFtbYnVm
ZmVyKCR7YmluZEdyb3VwSW5kZXh9KV1dKQogewotICAgIGNvbnN0ZXhwciBzYW1wbGVyIHMoY29v
cmQ6Om5vcm1hbGl6ZWQsIGFkZHJlc3M6OmNsYW1wX3RvX3plcm8sIGZpbHRlcjo6bmVhcmVzdCk7
Ci0gICAgcmV0dXJuIHQuaW1hZ2Uuc2FtcGxlKHMsIHYudGV4Q29vcmRzKTsKKyAgICByZXR1cm4g
YXJncy50LnNhbXBsZShhcmdzLnMsIHYudGV4Q29vcmRzKTsKIH0KIGAKIApAQCAtNTEsMjIgKzU5
LDIyIEBAIGZ1bmN0aW9uIGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9yKCkgewogICAgIHJldHVy
biB7CiAgICAgICAgIGluZGV4Rm9ybWF0OiBXZWJHUFVJbmRleEZvcm1hdC5VSU5UMzIsCiAgICAg
ICAgIGF0dHJpYnV0ZXM6IFt7Ci0gICAgICAgICAgICBzaGFkZXJMb2NhdGlvbjogMCwKLSAgICAg
ICAgICAgIGlucHV0U2xvdDogMCwKKyAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiBwb3NpdGlv
bkF0dHJpYnV0ZU51bSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogcG9zaXRpb25CdWZmZXJJbmRl
eCwKICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgIGZvcm1hdDogV2ViR1BVVmVy
dGV4Rm9ybWF0LkZMT0FUX1IzMl9HMzJfQjMyX0EzMgogICAgICAgICB9LCB7Ci0gICAgICAgICAg
ICBzaGFkZXJMb2NhdGlvbjogMSwKLSAgICAgICAgICAgIGlucHV0U2xvdDogMSwKKyAgICAgICAg
ICAgIHNoYWRlckxvY2F0aW9uOiB0ZXhDb29yZHNBdHRyaWJ1dGVOdW0sCisgICAgICAgICAgICBp
bnB1dFNsb3Q6IHRleENvb3Jkc0J1ZmZlckluZGV4LAogICAgICAgICAgICAgb2Zmc2V0OiAwLAog
ICAgICAgICAgICAgZm9ybWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxPQVRfUjMyX0czMgogICAg
ICAgICB9XSwKICAgICAgICAgaW5wdXRzOiBbewotICAgICAgICAgICAgaW5wdXRTbG90OiAwLAor
ICAgICAgICAgICAgaW5wdXRTbG90OiBwb3NpdGlvbkJ1ZmZlckluZGV4LAogICAgICAgICAgICAg
c3RyaWRlOiA0ICogNCwKICAgICAgICAgICAgIHN0ZXBNb2RlOiBXZWJHUFVJbnB1dFN0ZXBNb2Rl
LlZFUlRFWAogICAgICAgICB9LCB7Ci0gICAgICAgICAgICBpbnB1dFNsb3Q6IDEsCisgICAgICAg
ICAgICBpbnB1dFNsb3Q6IHRleENvb3Jkc0J1ZmZlckluZGV4LAogICAgICAgICAgICAgc3RyaWRl
OiA0ICogMiwKICAgICAgICAgICAgIHN0ZXBNb2RlOiBXZWJHUFVJbnB1dFN0ZXBNb2RlLlZFUlRF
WAogICAgICAgICB9XQpAQCAtODAsMjUgKzg4LDI1IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCiAgICAgY29uc3Qg
c2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNoYWRlckNv
ZGUgfSk7CiAKLSAgICBjb25zdCB2ZXJ0ZXhBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAg
IGNvbnN0IHBvc2l0aW9uQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsKICAgICAgICAgLy8gZmxv
YXQ0IHh5encKICAgICAgICAgLTEsIDEsIDAsIDEsCiAgICAgICAgIC0xLCAtMSwgMCwgMSwKICAg
ICAgICAgMSwgMSwgMCwgMSwgCiAgICAgICAgIDEsIC0xLCAwLCAxCiAgICAgXSk7Ci0gICAgY29u
c3QgdmVydGV4QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHZlcnRleEFycmF5
LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2Fn
ZS5UUkFOU0ZFUl9EU1QgfSk7Ci0gICAgdmVydGV4QnVmZmVyLnNldFN1YkRhdGEoMCwgdmVydGV4
QXJyYXkuYnVmZmVyKTsKKyAgICBjb25zdCBwb3NpdGlvbkJ1ZmZlciA9IGRldmljZS5jcmVhdGVC
dWZmZXIoeyBzaXplOiBwb3NpdGlvbkFycmF5LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJV
c2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfSk7CisgICAgcG9zaXRp
b25CdWZmZXIuc2V0U3ViRGF0YSgwLCBwb3NpdGlvbkFycmF5LmJ1ZmZlcik7CiAKLSAgICBjb25z
dCB0ZXh0dXJlQ29vcmRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAgIGNvbnN0IHRleENv
b3Jkc0FycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbCiAgICAgICAgIC8vIGZsb2F0MiB0ZXhDb29y
ZHMKICAgICAgICAgMCwgMCwKICAgICAgICAgMCwgMSwKICAgICAgICAgMSwgMCwKICAgICAgICAg
MSwgMQogICAgIF0pOwotICAgIGNvbnN0IHRleHR1cmVDb29yZEJ1ZmZlciA9IGRldmljZS5jcmVh
dGVCdWZmZXIoeyBzaXplOiB0ZXh0dXJlQ29vcmRBcnJheS5ieXRlTGVuZ3RoLCB1c2FnZTogR1BV
QnVmZmVyVXNhZ2UuVkVSVEVYIHwgR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJfRFNUIH0pOwotICAg
IHRleHR1cmVDb29yZEJ1ZmZlci5zZXRTdWJEYXRhKDAsIHRleHR1cmVDb29yZEFycmF5LmJ1ZmZl
cik7CisgICAgY29uc3QgdGV4dHVyZUNvb3JkQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7
IHNpemU6IHRleENvb3Jkc0FycmF5LmJ5dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5W
RVJURVggfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfSk7CisgICAgdGV4dHVyZUNvb3Jk
QnVmZmVyLnNldFN1YkRhdGEoMCwgdGV4Q29vcmRzQXJyYXkuYnVmZmVyKTsKIAogICAgIGNvbnN0
IGlucHV0U3RhdGVEZXNjcmlwdG9yID0gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsKIApA
QCAtMTQzLDE3ICsxNTEsMzYgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9OwogICAg
IGNvbnN0IHRleHR1cmUgPSBkZXZpY2UuY3JlYXRlVGV4dHVyZSh0ZXh0dXJlRGVzY3JpcHRvcik7
CiAKLSAgICAvLyBCaW5kIHRleHR1cmUgdG8gcGlwZWxpbmUKLSAgICBjb25zdCB0ZXh0dXJlQmlu
ZGluZ051bSA9IDA7CisgICAgLy8gQmluZCB0ZXh0dXJlIGFuZCBhIHNhbXBsZXIgdG8gcGlwZWxp
bmUKKyAgICBjb25zdCB0ZXh0dXJlTGF5b3V0QmluZGluZyA9IHsgCisgICAgICAgIGJpbmRpbmc6
IHRleHR1cmVCaW5kaW5nTnVtLCAKKyAgICAgICAgdmlzaWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VC
aXQuRlJBR01FTlQsIAorICAgICAgICB0eXBlOiAic2FtcGxlZC10ZXh0dXJlIiAKKyAgICB9Owor
ICAgIGNvbnN0IHNhbXBsZXJMYXlvdXRCaW5kaW5nID0geworICAgICAgICBiaW5kaW5nOiBzYW1w
bGVyQmluZGluZ051bSwKKyAgICAgICAgdmlzaWJpbGl0eTogR1BVU2hhZGVyU3RhZ2VCaXQuRlJB
R01FTlQsCisgICAgICAgIHR5cGU6ICJzYW1wbGVyIgorICAgIH07CisKICAgICBjb25zdCBiaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yID0gewotICAgICAgICBiaW5kaW5nczogW3sgYmluZGluZzog
dGV4dHVyZUJpbmRpbmdOdW0sIHZpc2liaWxpdHk6IEdQVVNoYWRlclN0YWdlQml0LkZSQUdNRU5U
LCB0eXBlOiAic2FtcGxlZC10ZXh0dXJlIiB9XQorICAgICAgICBiaW5kaW5nczogW3RleHR1cmVM
YXlvdXRCaW5kaW5nLCBzYW1wbGVyTGF5b3V0QmluZGluZ10KICAgICB9OwogICAgIGJpbmRHcm91
cExheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvcik7CiAgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxp
bmVMYXlvdXQoeyBiaW5kR3JvdXBMYXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XSB9KTsKIAorICAg
IGNvbnN0IHRleHR1cmVCaW5kaW5nID0geyAKKyAgICAgICAgYmluZGluZzogdGV4dHVyZUJpbmRp
bmdOdW0sIAorICAgICAgICByZXNvdXJjZTogdGV4dHVyZS5jcmVhdGVEZWZhdWx0VGV4dHVyZVZp
ZXcoKSAKKyAgICB9OworICAgIGNvbnN0IHNhbXBsZXJCaW5kaW5nID0geworICAgICAgICBiaW5k
aW5nOiBzYW1wbGVyQmluZGluZ051bSwKKyAgICAgICAgcmVzb3VyY2U6IGRldmljZS5jcmVhdGVT
YW1wbGVyKHsgbWluRmlsdGVyOiAibmVhcmVzdCIsIG1hZ0ZpbHRlcjogIm5lYXJlc3QiIH0pCisg
ICAgfTsKKwogICAgIGNvbnN0IGJpbmRHcm91cERlc2NyaXB0b3IgPSB7CiAgICAgICAgIGxheW91
dDogYmluZEdyb3VwTGF5b3V0LAotICAgICAgICBiaW5kaW5nczogW3sgYmluZGluZzogdGV4dHVy
ZUJpbmRpbmdOdW0sIHJlc291cmNlOiB0ZXh0dXJlLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygp
IH1dCisgICAgICAgIGJpbmRpbmdzOiBbdGV4dHVyZUJpbmRpbmcsIHNhbXBsZXJCaW5kaW5nXQog
ICAgIH07CiAgICAgY29uc3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cChiaW5k
R3JvdXBEZXNjcmlwdG9yKTsKIApAQCAtMTc2LDE0ICsyMDMsMTQgQEAgYXN5bmMgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICBjb21tYW5kQnVmZmVyLmNvcHlCdWZmZXJUb1RleHR1cmUoYnVmZmVyQ29w
eVZpZXcsIHRleHR1cmVDb3B5VmlldywgdGV4dHVyZVNpemUpOwogICAgIGNvbnN0IHBhc3NFbmNv
ZGVyID0gYmVnaW5CYXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZlcik7CiAgICAg
cGFzc0VuY29kZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUpOwotICAgIHBhc3NFbmNvZGVyLnNldEJp
bmRHcm91cCgwLCBiaW5kR3JvdXApOwotICAgIHBhc3NFbmNvZGVyLnNldFZlcnRleEJ1ZmZlcnMo
MCwgW3ZlcnRleEJ1ZmZlciwgdGV4dHVyZUNvb3JkQnVmZmVyXSwgWzAsIDBdKTsKKyAgICBwYXNz
RW5jb2Rlci5zZXRCaW5kR3JvdXAoYmluZEdyb3VwSW5kZXgsIGJpbmRHcm91cCk7CisgICAgcGFz
c0VuY29kZXIuc2V0VmVydGV4QnVmZmVycyhwb3NpdGlvbkJ1ZmZlckluZGV4LCBbcG9zaXRpb25C
dWZmZXIsIHRleHR1cmVDb29yZEJ1ZmZlcl0sIFswLCAwXSk7CiAgICAgcGFzc0VuY29kZXIuZHJh
dyg0LCAxLCAwLCAwKTsKICAgICBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7CiAKICAgICBjb25zdCBx
dWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOwogICAgIHF1ZXVlLnN1Ym1pdChbY29tbWFuZEJ1ZmZl
cl0pOwotICAgIHZlcnRleEJ1ZmZlci5kZXN0cm95KCk7CisgICAgcG9zaXRpb25CdWZmZXIuZGVz
dHJveSgpOwogICAgIHRleHR1cmVDb29yZEJ1ZmZlci5kZXN0cm95KCk7CiAgICAgdGV4dHVyZS5k
ZXN0cm95KCk7CiAgICAgY29udGV4dC5wcmVzZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363916</attachid>
            <date>2019-03-07 13:15:05 -0800</date>
            <delta_ts>2019-03-07 14:30:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195427-20190307131504.patch</filename>
            <type>text/plain</type>
            <size>68676</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxZmYwZmM0MDBmMzI2
OGEwOTU5YjZkZjJkMmExM2FiNTlmZWMzNi4uOGIzZjk0MDczMjg3NzE5M2M1M2JhOTk3ODA0NWM5
Y2IzNTFmZmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTAzLTA3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVNh
bXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg2ODYwMTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IGFiaWxpdHkgdG8gY3JlYXRlIEdQVVNhbXBsZXJzIGFuZCB1c2UgdGhlbSBhcyBwaXBlbGluZSBy
ZXNvdXJjZSBiaW5kaW5ncy4KKworICAgICAgICBUZXN0OiB0ZXh0dXJlLXRyaWFuZ2xlLXN0cmlw
Lmh0bWwgdXBkYXRlZC4KKworICAgICAgICBBZGQgc3ltYm9scyB0byBwcm9qZWN0OgorICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6
CisKKyAgICAgICAgR1BVU2FtcGxlciBjcmVhdGlvbjoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9HUFVTYW1wbGVyRGVzY3JpcHRvci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNy
ZWF0ZVNhbXBsZXIgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVVNhbXBsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVTYW1wbGVyOjpXZWJHUFVTYW1wbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTYW1wbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU2FtcGxlcjo6
c2FtcGxlciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5p
ZGw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGVTYW1wbGVyIGNvbnN0KTog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6cGxhdGZvcm1TYW1wbGVyIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjptdGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6Om10bEJvcmRlckNvbG9yRm9yQm9yZGVyQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bXRsTWluTWFnRmlsdGVyRm9yRmlsdGVyTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjptdGxNaXBGaWx0ZXJGb3JGaWx0ZXJNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeUNy
ZWF0ZU10bFNhbXBsZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVTYW1wbGVyOjp0cnlD
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6R1BVU2FtcGxlcik6CisKKyAg
ICAgICAgTW92ZSBHUFVDb21wYXJlRnVuY3Rpb24gdG8gVXRpbHMgZm9yIHNoYXJlZCB1c2UuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVVdGlscy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGVBbmRDb252ZXJ0RGVwdGhDb21wYXJlRnVuY3Rpb25Ub010bCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVV0aWxzTWV0YWwu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybVRleHR1cmVGb3JtYXRGb3JHUFVUZXh0dXJl
Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9yR1BV
Q29tcGFyZUZ1bmN0aW9uKToKKworICAgICAgICBFeHBhbmQgYmluZCBncm91cHMgdG8gYWNjZXB0
IEdQVVNhbXBsZXJzOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJp
bmRpbmcuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5n
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I6OmFzR1BV
QmluZEdyb3VwRGVzY3JpcHRvciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXApOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNl
QXNCdWZmZXJPbkVuY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1
cmVPbkVuY29kZXIpOgorCisgICAgICAgIE1pc2M6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZS5jcHA6IE1pc3NpbmcgaW5jbHVkZXMuCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVVGV4dHVyZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3
YXBDaGFpbi5jcHA6IFJlbW92ZWQgZXh0cmEgaW5jbHVkZS4KKwogMjAxOS0wMy0wNiAgSnVzdGlu
IEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBHUFVUZXh0
dXJlIGFuZCBHUFVUZXh0dXJlVmlldyB1cGRhdGVzLCBhbmQgcmVsYXRlZCBHUFVCaW5kR3JvdXAg
dXBkYXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNTJiZDRmNTYwNjQ0OTJlYzhhNDQ3YTcx
ZTg1NmRiOWQwNGQ0NDQ2Li42YWFiNTc1MGRhOTQ3NDNlMzJlZmEwN2IwMzhjMjZhMTE1MmY2ODU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDczLDYgKzQ3Myw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVTG9hZE9wLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwKICAgICBN
b2R1bGVzL3dlYmdwdS9HUFVTdG9yZU9wLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVVRleHR1
cmVEZXNjcmlwdG9yLmlkbApAQCAtNTAzLDYgKzUwNCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCiAg
ICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAogICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCisgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVU2FtcGxlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJN
b2R1bGUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjNDIzMDA2MmMy
M2RhY2M4MDEyODVmN2NkZjQwYzA5M2U2MzI5OTMxLi4yN2I3MmI3NzBkMmNkMGI2M2E5NzFiYTU0
NDdlNjBjYTdiMmZhZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTMzMiw2ICszMzIsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmdwdS9HUFVFeHRlbnQzRC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQ
VUxvYWRPcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVN0b3JlT3AuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5pZGwKQEAgLTM2OSw2ICsz
NzAsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5j
b2Rlci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVs
aW5lLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyaW5nQ29udGV4dC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNh
bXBsZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1
bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
U3RhZ2VCaXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IGM2NGFhM2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEwZWNkZDdlN2YxYTcu
LmFjMmI2MzhhMDIxZGFmMWJkNTRiYjllNDk3YjU3MmNkNDBhYmRlNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01OTksNiArNTk5
LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVP
cmlnaW4zRC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR1BVT3JpZ2luM0QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVNhbXBsZXJE
ZXNjcmlwdG9yLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHUFVTYW1wbGVyRGVzY3JpcHRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVNoYWRlclN0YWdlQml0LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJpdC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dQVVN0b3JlT3AuY3Bw
CkBAIC0xOTMzLDYgKzE5MzUsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHUFVSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVU2FtcGxlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVU2Ft
cGxlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YkdQVVNoYWRlck1vZHVsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViR1BVU2hhZGVyTW9kdWxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDhlNjVkNDdlN2ExYzI5YTRmOGY0NDEy
MWMzMDg1OWFlNTU0Mzc1NjIuLmU0YjgyNWQ0NzQ3MWY3Y2NkNTcwZjNiMmZjZmMwNWZhZGZkNzhm
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzgzLDYgKzM4Myw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVUxvYWRP
cC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVT3JpZ2luM0QuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNoYWRlclN0YWdlQml0Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTdG9yZU9wLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5pZGwgXApAQCAt
NDEzLDYgKzQxNCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDhiYWNkNDA1YTMyMzdjZWY0ZWYxZGFjMDlhMjIxMjg0YTFlYWRmNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBs
ZXJEZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8v
Z2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRs
CisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK2VudW0gR1BVQWRkcmVzc01vZGUgewor
ICAgICJjbGFtcC10by1lZGdlIiwKKyAgICAicmVwZWF0IiwKKyAgICAibWlycm9yLXJlcGVhdCIs
CisgICAgImNsYW1wLXRvLWJvcmRlci1jb2xvciIKK307CisKK2VudW0gR1BVRmlsdGVyTW9kZSB7
CisgICAgIm5lYXJlc3QiLAorICAgICJsaW5lYXIiCit9OworCitlbnVtIEdQVUJvcmRlckNvbG9y
IHsKKyAgICAidHJhbnNwYXJlbnQtYmxhY2siLAorICAgICJvcGFxdWUtYmxhY2siLAorICAgICJv
cGFxdWUtd2hpdGUiCit9OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgR1BVU2FtcGxlckRlc2NyaXB0b3Igewor
ICAgIEdQVUFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlVSA9ICJjbGFtcFRvRWRnZSI7CisgICAgR1BV
QWRkcmVzc01vZGUgYWRkcmVzc01vZGVWID0gImNsYW1wVG9FZGdlIjsKKyAgICBHUFVBZGRyZXNz
TW9kZSBhZGRyZXNzTW9kZVcgPSAiY2xhbXBUb0VkZ2UiOworICAgIEdQVUZpbHRlck1vZGUgbWFn
RmlsdGVyID0gIm5lYXJlc3QiOworICAgIEdQVUZpbHRlck1vZGUgbWluRmlsdGVyID0gIm5lYXJl
c3QiOworICAgIEdQVUZpbHRlck1vZGUgbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGZs
b2F0IGxvZE1pbkNsYW1wID0gMDsKKyAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IDB4ZmZmZmZmZmY7
IC8vIFRPRE86IFdoYXQgc2hvdWxkIHRoaXMgYmU/IFdhcyBOdW1iZXIuTUFYX1ZBTFVFLgorICAg
IHUzMiBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICBHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1
bmN0aW9uID0gIm5ldmVyIjsKKyAgICBHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFu
c3BhcmVudEJsYWNrIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmgKaW5kZXggZGRkZjk5NWM3MjI2YjVjMWU5NTJl
ZWFlMTg4NDM5OGRmYjY4OTAzNi4uOWY5OWRiM2NkOTI3NDEzYzliY2FjMTQwMTI0ZDA4NzRhNmU2
ZWE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmlu
ZEdyb3VwQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cEJpbmRpbmcuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIAogI2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmcuaCIKKyNpbmNsdWRlICJXZWJHUFVT
YW1wbGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZpZXcuaCIKICNpbmNsdWRlIDx3dGYv
VmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIFdlYkdQVUJpbmRpbmdS
ZXNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiwgV2ViR1BVQnVmZmVy
QmluZGluZz47Cit1c2luZyBXZWJHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxX
ZWJHUFVTYW1wbGVyPiwgUmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiwgV2ViR1BVQnVmZmVyQmlu
ZGluZz47CiAKIHN0cnVjdCBXZWJHUFVCaW5kR3JvdXBCaW5kaW5nIHsKICAgICB1bnNpZ25lZCBs
b25nIGJpbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsCmluZGV4IGEyNjcyMDY3ODAyYzlhZThhZDRlNWFi
ZTQ1ODFlYzZlNjFmMDFjYTUuLjcxZDQ1OGRkNzJjNmMxNDE0NGFiYmNjYWE0Y2E3ZDkxMzgwOGI0
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRH
cm91cEJpbmRpbmcuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cEJpbmRpbmcuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAvLyBodHRwczovL2dpdGh1
Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAogCiB0
eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwotdHlwZWRlZiAoLypXZWJHUFVTYW1wbGVyIG9yICov
V2ViR1BVVGV4dHVyZVZpZXcgb3IgV2ViR1BVQnVmZmVyQmluZGluZykgV2ViR1BVQmluZGluZ1Jl
c291cmNlOwordHlwZWRlZiAoV2ViR1BVU2FtcGxlciBvciBXZWJHUFVUZXh0dXJlVmlldyBvciBX
ZWJHUFVCdWZmZXJCaW5kaW5nKSBXZWJHUFVCaW5kaW5nUmVzb3VyY2U7CiAKIFsKICAgICBDb25k
aXRpb25hbD1XRUJHUFUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCmluZGV4IDI2MzgxYmY3MTU4NjNl
NDAzMTc5NWY0NjZlNDNlMmY2ZjEwYThmNzEuLjhhNGJlNjk1MGQ3OWU0MmM4YThlYWIzM2UwM2Qz
OTk4Y2RmNzg2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCkBAIC04OCw3ICs4OCwxNSBAQCBP
cHRpb25hbDxHUFVCaW5kR3JvdXBEZXNjcmlwdG9yPiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
Ojphc0dQVUJpbmRHcm91cERlc2NyaQogCiAgICAgICAgIGNvbnN0IGF1dG8gbGF5b3V0QmluZGlu
ZyA9IGl0ZXJhdG9yLT52YWx1ZTsKIAotICAgICAgICBhdXRvIGJpbmRpbmdSZXNvdXJjZVZpc2l0
b3IgPSBXVEY6Om1ha2VWaXNpdG9yKFtdKGNvbnN0IFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4m
IHZpZXcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4geworICAgICAgICBhdXRvIGJp
bmRpbmdSZXNvdXJjZVZpc2l0b3IgPSBXVEY6Om1ha2VWaXNpdG9yKFtdKGNvbnN0IFJlZlB0cjxX
ZWJHUFVTYW1wbGVyPiYgc2FtcGxlcikgLT4gT3B0aW9uYWw8R1BVQmluZGluZ1Jlc291cmNlPiB7
CisgICAgICAgICAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICAgICAgICAgIGF1dG8gZ3B1U2FtcGxlciA9IHNhbXBsZXItPnNhbXBsZXIo
KTsKKyAgICAgICAgICAgIGlmICghZ3B1U2FtcGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGlu
Z1Jlc291cmNlPihtYWtlUmVmKCpncHVTYW1wbGVyKSk7CisgICAgICAgIH0sIFtdKGNvbnN0IFJl
ZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4mIHZpZXcpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNv
dXJjZT4gewogICAgICAgICAgICAgaWYgKCF2aWV3KQogICAgICAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgICAgICAgICBhdXRvIHRleHR1cmUgPSB2aWV3LT50ZXh0dXJlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAppbmRl
eCA0NDVlOTNhMWE5Y2NmOGVjMDRhNDM3YmJiN2JjYWMwYzVlNTBjMDhiLi4yMjk0Zjg1YjUwMzk4
ZmFhNzMwOGQ2ODEwNjQ3N2IyMjVkMDgxZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJH
UFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJH
UFVTYW1wbGVyLmgiCisjaW5jbHVkZSAiR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIKICNpbmNsdWRl
ICJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01Miw2ICs1NCw3IEBACiAjaW5jbHVk
ZSAiV2ViR1BVUXVldWUuaCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2lu
Y2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQ
VVNhbXBsZXIuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJX
ZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZS5o
IgpAQCAtODQsNiArODcsMTIgQEAgUmVmPFdlYkdQVVRleHR1cmU+IFdlYkdQVURldmljZTo6Y3Jl
YXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IKICAgICByZXR1cm4g
V2ViR1BVVGV4dHVyZTo6Y3JlYXRlKFdURk1vdmUodGV4dHVyZSkpOwogfQogCitSZWY8V2ViR1BV
U2FtcGxlcj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAoreworICAgIGF1dG8gc2FtcGxlciA9IG1fZGV2aWNl
LT50cnlDcmVhdGVTYW1wbGVyKGRlc2NyaXB0b3IpOworICAgIHJldHVybiBXZWJHUFVTYW1wbGVy
OjpjcmVhdGUoV1RGTW92ZShzYW1wbGVyKSk7Cit9CisKIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlv
dXQ+IFdlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CiB7CiAgICAgYXV0byBsYXlvdXQg
PSBtX2RldmljZS0+dHJ5Q3JlYXRlQmluZEdyb3VwTGF5b3V0KGRlc2NyaXB0b3IpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCA5OTVjY2I5ZjNh
NjViNjYxNzU0YWQ0NzUxNzA5MTJjZmUyYzU2MGY1Li5kZDBlY2JmN2M0NDE2NTg4YTNhOGM2MjI3
NzkxMDkzNmZlOTM3MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaApAQCAtNDQsMTEgKzQ0LDEzIEBAIGNsYXNzIFdlYkdQVUJ1ZmZlcjsKIGNsYXNz
IFdlYkdQVUNvbW1hbmRCdWZmZXI7CiBjbGFzcyBXZWJHUFVQaXBlbGluZUxheW91dDsKIGNsYXNz
IFdlYkdQVVJlbmRlclBpcGVsaW5lOworY2xhc3MgV2ViR1BVU2FtcGxlcjsKIGNsYXNzIFdlYkdQ
VVNoYWRlck1vZHVsZTsKIGNsYXNzIFdlYkdQVVRleHR1cmU7CiAKIHN0cnVjdCBHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yOwogc3RydWN0IEdQVUJ1ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3Qg
R1BVU2FtcGxlckRlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVVGV4dHVyZURlc2NyaXB0b3I7CiBzdHJ1
Y3QgV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvcjsKIHN0cnVjdCBXZWJHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3I7CkBAIC02NCw2ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIFJlZjxXZWJHUFVC
dWZmZXI+IGNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yJiYpIGNvbnN0OwogICAgIFJl
ZjxXZWJHUFVUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yJiYpIGNv
bnN0OworICAgIFJlZjxXZWJHUFVTYW1wbGVyPiBjcmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBs
ZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBj
cmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYp
IGNvbnN0OwogICAgIFJlZjxXZWJHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlv
dXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKaW5kZXggYzhkYWZjN2U1ZWU1
YTM2OTVhZTk1N2Q0MDQxNjg5YTIxMDgwNjNlNC4uMTlkM2NhNTVhMjNmZTZkOWY1ODYzZmM4ZTZk
YWZlMjNlMDk3ZWZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaWRsCkBAIC0zMyw2ICszMyw3IEBACiAKICAgICBXZWJHUFVCdWZmZXIgY3JlYXRl
QnVmZmVyKEdQVUJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVVGV4dHVy
ZSBjcmVhdGVUZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdl
YkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxlcihHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9y
KTsKIAogICAgIFdlYkdQVUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVQaXBlbGlu
ZUxheW91dCBjcmVhdGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IgZGVzY3JpcHRvcik7CkBAIC01MCw4ICs1MSw2IEBACiAgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIFdlYkdQVUV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1
dGUgV2ViR1BVTGltaXRzIGxpbWl0czsKIAotICAgIC8vIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2Ft
cGxlcihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLQogICAgIC8vIFdlYkdQ
VUNvbXB1dGVQaXBlbGluZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICAvLyBXZWJHUFVGZW5jZSBjcmVhdGVGZW5j
ZShXZWJHUFVGZW5jZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE1MjBlNjNh
MWEwMDU0OTA5N2U0MDFhZWViOGI0MzJkNWQxMjYwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU2Ft
cGxlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
ZWY8V2ViR1BVU2FtcGxlcj4gV2ViR1BVU2FtcGxlcjo6Y3JlYXRlKFJlZlB0cjxHUFVTYW1wbGVy
PiYmIHNhbXBsZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVU2FtcGxlcihX
VEZNb3ZlKHNhbXBsZXIpKSk7Cit9CisKK1dlYkdQVVNhbXBsZXI6OldlYkdQVVNhbXBsZXIoUmVm
UHRyPEdQVVNhbXBsZXI+JiYgc2FtcGxlcikKKyAgICA6IG1fc2FtcGxlcihXVEZNb3ZlKHNhbXBs
ZXIpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2FtcGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNiNTkzZDAzZGQ5MWE4MjJiNGZlMjIzN2E1ZmJkZjE5MzI1Mzg4YzkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1w
bGVyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBXZWJHUFVTYW1wbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVU2Ft
cGxlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViR1BVU2FtcGxlcj4gY3JlYXRlKFJl
ZlB0cjxHUFVTYW1wbGVyPiYmKTsKKworICAgIEdQVVNhbXBsZXIqIHNhbXBsZXIoKSBjb25zdCB7
IHJldHVybiBtX3NhbXBsZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXZWJHUFVTYW1wbGVy
KFJlZlB0cjxHUFVTYW1wbGVyPiYmKTsKKworICAgIFJlZlB0cjxHUFVTYW1wbGVyPiBtX3NhbXBs
ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2Ft
cGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYTJjM2I1Mzk4ZWZjMDI4ZDRhNjU1YWFlNWRiMTFiNTE2NDc2ZjBhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2Ft
cGxlci5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisg
ICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVVNhbXBsZXIgewor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBD
aGFpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4u
Y3BwCmluZGV4IDQwMjAxYjM4MjVkYzg0ZjkyYWY2ZTRiZGRmMGI1ZWYyNDI3ODNkMGQuLjZhYTVk
MjE2ZTdlYzQwNDJlMDQzMTY5ZDI5Y2E3NGUwNTkwMjQzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmNwcApAQCAtMjgsOCArMjgsNiBA
QAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIkdQVVRleHR1cmVGb3JtYXQuaCIK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXZWJHUFVTd2FwQ2hhaW46On5XZWJHUFVTd2FwQ2hh
aW4oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVRleHR1cmUuY3BwCmluZGV4IDE2YTI2MzY5OGZlMGM1ZjA4MjcxMGM2ODljNzQ3ZDU3YjE2MzAx
OWUuLmM4MDBmZjhlMjZmMmFhYmQwMDMxYzhkYzY3NjRkNDJkYWU3MTZmM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCkBAIC0yOCw3ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZp
ZXcuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5oCmluZGV4IDk2M2Q1
MDlmNTBhMmFiNjYyMzU2OTY1ZGNhYTQyMTI3ZjBjYjhjZDEuLmY5ZmNmZTQ5NmU0ZTgwN2QyYWU0
NjhjN2MyNDVjMWFlMDc2MTgzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVUZXh0dXJlLmgKQEAgLTI4LDE1ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKICNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCi0KKyNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVmll
dy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBXZWJHUFVUZXh0dXJlVmlldzsKLQogY2xhc3MgV2ViR1BVVGV4dHVyZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYkdQVVRleHR1cmU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdQVVRl
eHR1cmU+IGNyZWF0ZShSZWZQdHI8R1BVVGV4dHVyZT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDlh
MGI1ZTAzN2VkYWYxM2MwZTQ4MTI1YzY0MWJlZDg3YTM0NWQ2ZjUuLjNiZTljZDlhNWVlNTkzYmZm
Yzg3YzU4ODVjMDYyYzA4N2NlOTNkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNjMsNiArMzYzLDcg
QEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHAKIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTaGFkZXJNb2R1bGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uY3Bw
CiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcApAQCAtMjc4MSw2ICsyNzgyLDcgQEAg
SlNHUFVFeHRlbnQzRC5jcHAKIEpTR1BVTG9hZE9wLmNwcAogSlNHUFVPcmlnaW4zRC5jcHAKIEpT
R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAorSlNHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAK
IEpTR1BVU2hhZGVyU3RhZ2VCaXQuY3BwCiBKU0dQVVN0b3JlT3AuY3BwCiBKU0dQVVRleHR1cmVE
ZXNjcmlwdG9yLmNwcApAQCAtMzMzOSw2ICszMzQxLDcgQEAgSlNXZWJHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvci5jcHAKIEpTV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCiBKU1dlYkdQVVJlbmRl
clBpcGVsaW5lLmNwcAogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwCitKU1dl
YkdQVVNhbXBsZXIuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIEpTV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5jcHAKIEpTV2ViR1BVU3dhcENoYWluLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNTdlMmRmODU2MWY4OGI4MDM5MjdiMGVlYzhiY2YwY2JhYTRiMDU1Ni4u
NzM0ZWY3ODVmM2E4MTk3MzQwZmIwMjEwNDVhYzYxZmNhYjAzNGRkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0zMjUsNiArMzI1LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
UmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVJlbmRlclBpcGVsaW5lTWV0YWwubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVT
YW1wbGVyTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTaGFkZXJNb2R1
bGVNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVN3YXBDaGFpbk1ldGFs
Lm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVGV4dHVyZU1ldGFsLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGMyNDMwYmQ2ZTljNTk0OTdhYjM2N2VlNjJjYjc0YmJlZDliNWEwZi4uNTgyYmFhNGJlMDk4ZTcx
MDJiN2EzMDI3MGYxMmRjNTY1YmZiMmM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQxMDAsNiArMTQxMDAsMTMgQEAKIAkJ
RDBBMjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RDLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
U1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTIwRDU2MjA5MkEwQTYwMEUw
QzI1OSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQTNBNzMwMTQwNUEzOTgwMEZCOEVEMyAvKiBSZXNv
dXJjZUxvYWRlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQURC
MjYyMjIzMDlENzYwMEEyMjkzNSAvKiBHUFVTYW1wbGVyRGVzY3JpcHRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHUFVTYW1wbGVyRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEFEQjI2MzIyMzA5RDc2MDBBMjI5MzUgLyogR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDBBREIyNjgyMjMwQUFDQjAwQTIyOTM1IC8qIEdQVVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR1BVU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2QjIy
MzBBQ0MwMDBBMjI5MzUgLyogR1BVU2FtcGxlck1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gR1BVU2FtcGxlck1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFE
QjI2QzIyMzBCQjhFMDBBMjI5MzUgLyogV2ViR1BVU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHUFVTYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQURCMjZEMjIz
MEJCOEUwMEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVVNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2RjIy
MzBDMUYxMDBBMjI5MzUgLyogV2ViR1BVU2FtcGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2FtcGxlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0
MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcmVhdGVMaW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIw
NTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEI4QkIwMTIxQzQ2RTc4MDAwQzc2ODEgLyogR1BVQmlu
ZEdyb3VwTGF5b3V0QmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVCaW5kR3JvdXBMYXlvdXRC
aW5kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ5NSw2ICsxODUwMiw4
IEBACiAJCQkJMzEyRkY4QjkyMUE0QzJFRjAwRUIxOTlEIC8qIEdQVVJlbmRlclBpcGVsaW5lLmgg
Ki8sCiAJCQkJMzEyRkY4QkMyMUE0QzJGMDAwRUIxOTlEIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oICovLAogCQkJCUQwNkE5QTIxMjIwMjZDN0EwMDgzQzY2MiAvKiBHUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaCAqLywKKwkJCQlEMEFEQjI2ODIyMzBBQUNCMDBBMjI5MzUgLyogR1BV
U2FtcGxlci5oICovLAorCQkJCUQwQURCMjYyMjIzMDlENzYwMEEyMjkzNSAvKiBHUFVTYW1wbGVy
RGVzY3JpcHRvci5oICovLAogCQkJCTMxMkZGOEJCMjFBNEMyRjAwMEVCMTk5RCAvKiBHUFVTaGFk
ZXJNb2R1bGUuaCAqLywKIAkJCQkzMTJGRjhDMDIxQTRDMkYyMDBFQjE5OUQgLyogR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5oICovLAogCQkJCUQwOEFBMDMyMjIwRDBEMEIwMDU4QzUwMiAvKiBH
UFVTdG9yZU9wLmggKi8sCkBAIC0yNjA5MCw2ICsyNjA5OSw3IEBACiAJCQkJRDBDQ0E5NDkyMjI5
OUY5NzAwNjk3OUI2IC8qIEdQVU9yaWdpbjNELmggKi8sCiAJCQkJRDBDQ0E5NEEyMjI5OUY5NzAw
Njk3OUI2IC8qIEdQVU9yaWdpbjNELmlkbCAqLywKIAkJCQlEMDJDMjY5MjIxODE0MTZEMDBEODE4
RTQgLyogR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmlkbCAqLywKKwkJCQlEMEFEQjI2MzIyMzA5
RDc2MDBBMjI5MzUgLyogR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsICovLAogCQkJCUQwREU4RkI4
MjIyRTA5RTIwMDg4MjU1MCAvKiBHUFVTaGFkZXJTdGFnZUJpdC5oICovLAogCQkJCUQwREU4RkI5
MjIyRTA5RTIwMDg4MjU1MCAvKiBHUFVTaGFkZXJTdGFnZUJpdC5pZGwgKi8sCiAJCQkJRDA4QUEw
MzEyMjBEMENFNjAwNThDNTAyIC8qIEdQVVN0b3JlT3AuaWRsICovLApAQCAtMjYxNjAsNiArMjYx
NzAsOSBAQAogCQkJCUQwQzQxOUY5MjE4NDA0REEwMDlFQzFERSAvKiBXZWJHUFVSZW5kZXJQaXBl
bGluZS5pZGwgKi8sCiAJCQkJRDBDNDE5RjIyMTgzRUZFQzAwOUVDMURFIC8qIFdlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5oICovLAogCQkJCUQwQzQxOUYzMjE4M0VGRUMwMDlFQzFERSAv
KiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwQURCMjZEMjIz
MEJCOEUwMEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmNwcCAqLywKKwkJCQlEMEFEQjI2QzIyMzBC
QjhFMDBBMjI5MzUgLyogV2ViR1BVU2FtcGxlci5oICovLAorCQkJCUQwQURCMjZGMjIzMEMxRjEw
MEEyMjkzNSAvKiBXZWJHUFVTYW1wbGVyLmlkbCAqLywKIAkJCQlEMDYxNUZDRDIxN0ZFNUM2MDA4
QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmNwcCAqLywKIAkJCQlEMDYxNUZDQzIxN0ZFNUM2
MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmggKi8sCiAJCQkJRDA2MTVGQ0UyMTdGRTVD
NjAwOEE0OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5pZGwgKi8sCkBAIC0yNjE5NSw2ICsyNjIw
OCw3IEBACiAJCQkJRDA4N0NFMzkyMUFDQTk0MjAwQkRFMTc0IC8qIEdQVVF1ZXVlTWV0YWwubW0g
Ki8sCiAJCQkJRDA4N0NFM0EyMUFDQTk0MjAwQkRFMTc0IC8qIEdQVVJlbmRlclBhc3NFbmNvZGVy
TWV0YWwubW0gKi8sCiAJCQkJRDA4N0NFM0QyMUFDQTk0MjAwQkRFMTc0IC8qIEdQVVJlbmRlclBp
cGVsaW5lTWV0YWwubW0gKi8sCisJCQkJRDBBREIyNkIyMjMwQUNDMDAwQTIyOTM1IC8qIEdQVVNh
bXBsZXJNZXRhbC5tbSAqLywKIAkJCQlEMDg3Q0U0MDIxQUNBOTQyMDBCREUxNzQgLyogR1BVU2hh
ZGVyTW9kdWxlTWV0YWwubW0gKi8sCiAJCQkJRDA4N0NFM0UyMUFDQTk0MjAwQkRFMTc0IC8qIEdQ
VVN3YXBDaGFpbk1ldGFsLm1tICovLAogCQkJCUQwODdDRTNGMjFBQ0E5NDIwMEJERTE3NCAvKiBH
UFVUZXh0dXJlTWV0YWwubW0gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZDk1ZGZiZDNlYWVkOGFjMGUwMWQ5NWYyYTQ3NWJl
Nzc4ODRkNzliOC4uMzNhN2QxMzQwNzJhZWMzMmNmMDJjMDA5ZmNkNjcwMDM3ZjczMGQ3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtMjA4LDYgKzIwOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhXZWJHUFVS
ZW5kZXJpbmdDb250ZXh0KSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIpIFwK
ICAgICBtYWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZSkgXAorICAgIG1hY3JvKFdlYkdQVVNhbXBs
ZXIpIFwKICAgICBtYWNybyhXZWJHUFVTaGFkZXJNb2R1bGUpIFwKICAgICBtYWNybyhXZWJHUFVT
d2FwQ2hhaW4pIFwKICAgICBtYWNybyhXZWJHUFVUZXh0dXJlKSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcu
aAppbmRleCBjZmE4YjAxZmMyNmNmNWE2YTlhY2MxMGI3MGRiYmU2M2UyZDdmZWU2Li40N2JkN2Fm
NjAyZmEzOGQxMjk0NGJjMzUyOWRkZjg2YmY3NDdlN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmgK
QEAgLTI4LDEyICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJHUFVC
dWZmZXJCaW5kaW5nLmgiCisjaW5jbHVkZSAiR1BVU2FtcGxlci5oIgogI2luY2x1ZGUgIkdQVVRl
eHR1cmUuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVzaW5nIEdQVUJpbmRpbmdSZXNvdXJjZSA9IFZhcmlhbnQ8UmVmPEdQVVRleHR1cmU+LCBH
UFVCdWZmZXJCaW5kaW5nPjsKK3VzaW5nIEdQVUJpbmRpbmdSZXNvdXJjZSA9IFZhcmlhbnQ8UmVm
PEdQVVNhbXBsZXI+LCBSZWY8R1BVVGV4dHVyZT4sIEdQVUJ1ZmZlckJpbmRpbmc+OwogCiBzdHJ1
Y3QgR1BVQmluZEdyb3VwQmluZGluZyB7CiAgICAgdW5zaWduZWQgbG9uZyBiaW5kaW5nOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVG
dW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBh
cmVGdW5jdGlvbi5oCmluZGV4IGRkZTlmNjVjNzQwZjlhZjgwOGU2MzZlMzhlZWY5NzU0ZjU5MjNl
NjcuLmVlMGJiYTM5YzlkZmU0ZDAwMjg5M2M5YWI1YzI4ZDEyZmU0YzI4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcGFyZUZ1
bmN0aW9uLmgKQEAgLTQwLDYgKzQwLDggQEAgZW51bSBjbGFzcyBHUFVDb21wYXJlRnVuY3Rpb24g
ewogICAgIEFsd2F5cwogfTsKIAordXNpbmcgUGxhdGZvcm1Db21wYXJlRnVuY3Rpb24gPSB1bnNp
Z25lZDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5jcHAKaW5kZXggN2VjMTY1Y2YwOGU1OWE1NmJlYTlhM2YxOWQ5NmQ3ZDkzMDFlN2QyMS4uZTUw
ZTlhZDIyZjE0YmM5MGMxNTczMzVkZDg2OWU2OTRmOWJjZjNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKQEAgLTM3LDYgKzM3
LDggQEAKICNpbmNsdWRlICJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKICNpbmNsdWRl
ICJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5oIgorI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKKyNpbmNsdWRlICJHUFVTYW1wbGVyRGVz
Y3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgogI2luY2x1ZGUgIkdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCkBAIC01NCw2
ICs1NiwxMSBAQCBSZWZQdHI8R1BVVGV4dHVyZT4gR1BVRGV2aWNlOjp0cnlDcmVhdGVUZXh0dXJl
KEdQVVRleHR1cmVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcgogICAgIHJldHVybiBHUFVUZXh0dXJl
Ojp0cnlDcmVhdGUoKnRoaXMsIFdURk1vdmUoZGVzY3JpcHRvcikpOwogfQogCitSZWZQdHI8R1BV
U2FtcGxlcj4gR1BVRGV2aWNlOjp0cnlDcmVhdGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAoreworICAgIHJldHVybiBHUFVTYW1wbGVyOjp0cnlD
cmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOworfQorCiBSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0
PiBHUFVEZXZpY2U6OnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewogICAgIHJldHVybiBHUFVCaW5k
R3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSgqdGhpcywgZGVzY3JpcHRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggNDc2OWUyZDIw
MzFkNjVhOTZiOTk3NGIxYTEzMzk0ODQ3Y2MxNzdkNy4uODg3NDBjZjMyOTc0ZTJhYjg4MjgwZTMx
ODQwYjY4NzAzZGJmMGY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVEZXZpY2UuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBHUFVCdWZmZXI7CiBj
bGFzcyBHUFVDb21tYW5kQnVmZmVyOwogY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBH
UFVSZW5kZXJQaXBlbGluZTsKK2NsYXNzIEdQVVNhbXBsZXI7CiBjbGFzcyBHUFVTaGFkZXJNb2R1
bGU7CiBjbGFzcyBHUFVUZXh0dXJlOwogCkBAIC01Myw2ICs1NCw3IEBAIHN0cnVjdCBHUFVCdWZm
ZXJEZXNjcmlwdG9yOwogc3RydWN0IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVj
dCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVUmVxdWVzdEFkYXB0ZXJP
cHRpb25zOworc3RydWN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yOwogc3RydWN0IEdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVVGV4dHVyZURlc2NyaXB0b3I7CiAKQEAgLTYyLDYg
KzY0LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPEdQVUJ1ZmZlcj4gdHJ5Q3JlYXRlQnVmZmVy
KEdQVUJ1ZmZlckRlc2NyaXB0b3ImJik7CiAgICAgUmVmUHRyPEdQVVRleHR1cmU+IHRyeUNyZWF0
ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJikgY29uc3Q7CisgICAgUmVmUHRyPEdQVVNh
bXBsZXI+IHRyeUNyZWF0ZVNhbXBsZXIoY29uc3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImKSBjb25z
dDsKIAogICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IHRyeUNyZWF0ZUJpbmRHcm91cExh
eW91dChjb25zdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJikgY29uc3Q7CiAgICAgUmVm
PEdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGVQaXBlbGluZUxheW91dChHUFVQaXBlbGluZUxheW91
dERlc2NyaXB0b3ImJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCmlu
ZGV4IGQ4OWU2MjQ2MzY3OGVmZDZhMGY5YzkwNzBiZmY4NjcyODk0ZWU2ZTAuLjNjZGMxOWY5YjU4
Yjg3N2UwMTgyM2QxNDMyMmQzMmNiZjJlMDJhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5oCkBAIC02MSw4ICs2MSw5IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNpZiBV
U0UoTUVUQUwpCi0gICAgdm9pZCBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3Vt
ZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmLCB1bnNpZ25lZCwgY29uc3Qg
Y2hhciogY29uc3QpOwotICAgIHZvaWQgc2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYsIHVuc2lnbmVkLCBj
b25zdCBjaGFyKiBjb25zdCk7CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVy
KE1UTEFyZ3VtZW50RW5jb2RlciAqLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiwgY29uc3Qg
Y2hhciogY29uc3QpOworICAgIHZvaWQgc2V0UmVzb3VyY2VBc1NhbXBsZXJPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGVyICosIGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcmLCBjb25zdCBjaGFy
KiBjb25zdCk7CisgICAgdm9pZCBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2RlcihNVExBcmd1
bWVudEVuY29kZXIgKiwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYsIGNvbnN0IGNoYXIqIGNv
bnN0KTsKICAgICB2aXJ0dWFsIHZvaWQgdXNlUmVzb3VyY2UoTVRMUmVzb3VyY2UgKiwgdW5zaWdu
ZWQpID0gMDsKIAogICAgIC8vIFJlbmRlciBjb21tYW5kIGVuY29kZXIgbWV0aG9kcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkYzQyN2Y2Njg2MjlhNTdiNDFhM2ExYWY2MTY3ODUyMTMyZDM4ZmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxl
ci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfUFJPVE9DT0wo
TVRMU2FtcGxlclN0YXRlKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVEZXZp
Y2U7CisKK3N0cnVjdCBHUFVTYW1wbGVyRGVzY3JpcHRvcjsKKwordXNpbmcgUGxhdGZvcm1TYW1w
bGVyID0gTVRMU2FtcGxlclN0YXRlOwordXNpbmcgUGxhdGZvcm1TYW1wbGVyU21hcnRQdHIgPSBS
ZXRhaW5QdHI8TVRMU2FtcGxlclN0YXRlPjsKKworY2xhc3MgR1BVU2FtcGxlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEdQVVNhbXBsZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVNh
bXBsZXI+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVTYW1wbGVyRGVzY3Jp
cHRvciYpOworCisgICAgUGxhdGZvcm1TYW1wbGVyKiBwbGF0Zm9ybVNhbXBsZXIoKSBjb25zdCB7
IHJldHVybiBtX3BsYXRmb3JtU2FtcGxlci5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIEdQVVNh
bXBsZXIoUGxhdGZvcm1TYW1wbGVyU21hcnRQdHImJik7CisKKyAgICBQbGF0Zm9ybVNhbXBsZXJT
bWFydFB0ciBtX3BsYXRmb3JtU2FtcGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTYW1wbGVyRGVzY3JpcHRvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIxMzAwOGNmNzJiMmMzMmZjYjhjOGM0MjA4ZmIzYjdlMzVlOWFlYzUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlckRl
c2NyaXB0b3IuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVQ29tcGFyZUZ1bmN0aW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAg
ICBlbnVtIGNsYXNzIEFkZHJlc3NNb2RlIHsKKyAgICAgICAgQ2xhbXBUb0VkZ2UsCisgICAgICAg
IFJlcGVhdCwKKyAgICAgICAgTWlycm9yUmVwZWF0LAorICAgICAgICBDbGFtcFRvQm9yZGVyQ29s
b3IsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRmlsdGVyTW9kZSB7CisgICAgICAgIE5lYXJl
c3QsCisgICAgICAgIExpbmVhciwKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBCb3JkZXJDb2xv
ciB7CisgICAgICAgIFRyYW5zcGFyZW50QmxhY2ssCisgICAgICAgIE9wYXF1ZUJsYWNrLAorICAg
ICAgICBPcGFxdWVXaGl0ZSwKKyAgICB9OworCisgICAgQWRkcmVzc01vZGUgYWRkcmVzc01vZGVV
ID0gQWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlOworICAgIEFkZHJlc3NNb2RlIGFkZHJlc3NNb2Rl
ViA9IEFkZHJlc3NNb2RlOjpDbGFtcFRvRWRnZTsKKyAgICBBZGRyZXNzTW9kZSBhZGRyZXNzTW9k
ZVcgPSBBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2U7CisgICAgRmlsdGVyTW9kZSBtYWdGaWx0ZXIg
PSBGaWx0ZXJNb2RlOjpOZWFyZXN0OworICAgIEZpbHRlck1vZGUgbWluRmlsdGVyID0gRmlsdGVy
TW9kZTo6TmVhcmVzdDsKKyAgICBGaWx0ZXJNb2RlIG1pcG1hcEZpbHRlciA9IEZpbHRlck1vZGU6
Ok5lYXJlc3Q7CisgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIGZsb2F0IGxvZE1heENs
YW1wID0gMHhmZmZmZmZmZjsKKyAgICB1bnNpZ25lZCBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICBH
UFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gR1BVQ29tcGFyZUZ1bmN0aW9uOjpO
ZXZlcjsKKyAgICBCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9IEJvcmRlckNvbG9yOjpUcmFuc3Bh
cmVudEJsYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVV0aWxzLmgKaW5kZXggNDcwNWFiNWE4ZDM5NDI1Y2QyMjBmNTgxNDc2NGM1ZThkYmIyZjU3Zi4u
MDVkOWE1YzcwNzRjNGFlNjMzZThlNjAxMmM1Y2M4NzY4YmZiNGYxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVV0aWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVV0aWxzLmgKQEAgLTI3LDExICsyNywx
MyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUNvbXBhcmVGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVGb3JtYXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBQbGF0Zm9ybVRleHR1cmVGb3JtYXQgcGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9yR1BVVGV4
dHVyZUZvcm1hdChHUFVUZXh0dXJlRm9ybWF0KTsKK1BsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uIHBs
YXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9yR1BVQ29tcGFyZUZ1bmN0aW9uKEdQVUNvbXBhcmVGdW5j
dGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNv
ZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCA1Yjc4ZjAxOGM1Y2I2MDBk
NjAxYjYzYzgxYzVmZmMxYjNhNzZjMjQ4Li40NTAwODQ3YWJkZDA5YzAwNWJiYzQ4NTU5NjkzZTBh
N2Y0MDU1NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXJNZXRhbC5tbQpAQCAtNzAsMzAgKzcwLDM3IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBpbmRleCwgR1BVQmluZEdyb3VwJiBiaW5k
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIC8vIFNldCBlYWNoIHJlc291
cmNlIG9uIGVhY2ggTVRMQXJndW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgot
ICAgIGNvbnN0IGF1dG8mIGJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91dCgpLmJpbmRpbmdz
TWFwKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdz
KCkpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IGJpbmRpbmdzTWFwLmZpbmQoYmluZGluZy5i
aW5kaW5nKTsKLSAgICAgICAgaWYgKGl0ZXJhdG9yID09IGJpbmRpbmdzTWFwLmVuZCgpKSB7Ci0g
ICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5vdCBm
b3VuZCBpbiBHUFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCBiaW5kaW5nLmJpbmRp
bmcpOworICAgIGNvbnN0IGF1dG8mIGxheW91dEJpbmRpbmdzTWFwID0gYmluZEdyb3VwLmxheW91
dCgpLmJpbmRpbmdzTWFwKCk7CisgICAgZm9yIChjb25zdCBhdXRvJiByZXNvdXJjZUJpbmRpbmcg
OiBiaW5kR3JvdXAuYmluZGluZ3MoKSkgeworICAgICAgICBhdXRvIGxheW91dEl0ZXJhdG9yID0g
bGF5b3V0QmluZGluZ3NNYXAuZmluZChyZXNvdXJjZUJpbmRpbmcuYmluZGluZyk7CisgICAgICAg
IGlmIChsYXlvdXRJdGVyYXRvciA9PSBsYXlvdXRCaW5kaW5nc01hcC5lbmQoKSkgeworICAgICAg
ICAgICAgTE9HKFdlYkdQVSwgIiVzOiBHUFVCaW5kR3JvdXBCaW5kaW5nICVsdSBub3QgZm91bmQg
aW4gR1BVQmluZEdyb3VwTGF5b3V0ISIsIGZ1bmN0aW9uTmFtZSwgcmVzb3VyY2VCaW5kaW5nLmJp
bmRpbmcpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gYmlu
ZEdyb3VwTGF5b3V0QmluZGluZyA9IGl0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgYXV0byBsYXlv
dXRCaW5kaW5nID0gbGF5b3V0SXRlcmF0b3ItPnZhbHVlOwogCi0gICAgICAgIHN3aXRjaCAoYmlu
ZEdyb3VwTGF5b3V0QmluZGluZy50eXBlKSB7CisgICAgICAgIHN3aXRjaCAobGF5b3V0QmluZGlu
Zy50eXBlKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUgcmVzb3VyY2UgdHlwZXMu
CiAgICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlVu
aWZvcm1CdWZmZXI6CiAgICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6Qmlu
ZGluZ1R5cGU6OlN0b3JhZ2VCdWZmZXI6IHsKLSAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlv
dXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkK
LSAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKHZlcnRleEFyZ3Mu
ZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlv
bk5hbWUpOwotICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0
eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6RnJhZ21lbnQpCi0gICAgICAgICAgICAgICAg
c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwg
YmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlvbk5hbWUpOworICAgICAg
ICAgICAgaWYgKGxheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpG
bGFnczo6VmVydGV4KQorICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29k
ZXIodmVydGV4QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJpbmRpbmcsIGZ1bmN0aW9uTmFt
ZSk7CisgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVy
U3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFz
QnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJpbmRp
bmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdUeXBlOjpTYW1wbGVyOiB7
CisgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3Rh
Z2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc1NhbXBs
ZXJPbkVuY29kZXIodmVydGV4QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJpbmRpbmcsIGZ1
bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYg
R1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkKKyAgICAgICAgICAgICAgICBzZXRS
ZXNvdXJjZUFzU2FtcGxlck9uRW5jb2RlcihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgcmVz
b3VyY2VCaW5kaW5nLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5nVHlwZTo6
U2FtcGxlZFRleHR1cmU6IHsKLSAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5n
LnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkKLSAgICAgICAg
ICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIu
Z2V0KCksIGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsK
LSAgICAgICAgICAgIGlmIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVT
aGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQotICAgICAgICAgICAgICAgIHNldFJlc291
cmNlQXNUZXh0dXJlT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5n
LnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBp
ZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpW
ZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIodmVy
dGV4QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7Cisg
ICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VC
aXQ6OkZsYWdzOjpGcmFnbWVudCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVy
ZU9uRW5jb2RlcihmcmFnbWVudEFyZ3MuZW5jb2Rlci5nZXQoKSwgcmVzb3VyY2VCaW5kaW5nLCBm
dW5jdGlvbk5hbWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVm
YXVsdDoKQEAgLTEwMyw3ICsxMTAsNyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRCaW5kR3JvdXAodW5zaWduZWQgaW5kZXgsIEdQVUJpbmRHcm91cCYgYmluZAogICAgIH0K
IH0KIAotdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BV
QmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmN0aW9uTmFtZSkKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJl
c291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29k
ZXIsIGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcmIGJpbmRpbmcsIGNvbnN0IGNoYXIqIGNvbnN0
IGZ1bmN0aW9uTmFtZSkKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZnVu
Y3Rpb25OYW1lKTsKQEAgLTExMywxMiArMTIwLDEyIEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVy
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8R1BVQnVmZmVyQmluZGluZz4ocmVzb3VyY2UpKSB7CisgICAgaWYgKCFXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPEdQVUJ1ZmZlckJpbmRpbmc+KGJpbmRpbmcucmVzb3VyY2UpKSB7CiAgICAgICAg
IExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgaXMgbm90IGEgYnVmZmVyIHR5cGUhIiwgZnVuY3Rp
b25OYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8mIGJ1ZmZlckJpbmRp
bmcgPSBXVEY6OmdldDxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSk7CisgICAgYXV0byYgYnVm
ZmVyQmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KGJpbmRpbmcucmVzb3VyY2Up
OwogICAgIGF1dG8mIGJ1ZmZlclJlZiA9IGJ1ZmZlckJpbmRpbmcuYnVmZmVyOwogICAgIGF1dG8g
bXRsQnVmZmVyID0gYnVmZmVyUmVmLT5wbGF0Zm9ybUJ1ZmZlcigpOwogCkBAIC0xMjksNyArMTM2
LDcgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIAotICAgIFthcmd1bWVudEVuY29kZXIgc2V0QnVmZmVyOm10bEJ1ZmZlciBvZmZz
ZXQ6YnVmZmVyQmluZGluZy5vZmZzZXQgYXRJbmRleDppbmRleF07CisgICAgW2FyZ3VtZW50RW5j
b2RlciBzZXRCdWZmZXI6bXRsQnVmZmVyIG9mZnNldDpidWZmZXJCaW5kaW5nLm9mZnNldCBhdElu
ZGV4OmJpbmRpbmcuYmluZGluZ107CiAgICAgdXNlUmVzb3VyY2UobXRsQnVmZmVyLCBidWZmZXJS
ZWYtPmlzUmVhZE9ubHkoKSA/IE1UTFJlc291cmNlVXNhZ2VSZWFkIDogTVRMUmVzb3VyY2VVc2Fn
ZVJlYWQgfCBNVExSZXNvdXJjZVVzYWdlV3JpdGUpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKQEAgLTEzNyw3ICsxNDQsMzUgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIKICAg
ICBtX2NvbW1hbmRCdWZmZXItPnVzZUJ1ZmZlcihidWZmZXJSZWYuY29weVJlZigpKTsKIH0KIAot
dm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVu
Y29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIGNvbnN0IEdQVUJpbmRp
bmdSZXNvdXJjZSYgcmVzb3VyY2UsIHVuc2lnbmVkIGluZGV4LCBjb25zdCBjaGFyKiBjb25zdCBm
dW5jdGlvbk5hbWUpCit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJj
ZUFzU2FtcGxlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2Rlciwg
Y29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYgYmluZGluZywgY29uc3QgY2hhciAqY29uc3QgZnVu
Y3Rpb25OYW1lKQoreworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShmdW5jdGlv
bk5hbWUpOworI2VuZGlmCisgICAgaWYgKCFhcmd1bWVudEVuY29kZXIpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIiVzOiBObyBhcmd1bWVudCBlbmNvZGVyIGZvciByZXF1ZXN0ZWQgc3RhZ2UgZm91
bmQhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
V1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8R1BVU2FtcGxlcj4+KGJpbmRpbmcucmVzb3VyY2Up
KSB7CisgICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgaXMgbm90IGEgR1BVU2FtcGxl
ciEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYg
c2FtcGxlclJlZiA9IFdURjo6Z2V0PFJlZjxHUFVTYW1wbGVyPj4oYmluZGluZy5yZXNvdXJjZSk7
CisgICAgYXV0byBtdGxTYW1wbGVyID0gc2FtcGxlclJlZi0+cGxhdGZvcm1TYW1wbGVyKCk7CisK
KyAgICBpZiAoIW10bFNhbXBsZXIpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlk
IE1UTFNhbXBsZXJTdGF0ZSBpbiBHUFVTYW1wbGVyIGJpbmRpbmchIiwgZnVuY3Rpb25OYW1lKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBbYXJndW1lbnRFbmNvZGVyIHNldFNhbXBsZXJTdGF0ZTptdGxTYW1wbGVyIGF0SW5k
ZXg6YmluZGluZy5iaW5kaW5nXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworfQor
Cit2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzVGV4dHVyZU9u
RW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3QgR1BVQmlu
ZEdyb3VwQmluZGluZyYgYmluZGluZywgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQog
ewogI2lmIExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwpAQCAt
MTQ3LDEyICsxODIsMTIgQEAgdm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVz
b3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8R1BVVGV4dHVy
ZT4+KHJlc291cmNlKSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IFJlc291cmNlIGlzIG5v
dCBhIHRleHR1cmUgdHlwZSEiLCBmdW5jdGlvbk5hbWUpOworICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8R1BVVGV4dHVyZT4+KGJpbmRpbmcucmVzb3VyY2UpKSB7CisgICAgICAg
IExPRyhXZWJHUFUsICIlczogUmVzb3VyY2UgaXMgbm90IGEgR1BVVGV4dHVyZVZpZXchIiwgZnVu
Y3Rpb25OYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8mIHRleHR1cmVS
ZWYgPSBXVEY6OmdldDxSZWY8R1BVVGV4dHVyZT4+KHJlc291cmNlKTsKKyAgICBhdXRvJiB0ZXh0
dXJlUmVmID0gV1RGOjpnZXQ8UmVmPEdQVVRleHR1cmU+PihiaW5kaW5nLnJlc291cmNlKTsKICAg
ICBhdXRvIG10bFRleHR1cmUgPSB0ZXh0dXJlUmVmLT5wbGF0Zm9ybVRleHR1cmUoKTsKIAogICAg
IGlmICghbXRsVGV4dHVyZSkgewpAQCAtMTYyLDcgKzE5Nyw3IEBAIHZvaWQgR1BVUHJvZ3JhbW1h
YmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3VtZW50
RW5jb2RlCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBbYXJndW1l
bnRFbmNvZGVyIHNldFRleHR1cmU6bXRsVGV4dHVyZSBhdEluZGV4OmluZGV4XTsKKyAgICBbYXJn
dW1lbnRFbmNvZGVyIHNldFRleHR1cmU6bXRsVGV4dHVyZSBhdEluZGV4OmJpbmRpbmcuYmluZGlu
Z107CiAgICAgdXNlUmVzb3VyY2UobXRsVGV4dHVyZSwgdGV4dHVyZVJlZi0+aXNSZWFkT25seSgp
ID8gTVRMUmVzb3VyY2VVc2FnZVJlYWQgOiBNVExSZXNvdXJjZVVzYWdlUmVhZCB8IE1UTFJlc291
cmNlVXNhZ2VXcml0ZSk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRl
clBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCA4NGViZWE3MTFjNWJkMGI5YjU3
OWFkZTUzN2FlZTFmODgyYzg2MTgzLi5iZjQ0N2Y5ZTg5MmQ2ZGYwODAyNGZhM2U2OTU4ZWQzODEw
ZTI0YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQpAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbXBvcnQgIkdQVUxpbWl0cy5oIgor
I2ltcG9ydCAiR1BVVXRpbHMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldITFNM
VmVydGV4QnVmZmVySW5kZXhDYWxjdWxhdG9yLmgiCiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgpA
QCAtMzcsMzAgKzM4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgT3B0aW9u
YWw8TVRMQ29tcGFyZUZ1bmN0aW9uPiB2YWxpZGF0ZUFuZENvbnZlcnREZXB0aENvbXBhcmVGdW5j
dGlvblRvTXRsKEdQVUNvbXBhcmVGdW5jdGlvbiBmdW5jKQotewotICAgIHN3aXRjaCAoZnVuYykg
ewotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpOZXZlcjoKLSAgICAgICAgcmV0dXJuIE1U
TENvbXBhcmVGdW5jdGlvbk5ldmVyOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNz
OgotICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTGVzczsKLSAgICBjYXNlIEdQVUNv
bXBhcmVGdW5jdGlvbjo6RXF1YWw6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25F
cXVhbDsKLSAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TGVzc0VxdWFsOgotICAgICAgICBy
ZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTGVzc0VxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1
bmN0aW9uOjpHcmVhdGVyOgotICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uR3JlYXRl
cjsKLSAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6Tm90RXF1YWw6Ci0gICAgICAgIHJldHVy
biBNVExDb21wYXJlRnVuY3Rpb25Ob3RFcXVhbDsKLSAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlv
bjo6R3JlYXRlckVxdWFsOgotICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uR3JlYXRl
ckVxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpBbHdheXM6Ci0gICAgICAgIHJl
dHVybiBNVExDb21wYXJlRnVuY3Rpb25BbHdheXM7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICB9Ci19Ci0KIHN0YXRpYyBSZXRhaW5QdHI8TVRMRGVwdGhT
dGVuY2lsU3RhdGU+IHRyeUNyZWF0ZU10bERlcHRoU3RlbmNpbFN0YXRlKGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmN0aW9uTmFtZSwgY29uc3QgR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSkKIHsKICNpZiBMT0dfRElTQUJMRUQK
QEAgLTc5LDEzICs1Niw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+
IHRyeUNyZWF0ZU10bERlcHRoU3RlbmNpbFN0YXRlKGNvbnN0IGNoYXIqCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIGF1dG8gbXRsRGVwdGhDb21wYXJlID0gdmFsaWRhdGVB
bmRDb252ZXJ0RGVwdGhDb21wYXJlRnVuY3Rpb25Ub010bChkZXNjcmlwdG9yLmRlcHRoQ29tcGFy
ZSk7Ci0gICAgaWYgKCFtdGxEZXB0aENvbXBhcmUpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVz
OiBJbnZhbGlkIEdQVUNvbXBhcmVGdW5jdGlvbiBpbiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2Ny
aXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
Ci0gICAgW210bERlc2NyaXB0b3Igc2V0RGVwdGhDb21wYXJlRnVuY3Rpb246Km10bERlcHRoQ29t
cGFyZV07CisgICAgYXV0byBtdGxEZXB0aENvbXBhcmUgPSBzdGF0aWNfY2FzdDxNVExDb21wYXJl
RnVuY3Rpb24+KHBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9yR1BVQ29tcGFyZUZ1bmN0aW9uKGRl
c2NyaXB0b3IuZGVwdGhDb21wYXJlKSk7CisgICAgW210bERlc2NyaXB0b3Igc2V0RGVwdGhDb21w
YXJlRnVuY3Rpb246bXRsRGVwdGhDb21wYXJlXTsKICAgICBbbXRsRGVzY3JpcHRvciBzZXREZXB0
aFdyaXRlRW5hYmxlZDpkZXNjcmlwdG9yLmRlcHRoV3JpdGVFbmFibGVkXTsKIAogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgYmFjay9mcm9udEZhY2VTdGVuY2lsLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTYW1wbGVyTWV0
YWwubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjQxMjg1NDExZDNkZDI3MzFjMTAwN2YzYzJiYzg1ZmI2MDJkN2Qw
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVTYW1wbGVyTWV0YWwubW0KQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkdQVVNhbXBsZXIuaCIKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2ltcG9ydCAiR1BVU2FtcGxlckRl
c2NyaXB0b3IuaCIKKyNpbXBvcnQgIkdQVVV0aWxzLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgTVRMU2FtcGxlckFkZHJlc3NNb2Rl
IG10bEFkZHJlc3NNb2RlRm9yQWRkcmVzc01vZGUoR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFkZHJl
c3NNb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBHUFVTYW1wbGVy
RGVzY3JpcHRvcjo6QWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlOgorICAgICAgICByZXR1cm4gTVRM
U2FtcGxlckFkZHJlc3NNb2RlQ2xhbXBUb0VkZ2U7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3Jp
cHRvcjo6QWRkcmVzc01vZGU6OlJlcGVhdDoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRy
ZXNzTW9kZVJlcGVhdDsKKyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9k
ZTo6TWlycm9yUmVwZWF0OgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlckFkZHJlc3NNb2RlTWly
cm9yUmVwZWF0OworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFkZHJlc3NNb2RlOjpD
bGFtcFRvQm9yZGVyQ29sb3I6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQWRkcmVzc01vZGVD
bGFtcFRvQm9yZGVyQ29sb3I7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3N0YXRpYyBNVExTYW1wbGVyQm9yZGVyQ29sb3IgbXRsQm9yZGVyQ29sb3JGb3JCb3JkZXJD
b2xvcihHUFVTYW1wbGVyRGVzY3JpcHRvcjo6Qm9yZGVyQ29sb3IgY29sb3IpCit7CisgICAgc3dp
dGNoIChjb2xvcikgeworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkJvcmRlckNvbG9y
OjpUcmFuc3BhcmVudEJsYWNrOgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlckJvcmRlckNvbG9y
VHJhbnNwYXJlbnRCbGFjazsKKyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpCb3JkZXJD
b2xvcjo6T3BhcXVlQmxhY2s6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQm9yZGVyQ29sb3JP
cGFxdWVCbGFjazsKKyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpCb3JkZXJDb2xvcjo6
T3BhcXVlV2hpdGU6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQm9yZGVyQ29sb3JPcGFxdWVX
aGl0ZTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIE1U
TFNhbXBsZXJNaW5NYWdGaWx0ZXIgbXRsTWluTWFnRmlsdGVyRm9yRmlsdGVyTW9kZShHUFVTYW1w
bGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgewor
ICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGU6Ok5lYXJlc3Q6CisgICAg
ICAgIHJldHVybiBNVExTYW1wbGVyTWluTWFnRmlsdGVyTmVhcmVzdDsKKyAgICBjYXNlIEdQVVNh
bXBsZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlOjpMaW5lYXI6CisgICAgICAgIHJldHVybiBNVExT
YW1wbGVyTWluTWFnRmlsdGVyTGluZWFyOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCitzdGF0aWMgTVRMU2FtcGxlck1pcEZpbHRlciBtdGxNaXBGaWx0ZXJGb3JGaWx0
ZXJNb2RlKEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlIG1vZGUpCit7CisgICAgc3dp
dGNoIChtb2RlKSB7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZTo6
TmVhcmVzdDoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJNaXBGaWx0ZXJOZWFyZXN0OworICAg
IGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGU6OkxpbmVhcjoKKyAgICAgICAg
cmV0dXJuIE1UTFNhbXBsZXJNaXBGaWx0ZXJMaW5lYXI7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TVRMU2FtcGxlclN0YXRlPiB0cnlD
cmVhdGVNdGxTYW1wbGVyU3RhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVNh
bXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworICAgIGlmICghZGV2aWNlLnBsYXRmb3Jt
RGV2aWNlKCkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVNhbXBsZXI6OnRyeUNyZWF0ZSgp
OiBJbnZhbGlkIEdQVURldmljZSEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgUmV0YWluUHRyPE1UTFNhbXBsZXJEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOworCisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIG10bERlc2NyaXB0b3IgPSBhZG9w
dE5TKFtNVExTYW1wbGVyRGVzY3JpcHRvciBuZXddKTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworCisgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7CisgICAgICAgIExPRyhXZWJHUFUs
ICJHUFVTYW1wbGVyOjp0cnlDcmVhdGUoKTogRXJyb3IgY3JlYXRpbmcgTVRMU2FtcGxlckRlc2Ny
aXB0b3IhIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFJldGFpblB0
cjxNVExTYW1wbGVyU3RhdGU+IHNhbXBsZXI7CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgW210bERlc2NyaXB0b3Igc2V0UkFkZHJlc3NNb2RlOm10bEFkZHJlc3NNb2Rl
Rm9yQWRkcmVzc01vZGUoZGVzY3JpcHRvci5hZGRyZXNzTW9kZVUpXTsKKyAgICBbbXRsRGVzY3Jp
cHRvciBzZXRTQWRkcmVzc01vZGU6bXRsQWRkcmVzc01vZGVGb3JBZGRyZXNzTW9kZShkZXNjcmlw
dG9yLmFkZHJlc3NNb2RlVildOworICAgIFttdGxEZXNjcmlwdG9yIHNldFRBZGRyZXNzTW9kZTpt
dGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2RlKGRlc2NyaXB0b3IuYWRkcmVzc01vZGVXKV07Cisg
ICAgW210bERlc2NyaXB0b3Igc2V0Qm9yZGVyQ29sb3I6bXRsQm9yZGVyQ29sb3JGb3JCb3JkZXJD
b2xvcihkZXNjcmlwdG9yLmJvcmRlckNvbG9yKV07CisgICAgW210bERlc2NyaXB0b3Igc2V0TWlu
RmlsdGVyOm10bE1pbk1hZ0ZpbHRlckZvckZpbHRlck1vZGUoZGVzY3JpcHRvci5taW5GaWx0ZXIp
XTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRNYWdGaWx0ZXI6bXRsTWluTWFnRmlsdGVyRm9yRmls
dGVyTW9kZShkZXNjcmlwdG9yLm1hZ0ZpbHRlcildOworICAgIFttdGxEZXNjcmlwdG9yIHNldE1p
cEZpbHRlcjptdGxNaXBGaWx0ZXJGb3JGaWx0ZXJNb2RlKGRlc2NyaXB0b3IubWlwbWFwRmlsdGVy
KV07CisgICAgW210bERlc2NyaXB0b3Igc2V0TG9kTWluQ2xhbXA6ZGVzY3JpcHRvci5sb2RNaW5D
bGFtcF07CisgICAgW210bERlc2NyaXB0b3Igc2V0TG9kTWF4Q2xhbXA6ZGVzY3JpcHRvci5sb2RN
YXhDbGFtcF07CisgICAgW210bERlc2NyaXB0b3Igc2V0TWF4QW5pc290cm9weTpkZXNjcmlwdG9y
Lm1heEFuaXNvdHJvcHldOworICAgIFttdGxEZXNjcmlwdG9yIHNldENvbXBhcmVGdW5jdGlvbjpz
dGF0aWNfY2FzdDxNVExDb21wYXJlRnVuY3Rpb24+KHBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uRm9y
R1BVQ29tcGFyZUZ1bmN0aW9uKGRlc2NyaXB0b3IuY29tcGFyZUZ1bmN0aW9uKSldOworCisgICAg
W210bERlc2NyaXB0b3Igc2V0U3VwcG9ydEFyZ3VtZW50QnVmZmVyczpZRVNdOworCisgICAgc2Ft
cGxlciA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld1NhbXBsZXJTdGF0ZVdp
dGhEZXNjcmlwdG9yOm10bERlc2NyaXB0b3IuZ2V0KCldKTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworCisgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICBMT0coV2ViR1BVLCAiR1BV
U2FtcGxlcjo6dHJ5Q3JlYXRlKCk6IEVycm9yIGNyZWF0aW5nIE1UTFNhbXBsZXJTdGF0ZSEiKTsK
KworICAgIHJldHVybiBzYW1wbGVyOworfQorCitSZWZQdHI8R1BVU2FtcGxlcj4gR1BVU2FtcGxl
cjo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVTYW1wbGVyRGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIHNhbXBsZXIgPSB0cnlDcmVhdGVNdGxT
YW1wbGVyU3RhdGUoZGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICBpZiAoIXNhbXBsZXIpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVTYW1wbGVy
KFdURk1vdmUoc2FtcGxlcikpKTsKK30KKworR1BVU2FtcGxlcjo6R1BVU2FtcGxlcihSZXRhaW5Q
dHI8TVRMU2FtcGxlclN0YXRlPiYmIHNhbXBsZXIpCisgICAgOiBtX3BsYXRmb3JtU2FtcGxlcihX
VEZNb3ZlKHNhbXBsZXIpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVV0aWxzTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVXRpbHNNZXRhbC5tbQppbmRleCBlNGIzNzAyMWEz
OTQ5OWJlYWM4MzFjODBkNDNhMjM1YzI5NTY1NDEzLi5kMjcyYjRkYmZlMGU0M2E2NDNjOTk0OTAz
OTEyNmE0ZWU5M2M5YWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVVXRpbHNNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVXRpbHNNZXRhbC5tbQpAQCAtNDQsNiArNDQsMzIg
QEAgUGxhdGZvcm1UZXh0dXJlRm9ybWF0IHBsYXRmb3JtVGV4dHVyZUZvcm1hdEZvckdQVVRleHR1
cmVGb3JtYXQoR1BVVGV4dHVyZUZvcm1hdAogICAgIGNhc2UgR1BVVGV4dHVyZUZvcm1hdDo6RDMy
RmxvYXRTOFVpbnQ6CiAgICAgICAgIHJldHVybiBNVExQaXhlbEZvcm1hdERlcHRoMzJGbG9hdF9T
dGVuY2lsODsKICAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworUGxhdGZv
cm1Db21wYXJlRnVuY3Rpb24gcGxhdGZvcm1Db21wYXJlRnVuY3Rpb25Gb3JHUFVDb21wYXJlRnVu
Y3Rpb24oR1BVQ29tcGFyZUZ1bmN0aW9uIGZ1bmMpCit7CisgICAgc3dpdGNoIChmdW5jKSB7Cisg
ICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Ok5ldmVyOgorICAgICAgICByZXR1cm4gTVRMQ29t
cGFyZUZ1bmN0aW9uTmV2ZXI7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Okxlc3M6Cisg
ICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25MZXNzOworICAgIGNhc2UgR1BVQ29tcGFy
ZUZ1bmN0aW9uOjpFcXVhbDoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkVxdWFs
OworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzRXF1YWw6CisgICAgICAgIHJldHVy
biBNVExDb21wYXJlRnVuY3Rpb25MZXNzRXF1YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rp
b246OkdyZWF0ZXI6CisgICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25HcmVhdGVyOwor
ICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbDoKKyAgICAgICAgcmV0dXJuIE1U
TENvbXBhcmVGdW5jdGlvbk5vdEVxdWFsOworICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpH
cmVhdGVyRXF1YWw6CisgICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25HcmVhdGVyRXF1
YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246OkFsd2F5czoKKyAgICAgICAgcmV0dXJu
IE1UTENvbXBhcmVGdW5jdGlvbkFsd2F5czsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM3Y2E5NWEwNjU2NjZi
ZDA4ZjRkNjU5MDMwM2ZiY2E2NWJmZDhjNTIuLmJhNzZhZWRjYjhkYzg3M2MzYmI3MTg2NGNiMjAy
OTJkOWU0OGRmYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wMy0wNyAgSnVzdGluIEZh
biAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgR1BVXSBHUFVTYW1wbGVy
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTU0MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4Njg2MDExPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXh0dXJl
LXRyaWFuZ2xlLXN0cmlwIHRvIHVzZSBhIEdQVVNhbXBsZXIgcHJvdmlkZWQgdGhyb3VnaCBiaW5k
aW5ncyBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9uZSBpbiBzaGFkZXIuCisKKyAgICAgICAgKiB3ZWJn
cHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sOgorCiAyMDE5LTAzLTA2ICBKdXN0aW4gRmFu
ICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBHUFVdIEdQVVRleHR1cmUg
YW5kIEdQVVRleHR1cmVWaWV3IHVwZGF0ZXMsIGFuZCByZWxhdGVkIEdQVUJpbmRHcm91cCB1cGRh
dGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJp
cC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAuaHRtbApp
bmRleCBmMzIyYTU1ZjNiOGM4NTg3ZjQxODk3MTE1YzMzOTdmYWY1ZmZmNzBiLi4xNGZmYjhmZThi
NjBiNGU1NmExMmY5ZGM3NTliNWJjYTEwNDIyZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdw
dS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTEwLDYgKzEwLDE0IEBACiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKK2NvbnN0
IHBvc2l0aW9uQnVmZmVySW5kZXggPSAwOworY29uc3QgdGV4Q29vcmRzQnVmZmVySW5kZXggPSAx
OworY29uc3QgcG9zaXRpb25BdHRyaWJ1dGVOdW0gPSAwOworY29uc3QgdGV4Q29vcmRzQXR0cmli
dXRlTnVtID0gMTsKK2NvbnN0IGJpbmRHcm91cEluZGV4ID0gMDsKK2NvbnN0IHRleHR1cmVCaW5k
aW5nTnVtID0gMDsKK2NvbnN0IHNhbXBsZXJCaW5kaW5nTnVtID0gMTsKKwogY29uc3Qgc2hhZGVy
Q29kZSA9IGAKICNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+CiAgICAgCkBAIC0xNyw4ICsyNSw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBtZXRhbDsKIAogc3RydWN0IFZlcnRleEluCiB7Ci0gICAgZmxvYXQ0
IHBvc2l0aW9uIFtbYXR0cmlidXRlKDApXV07Ci0gICAgZmxvYXQyIHRleENvb3JkcyBbW2F0dHJp
YnV0ZSgxKV1dOworICAgIGZsb2F0NCBwb3NpdGlvbiBbW2F0dHJpYnV0ZSgke3Bvc2l0aW9uQXR0
cmlidXRlTnVtfSldXTsKKyAgICBmbG9hdDIgdGV4Q29vcmRzIFtbYXR0cmlidXRlKCR7dGV4Q29v
cmRzQXR0cmlidXRlTnVtfSldXTsKIH07CiAKIHN0cnVjdCBWZXJ0ZXhPdXQKQEAgLTM1LDE1ICs0
MywxNSBAQCB2ZXJ0ZXggVmVydGV4T3V0IHZlcnRleF9tYWluKFZlcnRleEluIHZlcnRleEluIFtb
c3RhZ2VfaW5dXSkKICAgICByZXR1cm4gdk91dDsKIH0KIAotc3RydWN0IFRleHR1cmUKK3N0cnVj
dCBUZXh0dXJlU2FtcGxlcgogewotICAgIHRleHR1cmUyZDxmbG9hdD4gaW1hZ2UgW1tpZCgwKV1d
OworICAgIHRleHR1cmUyZDxmbG9hdD4gdCBbW2lkKCR7dGV4dHVyZUJpbmRpbmdOdW19KV1dOwor
ICAgIHNhbXBsZXIgcyBbW2lkKCR7c2FtcGxlckJpbmRpbmdOdW19KV1dOwogfTsKIAotZnJhZ21l
bnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4T3V0IHYgW1tzdGFnZV9pbl1dLCBjb25zdCBk
ZXZpY2UgVGV4dHVyZSYgdCBbW2J1ZmZlcigwKV1dKQorZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50
X21haW4oVmVydGV4T3V0IHYgW1tzdGFnZV9pbl1dLCBjb25zdCBkZXZpY2UgVGV4dHVyZVNhbXBs
ZXImIGFyZ3MgW1tidWZmZXIoJHtiaW5kR3JvdXBJbmRleH0pXV0pCiB7Ci0gICAgY29uc3RleHBy
IHNhbXBsZXIgcyhjb29yZDo6bm9ybWFsaXplZCwgYWRkcmVzczo6Y2xhbXBfdG9femVybywgZmls
dGVyOjpuZWFyZXN0KTsKLSAgICByZXR1cm4gdC5pbWFnZS5zYW1wbGUocywgdi50ZXhDb29yZHMp
OworICAgIHJldHVybiBhcmdzLnQuc2FtcGxlKGFyZ3Mucywgdi50ZXhDb29yZHMpOwogfQogYAog
CkBAIC01MSwyMiArNTksMjIgQEAgZnVuY3Rpb24gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3Io
KSB7CiAgICAgcmV0dXJuIHsKICAgICAgICAgaW5kZXhGb3JtYXQ6IFdlYkdQVUluZGV4Rm9ybWF0
LlVJTlQzMiwKICAgICAgICAgYXR0cmlidXRlczogW3sKLSAgICAgICAgICAgIHNoYWRlckxvY2F0
aW9uOiAwLAotICAgICAgICAgICAgaW5wdXRTbG90OiAwLAorICAgICAgICAgICAgc2hhZGVyTG9j
YXRpb246IHBvc2l0aW9uQXR0cmlidXRlTnVtLAorICAgICAgICAgICAgaW5wdXRTbG90OiBwb3Np
dGlvbkJ1ZmZlckluZGV4LAogICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgZm9y
bWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxPQVRfUjMyX0czMl9CMzJfQTMyCiAgICAgICAgIH0s
IHsKLSAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiAxLAotICAgICAgICAgICAgaW5wdXRTbG90
OiAxLAorICAgICAgICAgICAgc2hhZGVyTG9jYXRpb246IHRleENvb3Jkc0F0dHJpYnV0ZU51bSwK
KyAgICAgICAgICAgIGlucHV0U2xvdDogdGV4Q29vcmRzQnVmZmVySW5kZXgsCiAgICAgICAgICAg
ICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICBmb3JtYXQ6IFdlYkdQVVZlcnRleEZvcm1hdC5GTE9B
VF9SMzJfRzMyCiAgICAgICAgIH1dLAogICAgICAgICBpbnB1dHM6IFt7Ci0gICAgICAgICAgICBp
bnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBpbnB1dFNsb3Q6IHBvc2l0aW9uQnVmZmVySW5kZXgs
CiAgICAgICAgICAgICBzdHJpZGU6IDQgKiA0LAogICAgICAgICAgICAgc3RlcE1vZGU6IFdlYkdQ
VUlucHV0U3RlcE1vZGUuVkVSVEVYCiAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGlucHV0U2xv
dDogMSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogdGV4Q29vcmRzQnVmZmVySW5kZXgsCiAgICAg
ICAgICAgICBzdHJpZGU6IDQgKiAyLAogICAgICAgICAgICAgc3RlcE1vZGU6IFdlYkdQVUlucHV0
U3RlcE1vZGUuVkVSVEVYCiAgICAgICAgIH1dCkBAIC04MCwyNSArODgsMjUgQEAgYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVy
cy4KICAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsg
Y29kZTogc2hhZGVyQ29kZSB9KTsKIAotICAgIGNvbnN0IHZlcnRleEFycmF5ID0gbmV3IEZsb2F0
MzJBcnJheShbCisgICAgY29uc3QgcG9zaXRpb25BcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWwog
ICAgICAgICAvLyBmbG9hdDQgeHl6dwogICAgICAgICAtMSwgMSwgMCwgMSwKICAgICAgICAgLTEs
IC0xLCAwLCAxLAogICAgICAgICAxLCAxLCAwLCAxLCAKICAgICAgICAgMSwgLTEsIDAsIDEKICAg
ICBdKTsKLSAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6
ZTogdmVydGV4QXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8
IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKLSAgICB2ZXJ0ZXhCdWZmZXIuc2V0U3Vi
RGF0YSgwLCB2ZXJ0ZXhBcnJheS5idWZmZXIpOworICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0g
ZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHBvc2l0aW9uQXJyYXkuYnl0ZUxlbmd0aCwgdXNh
Z2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9
KTsKKyAgICBwb3NpdGlvbkJ1ZmZlci5zZXRTdWJEYXRhKDAsIHBvc2l0aW9uQXJyYXkuYnVmZmVy
KTsKIAotICAgIGNvbnN0IHRleHR1cmVDb29yZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbCisg
ICAgY29uc3QgdGV4Q29vcmRzQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsKICAgICAgICAgLy8g
ZmxvYXQyIHRleENvb3JkcwogICAgICAgICAwLCAwLAogICAgICAgICAwLCAxLAogICAgICAgICAx
LCAwLAogICAgICAgICAxLCAxCiAgICAgXSk7Ci0gICAgY29uc3QgdGV4dHVyZUNvb3JkQnVmZmVy
ID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHRleHR1cmVDb29yZEFycmF5LmJ5dGVMZW5n
dGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZF
Ul9EU1QgfSk7Ci0gICAgdGV4dHVyZUNvb3JkQnVmZmVyLnNldFN1YkRhdGEoMCwgdGV4dHVyZUNv
b3JkQXJyYXkuYnVmZmVyKTsKKyAgICBjb25zdCB0ZXh0dXJlQ29vcmRCdWZmZXIgPSBkZXZpY2Uu
Y3JlYXRlQnVmZmVyKHsgc2l6ZTogdGV4Q29vcmRzQXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQ
VUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKKyAg
ICB0ZXh0dXJlQ29vcmRCdWZmZXIuc2V0U3ViRGF0YSgwLCB0ZXhDb29yZHNBcnJheS5idWZmZXIp
OwogCiAgICAgY29uc3QgaW5wdXRTdGF0ZURlc2NyaXB0b3IgPSBjcmVhdGVJbnB1dFN0YXRlRGVz
Y3JpcHRvcigpOwogCkBAIC0xNDMsMTcgKzE1MSwzNiBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgIH07CiAgICAgY29uc3QgdGV4dHVyZSA9IGRldmljZS5jcmVhdGVUZXh0dXJlKHRleHR1
cmVEZXNjcmlwdG9yKTsKIAotICAgIC8vIEJpbmQgdGV4dHVyZSB0byBwaXBlbGluZQotICAgIGNv
bnN0IHRleHR1cmVCaW5kaW5nTnVtID0gMDsKKyAgICAvLyBCaW5kIHRleHR1cmUgYW5kIGEgc2Ft
cGxlciB0byBwaXBlbGluZQorICAgIGNvbnN0IHRleHR1cmVMYXlvdXRCaW5kaW5nID0geyAKKyAg
ICAgICAgYmluZGluZzogdGV4dHVyZUJpbmRpbmdOdW0sIAorICAgICAgICB2aXNpYmlsaXR5OiBH
UFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwgCisgICAgICAgIHR5cGU6ICJzYW1wbGVkLXRleHR1
cmUiIAorICAgIH07CisgICAgY29uc3Qgc2FtcGxlckxheW91dEJpbmRpbmcgPSB7CisgICAgICAg
IGJpbmRpbmc6IHNhbXBsZXJCaW5kaW5nTnVtLAorICAgICAgICB2aXNpYmlsaXR5OiBHUFVTaGFk
ZXJTdGFnZUJpdC5GUkFHTUVOVCwKKyAgICAgICAgdHlwZTogInNhbXBsZXIiCisgICAgfTsKKwog
ICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7Ci0gICAgICAgIGJpbmRpbmdz
OiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgdmlzaWJpbGl0eTogR1BVU2hhZGVyU3Rh
Z2VCaXQuRlJBR01FTlQsIHR5cGU6ICJzYW1wbGVkLXRleHR1cmUiIH1dCisgICAgICAgIGJpbmRp
bmdzOiBbdGV4dHVyZUxheW91dEJpbmRpbmcsIHNhbXBsZXJMYXlvdXRCaW5kaW5nXQogICAgIH07
CiAgICAgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dChiaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKICAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmlj
ZS5jcmVhdGVQaXBlbGluZUxheW91dCh7IGJpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlv
dXRdIH0pOwogCisgICAgY29uc3QgdGV4dHVyZUJpbmRpbmcgPSB7IAorICAgICAgICBiaW5kaW5n
OiB0ZXh0dXJlQmluZGluZ051bSwgCisgICAgICAgIHJlc291cmNlOiB0ZXh0dXJlLmNyZWF0ZURl
ZmF1bHRUZXh0dXJlVmlldygpIAorICAgIH07CisgICAgY29uc3Qgc2FtcGxlckJpbmRpbmcgPSB7
CisgICAgICAgIGJpbmRpbmc6IHNhbXBsZXJCaW5kaW5nTnVtLAorICAgICAgICByZXNvdXJjZTog
ZGV2aWNlLmNyZWF0ZVNhbXBsZXIoeyBtaW5GaWx0ZXI6ICJuZWFyZXN0IiwgbWFnRmlsdGVyOiAi
bmVhcmVzdCIgfSkKKyAgICB9OworCiAgICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRvciA9IHsK
ICAgICAgICAgbGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsCi0gICAgICAgIGJpbmRpbmdzOiBbeyBi
aW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgcmVzb3VyY2U6IHRleHR1cmUuY3JlYXRlRGVmYXVs
dFRleHR1cmVWaWV3KCkgfV0KKyAgICAgICAgYmluZGluZ3M6IFt0ZXh0dXJlQmluZGluZywgc2Ft
cGxlckJpbmRpbmddCiAgICAgfTsKICAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRl
QmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwogCkBAIC0xNzYsMTQgKzIwMywxNCBAQCBh
c3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbW1hbmRCdWZmZXIuY29weUJ1ZmZlclRvVGV4
dHVyZShidWZmZXJDb3B5VmlldywgdGV4dHVyZUNvcHlWaWV3LCB0ZXh0dXJlU2l6ZSk7CiAgICAg
Y29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5k
QnVmZmVyKTsKICAgICBwYXNzRW5jb2Rlci5zZXRQaXBlbGluZShwaXBlbGluZSk7Ci0gICAgcGFz
c0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7Ci0gICAgcGFzc0VuY29kZXIuc2V0
VmVydGV4QnVmZmVycygwLCBbdmVydGV4QnVmZmVyLCB0ZXh0dXJlQ29vcmRCdWZmZXJdLCBbMCwg
MF0pOworICAgIHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cChiaW5kR3JvdXBJbmRleCwgYmluZEdy
b3VwKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKHBvc2l0aW9uQnVmZmVySW5k
ZXgsIFtwb3NpdGlvbkJ1ZmZlciwgdGV4dHVyZUNvb3JkQnVmZmVyXSwgWzAsIDBdKTsKICAgICBw
YXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOwogICAgIHBhc3NFbmNvZGVyLmVuZFBhc3MoKTsK
IAogICAgIGNvbnN0IHF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CiAgICAgcXVldWUuc3VibWl0
KFtjb21tYW5kQnVmZmVyXSk7Ci0gICAgdmVydGV4QnVmZmVyLmRlc3Ryb3koKTsKKyAgICBwb3Np
dGlvbkJ1ZmZlci5kZXN0cm95KCk7CiAgICAgdGV4dHVyZUNvb3JkQnVmZmVyLmRlc3Ryb3koKTsK
ICAgICB0ZXh0dXJlLmRlc3Ryb3koKTsKICAgICBjb250ZXh0LnByZXNlbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363928</attachid>
            <date>2019-03-07 14:30:09 -0800</date>
            <delta_ts>2019-03-07 15:03:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195427-20190307143008.patch</filename>
            <type>text/plain</type>
            <size>69252</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxZmYwZmM0MDBmMzI2
OGEwOTU5YjZkZjJkMmExM2FiNTlmZWMzNi4uOTliOThlMWMxNDBmYmMyNzUwMDQzMjQ2OGU5N2I2
NWNiNTliMmEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTAzLTA3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVNh
bXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg2ODYwMTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEltcGxlbWVudCBh
YmlsaXR5IHRvIGNyZWF0ZSBHUFVTYW1wbGVycyBhbmQgdXNlIHRoZW0gYXMgcGlwZWxpbmUgcmVz
b3VyY2UgYmluZGluZ3MuCisKKyAgICAgICAgVGVzdDogdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5o
dG1sIHVwZGF0ZWQuCisKKyAgICAgICAgQWRkIHN5bWJvbHMgdG8gcHJvamVjdDoKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgor
CisgICAgICAgIEdQVVNhbXBsZXIgY3JlYXRpb246CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
R1BVU2FtcGxlckRlc2NyaXB0b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVh
dGVTYW1wbGVyIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHUFVTYW1wbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVU2FtcGxlcjo6V2ViR1BVU2FtcGxlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2FtcGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVNhbXBsZXI6OnNh
bXBsZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6dHJ5Q3JlYXRlU2FtcGxlciBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkdQVVNhbXBsZXI6OnBsYXRmb3JtU2FtcGxlciBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTYW1wbGVyTWV0YWwubW06IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6bXRsQWRkcmVzc01vZGVGb3JBZGRyZXNzTW9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjptdGxCb3JkZXJDb2xvckZvckJvcmRlckNvbG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Om10bE1pbk1hZ0ZpbHRlckZvckZpbHRlck1vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6bXRsTWlwRmlsdGVyRm9yRmlsdGVyTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjp0cnlDcmVh
dGVNdGxTYW1wbGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2FtcGxlcjo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVNhbXBsZXI6OkdQVVNhbXBsZXIpOgorCisgICAg
ICAgIE1vdmUgR1BVQ29tcGFyZUZ1bmN0aW9uIHRvIFV0aWxzIGZvciBzaGFyZWQgdXNlLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnRyeUNyZWF0ZU10bERlcHRoU3RlbmNpbFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRlQW5kQ29udmVydERlcHRoQ29tcGFyZUZ1bmN0aW9uVG9NdGwpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9yR1BVVGV4dHVyZUZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbkZvckdQVUNv
bXBhcmVGdW5jdGlvbik6CisKKyAgICAgICAgRXhwYW5kIGJpbmQgZ3JvdXBzIHRvIGFjY2VwdCBH
UFVTYW1wbGVyczoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBCaW5k
aW5nLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yOjphc0dQVUJp
bmRHcm91cERlc2NyaXB0b3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVCaW5kR3JvdXBCaW5kaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAg
IChXZWJDb3JlOjpHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFz
QnVmZmVyT25FbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVByb2dyYW1tYWJsZVBhc3NF
bmNvZGVyOjpzZXRSZXNvdXJjZUFzU2FtcGxlck9uRW5jb2Rlcik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNUZXh0dXJl
T25FbmNvZGVyKToKKworICAgICAgICBNaXNjOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVRleHR1cmUuY3BwOiBNaXNzaW5nIGluY2x1ZGVzLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2Fw
Q2hhaW4uY3BwOiBSZW1vdmVkIGV4dHJhIGluY2x1ZGUuCisKIDIwMTktMDMtMDYgIEp1c3RpbiBG
YW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEdQVV0gR1BVVGV4dHVy
ZSBhbmQgR1BVVGV4dHVyZVZpZXcgdXBkYXRlcywgYW5kIHJlbGF0ZWQgR1BVQmluZEdyb3VwIHVw
ZGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjUyYmQ0ZjU2MDY0NDkyZWM4YTQ0N2E3MWU4
NTZkYjlkMDRkNDQ0Ni4uNmFhYjU3NTBkYTk0NzQzZTMyZWZhMDdiMDM4YzI2YTExNTJmNjg1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ3Myw2ICs0NzMsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L0dQVUxvYWRPcC5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9HUFVPcmlnaW4zRC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0
b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCiAgICAgTW9k
dWxlcy93ZWJncHUvR1BVU3RvcmVPcC5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9HUFVUZXh0dXJl
RGVzY3JpcHRvci5pZGwKQEAgLTUwMyw2ICs1MDQsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbAogICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwKICAgICBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbAorICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVNhbXBsZXIuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9k
dWxlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3Iu
aWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzQyMzAwNjJjMjNk
YWNjODAxMjg1ZjdjZGY0MGMwOTNlNjMyOTkzMS4uMjdiNzJiNzcwZDJjZDBiNjNhOTcxYmE1NDQ3
ZTYwY2E3YjJmYWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC0zMzIsNiArMzMyLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJncHUvR1BVRXh0ZW50M0QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVM
b2FkT3AuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVPcmlnaW4zRC5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvR1BVU2hhZGVyU3RhZ2VCaXQuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9HUFVTdG9yZU9wLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsCkBAIC0zNjksNiArMzcw
LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
cmluZ0NvbnRleHQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1w
bGVyLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxl
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlRGVz
Y3JpcHRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0
YWdlQml0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCBjNjRhYTNjZjU5MmE0OTNiNTliY2Q4MjQwMTFhMGVjZGQ3ZTdmMWE3Li5h
YzJiNjM4YTAyMWRhZjFiZDU0YmI5ZTQ5N2I1NzJjZDQwYWJkZTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTk5LDYgKzU5OSw4
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVT3Jp
Z2luM0QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dQVU9yaWdpbjNELmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTYW1wbGVyRGVz
Y3JpcHRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR1BVU2FtcGxlckRlc2NyaXB0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNHUFVTaGFkZXJTdGFnZUJpdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR1BVU2hhZGVyU3RhZ2VCaXQuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHUFVTdG9yZU9wLmNwcApA
QCAtMTkzMyw2ICsxOTM1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3AKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNhbXBsZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNhbXBs
ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
UFVTaGFkZXJNb2R1bGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYkdQVVNoYWRlck1vZHVsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ZTY1ZDQ3ZTdhMWMyOWE0ZjhmNDQxMjFj
MzA4NTlhZTU1NDM3NTYyLi5lNGI4MjVkNDc0NzFmN2NjZDU3MGYzYjJmY2ZjMDVmYWRmZDc4ZmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM4Myw2ICszODMsNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVMb2FkT3Au
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVU9yaWdpbjNELmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9HUFVTaGFkZXJTdGFnZUJpdC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVU3RvcmVPcC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaWRsIFwKQEAgLTQx
Myw2ICs0MTQsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4YmFjZDQwNWEzMjM3Y2VmNGVmMWRhYzA5YTIyMTI4NGExZWFkZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVTYW1wbGVy
RGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dp
dGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAor
Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitlbnVtIEdQVUFkZHJlc3NNb2RlIHsKKyAg
ICAiY2xhbXAtdG8tZWRnZSIsCisgICAgInJlcGVhdCIsCisgICAgIm1pcnJvci1yZXBlYXQiLAor
ICAgICJjbGFtcC10by1ib3JkZXItY29sb3IiCit9OworCitlbnVtIEdQVUZpbHRlck1vZGUgewor
ICAgICJuZWFyZXN0IiwKKyAgICAibGluZWFyIgorfTsKKworZW51bSBHUFVCb3JkZXJDb2xvciB7
CisgICAgInRyYW5zcGFyZW50LWJsYWNrIiwKKyAgICAib3BhcXVlLWJsYWNrIiwKKyAgICAib3Bh
cXVlLXdoaXRlIgorfTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IEdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAg
ICBHUFVBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVUgPSAiY2xhbXBUb0VkZ2UiOworICAgIEdQVUFk
ZHJlc3NNb2RlIGFkZHJlc3NNb2RlViA9ICJjbGFtcFRvRWRnZSI7CisgICAgR1BVQWRkcmVzc01v
ZGUgYWRkcmVzc01vZGVXID0gImNsYW1wVG9FZGdlIjsKKyAgICBHUFVGaWx0ZXJNb2RlIG1hZ0Zp
bHRlciA9ICJuZWFyZXN0IjsKKyAgICBHUFVGaWx0ZXJNb2RlIG1pbkZpbHRlciA9ICJuZWFyZXN0
IjsKKyAgICBHUFVGaWx0ZXJNb2RlIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBmbG9h
dCBsb2RNaW5DbGFtcCA9IDA7CisgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSAweGZmZmZmZmZmOyAv
LyBUT0RPOiBXaGF0IHNob3VsZCB0aGlzIGJlPyBXYXMgTnVtYmVyLk1BWF9WQUxVRS4KKyAgICB1
MzIgbWF4QW5pc290cm9weSA9IDE7CisgICAgR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5j
dGlvbiA9ICJuZXZlciI7CisgICAgR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNw
YXJlbnRCbGFjayI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwQmluZGluZy5oCmluZGV4IGRkZGY5OTVjNzIyNmI1YzFlOTUyZWVh
ZTE4ODQzOThkZmI2ODkwMzYuLjlmOTlkYjNjZDkyNzQxM2M5YmNhYzE0MDEyNGQwODc0YTZlNmVh
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRH
cm91cEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVC
aW5kR3JvdXBCaW5kaW5nLmgKQEAgLTI4LDEyICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHUFUp
CiAKICNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVU2Ft
cGxlci5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3LmgiCiAjaW5jbHVkZSA8d3RmL1Zh
cmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBXZWJHUFVCaW5kaW5nUmVz
b3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4sIFdlYkdQVUJ1ZmZlckJp
bmRpbmc+OwordXNpbmcgV2ViR1BVQmluZGluZ1Jlc291cmNlID0gVmFyaWFudDxSZWZQdHI8V2Vi
R1BVU2FtcGxlcj4sIFJlZlB0cjxXZWJHUFVUZXh0dXJlVmlldz4sIFdlYkdQVUJ1ZmZlckJpbmRp
bmc+OwogCiBzdHJ1Y3QgV2ViR1BVQmluZEdyb3VwQmluZGluZyB7CiAgICAgdW5zaWduZWQgbG9u
ZyBiaW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQmluZEdyb3VwQmluZGluZy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmlkbAppbmRleCBhMjY3MjA2NzgwMmM5YWU4YWQ0ZTVhYmU0
NTgxZWM2ZTYxZjAxY2E1Li43MWQ0NThkZDcyYzZjMTQxNDRhYmJjY2FhNGNhN2Q5MTM4MDhiNDYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3Jv
dXBCaW5kaW5nLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVC
aW5kR3JvdXBCaW5kaW5nLmlkbApAQCAtMjUsNyArMjUsNyBAQAogLy8gaHR0cHM6Ly9naXRodWIu
Y29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKIAogdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKLXR5cGVkZWYgKC8qV2ViR1BVU2FtcGxlciBvciAqL1dl
YkdQVVRleHR1cmVWaWV3IG9yIFdlYkdQVUJ1ZmZlckJpbmRpbmcpIFdlYkdQVUJpbmRpbmdSZXNv
dXJjZTsKK3R5cGVkZWYgKFdlYkdQVVNhbXBsZXIgb3IgV2ViR1BVVGV4dHVyZVZpZXcgb3IgV2Vi
R1BVQnVmZmVyQmluZGluZykgV2ViR1BVQmluZGluZ1Jlc291cmNlOwogCiBbCiAgICAgQ29uZGl0
aW9uYWw9V0VCR1BVLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAppbmRleCAyNjM4MWJmNzE1ODYzZTQw
MzE3OTVmNDY2ZTQzZTJmNmYxMGE4ZjcxLi44YTRiZTY5NTBkNzllNDJjOGE4ZWFiMzNlMDNkMzk5
OGNkZjc4Njk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcApAQCAtODgsNyArODgsMTUgQEAgT3B0
aW9uYWw8R1BVQmluZEdyb3VwRGVzY3JpcHRvcj4gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvcjo6
YXNHUFVCaW5kR3JvdXBEZXNjcmkKIAogICAgICAgICBjb25zdCBhdXRvIGxheW91dEJpbmRpbmcg
PSBpdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgYXV0byBiaW5kaW5nUmVzb3VyY2VWaXNpdG9y
ID0gV1RGOjptYWtlVmlzaXRvcihbXShjb25zdCBSZWZQdHI8V2ViR1BVVGV4dHVyZVZpZXc+JiB2
aWV3KSAtPiBPcHRpb25hbDxHUFVCaW5kaW5nUmVzb3VyY2U+IHsKKyAgICAgICAgYXV0byBiaW5k
aW5nUmVzb3VyY2VWaXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbXShjb25zdCBSZWZQdHI8V2Vi
R1BVU2FtcGxlcj4mIHNhbXBsZXIpIC0+IE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNvdXJjZT4gewor
ICAgICAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgICAgICAgICBhdXRvIGdwdVNhbXBsZXIgPSBzYW1wbGVyLT5zYW1wbGVyKCk7
CisgICAgICAgICAgICBpZiAoIWdwdVNhbXBsZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdS
ZXNvdXJjZT4obWFrZVJlZigqZ3B1U2FtcGxlcikpOworICAgICAgICB9LCBbXShjb25zdCBSZWZQ
dHI8V2ViR1BVVGV4dHVyZVZpZXc+JiB2aWV3KSAtPiBPcHRpb25hbDxHUFVCaW5kaW5nUmVzb3Vy
Y2U+IHsKICAgICAgICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogICAgICAgICAgICAgYXV0byB0ZXh0dXJlID0gdmlldy0+dGV4dHVyZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKaW5kZXgg
NDQ1ZTkzYTFhOWNjZjhlYzA0YTQzN2JiYjdiY2FjMGM1ZTUwYzA4Yi4uMjI5NGY4NWI1MDM5OGZh
YTczMDhkNjgxMDY0NzdiMjI1ZDA4MWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiR1BV
Q29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgi
CiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BV
U2FtcGxlci5oIgorI2luY2x1ZGUgIkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAi
R1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmVEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTIsNiArNTQsNyBAQAogI2luY2x1ZGUg
IldlYkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbmNs
dWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVT
YW1wbGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVRleHR1cmUuaCIK
QEAgLTg0LDYgKzg3LDEyIEBAIFJlZjxXZWJHUFVUZXh0dXJlPiBXZWJHUFVEZXZpY2U6OmNyZWF0
ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yCiAgICAgcmV0dXJuIFdl
YkdQVVRleHR1cmU6OmNyZWF0ZShXVEZNb3ZlKHRleHR1cmUpKTsKIH0KIAorUmVmPFdlYkdQVVNh
bXBsZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikgY29uc3QKK3sKKyAgICBhdXRvIHNhbXBsZXIgPSBtX2RldmljZS0+
dHJ5Q3JlYXRlU2FtcGxlcihkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gV2ViR1BVU2FtcGxlcjo6
Y3JlYXRlKFdURk1vdmUoc2FtcGxlcikpOworfQorCiBSZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0
PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAogewogICAgIGF1dG8gbGF5b3V0ID0g
bV9kZXZpY2UtPnRyeUNyZWF0ZUJpbmRHcm91cExheW91dChkZXNjcmlwdG9yKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggOTk1Y2NiOWYzYTY1
YjY2MTc1NGFkNDc1MTcwOTEyY2ZlMmM1NjBmNS4uZGQwZWNiZjdjNDQxNjU4OGEzYThjNjIyNzc5
MTA5MzZmZTkzNzA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmgKQEAgLTQ0LDExICs0NCwxMyBAQCBjbGFzcyBXZWJHUFVCdWZmZXI7CiBjbGFzcyBX
ZWJHUFVDb21tYW5kQnVmZmVyOwogY2xhc3MgV2ViR1BVUGlwZWxpbmVMYXlvdXQ7CiBjbGFzcyBX
ZWJHUFVSZW5kZXJQaXBlbGluZTsKK2NsYXNzIFdlYkdQVVNhbXBsZXI7CiBjbGFzcyBXZWJHUFVT
aGFkZXJNb2R1bGU7CiBjbGFzcyBXZWJHUFVUZXh0dXJlOwogCiBzdHJ1Y3QgR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IEdQ
VVNhbXBsZXJEZXNjcmlwdG9yOwogc3RydWN0IEdQVVRleHR1cmVEZXNjcmlwdG9yOwogc3RydWN0
IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVUGlwZWxpbmVMYXlvdXRE
ZXNjcmlwdG9yOwpAQCAtNjQsNiArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8V2ViR1BVQnVm
ZmVyPiBjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKICAgICBSZWY8
V2ViR1BVVGV4dHVyZT4gY3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciYmKSBjb25z
dDsKKyAgICBSZWY8V2ViR1BVU2FtcGxlcj4gY3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVy
RGVzY3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVUJpbmRHcm91cExheW91dD4gY3Jl
YXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKSBj
b25zdDsKICAgICBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IGNyZWF0ZVBpcGVsaW5lTGF5b3V0
KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciYmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCmluZGV4IGM4ZGFmYzdlNWVlNWEz
Njk1YWU5NTdkNDA0MTY4OWEyMTA4MDYzZTQuLjE5ZDNjYTU1YTIzZmU2ZDlmNTg2M2ZjOGU2ZGFm
ZTIzZTA5N2VmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmlkbApAQCAtMzMsNiArMzMsNyBAQAogCiAgICAgV2ViR1BVQnVmZmVyIGNyZWF0ZUJ1
ZmZlcihHUFVCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIFdlYkdQVVRleHR1cmUg
Y3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJH
UFVTYW1wbGVyIGNyZWF0ZVNhbXBsZXIoR1BVU2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CiAKICAgICBXZWJHUFVCaW5kR3JvdXBMYXlvdXQgY3JlYXRlQmluZEdyb3VwTGF5b3V0KEdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVUGlwZWxpbmVM
YXlvdXQgY3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
IGRlc2NyaXB0b3IpOwpAQCAtNTAsOCArNTEsNiBAQAogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0
ZSBXZWJHUFVFeHRlbnNpb25zIGV4dGVuc2lvbnM7CiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IFdlYkdQVUxpbWl0cyBsaW1pdHM7CiAKLSAgICAvLyBXZWJHUFVTYW1wbGVyIGNyZWF0ZVNhbXBs
ZXIoV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0KICAgICAvLyBXZWJHUFVD
b21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgLy8gV2ViR1BVRmVuY2UgY3JlYXRlRmVuY2Uo
V2ViR1BVRmVuY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNTIwZTYzYTFh
MDA1NDkwOTdlNDAxYWVlYjhiNDMyZDVkMTI2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVNhbXBs
ZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFdlYkdQVVNhbXBsZXI+IFdlYkdQVVNhbXBsZXI6OmNyZWF0ZShSZWZQdHI8R1BVU2FtcGxlcj4m
JiBzYW1wbGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVNhbXBsZXIoV1RG
TW92ZShzYW1wbGVyKSkpOworfQorCitXZWJHUFVTYW1wbGVyOjpXZWJHUFVTYW1wbGVyKFJlZlB0
cjxHUFVTYW1wbGVyPiYmIHNhbXBsZXIpCisgICAgOiBtX3NhbXBsZXIoV1RGTW92ZShzYW1wbGVy
KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNh
bXBsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjU5M2QwM2RkOTFhODIyYjRmZTIyMzdhNWZiZGYxOTMyNTM4OGM5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxl
ci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgV2ViR1BVU2FtcGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNhbXBs
ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVVNhbXBsZXI+IGNyZWF0ZShSZWZQ
dHI8R1BVU2FtcGxlcj4mJik7CisKKyAgICBHUFVTYW1wbGVyKiBzYW1wbGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zYW1wbGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BVU2FtcGxlcihS
ZWZQdHI8R1BVU2FtcGxlcj4mJik7CisKKyAgICBSZWZQdHI8R1BVU2FtcGxlcj4gbV9zYW1wbGVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBs
ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2FtcGxlci5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGEyYzNiNTM5OGVmYzAyOGQ0YTY1NWFhZTVkYjExYjUxNjQ3NmYwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNhbXBs
ZXIuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29t
L2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAg
IENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVTYW1wbGVyIHsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hh
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmNw
cAppbmRleCA0MDIwMWIzODI1ZGM4NGY5MmFmNmU0YmRkZjBiNWVmMjQyNzgzZDBkLi42YWE1ZDIx
NmU3ZWM0MDQyZTA0MzE2OWQyOWNhNzRlMDU5MDI0MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5jcHAKQEAgLTI4LDggKzI4LDYgQEAK
IAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVUZXh0dXJlRm9ybWF0LmgiCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV2ViR1BVU3dhcENoYWluOjp+V2ViR1BVU3dhcENoYWlu
KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVU
ZXh0dXJlLmNwcAppbmRleCAxNmEyNjM2OThmZTBjNWYwODI3MTBjNjg5Yzc0N2Q1N2IxNjMwMTll
Li5jODAwZmY4ZTI2ZjJhYWJkMDAzMWM4ZGM2NzY0ZDQyZGFlNzE2ZjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcApAQCAtMjgsNyArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaAppbmRleCA5NjNkNTA5
ZjUwYTJhYjY2MjM1Njk2NWRjYWE0MjEyN2YwY2I4Y2QxLi5mOWZjZmU0OTZlNGU4MDdkMmFlNDY4
YzdjMjQ1YzFhZTA3NjE4M2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVGV4dHVyZS5oCkBAIC0yOCwxNSArMjgsMTMgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQog
CiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgotCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZpZXcu
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
V2ViR1BVVGV4dHVyZVZpZXc7Ci0KIGNsYXNzIFdlYkdQVVRleHR1cmUgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJHUFVUZXh0dXJlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVUZXh0
dXJlPiBjcmVhdGUoUmVmUHRyPEdQVVRleHR1cmU+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5YTBi
NWUwMzdlZGFmMTNjMGU0ODEyNWM2NDFiZWQ4N2EzNDVkNmY1Li4zYmU5Y2Q5YTVlZTU5M2JmZmM4
N2M1ODg1YzA2MmMwODdjZTkzZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzYzLDYgKzM2Myw3IEBA
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUu
Y3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVTYW1wbGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2hhZGVyTW9kdWxlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmNwcAog
TW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5jcHAKQEAgLTI3ODEsNiArMjc4Miw3IEBAIEpT
R1BVRXh0ZW50M0QuY3BwCiBKU0dQVUxvYWRPcC5jcHAKIEpTR1BVT3JpZ2luM0QuY3BwCiBKU0dQ
VVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAKK0pTR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwCiBK
U0dQVVNoYWRlclN0YWdlQml0LmNwcAogSlNHUFVTdG9yZU9wLmNwcAogSlNHUFVUZXh0dXJlRGVz
Y3JpcHRvci5jcHAKQEAgLTMzMzksNiArMzM0MSw3IEBAIEpTV2ViR1BVUmVuZGVyUGFzc0Rlc2Ny
aXB0b3IuY3BwCiBKU1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAogSlNXZWJHUFVSZW5kZXJQ
aXBlbGluZS5jcHAKIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorSlNXZWJH
UFVTYW1wbGVyLmNwcAogSlNXZWJHUFVTaGFkZXJNb2R1bGUuY3BwCiBKU1dlYkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IuY3BwCiBKU1dlYkdQVVN3YXBDaGFpbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDU3ZTJkZjg1NjFmODhiODAzOTI3YjBlZWM4YmNmMGNiYWE0YjA1NTYuLjcz
NGVmNzg1ZjNhODE5NzM0MGZiMDIxMDQ1YWM2MWZjYWIwMzRkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dApAQCAtMzI1LDYgKzMyNSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUXVldWVNZXRhbC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJl
bmRlclBhc3NFbmNvZGVyTWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVS
ZW5kZXJQaXBlbGluZU1ldGFsLm1tCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2Ft
cGxlck1ldGFsLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxl
TWV0YWwubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5t
bQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhj
MjQzMGJkNmU5YzU5NDk3YWIzNjdlZTYyY2I3NGJiZWQ5YjVhMGYuLjU4MmJhYTRiZTA5OGU3MTAy
YjdhMzAyNzBmMTJkYzU2NWJmYjJjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTAwLDYgKzE0MTAwLDEzIEBACiAJCUQw
QTIwRDU0MjA5MkEwQTYwMEUwQzI1OSAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNU
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEEyMEQ1NjIwOTJBMEE2MDBFMEMy
NTkgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEEzQTczMDE0MDVBMzk4MDBGQjhFRDMgLyogUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291
cmNlTG9hZGVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2
MjIyMzA5RDc2MDBBMjI5MzUgLyogR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR1BVU2FtcGxlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDBBREIyNjMyMjMwOUQ3NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBHUFVTYW1wbGVyRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQwQURCMjY4MjIzMEFBQ0IwMEEyMjkzNSAvKiBHUFVTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdQVVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNkIyMjMw
QUNDMDAwQTIyOTM1IC8qIEdQVVNhbXBsZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEdQVVNhbXBsZXJNZXRhbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIy
NkMyMjMwQkI4RTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
R1BVU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEFEQjI2RDIyMzBC
QjhFMDBBMjI5MzUgLyogV2ViR1BVU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBBREIyNkYyMjMw
QzFGMTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVNhbXBsZXIuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMg
LyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3JlYXRlTGlua0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCMDU1
NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWF0ZUxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCOEJCMDEyMUM0NkU3ODAwMEM3NjgxIC8qIEdQVUJpbmRH
cm91cExheW91dEJpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0Qmlu
ZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg0OTUsNiArMTg1MDIsOCBA
QAogCQkJCTMxMkZGOEI5MjFBNEMyRUYwMEVCMTk5RCAvKiBHUFVSZW5kZXJQaXBlbGluZS5oICov
LAogCQkJCTMxMkZGOEJDMjFBNEMyRjAwMEVCMTk5RCAvKiBHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaCAqLywKIAkJCQlEMDZBOUEyMTIyMDI2QzdBMDA4M0M2NjIgLyogR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmggKi8sCisJCQkJRDBBREIyNjgyMjMwQUFDQjAwQTIyOTM1IC8qIEdQVVNh
bXBsZXIuaCAqLywKKwkJCQlEMEFEQjI2MjIyMzA5RDc2MDBBMjI5MzUgLyogR1BVU2FtcGxlckRl
c2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhCQjIxQTRDMkYwMDBFQjE5OUQgLyogR1BVU2hhZGVy
TW9kdWxlLmggKi8sCiAJCQkJMzEyRkY4QzAyMUE0QzJGMjAwRUIxOTlEIC8qIEdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IuaCAqLywKIAkJCQlEMDhBQTAzMjIyMEQwRDBCMDA1OEM1MDIgLyogR1BV
U3RvcmVPcC5oICovLApAQCAtMjYwOTAsNiArMjYwOTksNyBAQAogCQkJCUQwQ0NBOTQ5MjIyOTlG
OTcwMDY5NzlCNiAvKiBHUFVPcmlnaW4zRC5oICovLAogCQkJCUQwQ0NBOTRBMjIyOTlGOTcwMDY5
NzlCNiAvKiBHUFVPcmlnaW4zRC5pZGwgKi8sCiAJCQkJRDAyQzI2OTIyMTgxNDE2RDAwRDgxOEU0
IC8qIEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5pZGwgKi8sCisJCQkJRDBBREIyNjMyMjMwOUQ3
NjAwQTIyOTM1IC8qIEdQVVNhbXBsZXJEZXNjcmlwdG9yLmlkbCAqLywKIAkJCQlEMERFOEZCODIy
MkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaCAqLywKIAkJCQlEMERFOEZCOTIy
MkUwOUUyMDA4ODI1NTAgLyogR1BVU2hhZGVyU3RhZ2VCaXQuaWRsICovLAogCQkJCUQwOEFBMDMx
MjIwRDBDRTYwMDU4QzUwMiAvKiBHUFVTdG9yZU9wLmlkbCAqLywKQEAgLTI2MTYwLDYgKzI2MTcw
LDkgQEAKIAkJCQlEMEM0MTlGOTIxODQwNERBMDA5RUMxREUgLyogV2ViR1BVUmVuZGVyUGlwZWxp
bmUuaWRsICovLAogCQkJCUQwQzQxOUYyMjE4M0VGRUMwMDlFQzFERSAvKiBXZWJHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IuaCAqLywKIAkJCQlEMEM0MTlGMzIxODNFRkVDMDA5RUMxREUgLyog
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMEFEQjI2RDIyMzBC
QjhFMDBBMjI5MzUgLyogV2ViR1BVU2FtcGxlci5jcHAgKi8sCisJCQkJRDBBREIyNkMyMjMwQkI4
RTAwQTIyOTM1IC8qIFdlYkdQVVNhbXBsZXIuaCAqLywKKwkJCQlEMEFEQjI2RjIyMzBDMUYxMDBB
MjI5MzUgLyogV2ViR1BVU2FtcGxlci5pZGwgKi8sCiAJCQkJRDA2MTVGQ0QyMTdGRTVDNjAwOEE0
OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5jcHAgKi8sCiAJCQkJRDA2MTVGQ0MyMTdGRTVDNjAw
OEE0OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5oICovLAogCQkJCUQwNjE1RkNFMjE3RkU1QzYw
MDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLApAQCAtMjYxOTUsNiArMjYyMDgs
NyBAQAogCQkJCUQwODdDRTM5MjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVRdWV1ZU1ldGFsLm1tICov
LAogCQkJCUQwODdDRTNBMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVSZW5kZXJQYXNzRW5jb2Rlck1l
dGFsLm1tICovLAogCQkJCUQwODdDRTNEMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tICovLAorCQkJCUQwQURCMjZCMjIzMEFDQzAwMEEyMjkzNSAvKiBHUFVTYW1w
bGVyTWV0YWwubW0gKi8sCiAJCQkJRDA4N0NFNDAyMUFDQTk0MjAwQkRFMTc0IC8qIEdQVVNoYWRl
ck1vZHVsZU1ldGFsLm1tICovLAogCQkJCUQwODdDRTNFMjFBQ0E5NDIwMEJERTE3NCAvKiBHUFVT
d2FwQ2hhaW5NZXRhbC5tbSAqLywKIAkJCQlEMDg3Q0UzRjIxQUNBOTQyMDBCREUxNzQgLyogR1BV
VGV4dHVyZU1ldGFsLm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGQ5NWRmYmQzZWFlZDhhYzBlMDFkOTVmMmE0NzViZTc3
ODg0ZDc5YjguLjMzYTdkMTM0MDcyYWVjMzJjZjAyYzAwOWZjZDY3MDAzN2Y3MzBkNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAg
LTIwOCw2ICsyMDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2ViR1BVUmVu
ZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyKSBcCiAg
ICAgbWFjcm8oV2ViR1BVUmVuZGVyUGlwZWxpbmUpIFwKKyAgICBtYWNybyhXZWJHUFVTYW1wbGVy
KSBcCiAgICAgbWFjcm8oV2ViR1BVU2hhZGVyTW9kdWxlKSBcCiAgICAgbWFjcm8oV2ViR1BVU3dh
cENoYWluKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBCaW5kaW5nLmgK
aW5kZXggY2ZhOGIwMWZjMjZjZjVhNmE5YWNjMTBiNzBkYmJlNjNlMmQ3ZmVlNi4uNDdiZDdhZjYw
MmZhMzhkMTI5NDRiYzM1MjlkZGY4NmJmNzQ3ZTdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cEJpbmRpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwQmluZGluZy5oCkBA
IC0yOCwxMiArMjgsMTMgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiR1BVQnVm
ZmVyQmluZGluZy5oIgorI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKICNpbmNsdWRlICJHUFVUZXh0
dXJlLmgiCiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci11c2luZyBHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZjxHUFVUZXh0dXJlPiwgR1BV
QnVmZmVyQmluZGluZz47Cit1c2luZyBHUFVCaW5kaW5nUmVzb3VyY2UgPSBWYXJpYW50PFJlZjxH
UFVTYW1wbGVyPiwgUmVmPEdQVVRleHR1cmU+LCBHUFVCdWZmZXJCaW5kaW5nPjsKIAogc3RydWN0
IEdQVUJpbmRHcm91cEJpbmRpbmcgewogICAgIHVuc2lnbmVkIGxvbmcgYmluZGluZzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaAppbmRleCBi
MGNhMjdlNjk0ODk4NzdmYWE1YzJjMTllOTEzMDRjY2U1MmUyMWRmLi4wYjY0MjY5NjlkOTNmZmRm
ZmQwZWRlNWQwMjkxYjIyMDAyMDk5YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oCkBAIC0xMzMsNyArMTMzLDcgQEAgcHJpdmF0ZToK
IAogICAgIHVuc2lnbmVkIGxvbmcgbV9ieXRlTGVuZ3RoOwogICAgIE9wdGlvblNldDxHUFVCdWZm
ZXJVc2FnZTo6RmxhZ3M+IG1fdXNhZ2U7Ci0gICAgdW5zaWduZWQgbV9udW1TY2hlZHVsZWRDb21t
YW5kQnVmZmVycyA9IDA7CisgICAgdW5zaWduZWQgbV9udW1TY2hlZHVsZWRDb21tYW5kQnVmZmVy
cyB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wYXJlRnVuY3Rpb24uaApp
bmRleCBkZGU5ZjY1Yzc0MGY5YWY4MDhlNjM2ZTM4ZWVmOTc1NGY1OTIzZTY3Li5lZTBiYmEzOWM5
ZGZlNGQwMDI4OTNjOWFiNWMyOGQxMmZlNGMyOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcGFyZUZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXBhcmVGdW5jdGlvbi5oCkBAIC00
MCw2ICs0MCw4IEBAIGVudW0gY2xhc3MgR1BVQ29tcGFyZUZ1bmN0aW9uIHsKICAgICBBbHdheXMK
IH07CiAKK3VzaW5nIFBsYXRmb3JtQ29tcGFyZUZ1bmN0aW9uID0gdW5zaWduZWQ7CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDdl
YzE2NWNmMDhlNTlhNTZiZWE5YTNmMTlkOTZkN2Q5MzAxZTdkMjEuLmU1MGU5YWQyMmYxNGJjOTBj
MTU3MzM1ZGQ4NjllNjk0ZjliY2YzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSAiR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlw
ZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNs
dWRlICJHUFVTYW1wbGVyLmgiCisjaW5jbHVkZSAiR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgpAQCAtNTQsNiArNTYsMTEgQEAgUmVm
UHRyPEdQVVRleHR1cmU+IEdQVURldmljZTo6dHJ5Q3JlYXRlVGV4dHVyZShHUFVUZXh0dXJlRGVz
Y3JpcHRvciYmIGRlc2NyaXB0b3IKICAgICByZXR1cm4gR1BVVGV4dHVyZTo6dHJ5Q3JlYXRlKCp0
aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKIH0KIAorUmVmUHRyPEdQVVNhbXBsZXI+IEdQVURl
dmljZTo6dHJ5Q3JlYXRlU2FtcGxlcihjb25zdCBHUFVTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikgY29uc3QKK3sKKyAgICByZXR1cm4gR1BVU2FtcGxlcjo6dHJ5Q3JlYXRlKCp0aGlzLCBk
ZXNjcmlwdG9yKTsKK30KKwogUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVRGV2aWNlOjp0
cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikgY29uc3QKIHsKICAgICByZXR1cm4gR1BVQmluZEdyb3VwTGF5b3V0Ojp0
cnlDcmVhdGUoKnRoaXMsIGRlc2NyaXB0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmluZGV4IDQ3NjllMmQyMDMxZDY1YTk2Yjk5NzRi
MWExMzM5NDg0N2NjMTc3ZDcuLjg4NzQwY2YzMjk3NGUyYWI4ODI4MGUzMTg0MGI2ODcwM2RiZjBm
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVE
ZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2
aWNlLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFu
ZEJ1ZmZlcjsKIGNsYXNzIEdQVVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgR1BVUmVuZGVyUGlwZWxp
bmU7CitjbGFzcyBHUFVTYW1wbGVyOwogY2xhc3MgR1BVU2hhZGVyTW9kdWxlOwogY2xhc3MgR1BV
VGV4dHVyZTsKIApAQCAtNTMsNiArNTQsNyBAQCBzdHJ1Y3QgR1BVQnVmZmVyRGVzY3JpcHRvcjsK
IHN0cnVjdCBHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiBzdHJ1Y3QgR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yOwogc3RydWN0IEdQVVJlcXVlc3RBZGFwdGVyT3B0aW9uczsKK3N0cnVj
dCBHUFVTYW1wbGVyRGVzY3JpcHRvcjsKIHN0cnVjdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9y
Owogc3RydWN0IEdQVVRleHR1cmVEZXNjcmlwdG9yOwogCkBAIC02Miw2ICs2NCw3IEBAIHB1Ymxp
YzoKIAogICAgIFJlZlB0cjxHUFVCdWZmZXI+IHRyeUNyZWF0ZUJ1ZmZlcihHUFVCdWZmZXJEZXNj
cmlwdG9yJiYpOwogICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0cnlDcmVhdGVUZXh0dXJlKEdQVVRl
eHR1cmVEZXNjcmlwdG9yJiYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVh
dGVTYW1wbGVyKGNvbnN0IEdQVVNhbXBsZXJEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWZQ
dHI8R1BVQmluZEdyb3VwTGF5b3V0PiB0cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3QgR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYpIGNvbnN0OwogICAgIFJlZjxHUFVQaXBlbGluZUxh
eW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAppbmRleCBkODllNjI0NjM2
NzhlZmQ2YTBmOWM5MDcwYmZmODY3Mjg5NGVlNmUwLi4zY2RjMTlmOWI1OGI4NzdlMDE4MjNkMTQz
MjJkMzJjYmYyZTAyYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaApAQCAt
NjEsOCArNjEsOSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAjaWYgVVNFKE1FVEFMKQotICAg
IHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKiwg
Y29uc3QgR1BVQmluZGluZ1Jlc291cmNlJiwgdW5zaWduZWQsIGNvbnN0IGNoYXIqIGNvbnN0KTsK
LSAgICB2b2lkIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2Rl
ciAqLCBjb25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmLCB1bnNpZ25lZCwgY29uc3QgY2hhciogY29u
c3QpOworICAgIHZvaWQgc2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVu
Y29kZXIgKiwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYsIGNvbnN0IGNoYXIqIGNvbnN0KTsK
KyAgICB2b2lkIHNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2Rl
ciAqLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiwgY29uc3QgY2hhciogY29uc3QpOworICAg
IHZvaWQgc2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRMQXJndW1lbnRFbmNvZGVyICos
IGNvbnN0IEdQVUJpbmRHcm91cEJpbmRpbmcmLCBjb25zdCBjaGFyKiBjb25zdCk7CiAgICAgdmly
dHVhbCB2b2lkIHVzZVJlc291cmNlKE1UTFJlc291cmNlICosIHVuc2lnbmVkKSA9IDA7CiAKICAg
ICAvLyBSZW5kZXIgY29tbWFuZCBlbmNvZGVyIG1ldGhvZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2FtcGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGM0Mjdm
NjY4NjI5YTU3YjQxYTNhMWFmNjE2Nzg1MjEzMmQzOGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXIuaApAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX1BST1RPQ09MKE1UTFNhbXBsZXJTdGF0
ZSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVRGV2aWNlOworCitzdHJ1Y3Qg
R1BVU2FtcGxlckRlc2NyaXB0b3I7CisKK3VzaW5nIFBsYXRmb3JtU2FtcGxlciA9IE1UTFNhbXBs
ZXJTdGF0ZTsKK3VzaW5nIFBsYXRmb3JtU2FtcGxlclNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTFNh
bXBsZXJTdGF0ZT47CisKK2NsYXNzIEdQVVNhbXBsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVT
YW1wbGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVTYW1wbGVyPiB0cnlDcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImKTsKKworICAg
IFBsYXRmb3JtU2FtcGxlciogcGxhdGZvcm1TYW1wbGVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybVNhbXBsZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBHUFVTYW1wbGVyKFBsYXRmb3Jt
U2FtcGxlclNtYXJ0UHRyJiYpOworCisgICAgUGxhdGZvcm1TYW1wbGVyU21hcnRQdHIgbV9wbGF0
Zm9ybVNhbXBsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVU2FtcGxlckRlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzA0MzFkNjBj
MTAyNTE3YjQxZjY1NGE5MTY5NGU1MWM0MzI1Zjc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNhbXBsZXJEZXNjcmlwdG9yLmgKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworI2luY2x1ZGUgIkdQVUNvbXBhcmVGdW5jdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBHUFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgZW51bSBjbGFzcyBB
ZGRyZXNzTW9kZSB7CisgICAgICAgIENsYW1wVG9FZGdlLAorICAgICAgICBSZXBlYXQsCisgICAg
ICAgIE1pcnJvclJlcGVhdCwKKyAgICAgICAgQ2xhbXBUb0JvcmRlckNvbG9yLAorICAgIH07CisK
KyAgICBlbnVtIGNsYXNzIEZpbHRlck1vZGUgeworICAgICAgICBOZWFyZXN0LAorICAgICAgICBM
aW5lYXIsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgQm9yZGVyQ29sb3IgeworICAgICAgICBU
cmFuc3BhcmVudEJsYWNrLAorICAgICAgICBPcGFxdWVCbGFjaywKKyAgICAgICAgT3BhcXVlV2hp
dGUsCisgICAgfTsKKworICAgIEFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlVSB7IEFkZHJlc3NNb2Rl
OjpDbGFtcFRvRWRnZSB9OworICAgIEFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlViB7IEFkZHJlc3NN
b2RlOjpDbGFtcFRvRWRnZSB9OworICAgIEFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlVyB7IEFkZHJl
c3NNb2RlOjpDbGFtcFRvRWRnZSB9OworICAgIEZpbHRlck1vZGUgbWFnRmlsdGVyIHsgRmlsdGVy
TW9kZTo6TmVhcmVzdCB9OworICAgIEZpbHRlck1vZGUgbWluRmlsdGVyIHsgRmlsdGVyTW9kZTo6
TmVhcmVzdCB9OworICAgIEZpbHRlck1vZGUgbWlwbWFwRmlsdGVyIHsgRmlsdGVyTW9kZTo6TmVh
cmVzdCB9OworICAgIGZsb2F0IGxvZE1pbkNsYW1wIHsgMCB9OworICAgIGZsb2F0IGxvZE1heENs
YW1wIHsgMHhmZmZmZmZmZiB9OworICAgIHVuc2lnbmVkIG1heEFuaXNvdHJvcHkgeyAxIH07Cisg
ICAgR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiB7IEdQVUNvbXBhcmVGdW5jdGlv
bjo6TmV2ZXIgfTsKKyAgICBCb3JkZXJDb2xvciBib3JkZXJDb2xvciB7IEJvcmRlckNvbG9yOjpU
cmFuc3BhcmVudEJsYWNrIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVVXRpbHMuaAppbmRleCA0NzA1YWI1YThkMzk0MjVjZDIyMGY1ODE0NzY0YzVlOGRi
YjJmNTdmLi4wNWQ5YTVjNzA3NGM0YWU2MzNlOGU2MDEyYzVjYzg3NjhiZmI0ZjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVXRpbHMuaApAQCAtMjcs
MTEgKzI3LDEzIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQ29tcGFy
ZUZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZUZvcm1hdC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBsYXRmb3JtVGV4dHVyZUZvcm1hdCBwbGF0Zm9ybVRleHR1cmVGb3JtYXRG
b3JHUFVUZXh0dXJlRm9ybWF0KEdQVVRleHR1cmVGb3JtYXQpOworUGxhdGZvcm1Db21wYXJlRnVu
Y3Rpb24gcGxhdGZvcm1Db21wYXJlRnVuY3Rpb25Gb3JHUFVDb21wYXJlRnVuY3Rpb24oR1BVQ29t
cGFyZUZ1bmN0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDViNzhmMDE4
YzVjYjYwMGQ2MDFiNjNjODFjNWZmYzFiM2E3NmMyNDguLjQ1MDA4NDdhYmRkMDljMDA1YmJjNDg1
NTk2OTNlMGE3ZjQwNTU3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC03MCwzMCArNzAsMzcgQEAgdm9pZCBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlcjo6c2V0QmluZEdyb3VwKHVuc2lnbmVkIGluZGV4LCBHUFVCaW5kR3Jv
dXAmIGJpbmQKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgLy8gU2V0IGVh
Y2ggcmVzb3VyY2Ugb24gZWFjaCBNVExBcmd1bWVudEVuY29kZXIgaXQgc2hvdWxkIGJlIHZpc2li
bGUgb24uCi0gICAgY29uc3QgYXV0byYgYmluZGluZ3NNYXAgPSBiaW5kR3JvdXAubGF5b3V0KCku
YmluZGluZ3NNYXAoKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBiaW5kR3JvdXAu
YmluZGluZ3MoKSkgewotICAgICAgICBhdXRvIGl0ZXJhdG9yID0gYmluZGluZ3NNYXAuZmluZChi
aW5kaW5nLmJpbmRpbmcpOwotICAgICAgICBpZiAoaXRlcmF0b3IgPT0gYmluZGluZ3NNYXAuZW5k
KCkpIHsKLSAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogR1BVQmluZEdyb3VwQmluZGluZyAl
bHUgbm90IGZvdW5kIGluIEdQVUJpbmRHcm91cExheW91dCEiLCBmdW5jdGlvbk5hbWUsIGJpbmRp
bmcuYmluZGluZyk7CisgICAgY29uc3QgYXV0byYgbGF5b3V0QmluZGluZ3NNYXAgPSBiaW5kR3Jv
dXAubGF5b3V0KCkuYmluZGluZ3NNYXAoKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJlc291cmNl
QmluZGluZyA6IGJpbmRHcm91cC5iaW5kaW5ncygpKSB7CisgICAgICAgIGF1dG8gbGF5b3V0SXRl
cmF0b3IgPSBsYXlvdXRCaW5kaW5nc01hcC5maW5kKHJlc291cmNlQmluZGluZy5iaW5kaW5nKTsK
KyAgICAgICAgaWYgKGxheW91dEl0ZXJhdG9yID09IGxheW91dEJpbmRpbmdzTWFwLmVuZCgpKSB7
CisgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEdQVUJpbmRHcm91cEJpbmRpbmcgJWx1IG5v
dCBmb3VuZCBpbiBHUFVCaW5kR3JvdXBMYXlvdXQhIiwgZnVuY3Rpb25OYW1lLCByZXNvdXJjZUJp
bmRpbmcuYmluZGluZyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
YXV0byBiaW5kR3JvdXBMYXlvdXRCaW5kaW5nID0gaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBh
dXRvIGxheW91dEJpbmRpbmcgPSBsYXlvdXRJdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgc3dp
dGNoIChiaW5kR3JvdXBMYXlvdXRCaW5kaW5nLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoIChsYXlv
dXRCaW5kaW5nLnR5cGUpIHsKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbW9yZSByZXNvdXJj
ZSB0eXBlcy4KICAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5kaW5nOjpCaW5kaW5n
VHlwZTo6VW5pZm9ybUJ1ZmZlcjoKICAgICAgICAgY2FzZSBHUFVCaW5kR3JvdXBMYXlvdXRCaW5k
aW5nOjpCaW5kaW5nVHlwZTo6U3RvcmFnZUJ1ZmZlcjogewotICAgICAgICAgICAgaWYgKGJpbmRH
cm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6
VmVydGV4KQotICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNCdWZmZXJPbkVuY29kZXIodmVy
dGV4QXJncy5lbmNvZGVyLmdldCgpLCBiaW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcs
IGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBpZiAoYmluZEdyb3VwTGF5b3V0QmluZGluZy52
aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZsYWdzOjpGcmFnbWVudCkKLSAgICAgICAg
ICAgICAgICBzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVy
LmdldCgpLCBiaW5kaW5nLnJlc291cmNlLCBiaW5kaW5nLmJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7
CisgICAgICAgICAgICBpZiAobGF5b3V0QmluZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3Rh
Z2VCaXQ6OkZsYWdzOjpWZXJ0ZXgpCisgICAgICAgICAgICAgICAgc2V0UmVzb3VyY2VBc0J1ZmZl
ck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywgZnVu
Y3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBH
UFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAgICAgIHNldFJl
c291cmNlQXNCdWZmZXJPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291
cmNlQmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGNhc2UgR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6QmluZGluZ1R5cGU6OlNh
bXBsZXI6IHsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVT
aGFkZXJTdGFnZUJpdDo6RmxhZ3M6OlZlcnRleCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJj
ZUFzU2FtcGxlck9uRW5jb2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmlu
ZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2li
aWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAg
ICAgIHNldFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdl
dCgpLCByZXNvdXJjZUJpbmRpbmcsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRp
bmdUeXBlOjpTYW1wbGVkVGV4dHVyZTogewotICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91
dEJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6VmVydGV4KQot
ICAgICAgICAgICAgICAgIHNldFJlc291cmNlQXNUZXh0dXJlT25FbmNvZGVyKHZlcnRleEFyZ3Mu
ZW5jb2Rlci5nZXQoKSwgYmluZGluZy5yZXNvdXJjZSwgYmluZGluZy5iaW5kaW5nLCBmdW5jdGlv
bk5hbWUpOwotICAgICAgICAgICAgaWYgKGJpbmRHcm91cExheW91dEJpbmRpbmcudmlzaWJpbGl0
eSAmIEdQVVNoYWRlclN0YWdlQml0OjpGbGFnczo6RnJhZ21lbnQpCi0gICAgICAgICAgICAgICAg
c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoZnJhZ21lbnRBcmdzLmVuY29kZXIuZ2V0KCks
IGJpbmRpbmcucmVzb3VyY2UsIGJpbmRpbmcuYmluZGluZywgZnVuY3Rpb25OYW1lKTsKKyAgICAg
ICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6
RmxhZ3M6OlZlcnRleCkKKyAgICAgICAgICAgICAgICBzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5j
b2Rlcih2ZXJ0ZXhBcmdzLmVuY29kZXIuZ2V0KCksIHJlc291cmNlQmluZGluZywgZnVuY3Rpb25O
YW1lKTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCaW5kaW5nLnZpc2liaWxpdHkgJiBHUFVTaGFk
ZXJTdGFnZUJpdDo6RmxhZ3M6OkZyYWdtZW50KQorICAgICAgICAgICAgICAgIHNldFJlc291cmNl
QXNUZXh0dXJlT25FbmNvZGVyKGZyYWdtZW50QXJncy5lbmNvZGVyLmdldCgpLCByZXNvdXJjZUJp
bmRpbmcsIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgpAQCAtMTAzLDcgKzExMCw3IEBAIHZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXI6OnNldEJpbmRHcm91cCh1bnNpZ25lZCBpbmRleCwgR1BVQmluZEdyb3VwJiBiaW5k
CiAgICAgfQogfQogCi12b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJj
ZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBj
b25zdCBHUFVCaW5kaW5nUmVzb3VyY2UmIHJlc291cmNlLCB1bnNpZ25lZCBpbmRleCwgY29uc3Qg
Y2hhciogY29uc3QgZnVuY3Rpb25OYW1lKQordm9pZCBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
cjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3Vt
ZW50RW5jb2RlciwgY29uc3QgR1BVQmluZEdyb3VwQmluZGluZyYgYmluZGluZywgY29uc3QgY2hh
ciogY29uc3QgZnVuY3Rpb25OYW1lKQogewogI2lmIExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9Q
QVJBTShmdW5jdGlvbk5hbWUpOwpAQCAtMTEzLDEyICsxMjAsMTIgQEAgdm9pZCBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc0J1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVu
dEVuY29kZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxHUFVCdWZmZXJCaW5kaW5nPihyZXNvdXJjZSkpIHsKKyAgICBpZiAoIVdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8R1BVQnVmZmVyQmluZGluZz4oYmluZGluZy5yZXNvdXJjZSkpIHsK
ICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBidWZmZXIgdHlwZSEi
LCBmdW5jdGlvbk5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYgYnVm
ZmVyQmluZGluZyA9IFdURjo6Z2V0PEdQVUJ1ZmZlckJpbmRpbmc+KHJlc291cmNlKTsKKyAgICBh
dXRvJiBidWZmZXJCaW5kaW5nID0gV1RGOjpnZXQ8R1BVQnVmZmVyQmluZGluZz4oYmluZGluZy5y
ZXNvdXJjZSk7CiAgICAgYXV0byYgYnVmZmVyUmVmID0gYnVmZmVyQmluZGluZy5idWZmZXI7CiAg
ICAgYXV0byBtdGxCdWZmZXIgPSBidWZmZXJSZWYtPnBsYXRmb3JtQnVmZmVyKCk7CiAKQEAgLTEy
OSw3ICsxMzYsNyBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJj
ZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlcgogCiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCi0gICAgW2FyZ3VtZW50RW5jb2RlciBzZXRCdWZmZXI6bXRsQnVm
ZmVyIG9mZnNldDpidWZmZXJCaW5kaW5nLm9mZnNldCBhdEluZGV4OmluZGV4XTsKKyAgICBbYXJn
dW1lbnRFbmNvZGVyIHNldEJ1ZmZlcjptdGxCdWZmZXIgb2Zmc2V0OmJ1ZmZlckJpbmRpbmcub2Zm
c2V0IGF0SW5kZXg6YmluZGluZy5iaW5kaW5nXTsKICAgICB1c2VSZXNvdXJjZShtdGxCdWZmZXIs
IGJ1ZmZlclJlZi0+aXNSZWFkT25seSgpID8gTVRMUmVzb3VyY2VVc2FnZVJlYWQgOiBNVExSZXNv
dXJjZVVzYWdlUmVhZCB8IE1UTFJlc291cmNlVXNhZ2VXcml0ZSk7CiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpAQCAtMTM3LDcgKzE0NCwzNSBAQCB2b2lkIEdQVVByb2dyYW1tYWJs
ZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzQnVmZmVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5j
b2RlcgogICAgIG1fY29tbWFuZEJ1ZmZlci0+dXNlQnVmZmVyKGJ1ZmZlclJlZi5jb3B5UmVmKCkp
OwogfQogCi12b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRSZXNvdXJjZUFzVGV4
dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2RlciwgY29uc3Qg
R1BVQmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IGNoYXIq
IGNvbnN0IGZ1bmN0aW9uTmFtZSkKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNl
dFJlc291cmNlQXNTYW1wbGVyT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRF
bmNvZGVyLCBjb25zdCBHUFVCaW5kR3JvdXBCaW5kaW5nJiBiaW5kaW5nLCBjb25zdCBjaGFyICpj
b25zdCBmdW5jdGlvbk5hbWUpCit7CisjaWYgTE9HX0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFN
KGZ1bmN0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBpZiAoIWFyZ3VtZW50RW5jb2RlcikgeworICAg
ICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIGFyZ3VtZW50IGVuY29kZXIgZm9yIHJlcXVlc3RlZCBz
dGFnZSBmb3VuZCEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxHUFVTYW1wbGVyPj4oYmluZGluZy5y
ZXNvdXJjZSkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBH
UFVTYW1wbGVyISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvJiBzYW1wbGVyUmVmID0gV1RGOjpnZXQ8UmVmPEdQVVNhbXBsZXI+PihiaW5kaW5nLnJl
c291cmNlKTsKKyAgICBhdXRvIG10bFNhbXBsZXIgPSBzYW1wbGVyUmVmLT5wbGF0Zm9ybVNhbXBs
ZXIoKTsKKworICAgIGlmICghbXRsU2FtcGxlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IEludmFsaWQgTVRMU2FtcGxlclN0YXRlIGluIEdQVVNhbXBsZXIgYmluZGluZyEiLCBmdW5jdGlv
bk5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIFthcmd1bWVudEVuY29kZXIgc2V0U2FtcGxlclN0YXRlOm10bFNhbXBs
ZXIgYXRJbmRleDpiaW5kaW5nLmJpbmRpbmddOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7Cit9CisKK3ZvaWQgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OnNldFJlc291cmNlQXNU
ZXh0dXJlT25FbmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBjb25z
dCBHUFVCaW5kR3JvdXBCaW5kaW5nJiBiaW5kaW5nLCBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUpCiB7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFt
ZSk7CkBAIC0xNDcsMTIgKzE4MiwxMiBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
OjpzZXRSZXNvdXJjZUFzVGV4dHVyZU9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxH
UFVUZXh0dXJlPj4ocmVzb3VyY2UpKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogUmVzb3Vy
Y2UgaXMgbm90IGEgdGV4dHVyZSB0eXBlISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgaWYgKCFXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxHUFVUZXh0dXJlPj4oYmluZGluZy5yZXNvdXJjZSkpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBSZXNvdXJjZSBpcyBub3QgYSBHUFVUZXh0dXJlVmll
dyEiLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYg
dGV4dHVyZVJlZiA9IFdURjo6Z2V0PFJlZjxHUFVUZXh0dXJlPj4ocmVzb3VyY2UpOworICAgIGF1
dG8mIHRleHR1cmVSZWYgPSBXVEY6OmdldDxSZWY8R1BVVGV4dHVyZT4+KGJpbmRpbmcucmVzb3Vy
Y2UpOwogICAgIGF1dG8gbXRsVGV4dHVyZSA9IHRleHR1cmVSZWYtPnBsYXRmb3JtVGV4dHVyZSgp
OwogCiAgICAgaWYgKCFtdGxUZXh0dXJlKSB7CkBAIC0xNjIsNyArMTk3LDcgQEAgdm9pZCBHUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlcjo6c2V0UmVzb3VyY2VBc1RleHR1cmVPbkVuY29kZXIoTVRM
QXJndW1lbnRFbmNvZGUKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAg
IFthcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTptdGxUZXh0dXJlIGF0SW5kZXg6aW5kZXhdOwor
ICAgIFthcmd1bWVudEVuY29kZXIgc2V0VGV4dHVyZTptdGxUZXh0dXJlIGF0SW5kZXg6YmluZGlu
Zy5iaW5kaW5nXTsKICAgICB1c2VSZXNvdXJjZShtdGxUZXh0dXJlLCB0ZXh0dXJlUmVmLT5pc1Jl
YWRPbmx5KCkgPyBNVExSZXNvdXJjZVVzYWdlUmVhZCA6IE1UTFJlc291cmNlVXNhZ2VSZWFkIHwg
TVRMUmVzb3VyY2VVc2FnZVdyaXRlKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IDg0ZWJlYTcxMWM1
YmQwYjliNTc5YWRlNTM3YWVlMWY4ODJjODYxODMuLmJmNDQ3ZjllODkyZDZkZjA4MDI0ZmEzZTY5
NThlZDM4MTBlMjRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1t
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2ltcG9ydCAiR1BVTGlt
aXRzLmgiCisjaW1wb3J0ICJHUFVVdGlscy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiV0hMU0xWZXJ0ZXhCdWZmZXJJbmRleENhbGN1bGF0b3IuaCIKICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CkBAIC0zNywzMCArMzgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBPcHRpb25hbDxNVExDb21wYXJlRnVuY3Rpb24+IHZhbGlkYXRlQW5kQ29udmVydERlcHRoQ29t
cGFyZUZ1bmN0aW9uVG9NdGwoR1BVQ29tcGFyZUZ1bmN0aW9uIGZ1bmMpCi17Ci0gICAgc3dpdGNo
IChmdW5jKSB7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Ok5ldmVyOgotICAgICAgICBy
ZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTmV2ZXI7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rp
b246Okxlc3M6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25MZXNzOwotICAgIGNh
c2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpFcXVhbDoKLSAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVG
dW5jdGlvbkVxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpMZXNzRXF1YWw6Ci0g
ICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rpb25MZXNzRXF1YWw7Ci0gICAgY2FzZSBHUFVD
b21wYXJlRnVuY3Rpb246OkdyZWF0ZXI6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25HcmVhdGVyOwotICAgIGNhc2UgR1BVQ29tcGFyZUZ1bmN0aW9uOjpOb3RFcXVhbDoKLSAgICAg
ICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbk5vdEVxdWFsOwotICAgIGNhc2UgR1BVQ29tcGFy
ZUZ1bmN0aW9uOjpHcmVhdGVyRXF1YWw6Ci0gICAgICAgIHJldHVybiBNVExDb21wYXJlRnVuY3Rp
b25HcmVhdGVyRXF1YWw7Ci0gICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246OkFsd2F5czoKLSAg
ICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkFsd2F5czsKLSAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIH0KLX0KLQogc3RhdGljIFJldGFpblB0cjxN
VExEZXB0aFN0ZW5jaWxTdGF0ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUoY29uc3Qg
Y2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBjb25zdCBHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQogewogI2lmIExPR19E
SVNBQkxFRApAQCAtNzksMTMgKzU2LDggQEAgc3RhdGljIFJldGFpblB0cjxNVExEZXB0aFN0ZW5j
aWxTdGF0ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUoY29uc3QgY2hhcioKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBtdGxEZXB0aENvbXBhcmUgPSB2
YWxpZGF0ZUFuZENvbnZlcnREZXB0aENvbXBhcmVGdW5jdGlvblRvTXRsKGRlc2NyaXB0b3IuZGVw
dGhDb21wYXJlKTsKLSAgICBpZiAoIW10bERlcHRoQ29tcGFyZSkgewotICAgICAgICBMT0coV2Vi
R1BVLCAiJXM6IEludmFsaWQgR1BVQ29tcGFyZUZ1bmN0aW9uIGluIEdQVURlcHRoU3RlbmNpbFN0
YXRlRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0KLSAgICBbbXRsRGVzY3JpcHRvciBzZXREZXB0aENvbXBhcmVGdW5jdGlvbjoqbXRs
RGVwdGhDb21wYXJlXTsKKyAgICBhdXRvIG10bERlcHRoQ29tcGFyZSA9IHN0YXRpY19jYXN0PE1U
TENvbXBhcmVGdW5jdGlvbj4ocGxhdGZvcm1Db21wYXJlRnVuY3Rpb25Gb3JHUFVDb21wYXJlRnVu
Y3Rpb24oZGVzY3JpcHRvci5kZXB0aENvbXBhcmUpKTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRE
ZXB0aENvbXBhcmVGdW5jdGlvbjptdGxEZXB0aENvbXBhcmVdOwogICAgIFttdGxEZXNjcmlwdG9y
IHNldERlcHRoV3JpdGVFbmFibGVkOmRlc2NyaXB0b3IuZGVwdGhXcml0ZUVuYWJsZWRdOwogCiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBiYWNrL2Zyb250RmFjZVN0ZW5jaWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2FtcGxlck1l
dGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNh
bXBsZXJNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDEyODU0MTFkM2RkMjczMWMxMDA3ZjNjMmJjODVm
YjYwMmQ3ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbQpAQCAtMCwwICsxLDE1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVU2FtcGxlci5oIgorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJHUFVT
YW1wbGVyRGVzY3JpcHRvci5oIgorI2ltcG9ydCAiR1BVVXRpbHMuaCIKKyNpbXBvcnQgIkxvZ2dp
bmcuaCIKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBNVExTYW1wbGVyQWRk
cmVzc01vZGUgbXRsQWRkcmVzc01vZGVGb3JBZGRyZXNzTW9kZShHUFVTYW1wbGVyRGVzY3JpcHRv
cjo6QWRkcmVzc01vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQ
VVNhbXBsZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2U6CisgICAgICAgIHJl
dHVybiBNVExTYW1wbGVyQWRkcmVzc01vZGVDbGFtcFRvRWRnZTsKKyAgICBjYXNlIEdQVVNhbXBs
ZXJEZXNjcmlwdG9yOjpBZGRyZXNzTW9kZTo6UmVwZWF0OgorICAgICAgICByZXR1cm4gTVRMU2Ft
cGxlckFkZHJlc3NNb2RlUmVwZWF0OworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkFk
ZHJlc3NNb2RlOjpNaXJyb3JSZXBlYXQ6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQWRkcmVz
c01vZGVNaXJyb3JSZXBlYXQ7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6QWRkcmVz
c01vZGU6OkNsYW1wVG9Cb3JkZXJDb2xvcjoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRy
ZXNzTW9kZUNsYW1wVG9Cb3JkZXJDb2xvcjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKworc3RhdGljIE1UTFNhbXBsZXJCb3JkZXJDb2xvciBtdGxCb3JkZXJDb2xvckZv
ckJvcmRlckNvbG9yKEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpCb3JkZXJDb2xvciBjb2xvcikKK3sK
KyAgICBzd2l0Y2ggKGNvbG9yKSB7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6Qm9y
ZGVyQ29sb3I6OlRyYW5zcGFyZW50QmxhY2s6CisgICAgICAgIHJldHVybiBNVExTYW1wbGVyQm9y
ZGVyQ29sb3JUcmFuc3BhcmVudEJsYWNrOworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6
OkJvcmRlckNvbG9yOjpPcGFxdWVCbGFjazoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJCb3Jk
ZXJDb2xvck9wYXF1ZUJsYWNrOworICAgIGNhc2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkJvcmRl
ckNvbG9yOjpPcGFxdWVXaGl0ZToKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJCb3JkZXJDb2xv
ck9wYXF1ZVdoaXRlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitz
dGF0aWMgTVRMU2FtcGxlck1pbk1hZ0ZpbHRlciBtdGxNaW5NYWdGaWx0ZXJGb3JGaWx0ZXJNb2Rl
KEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpGaWx0ZXJNb2RlIG1vZGUpCit7CisgICAgc3dpdGNoICht
b2RlKSB7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZTo6TmVhcmVz
dDoKKyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJNaW5NYWdGaWx0ZXJOZWFyZXN0OworICAgIGNh
c2UgR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGU6OkxpbmVhcjoKKyAgICAgICAgcmV0
dXJuIE1UTFNhbXBsZXJNaW5NYWdGaWx0ZXJMaW5lYXI7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBNVExTYW1wbGVyTWlwRmlsdGVyIG10bE1pcEZpbHRl
ckZvckZpbHRlck1vZGUoR1BVU2FtcGxlckRlc2NyaXB0b3I6OkZpbHRlck1vZGUgbW9kZSkKK3sK
KyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQVVNhbXBsZXJEZXNjcmlwdG9yOjpGaWx0
ZXJNb2RlOjpOZWFyZXN0OgorICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pcEZpbHRlck5lYXJl
c3Q7CisgICAgY2FzZSBHUFVTYW1wbGVyRGVzY3JpcHRvcjo6RmlsdGVyTW9kZTo6TGluZWFyOgor
ICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pcEZpbHRlckxpbmVhcjsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIFJldGFpblB0cjxNVExTYW1wbGVyU3Rh
dGU+IHRyeUNyZWF0ZU10bFNhbXBsZXJTdGF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29u
c3QgR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgaWYgKCFkZXZpY2Uu
cGxhdGZvcm1EZXZpY2UoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVU2FtcGxlcjo6dHJ5
Q3JlYXRlKCk6IEludmFsaWQgR1BVRGV2aWNlISIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBSZXRhaW5QdHI8TVRMU2FtcGxlckRlc2NyaXB0b3I+IG10bERlc2NyaXB0
b3I7CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgbXRsRGVzY3JpcHRv
ciA9IGFkb3B0TlMoW01UTFNhbXBsZXJEZXNjcmlwdG9yIG5ld10pOworICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisKKyAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKKyAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVVNhbXBsZXI6OnRyeUNyZWF0ZSgpOiBFcnJvciBjcmVhdGluZyBNVExTYW1w
bGVyRGVzY3JpcHRvciEiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAg
UmV0YWluUHRyPE1UTFNhbXBsZXJTdGF0ZT4gc2FtcGxlcjsKKworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRSQWRkcmVzc01vZGU6bXRsQWRk
cmVzc01vZGVGb3JBZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVSldOworICAgIFtt
dGxEZXNjcmlwdG9yIHNldFNBZGRyZXNzTW9kZTptdGxBZGRyZXNzTW9kZUZvckFkZHJlc3NNb2Rl
KGRlc2NyaXB0b3IuYWRkcmVzc01vZGVWKV07CisgICAgW210bERlc2NyaXB0b3Igc2V0VEFkZHJl
c3NNb2RlOm10bEFkZHJlc3NNb2RlRm9yQWRkcmVzc01vZGUoZGVzY3JpcHRvci5hZGRyZXNzTW9k
ZVcpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRCb3JkZXJDb2xvcjptdGxCb3JkZXJDb2xvckZv
ckJvcmRlckNvbG9yKGRlc2NyaXB0b3IuYm9yZGVyQ29sb3IpXTsKKyAgICBbbXRsRGVzY3JpcHRv
ciBzZXRNaW5GaWx0ZXI6bXRsTWluTWFnRmlsdGVyRm9yRmlsdGVyTW9kZShkZXNjcmlwdG9yLm1p
bkZpbHRlcildOworICAgIFttdGxEZXNjcmlwdG9yIHNldE1hZ0ZpbHRlcjptdGxNaW5NYWdGaWx0
ZXJGb3JGaWx0ZXJNb2RlKGRlc2NyaXB0b3IubWFnRmlsdGVyKV07CisgICAgW210bERlc2NyaXB0
b3Igc2V0TWlwRmlsdGVyOm10bE1pcEZpbHRlckZvckZpbHRlck1vZGUoZGVzY3JpcHRvci5taXBt
YXBGaWx0ZXIpXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRMb2RNaW5DbGFtcDpkZXNjcmlwdG9y
LmxvZE1pbkNsYW1wXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRMb2RNYXhDbGFtcDpkZXNjcmlw
dG9yLmxvZE1heENsYW1wXTsKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRNYXhBbmlzb3Ryb3B5OmRl
c2NyaXB0b3IubWF4QW5pc290cm9weV07CisgICAgW210bERlc2NyaXB0b3Igc2V0Q29tcGFyZUZ1
bmN0aW9uOnN0YXRpY19jYXN0PE1UTENvbXBhcmVGdW5jdGlvbj4ocGxhdGZvcm1Db21wYXJlRnVu
Y3Rpb25Gb3JHUFVDb21wYXJlRnVuY3Rpb24oZGVzY3JpcHRvci5jb21wYXJlRnVuY3Rpb24pKV07
CisKKyAgICBbbXRsRGVzY3JpcHRvciBzZXRTdXBwb3J0QXJndW1lbnRCdWZmZXJzOllFU107CisK
KyAgICBzYW1wbGVyID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3U2FtcGxl
clN0YXRlV2l0aERlc2NyaXB0b3I6bXRsRGVzY3JpcHRvci5nZXQoKV0pOworICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgIExPRyhXZWJH
UFUsICJHUFVTYW1wbGVyOjp0cnlDcmVhdGUoKTogRXJyb3IgY3JlYXRpbmcgTVRMU2FtcGxlclN0
YXRlISIpOworCisgICAgcmV0dXJuIHNhbXBsZXI7Cit9CisKK1JlZlB0cjxHUFVTYW1wbGVyPiBH
UFVTYW1wbGVyOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVNh
bXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworICAgIGF1dG8gc2FtcGxlciA9IHRyeUNy
ZWF0ZU10bFNhbXBsZXJTdGF0ZShkZXZpY2UsIGRlc2NyaXB0b3IpOworICAgIGlmICghc2FtcGxl
cikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQ
VVNhbXBsZXIoV1RGTW92ZShzYW1wbGVyKSkpOworfQorCitHUFVTYW1wbGVyOjpHUFVTYW1wbGVy
KFJldGFpblB0cjxNVExTYW1wbGVyU3RhdGU+JiYgc2FtcGxlcikKKyAgICA6IG1fcGxhdGZvcm1T
YW1wbGVyKFdURk1vdmUoc2FtcGxlcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVXRpbHNNZXRhbC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCmluZGV4IGU0
YjM3MDIxYTM5NDk5YmVhYzgzMWM4MGQ0M2EyMzVjMjk1NjU0MTMuLmQyNzJiNGRiZmUwZTQzYTY0
M2M5OTQ5MDM5MTI2YTRlZTkzYzlhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVVdGlsc01ldGFsLm1tCkBAIC00NCw2
ICs0NCwzMiBAQCBQbGF0Zm9ybVRleHR1cmVGb3JtYXQgcGxhdGZvcm1UZXh0dXJlRm9ybWF0Rm9y
R1BVVGV4dHVyZUZvcm1hdChHUFVUZXh0dXJlRm9ybWF0CiAgICAgY2FzZSBHUFVUZXh0dXJlRm9y
bWF0OjpEMzJGbG9hdFM4VWludDoKICAgICAgICAgcmV0dXJuIE1UTFBpeGVsRm9ybWF0RGVwdGgz
MkZsb2F0X1N0ZW5jaWw4OwogICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
CitQbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbiBwbGF0Zm9ybUNvbXBhcmVGdW5jdGlvbkZvckdQVUNv
bXBhcmVGdW5jdGlvbihHUFVDb21wYXJlRnVuY3Rpb24gZnVuYykKK3sKKyAgICBzd2l0Y2ggKGZ1
bmMpIHsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6TmV2ZXI6CisgICAgICAgIHJldHVy
biBNVExDb21wYXJlRnVuY3Rpb25OZXZlcjsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6
TGVzczoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkxlc3M7CisgICAgY2FzZSBH
UFVDb21wYXJlRnVuY3Rpb246OkVxdWFsOgorICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0
aW9uRXF1YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Okxlc3NFcXVhbDoKKyAgICAg
ICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkxlc3NFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBh
cmVGdW5jdGlvbjo6R3JlYXRlcjoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdy
ZWF0ZXI7CisgICAgY2FzZSBHUFVDb21wYXJlRnVuY3Rpb246Ok5vdEVxdWFsOgorICAgICAgICBy
ZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uTm90RXF1YWw7CisgICAgY2FzZSBHUFVDb21wYXJlRnVu
Y3Rpb246OkdyZWF0ZXJFcXVhbDoKKyAgICAgICAgcmV0dXJuIE1UTENvbXBhcmVGdW5jdGlvbkdy
ZWF0ZXJFcXVhbDsKKyAgICBjYXNlIEdQVUNvbXBhcmVGdW5jdGlvbjo6QWx3YXlzOgorICAgICAg
ICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uQWx3YXlzOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzdjYTk1
YTA2NTY2NmJkMDhmNGQ2NTkwMzAzZmJjYTY1YmZkOGM1Mi4uZTE0ODU0MWE0N2Q2NjhmMWYyY2Q2
MTc4MjRjMzUyNzFlNjEyMWQzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTA3ICBK
dXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQ
VVNhbXBsZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg2ODYwMTE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFVwZGF0ZSB0
ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwIHRvIHVzZSBhIEdQVVNhbXBsZXIgcHJvdmlkZWQgdGhyb3Vn
aCBiaW5kaW5ncyBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9uZSBpbiBzaGFkZXIuCisKKyAgICAgICAg
KiB3ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sOgorCiAyMDE5LTAzLTA2ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBHUFVdIEdQVVRl
eHR1cmUgYW5kIEdQVVRleHR1cmVWaWV3IHVwZGF0ZXMsIGFuZCByZWxhdGVkIEdQVUJpbmRHcm91
cCB1cGRhdGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmds
ZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3RleHR1cmUtdHJpYW5nbGUtc3RyaXAu
aHRtbAppbmRleCBmMzIyYTU1ZjNiOGM4NTg3ZjQxODk3MTE1YzMzOTdmYWY1ZmZmNzBiLi4xNGZm
YjhmZThiNjBiNGU1NmExMmY5ZGM3NTliNWJjYTEwNDIyZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJncHUvdGV4dHVyZS10cmlhbmdsZS1zdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdwdS90ZXh0dXJlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTEwLDYgKzEwLDE0IEBACiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAK
K2NvbnN0IHBvc2l0aW9uQnVmZmVySW5kZXggPSAwOworY29uc3QgdGV4Q29vcmRzQnVmZmVySW5k
ZXggPSAxOworY29uc3QgcG9zaXRpb25BdHRyaWJ1dGVOdW0gPSAwOworY29uc3QgdGV4Q29vcmRz
QXR0cmlidXRlTnVtID0gMTsKK2NvbnN0IGJpbmRHcm91cEluZGV4ID0gMDsKK2NvbnN0IHRleHR1
cmVCaW5kaW5nTnVtID0gMDsKK2NvbnN0IHNhbXBsZXJCaW5kaW5nTnVtID0gMTsKKwogY29uc3Qg
c2hhZGVyQ29kZSA9IGAKICNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+CiAgICAgCkBAIC0xNyw4ICsy
NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBtZXRhbDsKIAogc3RydWN0IFZlcnRleEluCiB7Ci0gICAg
ZmxvYXQ0IHBvc2l0aW9uIFtbYXR0cmlidXRlKDApXV07Ci0gICAgZmxvYXQyIHRleENvb3JkcyBb
W2F0dHJpYnV0ZSgxKV1dOworICAgIGZsb2F0NCBwb3NpdGlvbiBbW2F0dHJpYnV0ZSgke3Bvc2l0
aW9uQXR0cmlidXRlTnVtfSldXTsKKyAgICBmbG9hdDIgdGV4Q29vcmRzIFtbYXR0cmlidXRlKCR7
dGV4Q29vcmRzQXR0cmlidXRlTnVtfSldXTsKIH07CiAKIHN0cnVjdCBWZXJ0ZXhPdXQKQEAgLTM1
LDE1ICs0MywxNSBAQCB2ZXJ0ZXggVmVydGV4T3V0IHZlcnRleF9tYWluKFZlcnRleEluIHZlcnRl
eEluIFtbc3RhZ2VfaW5dXSkKICAgICByZXR1cm4gdk91dDsKIH0KIAotc3RydWN0IFRleHR1cmUK
K3N0cnVjdCBUZXh0dXJlU2FtcGxlcgogewotICAgIHRleHR1cmUyZDxmbG9hdD4gaW1hZ2UgW1tp
ZCgwKV1dOworICAgIHRleHR1cmUyZDxmbG9hdD4gdCBbW2lkKCR7dGV4dHVyZUJpbmRpbmdOdW19
KV1dOworICAgIHNhbXBsZXIgcyBbW2lkKCR7c2FtcGxlckJpbmRpbmdOdW19KV1dOwogfTsKIAot
ZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4T3V0IHYgW1tzdGFnZV9pbl1dLCBj
b25zdCBkZXZpY2UgVGV4dHVyZSYgdCBbW2J1ZmZlcigwKV1dKQorZnJhZ21lbnQgZmxvYXQ0IGZy
YWdtZW50X21haW4oVmVydGV4T3V0IHYgW1tzdGFnZV9pbl1dLCBjb25zdCBkZXZpY2UgVGV4dHVy
ZVNhbXBsZXImIGFyZ3MgW1tidWZmZXIoJHtiaW5kR3JvdXBJbmRleH0pXV0pCiB7Ci0gICAgY29u
c3RleHByIHNhbXBsZXIgcyhjb29yZDo6bm9ybWFsaXplZCwgYWRkcmVzczo6Y2xhbXBfdG9femVy
bywgZmlsdGVyOjpuZWFyZXN0KTsKLSAgICByZXR1cm4gdC5pbWFnZS5zYW1wbGUocywgdi50ZXhD
b29yZHMpOworICAgIHJldHVybiBhcmdzLnQuc2FtcGxlKGFyZ3Mucywgdi50ZXhDb29yZHMpOwog
fQogYAogCkBAIC01MSwyMiArNTksMjIgQEAgZnVuY3Rpb24gY3JlYXRlSW5wdXRTdGF0ZURlc2Ny
aXB0b3IoKSB7CiAgICAgcmV0dXJuIHsKICAgICAgICAgaW5kZXhGb3JtYXQ6IFdlYkdQVUluZGV4
Rm9ybWF0LlVJTlQzMiwKICAgICAgICAgYXR0cmlidXRlczogW3sKLSAgICAgICAgICAgIHNoYWRl
ckxvY2F0aW9uOiAwLAotICAgICAgICAgICAgaW5wdXRTbG90OiAwLAorICAgICAgICAgICAgc2hh
ZGVyTG9jYXRpb246IHBvc2l0aW9uQXR0cmlidXRlTnVtLAorICAgICAgICAgICAgaW5wdXRTbG90
OiBwb3NpdGlvbkJ1ZmZlckluZGV4LAogICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAg
ICAgZm9ybWF0OiBXZWJHUFVWZXJ0ZXhGb3JtYXQuRkxPQVRfUjMyX0czMl9CMzJfQTMyCiAgICAg
ICAgIH0sIHsKLSAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiAxLAotICAgICAgICAgICAgaW5w
dXRTbG90OiAxLAorICAgICAgICAgICAgc2hhZGVyTG9jYXRpb246IHRleENvb3Jkc0F0dHJpYnV0
ZU51bSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogdGV4Q29vcmRzQnVmZmVySW5kZXgsCiAgICAg
ICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICBmb3JtYXQ6IFdlYkdQVVZlcnRleEZvcm1h
dC5GTE9BVF9SMzJfRzMyCiAgICAgICAgIH1dLAogICAgICAgICBpbnB1dHM6IFt7Ci0gICAgICAg
ICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBpbnB1dFNsb3Q6IHBvc2l0aW9uQnVmZmVy
SW5kZXgsCiAgICAgICAgICAgICBzdHJpZGU6IDQgKiA0LAogICAgICAgICAgICAgc3RlcE1vZGU6
IFdlYkdQVUlucHV0U3RlcE1vZGUuVkVSVEVYCiAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGlu
cHV0U2xvdDogMSwKKyAgICAgICAgICAgIGlucHV0U2xvdDogdGV4Q29vcmRzQnVmZmVySW5kZXgs
CiAgICAgICAgICAgICBzdHJpZGU6IDQgKiAyLAogICAgICAgICAgICAgc3RlcE1vZGU6IFdlYkdQ
VUlucHV0U3RlcE1vZGUuVkVSVEVYCiAgICAgICAgIH1dCkBAIC04MCwyNSArODgsMjUgQEAgYXN5
bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wg
c2hhZGVycy4KICAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9k
dWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKIAotICAgIGNvbnN0IHZlcnRleEFycmF5ID0gbmV3
IEZsb2F0MzJBcnJheShbCisgICAgY29uc3QgcG9zaXRpb25BcnJheSA9IG5ldyBGbG9hdDMyQXJy
YXkoWwogICAgICAgICAvLyBmbG9hdDQgeHl6dwogICAgICAgICAtMSwgMSwgMCwgMSwKICAgICAg
ICAgLTEsIC0xLCAwLCAxLAogICAgICAgICAxLCAxLCAwLCAxLCAKICAgICAgICAgMSwgLTEsIDAs
IDEKICAgICBdKTsKLSAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVy
KHsgc2l6ZTogdmVydGV4QXJyYXkuYnl0ZUxlbmd0aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZF
UlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9KTsKLSAgICB2ZXJ0ZXhCdWZmZXIu
c2V0U3ViRGF0YSgwLCB2ZXJ0ZXhBcnJheS5idWZmZXIpOworICAgIGNvbnN0IHBvc2l0aW9uQnVm
ZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHBvc2l0aW9uQXJyYXkuYnl0ZUxlbmd0
aCwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVS
X0RTVCB9KTsKKyAgICBwb3NpdGlvbkJ1ZmZlci5zZXRTdWJEYXRhKDAsIHBvc2l0aW9uQXJyYXku
YnVmZmVyKTsKIAotICAgIGNvbnN0IHRleHR1cmVDb29yZEFycmF5ID0gbmV3IEZsb2F0MzJBcnJh
eShbCisgICAgY29uc3QgdGV4Q29vcmRzQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsKICAgICAg
ICAgLy8gZmxvYXQyIHRleENvb3JkcwogICAgICAgICAwLCAwLAogICAgICAgICAwLCAxLAogICAg
ICAgICAxLCAwLAogICAgICAgICAxLCAxCiAgICAgXSk7Ci0gICAgY29uc3QgdGV4dHVyZUNvb3Jk
QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IHRleHR1cmVDb29yZEFycmF5LmJ5
dGVMZW5ndGgsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2FnZS5U
UkFOU0ZFUl9EU1QgfSk7Ci0gICAgdGV4dHVyZUNvb3JkQnVmZmVyLnNldFN1YkRhdGEoMCwgdGV4
dHVyZUNvb3JkQXJyYXkuYnVmZmVyKTsKKyAgICBjb25zdCB0ZXh0dXJlQ29vcmRCdWZmZXIgPSBk
ZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogdGV4Q29vcmRzQXJyYXkuYnl0ZUxlbmd0aCwgdXNh
Z2U6IEdQVUJ1ZmZlclVzYWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX0RTVCB9
KTsKKyAgICB0ZXh0dXJlQ29vcmRCdWZmZXIuc2V0U3ViRGF0YSgwLCB0ZXhDb29yZHNBcnJheS5i
dWZmZXIpOwogCiAgICAgY29uc3QgaW5wdXRTdGF0ZURlc2NyaXB0b3IgPSBjcmVhdGVJbnB1dFN0
YXRlRGVzY3JpcHRvcigpOwogCkBAIC0xNDMsMTcgKzE1MSwzNiBAQCBhc3luYyBmdW5jdGlvbiB0
ZXN0KCkgewogICAgIH07CiAgICAgY29uc3QgdGV4dHVyZSA9IGRldmljZS5jcmVhdGVUZXh0dXJl
KHRleHR1cmVEZXNjcmlwdG9yKTsKIAotICAgIC8vIEJpbmQgdGV4dHVyZSB0byBwaXBlbGluZQot
ICAgIGNvbnN0IHRleHR1cmVCaW5kaW5nTnVtID0gMDsKKyAgICAvLyBCaW5kIHRleHR1cmUgYW5k
IGEgc2FtcGxlciB0byBwaXBlbGluZQorICAgIGNvbnN0IHRleHR1cmVMYXlvdXRCaW5kaW5nID0g
eyAKKyAgICAgICAgYmluZGluZzogdGV4dHVyZUJpbmRpbmdOdW0sIAorICAgICAgICB2aXNpYmls
aXR5OiBHUFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwgCisgICAgICAgIHR5cGU6ICJzYW1wbGVk
LXRleHR1cmUiIAorICAgIH07CisgICAgY29uc3Qgc2FtcGxlckxheW91dEJpbmRpbmcgPSB7Cisg
ICAgICAgIGJpbmRpbmc6IHNhbXBsZXJCaW5kaW5nTnVtLAorICAgICAgICB2aXNpYmlsaXR5OiBH
UFVTaGFkZXJTdGFnZUJpdC5GUkFHTUVOVCwKKyAgICAgICAgdHlwZTogInNhbXBsZXIiCisgICAg
fTsKKwogICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7Ci0gICAgICAgIGJp
bmRpbmdzOiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgdmlzaWJpbGl0eTogR1BVU2hh
ZGVyU3RhZ2VCaXQuRlJBR01FTlQsIHR5cGU6ICJzYW1wbGVkLXRleHR1cmUiIH1dCisgICAgICAg
IGJpbmRpbmdzOiBbdGV4dHVyZUxheW91dEJpbmRpbmcsIHNhbXBsZXJMYXlvdXRCaW5kaW5nXQog
ICAgIH07CiAgICAgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91
dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKICAgICBjb25zdCBwaXBlbGluZUxheW91dCA9
IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dCh7IGJpbmRHcm91cExheW91dHM6IFtiaW5kR3Jv
dXBMYXlvdXRdIH0pOwogCisgICAgY29uc3QgdGV4dHVyZUJpbmRpbmcgPSB7IAorICAgICAgICBi
aW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgCisgICAgICAgIHJlc291cmNlOiB0ZXh0dXJlLmNy
ZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpIAorICAgIH07CisgICAgY29uc3Qgc2FtcGxlckJpbmRp
bmcgPSB7CisgICAgICAgIGJpbmRpbmc6IHNhbXBsZXJCaW5kaW5nTnVtLAorICAgICAgICByZXNv
dXJjZTogZGV2aWNlLmNyZWF0ZVNhbXBsZXIoeyBtaW5GaWx0ZXI6ICJuZWFyZXN0IiwgbWFnRmls
dGVyOiAibmVhcmVzdCIgfSkKKyAgICB9OworCiAgICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRv
ciA9IHsKICAgICAgICAgbGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsCi0gICAgICAgIGJpbmRpbmdz
OiBbeyBiaW5kaW5nOiB0ZXh0dXJlQmluZGluZ051bSwgcmVzb3VyY2U6IHRleHR1cmUuY3JlYXRl
RGVmYXVsdFRleHR1cmVWaWV3KCkgfV0KKyAgICAgICAgYmluZGluZ3M6IFt0ZXh0dXJlQmluZGlu
Zywgc2FtcGxlckJpbmRpbmddCiAgICAgfTsKICAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2Uu
Y3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwogCkBAIC0xNzYsMTQgKzIwMywx
NCBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbW1hbmRCdWZmZXIuY29weUJ1ZmZl
clRvVGV4dHVyZShidWZmZXJDb3B5VmlldywgdGV4dHVyZUNvcHlWaWV3LCB0ZXh0dXJlU2l6ZSk7
CiAgICAgY29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBj
b21tYW5kQnVmZmVyKTsKICAgICBwYXNzRW5jb2Rlci5zZXRQaXBlbGluZShwaXBlbGluZSk7Ci0g
ICAgcGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7Ci0gICAgcGFzc0VuY29k
ZXIuc2V0VmVydGV4QnVmZmVycygwLCBbdmVydGV4QnVmZmVyLCB0ZXh0dXJlQ29vcmRCdWZmZXJd
LCBbMCwgMF0pOworICAgIHBhc3NFbmNvZGVyLnNldEJpbmRHcm91cChiaW5kR3JvdXBJbmRleCwg
YmluZEdyb3VwKTsKKyAgICBwYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKHBvc2l0aW9uQnVm
ZmVySW5kZXgsIFtwb3NpdGlvbkJ1ZmZlciwgdGV4dHVyZUNvb3JkQnVmZmVyXSwgWzAsIDBdKTsK
ICAgICBwYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOwogICAgIHBhc3NFbmNvZGVyLmVuZFBh
c3MoKTsKIAogICAgIGNvbnN0IHF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CiAgICAgcXVldWUu
c3VibWl0KFtjb21tYW5kQnVmZmVyXSk7Ci0gICAgdmVydGV4QnVmZmVyLmRlc3Ryb3koKTsKKyAg
ICBwb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCk7CiAgICAgdGV4dHVyZUNvb3JkQnVmZmVyLmRlc3Ry
b3koKTsKICAgICB0ZXh0dXJlLmRlc3Ryb3koKTsKICAgICBjb250ZXh0LnByZXNlbnQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>