<?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>216217</bug_id>
          
          <creation_ts>2020-09-05 13:58:17 -0700</creation_ts>
          <short_desc>[WebIDL] Add support for interface mixins</short_desc>
          <delta_ts>2020-09-05 19:50:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686115</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-05 13:58:17 -0700</bug_when>
    <thetext>[WebIDL] Add support for interface mixins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686116</commentid>
    <comment_count>1</comment_count>
      <attachid>408095</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-05 13:59:28 -0700</bug_when>
    <thetext>Created attachment 408095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686120</commentid>
    <comment_count>2</comment_count>
      <attachid>408097</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-05 14:33:57 -0700</bug_when>
    <thetext>Created attachment 408097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686142</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-05 17:06:23 -0700</bug_when>
    <thetext>Not sure why svn-apply is only failing on windows, but I think this is none-the-less ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686153</commentid>
    <comment_count>4</comment_count>
      <attachid>408110</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-05 17:47:53 -0700</bug_when>
    <thetext>Created attachment 408110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686159</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-05 19:49:27 -0700</bug_when>
    <thetext>Committed r266678: &lt;https://trac.webkit.org/changeset/266678&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408110.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686160</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-05 19:50:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68410831&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408095</attachid>
            <date>2020-09-05 13:59:28 -0700</date>
            <delta_ts>2020-09-05 14:33:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216217-20200905135927.patch</filename>
            <type>text/plain</type>
            <size>82840</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExNCBAQAorMjAyMC0wOS0wNSAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQg
Zm9yIGludGVyZmFjZSBtaXhpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNjIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Um9sZS5pZGw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BcmlhQXR0cmlidXRlcy5pZGw6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGFibGUuaWRs
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAg
KElzVmFsaWRTdXBwbGVtZW50YWxJbnRlcmZhY2UpOgorICAgICAgICAoSXNWYWxpZFN1cHBsZW1l
bnRhbERpY3Rpb25hcnkpOgorICAgICAgICAoUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2ll
cyk6CisgICAgICAgIChHZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChwYXJzZUNh
bGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2Up
OgorICAgICAgICAocGFyc2VDYWxsYmFja0ludGVyZmFjZU1lbWJlcnMpOgorICAgICAgICAocGFy
c2VDYWxsYmFja0ludGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZU1peGluKToKKyAgICAg
ICAgKHBhcnNlTWl4aW5NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlTWl4aW5NZW1iZXIpOgorICAg
ICAgICAocGFyc2VOYW1lc3BhY2UpOgorICAgICAgICAocGFyc2VQYXJ0aWFsSW50ZXJmYWNlTWVt
YmVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Gb3JTdHJpbmdpZmllck9y
U3RhdGljKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbDoK
KyAgICAgICAgKGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSW50
ZXJmYWNlRnJvbUlETCk6CisgICAgICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNG
cm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSW50ZXJmYWNlT3JFeGNlcHRpb25Gcm9tSURMKTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJ
bmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0ckdldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
SW5jbHVkZXNTdGF0aWNBdHRyR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0
aWNBdHRyU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDRC
b2R5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0SW5jbHVkZXMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T3BlcmF0aW9uQmFzZS5pZGw6CisgICAgICAgICogY3NzL0VsZW1lbnRDU1NJ
bmxpbmVTdHlsZS5pZGw6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRsOgorICAgICAgICAq
IGRvbS9DaGlsZE5vZGUuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6
CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRv
bS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsOiBSZW1vdmVkLgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50QW5kRWxlbWVudEV2ZW50
SGFuZGxlcnMuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGw6Cisg
ICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaWRsOgorICAgICAgICAqIGRvbS9HbG9iYWxFdmVu
dEhhbmRsZXJzLmlkbDoKKyAgICAgICAgKiBkb20vTmF2aWdhdG9yTWF4VG91Y2hQb2ludHMuaWRs
OgorICAgICAgICAqIGRvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOgorICAgICAgICAq
IGRvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGw6CisgICAgICAgICogZG9tL1BhcmVudE5vZGUu
aWRsOgorICAgICAgICAqIGRvbS9TbG90YWJsZS5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSHlw
ZXJsaW5rRWxlbWVudFV0aWxzLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPckZvcmVpZ25FbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGluZy5pZGw6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzRHJhd0ltYWdlLmlkbDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFz
RmlsbFN0cm9rZVN0eWxlcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzRmlsdGVy
cy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZh
c1BhdGguaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdGhEcmF3aW5nU3R5bGVz
LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNTaGFkb3dTdHlsZXMuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1N0YXRlLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNUZXh0LmlkbDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNVc2VySW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbDoKKyAgICAgICAgKiBwYWdlL0dsb2JhbENyeXB0by5p
ZGw6CisgICAgICAgICogcGFnZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGw6CisgICAgICAgICogcGFn
ZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRsOgorICAgICAg
ICAqIHBhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9y
T25MaW5lLmlkbDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvclBsdWdpbnMuaWRsOgorICAgICAg
ICAqIHBhZ2UvTmF2aWdhdG9yU2VydmljZVdvcmtlci5pZGw6CisgICAgICAgICogcGFnZS9OYXZp
Z2F0b3JTaGFyZS5pZGw6CisgICAgICAgICogcGFnZS9XaW5kb3dFdmVudEhhbmRsZXJzLmlkbDoK
KyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogc3ZnL1NWR1pvb21B
bmRQYW4uaWRsOgorICAgICAgICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsOgorICAgICAg
ICAqIHhtbC9YUGF0aEV2YWx1YXRvci5pZGw6CisgICAgICAgICogeG1sL1hQYXRoTlNSZXNvbHZl
ci5pZGw6CisKIDIwMjAtMDktMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBYTUwgZG9jdW1lbnRzIGluIGlmcmFtZXMgc2hvdWxkIG5vdCBp
bmhlcml0IGVuY29kaW5nIGZyb20gcGFyZW50IGZyYW1lCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTc2MSw3ICs3NjEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90
aW9uRXZlbnQuaWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCi0gICAgZG9t
L0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKICAgICBkb20vRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAg
ICAgZG9tL0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkocmV2aXNpb24g
MjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QJKHdvcmtpbmcgY29weSkKQEAgLTUyOCw4ICs1MjgsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RldmljZU1vdGlvbkV2ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0Rpc3RhbmNlTW9kZWxUeXBlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC03MTIsNyArNzEyLDYgQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
ZG9tL0RvY3VtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRG9jdW1lbnRBbmRFbGVtZW50
RXZlbnRIYW5kbGVycy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI2NjY3MSkK
KysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yODM0LDcg
KzI4MzQsNiBAQCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuY3BwCiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmNwcAotSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0Rldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuY3BwCiBKU0Rpc3RhbmNlTW9kZWxU
eXBlLmNwcAogSlNEb2N1bWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNyBA
QAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9RmV0Y2hBUEksCiAgICAgRXhwb3NlZD0oV2luZG93LFdv
cmtlciksCiAgICAgSW50ZXJmYWNlTmFtZT1Cb2R5LAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Ci1dIGludGVyZmFjZSBGZXRjaEJvZHkgeworXSBpbnRlcmZhY2UgbWl4aW4gRmV0Y2hCb2R5
IHsKICAgICBbSW1wbGVtZW50ZWRBcz1yZWFkYWJsZVN0cmVhbSwgQ2FsbFdpdGg9R2xvYmFsT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0/IGJvZHk7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gYm9keVVzZWQ7CiAgICAgW05ld09iamVjdF0gUHJvbWlzZTxB
cnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvVmlkZW9QbGF5YmFja1F1YWxpdHkuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVmlkZW9QbGF5YmFja1F1YWxpdHkuaWRsCShy
ZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Zp
ZGVvUGxheWJhY2tRdWFsaXR5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9tZWRpYS1wbGF5YmFjay1xdWFsaXR5LyNpZGwtZGVmLXZpZGVvcGxheWJhY2tx
dWFsaXR5CisvLyBGSVhNRTogVGhpcyBpcyBub3Qgc3BlY2lmaWVkIGFzICJMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCIuIEl0IHNob3VsZCBoYXZlIGFuIGludGVyZmFjZSBvYmplY3QuCiBbCiAgICAg
Q29uZGl0aW9uYWw9VklERU8sCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwJ
KHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDkgQEAKICAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KLSAKKworLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby9zcGVlY2gtYXBpLyN0dHMtc2VjdGlvbgorLy8gRklYTUU6IFRoaXMgaXMgbm90IHNwZWNp
ZmllZCBhcyAiTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiLiBJdCBzaG91bGQgaGF2ZSBhbiBpbnRl
cmZhY2Ugb2JqZWN0LgogWwogICAgIENvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMsCiAgICAg
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsCShyZXZpc2lvbiAyNjY2
NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2lj
ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDkgQEAKICAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KLSAKKworLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zcGVl
Y2gtYXBpLyNzcGVlY2hzeW50aGVzaXN2b2ljZQorLy8gRklYTUU6IFRoaXMgaXMgbm90IHNwZWNp
ZmllZCBhcyAiTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiLiBJdCBzaG91bGQgaGF2ZSBhbiBpbnRl
cmZhY2Ugb2JqZWN0LgogWwogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRp
dGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCShyZXZpc2lvbiAyNjY2NzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAqLwogCi0KKy8vCiBbCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Qs
CiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNzkyMSw3ICs3OTIxLDYgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8q
IFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnQ29s
bGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIwRUFGMEVE
MDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NUVE
RDlEMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUVERDlGMjIyRjRFQzMwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RUREQTAyMjJGNEVD
NDAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjYxNzJFOTIzQTJB
QkZBMDAzQUIzMDkgLyogUG9zdE1lc3NhZ2VPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBQb3N0TWVzc2FnZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTc0NjYsMTEgKzE3NDY1LDExIEBACiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8q
IElubGluZUxpbmVCb3guaCAqLywKIAkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5s
aW5lTGluZUJyZWFrZXIuY3BwICovLAogCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJ
bmxpbmVMaW5lQnJlYWtlci5oICovLAorCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJ
bmxpbmVMaW5lQnVpbGRlci5jcHAgKi8sCisJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8q
IElubGluZUxpbmVCdWlsZGVyLmggKi8sCiAJCQkJNkYzNjBFNEUyMzk5OTQyMDAwMTUxMkE3IC8q
IElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8sCiAJCQkJNkYxQ0MxREMyMjVGOEI0MTAwNzIw
QUQyIC8qIElubGluZVRleHRJdGVtLmNwcCAqLywKIAkJCQk2RjFDQzFERDIyNUY4QjQyMDA3MjBB
RDIgLyogSW5saW5lVGV4dEl0ZW0uaCAqLywKLQkJCQk2RjI1QjIwMDIyMEE4NUFCMDAwMDAxMUIg
LyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAotCQkJCTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZF
MiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbmxpbmVmb3Jt
YXR0aW5nOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI5MTU0LDcgKzI5MTUzLDYg
QEAKIAkJCQk1OUE4NUVBQTExOUQ3QjZFMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5pZGwgKi8sCiAJCQkJNDYxREE1MkMyMjJGNDg2RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8sCiAJCQkJNDYxREE1MkEyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovLAotCQkJCTQ2NUVERDlEMjIyRjRF
QzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsICovLAogCQkJ
CTQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlLmggKi8sCiAJCQkJNDY1RUREQTAyMjJGNEVDNDAwQjQ2RTE2IC8qIERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsICovLAogCQkJCUE4MTg1RjM0
MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5jcHAgKi8sCkBAIC0zMTY1MSw2ICszMTY0OSw3
IEBACiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGlu
ZUJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAv
KiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ1Nzc1Q0UyNDE0MzdE
NTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjM2MEU1
MDIzOTk5NDIxMDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRBMiAvKiBJbmxpbmVTdHlsZVNoZWV0T3du
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzI2NjIsNyArMzI2NjEsNiBAQAogCQkJCTg0NzMwRDkx
MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
Mjc5NjUwRDAwQkYyMjAwNzFCNzgyIC8qIExpbmVhckdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUIzMUM5MUUxMEFFMUI4RTAwMEM3QjkyIC8qIExpbmVDbGFtcFZhbHVl
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5l
TGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGRUZBQjJBMTgzODBEQTAwMDUxNDUz
NCAvKiBMaW5lTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODRBMzNFMjMwNTUz
MjUwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NDM0M0QyNTIzOTI3NzkwMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbENvbXBsZXhQYXRo
LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjMsOSArMjMsOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vYW9tL3NwZWMvYXJpYS1yZWZsZWN0aW9u
Lmh0bWwjQWNjZXNzaWJpbGl0eVJvbGUKIFsKLSAgICBFbmFibGVkQXRSdW50aW1lPUFyaWFSZWZs
ZWN0aW9uLAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgQWNjZXNz
aWJpbGl0eVJvbGUgeworICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXJpYVJlZmxlY3Rpb24KK10gaW50
ZXJmYWNlIG1peGluIEFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZz8gcm9sZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FyaWFBdHRyaWJ1dGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vYW9tL3NwZWMvYXJpYS1yZWZsZWN0aW9uLmh0
bWwjQXJpYUF0dHJpYnV0ZXMKIFsKICAgICBFbmFibGVkQXRSdW50aW1lPUFyaWFSZWZsZWN0aW9u
LAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgQXJpYUF0dHJpYnV0
ZXMgeworXSBpbnRlcmZhY2UgbWl4aW4gQXJpYUF0dHJpYnV0ZXMgewogICAgIFtSZWZsZWN0PWFy
aWFfYXRvbWljXSAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZz8gYXJpYUF0b21pYzsKICAg
ICBbUmVmbGVjdD1hcmlhX2F1dG9jb21wbGV0ZV0gICAgIGF0dHJpYnV0ZSBET01TdHJpbmc/IGFy
aWFBdXRvQ29tcGxldGU7CiAgICAgW1JlZmxlY3Q9YXJpYV9idXN5XSAgICAgICAgICAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nPyBhcmlhQnVzeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRhYmxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
QW5pbWF0YWJsZS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRhYmxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy93ZWItYW5p
bWF0aW9ucy0xLyN0aGUtYW5pbWF0YWJsZS1pbnRlcmZhY2UtbWl4aW4KIFsKLSAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkFuaW1hdGlvbnMsCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QKLV0g
aW50ZXJmYWNlIEFuaW1hdGFibGUgeworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQW5pbWF0aW9u
cworXSBpbnRlcmZhY2UgbWl4aW4gQW5pbWF0YWJsZSB7CiAgICAgW01heVRocm93RXhjZXB0aW9u
LCBDYWxsV2l0aD1HbG9iYWxPYmplY3RdIFdlYkFuaW1hdGlvbiBhbmltYXRlKG9iamVjdD8ga2V5
ZnJhbWVzLCBvcHRpb25hbCAodW5yZXN0cmljdGVkIGRvdWJsZSBvciBLZXlmcmFtZUFuaW1hdGlv
bk9wdGlvbnMpIG9wdGlvbnMpOwogICAgIHNlcXVlbmNlPFdlYkFuaW1hdGlvbj4gZ2V0QW5pbWF0
aW9ucyhvcHRpb25hbCBHZXRBbmltYXRpb25zT3B0aW9ucyBvcHRpb25zKTsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShy
ZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTI4MSw2ICsyODEsMjQgQEAgc3ViIE1lcmdl
RXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbVN1cHBsZW1lbgogICAgIH0KIH0KIAorc3ViIElzVmFsaWRT
dXBwbGVtZW50YWxJbnRlcmZhY2UKK3sKKyAgICBteSAoJG9iamVjdCwgJHRhcmdldERvY3VtZW50
LCAkc3VwcGxlbWVudGFsSW50ZXJmYWNlLCAkdGFyZ2V0SW50ZXJmYWNlTmFtZSkgPSBAXzsKKwor
ICAgIHJldHVybiAxIGlmICRzdXBwbGVtZW50YWxJbnRlcmZhY2UtPmlzUGFydGlhbCAmJiAkc3Vw
cGxlbWVudGFsSW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICR0YXJnZXRJbnRlcmZhY2VOYW1lOwor
ICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGFsc28gY2hlY2sgdGhhdCBhbiBhcHByb3ByaWF0ZSAn
aW5jbHVkZXMnIHdhcyBzcGVjaWZpZWQuCisgICAgcmV0dXJuIDEgaWYgJHN1cHBsZW1lbnRhbElu
dGVyZmFjZS0+aXNNaXhpbjsKKyAgICByZXR1cm4gMDsKK30KKworc3ViIElzVmFsaWRTdXBwbGVt
ZW50YWxEaWN0aW9uYXJ5Cit7CisgICAgbXkgKCRvYmplY3QsICR0YXJnZXREb2N1bWVudCwgJHN1
cHBsZW1lbnRhbERpY3Rpb25hcnksICR0YXJnZXRJbnRlcmZhY2VOYW1lKSA9IEBfOworCisgICAg
cmV0dXJuIDEgaWYgJHN1cHBsZW1lbnRhbERpY3Rpb25hcnktPmlzUGFydGlhbCAmJiAkc3VwcGxl
bWVudGFsRGljdGlvbmFyeS0+dHlwZS0+bmFtZSBlcSAkdGFyZ2V0SW50ZXJmYWNlTmFtZTsKKyAg
ICByZXR1cm4gMDsKK30KKwogc3ViIFByb2Nlc3NTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMKIHsK
ICAgICBteSAoJG9iamVjdCwgJHRhcmdldERvY3VtZW50KSA9IEBfOwpAQCAtMjkxLDYgKzMwOSw5
IEBAIHN1YiBQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICAjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyByZWN1cnNp
dmUgc3VwcGxlbWVudGFsIGRlcGVuZGVuY2llcworICAgICMgdG8gcHJvdmlkZSBzdXBwb3J0IGZv
ciBwYXJ0aWFsIGludGVyZmFjZSBtaXhpbnMuCisKICAgICBmb3JlYWNoIG15ICRpZGxGaWxlIChA
eyRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMtPnskdGFyZ2V0RmlsZU5hbWV9fSkgewogICAgICAg
ICBuZXh0IGlmIGZpbGVwYXJzZSgkaWRsRmlsZSkgZXEgJHRhcmdldEZpbGVOYW1lOwogCkBAIC0y
OTksNyArMzIwLDcgQEAgc3ViIFByb2Nlc3NTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMKICAgICAg
ICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGlkbEZpbGUsICRkZWZpbmVzLCAkcHJl
cHJvY2Vzc29yLCAkaWRsQXR0cmlidXRlcyk7CiAKICAgICAgICAgZm9yZWFjaCBteSAkaW50ZXJm
YWNlIChAeyRkb2N1bWVudC0+aW50ZXJmYWNlc30pIHsKLSAgICAgICAgICAgIG5leHQgdW5sZXNz
ICEkaW50ZXJmYWNlLT5pc1BhcnRpYWwgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAkdGFy
Z2V0SW50ZXJmYWNlTmFtZTsKKyAgICAgICAgICAgIG5leHQgdW5sZXNzICRvYmplY3QtPklzVmFs
aWRTdXBwbGVtZW50YWxJbnRlcmZhY2UoJHRhcmdldERvY3VtZW50LCAkaW50ZXJmYWNlLCAkdGFy
Z2V0SW50ZXJmYWNlTmFtZSk7CiAKICAgICAgICAgICAgIG15ICR0YXJnZXREYXRhTm9kZTsKICAg
ICAgICAgICAgIG15IEB0YXJnZXRHbG9iYWxDb250ZXh0czsKQEAgLTM1NCw3ICszNzUsNyBAQCBz
dWIgUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwogICAgICAgICB9CiAKICAgICAgICAg
Zm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQHskZG9jdW1lbnQtPmRpY3Rpb25hcmllc30pIHsKLSAg
ICAgICAgICAgIG5leHQgdW5sZXNzICRkaWN0aW9uYXJ5LT5pc1BhcnRpYWwgJiYgJGRpY3Rpb25h
cnktPnR5cGUtPm5hbWUgZXEgJHRhcmdldEludGVyZmFjZU5hbWU7CisgICAgICAgICAgICBuZXh0
IHVubGVzcyAkb2JqZWN0LT5Jc1ZhbGlkU3VwcGxlbWVudGFsRGljdGlvbmFyeSgkdGFyZ2V0RG9j
dW1lbnQsICRkaWN0aW9uYXJ5LCAkdGFyZ2V0SW50ZXJmYWNlTmFtZSk7CiAKICAgICAgICAgICAg
IG15ICR0YXJnZXREYXRhTm9kZTsKICAgICAgICAgICAgIG15IEB0YXJnZXRHbG9iYWxDb250ZXh0
czsKQEAgLTExODQsNyArMTIwNSw3IEBAIHN1YiBHZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0
ZXNGcm9tTmEKIAogICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSB7fTsKIAotICAgIGlmICgk
ZmlsZUNvbnRlbnRzID1+IC9cWyguKilcXVxzKyhjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNl
fGV4Y2VwdGlvbilccysoXHcrKS9ncykgeworICAgIGlmICgkZmlsZUNvbnRlbnRzID1+IC9cWygu
KilcXVxzKyhjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhcdyspL2dzKSB7CiAgICAg
ICAgIG15IEBwYXJ0cyA9IHNwbGl0KCcsJywgJDEpOwogICAgICAgICBmb3JlYWNoIG15ICRwYXJ0
IChAcGFydHMpIHsKICAgICAgICAgICAgIG15IEBrZXlWYWx1ZSA9IHNwbGl0KCc9JywgJHBhcnQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0J
KHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
UGFyc2VyLnBtCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHN0cnVjdCggSURMSW50
ZXJmYWNlID0+IHsKICAgICBhdHRyaWJ1dGVzID0+ICdAJywgICAgIyBMaXN0IG9mICdJRExBdHRy
aWJ1dGUnCiAgICAgY29uc3RydWN0b3JzID0+ICdAJywgIyBDb25zdHJ1Y3RvcnMsIGxpc3Qgb2Yg
J0lETE9wZXJhdGlvbicKICAgICBpc0NhbGxiYWNrID0+ICckJywgIyBVc2VkIGZvciBjYWxsYmFj
ayBpbnRlcmZhY2VzCisgICAgaXNNaXhpbiA9PiAnJCcsICMgVXNlZCBmb3IgbWl4aW4gaW50ZXJm
YWNlcwogICAgIGlzUGFydGlhbCA9PiAnJCcsICMgVXNlZCBmb3IgcGFydGlhbCBpbnRlcmZhY2Vz
CiAgICAgaXRlcmFibGUgPT4gJyQnLCAjIFVzZWQgZm9yIGl0ZXJhYmxlIGludGVyZmFjZXMsIG9m
IHR5cGUgJ0lETEl0ZXJhYmxlJwogICAgIGFzeW5jSXRlcmFibGUgPT4gJyQnLCAjIFVzZWQgZm9y
IGFzeWNuIGl0ZXJhYmxlIGludGVyZmFjZXMsIG9mIHR5cGUgJ0lETEFzeW5jSXRlcmFibGUnCkBA
IC02MzUsNyArNjM2LDcgQEAgc3ViIGFkZEJ1aWx0aW5UeXBlZGVmcygpCiAgICAgJHR5cGVkZWZz
eyJET01UaW1lU3RhbXAifSA9IElETFR5cGVkZWYtPm5ldyh0eXBlID0+ICRET01UaW1lU3RhbXBU
eXBlKTsKIH0KIAotbXkgJG5leHRBdHRyaWJ1dGVfMiA9ICdeKHJlYWRvbmx5fGF0dHJpYnV0ZSkk
JzsKK215ICRuZXh0T3B0aW9uYWxseVJlYWRvbmx5QXR0cmlidXRlXzEgPSAnXihyZWFkb25seXxh
dHRyaWJ1dGUpJCc7CiBteSAkbmV4dEludGVnZXJUeXBlXzEgPSAnXihpbnR8bG9uZ3xzaG9ydHx1
bnNpZ25lZCkkJzsKIG15ICRuZXh0RmxvYXRUeXBlXzEgPSAnXihkb3VibGV8ZmxvYXR8dW5yZXN0
cmljdGVkKSQnOwogbXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9N
U3RyaW5nfFVTVlN0cmluZ3xcW3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnxsb25n
fG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVu
cmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKQEAgLTY0OSw3ICs2NTAsOSBAQCBteSAkbmV4dFR5cGVf
MSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nCiBteSAkbmV4dFNwZWNpYWxzXzEgPSAnXihkZWxl
dGVyfGdldHRlcnxzZXR0ZXIpJCc7CiBteSAkbmV4dERlZmluaXRpb25zXzEgPSAnXihjYWxsYmFj
a3xkaWN0aW9uYXJ5fGVudW18aW50ZXJmYWNlfG5hbWVzcGFjZXxwYXJ0aWFsfHR5cGVkZWYpJCc7
CiBteSAkbmV4dERpY3Rpb25hcnlNZW1iZXJfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5n
fFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3Rl
dHxyZXF1aXJlZHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1
bnNpZ25lZCkkJzsKK215ICRuZXh0Q2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxj
b25zdHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxkb3Vi
bGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5l
ZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dEludGVyZmFjZU1lbWJlcnNfMSA9
ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xhbnl8YXR0cmlidXRlfGJvb2xl
YW58Ynl0ZXxjb25zdHxjb25zdHJ1Y3RvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5o
ZXJpdHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRl
cnxzaG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8
dW5zaWduZWQpJCc7CitteSAkbmV4dE1peGluTWVtYmVyc18xID0gJ14oXCh8YXR0cmlidXRlfEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRvdWJs
ZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzaG9ydHxzdHJpbmdp
ZmllcnxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0
TmFtZXNwYWNlTWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5n
fGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5
fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OwogbXkgJG5leHRQYXJ0aWFsSW50ZXJmYWNlTWVtYmVyXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xVU1ZTdHJpbmd8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8ZGVsZXRl
cnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8
c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHN5bWJv
bHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRTaW5nbGVUeXBl
XzEgPSAnXihCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8Ym9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVk
fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKQEAgLTY1Nyw3ICs2NjAsNiBAQCBteSAkbmV4dEFy
Z3VtZW50TmFtZV8xID0gJ14oYXN5bmN8YXR0cmliCiBteSAkbmV4dENvbnN0VmFsdWVfMSA9ICde
KGZhbHNlfHRydWUpJCc7CiBteSAkbmV4dENvbnN0VmFsdWVfMiA9ICdeKC18SW5maW5pdHl8TmFO
KSQnOwogbXkgJG5leHRDYWxsYmFja09ySW50ZXJmYWNlID0gJ14oY2FsbGJhY2t8aW50ZXJmYWNl
KSQnOwotbXkgJG5leHRPcGVyYXRpb25SZXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmlu
Z3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0
ZXR8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQp
JCc7CiBteSAkbmV4dFJlZ3VsYXJPcGVyYXRpb25fMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxv
Y3RldHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25l
ZCkkJzsKIG15ICRuZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xID0gJ14obG9uZ3xzaG9ydCkkJzsK
IG15ICRuZXh0RGVmYXVsdFZhbHVlXzEgPSAnXigtfEluZmluaXR5fE5hTnxmYWxzZXxudWxsfHRy
dWUpJCc7CkBAIC04NjksOSArODcxLDcgQEAgc3ViIHBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZh
Y2UKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImludGVyZmFjZSIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7Ci0gICAgICAgIG15ICRp
bnRlcmZhY2UgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
Ci0gICAgICAgICRpbnRlcmZhY2UtPmlzQ2FsbGJhY2soMSk7Ci0gICAgICAgIHJldHVybiAkaW50
ZXJmYWNlOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tJbnRlcmZhY2UoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbikgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tSZXN0
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwpAQCAtOTI5LDYgKzkyOSwxNTQgQEAgc3ViIHBhcnNl
SW50ZXJmYWNlCiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOwogfQogCitzdWIgcGFyc2VDYWxsYmFja0ludGVyZmFjZQoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICRpbnRlcmZhY2UgPSBJRExJbnRl
cmZhY2UtPm5ldygpOworICAgICAgICAkaW50ZXJmYWNlLT5pc0NhbGxiYWNrKDEpOworCisgICAg
ICAgIG15ICRpbnRlcmZhY2VOYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAKKyAgICAgICAgbXkgJG5hbWUgPSBpZGVudGlmaWVyUmVtb3ZlTnVsbGFi
bGVQcmVmaXgoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRpbnRlcmZh
Y2UtPnR5cGUobWFrZVNpbXBsZVR5cGUoJG5hbWUpKTsKKworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15
ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGludGVy
ZmFjZSwgJGludGVyZmFjZU1lbWJlcnMpOworCisgICAgICAgICRzZWxmLT5hc3NlcnRFeHRlbmRl
ZEF0dHJpYnV0ZXNWYWxpZEZvckNvbnRleHQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCwgImludGVy
ZmFjZSIpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkaW50ZXJmYWNlLCAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKworICAgICAgICByZXR1cm4gJGludGVyZmFjZTsKKyAg
ICB9CisKKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrSW50ZXJmYWNlTWVtYmVycworeworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGNhbGxiYWNrSW50ZXJmYWNlTWVtYmVycyA9ICgp
OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIG15ICRjYWxsYmFja0ludGVy
ZmFjZU1lbWJlcjsKKworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Q2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzXzEv
KSB7CisgICAgICAgICAgICAkY2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VD
YWxsYmFja0ludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmlu
ZWQgJGNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAgICAgICBwdXNoKEBjYWxsYmFj
a0ludGVyZmFjZU1lbWJlcnMsICRjYWxsYmFja0ludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIFxAY2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzOworfQorCitzdWIg
cGFyc2VDYWxsYmFja0ludGVyZmFjZU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0UmVndWxhck9wZXJhdGlvbl8xLykgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlUmVndWxhck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisKKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU1peGluCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1peGlu
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Im1peGluIiwgX19MSU5FX18pOworCisgICAgICAgIG15ICRpbnRlcmZhY2VNaXhpbiA9IElETElu
dGVyZmFjZS0+bmV3KCk7CisgICAgICAgICRpbnRlcmZhY2VNaXhpbi0+aXNNaXhpbigxKTsKKwor
ICAgICAgICBteSAkaW50ZXJmYWNlTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGludGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgCisgICAgICAgIG15ICRuYW1lID0gaWRlbnRpZmllclJlbW92ZU51
bGxhYmxlUHJlZml4KCRpbnRlcmZhY2VOYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkaW50
ZXJmYWNlTWl4aW4tPnR5cGUobWFrZVNpbXBsZVR5cGUoJG5hbWUpKTsKKworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIG15ICRpbnRlcmZhY2VNaXhpbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VNaXhpbk1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkaW50
ZXJmYWNlTWl4aW4sICRpbnRlcmZhY2VNaXhpbk1lbWJlcnMpOworCisgICAgICAgICRzZWxmLT5h
c3NlcnRFeHRlbmRlZEF0dHJpYnV0ZXNWYWxpZEZvckNvbnRleHQoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCwgImludGVyZmFjZSIpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgk
aW50ZXJmYWNlTWl4aW4sICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCisgICAgICAgIHJldHVy
biAkaW50ZXJmYWNlTWl4aW47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTWl4aW5NZW1iZXJz
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWl4aW5NZW1iZXJzID0gKCk7CisK
KyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJG1peGluTWVtYmVyOworCisg
ICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRNaXhpbk1lbWJlcnNfMS8pIHsKKyAgICAgICAgICAgICRtaXhpbk1lbWJl
ciA9ICRzZWxmLT5wYXJzZU1peGluTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZGVmaW5lZCAkbWl4aW5NZW1iZXIpIHsKKyAgICAgICAgICAgIHB1c2goQG1peGluTWVtYmVycywg
JG1peGluTWVtYmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBtaXhpbk1lbWJl
cnM7Cit9CisKK3N1YiBwYXJzZU1peGluTWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTdHJpbmdpZmllcigkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE9wdGlvbmFsbHlS
ZWFkb25seUF0dHJpYnV0ZV8xLykgeworICAgICAgICBteSAkaXNSZWFkT25seSA9ICRzZWxmLT5w
YXJzZVJlYWRPbmx5KCk7CisgICAgICAgIG15ICRhdHRyaWJ1dGUgPSAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXR0cmlidXRlLT5p
c1JlYWRPbmx5KCRpc1JlYWRPbmx5KTsKKyAgICAgICAgcmV0dXJuICRhdHRyaWJ1dGU7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRSZWd1bGFyT3BlcmF0aW9uXzEvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VSZWd1bGFyT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KworICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKwogc3ViIHBhcnNlTmFtZXNwYWNlCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsK
QEAgLTk3MCw3ICsxMTE4LDYgQEAgc3ViIHBhcnNlTmFtZXNwYWNlCiAgICAgICAgIHJldHVybiAk
bmFtZXNwYWNlOwogICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Ci0KIH0KIAogc3ViIHBhcnNlTmFtZXNwYWNlTWVtYmVycwpA
QCAtMTAxNCw3ICsxMTYxLDYgQEAgc3ViIHBhcnNlTmFtZXNwYWNlTWVtYmVyCiAgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi0K
IHN1YiBwYXJzZVBhcnRpYWwKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwpAQCAtMTE4Niw3ICsx
MzMyLDcgQEAgc3ViIHBhcnNlUGFydGlhbEludGVyZmFjZU1lbWJlcgogCiAgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE9w
ZXJhdGlvbl8xLykgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOwotICAgICB9CisgICAgfQogCiAgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQpAQCAtMTg0MiwyNiAr
MTk4OCwxNSBAQCBzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbkZvclN0cmluZ2lmCiAgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCiAgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7Ci0gICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0
ZV8yLykgeworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRPcHRpb25hbGx5UmVhZG9u
bHlBdHRyaWJ1dGVfMS8pIHsKICAgICAgICAgbXkgJGlzUmVhZE9ubHkgPSAkc2VsZi0+cGFyc2VS
ZWFkT25seSgpOwotCiAgICAgICAgIG15ICRhdHRyaWJ1dGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1
dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICAkYXR0cmlidXRlLT5pc1Jl
YWRPbmx5KCRpc1JlYWRPbmx5KTsKLQogICAgICAgICByZXR1cm4gJGF0dHJpYnV0ZTsKICAgICB9
CiAKLSAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0T3BlcmF0aW9uUmVzdF8xLykgewotICAgICAgICBteSAkcmV0dXJuVHlw
ZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKLQotICAgICAgICAjIE5PVEU6IFRoaXMgaXMgYSBub24t
c3RhbmRhcmQgYWRkaXRpb24uIEluIFdlYklETCwgdGhlcmUgaXMgbm8gd2F5IHRvIGFzc29jaWF0
ZQotICAgICAgICAjIGV4dGVuZGVkIGF0dHJpYnV0ZXMgd2l0aCBhIHJldHVybiB0eXBlLgotICAg
ICAgICAkc2VsZi0+bW92ZUV4dGVuZGVkQXR0cmlidXRlc0FwcGxpY2FibGVUb1R5cGVzKCRyZXR1
cm5UeXBlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKLQotICAgICAgICBteSAkb3BlcmF0aW9u
ID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKLSAg
ICAgICAgJG9wZXJhdGlvbi0+dHlwZSgkcmV0dXJuVHlwZSk7Ci0KLSAgICAgICAgcmV0dXJuICRv
cGVyYXRpb247CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dFJlZ3VsYXJPcGVyYXRpb25fMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZVJlZ3VsYXJPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJl
cHJvY2Vzcy1pZGxzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAkod29ya2luZyBjb3B5KQpA
QCAtMTM4LDkgKzEzOCw5IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmls
ZUgKIAogICAgIHVwZGF0ZURpY3Rpb25hcnlEZXBlbmRlbmNpZXMoJGlkbEZpbGVDb250ZW50cywg
JGlkbEZpbGUpOwogCi0gICAgIyBTa2lwIGlmIHRoZSBJREwgZmlsZSBkb2VzIG5vdCBjb250YWlu
IGFuIGludGVyZmFjZSwgYSBjYWxsYmFjayBpbnRlcmZhY2Ugb3IgYW4gZXhjZXB0aW9uLgorICAg
ICMgU2tpcCBpZiB0aGUgSURMIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbiBpbnRlcmZhY2Ugb3Ig
YSBjYWxsYmFjayBpbnRlcmZhY2UuCiAgICAgIyBUaGUgSURMIG1heSBjb250YWluIGEgZGljdGlv
bmFyeS4KLSAgICBuZXh0IHVubGVzcyBjb250YWluc0ludGVyZmFjZU9yRXhjZXB0aW9uRnJvbUlE
TCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAgICBuZXh0IHVubGVzcyBjb250YWluc0ludGVyZmFjZUZy
b21JREwoJGlkbEZpbGVDb250ZW50cyk7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IGZpbGVw
YXJzZShiYXNlbmFtZSgkaWRsRmlsZSksICIuaWRsIik7CiAgICAgIyBIYW5kbGUgaW5jbHVkZSBz
dGF0ZW1lbnRzLgpAQCAtMTU1LDcgKzE1NSwxMCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlIChzb3J0
IGtleXMgJWlkbEZpbGVICiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWlzQ2FsbGJhY2tJ
bnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlQ29udGVudHMpKSB7CisgICAgbmV4dCBpZiBpc01peGlu
SW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKworICAgIG15ICRpc0NhbGxiYWNr
SW50ZXJmYWNlID0gaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250ZW50cyk7
CisgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSkgewogICAgICAgICAkaXNvU3Vic3BhY2Vz
SGVhZGVyQ29kZSAuPSAiICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Oklzb1N1YnNwYWNlPiBtX3N1
YnNwYWNlRm9yJHtpbnRlcmZhY2VOYW1lfTtcbiI7CiAgICAgICAgIGlmIChpbnRlcmZhY2VJc0l0
ZXJhYmxlKCRpZGxGaWxlQ29udGVudHMpKSB7CiAgICAgICAgICAgICAkaXNvU3Vic3BhY2VzSGVh
ZGVyQ29kZSAuPSAiICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Oklzb1N1YnNwYWNlPiBtX3N1YnNw
YWNlRm9yJHtpbnRlcmZhY2VOYW1lfUl0ZXJhdG9yO1xuIjsKQEAgLTE2OSw3ICsxNzIsNyBAQCBm
b3JlYWNoIG15ICRpZGxGaWxlIChzb3J0IGtleXMgJWlkbEZpbGVICiAgICAgIyBTZWUgaHR0cHM6
Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtaW50ZXJmYWNlcwogICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZXMgPSBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMKCRpZGxG
aWxlQ29udGVudHMpOwogICAgIGlmIChzaG91bGRFeHBvc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0
cmlidXRlcykpIHsKLSAgICAgICAgaWYgKCFpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCgkaWRs
RmlsZUNvbnRlbnRzKSB8fCBpbnRlcmZhY2VIYXNDb25zdGFudEF0dHJpYnV0ZSgkaWRsRmlsZUNv
bnRlbnRzKSkgeworICAgICAgICBpZiAoISRpc0NhbGxiYWNrSW50ZXJmYWNlIHx8IGludGVyZmFj
ZUhhc0NvbnN0YW50QXR0cmlidXRlKCRpZGxGaWxlQ29udGVudHMpKSB7CiAgICAgICAgICAgICBt
eSAkZXhwb3NlZEF0dHJpYnV0ZSA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXhwb3NlZCJ9IHx8
ICR0ZXN0R2xvYmFsQ29udGV4dE5hbWUgfHwgIldpbmRvdyI7CiAgICAgICAgICAgICAkZXhwb3Nl
ZEF0dHJpYnV0ZSA9IHN1YnN0cigkZXhwb3NlZEF0dHJpYnV0ZSwgMSwgLTEpIGlmIHN1YnN0cigk
ZXhwb3NlZEF0dHJpYnV0ZSwgMCwgMSkgZXEgIigiOwogICAgICAgICAgICAgbXkgQGdsb2JhbENv
bnRleHRzID0gc3BsaXQoIiwiLCAkZXhwb3NlZEF0dHJpYnV0ZSk7CkBAIC0zOTMsMTkgKzM5Niwy
NCBAQCBzdWIgaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwKICAgICByZXR1cm4gKCRmaWxlQ29u
dGVudHMgPX4gL2NhbGxiYWNrXHMraW50ZXJmYWNlXHMrXHcrL2dzKTsKIH0KIAorc3ViIGlzTWl4
aW5JbnRlcmZhY2VGcm9tSURMCit7CisgICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OworICAg
IHJldHVybiAoJGZpbGVDb250ZW50cyA9fiAvaW50ZXJmYWNlXHMrbWl4aW5ccytcdysvZ3MpOwor
fQorCiBzdWIgaW50ZXJmYWNlSXNJdGVyYWJsZQogewogICAgIG15ICRmaWxlQ29udGVudHMgPSBz
aGlmdDsKICAgICByZXR1cm4gKCRmaWxlQ29udGVudHMgPX4gL2l0ZXJhYmxlXHMqPFxzKlx3K1xz
Ki9ncyk7CiB9CiAKLXN1YiBjb250YWluc0ludGVyZmFjZU9yRXhjZXB0aW9uRnJvbUlETAorc3Vi
IGNvbnRhaW5zSW50ZXJmYWNlRnJvbUlETAogewogICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlm
dDsKIAogICAgIHJldHVybiAxIGlmICRmaWxlQ29udGVudHMgPX4gL1xiY2FsbGJhY2tccytpbnRl
cmZhY2VccytcdysvZ3M7CiAgICAgcmV0dXJuIDEgaWYgJGZpbGVDb250ZW50cyA9fiAvXGJpbnRl
cmZhY2VccytcdysvZ3M7Ci0gICAgcmV0dXJuIDEgaWYgJGZpbGVDb250ZW50cyA9fiAvXGJleGNl
cHRpb25ccytcdysvZ3M7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTQyNyw3ICs0MzUsNyBAQCBz
dWIgZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbUlECiAgICAgIyBhbGwgYnVpbGQg
c3lzdGVtcy4KICAgICAkZmlsZUNvbnRlbnRzID1+IHMvKD86KD86KD86XC9cLykoPzpbXlxuXSop
KD86XG4pKXwoPzooPzpcL1wqKSg/Oig/OlteXCpdK3xcKig/IVwvKSkqKSg/OlwqXC8pKSkvL2c7
CiAKLSAgICBpZiAoJGZpbGVDb250ZW50cyA9fiAvXFsoLiopXF1ccysoY2FsbGJhY2sgaW50ZXJm
YWNlfGludGVyZmFjZXxleGNlcHRpb24pXHMrKFx3KykvZ3MpIHsKKyAgICBpZiAoJGZpbGVDb250
ZW50cyA9fiAvXFsoLiopXF1ccysoY2FsbGJhY2sgaW50ZXJmYWNlfGludGVyZmFjZSlccysoXHcr
KS9ncykgewogICAgICAgICBteSAkcGFyYW1ldGVycyA9ICQxOwogICAgICAgICBpZiAoaW5kZXgo
JHBhcmFtZXRlcnMsICd9JykgIT0gLTEpIHsKICAgICAgICAgICAgICMgSW4gY2FzZSB3ZSBoYXZl
IGEgZGVjbGFyYXRpb24gbGlrZSBhIGRpY3Rpb25hcnkgd2l0aCBleHRlbmRlZCBhdHRyaWJ1dGVz
IGRlZmluZWQgYmVmb3JlIHRoZSBpbnRlcmZhY2UuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEluY2x1ZGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEluY2x1ZGVzLmlkbAkocmV2aXNpb24g
MjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RJbmNs
dWRlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCw4IEBACiAvLyBUaGlzIElETCBm
aWxlIGlzIGZvciB0ZXN0aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRvciBhbmQgZm9yIHRy
YWNraW5nCiAvLyBjaGFuZ2VzIGluIGl0cyBvdXRwdXQuCiBbCi0gICAgQ29uZGl0aW9uYWw9Q29u
ZGl0aW9uMjJ8Q29uZGl0aW9uMjMsCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QKLV0gaW50
ZXJmYWNlIFRlc3RJbmNsdWRlcyB7Ci0gICAgc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGluY2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRyOwotICAgIHN0YXRpYyBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGluY2x1ZGVzU3RhdGljQXR0cjsKKyAgICBDb25kaXRpb25hbD1Db25kaXRpb24yMnxDb25k
aXRpb24yMworXSBpbnRlcmZhY2UgbWl4aW4gVGVzdEluY2x1ZGVzIHsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGluY2x1ZGVzU3RyMTsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGluY2x1ZGVzU3RyMjsKICAgICBbQ3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXJdIGF0dHJpYnV0
ZSBET01TdHJpbmcgaW5jbHVkZXNTdHIzOwpAQCAtNDMsNyArNDAsNiBAQAogICAgIHVuZGVmaW5l
ZCBpbmNsdWRlc01ldGhvZDEoKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgTWF5VGhyb3dFeGNlcHRpb25dIFRlc3RPYmogaW5jbHVkZXNNZXRob2QyKERPTVN0cmluZyBz
dHJBcmcsIFRlc3RPYmogb2JqQXJnKTsKICAgICBbQ3VzdG9tXSB1bmRlZmluZWQgaW5jbHVkZXNN
ZXRob2QzKCk7Ci0gICAgc3RhdGljIHVuZGVmaW5lZCBpbmNsdWRlc01ldGhvZDQoKTsKIAogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IElOQ0xVREVTX0NPTlNUQU5UMSA9IDE7CiAgICAgW1JlZmxl
Y3Q9Q09OU1RfSU1QTF0gY29uc3QgdW5zaWduZWQgc2hvcnQgSU5DTFVERVNfQ09OU1RBTlQyID0g
MjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T3BlcmF0
aW9uQmFzZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPcGVyYXRpb25CYXNlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPcGVyYXRpb25CYXNlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOCBAQAogLy8gY2hhbmdlcyBpbiBpdHMgb3V0cHV0Lgog
CiBbCi0gICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uQmFzZSwKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKLV0gaW50ZXJmYWNlIFRlc3RPcGVyYXRpb25CYXNlIHsKKyAgICBDb25kaXRpb25h
bD1Db25kaXRpb25CYXNlCitdIGludGVyZmFjZSBtaXhpbiBUZXN0T3BlcmF0aW9uQmFzZSB7CiAg
ICAgdW5kZWZpbmVkIG5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uKCk7CiAgICAgW0NvbmRpdGlvbmFs
PUNvbmRpdGlvbk9wZXJhdGlvbl0gdW5kZWZpbmVkIGNvbmRpdGlvbmFsT3BlcmF0aW9uKCk7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MiwxMSArNTIsMTEgQEAKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1lbnRhbEJ1aWx0
aW5zLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSNp
bmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNlbmRpZgpAQCAtODIsOSArODIsNiBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbmNsdWRlc01l
dGhvZDMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9u
SW5jbHVkZXNNZXRob2Q0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
I2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25UYWtlTm9kZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
QEAgLTExMCwxMyArMTA3LDYgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwogYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLSNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVz
U3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1
ZGVzU3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
SW5jbHVkZXNTdHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKQEAgLTIxNiwxNiArMjA2LDYgQEAgc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdEludGVyZgogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7
IDAsIDAgfSB9LAogI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi0gICAgeyAiaW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHIiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
Ci0jZWxzZQotICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJpbmNs
dWRlc1N0YXRpY0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oMCksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0cikgfSB9LAotI2Vsc2UKLSAgICB7IDAsIDAsIE5v
SW50cmluc2ljLCB7IDAsIDAgfSB9LAotI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAgeyAic3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y1JlYWRPbmx5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCkBAIC0yMzYsMTEgKzIxNiw2IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmYKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgImluY2x1ZGVzTWV0aG9kNCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JGdW5jdGlvbkluY2x1ZGVzTWV0aG9kNCksIChpbnRwdHJfdCkgKDApIH0g
fSwKLSNlbHNlCi0gICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKLSNlbmRpZgog
I2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAgIHsgInN1
cHBsZW1lbnRhbE1ldGhvZDQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2Q0KSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKQEAgLTUwNiw1NiAr
NDgxLDYgQEAgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsbwogfQogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY1JlYWRP
bmx5QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKLXsKLSAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBUZXN0SW50ZXJmYWNlOjppbmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0cigpKSkpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3Rh
dGljUmVhZE9ubHlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvckluY2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiaW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHIiKTsKLX0KLQotI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGlj
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKLXsKLSAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFRlc3RJbnRlcmZhY2U6OmluY2x1ZGVzU3RhdGljQXR0cigpKSkpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJ
bnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0
YXRpY0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpbmNsdWRl
c1N0YXRpY0F0dHIiKTsKLX0KLQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwotICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwotICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0gewotICAgICAgICByZXR1cm4gVGVzdElu
dGVyZmFjZTo6c2V0SW5jbHVkZXNTdGF0aWNBdHRyKFdURk1vdmUobmF0aXZlVmFsdWUpKTsKLSAg
ICB9KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCi17Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXRTdGF0
aWM8c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImluY2x1ZGVz
U3RhdGljQXR0ciIpOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQogc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZUluY2x1ZGVzU3RyMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CkBAIC05NDcsMjUgKzg3Miw2IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXIKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvbkluY2x1ZGVzTWV0aG9k
NEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxs
RnJhbWUpOwotICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwotICAgIFRlc3RJbnRlcmZhY2U6Omlu
Y2x1ZGVzTWV0aG9kNCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JGdW5jdGlvbkluY2x1ZGVzTWV0aG9kNChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsU3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImluY2x1ZGVzTWV0aG9kNCIpOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVGFrZU5vZGVzQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudENTU0lu
bGluZVN0eWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudENT
U0lubGluZVN0eWxlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0VsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDcg
QEAKIAogLy8gQ1NTT00gZXh0ZW5zaW9ucyB0byBIVE1MRWxlbWVudCAvIFNWR0VsZW1lbnQ6CiAv
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI3RoZS1lbGVtZW50Y3NzaW5saW5lc3R5
bGUtaW50ZXJmYWNlCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFj
ZSBFbGVtZW50Q1NTSW5saW5lU3R5bGUgeworaW50ZXJmYWNlIG1peGluIEVsZW1lbnRDU1NJbmxp
bmVTdHlsZSB7CiAgICAgW0ltcGxlbWVudGVkQXM9Y3Nzb21TdHlsZSwgUHV0Rm9yd2FyZHM9Y3Nz
VGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7IC8vIEZJ
WE1FOiBTaG91bGQgYmUgW1NhbWVPYmplY3RdLgogICAgIFtJbXBsZW1lbnRlZEFzPWVuc3VyZUF0
dHJpYnV0ZVN0eWxlTWFwLCBDYWNoZWRBdHRyaWJ1dGUsIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTVHlw
ZWRPTSwgQ29uZGl0aW9uYWw9Q1NTX1RZUEVEX09NXSByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVQ
cm9wZXJ0eU1hcCBhdHRyaWJ1dGVTdHlsZU1hcDsgLy8gRklYTUU6IFNob3VsZCBiZSBbU2FtZU9i
amVjdF0uCiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAkocmV2aXNpb24gMjY2
NjcxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCw2ICsyNCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBGSVhNRTogVGhp
cyB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBDU1NPTSBWaWV3IHNwZWNpZmljYXRpb24uCiBbCiAgICAg
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1SZWFjaGFi
bGVGcm9tRE9NV2luZG93LApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZS5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZS5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5vZGUuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xOSw5ICsxOSw3IEBACiAgKi8KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cu
b3JnLyNjaGlsZG5vZGUKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJm
YWNlIENoaWxkTm9kZSB7CitpbnRlcmZhY2UgbWl4aW4gQ2hpbGROb2RlIHsKICAgICBbQ0VSZWFj
dGlvbnMsIFVuc2NvcGFibGUsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgYmVmb3JlKChO
b2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwogICAgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJs
ZSwgTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBhZnRlcigoTm9kZSBvciBET01TdHJpbmcp
Li4uIG5vZGVzKTsKICAgICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGUsIE1heVRocm93RXhjZXB0
aW9uXSB1bmRlZmluZWQgcmVwbGFjZVdpdGgoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUm90
YXRpb25SYXRlPyByb3RhdGlvblJhdGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJp
Y3RlZCBkb3VibGU/IGludGVydmFsOwogCisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVk
QnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Np
b24oKTsKKwogICAgIHVuZGVmaW5lZCBpbml0RGV2aWNlTW90aW9uRXZlbnQob3B0aW9uYWwgRE9N
U3RyaW5nIHR5cGUgPSAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25h
bCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSwKQEAgLTU3LDUgKzU5LDMgQEAK
ICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91YmxlPyBnYW1tYTsKIH07Ci0KLURldmljZU1vdGlv
bkV2ZW50IGluY2x1ZGVzIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBiZXRhOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlPyBnYW1tYTsKIAorICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5hYmxl
ZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9taXNl
PERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJtaXNz
aW9uKCk7CisKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgZGVmaW5pbmcgYW4gRU5BQkxFIG1hY3Jv
IGZvciBpT1MgZGV2aWNlIG9yaWVudGF0aW9uIGNvZGUgYW5kL29yIG1vZGlmeWluZwogICAgIC8v
IHRoZSBiaW5kaW5ncyBzY3JpcHRzIHRvIHN1cHBvcnQgZ2VuZXJhdGluZyBtb3JlIGNvbXBsaWNh
dGVkIGNvbmRpdGlvbmFsIGNvZGUuCiAjaWYgZGVmaW5lZChXVEZfUExBVEZPUk1fSU9TX0ZBTUlM
WSkgJiYgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkKQEAgLTU0LDUgKzU2LDMgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4/IGFic29sdXRlID0g
bnVsbCk7CiAjZW5kaWYKIH07Ci0KLURldmljZU9yaWVudGF0aW9uRXZlbnQgaW5jbHVkZXMgRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwJKHJldmlzaW9uIDI2
NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsCShub25leGlzdGVudCkKQEAgLTEsMzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENv
bmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTiwKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dAotXSBpbnRlcmZhY2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKLSAgICBbQ2Fs
bFdpdGg9RG9jdW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNz
aW9uQVBJXSBzdGF0aWMgUHJvbWlzZTxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlPiByZXF1ZXN0UGVybWlzc2lvbigpOwotfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIHR5cGVkZWYgKEhUTUxTY3JpcHRF
bGVtZW50IG9yIFNWR1NjcmlwdEUKICAgICAvLyBGSVhNRTogU2hvdWxkIGxpa2VseSBiZSBtb3Zl
ZCB0byBEb2N1bWVudE9yU2hhZG93Um9vdC4KICAgICBET01TZWxlY3Rpb24/IGdldFNlbGVjdGlv
bigpOwogCisgICAgLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGV4dHJhY3RlZCBp
bnRvIGEgbmV3IG1peGluLCBYUGF0aEV2YWx1YXRvckJhc2UgLSBodHRwczovL2RvbS5zcGVjLndo
YXR3Zy5vcmcvI3hwYXRoZXZhbHVhdG9yYmFzZQogICAgIC8vIFhQYXRoIGV4dGVuc2lvbnMgKGh0
dHBzOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1YUGF0aC94cGF0aC5odG1sI1hQYXRoRXZh
bHVhdG9yKS4KICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVF
eHByZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/
IHJlc29sdmVyKTsKICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihOb2RlIG5v
ZGVSZXNvbHZlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRBbmRFbGVtZW50
RXZlbnRIYW5kbGVycy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKICAqLwogCiAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnLyNkb2N1bWVudGFuZGVsZW1lbnRldmVudGhhbmRsZXJzCi1bCi0gICAgTGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhh
bmRsZXJzIHsKK2ludGVyZmFjZSBtaXhpbiBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJz
IHsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29weTsKICAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uY3V0OwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25wYXN0ZTsKQEAg
LTM2LDcgKzM0LDYgQEAKICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbmJlZm9yZWN1dDsKICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbmJlZm9yZWlucHV0OwogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYmVmb3JlcGFzdGU7Ci0KICAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVtZW50ZWRBcz1v
bndlYmtpdEFuaW1hdGlvbkVuZF0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGFuaW1h
dGlvbmVuZDsKICAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVtZW50ZWRBcz1vbndlYmtpdEFuaW1h
dGlvbkl0ZXJhdGlvbl0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGFuaW1hdGlvbml0
ZXJhdGlvbjsKICAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVtZW50ZWRBcz1vbndlYmtpdEFuaW1h
dGlvblN0YXJ0XSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5pbWF0aW9uc3RhcnQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPclNoYWRvd1Jvb3QuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwJKHJl
dmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yU2hhZG93Um9v
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDcgQEAKICAqLwogCiAvLyBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvY3VtZW50b3JzaGFkb3dyb290Ci1bCi0gICAgTGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBEb2N1bWVudE9yU2hhZG93Um9vdCB7Citp
bnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgewogICAgIC8vIEV4dGVuc2lvbnMg
ZnJvbSBTaGFkb3cgRE9NIEFQSSAoaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVudHMv
c3BlYy9zaGFkb3cvI2V4dGVuc2lvbnMtdG8tdGhlLWRvY3VtZW50b3JzaGFkb3dyb290LW1peGlu
KS4KICAgICAvLyBET01TZWxlY3Rpb24/IGdldFNlbGVjdGlvbigpOyAvLyBGSVhNRTogV2UgY3Vy
cmVudGx5IGhhdmUgdGhpcyBvbiBEb2N1bWVudCBvbmx5LgogICAgIEVsZW1lbnQ/IGVsZW1lbnRG
cm9tUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudExpc3RlbmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRM
aXN0ZW5lci5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dExpc3RlbmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNiArMTgsOCBAQAogICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAorLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cu
b3JnLyNjYWxsYmFja2RlZi1ldmVudGxpc3RlbmVyCisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUg
YSBjYWxsYmFjayBpbnRlcmZhY2UuCiBbCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QKIF0g
aW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0dsb2Jh
bEV2ZW50SGFuZGxlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9HbG9i
YWxFdmVudEhhbmRsZXJzLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw3
IEBACiAgKi8KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vi
YXBwYXBpcy5odG1sI2dsb2JhbGV2ZW50aGFuZGxlcnMKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKLV0gaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnMgeworaW50ZXJmYWNlIG1p
eGluIEdsb2JhbEV2ZW50SGFuZGxlcnMgewogICAgIC8vIENvbW1lbnRlZCBvdXQgZXZlbnQgaGFu
ZGxlcnMgYXJlIGRlZmluZWQgYnkgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24gYnV0CiAgICAgLy8g
YXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9OYXZp
Z2F0b3JNYXhUb3VjaFBvaW50cy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L05hdmlnYXRvck1heFRvdWNoUG9pbnRzLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL05hdmlnYXRvck1heFRvdWNoUG9pbnRzLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsNyBAQAogKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgTWF4VG91Y2hQb2ludHMgeworLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3BvaW50ZXJldmVudHMvI2V4dGVuc2lvbnMtdG8tdGhlLW5hdmlnYXRvci1pbnRl
cmZhY2UKK2ludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JNYXhUb3VjaFBvaW50cyB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgbWF4VG91Y2hQb2ludHM7CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5pZGwJKHJldmlzaW9uIDI2
NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw3IEBACiAgKi8KIAogLy8gaHR0cHM6Ly9kb20u
c3BlYy53aGF0d2cub3JnLyNpbnRlcmZhY2Utbm9uZG9jdW1lbnR0eXBlY2hpbGRub2RlCi1bCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBOb25Eb2N1bWVudFR5cGVD
aGlsZE5vZGUgeworaW50ZXJmYWNlIG1peGluIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZSB7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IHByZXZpb3VzRWxlbWVudFNpYmxpbmc7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IG5leHRFbGVtZW50U2libGluZzsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRWxlbWVudFBhcmVudE5vZGUuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGwJKHJldmlz
aW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDYgQEAKICAqLwogCiAvLyBodHRwczovL2Rv
bS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ub25lbGVtZW50cGFyZW50bm9kZQotWwotICAg
IExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgTm9uRWxlbWVudFBhcmVudE5v
ZGUgeworaW50ZXJmYWNlIG1peGluIE5vbkVsZW1lbnRQYXJlbnROb2RlIHsKICAgICBbRE9NSklU
PVJlYWRET01dIEVsZW1lbnQ/IGdldEVsZW1lbnRCeUlkKFtSZXF1aXJlc0V4aXN0aW5nQXRvbVN0
cmluZ10gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L1BhcmVudE5vZGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9QYXJlbnRO
b2RlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1BhcmVudE5v
ZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw3IEBACiAgKi8KIAogLy8gaHR0cHM6
Ly9kb20uc3BlYy53aGF0d2cub3JnLyNpbnRlcmZhY2UtcGFyZW50bm9kZQotWwotICAgIExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgUGFyZW50Tm9kZSB7CitpbnRlcmZhY2Ug
bWl4aW4gUGFyZW50Tm9kZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IGNoaWxkcmVuOyAvLyBGSVhNRTogU2hvdWxkIGJlIFtTYW1lT2JqZWN0XS4KICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRWxlbWVudD8gZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEVsZW1lbnQ/IGxhc3RFbGVtZW50Q2hpbGQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vU2xvdGFibGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TbG90YWJs
ZS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TbG90YWJsZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAKICAqCiAgKi8KIAorLy8gaHR0cHM6
Ly9kb20uc3BlYy53aGF0d2cub3JnLyNzbG90YWJsZQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NLAotXSBpbnRlcmZhY2UgU2xv
dGFibGUgeworXSBpbnRlcmZhY2UgbWl4aW4gU2xvdGFibGUgewogICAgIFtJbXBsZW1lbnRlZEFz
PWFzc2lnbmVkU2xvdEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTFNsb3RFbGVt
ZW50PyBhc3NpZ25lZFNsb3Q7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHlw
ZXJsaW5rRWxlbWVudFV0aWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIEhU
TUxIeXBlcmxpbmtFbGVtZW50VXRpbHMgeworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvbGlua3MuaHRtbCNodG1saHlwZXJsaW5rZWxlbWVudHV0aWxzCitpbnRlcmZh
Y2UgbWl4aW4gSFRNTEh5cGVybGlua0VsZW1lbnRVdGlscyB7CiAgICAgW0NFUmVhY3Rpb25zPU5v
dE5lZWRlZCwgUmVmbGVjdCwgVVJMXSBzdHJpbmdpZmllciBhdHRyaWJ1dGUgVVNWU3RyaW5nIGhy
ZWY7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBvcmlnaW47Ci0KICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3RvY29sOwogICAgIFtD
RVJlYWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXNlcm5hbWU7CiAgICAg
W0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIFVTVlN0cmluZyBwYXNzd29yZDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9yRm9yZWlnbkVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9yRm9yZWlnbkVsZW1lbnQuaWRsCShyZXZp
c2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPckZvcmVpZ25FbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDE1IEBACiAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNodG1sb3JzdmdlbGVtZW50CiAvLyBG
SVhNRTogdXBkYXRlIGFib3ZlIGxpbmsgd2hlbiB0aGlzIGNoYW5nZSBoYXMgYmVlbiBpbXBsZW1l
bnRlZDoKIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNDcwMgotWwot
ICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgSFRNTE9yRm9yZWlnbkVs
ZW1lbnQgeworaW50ZXJmYWNlIG1peGluIEhUTUxPckZvcmVpZ25FbGVtZW50IHsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTWFwIGRhdGFzZXQ7IC8vIEZJWE1FOiBTaG91bGQgYmUg
W1NhbWVPYmplY3RdLgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ25vbmNlJy4KKyAgICAvLyBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOyAvLyBpbnRlbnRpb25hbGx5IG5vIFtDRVJlYWN0aW9u
c10KKworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ2F1dG9mb2N1cycuCisgICAgLy8gW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgW0NFUmVhY3Rpb25zLCBJ
bXBsZW1lbnRlZEFzPXRhYkluZGV4Rm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4
OworICAgIC8vIEZJTVhFOiBmb2N1cygpIGlzIHNwZWNpZmllZCB0byB0YWtlIGFuIG9wdGlvbmFs
IEZvY3VzT3B0aW9ucy4gSW1wbGVtZW50IHRoYXQuCiAgICAgdW5kZWZpbmVkIGZvY3VzKCk7CiAg
ICAgdW5kZWZpbmVkIGJsdXIoKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNDb21wb3NpdGluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGluZy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZh
cy5odG1sI2NhbnZhc2NvbXBvc2l0aW5nCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Qs
CiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc0NvbXBvc2l0
aW5nIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc0NvbXBvc2l0aW5nIHsKICAgICAvLyBGSVhN
RTogQWxsIHRoZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYXR0cmlidXRlcyBiZWxvdyBzaG91bGQgYmUg
dW5yZXN0cmljdGVkIGRvdWJsZXMuCiAKICAgICAvLyBjb21wb3NpdGluZwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRHJhd0ltYWdlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3SW1hZ2UuaWRsCShyZXZpc2lvbiAy
NjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3SW1hZ2UuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCArMzYsMTAgQEAgdHlwZWRlZiAoSFRNTEltYWdlRWxl
bWVudCBvciBIVE1MQ2FudmFzRQogI2VuZGlmCiApIENhbnZhc0ltYWdlU291cmNlOwogCisvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNk
cmF3aW1hZ2UKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShX
aW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzRHJhd0ltYWdlIHsKK10gaW50ZXJmYWNl
IG1peGluIENhbnZhc0RyYXdJbWFnZSB7CiAgICAgLy8gRklYTUU6IEFsbCB0aGUgdW5yZXN0cmlj
dGVkIGZsb2F0IGFyZ3VtZW50cyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0cmljdGVkIGRvdWJsZXMu
CiAKICAgICAvLyBkcmF3aW5nIGltYWdlcwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzRHJhd1BhdGguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0RyYXdQYXRoLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRHJhd1BhdGguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
MywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNj
YW52YXNkcmF3cGF0aAogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9z
ZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNEcmF3UGF0aCB7CitdIGludGVy
ZmFjZSBtaXhpbiBDYW52YXNEcmF3UGF0aCB7CiAgICAgLy8gcGF0aCBBUEkgKHNlZSBhbHNvIENh
bnZhc1BhdGgpCiAgICAgdW5kZWZpbmVkIGJlZ2luUGF0aCgpOwogICAgIHVuZGVmaW5lZCBmaWxs
KG9wdGlvbmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxSdWxlID0gIm5vbnplcm8iKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHls
ZXMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNGaWxsU3Ryb2tlU3R5bGVzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEw
IEBAIHR5cGVkZWYgKEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0UKICNlbmRpZgogKSBD
YW52YXNJbWFnZVNvdXJjZTsKIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzZmlsbHN0cm9rZXN0eWxlcwogWwotICAgIExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFj
ZSBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc0ZpbGxT
dHJva2VTdHlsZXMgewogICAgIC8vIGNvbG9ycyBhbmQgc3R5bGVzIChzZWUgYWxzbyB0aGUgQ2Fu
dmFzUGF0aERyYXdpbmdTdHlsZXMgYW5kIENhbnZhc1RleHREcmF3aW5nU3R5bGVzIGludGVyZmFj
ZXMpCiAgICAgYXR0cmlidXRlIChET01TdHJpbmcgb3IgQ2FudmFzR3JhZGllbnQgb3IgQ2FudmFz
UGF0dGVybikgc3Ryb2tlU3R5bGU7IC8vIChkZWZhdWx0IGJsYWNrKQogICAgIGF0dHJpYnV0ZSAo
RE9NU3RyaW5nIG9yIENhbnZhc0dyYWRpZW50IG9yIENhbnZhc1BhdHRlcm4pIGZpbGxTdHlsZTsg
Ly8gKGRlZmF1bHQgYmxhY2spCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNGaWx0ZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNGaWx0ZXJzLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzRmlsdGVycy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywx
MCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2NhbnZhc2ZpbHRl
cnMKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3cs
V29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzRmlsdGVycyB7CitdIGludGVyZmFjZSBtaXhpbiBD
YW52YXNGaWx0ZXJzIHsKICAgICAvLyBmaWx0ZXJzCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBm
aWx0ZXIuCiAgICAgLy8gYXR0cmlidXRlIERPTVN0cmluZyBmaWx0ZXI7IC8vIChkZWZhdWx0ICJu
b25lIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVu
dC5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc0dyYWRpZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2UvY2FudmFzLmh0bWwjY2FudmFzZ3JhZGllbnQKIFsKICAgICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNJbWFnZURhdGEuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGwJKHJldmlzaW9uIDI2NjY3MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2NhbnZhcy5odG1sI2NhbnZhc2ltYWdlZGF0YQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNJbWFn
ZURhdGEgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzSW1hZ2VEYXRhIHsKICAgICAvLyBGSVhN
RTogQWxsIHRoZSBmbG9hdCBhcmd1bWVudHMgYmVsb3cgc2hvdWxkIGJlIGxvbmdzLgogCiAgICAg
Ly8gcGl4ZWwgbWFuaXB1bGF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNJbWFnZVNtb290aGluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNJbWFnZVNtb290aGluZy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2NhbnZhcy5odG1sI2NhbnZhc2ltYWdlc21vb3RoaW5nCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZh
c0ltYWdlU21vb3RoaW5nIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc0ltYWdlU21vb3RoaW5n
IHsKICAgICAvLyBpbWFnZSBzbW9vdGhpbmcKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbWFnZVNt
b290aGluZ0VuYWJsZWQ7IC8vIChkZWZhdWx0IHRydWUpCiAgICAgYXR0cmlidXRlIEltYWdlU21v
b3RoaW5nUXVhbGl0eSBpbWFnZVNtb290aGluZ1F1YWxpdHk7IC8vIChkZWZhdWx0IGxvdykKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdGguaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdGguaWRsCShyZXZpc2lvbiAy
NjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEwIEBACiAgKiBTVUNIIERBTUFHRS4KICAqLwogCisv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52
YXNwYXRoCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2lu
ZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc1BhdGggeworXSBpbnRlcmZhY2UgbWl4aW4g
Q2FudmFzUGF0aCB7CiAgICAgLy8gc2hhcmVkIHBhdGggQVBJIG1ldGhvZHMKICAgICB1bmRlZmlu
ZWQgY2xvc2VQYXRoKCk7CiAgICAgdW5kZWZpbmVkIG1vdmVUbyh1bnJlc3RyaWN0ZWQgZG91Ymxl
IHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNQYXRoRHJhd2luZ1N0eWxlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0aERyYXdpbmdTdHlsZXMuaWRsCShyZXZpc2lvbiAy
NjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoRHJhd2luZ1N0
eWxlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2NhbnZhc3BhdGhkcmF3aW5nc3R5bGVzCiBbCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikK
LV0gaW50ZXJmYWNlIENhbnZhc1BhdGhEcmF3aW5nU3R5bGVzIHsKK10gaW50ZXJmYWNlIG1peGlu
IENhbnZhc1BhdGhEcmF3aW5nU3R5bGVzIHsKICAgICAvLyBGSVhNRTogQWxsIHRoZSB1bnJlc3Ry
aWN0ZWQgZmxvYXQgYXJndW1lbnRzIC8gYXR0cmlidXRlcyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0
cmljdGVkIGRvdWJsZXMuCiAKICAgICAvLyBsaW5lIGNhcHMvam9pbnMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlY3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlY3QuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0
bWwjY2FudmFzcmVjdAogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9z
ZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNSZWN0IHsKK10gaW50ZXJmYWNl
IG1peGluIENhbnZhc1JlY3QgewogICAgIC8vIEZJWE1FOiBBbGwgdGhlIHVucmVzdHJpY3RlZCBm
bG9hdCBwYXJhbWV0ZXJzIGJlbG93IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAog
ICAgIC8vIHJlY3RzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTaGFk
b3dTdHlsZXMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1NoYWRvd1N0eWxlcy5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1NoYWRvd1N0eWxlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
Ky8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2Nh
bnZhc3NoYWRvd3N0eWxlcwogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNTaGFkb3dTdHlsZXMgewor
XSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzU2hhZG93U3R5bGVzIHsKICAgICAvLyBGSVhNRTogQWxs
IHRoZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYXR0cmlidXRlcyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0
cmljdGVkIGRvdWJsZXMuCiAKICAgICAvLyBzaGFkb3dzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzU3RhdGUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
Ky8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2Nh
bnZhc3N0YXRlCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0o
V2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc1N0YXRlIHsKK10gaW50ZXJmYWNlIG1p
eGluIENhbnZhc1N0YXRlIHsKICAgICAvLyBzdGF0ZQogICAgIHVuZGVmaW5lZCBzYXZlKCk7IC8v
IHB1c2ggc3RhdGUgb24gc3RhdGUgc3RhY2sKICAgICB1bmRlZmluZWQgcmVzdG9yZSgpOyAvLyBw
b3Agc3RhdGUgc3RhY2sgYW5kIHJlc3RvcmUgc3RhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1RleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1RleHQuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNUZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAg
KzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFz
dGV4dAogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93
Ci1dIGludGVyZmFjZSBDYW52YXNUZXh0IHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc1RleHQg
ewogICAgIC8vIEZJWE1FOiBBbGwgdGhlIHVucmVzdHJpY3RlZCBmbG9hdCBwYXJhbWV0ZXJzIGJl
bG93IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIHRleHQgKHNlZSBh
bHNvIHRoZSBDYW52YXNQYXRoRHJhd2luZ1N0eWxlcyBhbmQgQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMgaW50ZXJmYWNlcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Rl
eHREcmF3aW5nU3R5bGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1RleHREcmF3aW5nU3R5bGVzLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2UvY2FudmFzLmh0bWwjY2FudmFzdGV4dGRyYXdpbmdzdHlsZXMKIFsKLSAgICBMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQ2FudmFzVGV4
dERyYXdpbmdTdHlsZXMgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzVGV4dERyYXdpbmdTdHls
ZXMgewogICAgIC8vIHRleHQKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZvbnQ7IC8vIChkZWZh
dWx0IDEwcHggc2Fucy1zZXJpZikKICAgICBhdHRyaWJ1dGUgQ2FudmFzVGV4dEFsaWduIHRleHRB
bGlnbjsgLy8gKGRlZmF1bHQ6ICJzdGFydCIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNUcmFuc2Zvcm0uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1RyYW5zZm9ybS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1RyYW5zZm9ybS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5o
dG1sI2NhbnZhc3RyYW5zZm9ybQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAg
IEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNUcmFuc2Zvcm0gewor
XSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzVHJhbnNmb3JtIHsKICAgICAvLyBGSVhNRTogQWxsIHRo
ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgcGFyYW1ldGVycyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0cmlj
dGVkIGRvdWJsZXMuCiAKICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMgKGRlZmF1bHQgdHJhbnNmb3Jt
IGlzIHRoZSBpZGVudGl0eSBtYXRyaXgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNVc2VySW50ZXJmYWNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNVc2VySW50ZXJmYWNlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2NhbnZhcy5odG1sI2NhbnZhc3VzZXJpbnRlcmZhY2UKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQ2FudmFzVXNlckludGVy
ZmFjZSB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNVc2VySW50ZXJmYWNlIHsKICAgICB1bmRl
ZmluZWQgZHJhd0ZvY3VzSWZOZWVkZWQoRWxlbWVudCBlbGVtZW50KTsKICAgICB1bmRlZmluZWQg
ZHJhd0ZvY3VzSWZOZWVkZWQoUGF0aDJEIHBhdGgsIEVsZW1lbnQgZWxlbWVudCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NTMsOSArNTMsOCBAQCB0eXBlZGVmIChIVE1MQ2FudmFzRWxlbWVudCkgV2ViR0xDYW52YXM7CiAg
ICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAgIEpTQ3Vz
dG9tTWFya0Z1bmN0aW9uLAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9y
dE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSB7CitdIGludGVyZmFjZSBtaXhpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIAog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHTENhbnZhcyBjYW52YXM7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvR2xvYmFsQ3J5cHRvLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0dsb2JhbENyeXB0by5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2xvYmFsQ3J5cHRvLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMs
NyBAQAogKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCi1bCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBHbG9iYWxDcnlwdG8geworLy8gaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNyeXB0by8jY3J5cHRvLWludGVyZmFjZQoraW50ZXJmYWNl
IG1peGluIEdsb2JhbENyeXB0byB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENyeXB0byBjcnlw
dG87CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGwJ
KHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsUGVyZm9ybWFu
Y2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMSArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0vLyBodHRwczovL3czYy5naXRodWIuaW8vaHItdGltZS8KLQorLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL2hyLXRpbWUvI2V4dGVuc2lvbnMtdG8td2luZG93b3J3b3JrZXJnbG9iYWxz
Y29wZS1taXhpbgogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9
KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBHbG9iYWxQZXJmb3JtYW5jZSB7CitdIGludGVy
ZmFjZSBtaXhpbiBHbG9iYWxQZXJmb3JtYW5jZSB7CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25s
eSBhdHRyaWJ1dGUgUGVyZm9ybWFuY2UgcGVyZm9ybWFuY2U7CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw4IEBACiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1SZWFjaGFibGVGcm9tRE9NV2luZG93LAogICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogXSBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyBzcGVjaWZpZWQgdG8gYmUgaW4gaXQncyBvd24gbWl4aW4gY2FsbGVkIE5hdmlnYXRvckNvb2tp
ZXMuCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3lzdGVt
LXN0YXRlLmh0bWwjbmF2aWdhdG9yY29va2llcwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGNvb2tpZUVuYWJsZWQ7CiAKICAgICBbQ29uZGl0aW9uYWw9TkFWSUdBVE9SX1NUQU5EQUxP
TkVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHN0YW5kYWxvbmU7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvcklELmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvcklELmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDggQEAK
ICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1dIGlu
dGVyZmFjZSBOYXZpZ2F0b3JJRCB7CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9zeXN0ZW0tc3RhdGUuaHRtbCNuYXZpZ2F0b3JpZAoraW50ZXJmYWNlIG1peGluIE5h
dmlnYXRvcklEIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVOYW1l
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwTmFtZTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcFZlcnNpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkg
KzI2LDggQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Ci1dIGludGVyZmFjZSBOYXZpZ2F0b3JMYW5ndWFnZSB7CisvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS9zeXN0ZW0tc3RhdGUuaHRtbCNuYXZpZ2F0b3JsYW5ndWFn
ZQoraW50ZXJmYWNlIG1peGluIE5hdmlnYXRvckxhbmd1YWdlIHsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGxhbmd1YWdlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5B
cnJheTxET01TdHJpbmc+IGxhbmd1YWdlczsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvck9uTGluZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JPbkxpbmUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvck9uTGluZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDcgQEAK
ICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1dIGlu
dGVyZmFjZSBOYXZpZ2F0b3JPbkxpbmUgeworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvb2ZmbGluZS5odG1sI25hdmlnYXRvcm9ubGluZQoraW50ZXJmYWNlIG1peGlu
IE5hdmlnYXRvck9uTGluZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5l
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUGx1Z2lucy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JQbHVnaW5zLmlkbAkocmV2
aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JQbHVnaW5zLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjMsOSArMjMsOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdAotXSBp
bnRlcmZhY2UgTmF2aWdhdG9yUGx1Z2lucyB7CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9zeXN0ZW0tc3RhdGUuaHRtbCNuYXZpZ2F0b3JwbHVnaW5zCitpbnRlcmZh
Y2UgbWl4aW4gTmF2aWdhdG9yUGx1Z2lucyB7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01QbHVnaW5BcnJheSBwbHVnaW5zOwogICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NTWltZVR5cGVBcnJheSBtaW1lVHlwZXM7CiAgICAgYm9vbGVhbiBqYXZh
RW5hYmxlZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JTZXJ2aWNlV29y
a2VyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclNlcnZp
Y2VXb3JrZXIuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclNlcnZpY2VXb3JrZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2V3b3JrZXIKIFsK
LSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1TRVJWSUNFX1dP
UktFUiwKICAgICBFbmFibGVkQXRSdW50aW1lPVNlcnZpY2VXb3JrZXIKLV0gaW50ZXJmYWNlIE5h
dmlnYXRvclNlcnZpY2VXb3JrZXIgeworXSBpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9yU2Vydmlj
ZVdvcmtlciB7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93
RXhjZXB0aW9uLCBTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
U2VydmljZVdvcmtlckNvbnRhaW5lciBzZXJ2aWNlV29ya2VyOwogfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU2hhcmUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvTmF2aWdhdG9yU2hhcmUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvclNoYXJlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTEg
KzIzLDEwIEBACiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCi0KKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWItc2hhcmUvI2V4dGVuc2lvbnMtdG8tdGhlLW5hdmlnYXRvci1pbnRlcmZhY2UKIFsKLSAg
ICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFbmFibGVkQnlTZXR0aW5nPVdlYlNoYXJl
Ci1dIGludGVyZmFjZSBOYXZpZ2F0b3JTaGFyZSB7CitdIGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0
b3JTaGFyZSB7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50LCBTZWN1cmVDb250ZXh0XSBib29sZWFu
IGNhblNoYXJlKG9wdGlvbmFsIFNoYXJlRGF0YSBzaGFyZURhdGEpOwogICAgIFtDYWxsV2l0aD1E
b2N1bWVudCwgU2VjdXJlQ29udGV4dF0gUHJvbWlzZTx1bmRlZmluZWQ+IHNoYXJlKG9wdGlvbmFs
IFNoYXJlRGF0YSBzaGFyZURhdGEpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2lu
ZG93RXZlbnRIYW5kbGVycy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9X
aW5kb3dFdmVudEhhbmRsZXJzLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9XaW5kb3dFdmVudEhhbmRsZXJzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTQg
KzI1LDEwIEBACiAgKi8KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvd2ViYXBwYXBpcy5odG1sI3dpbmRvd2V2ZW50aGFuZGxlcnMKLVsKLSAgICBMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFdpbmRvd0V2ZW50SGFuZGxlcnMgewotICAgIC8v
IENvbW1lbnRlZCBvdXQgZXZlbnQgaGFuZGxlcnMgYXJlIGRlZmluZWQgYnkgdGhlIEhUTUw1IHNw
ZWNpZmljYXRpb24gYnV0Ci0gICAgLy8gYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCi0KK2ludGVy
ZmFjZSBtaXhpbiBXaW5kb3dFdmVudEhhbmRsZXJzIHsKICAgICBbV2luZG93RXZlbnRIYW5kbGVy
XSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWZ0ZXJwcmludDsKICAgICBbV2luZG93RXZlbnRI
YW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmVmb3JlcHJpbnQ7CisgICAgLy8gRklY
TUU6IFRoZSBzcGVjIHNheXMgdGhhdCBvbmJlZm9yZXVubG9hZCBzaG91bGQgYmUgb2YgdHlwZSBP
bkJlZm9yZVVubG9hZEV2ZW50SGFuZGxlciwgbm90IEV2ZW50SGFuZGxlci4KICAgICBbV2luZG93
RXZlbnRIYW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmVmb3JldW5sb2FkOwogICAg
IFtXaW5kb3dFdmVudEhhbmRsZXJdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25oYXNoY2hhbmdl
OwogICAgIFtXaW5kb3dFdmVudEhhbmRsZXJdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sYW5n
dWFnZWNoYW5nZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDIs
OSArNDIsOCBAQCB0eXBlZGVmIChIVE1MSW1hZ2VFbGVtZW50CiAKIHR5cGVkZWYgKENhbnZhc0lt
YWdlU291cmNlIG9yIEJsb2Igb3IgSW1hZ2VEYXRhKSBJbWFnZUJpdG1hcFNvdXJjZTsKIAotWwot
ICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZSB7CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93
ZWJhcHBhcGlzLmh0bWwjd2luZG93b3J3b3JrZXJnbG9iYWxzY29wZS1taXhpbgoraW50ZXJmYWNl
IG1peGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICAgIFtSZXBsYWNlYWJsZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBvcmlnaW47CiAKICAgICAvLyBUaW1lcnMKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjQsOSArMjQsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotWwotICAgIExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzIHsKKy8vIGh0dHBzOi8vZHJhZnRzLmZ4dGYub3JnL2ZpbHRlci1lZmZl
Y3RzLyNJbnRlcmZhY2VTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKK2ludGVy
ZmFjZSBtaXhpbiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCB3aWR0aDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3
Qm94LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsMTAgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFNW
R0ZpdFRvVmlld0JveCB7CisvLyBodHRwczovL3N2Z3dnLm9yZy9zdmcyLWRyYWZ0L3R5cGVzLmh0
bWwjSW50ZXJmYWNlU1ZHRml0VG9WaWV3Qm94CitpbnRlcmZhY2UgbWl4aW4gU1ZHRml0VG9WaWV3
Qm94IHsKKyAgICAvLyBGSVhNRTogJ3ZpZXdCb3gnIHNob3VsZCBiZSBhbm5vdGF0ZWQgd2l0aCBb
U2FtZU9iamVjdF0uCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUmVjdCB2aWV3
Qm94OworICAgIC8vIEZJWE1FOiAncHJlc2VydmVBc3BlY3RSYXRpbycgc2hvdWxkIGJlIGFubm90
YXRlZCB3aXRoIFtTYW1lT2JqZWN0XS4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGVzdHMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGVzdHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNCArMjQsMTUgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLSAgICBT
dXBwcmVzc1RvSlNPYmplY3QsCi1dIGludGVyZmFjZSBTVkdUZXN0cyB7Ci0gICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRmVhdHVyZXM7Cisv
LyBodHRwczovL3N2Z3dnLm9yZy9zdmcyLWRyYWZ0L3R5cGVzLmh0bWwjSW50ZXJmYWNlU1ZHVGVz
dHMKK2ludGVyZmFjZSBtaXhpbiBTVkdUZXN0cyB7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRXh0ZW5zaW9uczsKICAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1N0cmluZ0xpc3Qgc3lzdGVtTGFuZ3VhZ2U7CiAK
KworICAgIC8vIEFzIG9mIFNWRzIsIHRoZSBmb2xsb3dpbmcgYXJlIG5vIGxvbmdlciBwYXJ0IG9m
IHRoaXMgaW50ZXJmYWNlLgorCisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdTdHJpbmdMaXN0IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRl
ZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIGJvb2xlYW4g
aGFzRXh0ZW5zaW9uKG9wdGlvbmFsIERPTVN0cmluZyBleHRlbnNpb24gPSAidW5kZWZpbmVkIik7
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi1bCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi0gICAgU3VwcHJlc3NUb0pTT2JqZWN0LAotXSBp
bnRlcmZhY2UgU1ZHVVJJUmVmZXJlbmNlIHsKKy8vIGh0dHBzOi8vc3Znd2cub3JnL3N2ZzItZHJh
ZnQvdHlwZXMuaHRtbCNJbnRlcmZhY2VTVkdVUklSZWZlcmVuY2UKK2ludGVyZmFjZSBtaXhpbiBT
VkdVUklSZWZlcmVuY2UgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmlu
ZyBocmVmOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5pZGwJKHJldmlz
aW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjQsOSArMjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotWwot
ICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgU1ZHWm9vbUFuZFBhbiB7
CitpbnRlcmZhY2UgbWl4aW4gU1ZHWm9vbUFuZFBhbiB7CiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX1pPT01BTkRQQU5fVU5LTk9XTiA9IDA7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1ZHX1pPT01BTkRQQU5fRElTQUJMRSA9IDE7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X1pPT01BTkRQQU5fTUFHTklGWSA9IDI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fi
c3RyYWN0V29ya2VyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fi
c3RyYWN0V29ya2VyLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9BYnN0cmFjdFdvcmtlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5LDkgKzI5LDggQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAot
XSBpbnRlcmZhY2UgQWJzdHJhY3RXb3JrZXIgeworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2Fic3RyYWN0d29ya2VyCitpbnRlcmZhY2UgbWl4
aW4gQWJzdHJhY3RXb3JrZXIgewogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkocmV2aXNpb24g
MjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsOSArMjIsOCBAQAogXSBpbnRlcmZhY2UgWFBhdGhFdmFsdWF0b3Igewog
ICAgIGNvbnN0cnVjdG9yKCk7CiAKKyAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBzaG91bGQg
YmUgZXh0cmFjdGVkIGludG8gYSBuZXcgbWl4aW4sIFhQYXRoRXZhbHVhdG9yQmFzZSAtIGh0dHBz
Oi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jeHBhdGhldmFsdWF0b3JiYXNlCiAgICAgW01heVRocm93
RXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhw
cmVzc2lvbiwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlcik7Ci0KICAgICBYUGF0
aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihOb2RlIG5vZGVSZXNvbHZlcik7Ci0KICAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNz
aW9uLCBOb2RlIGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVy
LCBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/
IGluUmVzdWx0KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVy
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlk
bAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDggQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgogICovCiAKKy8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY2Fs
bGJhY2tkZWYteHBhdGhuc3Jlc29sdmVyCisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBjYWxs
YmFjayBpbnRlcmZhY2UuCiBbCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgU2tp
cFZUYWJsZVZhbGlkYXRpb24sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408097</attachid>
            <date>2020-09-05 14:33:57 -0700</date>
            <delta_ts>2020-09-05 17:47:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216217-20200905143355.patch</filename>
            <type>text/plain</type>
            <size>119337</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0NCBAQAorMjAyMC0wOS0wNSAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQg
Zm9yIGludGVyZmFjZSBtaXhpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNjIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBXZWJJREwgaW50ZXJmYWNlIG1peGlu
cywgd2hpY2ggYXJlIGludGVyZmFjZSBmcmFnbWVudHMKKyAgICAgICAgdGhhdCBjYW4gYmUgaW5j
bHVkZWQgaW50byBvdGhlciBpbnRlcmZhY2VzICh1c2luZyBhbiAnaW5jbHVkZXMnIHN0YXRlbWVu
dCksIAorICAgICAgICBidXQgZG8gbm90IGNyZWF0ZSBuZXcgdHlwZXMgdGhlbXNlbHZlcy4KKyAg
ICAgICAgCisgICAgICAgIFByaW9yIHRvIHRoaXMsIHdlIGhhdmUgYmVlbiBlbXVsYXRpbmcgdGhl
IGJlaGF2aW9yIGJ5IGFsbG93aW5nIGFueSBpbnRlcmZhY2UKKyAgICAgICAgdG8gYmUgaW5jbHVk
ZWQgaW4gYW5vdGhlciBpbnRlcmZhY2UsIGFuZCBtYXJraW5nIHNvbWUgaW50ZXJmYWNlcyB3aXRo
IHRoZQorICAgICAgICBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0
ZS4gVGhpcyBjaGFuZ2UgY29kaWZpZXMgdGhhdCB3aXRoCisgICAgICAgIGluIHRoZSBzcGVjIGFw
cHJvdmVkIHdheS4KKyAgICAgICAgCisgICAgICAgIC0gVXBkYXRlcyBJREwgcGFyc2VyIHRvIHBh
cnNlIG1peGluIGludGVyZmFjZXMgKGFuZCBmaXhlcyB0aGUgcGFyc2luZyBvZiBjYWxsYmFjawor
ICAgICAgICAgIGludGVyZmFjZXMgdG8gYmUgYSBiaXQgbW9yZSBzdHJpY3Qgd2hpbGUgSSB3YXMg
dGhlcmUpLgorICAgICAgICAtIFVwZGF0ZXMgSURMIHByZS1wcm9jZXNzb3IgdG8gYXZvaWQgY3Jl
YXRpbmcgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgSXNvU3Vic3BhY2VzIAorICAgICAgICAgIGZvciBt
aXhpbnMuCisgICAgICAgIC0gVXBkYXRlcyBJREwgY29kZSBnZW5lcmF0b3IgdG8gb25seSBzdXBw
b3J0IGluY2x1ZGluZyBtaXhpbiBpbnRlcmZhY2VzIGR1cmluZworICAgICAgICAgIHN1cHBsZW1l
bnRhbCBpbmNsdXNpb24uCisgICAgICAgIC0gVXBkYXRlcyBJREwgZmlsZXMgdG8gdXNlIGludGVy
ZmFjZSBtaXhpbiB3aGVyZSBhcHByb3ByaWF0ZWx5IHNwZWNpZmllZC4gCisKKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsOiBSZW1vdmVkLgorICAg
ICAgICBSZW1vdmUgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBhbmQgY29ycmVz
cG9uZGluZyBnZW5lcmF0ZWQgZmlsZXMsIGlubGluaW5nCisgICAgICAgIGl0IGludG8gRGV2aWNl
TW90aW9uRXZlbnQuaWRsIGFuZCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBhcyBzcGVjaWZp
ZWQuIFRoaXMgaXMKKyAgICAgICAgbmVlZGVkIGFzIG1peGluIGludGVyZmFjZXMgZG8gbm90IHN1
cHBvcnQgc3RhdGljIG9wZXJhdGlvbnMgb3IgYXR0cmlidXRlcy4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKElzVmFsaWRTdXBwbGVtZW50
YWxJbnRlcmZhY2UpOgorICAgICAgICAoSXNWYWxpZFN1cHBsZW1lbnRhbERpY3Rpb25hcnkpOgor
ICAgICAgICAoUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcyk6CisgICAgICAgIChHZXRJ
bnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSk6CisgICAgICAgIFVwZGF0ZSBJREwg
Y29kZSBnZW5lcmF0b3IgdG8gb25seSBzdXBwb3J0IGluY2x1ZGluZyBtaXhpbiBpbnRlcmZhY2Vz
IGR1cmluZworICAgICAgICBzdXBwbGVtZW50YWwgaW5jbHVzaW9uLiBBbHNvIHJlbW92ZXMgc29t
ZSBsZWZ0IG9mIHJlbW5lbnRzIG9mIGV4Y2VwdGlvbiBpbnRlcmZhY2UKKyAgICAgICAgc3VwcG9y
dC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAo
cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUNhbGxiYWNrSW50
ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzKToKKyAgICAg
ICAgKHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VNaXhpbik6
CisgICAgICAgIChwYXJzZU1peGluTWVtYmVycyk6CisgICAgICAgIChwYXJzZU1peGluTWVtYmVy
KToKKyAgICAgICAgKHBhcnNlTmFtZXNwYWNlKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVy
ZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uRm9yU3RyaW5n
aWZpZXJPclN0YXRpYyk6CisgICAgICAgIFVwZGF0ZSBJREwgcGFyc2VyIHRvIHBhcnNlIG1peGlu
IGludGVyZmFjZXMgYW5kIGZpeCB0aGUgcGFyc2luZyBvZiBjYWxsYmFjaworICAgICAgICBpbnRl
cmZhY2VzIHRvIG1hdGNoIHRoZSBzcGVjIGJ5IHJlc3RyaWN0aW5nIGl0cyBtZW1iZXJzIHRvIGNv
bnN0YW50cyBhbmQKKyAgICAgICAgcmVndWxhciBmdW5jdGlvbnMuCisgICAgICAgIAorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICAoaXNNaXhp
bkludGVyZmFjZUZyb21JREwpOgorICAgICAgICAoY29udGFpbnNJbnRlcmZhY2VGcm9tSURMKToK
KyAgICAgICAgKGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JREwpOgorICAgICAg
ICAoY29udGFpbnNJbnRlcmZhY2VPckV4Y2VwdGlvbkZyb21JREwpOiBEZWxldGVkLgorICAgICAg
ICBFbnN1cmUgbWl4aW4gaW50ZXJmYWNlcyBkb24ndCBnZXQgZXhwb3NlZCBvbiBhbnkgZ2xvYmFs
IG9iamVjdHMgYW5kCisgICAgICAgIHJlbW92ZSBzb21lIGxlZnQgb2YgcmVtbmVudHMgb2YgZXhj
ZXB0aW9uIGludGVyZmFjZSBzdXBwb3J0LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxE
ZXBlbmRlbmNpZXMuZGVwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5j
bHVkZXMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9wZXJhdGlvbkJhc2UuaWRsOgorICAgICAgICBVcGRhdGUgYmluZGluZ3MgdGVzdHMg
dG8gdXNlIG1peGlucyBmb3IgaW5jbHVkZXMuIEFkZCBuZXcgZGVkaWNhdGVkIAorICAgICAgICBb
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIHNpbmNlIGl0IHdhcyBubyBsb25nZXIgYmVpbmcgdGVz
dGVkLiAKKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSb2xlLmlkbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVz
LmlkbDoKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGw6CisgICAgICAgICogY3Nz
L0VsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRs
OgorICAgICAgICAqIGRvbS9DaGlsZE5vZGUuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rp
b25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnMuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9v
dC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaWRsOgorICAgICAgICAqIGRvbS9H
bG9iYWxFdmVudEhhbmRsZXJzLmlkbDoKKyAgICAgICAgKiBkb20vTmF2aWdhdG9yTWF4VG91Y2hQ
b2ludHMuaWRsOgorICAgICAgICAqIGRvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOgor
ICAgICAgICAqIGRvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGw6CisgICAgICAgICogZG9tL1Bh
cmVudE5vZGUuaWRsOgorICAgICAgICAqIGRvbS9TbG90YWJsZS5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPckZv
cmVpZ25FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGlu
Zy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzRHJhd0ltYWdlLmlkbDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzRmlsdGVycy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1BhdGguaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdGhEcmF3
aW5nU3R5bGVzLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTaGFkb3dTdHlsZXMuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNU
ZXh0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNVc2VySW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbDoKKyAgICAgICAgKiBwYWdlL0dsb2Jh
bENyeXB0by5pZGw6CisgICAgICAgICogcGFnZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGw6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRs
OgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yT25MaW5lLmlkbDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvclBsdWdpbnMuaWRs
OgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yU2VydmljZVdvcmtlci5pZGw6CisgICAgICAgICog
cGFnZS9OYXZpZ2F0b3JTaGFyZS5pZGw6CisgICAgICAgICogcGFnZS9XaW5kb3dFdmVudEhhbmRs
ZXJzLmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsOgorICAgICAgICAqIHN2Zy9TVkdUZXN0
cy5pZGw6CisgICAgICAgICogc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogc3Zn
L1NWR1pvb21BbmRQYW4uaWRsOgorICAgICAgICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRs
OgorICAgICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5pZGw6CisgICAgICAgICogeG1sL1hQYXRo
TlNSZXNvbHZlci5pZGw6CisgICAgICAgIFVwZGF0ZSBJRExzLgorCiAyMDIwLTA5LTA1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgWE1MIGRv
Y3VtZW50cyBpbiBpZnJhbWVzIHNob3VsZCBub3QgaW5oZXJpdCBlbmNvZGluZyBmcm9tIHBhcmVu
dCBmcmFtZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03NjEsNyArNzYx
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vRGF0YVRyYW5zZmVy
SXRlbUxpc3QuaWRsCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAogICAgIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmlkbAotICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsCiAgICAgZG9tL0RvY3VtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRF
dmVudEhhbmRsZXJzLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC01Mjgs
OCArNTI4LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VNb3Rpb25F
dmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAotJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEaXN0YW5jZU1vZGVsVHlwZS5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY2NjcxKQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
NzEyLDcgKzcxMiw2IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjgzNCw3ICsyODM0LDYgQEAgSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZS5jcHAKIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAogSlNEZXZpY2VNb3Rp
b25FdmVudC5jcHAKIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKLUpTRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlLmNwcAogSlNEaXN0YW5jZU1vZGVsVHlwZS5jcHAKIEpTRG9jdW1lbnQuY3BwCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCShyZXZpc2lv
biAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDcgQEAKICAgICBFbmFibGVkQXRSdW50aW1lPUZl
dGNoQVBJLAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEludGVyZmFjZU5hbWU9
Qm9keSwKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdAotXSBpbnRlcmZhY2UgRmV0Y2hCb2R5
IHsKK10gaW50ZXJmYWNlIG1peGluIEZldGNoQm9keSB7CiAgICAgW0ltcGxlbWVudGVkQXM9cmVh
ZGFibGVTdHJlYW0sIENhbGxXaXRoPUdsb2JhbE9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFJl
YWRhYmxlU3RyZWFtPyBib2R5OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvZHlV
c2VkOwogICAgIFtOZXdPYmplY3RdIFByb21pc2U8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tR
dWFsaXR5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRlb1BsYXliYWNrUXVhbGl0eS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWEtcGxheWJhY2st
cXVhbGl0eS8jaWRsLWRlZi12aWRlb3BsYXliYWNrcXVhbGl0eQorLy8gRklYTUU6IFRoaXMgaXMg
bm90IHNwZWNpZmllZCBhcyAiTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiLiBJdCBzaG91bGQgaGF2
ZSBhbiBpbnRlcmZhY2Ugb2JqZWN0LgogWwogICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgIExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw3ICsyMiw5IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCi0gCisKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc3BlZWNoLWFwaS8jdHRzLXNlY3Rp
b24KKy8vIEZJWE1FOiBUaGlzIGlzIG5vdCBzcGVjaWZpZWQgYXMgIkxlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Ii4gSXQgc2hvdWxkIGhhdmUgYW4gaW50ZXJmYWNlIG9iamVjdC4KIFsKICAgICBDb25k
aXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTLAogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc1ZvaWNlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw3ICsyMiw5IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCi0gCisK
Ky8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc3BlZWNoLWFwaS8jc3BlZWNoc3ludGhlc2lzdm9p
Y2UKKy8vIEZJWE1FOiBUaGlzIGlzIG5vdCBzcGVjaWZpZWQgYXMgIkxlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Ii4gSXQgc2hvdWxkIGhhdmUgYW4gaW50ZXJmYWNlIG9iamVjdC4KIFsKICAgICBMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc5MjEsNyArNzkyMSw2IEBACiAJ
CTQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhZ0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY0MjQwNDUyMEVBRjBFRDAwQjI5RkQyIC8qIERhdGFiYXNlTWFuYWdlckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBS
dW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0NjVFREQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDY2MTcyRTkyM0EyQUJGQTAwM0FCMzA5IC8qIFBvc3RNZXNzYWdlT3B0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUG9zdE1lc3NhZ2VPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDY2LDExICsxNzQ2NSwxMSBAQAogCQkJ
CTZGQjI0MDAzMjNERkYxMjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCiAJCQkJNkZF
MTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmNwcCAqLywKIAkJCQk2
RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCAqLywKKwkJCQk2
RjI1QjIwMDIyMEE4NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAorCQkJ
CTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJ
CTZGMzYwRTRFMjM5OTk0MjAwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oICov
LAogCQkJCTZGMUNDMURDMjI1RjhCNDEwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5jcHAgKi8s
CiAJCQkJNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi8sCi0J
CQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxpbmVCdWlsZGVyLmNwcCAqLywK
LQkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gaW5saW5lZm9ybWF0dGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yOTE1NCw3ICsyOTE1Myw2IEBACiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVG
MUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsICovLAogCQkJCTQ2MURBNTJDMjIyRjQ4
NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovLAogCQkJ
CTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaCAqLywKLQkJCQk0NjVFREQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50LmlkbCAqLywKIAkJCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovLAogCQkJCTQ2NUVE
REEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlLmlkbCAqLywKIAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQu
Y3BwICovLApAQCAtMzE2NTEsNiArMzE2NDksNyBAQAogCQkJCTZGMENENjk1MjI5RUQzMjcwMEM1
OTk0RSAvKiBJbmxpbmVMaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkIyNDAwNTIzREZGMTI4
MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZFMTk4MTcy
MTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY0NTc3NUNFMjQxNDM3RDUwMDJERjFBMCAvKiBJbmxpbmVQYXRoRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNkYzNjBFNTAyMzk5OTQyMTAwMTUxMkE3IC8qIElubGluZVNv
ZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTRDM0E3NzBCMkIxNjc5MDAy
MzM0QTIgLyogSW5saW5lU3R5bGVTaGVldE93bmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNjYy
LDcgKzMyNjYxLDYgQEAKIAkJCQk4NDczMEQ5MTEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBMaW5l
YXJHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFCMzFDOTFFMTBBRTFC
OEUwMDBDN0I5MiAvKiBMaW5lQ2xhbXBWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkYyNkVC
NDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGluZUxheW91dFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURFNkEgLyogTGluZUxheW91dFRyYXZl
cnNhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQzNDNEMjUyMzkyNzc5MDAwRUJCQjY2IC8qIExp
bmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbAko
cmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Um9sZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDkgKzIzLDkgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL2FvbS9zcGVjL2FyaWEtcmVmbGVjdGlvbi5odG1sI0FjY2Vzc2liaWxpdHlSb2xlCiBbCi0g
ICAgRW5hYmxlZEF0UnVudGltZT1BcmlhUmVmbGVjdGlvbiwKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKLV0gaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlSb2xlIHsKKyAgICBFbmFibGVkQXRS
dW50aW1lPUFyaWFSZWZsZWN0aW9uCitdIGludGVyZmFjZSBtaXhpbiBBY2Nlc3NpYmlsaXR5Um9s
ZSB7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmc/IHJvbGU7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwJKHJl
dmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQXJpYUF0dHJp
YnV0ZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L2FvbS9zcGVjL2FyaWEtcmVmbGVjdGlvbi5odG1sI0FyaWFBdHRyaWJ1dGVzCiBbCiAgICAgRW5h
YmxlZEF0UnVudGltZT1BcmlhUmVmbGVjdGlvbiwKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCwKLV0gaW50ZXJmYWNlIEFyaWFBdHRyaWJ1dGVzIHsKK10gaW50ZXJmYWNlIG1peGluIEFyaWFB
dHRyaWJ1dGVzIHsKICAgICBbUmVmbGVjdD1hcmlhX2F0b21pY10gICAgICAgICAgIGF0dHJpYnV0
ZSBET01TdHJpbmc/IGFyaWFBdG9taWM7CiAgICAgW1JlZmxlY3Q9YXJpYV9hdXRvY29tcGxldGVd
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBhcmlhQXV0b0NvbXBsZXRlOwogICAgIFtSZWZsZWN0
PWFyaWFfYnVzeV0gICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZz8gYXJpYUJ1c3k7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGFibGUuaWRsCShyZXZpc2lvbiAyNjY2
NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvd2ViLWFuaW1hdGlvbnMtMS8jdGhlLWFuaW1hdGFibGUtaW50
ZXJmYWNlLW1peGluCiBbCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJBbmltYXRpb25zLAotICAg
IExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1dIGludGVyZmFjZSBBbmltYXRhYmxlIHsKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnMKK10gaW50ZXJmYWNlIG1peGluIEFuaW1hdGFi
bGUgewogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSBXZWJB
bmltYXRpb24gYW5pbWF0ZShvYmplY3Q/IGtleWZyYW1lcywgb3B0aW9uYWwgKHVucmVzdHJpY3Rl
ZCBkb3VibGUgb3IgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zKSBvcHRpb25zKTsKICAgICBzZXF1
ZW5jZTxXZWJBbmltYXRpb24+IGdldEFuaW1hdGlvbnMob3B0aW9uYWwgR2V0QW5pbWF0aW9uc09w
dGlvbnMgb3B0aW9ucyk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCSh3b3JraW5nIGNvcHkpCkBA
IC0yODEsNiArMjgxLDIzIEBAIHN1YiBNZXJnZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21TdXBwbGVt
ZW4KICAgICB9CiB9CiAKK3N1YiBJc1ZhbGlkU3VwcGxlbWVudGFsSW50ZXJmYWNlCit7CisgICAg
bXkgKCRvYmplY3QsICR0YXJnZXREb2N1bWVudCwgJHN1cHBsZW1lbnRhbEludGVyZmFjZSwgJHRh
cmdldEludGVyZmFjZU5hbWUpID0gQF87CisKKyAgICByZXR1cm4gMSBpZiAkc3VwcGxlbWVudGFs
SW50ZXJmYWNlLT5pc1BhcnRpYWwgJiYgJHN1cHBsZW1lbnRhbEludGVyZmFjZS0+dHlwZS0+bmFt
ZSBlcSAkdGFyZ2V0SW50ZXJmYWNlTmFtZTsKKyAgICByZXR1cm4gMSBpZiAkc3VwcGxlbWVudGFs
SW50ZXJmYWNlLT5pc01peGluOworICAgIHJldHVybiAwOworfQorCitzdWIgSXNWYWxpZFN1cHBs
ZW1lbnRhbERpY3Rpb25hcnkKK3sKKyAgICBteSAoJG9iamVjdCwgJHRhcmdldERvY3VtZW50LCAk
c3VwcGxlbWVudGFsRGljdGlvbmFyeSwgJHRhcmdldEludGVyZmFjZU5hbWUpID0gQF87CisKKyAg
ICByZXR1cm4gMSBpZiAkc3VwcGxlbWVudGFsRGljdGlvbmFyeS0+aXNQYXJ0aWFsICYmICRzdXBw
bGVtZW50YWxEaWN0aW9uYXJ5LT50eXBlLT5uYW1lIGVxICR0YXJnZXRJbnRlcmZhY2VOYW1lOwor
ICAgIHJldHVybiAwOworfQorCiBzdWIgUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwog
ewogICAgIG15ICgkb2JqZWN0LCAkdGFyZ2V0RG9jdW1lbnQpID0gQF87CkBAIC0yOTEsNiArMzA4
LDkgQEAgc3ViIFByb2Nlc3NTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBwcm9jZXNzaW5nIHJlY3Vy
c2l2ZSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jaWVzCisgICAgIyB0byBwcm92aWRlIHN1cHBvcnQg
Zm9yIHBhcnRpYWwgaW50ZXJmYWNlIG1peGlucy4KKwogICAgIGZvcmVhY2ggbXkgJGlkbEZpbGUg
KEB7JHN1cHBsZW1lbnRhbERlcGVuZGVuY2llcy0+eyR0YXJnZXRGaWxlTmFtZX19KSB7CiAgICAg
ICAgIG5leHQgaWYgZmlsZXBhcnNlKCRpZGxGaWxlKSBlcSAkdGFyZ2V0RmlsZU5hbWU7CiAKQEAg
LTI5OSw3ICszMTksNyBAQCBzdWIgUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwogICAg
ICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkaWRsRmlsZSwgJGRlZmluZXMsICRw
cmVwcm9jZXNzb3IsICRpZGxBdHRyaWJ1dGVzKTsKIAogICAgICAgICBmb3JlYWNoIG15ICRpbnRl
cmZhY2UgKEB7JGRvY3VtZW50LT5pbnRlcmZhY2VzfSkgewotICAgICAgICAgICAgbmV4dCB1bmxl
c3MgISRpbnRlcmZhY2UtPmlzUGFydGlhbCB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICR0
YXJnZXRJbnRlcmZhY2VOYW1lOworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJG9iamVjdC0+SXNW
YWxpZFN1cHBsZW1lbnRhbEludGVyZmFjZSgkdGFyZ2V0RG9jdW1lbnQsICRpbnRlcmZhY2UsICR0
YXJnZXRJbnRlcmZhY2VOYW1lKTsKIAogICAgICAgICAgICAgbXkgJHRhcmdldERhdGFOb2RlOwog
ICAgICAgICAgICAgbXkgQHRhcmdldEdsb2JhbENvbnRleHRzOwpAQCAtMzU0LDcgKzM3NCw3IEBA
IHN1YiBQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzCiAgICAgICAgIH0KIAogICAgICAg
ICBmb3JlYWNoIG15ICRkaWN0aW9uYXJ5IChAeyRkb2N1bWVudC0+ZGljdGlvbmFyaWVzfSkgewot
ICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGRpY3Rpb25hcnktPmlzUGFydGlhbCAmJiAkZGljdGlv
bmFyeS0+dHlwZS0+bmFtZSBlcSAkdGFyZ2V0SW50ZXJmYWNlTmFtZTsKKyAgICAgICAgICAgIG5l
eHQgdW5sZXNzICRvYmplY3QtPklzVmFsaWRTdXBwbGVtZW50YWxEaWN0aW9uYXJ5KCR0YXJnZXRE
b2N1bWVudCwgJGRpY3Rpb25hcnksICR0YXJnZXRJbnRlcmZhY2VOYW1lKTsKIAogICAgICAgICAg
ICAgbXkgJHRhcmdldERhdGFOb2RlOwogICAgICAgICAgICAgbXkgQHRhcmdldEdsb2JhbENvbnRl
eHRzOwpAQCAtMTE4NCw3ICsxMjA0LDcgQEAgc3ViIEdldEludGVyZmFjZUV4dGVuZGVkQXR0cmli
dXRlc0Zyb21OYQogCiAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHt9OwogCi0gICAgaWYg
KCRmaWxlQ29udGVudHMgPX4gL1xbKC4qKVxdXHMrKGNhbGxiYWNrIGludGVyZmFjZXxpbnRlcmZh
Y2V8ZXhjZXB0aW9uKVxzKyhcdyspL2dzKSB7CisgICAgaWYgKCRmaWxlQ29udGVudHMgPX4gL1xb
KC4qKVxdXHMrKGNhbGxiYWNrIGludGVyZmFjZXxpbnRlcmZhY2UpXHMrKFx3KykvZ3MpIHsKICAg
ICAgICAgbXkgQHBhcnRzID0gc3BsaXQoJywnLCAkMSk7CiAgICAgICAgIGZvcmVhY2ggbXkgJHBh
cnQgKEBwYXJ0cykgewogICAgICAgICAgICAgbXkgQGtleVZhbHVlID0gc3BsaXQoJz0nLCAkcGFy
dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5w
bQkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0KCBJRExJ
bnRlcmZhY2UgPT4gewogICAgIGF0dHJpYnV0ZXMgPT4gJ0AnLCAgICAjIExpc3Qgb2YgJ0lETEF0
dHJpYnV0ZScKICAgICBjb25zdHJ1Y3RvcnMgPT4gJ0AnLCAjIENvbnN0cnVjdG9ycywgbGlzdCBv
ZiAnSURMT3BlcmF0aW9uJwogICAgIGlzQ2FsbGJhY2sgPT4gJyQnLCAjIFVzZWQgZm9yIGNhbGxi
YWNrIGludGVyZmFjZXMKKyAgICBpc01peGluID0+ICckJywgIyBVc2VkIGZvciBtaXhpbiBpbnRl
cmZhY2VzCiAgICAgaXNQYXJ0aWFsID0+ICckJywgIyBVc2VkIGZvciBwYXJ0aWFsIGludGVyZmFj
ZXMKICAgICBpdGVyYWJsZSA9PiAnJCcsICMgVXNlZCBmb3IgaXRlcmFibGUgaW50ZXJmYWNlcywg
b2YgdHlwZSAnSURMSXRlcmFibGUnCiAgICAgYXN5bmNJdGVyYWJsZSA9PiAnJCcsICMgVXNlZCBm
b3IgYXN5Y24gaXRlcmFibGUgaW50ZXJmYWNlcywgb2YgdHlwZSAnSURMQXN5bmNJdGVyYWJsZScK
QEAgLTYzNSw3ICs2MzYsNyBAQCBzdWIgYWRkQnVpbHRpblR5cGVkZWZzKCkKICAgICAkdHlwZWRl
ZnN7IkRPTVRpbWVTdGFtcCJ9ID0gSURMVHlwZWRlZi0+bmV3KHR5cGUgPT4gJERPTVRpbWVTdGFt
cFR5cGUpOwogfQogCi1teSAkbmV4dEF0dHJpYnV0ZV8yID0gJ14ocmVhZG9ubHl8YXR0cmlidXRl
KSQnOworbXkgJG5leHRPcHRpb25hbGx5UmVhZG9ubHlBdHRyaWJ1dGVfMSA9ICdeKHJlYWRvbmx5
fGF0dHJpYnV0ZSkkJzsKIG15ICRuZXh0SW50ZWdlclR5cGVfMSA9ICdeKGludHxsb25nfHNob3J0
fHVuc2lnbmVkKSQnOwogbXkgJG5leHRGbG9hdFR5cGVfMSA9ICdeKGRvdWJsZXxmbG9hdHx1bnJl
c3RyaWN0ZWQpJCc7CiBteSAkbmV4dEFyZ3VtZW50TGlzdF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xE
T01TdHJpbmd8VVNWU3RyaW5nfFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlufGxv
bmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8
dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwpAQCAtNjQ5LDcgKzY1MCw5IEBAIG15ICRuZXh0VHlw
ZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmcKIG15ICRuZXh0U3BlY2lhbHNfMSA9ICdeKGRl
bGV0ZXJ8Z2V0dGVyfHNldHRlcikkJzsKIG15ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxi
YWNrfGRpY3Rpb25hcnl8ZW51bXxpbnRlcmZhY2V8bmFtZXNwYWNlfHBhcnRpYWx8dHlwZWRlZikk
JzsKIG15ICRuZXh0RGljdGlvbmFyeU1lbWJlcl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJp
bmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9j
dGV0fHJlcXVpcmVkfHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVk
fHVuc2lnbmVkKSQnOworbXkgJG5leHRDYWxsYmFja0ludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwo
fGNvbnN0fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGRv
dWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZp
bmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0SW50ZXJmYWNlTWVtYmVyc18x
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxhdHRyaWJ1dGV8Ym9v
bGVhbnxieXRlfGNvbnN0fGNvbnN0cnVjdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxp
bmhlcml0fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0
dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3Rl
ZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0TWl4aW5NZW1iZXJzXzEgPSAnXihcKHxhdHRyaWJ1dGV8
Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8Y29uc3R8ZG91
YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNob3J0fHN0cmlu
Z2lmaWVyfHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5l
eHROYW1lc3BhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJp
bmd8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9u
bHl8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQp
JCc7CiBteSAkbmV4dFBhcnRpYWxJbnRlcmZhY2VNZW1iZXJfMSA9ICdeKFwofEJ5dGVTdHJpbmd8
RE9NU3RyaW5nfFVTVlN0cmluZ3xhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjb25zdHxkZWxl
dGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25s
eXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8c3lt
Ym9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dFNpbmdsZVR5
cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xib29sZWFufGJ5dGV8ZG91
YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmlu
ZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwpAQCAtNjU3LDcgKzY2MCw2IEBAIG15ICRuZXh0
QXJndW1lbnROYW1lXzEgPSAnXihhc3luY3xhdHRyaWIKIG15ICRuZXh0Q29uc3RWYWx1ZV8xID0g
J14oZmFsc2V8dHJ1ZSkkJzsKIG15ICRuZXh0Q29uc3RWYWx1ZV8yID0gJ14oLXxJbmZpbml0eXxO
YU4pJCc7CiBteSAkbmV4dENhbGxiYWNrT3JJbnRlcmZhY2UgPSAnXihjYWxsYmFja3xpbnRlcmZh
Y2UpJCc7Ci1teSAkbmV4dE9wZXJhdGlvblJlc3RfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxv
Y3RldHxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25l
ZCkkJzsKIG15ICRuZXh0UmVndWxhck9wZXJhdGlvbl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01T
dHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0
fG9jdGV0fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2ln
bmVkKSQnOwogbXkgJG5leHRVbnNpZ25lZEludGVnZXJUeXBlXzEgPSAnXihsb25nfHNob3J0KSQn
OwogbXkgJG5leHREZWZhdWx0VmFsdWVfMSA9ICdeKC18SW5maW5pdHl8TmFOfGZhbHNlfG51bGx8
dHJ1ZSkkJzsKQEAgLTg2OSw5ICs4NzEsNyBAQCBzdWIgcGFyc2VDYWxsYmFja1Jlc3RPckludGVy
ZmFjZQogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsIF9fTElORV9fKTsKLSAgICAgICAgbXkg
JGludGVyZmFjZSA9ICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKLSAgICAgICAgJGludGVyZmFjZS0+aXNDYWxsYmFjaygxKTsKLSAgICAgICAgcmV0dXJuICRp
bnRlcmZhY2U7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja0ludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jl
c3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CkBAIC05MjksNiArOTI5LDE1NCBAQCBzdWIgcGFy
c2VJbnRlcmZhY2UKICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7CiB9CiAKK3N1YiBwYXJzZUNhbGxiYWNrSW50ZXJmYWNlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJGludGVyZmFjZSA9IElETElu
dGVyZmFjZS0+bmV3KCk7CisgICAgICAgICRpbnRlcmZhY2UtPmlzQ2FsbGJhY2soMSk7CisKKyAg
ICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRpbnRlcmZhY2VOYW1lVG9rZW4sIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgIAorICAgICAgICBteSAkbmFtZSA9IGlkZW50aWZpZXJSZW1vdmVOdWxs
YWJsZVByZWZpeCgkaW50ZXJmYWNlTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGludGVy
ZmFjZS0+dHlwZShtYWtlU2ltcGxlVHlwZSgkbmFtZSkpOworCisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAg
bXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VDYWxsYmFja0ludGVyZmFjZU1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkaW50
ZXJmYWNlLCAkaW50ZXJmYWNlTWVtYmVycyk7CisKKyAgICAgICAgJHNlbGYtPmFzc2VydEV4dGVu
ZGVkQXR0cmlidXRlc1ZhbGlkRm9yQ29udGV4dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LCAiaW50
ZXJmYWNlIik7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRpbnRlcmZhY2Us
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCisgICAgICAgIHJldHVybiAkaW50ZXJmYWNlOwor
ICAgIH0KKworICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAY2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzID0g
KCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGNhbGxiYWNrSW50
ZXJmYWNlTWVtYmVyOworCisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDYWxsYmFja0ludGVyZmFjZU1lbWJlcnNf
MS8pIHsKKyAgICAgICAgICAgICRjYWxsYmFja0ludGVyZmFjZU1lbWJlciA9ICRzZWxmLT5wYXJz
ZUNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVm
aW5lZCAkY2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIpIHsKKyAgICAgICAgICAgIHB1c2goQGNhbGxi
YWNrSW50ZXJmYWNlTWVtYmVycywgJGNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICByZXR1cm4gXEBjYWxsYmFja0ludGVyZmFjZU1lbWJlcnM7Cit9CisKK3N1
YiBwYXJzZUNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRSZWd1bGFyT3BlcmF0aW9uXzEvKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VSZWd1bGFyT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKworICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTWl4aW4KK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibWl4
aW4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAibWl4aW4iLCBfX0xJTkVfXyk7CisKKyAgICAgICAgbXkgJGludGVyZmFjZU1peGluID0gSURM
SW50ZXJmYWNlLT5uZXcoKTsKKyAgICAgICAgJGludGVyZmFjZU1peGluLT5pc01peGluKDEpOwor
CisgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlm
aWVyVG9rZW4pOworICAgICAgICAKKyAgICAgICAgbXkgJG5hbWUgPSBpZGVudGlmaWVyUmVtb3Zl
TnVsbGFibGVQcmVmaXgoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRp
bnRlcmZhY2VNaXhpbi0+dHlwZShtYWtlU2ltcGxlVHlwZSgkbmFtZSkpOworCisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsK
KyAgICAgICAgbXkgJGludGVyZmFjZU1peGluTWVtYmVycyA9ICRzZWxmLT5wYXJzZU1peGluTWVt
YmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRp
bnRlcmZhY2VNaXhpbiwgJGludGVyZmFjZU1peGluTWVtYmVycyk7CisKKyAgICAgICAgJHNlbGYt
PmFzc2VydEV4dGVuZGVkQXR0cmlidXRlc1ZhbGlkRm9yQ29udGV4dCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0LCAiaW50ZXJmYWNlIik7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KCRpbnRlcmZhY2VNaXhpbiwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgcmV0
dXJuICRpbnRlcmZhY2VNaXhpbjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VNaXhpbk1lbWJl
cnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBtaXhpbk1lbWJlcnMgPSAoKTsK
KworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBteSAkbWl4aW5NZW1iZXI7CisK
KyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dE1peGluTWVtYmVyc18xLykgeworICAgICAgICAgICAgJG1peGluTWVt
YmVyID0gJHNlbGYtPnBhcnNlTWl4aW5NZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIGlm
IChkZWZpbmVkICRtaXhpbk1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAbWl4aW5NZW1iZXJz
LCAkbWl4aW5NZW1iZXIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG1peGluTWVt
YmVyczsKK30KKworc3ViIHBhcnNlTWl4aW5NZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3Qi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVN0cmluZ2lmaWVyKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0T3B0aW9uYWxs
eVJlYWRvbmx5QXR0cmlidXRlXzEvKSB7CisgICAgICAgIG15ICRpc1JlYWRPbmx5ID0gJHNlbGYt
PnBhcnNlUmVhZE9ubHkoKTsKKyAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZVJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICRhdHRyaWJ1dGUt
PmlzUmVhZE9ubHkoJGlzUmVhZE9ubHkpOworICAgICAgICByZXR1cm4gJGF0dHJpYnV0ZTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dFJlZ3VsYXJPcGVyYXRpb25fMS8pIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZVJlZ3VsYXJPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
fQorCisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCiBzdWIgcGFyc2VOYW1lc3BhY2UKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0
OwpAQCAtOTcwLDcgKzExMTgsNiBAQCBzdWIgcGFyc2VOYW1lc3BhY2UKICAgICAgICAgcmV0dXJu
ICRuYW1lc3BhY2U7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKLQogfQogCiBzdWIgcGFyc2VOYW1lc3BhY2VNZW1iZXJz
CkBAIC0xMDE0LDcgKzExNjEsNiBAQCBzdWIgcGFyc2VOYW1lc3BhY2VNZW1iZXIKICAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAK
LQogc3ViIHBhcnNlUGFydGlhbAogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkBAIC0xMTg2LDcg
KzEzMzIsNyBAQCBzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNlTWVtYmVyCiAKICAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
T3BlcmF0aW9uXzEvKSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb24oJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7Ci0gICAgIH0KKyAgICB9CiAKICAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CkBAIC0xODQyLDI2
ICsxOTg4LDE1IEBAIHN1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uRm9yU3RyaW5naWYKICAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmli
dXRlXzIvKSB7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE9wdGlvbmFsbHlSZWFk
b25seUF0dHJpYnV0ZV8xLykgewogICAgICAgICBteSAkaXNSZWFkT25seSA9ICRzZWxmLT5wYXJz
ZVJlYWRPbmx5KCk7Ci0KICAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRzZWxmLT5wYXJzZUF0dHJp
YnV0ZVJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgICRhdHRyaWJ1dGUtPmlz
UmVhZE9ubHkoJGlzUmVhZE9ubHkpOwotCiAgICAgICAgIHJldHVybiAkYXR0cmlidXRlOwogICAg
IH0KIAotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRPcGVyYXRpb25SZXN0XzEvKSB7Ci0gICAgICAgIG15ICRyZXR1cm5U
eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotCi0gICAgICAgICMgTk9URTogVGhpcyBpcyBhIG5v
bi1zdGFuZGFyZCBhZGRpdGlvbi4gSW4gV2ViSURMLCB0aGVyZSBpcyBubyB3YXkgdG8gYXNzb2Np
YXRlCi0gICAgICAgICMgZXh0ZW5kZWQgYXR0cmlidXRlcyB3aXRoIGEgcmV0dXJuIHR5cGUuCi0g
ICAgICAgICRzZWxmLT5tb3ZlRXh0ZW5kZWRBdHRyaWJ1dGVzQXBwbGljYWJsZVRvVHlwZXMoJHJl
dHVyblR5cGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwotCi0gICAgICAgIG15ICRvcGVyYXRp
b24gPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwot
ICAgICAgICAkb3BlcmF0aW9uLT50eXBlKCRyZXR1cm5UeXBlKTsKLQotICAgICAgICByZXR1cm4g
JG9wZXJhdGlvbjsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwg
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0UmVndWxhck9wZXJhdGlvbl8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlUmVndWxhck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9w
cmVwcm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzgsOSArMTM4LDkgQEAgZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxG
aWxlSAogCiAgICAgdXBkYXRlRGljdGlvbmFyeURlcGVuZGVuY2llcygkaWRsRmlsZUNvbnRlbnRz
LCAkaWRsRmlsZSk7CiAKLSAgICAjIFNraXAgaWYgdGhlIElETCBmaWxlIGRvZXMgbm90IGNvbnRh
aW4gYW4gaW50ZXJmYWNlLCBhIGNhbGxiYWNrIGludGVyZmFjZSBvciBhbiBleGNlcHRpb24uCisg
ICAgIyBTa2lwIGlmIHRoZSBJREwgZmlsZSBkb2VzIG5vdCBjb250YWluIGFuIGludGVyZmFjZSBv
ciBhIGNhbGxiYWNrIGludGVyZmFjZS4KICAgICAjIFRoZSBJREwgbWF5IGNvbnRhaW4gYSBkaWN0
aW9uYXJ5LgotICAgIG5leHQgdW5sZXNzIGNvbnRhaW5zSW50ZXJmYWNlT3JFeGNlcHRpb25Gcm9t
SURMKCRpZGxGaWxlQ29udGVudHMpOworICAgIG5leHQgdW5sZXNzIGNvbnRhaW5zSW50ZXJmYWNl
RnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKIAogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gZmls
ZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxlKSwgIi5pZGwiKTsKICAgICAjIEhhbmRsZSBpbmNsdWRl
IHN0YXRlbWVudHMuCkBAIC0xNTUsNyArMTU1LDEwIEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNv
cnQga2V5cyAlaWRsRmlsZUgKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghaXNDYWxsYmFj
a0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250ZW50cykpIHsKKyAgICBuZXh0IGlmIGlzTWl4
aW5JbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlQ29udGVudHMpOworCisgICAgbXkgJGlzQ2FsbGJh
Y2tJbnRlcmZhY2UgPSBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRz
KTsKKyAgICBpZiAoISRpc0NhbGxiYWNrSW50ZXJmYWNlKSB7CiAgICAgICAgICRpc29TdWJzcGFj
ZXNIZWFkZXJDb2RlIC49ICIgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SXNvU3Vic3BhY2U+IG1f
c3Vic3BhY2VGb3Ike2ludGVyZmFjZU5hbWV9O1xuIjsKICAgICAgICAgaWYgKGludGVyZmFjZUlz
SXRlcmFibGUoJGlkbEZpbGVDb250ZW50cykpIHsKICAgICAgICAgICAgICRpc29TdWJzcGFjZXNI
ZWFkZXJDb2RlIC49ICIgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SXNvU3Vic3BhY2U+IG1fc3Vi
c3BhY2VGb3Ike2ludGVyZmFjZU5hbWV9SXRlcmF0b3I7XG4iOwpAQCAtMTY5LDcgKzE3Miw3IEBA
IGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmlsZUgKICAgICAjIFNlZSBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy1pbnRlcmZhY2VzCiAgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlcyA9IGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JREwoJGlk
bEZpbGVDb250ZW50cyk7CiAgICAgaWYgKHNob3VsZEV4cG9zZUludGVyZmFjZSgkZXh0ZW5kZWRB
dHRyaWJ1dGVzKSkgewotICAgICAgICBpZiAoIWlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRp
ZGxGaWxlQ29udGVudHMpIHx8IGludGVyZmFjZUhhc0NvbnN0YW50QXR0cmlidXRlKCRpZGxGaWxl
Q29udGVudHMpKSB7CisgICAgICAgIGlmICghJGlzQ2FsbGJhY2tJbnRlcmZhY2UgfHwgaW50ZXJm
YWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUoJGlkbEZpbGVDb250ZW50cykpIHsKICAgICAgICAgICAg
IG15ICRleHBvc2VkQXR0cmlidXRlID0gJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJFeHBvc2VkIn0g
fHwgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSB8fCAiV2luZG93IjsKICAgICAgICAgICAgICRleHBv
c2VkQXR0cmlidXRlID0gc3Vic3RyKCRleHBvc2VkQXR0cmlidXRlLCAxLCAtMSkgaWYgc3Vic3Ry
KCRleHBvc2VkQXR0cmlidXRlLCAwLCAxKSBlcSAiKCI7CiAgICAgICAgICAgICBteSBAZ2xvYmFs
Q29udGV4dHMgPSBzcGxpdCgiLCIsICRleHBvc2VkQXR0cmlidXRlKTsKQEAgLTM5MywxOSArMzk2
LDI0IEBAIHN1YiBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETAogICAgIHJldHVybiAoJGZpbGVD
b250ZW50cyA9fiAvY2FsbGJhY2tccytpbnRlcmZhY2VccytcdysvZ3MpOwogfQogCitzdWIgaXNN
aXhpbkludGVyZmFjZUZyb21JREwKK3sKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7Cisg
ICAgcmV0dXJuICgkZmlsZUNvbnRlbnRzID1+IC9pbnRlcmZhY2VccyttaXhpblxzK1x3Ky9ncyk7
Cit9CisKIHN1YiBpbnRlcmZhY2VJc0l0ZXJhYmxlCiB7CiAgICAgbXkgJGZpbGVDb250ZW50cyA9
IHNoaWZ0OwogICAgIHJldHVybiAoJGZpbGVDb250ZW50cyA9fiAvaXRlcmFibGVccyo8XHMqXHcr
XHMqL2dzKTsKIH0KIAotc3ViIGNvbnRhaW5zSW50ZXJmYWNlT3JFeGNlcHRpb25Gcm9tSURMCitz
dWIgY29udGFpbnNJbnRlcmZhY2VGcm9tSURMCiB7CiAgICAgbXkgJGZpbGVDb250ZW50cyA9IHNo
aWZ0OwogCiAgICAgcmV0dXJuIDEgaWYgJGZpbGVDb250ZW50cyA9fiAvXGJjYWxsYmFja1xzK2lu
dGVyZmFjZVxzK1x3Ky9nczsKICAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9cYmlu
dGVyZmFjZVxzK1x3Ky9nczsKLSAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9cYmV4
Y2VwdGlvblxzK1x3Ky9nczsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDI3LDcgKzQzNSw3IEBA
IHN1YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSUQKICAgICAjIGFsbCBidWls
ZCBzeXN0ZW1zLgogICAgICRmaWxlQ29udGVudHMgPX4gcy8oPzooPzooPzpcL1wvKSg/OlteXG5d
KikoPzpcbikpfCg/Oig/OlwvXCopKD86KD86W15cKl0rfFwqKD8hXC8pKSopKD86XCpcLykpKS8v
ZzsKIAotICAgIGlmICgkZmlsZUNvbnRlbnRzID1+IC9cWyguKilcXVxzKyhjYWxsYmFjayBpbnRl
cmZhY2V8aW50ZXJmYWNlfGV4Y2VwdGlvbilccysoXHcrKS9ncykgeworICAgIGlmICgkZmlsZUNv
bnRlbnRzID1+IC9cWyguKilcXVxzKyhjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhc
dyspL2dzKSB7CiAgICAgICAgIG15ICRwYXJhbWV0ZXJzID0gJDE7CiAgICAgICAgIGlmIChpbmRl
eCgkcGFyYW1ldGVycywgJ30nKSAhPSAtMSkgewogICAgICAgICAgICAgIyBJbiBjYXNlIHdlIGhh
dmUgYSBkZWNsYXJhdGlvbiBsaWtlIGEgZGljdGlvbmFyeSB3aXRoIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgZGVmaW5lZCBiZWZvcmUgdGhlIGludGVyZmFjZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxE
ZXBlbmRlbmNpZXMuZGVwCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAkod29ya2luZyBj
b3B5KQpAQCAtMTEzLDYgKzExMyw5IEBAIFdlYkRPTVRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5o
OiAKIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5oOiAKIERPTVRlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb24uaDogCiBXZWJET01UZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmg6IAorSlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuaDogCitET01UZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QuaDogCitXZWJET01UZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuaDogCiBKU1Rlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zLmg6IAogRE9NVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuaDog
CiBXZWJET01UZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oOiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5jbHVkZXMuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5jbHVkZXMuaWRsCShy
ZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdEluY2x1ZGVzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDggQEAKIC8vIFRo
aXMgSURMIGZpbGUgaXMgZm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFu
ZCBmb3IgdHJhY2tpbmcKIC8vIGNoYW5nZXMgaW4gaXRzIG91dHB1dC4KIFsKLSAgICBDb25kaXRp
b25hbD1Db25kaXRpb24yMnxDb25kaXRpb24yMywKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dAotXSBpbnRlcmZhY2UgVGVzdEluY2x1ZGVzIHsKLSAgICBzdGF0aWMgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgaW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHI7Ci0gICAgc3RhdGljIGF0dHJpYnV0
ZSBET01TdHJpbmcgaW5jbHVkZXNTdGF0aWNBdHRyOworICAgIENvbmRpdGlvbmFsPUNvbmRpdGlv
bjIyfENvbmRpdGlvbjIzCitdIGludGVyZmFjZSBtaXhpbiBUZXN0SW5jbHVkZXMgewogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaW5jbHVkZXNTdHIxOwogICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgaW5jbHVkZXNTdHIyOwogICAgIFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlcl0g
YXR0cmlidXRlIERPTVN0cmluZyBpbmNsdWRlc1N0cjM7CkBAIC00Myw3ICs0MCw2IEBACiAgICAg
dW5kZWZpbmVkIGluY2x1ZGVzTWV0aG9kMSgpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gVGVzdE9iaiBpbmNsdWRlc01ldGhvZDIoRE9N
U3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOwogICAgIFtDdXN0b21dIHVuZGVmaW5lZCBp
bmNsdWRlc01ldGhvZDMoKTsKLSAgICBzdGF0aWMgdW5kZWZpbmVkIGluY2x1ZGVzTWV0aG9kNCgp
OwogCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSU5DTFVERVNfQ09OU1RBTlQxID0gMTsKICAg
ICBbUmVmbGVjdD1DT05TVF9JTVBMXSBjb25zdCB1bnNpZ25lZCBzaG9ydCBJTkNMVURFU19DT05T
VEFOVDIgPSAyOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5pZGwJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKy8vIFRoaXMgSURMIGZpbGUgaXMgZm9yIHRlc3RpbmcgdGhlIGJp
bmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3IgdHJhY2tpbmcKKy8vIGNoYW5nZXMgaW4gaXRz
IG91dHB1dC4KK1sKKyAgICBDb25kaXRpb25hbD1Db25kaXRpb24yMnxDb25kaXRpb24yMywKKyAg
ICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWRvbmx5U3Ry
aW5nQXR0cmlidXRlOworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVhZFdyaXRlU3RyaW5nQXR0
cmlidXRlOworICAgIFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVN0
cmluZyBjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGU7CisgICAgYXR0cmlidXRlIE5v
ZGUgbm9kZUF0dHJpYnV0ZTsKKyAgICBzdGF0aWMgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0aWNT
dHJpbmdBdHRyaWJ1dGU7CisKKyAgICB1bmRlZmluZWQgdm9pZE9wZXJhdGlvbigpOworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gVGVzdE9i
aiB0aHJvd2luZ09wZXJhdGlvbihET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7Cisg
ICAgW0N1c3RvbV0gdW5kZWZpbmVkIGN1c3RvbU9wZXJhdGlvbigpOworICAgIHN0YXRpYyB1bmRl
ZmluZWQgc3RhdGljT3BlcmF0aW9uKCk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05T
VEFOVDEgPSAxOworICAgIFtSZWZsZWN0PUNPTlNUX0lNUExdIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENPTlNUQU5UMiA9IDI7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPcGVyYXRpb25CYXNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9wZXJhdGlvbkJhc2UuaWRsCShyZXZpc2lvbiAy
NjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9wZXJh
dGlvbkJhc2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCw4IEBACiAvLyBjaGFuZ2Vz
IGluIGl0cyBvdXRwdXQuCiAKIFsKLSAgICBDb25kaXRpb25hbD1Db25kaXRpb25CYXNlLAotICAg
IExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgVGVzdE9wZXJhdGlvbkJhc2Ug
eworICAgIENvbmRpdGlvbmFsPUNvbmRpdGlvbkJhc2UKK10gaW50ZXJmYWNlIG1peGluIFRlc3RP
cGVyYXRpb25CYXNlIHsKICAgICB1bmRlZmluZWQgbm9uQ29uZGl0aW9uYWxPcGVyYXRpb24oKTsK
ICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uT3BlcmF0aW9uXSB1bmRlZmluZWQgY29uZGl0aW9u
YWxPcGVyYXRpb24oKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24g
MjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDExICs1MiwxMSBAQAogI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJUZXN0
U3VwcGxlbWVudGFsQnVpbHRpbnMuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpIHx8IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRl
ICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2VuZGlmCkBAIC04
Miw5ICs4Miw2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbkluY2x1ZGVzTWV0aG9kMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblRha2VOb2RlcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQpAQCAtMTEwLDEzICsxMDcsNiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRp
Y1JlYWRPbmx5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLSNlbmRpZgotI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VJbmNsdWRlc1N0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQpAQCAtMjE2LDE2ICsyMDYsNiBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmCiAjZWxzZQogICAgIHsgMCwg
MCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJpbmNsdWRlc1N0YXRpY1JlYWRPbmx5
QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY1Jl
YWRPbmx5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0gfSwKLSNlbHNlCi0gICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAw
IH0gfSwKLSNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotICAgIHsgImluY2x1ZGVzU3RhdGljQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigw
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKSB9IH0sCi0jZWxz
ZQotICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICAgICB7ICJzdXBwbGVtZW50
YWxTdGF0aWNSZWFkT25seUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
U3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UKQEAgLTIzNiwxMSAr
MjE2LDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZgogI2Vsc2UK
ICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0jaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAiaW5jbHVkZXNNZXRo
b2Q0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uSW5jbHVkZXNNZXRob2Q0KSwg
KGludHB0cl90KSAoMCkgfSB9LAotI2Vsc2UKLSAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAs
IDAgfSB9LAotI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCiAgICAgeyAic3VwcGxlbWVudGFsTWV0aG9kNCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAj
ZWxzZQpAQCAtNTA2LDU2ICs0ODEsNiBAQCBib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEpTR2xvCiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRp
b24yMykKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcklu
Y2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0KQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3RJbnRlcmZhY2U6OmluY2x1ZGVzU3RhdGljUmVh
ZE9ubHlBdHRyKCkpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9ySW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0U3RhdGljPGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNSZWFkT25seUF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpbmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0
ciIpOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9ySW5jbHVkZXNTdGF0aWNBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0KQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdEludGVyZmFjZTo6aW5jbHVkZXNTdGF0aWNB
dHRyKCkpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
SW5jbHVkZXNTdGF0aWNBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvckluY2x1ZGVzU3RhdGljQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImluY2x1ZGVzU3RhdGljQXR0ciIpOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQotewotICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byBuYXRpdmVWYWx1
ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7Ci0gICAgQXR0cmlidXRl
U2V0dGVyOjpjYWxsKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7Ci0gICAg
ICAgIHJldHVybiBUZXN0SW50ZXJmYWNlOjpzZXRJbmNsdWRlc1N0YXRpY0F0dHIoV1RGTW92ZShu
YXRpdmVWYWx1ZSkpOwotICAgIH0pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIHNldEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZT46OnNldFN0YXRpYzxzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVz
U3RhdGljQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiaW5jbHVkZXNTdGF0aWNBdHRyIik7Ci19Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlSW5jbHVkZXNTdHIxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKQEAgLTk0NywyNSArODcy
LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0
aW9uSW5jbHVkZXNNZXRob2Q0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7Ci0gICAg
VGVzdEludGVyZmFjZTo6aW5jbHVkZXNNZXRob2Q0KCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uSW5jbHVkZXNNZXRob2Q0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGxTdGF0aWM8anNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvbkluY2x1ZGVzTWV0aG9kNEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5jbHVkZXNNZXRob2Q0Iik7Ci19Ci0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25UYWtlTm9kZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RJbnRlcmZhY2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYyIEBACisvKgorICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAgICBU
aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBO
T1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDb25kaXRp
b24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorCisjaW5jbHVkZSAiSlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1
ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCisjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUg
IkpTRE9NT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNs
dWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJKU1Rlc3RPYmouaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXplci5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Rlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N1YnNw
YWNlSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUG9p
bnRlclByZXBhcmF0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworCituYW1lc3BhY2Ug
V2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBGdW5jdGlvbnMKKworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1
bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKKworLy8gQXR0cmlidXRlcworCitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgc2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRl
clNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIHNldEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworCitjbGFzcyBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHVzaW5n
IEJhc2UgPSBKU0M6OkpTTm9uRmluYWxPYmplY3Q7CisgICAgc3RhdGljIEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgewor
ICAgICAgICBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZT4odm0uaGVhcCkpIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90
eXBlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3Jl
YXRpb24odm0pOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAgIERFQ0xBUkVfSU5G
TzsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4K
KyAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCisg
ICAgeworICAgICAgICBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSwgQmFzZSk7CisgICAgICAgIHJldHVybiAm
dm0ucGxhaW5PYmplY3RTcGFjZTsKKyAgICB9CisgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUoSlND
OjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KQorICAgICAgICA6IEpTQzo6SlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQorICAgIHsK
KyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKK307CitTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGU6OkJhc2Up
OworCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KKworc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9Cit7CisgICAgeyAicmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0
cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpIH0gfSwKKyAg
ICB7ICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpIH0gfSwK
KyAgICB7ICJub2RlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUpIH0gfSwK
KyAgICB7ICJ2b2lkT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3Rv
dHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ0
aHJvd2luZ09wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVG
dW5jdGlvblRocm93aW5nT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgImN1
c3RvbU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvbkN1c3RvbU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJDT05TVEFO
VDEiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVn
ZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDEpIH0gfSwKKyAgICB7ICJDT05TVEFOVDIi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIs
IE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDIpIH0gfSwKK307CisKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3Rv
dHlwZSkgfTsKKwordm9pZCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
KyAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0OjppbmZvKCksIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlVGFibGVW
YWx1ZXMsICp0aGlzKTsKKyAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04o
KTsKK30KKworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ojpz
X2luZm8gPSB7ICJUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0KSB9OworCitKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+JiYgaW1w
bCkKKyAgICA6IEpTRE9NV3JhcHBlcjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+KHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKQoreworfQorCit2b2lkIEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7
CisKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFy
a2VkIGFzIFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNz
IHN1YmNsYXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOworCit9CisKK0pTT2JqZWN0KiBKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4gSlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7Cit9CisKK0pTT2JqZWN0
KiBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6cHJvdG90eXBlKFZNJiB2bSwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBl
PEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pih2bSwgZ2xvYmFsT2JqZWN0KTsKK30KKwor
dm9pZCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6ZGVzdHJveShKU0M6OkpTQ2VsbCog
Y2VsbCkKK3sKKyAgICBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Kj4oY2VsbCk7CisgICAg
dGhpc09iamVjdC0+SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6On5KU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCgpOworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCogSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQoreworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKK30KKwordGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdD46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSYgY2FsbEZyYW1lKQoreworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCYgdGhpc09iamVjdCkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKCkpKSk7
Cit9CisKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9u
bHlTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InJlYWRvbmx5U3RyaW5nQXR0cmlidXRlIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUo
KSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RS
ZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmli
dXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8mIGltcGwgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKTsKKyAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGZhbHNlKTsKKyAgICBBdHRyaWJ1dGVTZXR0ZXI6OmNhbGwobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGltcGwuc2V0
UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICB9KTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0
cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7Cit9CisKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRl
clN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCit7CisgICAgVU5V
U0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiB0aGlzT2JqZWN0LmN1
c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKK30K
KworRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKK30K
Kworc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3Vz
dG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOworICAgIHRoaXNPYmplY3Quc2V0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5n
QXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNl
dHRlclN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46
OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0
cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlIik7Cit9CisKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0JiB0aGlzT2JqZWN0KQoreworICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBl
ZCgpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZh
Y2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLm5vZGVBdHRyaWJ1dGUoKSkpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKK30KKworc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFw
cGVkKCk7CisgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPE5vZGU+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSwgW10oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0F0dHJpYnV0
ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIlRlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCIsICJub2RlQXR0cmlidXRlIiwgIk5vZGUiKTsgfSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CisgICAgQXR0cmlidXRlU2V0dGVyOjpjYWxs
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7CisgICAgICAgIHJldHVybiBp
bXBsLnNldE5vZGVBdHRyaWJ1dGUoKm5hdGl2ZVZhbHVlKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQoreworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJub2RlQXR0cmlidXRlIik7Cit9CisK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0KQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0OjpzdGF0aWNTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUganNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGljU3RyaW5nQXR0cmlidXRlIik7Cit9CisKK3N0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCBmYWxzZSk7CisgICAgQXR0cmlidXRlU2V0dGVyOjpjYWxsKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7CisgICAgICAgIHJldHVybiBUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3Q6OnNldFN0YXRpY1N0cmluZ0F0dHJpYnV0ZShXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgc2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldFN0YXRpYzxzZXRKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdGF0aWNT
dHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0
aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQoreworICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29w
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPndyYXBwZWQoKTsKKyAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKKyAgICBpbXBsLnZv
aWRPcGVyYXRpb24oKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlvbkJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidm9pZE9wZXJhdGlvbiIpOworfQor
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BB
UkFNKGNhbGxGcmFtZSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsK
KyAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAyKSkKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CisgICAg
YXV0byogY29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxHbG9iYWxP
YmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKFVOTElLRUxZKCFjb250
ZXh0KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRB
cmd1bWVudCgwKTsKKyAgICBhdXRvIHN0ckFyZyA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgRW5zdXJlU3RpbGxBbGl2
ZVNjb3BlIGFyZ3VtZW50MSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisgICAg
YXV0byBvYmpBcmcgPSBjb252ZXJ0PElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDEsICJvYmpBcmciLCAiVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0IiwgInRocm93aW5nT3BlcmF0aW9uIiwgIlRlc3RPYmoiKTsg
fSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRocm93aW5nT3BlcmF0aW9uKCpj
b250ZXh0LCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25UaHJvd2luZ09wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0aHJvd2luZ09wZXJhdGlvbiIpOworfQorCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIFVOVVNFRF9QQVJBTShjYWxsRnJh
bWUpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPmN1c3RvbU9wZXJhdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSkpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNh
bGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9w
ZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tT3Bl
cmF0aW9uIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb25C
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbEZy
YW1lKTsKKyAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKKyAgICBUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q6OnN0YXRpY09wZXJhdGlvbigpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK3sKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
RnVuY3Rpb25TdGF0aWNPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgInN0YXRpY09wZXJhdGlvbiIpOworfQorCitKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQorewor
ICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKTsKKyAgICBhdXRvJiBzcGFjZXMgPSBjbGllbnREYXRhLnN1YnNwYWNlcygpOwor
ICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0LmdldCgpKQorICAgICAgICByZXR1cm4gc3BhY2U7CisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdD4gfHwgIUpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
OjpuZWVkc0Rlc3RydWN0aW9uKTsKKyAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
PikKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2
bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0KTsKKyAgICBlbHNlCisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QpOworICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuZ2V0KCk7CitJR05PUkVfV0FSTklOR1Nf
QkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xv
Z2ljYWwtY29tcGFyZSIpCisgICAgaWYgKCZKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6
dmlzaXRPdXRwdXRDb25zdHJhaW50cyAhPSAmSlNDOjpKU0NlbGw6OnZpc2l0T3V0cHV0Q29uc3Ry
YWludHMpCisgICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNwYWNlcygpLmFwcGVu
ZChzcGFjZSk7CitJR05PUkVfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklOR1NfRU5ECisgICAg
cmV0dXJuIHNwYWNlOworfQorCit2b2lkIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ojph
bmFseXplSGVhcChKU0NlbGwqIGNlbGwsIEhlYXBBbmFseXplciYgYW5hbHl6ZXIpCit7CisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCo+
KGNlbGwpOworICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCisgICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIg
KyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsK
KyAgICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7Cit9CisKK2Jvb2wgSlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
KyAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQoreworICAgIGF1dG8qIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqPihoYW5kbGUuc2xvdCgpLT5h
c0NlbGwoKSk7CisgICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxk
Kj4oY29udGV4dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdC0+d3JhcHBlZCgpLCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCk7
Cit9CisKKyNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCisjaWYgUExBVEZPUk0oV0lOKQor
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMpCitleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQg
KCpjb25zdCBfX2lkZW50aWZpZXIoIj8/XzdUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RAV2Vi
Q29yZUBANkJAIilbXSkoKTsgfQorI2Vsc2UKK2V4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pU
Vk43V2ViQ29yZTI3VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0RVtdOyB9CisjZW5kaWYKKyNl
bmRpZgorCitKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdD4mJiBpbXBsKQoreworCisjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQor
ICAgIGNvbnN0IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBnZXRWVGFibGVQb2ludGVyKGlt
cGwucHRyKCkpOworI2lmIFBMQVRGT1JNKFdJTikKKyAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBv
aW50ZXIgPSBfX2lkZW50aWZpZXIoIj8/XzdUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RAV2Vi
Q29yZUBANkJAIik7CisjZWxzZQorICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9ICZf
WlRWTjdXZWJDb3JlMjdUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RFWzJdOworI2VuZGlmCisK
KyAgICAvLyBJZiB0aGlzIGZhaWxzIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCBkb2VzIG5v
dCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVlZCB0byBhZGQgdGhlCisgICAgLy8gSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBkZWZpbml0aW9uCisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3BvbHltb3JwaGljPFRlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdD46OnZhbHVlLCAiVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IGlzIG5vdCBwb2x5
bW9ycGhpYyIpOworCisgICAgLy8gSWYgeW91IGhpdCB0aGlzIGFzc2VydGlvbiB5b3UgZWl0aGVy
IGhhdmUgYSB1c2UgYWZ0ZXIgZnJlZSBidWcsIG9yCisgICAgLy8gVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0IGhhcyBzdWJjbGFzc2VzLiBJZiBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Qg
aGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQgcGFzc2VkCisgICAgLy8gdG8gdG9KUygpIHdlIGN1cnJl
bnRseSByZXF1aXJlIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCB5b3UgdG8gb3B0IG91dCBv
ZiBiaW5kaW5nIGhhcmRlbmluZworICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlk
YXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KKyAgICBSRUxF
QVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7
CisjZW5kaWYKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3Q+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Cit9CisKK0pTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCYgaW1wbCkK
K3sKKyAgICByZXR1cm4gd3JhcChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGlt
cGwpOworfQorCitUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqIEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
K3sKKyAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QqPih2bSwgdmFsdWUpKQorICAgICAgICByZXR1cm4gJndyYXBwZXItPndy
YXBwZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBm
aWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1P
RElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQorCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAi
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QgOiBwdWJsaWMgSlNET01XcmFwcGVyPFRlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdD4geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RPTVdyYXBwZXI8VGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0PjsKKyAgICBzdGF0aWMgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0PiYmIGltcGwp
CisgICAgeworICAgICAgICBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dD4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dChzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOworICAgICAgICBwdHIt
PmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgIHJldHVybiBwdHI7
CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogcHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOworICAgIHN0YXRpYyBUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lO
Rk87CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBKU0M6Oklz
b1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAgICAgIGlmIGNv
bnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9ySW1wbCh2
bSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwo
SlNDOjpWTSYgdm0pOworICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6
SGVhcEFuYWx5emVyJik7CisKKyAgICAvLyBDdXN0b20gYXR0cmlidXRlcworICAgIEpTQzo6SlNW
YWx1ZSBjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCYpIGNvbnN0OworICAgIHZvaWQgc2V0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOworCisgICAgLy8gQ3VzdG9tIGZ1
bmN0aW9ucworICAgIEpTQzo6SlNWYWx1ZSBjdXN0b21PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCYsIEpTQzo6Q2FsbEZyYW1lJik7Citwcm90ZWN0ZWQ6CisgICAgSlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+JiYpOworCisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJik7Cit9OworCitjbGFzcyBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE93
bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CisgICAg
dmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQpOworfTsKKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkJiwgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KikKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RPd25lcj4g
b3duZXI7CisgICAgcmV0dXJuICZvd25lci5nZXQoKTsKK30KKworaW5saW5lIHZvaWQqIHdyYXBw
ZXJLZXkoVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KiB3cmFwcGFibGVPYmplY3QpCit7Cisg
ICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKK30KKworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Jik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6anNOdWxsKCk7IH0K
K0pTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFJlZjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+JiYpOworaW5s
aW5lIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0
cjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+JiYgaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRv
SlNOZXdseUNyZWF0ZWQobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsLnJl
bGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051bGwoKTsgfQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBK
U0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0PiB7
CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q7
CisgICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFRlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdCo7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9FbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9FbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudENTU0lubGluZVN0eWxlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjUsOSArMjUsNyBAQAogCiAvLyBDU1NPTSBleHRlbnNpb25zIHRvIEhUTUxFbGVtZW50
IC8gU1ZHRWxlbWVudDoKIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jdGhlLWVs
ZW1lbnRjc3NpbmxpbmVzdHlsZS1pbnRlcmZhY2UKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9i
amVjdCwKLV0gaW50ZXJmYWNlIEVsZW1lbnRDU1NJbmxpbmVTdHlsZSB7CitpbnRlcmZhY2UgbWl4
aW4gRWxlbWVudENTU0lubGluZVN0eWxlIHsKICAgICBbSW1wbGVtZW50ZWRBcz1jc3NvbVN0eWxl
LCBQdXRGb3J3YXJkcz1jc3NUZXh0XSByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBzdHlsZTsgLy8gRklYTUU6IFNob3VsZCBiZSBbU2FtZU9iamVjdF0uCiAgICAgW0ltcGxl
bWVudGVkQXM9ZW5zdXJlQXR0cmlidXRlU3R5bGVNYXAsIENhY2hlZEF0dHJpYnV0ZSwgRW5hYmxl
ZEF0UnVudGltZT1DU1NUeXBlZE9NLCBDb25kaXRpb25hbD1DU1NfVFlQRURfT01dIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTdHlsZVByb3BlcnR5TWFwIGF0dHJpYnV0ZVN0eWxlTWFwOyAvLyBGSVhNRTog
U2hvdWxkIGJlIFtTYW1lT2JqZWN0XS4KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVNZWRpYS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEu
aWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKKy8vIEZJWE1FOiBUaGlzIHdhcyByZW1vdmVkIGZyb20gdGhlIENTU09NIFZpZXcgc3BlY2lm
aWNhdGlvbi4KIFsKICAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBHZW5lcmF0ZUlz
UmVhY2hhYmxlPVJlYWNoYWJsZUZyb21ET01XaW5kb3csCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vQ2hpbGROb2RlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRO
b2RlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9k
ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDkgKzE5LDcgQEAKICAqLwogCiAvLyBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NoaWxkbm9kZQotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0LAotXSBpbnRlcmZhY2UgQ2hpbGROb2RlIHsKK2ludGVyZmFjZSBtaXhpbiBDaGlsZE5v
ZGUgewogICAgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZSwgTWF5VGhyb3dFeGNlcHRpb25dIHVu
ZGVmaW5lZCBiZWZvcmUoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CiAgICAgW0NFUmVh
Y3Rpb25zLCBVbnNjb3BhYmxlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIGFmdGVyKChO
b2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwogICAgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJs
ZSwgTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCByZXBsYWNlV2l0aCgoTm9kZSBvciBET01T
dHJpbmcpLi4uIG5vZGVzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2
ZW50LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSb3RhdGlvblJhdGU/IHJvdGF0aW9uUmF0ZTsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaW50ZXJ2YWw7CiAKKyAgICBbQ2FsbFdpdGg9
RG9jdW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJ
XSBzdGF0aWMgUHJvbWlzZTxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
PiByZXF1ZXN0UGVybWlzc2lvbigpOworCiAgICAgdW5kZWZpbmVkIGluaXREZXZpY2VNb3Rpb25F
dmVudChvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICIiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlLApA
QCAtNTcsNSArNTksMyBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBkb3VibGU/IGdhbW1hOwog
fTsKLQotRGV2aWNlTW90aW9uRXZlbnQgaW5jbHVkZXMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGJldGE7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1hOwogCisgICAgW0NhbGxXaXRo
PURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQ
SV0gc3RhdGljIFByb21pc2U8RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKKwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBkZWZpbmlu
ZyBhbiBFTkFCTEUgbWFjcm8gZm9yIGlPUyBkZXZpY2Ugb3JpZW50YXRpb24gY29kZSBhbmQvb3Ig
bW9kaWZ5aW5nCiAgICAgLy8gdGhlIGJpbmRpbmdzIHNjcmlwdHMgdG8gc3VwcG9ydCBnZW5lcmF0
aW5nIG1vcmUgY29tcGxpY2F0ZWQgY29uZGl0aW9uYWwgY29kZS4KICNpZiBkZWZpbmVkKFdURl9Q
TEFURk9STV9JT1NfRkFNSUxZKSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWQpAQCAtNTQsNSAr
NTYsMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9v
bGVhbj8gYWJzb2x1dGUgPSBudWxsKTsKICNlbmRpZgogfTsKLQotRGV2aWNlT3JpZW50YXRpb25F
dmVudCBpbmNsdWRlcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudC5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLAotICAgIExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Ci1dIGludGVyZmFjZSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQgewotICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VP
cmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9taXNlPERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJtaXNzaW9uKCk7Ci19OwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDcgQEAgdHlw
ZWRlZiAoSFRNTFNjcmlwdEVsZW1lbnQgb3IgU1ZHU2NyaXB0RQogICAgIC8vIEZJWE1FOiBTaG91
bGQgbGlrZWx5IGJlIG1vdmVkIHRvIERvY3VtZW50T3JTaGFkb3dSb290LgogICAgIERPTVNlbGVj
dGlvbj8gZ2V0U2VsZWN0aW9uKCk7CiAKKyAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBzaG91
bGQgYmUgZXh0cmFjdGVkIGludG8gYSBuZXcgbWl4aW4sIFhQYXRoRXZhbHVhdG9yQmFzZSAtIGh0
dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jeHBhdGhldmFsdWF0b3JiYXNlCiAgICAgLy8gWFBh
dGggZXh0ZW5zaW9ucyAoaHR0cHM6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLVhQYXRoL3hw
YXRoLmh0bWwjWFBhdGhFdmFsdWF0b3IpLgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gWFBhdGhF
eHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIG9wdGlvbmFs
IFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIpOwogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVO
U1Jlc29sdmVyKE5vZGUgbm9kZVJlc29sdmVyKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhh
bmRsZXJzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsNyBAQAogICovCiAKIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvY3VtZW50YW5kZWxlbWVudGV2ZW50aGFuZGxl
cnMKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIERvY3VtZW50
QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMgeworaW50ZXJmYWNlIG1peGluIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnMgewogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jb3B5Owog
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jdXQ7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnBhc3RlOwpAQCAtMzYsNyArMzQsNiBAQAogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmVmb3JlY3V0OwogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmVmb3JlaW5wdXQ7CiAgICAgW05vdEVudW1lcmFibGVdIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25iZWZvcmVwYXN0ZTsKLQogICAgIFtOb3RFbnVtZXJhYmxl
LCBJbXBsZW1lbnRlZEFzPW9ud2Via2l0QW5pbWF0aW9uRW5kXSBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9ud2Via2l0YW5pbWF0aW9uZW5kOwogICAgIFtOb3RFbnVtZXJhYmxlLCBJbXBsZW1lbnRl
ZEFzPW9ud2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
d2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uOwogICAgIFtOb3RFbnVtZXJhYmxlLCBJbXBsZW1lbnRl
ZEFzPW9ud2Via2l0QW5pbWF0aW9uU3RhcnRdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJr
aXRhbmltYXRpb25zdGFydDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yU2hh
ZG93Um9vdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JT
aGFkb3dSb290LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50T3JTaGFkb3dSb290LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsNyBAQAog
ICovCiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9jdW1lbnRvcnNoYWRvd3Jv
b3QKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIERvY3VtZW50
T3JTaGFkb3dSb290IHsKK2ludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdCB7CiAg
ICAgLy8gRXh0ZW5zaW9ucyBmcm9tIFNoYWRvdyBET00gQVBJIChodHRwczovL3czYy5naXRodWIu
aW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8jZXh0ZW5zaW9ucy10by10aGUtZG9jdW1lbnRv
cnNoYWRvd3Jvb3QtbWl4aW4pLgogICAgIC8vIERPTVNlbGVjdGlvbj8gZ2V0U2VsZWN0aW9uKCk7
IC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgaGF2ZSB0aGlzIG9uIERvY3VtZW50IG9ubHkuCiAgICAg
RWxlbWVudD8gZWxlbWVudEZyb21Qb2ludChkb3VibGUgeCwgZG91YmxlIHkpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2ICsx
OCw4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisvLyBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NhbGxiYWNrZGVmLWV2ZW50bGlzdGVuZXIKKy8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBhIGNhbGxiYWNrIGludGVyZmFjZS4KIFsKICAgICBMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdAogXSBpbnRlcmZhY2UgRXZlbnRMaXN0ZW5lciB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDkgKzI1LDcgQEAKICAqLwogCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZ2xvYmFsZXZlbnRoYW5kbGVycwotWwotICAg
IExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVy
cyB7CitpbnRlcmZhY2UgbWl4aW4gR2xvYmFsRXZlbnRIYW5kbGVycyB7CiAgICAgLy8gQ29tbWVu
dGVkIG91dCBldmVudCBoYW5kbGVycyBhcmUgZGVmaW5lZCBieSB0aGUgSFRNTDUgc3BlY2lmaWNh
dGlvbiBidXQKICAgICAvLyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC4KIApJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL05hdmlnYXRvck1heFRvdWNoUG9pbnRzLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vTmF2aWdhdG9yTWF4VG91Y2hQb2ludHMuaWRsCShyZXZpc2lvbiAy
NjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTmF2aWdhdG9yTWF4VG91Y2hQb2ludHMuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw3IEBACiAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCi1bCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBNYXhUb3VjaFBvaW50cyB7
CisvLyBodHRwczovL3czYy5naXRodWIuaW8vcG9pbnRlcmV2ZW50cy8jZXh0ZW5zaW9ucy10by10
aGUtbmF2aWdhdG9yLWludGVyZmFjZQoraW50ZXJmYWNlIG1peGluIE5hdmlnYXRvck1heFRvdWNo
UG9pbnRzIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBtYXhUb3VjaFBvaW50czsKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2Rl
LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vbkRvY3VtZW50
VHlwZUNoaWxkTm9kZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDcgQEAKICAqLwog
CiAvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ub25kb2N1bWVudHR5
cGVjaGlsZG5vZGUKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNl
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZSB7CitpbnRlcmZhY2UgbWl4aW4gTm9uRG9jdW1lbnRU
eXBlQ2hpbGROb2RlIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gcHJldmlvdXNF
bGVtZW50U2libGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gbmV4dEVsZW1l
bnRTaWJsaW5nOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25FbGVtZW50UGFyZW50
Tm9kZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vbkVsZW1lbnRQYXJl
bnROb2RlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vbkVs
ZW1lbnRQYXJlbnROb2RlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogICov
CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLW5vbmVsZW1lbnRw
YXJlbnRub2RlCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBO
b25FbGVtZW50UGFyZW50Tm9kZSB7CitpbnRlcmZhY2UgbWl4aW4gTm9uRWxlbWVudFBhcmVudE5v
ZGUgewogICAgIFtET01KSVQ9UmVhZERPTV0gRWxlbWVudD8gZ2V0RWxlbWVudEJ5SWQoW1JlcXVp
cmVzRXhpc3RpbmdBdG9tU3RyaW5nXSBET01TdHJpbmcgZWxlbWVudElkKTsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vUGFyZW50Tm9kZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL1BhcmVudE5vZGUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vUGFyZW50Tm9kZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDcgQEAK
ICAqLwogCiAvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1wYXJlbnRu
b2RlCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBQYXJlbnRO
b2RlIHsKK2ludGVyZmFjZSBtaXhpbiBQYXJlbnROb2RlIHsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgSFRNTENvbGxlY3Rpb24gY2hpbGRyZW47IC8vIEZJWE1FOiBTaG91bGQgYmUgW1NhbWVPYmpl
Y3RdLgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmaXJzdEVsZW1lbnRDaGlsZDsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gbGFzdEVsZW1lbnRDaGlsZDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9TbG90YWJsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL1Nsb3RhYmxlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL1Nsb3RhYmxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsOSBAQAogICoK
ICAqLwogCisvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3Nsb3RhYmxlCiBbCi0gICAg
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVudGltZT1TaGFkb3dET00s
Ci1dIGludGVyZmFjZSBTbG90YWJsZSB7CitdIGludGVyZmFjZSBtaXhpbiBTbG90YWJsZSB7CiAg
ICAgW0ltcGxlbWVudGVkQXM9YXNzaWduZWRTbG90Rm9yQmluZGluZ3NdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MU2xvdEVsZW1lbnQ/IGFzc2lnbmVkU2xvdDsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh5cGVybGlua0VsZW1lbnRVdGls
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dAotXSBpbnRlcmZhY2UgSFRNTEh5cGVybGlua0VsZW1lbnRVdGlscyB7CisvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9saW5rcy5odG1sI2h0bWxoeXBlcmxpbmtlbGVt
ZW50dXRpbHMKK2ludGVyZmFjZSBtaXhpbiBIVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzIHsKICAg
ICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0LCBVUkxdIHN0cmluZ2lmaWVyIGF0dHJp
YnV0ZSBVU1ZTdHJpbmcgaHJlZjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9y
aWdpbjsKLQogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcg
cHJvdG9jb2w7CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIFVTVlN0cmlu
ZyB1c2VybmFtZTsKICAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgVVNWU3Ry
aW5nIHBhc3N3b3JkOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3JGb3JlaWduRWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3JGb3JlaWdu
RWxlbWVudC5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9yRm9yZWlnbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTUgQEAK
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2h0bWxv
cnN2Z2VsZW1lbnQKIC8vIEZJWE1FOiB1cGRhdGUgYWJvdmUgbGluayB3aGVuIHRoaXMgY2hhbmdl
IGhhcyBiZWVuIGltcGxlbWVudGVkOgogLy8gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1s
L2lzc3Vlcy80NzAyCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFj
ZSBIVE1MT3JGb3JlaWduRWxlbWVudCB7CitpbnRlcmZhY2UgbWl4aW4gSFRNTE9yRm9yZWlnbkVs
ZW1lbnQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdNYXAgZGF0YXNldDsgLy8g
RklYTUU6IFNob3VsZCBiZSBbU2FtZU9iamVjdF0uCisgICAgLy8gRklYTUU6IEltcGxlbWVudCAn
bm9uY2UnLgorICAgIC8vIGF0dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7IC8vIGludGVudGlvbmFs
bHkgbm8gW0NFUmVhY3Rpb25zXQorCisgICAgLy8gRklYTUU6IEltcGxlbWVudCAnYXV0b2ZvY3Vz
Jy4KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAg
ICBbQ0VSZWFjdGlvbnMsIEltcGxlbWVudGVkQXM9dGFiSW5kZXhGb3JCaW5kaW5nc10gYXR0cmli
dXRlIGxvbmcgdGFiSW5kZXg7CisgICAgLy8gRklNWEU6IGZvY3VzKCkgaXMgc3BlY2lmaWVkIHRv
IHRha2UgYW4gb3B0aW9uYWwgRm9jdXNPcHRpb25zLiBJbXBsZW1lbnQgdGhhdC4KICAgICB1bmRl
ZmluZWQgZm9jdXMoKTsKICAgICB1bmRlZmluZWQgYmx1cigpOwogfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0NvbXBvc2l0aW5nLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGluZy5pZGwJKHJldmlzaW9u
IDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0NvbXBvc2l0aW5n
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzY29tcG9zaXRpbmcKIFsKLSAgICBMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZh
Y2UgQ2FudmFzQ29tcG9zaXRpbmcgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzQ29tcG9zaXRp
bmcgewogICAgIC8vIEZJWE1FOiBBbGwgdGhlIHVucmVzdHJpY3RlZCBmbG9hdCBhdHRyaWJ1dGVz
IGJlbG93IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIGNvbXBvc2l0
aW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3SW1hZ2UuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0RyYXdJbWFn
ZS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc0RyYXdJbWFnZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEwICszNiwxMCBAQCB0eXBl
ZGVmIChIVE1MSW1hZ2VFbGVtZW50IG9yIEhUTUxDYW52YXNFCiAjZW5kaWYKICkgQ2FudmFzSW1h
Z2VTb3VyY2U7CiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Nh
bnZhcy5odG1sI2NhbnZhc2RyYXdpbWFnZQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNEcmF3SW1h
Z2UgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzRHJhd0ltYWdlIHsKICAgICAvLyBGSVhNRTog
QWxsIHRoZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYXJndW1lbnRzIGJlbG93IHNob3VsZCBiZSB1bnJl
c3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIGRyYXdpbmcgaW1hZ2VzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRHJhd1BhdGguaWRsCShyZXZpc2lvbiAyNjY2
NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2NhbnZhcy5odG1sI2NhbnZhc2RyYXdwYXRoCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc0Ry
YXdQYXRoIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc0RyYXdQYXRoIHsKICAgICAvLyBwYXRo
IEFQSSAoc2VlIGFsc28gQ2FudmFzUGF0aCkKICAgICB1bmRlZmluZWQgYmVnaW5QYXRoKCk7CiAg
ICAgdW5kZWZpbmVkIGZpbGwob3B0aW9uYWwgQ2FudmFzRmlsbFJ1bGUgZmlsbFJ1bGUgPSAibm9u
emVybyIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9r
ZVN0eWxlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiwxMCArMzYsMTAgQEAgdHlwZWRlZiAoSFRNTEltYWdlRWxlbWVudCBvciBIVE1MQ2Fu
dmFzRQogI2VuZGlmCiApIENhbnZhc0ltYWdlU291cmNlOwogCisvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNmaWxsc3Ryb2tlc3R5bGVz
CiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdv
cmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc0ZpbGxTdHJva2VTdHlsZXMgeworXSBpbnRlcmZhY2Ug
bWl4aW4gQ2FudmFzRmlsbFN0cm9rZVN0eWxlcyB7CiAgICAgLy8gY29sb3JzIGFuZCBzdHlsZXMg
KHNlZSBhbHNvIHRoZSBDYW52YXNQYXRoRHJhd2luZ1N0eWxlcyBhbmQgQ2FudmFzVGV4dERyYXdp
bmdTdHlsZXMgaW50ZXJmYWNlcykKICAgICBhdHRyaWJ1dGUgKERPTVN0cmluZyBvciBDYW52YXNH
cmFkaWVudCBvciBDYW52YXNQYXR0ZXJuKSBzdHJva2VTdHlsZTsgLy8gKGRlZmF1bHQgYmxhY2sp
CiAgICAgYXR0cmlidXRlIChET01TdHJpbmcgb3IgQ2FudmFzR3JhZGllbnQgb3IgQ2FudmFzUGF0
dGVybikgZmlsbFN0eWxlOyAvLyAoZGVmYXVsdCBibGFjaykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc0ZpbHRlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbHRlcnMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWx0ZXJzLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFz
Lmh0bWwjY2FudmFzZmlsdGVycwogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAg
IEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNGaWx0ZXJzIHsKK10g
aW50ZXJmYWNlIG1peGluIENhbnZhc0ZpbHRlcnMgewogICAgIC8vIGZpbHRlcnMKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IGZpbHRlci4KICAgICAvLyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpbHRl
cjsgLy8gKGRlZmF1bHQgIm5vbmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzR3JhZGllbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc0dyYWRpZW50LmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNncmFkaWVudAogWwogICAgIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VEYXRhLmlkbAko
cmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW1h
Z2VEYXRhLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzaW1hZ2VkYXRhCiBbCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50
ZXJmYWNlIENhbnZhc0ltYWdlRGF0YSB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNJbWFnZURh
dGEgewogICAgIC8vIEZJWE1FOiBBbGwgdGhlIGZsb2F0IGFyZ3VtZW50cyBiZWxvdyBzaG91bGQg
YmUgbG9uZ3MuCiAKICAgICAvLyBwaXhlbCBtYW5pcHVsYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlU21vb3RoaW5nLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNJbWFnZVNtb290aGluZy5pZGwJKHJldmlz
aW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlU21v
b3RoaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzaW1hZ2VzbW9vdGhpbmcKIFsKLSAg
ICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQot
XSBpbnRlcmZhY2UgQ2FudmFzSW1hZ2VTbW9vdGhpbmcgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2Fu
dmFzSW1hZ2VTbW9vdGhpbmcgewogICAgIC8vIGltYWdlIHNtb290aGluZwogICAgIGF0dHJpYnV0
ZSBib29sZWFuIGltYWdlU21vb3RoaW5nRW5hYmxlZDsgLy8gKGRlZmF1bHQgdHJ1ZSkKICAgICBh
dHRyaWJ1dGUgSW1hZ2VTbW9vdGhpbmdRdWFsaXR5IGltYWdlU21vb3RoaW5nUXVhbGl0eTsgLy8g
KGRlZmF1bHQgbG93KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0
aC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0
aC5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1BhdGguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTAgQEAKICAqIFNVQ0gg
REFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2NhbnZhcy5odG1sI2NhbnZhc3BhdGgKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwK
ICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzUGF0aCB7Citd
IGludGVyZmFjZSBtaXhpbiBDYW52YXNQYXRoIHsKICAgICAvLyBzaGFyZWQgcGF0aCBBUEkgbWV0
aG9kcwogICAgIHVuZGVmaW5lZCBjbG9zZVBhdGgoKTsKICAgICB1bmRlZmluZWQgbW92ZVRvKHVu
cmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdGhEcmF3aW5nU3R5bGVzLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoRHJhd2luZ1N0eWxl
cy5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1BhdGhEcmF3aW5nU3R5bGVzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzcGF0aGRy
YXdpbmdzdHlsZXMKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzUGF0aERyYXdpbmdTdHlsZXMgewor
XSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzUGF0aERyYXdpbmdTdHlsZXMgewogICAgIC8vIEZJWE1F
OiBBbGwgdGhlIHVucmVzdHJpY3RlZCBmbG9hdCBhcmd1bWVudHMgLyBhdHRyaWJ1dGVzIGJlbG93
IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIGxpbmUgY2Fwcy9qb2lu
cwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwJKHJldmlz
aW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlY3QuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNyZWN0CiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc1Jl
Y3QgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzUmVjdCB7CiAgICAgLy8gRklYTUU6IEFsbCB0
aGUgdW5yZXN0cmljdGVkIGZsb2F0IHBhcmFtZXRlcnMgYmVsb3cgc2hvdWxkIGJlIHVucmVzdHJp
Y3RlZCBkb3VibGVzLgogCiAgICAgLy8gcmVjdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1NoYWRvd1N0eWxlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzU2hhZG93U3R5bGVzLmlkbAkocmV2aXNpb24gMjY2NjcxKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU2hhZG93U3R5bGVzLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2UvY2FudmFzLmh0bWwjY2FudmFzc2hhZG93c3R5bGVzCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZh
c1NoYWRvd1N0eWxlcyB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNTaGFkb3dTdHlsZXMgewog
ICAgIC8vIEZJWE1FOiBBbGwgdGhlIHVucmVzdHJpY3RlZCBmbG9hdCBhdHRyaWJ1dGVzIGJlbG93
IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIHNoYWRvd3MKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwJKHJldmlzaW9uIDI2
NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2UvY2FudmFzLmh0bWwjY2FudmFzc3RhdGUKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzU3RhdGUg
eworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzU3RhdGUgewogICAgIC8vIHN0YXRlCiAgICAgdW5k
ZWZpbmVkIHNhdmUoKTsgLy8gcHVzaCBzdGF0ZSBvbiBzdGF0ZSBzdGFjawogICAgIHVuZGVmaW5l
ZCByZXN0b3JlKCk7IC8vIHBvcCBzdGF0ZSBzdGFjayBhbmQgcmVzdG9yZSBzdGF0ZQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVGV4dC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVGV4dC5pZGwJKHJldmlzaW9uIDI2NjY3
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1RleHQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9j
YW52YXMuaHRtbCNjYW52YXN0ZXh0CiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIENhbnZhc1RleHQgeworXSBpbnRlcmZhY2Ug
bWl4aW4gQ2FudmFzVGV4dCB7CiAgICAgLy8gRklYTUU6IEFsbCB0aGUgdW5yZXN0cmljdGVkIGZs
b2F0IHBhcmFtZXRlcnMgYmVsb3cgc2hvdWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGVzLgogCiAg
ICAgLy8gdGV4dCAoc2VlIGFsc28gdGhlIENhbnZhc1BhdGhEcmF3aW5nU3R5bGVzIGFuZCBDYW52
YXNUZXh0RHJhd2luZ1N0eWxlcyBpbnRlcmZhY2VzKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHlsZXMuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1RleHREcmF3aW5nU3R5bGVzLmlkbAkocmV2aXNp
b24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdp
bmdTdHlsZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXN0ZXh0ZHJhd2luZ3N0eWxlcwog
WwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93Ci1dIGlu
dGVyZmFjZSBDYW52YXNUZXh0RHJhd2luZ1N0eWxlcyB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52
YXNUZXh0RHJhd2luZ1N0eWxlcyB7CiAgICAgLy8gdGV4dAogICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgZm9udDsgLy8gKGRlZmF1bHQgMTBweCBzYW5zLXNlcmlmKQogICAgIGF0dHJpYnV0ZSBDYW52
YXNUZXh0QWxpZ24gdGV4dEFsaWduOyAvLyAoZGVmYXVsdDogInN0YXJ0IikKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1RyYW5zZm9ybS5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAkocmV2aXNpb24g
MjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzdHJhbnNmb3JtCiBbCi0gICAgTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENh
bnZhc1RyYW5zZm9ybSB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNUcmFuc2Zvcm0gewogICAg
IC8vIEZJWE1FOiBBbGwgdGhlIHVucmVzdHJpY3RlZCBmbG9hdCBwYXJhbWV0ZXJzIGJlbG93IHNo
b3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91Ymxlcy4KIAogICAgIC8vIHRyYW5zZm9ybWF0aW9ucyAo
ZGVmYXVsdCB0cmFuc2Zvcm0gaXMgdGhlIGlkZW50aXR5IG1hdHJpeCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1VzZXJJbnRlcmZhY2UuaWRsCShyZXZp
c2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNVc2VySW50
ZXJmYWNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjY2FudmFzdXNlcmludGVyZmFjZQogWwotICAg
IExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFj
ZSBDYW52YXNVc2VySW50ZXJmYWNlIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc1VzZXJJbnRl
cmZhY2UgewogICAgIHVuZGVmaW5lZCBkcmF3Rm9jdXNJZk5lZWRlZChFbGVtZW50IGVsZW1lbnQp
OwogICAgIHVuZGVmaW5lZCBkcmF3Rm9jdXNJZk5lZWRlZChQYXRoMkQgcGF0aCwgRWxlbWVudCBl
bGVtZW50KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw4IEBAIHR5cGVkZWYgKEhUTUxDYW52YXNFbGVtZW50
KSBXZWJHTENhbnZhczsKICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIERvTm90Q2hlY2tDb25z
dGFudHMsCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKK10gaW50ZXJmYWNlIG1peGluIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UgewogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdMQ2FudmFzIGNhbnZh
czsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxDcnlwdG8uaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsQ3J5cHRvLmlkbAkocmV2aXNpb24gMjY2
NjcxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxDcnlwdG8uaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw4ICsyMyw3IEBACiAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIEdsb2Jh
bENyeXB0byB7CisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViY3J5cHRvLyNjcnlwdG8taW50
ZXJmYWNlCitpbnRlcmZhY2UgbWl4aW4gR2xvYmFsQ3J5cHRvIHsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgQ3J5cHRvIGNyeXB0bzsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bFBlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bFBlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMyw5IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9oci10aW1l
LwotCisvLyBodHRwczovL3czYy5naXRodWIuaW8vaHItdGltZS8jZXh0ZW5zaW9ucy10by13aW5k
b3dvcndvcmtlcmdsb2JhbHNjb3BlLW1peGluCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIEdsb2JhbFBlcmZv
cm1hbmNlIHsKK10gaW50ZXJmYWNlIG1peGluIEdsb2JhbFBlcmZvcm1hbmNlIHsKICAgICBbUmVw
bGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQZXJmb3JtYW5jZSBwZXJmb3JtYW5jZTsKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYg
KzIxLDggQEAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPVJlYWNoYWJsZUZyb21ET01XaW5kb3cs
CiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiBdIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHNwZWNpZmllZCB0byBiZSBpbiBpdCdzIG93biBtaXhpbiBjYWxs
ZWQgTmF2aWdhdG9yQ29va2llcy4KKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9zeXN0ZW0tc3RhdGUuaHRtbCNuYXZpZ2F0b3Jjb29raWVzCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gY29va2llRW5hYmxlZDsKIAogICAgIFtDb25kaXRpb25hbD1O
QVZJR0FUT1JfU1RBTkRBTE9ORV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3RhbmRhbG9u
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCShyZXZpc2lvbiAyNjY2NzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvcklELmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOSArMjYsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIE5hdmlnYXRvcklEIHsKKy8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5c3RlbS1zdGF0ZS5odG1sI25hdmlnYXRvcmlkCitp
bnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9ySUQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYXBwQ29kZU5hbWU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBO
YW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwVmVyc2lvbjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCShyZXZpc2lvbiAyNjY2
NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOSArMjYsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1bCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIE5hdmlnYXRvckxhbmd1YWdlIHsKKy8v
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5c3RlbS1zdGF0ZS5odG1s
I25hdmlnYXRvcmxhbmd1YWdlCitpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9yTGFuZ3VhZ2Ugewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gbGFuZ3VhZ2VzOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvck9uTGluZS5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIE5hdmlnYXRvck9uTGluZSB7CisvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vZmZsaW5lLmh0bWwjbmF2aWdhdG9yb25saW5l
CitpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9yT25MaW5lIHsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBvbkxpbmU7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3JQbHVnaW5zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
clBsdWdpbnMuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclBsdWdpbnMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMyw4IEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Ci1dIGludGVyZmFjZSBOYXZpZ2F0b3JQbHVnaW5zIHsKKy8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5c3RlbS1zdGF0ZS5odG1sI25hdmlnYXRv
cnBsdWdpbnMKK2ludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JQbHVnaW5zIHsKICAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01NaW1lVHlwZUFycmF5IG1pbWVUeXBlczsK
ICAgICBib29sZWFuIGphdmFFbmFibGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclNlcnZpY2VXb3JrZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yU2VydmljZVdvcmtlci5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU2VydmljZVdvcmtlci5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNuYXZpZ2F0b3It
c2VydmljZXdvcmtlcgogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRp
dGlvbmFsPVNFUlZJQ0VfV09SS0VSLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9U2VydmljZVdvcmtl
cgotXSBpbnRlcmZhY2UgTmF2aWdhdG9yU2VydmljZVdvcmtlciB7CitdIGludGVyZmFjZSBtaXhp
biBOYXZpZ2F0b3JTZXJ2aWNlV29ya2VyIHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb24sIFNlY3VyZUNvbnRleHQsIFNhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIHNlcnZpY2VXb3JrZXI7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JTaGFyZS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JTaGFyZS5pZGwJKHJldmlzaW9uIDI2
NjY3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU2hhcmUuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMSArMjMsMTAgQEAKICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKLQorLy8gaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYi1zaGFyZS8jZXh0ZW5zaW9ucy10by10aGUtbmF2aWdhdG9y
LWludGVyZmFjZQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEVuYWJsZWRC
eVNldHRpbmc9V2ViU2hhcmUKLV0gaW50ZXJmYWNlIE5hdmlnYXRvclNoYXJlIHsKK10gaW50ZXJm
YWNlIG1peGluIE5hdmlnYXRvclNoYXJlIHsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnQsIFNlY3Vy
ZUNvbnRleHRdIGJvb2xlYW4gY2FuU2hhcmUob3B0aW9uYWwgU2hhcmVEYXRhIHNoYXJlRGF0YSk7
CiAgICAgW0NhbGxXaXRoPURvY3VtZW50LCBTZWN1cmVDb250ZXh0XSBQcm9taXNlPHVuZGVmaW5l
ZD4gc2hhcmUob3B0aW9uYWwgU2hhcmVEYXRhIHNoYXJlRGF0YSk7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9XaW5kb3dFdmVudEhhbmRsZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1dpbmRvd0V2ZW50SGFuZGxlcnMuaWRsCShyZXZpc2lvbiAyNjY2NzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0V2ZW50SGFuZGxlcnMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSwxNCArMjUsMTAgQEAKICAqLwogCiAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjd2luZG93ZXZlbnRoYW5kbGVycwot
WwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgV2luZG93RXZlbnRI
YW5kbGVycyB7Ci0gICAgLy8gQ29tbWVudGVkIG91dCBldmVudCBoYW5kbGVycyBhcmUgZGVmaW5l
ZCBieSB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbiBidXQKLSAgICAvLyBhcmUgbm90IHlldCBpbXBs
ZW1lbnRlZC4KLQoraW50ZXJmYWNlIG1peGluIFdpbmRvd0V2ZW50SGFuZGxlcnMgewogICAgIFtX
aW5kb3dFdmVudEhhbmRsZXJdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hZnRlcnByaW50Owog
ICAgIFtXaW5kb3dFdmVudEhhbmRsZXJdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25iZWZvcmVw
cmludDsKKyAgICAvLyBGSVhNRTogVGhlIHNwZWMgc2F5cyB0aGF0IG9uYmVmb3JldW5sb2FkIHNo
b3VsZCBiZSBvZiB0eXBlIE9uQmVmb3JlVW5sb2FkRXZlbnRIYW5kbGVyLCBub3QgRXZlbnRIYW5k
bGVyLgogICAgIFtXaW5kb3dFdmVudEhhbmRsZXJdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25i
ZWZvcmV1bmxvYWQ7CiAgICAgW1dpbmRvd0V2ZW50SGFuZGxlcl0gYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmhhc2hjaGFuZ2U7CiAgICAgW1dpbmRvd0V2ZW50SGFuZGxlcl0gYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbmxhbmd1YWdlY2hhbmdlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw5ICs0Miw4IEBAIHR5cGVkZWYgKEhUTUxJbWFnZUVsZW1lbnQKIAog
dHlwZWRlZiAoQ2FudmFzSW1hZ2VTb3VyY2Ugb3IgQmxvYiBvciBJbWFnZURhdGEpIEltYWdlQml0
bWFwU291cmNlOwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFj
ZSBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCN3aW5kb3dvcndvcmtlcmdsb2JhbHNjb3Bl
LW1peGluCitpbnRlcmZhY2UgbWl4aW4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAg
W1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKIAogICAg
IC8vIFRpbWVycwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwJKHJldmlzaW9uIDI2NjY3MSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw4IEBACiAgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
ICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeworLy8gaHR0cHM6Ly9kcmFmdHMuZnh0
Zi5vcmcvZmlsdGVyLWVmZmVjdHMvI0ludGVyZmFjZVNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcworaW50ZXJmYWNlIG1peGluIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHg7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRoOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpdFRvVmlld0JveC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpdFRvVmlld0JveC5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCwxMCBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
LAotXSBpbnRlcmZhY2UgU1ZHRml0VG9WaWV3Qm94IHsKKy8vIGh0dHBzOi8vc3Znd2cub3JnL3N2
ZzItZHJhZnQvdHlwZXMuaHRtbCNJbnRlcmZhY2VTVkdGaXRUb1ZpZXdCb3gKK2ludGVyZmFjZSBt
aXhpbiBTVkdGaXRUb1ZpZXdCb3ggeworICAgIC8vIEZJWE1FOiAndmlld0JveCcgc2hvdWxkIGJl
IGFubm90YXRlZCB3aXRoIFtTYW1lT2JqZWN0XS4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRSZWN0IHZpZXdCb3g7CisgICAgLy8gRklYTUU6ICdwcmVzZXJ2ZUFzcGVjdFJhdGlv
JyBzaG91bGQgYmUgYW5ub3RhdGVkIHdpdGggW1NhbWVPYmplY3RdLgogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRp
bzsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5pZGwJKHJldmlzaW9uIDI2NjY3MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDE0
ICsyNCwxNSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0LAotICAgIFN1cHByZXNzVG9KU09iamVjdCwKLV0gaW50ZXJmYWNlIFNWR1Rlc3Rz
IHsKLSAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1N0cmluZ0xpc3QgcmVx
dWlyZWRGZWF0dXJlczsKKy8vIGh0dHBzOi8vc3Znd2cub3JnL3N2ZzItZHJhZnQvdHlwZXMuaHRt
bCNJbnRlcmZhY2VTVkdUZXN0cworaW50ZXJmYWNlIG1peGluIFNWR1Rlc3RzIHsKICAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1N0cmluZ0xpc3QgcmVxdWlyZWRFeHRlbnNp
b25zOwogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCBz
eXN0ZW1MYW5ndWFnZTsKIAorCisgICAgLy8gQXMgb2YgU1ZHMiwgdGhlIGZvbGxvd2luZyBhcmUg
bm8gbG9uZ2VyIHBhcnQgb2YgdGhpcyBpbnRlcmZhY2UuCisKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR1N0cmluZ0xpc3QgcmVxdWlyZWRGZWF0dXJlczsKICAgICAvLyBG
SVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3Jv
bmcuCiAgICAgYm9vbGVhbiBoYXNFeHRlbnNpb24ob3B0aW9uYWwgRE9NU3RyaW5nIGV4dGVuc2lv
biA9ICJ1bmRlZmluZWQiKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVm
ZXJlbmNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJl
bmNlLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJl
ZmVyZW5jZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLSAgICBTdXBwcmVz
c1RvSlNPYmplY3QsCi1dIGludGVyZmFjZSBTVkdVUklSZWZlcmVuY2UgeworLy8gaHR0cHM6Ly9z
dmd3Zy5vcmcvc3ZnMi1kcmFmdC90eXBlcy5odG1sI0ludGVyZmFjZVNWR1VSSVJlZmVyZW5jZQor
aW50ZXJmYWNlIG1peGluIFNWR1VSSVJlZmVyZW5jZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkU3RyaW5nIGhyZWY7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1pvb21BbmRQYW4uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29t
QW5kUGFuLmlkbAkocmV2aXNpb24gMjY2NjcxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pv
b21BbmRQYW4uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFj
ZSBTVkdab29tQW5kUGFuIHsKK2ludGVyZmFjZSBtaXhpbiBTVkdab29tQW5kUGFuIHsKICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfWk9PTUFORFBBTl9VTktOT1dOID0gMDsKICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfWk9PTUFORFBBTl9ESVNBQkxFID0gMTsKICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfWk9PTUFORFBBTl9NQUdOSUZZID0gMjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMjksOSArMjksOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1bCi0gICAgTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBBYnN0cmFjdFdvcmtlciB7CisvLyBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93b3JrZXJzLmh0bWwjYWJzdHJhY3R3b3Jr
ZXIKK2ludGVyZmFjZSBtaXhpbiBBYnN0cmFjdFdvcmtlciB7CiAgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbmVycm9yOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZh
bHVhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0
b3IuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFs
dWF0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiw4IEBACiBdIGludGVyZmFjZSBY
UGF0aEV2YWx1YXRvciB7CiAgICAgY29uc3RydWN0b3IoKTsKIAorICAgIC8vIEZJWE1FOiBUaGUg
Zm9sbG93aW5nIHNob3VsZCBiZSBleHRyYWN0ZWQgaW50byBhIG5ldyBtaXhpbiwgWFBhdGhFdmFs
dWF0b3JCYXNlIC0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyN4cGF0aGV2YWx1YXRvcmJh
c2UKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNz
aW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29s
dmVyKTsKLQogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKE5vZGUgbm9kZVJl
c29sdmVyKTsKLQogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUo
RE9NU3RyaW5nIGV4cHJlc3Npb24sIE5vZGUgY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNS
ZXNvbHZlcj8gcmVzb2x2ZXIsIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRp
b25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aE5TUmVzb2x2ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aE5TUmVzb2x2ZXIuaWRsCShyZXZpc2lvbiAyNjY2NzEpCisrKyBTb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNiArMTgsOCBAQAog
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAorLy8gaHR0cHM6Ly9kb20uc3Bl
Yy53aGF0d2cub3JnLyNjYWxsYmFja2RlZi14cGF0aG5zcmVzb2x2ZXIKKy8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBhIGNhbGxiYWNrIGludGVyZmFjZS4KIFsKICAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408110</attachid>
            <date>2020-09-05 17:47:53 -0700</date>
            <delta_ts>2020-09-05 19:49:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216217-20200905174751.patch</filename>
            <type>text/plain</type>
            <size>117623</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0NCBAQAorMjAyMC0wOS0wNSAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQg
Zm9yIGludGVyZmFjZSBtaXhpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNjIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBXZWJJREwgaW50ZXJmYWNlIG1peGlu
cywgd2hpY2ggYXJlIGludGVyZmFjZSBmcmFnbWVudHMKKyAgICAgICAgdGhhdCBjYW4gYmUgaW5j
bHVkZWQgaW50byBvdGhlciBpbnRlcmZhY2VzICh1c2luZyBhbiAnaW5jbHVkZXMnIHN0YXRlbWVu
dCksIAorICAgICAgICBidXQgZG8gbm90IGNyZWF0ZSBuZXcgdHlwZXMgdGhlbXNlbHZlcy4KKyAg
ICAgICAgCisgICAgICAgIFByaW9yIHRvIHRoaXMsIHdlIGhhdmUgYmVlbiBlbXVsYXRpbmcgdGhl
IGJlaGF2aW9yIGJ5IGFsbG93aW5nIGFueSBpbnRlcmZhY2UKKyAgICAgICAgdG8gYmUgaW5jbHVk
ZWQgaW4gYW5vdGhlciBpbnRlcmZhY2UsIGFuZCBtYXJraW5nIHNvbWUgaW50ZXJmYWNlcyB3aXRo
IHRoZQorICAgICAgICBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0
ZS4gVGhpcyBjaGFuZ2UgY29kaWZpZXMgdGhhdCB3aXRoCisgICAgICAgIGluIHRoZSBzcGVjIGFw
cHJvdmVkIHdheS4KKyAgICAgICAgCisgICAgICAgIC0gVXBkYXRlcyBJREwgcGFyc2VyIHRvIHBh
cnNlIG1peGluIGludGVyZmFjZXMgKGFuZCBmaXhlcyB0aGUgcGFyc2luZyBvZiBjYWxsYmFjawor
ICAgICAgICAgIGludGVyZmFjZXMgdG8gYmUgYSBiaXQgbW9yZSBzdHJpY3Qgd2hpbGUgSSB3YXMg
dGhlcmUpLgorICAgICAgICAtIFVwZGF0ZXMgSURMIHByZS1wcm9jZXNzb3IgdG8gYXZvaWQgY3Jl
YXRpbmcgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgSXNvU3Vic3BhY2VzIAorICAgICAgICAgIGZvciBt
aXhpbnMuCisgICAgICAgIC0gVXBkYXRlcyBJREwgY29kZSBnZW5lcmF0b3IgdG8gb25seSBzdXBw
b3J0IGluY2x1ZGluZyBtaXhpbiBpbnRlcmZhY2VzIGR1cmluZworICAgICAgICAgIHN1cHBsZW1l
bnRhbCBpbmNsdXNpb24uCisgICAgICAgIC0gVXBkYXRlcyBJREwgZmlsZXMgdG8gdXNlIGludGVy
ZmFjZSBtaXhpbiB3aGVyZSBhcHByb3ByaWF0ZWx5IHNwZWNpZmllZC4gCisKKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsOiBSZW1vdmVkLgorICAg
ICAgICBSZW1vdmUgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBhbmQgY29ycmVz
cG9uZGluZyBnZW5lcmF0ZWQgZmlsZXMsIGlubGluaW5nCisgICAgICAgIGl0IGludG8gRGV2aWNl
TW90aW9uRXZlbnQuaWRsIGFuZCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBhcyBzcGVjaWZp
ZWQuIFRoaXMgaXMKKyAgICAgICAgbmVlZGVkIGFzIG1peGluIGludGVyZmFjZXMgZG8gbm90IHN1
cHBvcnQgc3RhdGljIG9wZXJhdGlvbnMgb3IgYXR0cmlidXRlcy4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKElzVmFsaWRTdXBwbGVtZW50
YWxJbnRlcmZhY2UpOgorICAgICAgICAoSXNWYWxpZFN1cHBsZW1lbnRhbERpY3Rpb25hcnkpOgor
ICAgICAgICAoUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcyk6CisgICAgICAgIChHZXRJ
bnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSk6CisgICAgICAgIFVwZGF0ZSBJREwg
Y29kZSBnZW5lcmF0b3IgdG8gb25seSBzdXBwb3J0IGluY2x1ZGluZyBtaXhpbiBpbnRlcmZhY2Vz
IGR1cmluZworICAgICAgICBzdXBwbGVtZW50YWwgaW5jbHVzaW9uLiBBbHNvIHJlbW92ZXMgc29t
ZSBsZWZ0IG9mIHJlbW5lbnRzIG9mIGV4Y2VwdGlvbiBpbnRlcmZhY2UKKyAgICAgICAgc3VwcG9y
dC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAo
cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUNhbGxiYWNrSW50
ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXJzKToKKyAgICAg
ICAgKHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VNaXhpbik6
CisgICAgICAgIChwYXJzZU1peGluTWVtYmVycyk6CisgICAgICAgIChwYXJzZU1peGluTWVtYmVy
KToKKyAgICAgICAgKHBhcnNlTmFtZXNwYWNlKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVy
ZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uRm9yU3RyaW5n
aWZpZXJPclN0YXRpYyk6CisgICAgICAgIFVwZGF0ZSBJREwgcGFyc2VyIHRvIHBhcnNlIG1peGlu
IGludGVyZmFjZXMgYW5kIGZpeCB0aGUgcGFyc2luZyBvZiBjYWxsYmFjaworICAgICAgICBpbnRl
cmZhY2VzIHRvIG1hdGNoIHRoZSBzcGVjIGJ5IHJlc3RyaWN0aW5nIGl0cyBtZW1iZXJzIHRvIGNv
bnN0YW50cyBhbmQKKyAgICAgICAgcmVndWxhciBmdW5jdGlvbnMuCisgICAgICAgIAorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICAoaXNNaXhp
bkludGVyZmFjZUZyb21JREwpOgorICAgICAgICAoY29udGFpbnNJbnRlcmZhY2VGcm9tSURMKToK
KyAgICAgICAgKGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JREwpOgorICAgICAg
ICAoY29udGFpbnNJbnRlcmZhY2VPckV4Y2VwdGlvbkZyb21JREwpOiBEZWxldGVkLgorICAgICAg
ICBFbnN1cmUgbWl4aW4gaW50ZXJmYWNlcyBkb24ndCBnZXQgZXhwb3NlZCBvbiBhbnkgZ2xvYmFs
IG9iamVjdHMgYW5kCisgICAgICAgIHJlbW92ZSBzb21lIGxlZnQgb2YgcmVtbmVudHMgb2YgZXhj
ZXB0aW9uIGludGVyZmFjZSBzdXBwb3J0LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxE
ZXBlbmRlbmNpZXMuZGVwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5j
bHVkZXMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9wZXJhdGlvbkJhc2UuaWRsOgorICAgICAgICBVcGRhdGUgYmluZGluZ3MgdGVzdHMg
dG8gdXNlIG1peGlucyBmb3IgaW5jbHVkZXMuIEFkZCBuZXcgZGVkaWNhdGVkIAorICAgICAgICBb
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIHNpbmNlIGl0IHdhcyBubyBsb25nZXIgYmVpbmcgdGVz
dGVkLiAKKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSb2xlLmlkbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVz
LmlkbDoKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGw6CisgICAgICAgICogY3Nz
L0VsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRs
OgorICAgICAgICAqIGRvbS9DaGlsZE5vZGUuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rp
b25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnMuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9v
dC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaWRsOgorICAgICAgICAqIGRvbS9H
bG9iYWxFdmVudEhhbmRsZXJzLmlkbDoKKyAgICAgICAgKiBkb20vTmF2aWdhdG9yTWF4VG91Y2hQ
b2ludHMuaWRsOgorICAgICAgICAqIGRvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOgor
ICAgICAgICAqIGRvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGw6CisgICAgICAgICogZG9tL1Bh
cmVudE5vZGUuaWRsOgorICAgICAgICAqIGRvbS9TbG90YWJsZS5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPckZv
cmVpZ25FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGlu
Zy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzRHJhd0ltYWdlLmlkbDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzRmlsdGVycy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc0ltYWdlRGF0YS5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1BhdGguaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdGhEcmF3
aW5nU3R5bGVzLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTaGFkb3dTdHlsZXMuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNU
ZXh0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNVc2VySW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbDoKKyAgICAgICAgKiBwYWdlL0dsb2Jh
bENyeXB0by5pZGw6CisgICAgICAgICogcGFnZS9HbG9iYWxQZXJmb3JtYW5jZS5pZGw6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRs
OgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yT25MaW5lLmlkbDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvclBsdWdpbnMuaWRs
OgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yU2VydmljZVdvcmtlci5pZGw6CisgICAgICAgICog
cGFnZS9OYXZpZ2F0b3JTaGFyZS5pZGw6CisgICAgICAgICogcGFnZS9XaW5kb3dFdmVudEhhbmRs
ZXJzLmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsOgorICAgICAgICAqIHN2Zy9TVkdUZXN0
cy5pZGw6CisgICAgICAgICogc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogc3Zn
L1NWR1pvb21BbmRQYW4uaWRsOgorICAgICAgICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRs
OgorICAgICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5pZGw6CisgICAgICAgICogeG1sL1hQYXRo
TlNSZXNvbHZlci5pZGw6CisgICAgICAgIFVwZGF0ZSBJRExzLgorCiAyMDIwLTA5LTA1ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9ybWF0dGluZyBvZiBM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTc2MSw3ICs3NjEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGRv
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRs
CiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCi0gICAgZG9tL0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAgICAgZG9tL0RvY3Vt
ZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjY2Njc2KQorKysg
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTUyOCw4ICs1MjgsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RldmljZU1vdGlvbkV2ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCi0k
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Rpc3Rh
bmNlTW9kZWxUeXBlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZp
c2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MTIsNyArNzEyLDYgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RvY3VtZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVy
cy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yODM0LDcgKzI4MzQsNiBAQCBK
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3Bw
CiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAot
SlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuY3BwCiBKU0Rpc3RhbmNlTW9kZWxUeXBlLmNwcAogSlNE
b2N1bWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eS5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNyBAQAogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9RmV0Y2hBUEksCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAg
SW50ZXJmYWNlTmFtZT1Cb2R5LAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1dIGludGVy
ZmFjZSBGZXRjaEJvZHkgeworXSBpbnRlcmZhY2UgbWl4aW4gRmV0Y2hCb2R5IHsKICAgICBbSW1w
bGVtZW50ZWRBcz1yZWFkYWJsZVN0cmVhbSwgQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0/IGJvZHk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gYm9keVVzZWQ7CiAgICAgW05ld09iamVjdF0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4g
YXJyYXlCdWZmZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
VmlkZW9QbGF5YmFja1F1YWxpdHkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvVmlkZW9QbGF5YmFja1F1YWxpdHkuaWRsCShyZXZpc2lvbiAyNjY2
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tR
dWFsaXR5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9t
ZWRpYS1wbGF5YmFjay1xdWFsaXR5LyNpZGwtZGVmLXZpZGVvcGxheWJhY2txdWFsaXR5CisvLyBG
SVhNRTogVGhpcyBpcyBub3Qgc3BlY2lmaWVkIGFzICJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIu
IEl0IHNob3VsZCBoYXZlIGFuIGludGVyZmFjZSBvYmplY3QuCiBbCiAgICAgQ29uZGl0aW9uYWw9
VklERU8sCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwJKHJldmlzaW9uIDI2
NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDkgQEAKICAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KLSAKKworLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gt
YXBpLyN0dHMtc2VjdGlvbgorLy8gRklYTUU6IFRoaXMgaXMgbm90IHNwZWNpZmllZCBhcyAiTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QiLiBJdCBzaG91bGQgaGF2ZSBhbiBpbnRlcmZhY2Ugb2JqZWN0
LgogWwogICAgIENvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMsCiAgICAgTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNWb2ljZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDkgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KLSAKKworLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gtYXBpLyNzcGVl
Y2hzeW50aGVzaXN2b2ljZQorLy8gRklYTUU6IFRoaXMgaXMgbm90IHNwZWNpZmllZCBhcyAiTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QiLiBJdCBzaG91bGQgaGF2ZSBhbiBpbnRlcmZhY2Ugb2JqZWN0
LgogWwogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVNQRUVD
SF9TWU5USEVTSVMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzkyMCw3
ICs3OTIwLDYgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnQ29sbGVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIwRUFGMEVEMDBCMjlGRDIgLyogRGF0
YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZU1hbmFn
ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1QThFNzgxQzhBMjRD
RTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NUVERDlEMjIyRjRFQzMwMEI0
NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RUREQTAyMjJGNEVDNDAwQjQ2RTE2IC8qIERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjYxNzJFOTIzQTJBQkZBMDAzQUIzMDkgLyog
UG9zdE1lc3NhZ2VPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3N0TWVzc2Fn
ZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkxNTIsNyArMjkx
NTEsNiBAQAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbCAqLywKIAkJCQk0NjFEQTUyQzIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk0NjFEQTUyQTIyMkY0ODZGMDBEMDVB
ODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggKi8sCi0JCQkJNDY1RUREOUQy
MjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwgKi8s
CiAJCQkJNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUuaCAqLywKIAkJCQk0NjVFRERBMDIyMkY0RUM0MDBCNDZFMTYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgKi8sCiAJCQkJQTgx
ODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNwcCAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUuaWRsCShyZXZp
c2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSb2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsOSArMjMsOSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8v
YW9tL3NwZWMvYXJpYS1yZWZsZWN0aW9uLmh0bWwjQWNjZXNzaWJpbGl0eVJvbGUKIFsKLSAgICBF
bmFibGVkQXRSdW50aW1lPUFyaWFSZWZsZWN0aW9uLAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0LAotXSBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVJvbGUgeworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9QXJpYVJlZmxlY3Rpb24KK10gaW50ZXJmYWNlIG1peGluIEFjY2Vzc2liaWxpdHlSb2xlIHsK
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZz8gcm9sZTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlkbAkocmV2aXNp
b24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRl
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vYW9t
L3NwZWMvYXJpYS1yZWZsZWN0aW9uLmh0bWwjQXJpYUF0dHJpYnV0ZXMKIFsKICAgICBFbmFibGVk
QXRSdW50aW1lPUFyaWFSZWZsZWN0aW9uLAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAot
XSBpbnRlcmZhY2UgQXJpYUF0dHJpYnV0ZXMgeworXSBpbnRlcmZhY2UgbWl4aW4gQXJpYUF0dHJp
YnV0ZXMgewogICAgIFtSZWZsZWN0PWFyaWFfYXRvbWljXSAgICAgICAgICAgYXR0cmlidXRlIERP
TVN0cmluZz8gYXJpYUF0b21pYzsKICAgICBbUmVmbGVjdD1hcmlhX2F1dG9jb21wbGV0ZV0gICAg
IGF0dHJpYnV0ZSBET01TdHJpbmc/IGFyaWFBdXRvQ29tcGxldGU7CiAgICAgW1JlZmxlY3Q9YXJp
YV9idXN5XSAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBhcmlhQnVzeTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRhYmxlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwJKHJldmlzaW9uIDI2NjY3NikK
KysrIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRhYmxlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy93ZWItYW5pbWF0aW9ucy0xLyN0aGUtYW5pbWF0YWJsZS1pbnRlcmZh
Y2UtbWl4aW4KIFsKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnMsCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIEFuaW1hdGFibGUgeworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViQW5pbWF0aW9ucworXSBpbnRlcmZhY2UgbWl4aW4gQW5pbWF0YWJsZSB7
CiAgICAgW01heVRocm93RXhjZXB0aW9uLCBDYWxsV2l0aD1HbG9iYWxPYmplY3RdIFdlYkFuaW1h
dGlvbiBhbmltYXRlKG9iamVjdD8ga2V5ZnJhbWVzLCBvcHRpb25hbCAodW5yZXN0cmljdGVkIGRv
dWJsZSBvciBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMpIG9wdGlvbnMpOwogICAgIHNlcXVlbmNl
PFdlYkFuaW1hdGlvbj4gZ2V0QW5pbWF0aW9ucyhvcHRpb25hbCBHZXRBbmltYXRpb25zT3B0aW9u
cyBvcHRpb25zKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTI4
MSw2ICsyODEsMjMgQEAgc3ViIE1lcmdlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbVN1cHBsZW1lbgog
ICAgIH0KIH0KIAorc3ViIElzVmFsaWRTdXBwbGVtZW50YWxJbnRlcmZhY2UKK3sKKyAgICBteSAo
JG9iamVjdCwgJHRhcmdldERvY3VtZW50LCAkc3VwcGxlbWVudGFsSW50ZXJmYWNlLCAkdGFyZ2V0
SW50ZXJmYWNlTmFtZSkgPSBAXzsKKworICAgIHJldHVybiAxIGlmICRzdXBwbGVtZW50YWxJbnRl
cmZhY2UtPmlzUGFydGlhbCAmJiAkc3VwcGxlbWVudGFsSW50ZXJmYWNlLT50eXBlLT5uYW1lIGVx
ICR0YXJnZXRJbnRlcmZhY2VOYW1lOworICAgIHJldHVybiAxIGlmICRzdXBwbGVtZW50YWxJbnRl
cmZhY2UtPmlzTWl4aW47CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBJc1ZhbGlkU3VwcGxlbWVu
dGFsRGljdGlvbmFyeQoreworICAgIG15ICgkb2JqZWN0LCAkdGFyZ2V0RG9jdW1lbnQsICRzdXBw
bGVtZW50YWxEaWN0aW9uYXJ5LCAkdGFyZ2V0SW50ZXJmYWNlTmFtZSkgPSBAXzsKKworICAgIHJl
dHVybiAxIGlmICRzdXBwbGVtZW50YWxEaWN0aW9uYXJ5LT5pc1BhcnRpYWwgJiYgJHN1cHBsZW1l
bnRhbERpY3Rpb25hcnktPnR5cGUtPm5hbWUgZXEgJHRhcmdldEludGVyZmFjZU5hbWU7CisgICAg
cmV0dXJuIDA7Cit9CisKIHN1YiBQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzCiB7CiAg
ICAgbXkgKCRvYmplY3QsICR0YXJnZXREb2N1bWVudCkgPSBAXzsKQEAgLTI5MSw2ICszMDgsOSBA
QCBzdWIgUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHByb2Nlc3NpbmcgcmVjdXJzaXZl
IHN1cHBsZW1lbnRhbCBkZXBlbmRlbmNpZXMKKyAgICAjIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3Ig
cGFydGlhbCBpbnRlcmZhY2UgbWl4aW5zLgorCiAgICAgZm9yZWFjaCBteSAkaWRsRmlsZSAoQHsk
c3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLT57JHRhcmdldEZpbGVOYW1lfX0pIHsKICAgICAgICAg
bmV4dCBpZiBmaWxlcGFyc2UoJGlkbEZpbGUpIGVxICR0YXJnZXRGaWxlTmFtZTsKIApAQCAtMjk5
LDcgKzMxOSw3IEBAIHN1YiBQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzCiAgICAgICAg
IG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRpZGxGaWxlLCAkZGVmaW5lcywgJHByZXBy
b2Nlc3NvciwgJGlkbEF0dHJpYnV0ZXMpOwogCiAgICAgICAgIGZvcmVhY2ggbXkgJGludGVyZmFj
ZSAoQHskZG9jdW1lbnQtPmludGVyZmFjZXN9KSB7Ci0gICAgICAgICAgICBuZXh0IHVubGVzcyAh
JGludGVyZmFjZS0+aXNQYXJ0aWFsIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgJHRhcmdl
dEludGVyZmFjZU5hbWU7CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkb2JqZWN0LT5Jc1ZhbGlk
U3VwcGxlbWVudGFsSW50ZXJmYWNlKCR0YXJnZXREb2N1bWVudCwgJGludGVyZmFjZSwgJHRhcmdl
dEludGVyZmFjZU5hbWUpOwogCiAgICAgICAgICAgICBteSAkdGFyZ2V0RGF0YU5vZGU7CiAgICAg
ICAgICAgICBteSBAdGFyZ2V0R2xvYmFsQ29udGV4dHM7CkBAIC0zNTQsNyArMzc0LDcgQEAgc3Vi
IFByb2Nlc3NTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMKICAgICAgICAgfQogCiAgICAgICAgIGZv
cmVhY2ggbXkgJGRpY3Rpb25hcnkgKEB7JGRvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7Ci0gICAg
ICAgICAgICBuZXh0IHVubGVzcyAkZGljdGlvbmFyeS0+aXNQYXJ0aWFsICYmICRkaWN0aW9uYXJ5
LT50eXBlLT5uYW1lIGVxICR0YXJnZXRJbnRlcmZhY2VOYW1lOworICAgICAgICAgICAgbmV4dCB1
bmxlc3MgJG9iamVjdC0+SXNWYWxpZFN1cHBsZW1lbnRhbERpY3Rpb25hcnkoJHRhcmdldERvY3Vt
ZW50LCAkZGljdGlvbmFyeSwgJHRhcmdldEludGVyZmFjZU5hbWUpOwogCiAgICAgICAgICAgICBt
eSAkdGFyZ2V0RGF0YU5vZGU7CiAgICAgICAgICAgICBteSBAdGFyZ2V0R2xvYmFsQ29udGV4dHM7
CkBAIC0xMTg0LDcgKzEyMDQsNyBAQCBzdWIgR2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVz
RnJvbU5hCiAKICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0ge307CiAKLSAgICBpZiAoJGZp
bGVDb250ZW50cyA9fiAvXFsoLiopXF1ccysoY2FsbGJhY2sgaW50ZXJmYWNlfGludGVyZmFjZXxl
eGNlcHRpb24pXHMrKFx3KykvZ3MpIHsKKyAgICBpZiAoJGZpbGVDb250ZW50cyA9fiAvXFsoLiop
XF1ccysoY2FsbGJhY2sgaW50ZXJmYWNlfGludGVyZmFjZSlccysoXHcrKS9ncykgewogICAgICAg
ICBteSBAcGFydHMgPSBzcGxpdCgnLCcsICQxKTsKICAgICAgICAgZm9yZWFjaCBteSAkcGFydCAo
QHBhcnRzKSB7CiAgICAgICAgICAgICBteSBAa2V5VmFsdWUgPSBzcGxpdCgnPScsICRwYXJ0KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCShy
ZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBh
cnNlci5wbQkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBzdHJ1Y3QoIElETEludGVy
ZmFjZSA9PiB7CiAgICAgYXR0cmlidXRlcyA9PiAnQCcsICAgICMgTGlzdCBvZiAnSURMQXR0cmli
dXRlJwogICAgIGNvbnN0cnVjdG9ycyA9PiAnQCcsICMgQ29uc3RydWN0b3JzLCBsaXN0IG9mICdJ
RExPcGVyYXRpb24nCiAgICAgaXNDYWxsYmFjayA9PiAnJCcsICMgVXNlZCBmb3IgY2FsbGJhY2sg
aW50ZXJmYWNlcworICAgIGlzTWl4aW4gPT4gJyQnLCAjIFVzZWQgZm9yIG1peGluIGludGVyZmFj
ZXMKICAgICBpc1BhcnRpYWwgPT4gJyQnLCAjIFVzZWQgZm9yIHBhcnRpYWwgaW50ZXJmYWNlcwog
ICAgIGl0ZXJhYmxlID0+ICckJywgIyBVc2VkIGZvciBpdGVyYWJsZSBpbnRlcmZhY2VzLCBvZiB0
eXBlICdJRExJdGVyYWJsZScKICAgICBhc3luY0l0ZXJhYmxlID0+ICckJywgIyBVc2VkIGZvciBh
c3ljbiBpdGVyYWJsZSBpbnRlcmZhY2VzLCBvZiB0eXBlICdJRExBc3luY0l0ZXJhYmxlJwpAQCAt
NjM1LDcgKzYzNiw3IEBAIHN1YiBhZGRCdWlsdGluVHlwZWRlZnMoKQogICAgICR0eXBlZGVmc3si
RE9NVGltZVN0YW1wIn0gPSBJRExUeXBlZGVmLT5uZXcodHlwZSA9PiAkRE9NVGltZVN0YW1wVHlw
ZSk7CiB9CiAKLW15ICRuZXh0QXR0cmlidXRlXzIgPSAnXihyZWFkb25seXxhdHRyaWJ1dGUpJCc7
CitteSAkbmV4dE9wdGlvbmFsbHlSZWFkb25seUF0dHJpYnV0ZV8xID0gJ14ocmVhZG9ubHl8YXR0
cmlidXRlKSQnOwogbXkgJG5leHRJbnRlZ2VyVHlwZV8xID0gJ14oaW50fGxvbmd8c2hvcnR8dW5z
aWduZWQpJCc7CiBteSAkbmV4dEZsb2F0VHlwZV8xID0gJ14oZG91YmxlfGZsb2F0fHVucmVzdHJp
Y3RlZCkkJzsKIG15ICRuZXh0QXJndW1lbnRMaXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0
cmluZ3xVU1ZTdHJpbmd8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58bG9uZ3xv
YmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJl
c3RyaWN0ZWR8dW5zaWduZWQpJCc7CkBAIC02NDksNyArNjUwLDkgQEAgbXkgJG5leHRUeXBlXzEg
PSAnXihCeXRlU3RyaW5nfERPTVN0cmluZwogbXkgJG5leHRTcGVjaWFsc18xID0gJ14oZGVsZXRl
cnxnZXR0ZXJ8c2V0dGVyKSQnOwogbXkgJG5leHREZWZpbml0aW9uc18xID0gJ14oY2FsbGJhY2t8
ZGljdGlvbmFyeXxlbnVtfGludGVyZmFjZXxuYW1lc3BhY2V8cGFydGlhbHx0eXBlZGVmKSQnOwog
bXkgJG5leHREaWN0aW9uYXJ5TWVtYmVyXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xV
U1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8
cmVxdWlyZWR8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dENhbGxiYWNrSW50ZXJmYWNlTWVtYmVyc18xID0gJ14oXCh8Y29u
c3R8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8ZG91Ymxl
fGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8
dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAn
XihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8YW55fGF0dHJpYnV0ZXxib29sZWFu
fGJ5dGV8Y29uc3R8Y29uc3RydWN0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVy
aXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8
c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVu
c2lnbmVkKSQnOworbXkgJG5leHRNaXhpbk1lbWJlcnNfMSA9ICdeKFwofGF0dHJpYnV0ZXxCeXRl
U3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxjb25zdHxkb3VibGV8
ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2hvcnR8c3RyaW5naWZp
ZXJ8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dE5h
bWVzcGFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xh
bnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxz
ZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsK
IG15ICRuZXh0UGFydGlhbEludGVyZmFjZU1lbWJlcl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01T
dHJpbmd8VVNWU3RyaW5nfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGRlbGV0ZXJ8
ZG91YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNl
cXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnxzeW1ib2x8
dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0U2luZ2xlVHlwZV8x
ID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGJvb2xlYW58Ynl0ZXxkb3VibGV8
ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1
bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CkBAIC02NTcsNyArNjYwLDYgQEAgbXkgJG5leHRBcmd1
bWVudE5hbWVfMSA9ICdeKGFzeW5jfGF0dHJpYgogbXkgJG5leHRDb25zdFZhbHVlXzEgPSAnXihm
YWxzZXx0cnVlKSQnOwogbXkgJG5leHRDb25zdFZhbHVlXzIgPSAnXigtfEluZmluaXR5fE5hTikk
JzsKIG15ICRuZXh0Q2FsbGJhY2tPckludGVyZmFjZSA9ICdeKGNhbGxiYWNrfGludGVyZmFjZSkk
JzsKLW15ICRuZXh0T3BlcmF0aW9uUmVzdF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8
VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0
fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OwogbXkgJG5leHRSZWd1bGFyT3BlcmF0aW9uXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmlu
Z3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0
ZXR8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQp
JCc7CiBteSAkbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMSA9ICdeKGxvbmd8c2hvcnQpJCc7CiBt
eSAkbmV4dERlZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0eXxOYU58ZmFsc2V8bnVsbHx0cnVl
KSQnOwpAQCAtODY5LDkgKzg3MSw3IEBAIHN1YiBwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNl
CiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpbnRlcmZhY2UiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIiwgX19MSU5FX18pOwotICAgICAgICBteSAkaW50
ZXJmYWNlID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwot
ICAgICAgICAkaW50ZXJmYWNlLT5pc0NhbGxiYWNrKDEpOwotICAgICAgICByZXR1cm4gJGludGVy
ZmFjZTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrSW50ZXJmYWNlKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdCgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKQEAgLTkyOSw2ICs5MjksMTU0IEBAIHN1YiBwYXJzZUlu
dGVyZmFjZQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKIH0KIAorc3ViIHBhcnNlQ2FsbGJhY2tJbnRlcmZhY2UKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkaW50ZXJmYWNlID0gSURMSW50ZXJm
YWNlLT5uZXcoKTsKKyAgICAgICAgJGludGVyZmFjZS0+aXNDYWxsYmFjaygxKTsKKworICAgICAg
ICBteSAkaW50ZXJmYWNlTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJGludGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgCisgICAgICAgIG15ICRuYW1lID0gaWRlbnRpZmllclJlbW92ZU51bGxhYmxl
UHJlZml4KCRpbnRlcmZhY2VOYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkaW50ZXJmYWNl
LT50eXBlKG1ha2VTaW1wbGVUeXBlKCRuYW1lKSk7CisKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICBteSAk
aW50ZXJmYWNlTWVtYmVycyA9ICRzZWxmLT5wYXJzZUNhbGxiYWNrSW50ZXJmYWNlTWVtYmVycygp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0i
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRpbnRlcmZh
Y2UsICRpbnRlcmZhY2VNZW1iZXJzKTsKKworICAgICAgICAkc2VsZi0+YXNzZXJ0RXh0ZW5kZWRB
dHRyaWJ1dGVzVmFsaWRGb3JDb250ZXh0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QsICJpbnRlcmZh
Y2UiKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGludGVyZmFjZSwgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgcmV0dXJuICRpbnRlcmZhY2U7CisgICAg
fQorCisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VDYWxsYmFja0ludGVyZmFjZU1lbWJlcnMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBjYWxsYmFja0ludGVyZmFjZU1lbWJlcnMgPSAoKTsK
KworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBteSAkY2FsbGJhY2tJbnRlcmZh
Y2VNZW1iZXI7CisKKyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
IHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENhbGxiYWNrSW50ZXJmYWNlTWVtYmVyc18xLykg
eworICAgICAgICAgICAgJGNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlQ2Fs
bGJhY2tJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVk
ICRjYWxsYmFja0ludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAY2FsbGJhY2tJ
bnRlcmZhY2VNZW1iZXJzLCAkY2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIpOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBcQGNhbGxiYWNrSW50ZXJmYWNlTWVtYmVyczsKK30KKworc3ViIHBh
cnNlQ2FsbGJhY2tJbnRlcmZhY2VNZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dFJlZ3VsYXJPcGVyYXRpb25fMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZVJlZ3VsYXJPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorCisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VNaXhpbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtaXhpbiIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJt
aXhpbiIsIF9fTElORV9fKTsKKworICAgICAgICBteSAkaW50ZXJmYWNlTWl4aW4gPSBJRExJbnRl
cmZhY2UtPm5ldygpOworICAgICAgICAkaW50ZXJmYWNlTWl4aW4tPmlzTWl4aW4oMSk7CisKKyAg
ICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRpbnRlcmZhY2VOYW1lVG9rZW4sIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgIAorICAgICAgICBteSAkbmFtZSA9IGlkZW50aWZpZXJSZW1vdmVOdWxs
YWJsZVByZWZpeCgkaW50ZXJmYWNlTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGludGVy
ZmFjZU1peGluLT50eXBlKG1ha2VTaW1wbGVUeXBlKCRuYW1lKSk7CisKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAg
ICAgICBteSAkaW50ZXJmYWNlTWl4aW5NZW1iZXJzID0gJHNlbGYtPnBhcnNlTWl4aW5NZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGludGVy
ZmFjZU1peGluLCAkaW50ZXJmYWNlTWl4aW5NZW1iZXJzKTsKKworICAgICAgICAkc2VsZi0+YXNz
ZXJ0RXh0ZW5kZWRBdHRyaWJ1dGVzVmFsaWRGb3JDb250ZXh0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QsICJpbnRlcmZhY2UiKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGlu
dGVyZmFjZU1peGluLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKworICAgICAgICByZXR1cm4g
JGludGVyZmFjZU1peGluOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU1peGluTWVtYmVycwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG1peGluTWVtYmVycyA9ICgpOworCisg
ICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxm
LT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIG15ICRtaXhpbk1lbWJlcjsKKworICAg
ICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0TWl4aW5NZW1iZXJzXzEvKSB7CisgICAgICAgICAgICAkbWl4aW5NZW1iZXIg
PSAkc2VsZi0+cGFyc2VNaXhpbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRl
ZmluZWQgJG1peGluTWVtYmVyKSB7CisgICAgICAgICAgICBwdXNoKEBtaXhpbk1lbWJlcnMsICRt
aXhpbk1lbWJlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAbWl4aW5NZW1iZXJz
OworfQorCitzdWIgcGFyc2VNaXhpbk1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU3RyaW5naWZpZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRPcHRpb25hbGx5UmVh
ZG9ubHlBdHRyaWJ1dGVfMS8pIHsKKyAgICAgICAgbXkgJGlzUmVhZE9ubHkgPSAkc2VsZi0+cGFy
c2VSZWFkT25seSgpOworICAgICAgICBteSAkYXR0cmlidXRlID0gJHNlbGYtPnBhcnNlQXR0cmli
dXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgJGF0dHJpYnV0ZS0+aXNS
ZWFkT25seSgkaXNSZWFkT25seSk7CisgICAgICAgIHJldHVybiAkYXR0cmlidXRlOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0UmVndWxhck9wZXJhdGlvbl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlUmVndWxhck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisK
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKIHN1YiBwYXJzZU5hbWVzcGFjZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkBA
IC05NzAsNyArMTExOCw2IEBAIHN1YiBwYXJzZU5hbWVzcGFjZQogICAgICAgICByZXR1cm4gJG5h
bWVzcGFjZTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOwotCiB9CiAKIHN1YiBwYXJzZU5hbWVzcGFjZU1lbWJlcnMKQEAg
LTEwMTQsNyArMTE2MSw2IEBAIHN1YiBwYXJzZU5hbWVzcGFjZU1lbWJlcgogICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotCiBz
dWIgcGFyc2VQYXJ0aWFsCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKQEAgLTExODYsNyArMTMz
Miw3IEBAIHN1YiBwYXJzZVBhcnRpYWxJbnRlcmZhY2VNZW1iZXIKIAogICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRPcGVy
YXRpb25fMS8pIHsKICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvbigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKLSAgICAgfQorICAgIH0KIAogICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KQEAgLTE4NDIsMjYgKzE5
ODgsMTUgQEAgc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Gb3JTdHJpbmdpZgogICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAogICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOwotICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVf
Mi8pIHsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0T3B0aW9uYWxseVJlYWRvbmx5
QXR0cmlidXRlXzEvKSB7CiAgICAgICAgIG15ICRpc1JlYWRPbmx5ID0gJHNlbGYtPnBhcnNlUmVh
ZE9ubHkoKTsKLQogICAgICAgICBteSAkYXR0cmlidXRlID0gJHNlbGYtPnBhcnNlQXR0cmlidXRl
UmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICAgICAgJGF0dHJpYnV0ZS0+aXNSZWFk
T25seSgkaXNSZWFkT25seSk7Ci0KICAgICAgICAgcmV0dXJuICRhdHRyaWJ1dGU7CiAgICAgfQog
Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dE9wZXJhdGlvblJlc3RfMS8pIHsKLSAgICAgICAgbXkgJHJldHVyblR5cGUg
PSAkc2VsZi0+cGFyc2VUeXBlKCk7Ci0KLSAgICAgICAgIyBOT1RFOiBUaGlzIGlzIGEgbm9uLXN0
YW5kYXJkIGFkZGl0aW9uLiBJbiBXZWJJREwsIHRoZXJlIGlzIG5vIHdheSB0byBhc3NvY2lhdGUK
LSAgICAgICAgIyBleHRlbmRlZCBhdHRyaWJ1dGVzIHdpdGggYSByZXR1cm4gdHlwZS4KLSAgICAg
ICAgJHNlbGYtPm1vdmVFeHRlbmRlZEF0dHJpYnV0ZXNBcHBsaWNhYmxlVG9UeXBlcygkcmV0dXJu
VHlwZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Ci0KLSAgICAgICAgbXkgJG9wZXJhdGlvbiA9
ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Ci0gICAg
ICAgICRvcGVyYXRpb24tPnR5cGUoJHJldHVyblR5cGUpOwotCi0gICAgICAgIHJldHVybiAkb3Bl
cmF0aW9uOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRSZWd1bGFyT3BlcmF0aW9uXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VSZWd1bGFyT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwog
ICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXBy
b2Nlc3MtaWRscy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHdvcmtpbmcgY29weSkKQEAg
LTEzOCw5ICsxMzgsOSBAQCBmb3JlYWNoIG15ICRpZGxGaWxlIChzb3J0IGtleXMgJWlkbEZpbGVI
CiAKICAgICB1cGRhdGVEaWN0aW9uYXJ5RGVwZW5kZW5jaWVzKCRpZGxGaWxlQ29udGVudHMsICRp
ZGxGaWxlKTsKIAotICAgICMgU2tpcCBpZiB0aGUgSURMIGZpbGUgZG9lcyBub3QgY29udGFpbiBh
biBpbnRlcmZhY2UsIGEgY2FsbGJhY2sgaW50ZXJmYWNlIG9yIGFuIGV4Y2VwdGlvbi4KKyAgICAj
IFNraXAgaWYgdGhlIElETCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW4gaW50ZXJmYWNlIG9yIGEg
Y2FsbGJhY2sgaW50ZXJmYWNlLgogICAgICMgVGhlIElETCBtYXkgY29udGFpbiBhIGRpY3Rpb25h
cnkuCi0gICAgbmV4dCB1bmxlc3MgY29udGFpbnNJbnRlcmZhY2VPckV4Y2VwdGlvbkZyb21JREwo
JGlkbEZpbGVDb250ZW50cyk7CisgICAgbmV4dCB1bmxlc3MgY29udGFpbnNJbnRlcmZhY2VGcm9t
SURMKCRpZGxGaWxlQ29udGVudHMpOwogCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBmaWxlcGFy
c2UoYmFzZW5hbWUoJGlkbEZpbGUpLCAiLmlkbCIpOwogICAgICMgSGFuZGxlIGluY2x1ZGUgc3Rh
dGVtZW50cy4KQEAgLTE1NSw3ICsxNTUsMTAgQEAgZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBr
ZXlzICVpZGxGaWxlSAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFpc0NhbGxiYWNrSW50
ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKSkgeworICAgIG5leHQgaWYgaXNNaXhpbklu
dGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250ZW50cyk7CisKKyAgICBteSAkaXNDYWxsYmFja0lu
dGVyZmFjZSA9IGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlQ29udGVudHMpOwor
ICAgIGlmICghJGlzQ2FsbGJhY2tJbnRlcmZhY2UpIHsKICAgICAgICAgJGlzb1N1YnNwYWNlc0hl
YWRlckNvZGUgLj0gIiAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpJc29TdWJzcGFjZT4gbV9zdWJz
cGFjZUZvciR7aW50ZXJmYWNlTmFtZX07XG4iOwogICAgICAgICBpZiAoaW50ZXJmYWNlSXNJdGVy
YWJsZSgkaWRsRmlsZUNvbnRlbnRzKSkgewogICAgICAgICAgICAgJGlzb1N1YnNwYWNlc0hlYWRl
ckNvZGUgLj0gIiAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpJc29TdWJzcGFjZT4gbV9zdWJzcGFj
ZUZvciR7aW50ZXJmYWNlTmFtZX1JdGVyYXRvcjtcbiI7CkBAIC0xNjksNyArMTcyLDcgQEAgZm9y
ZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSAogICAgICMgU2VlIGh0dHBzOi8v
aGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLWludGVyZmFjZXMKICAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVzID0gZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbUlETCgkaWRsRmls
ZUNvbnRlbnRzKTsKICAgICBpZiAoc2hvdWxkRXhwb3NlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJp
YnV0ZXMpKSB7Ci0gICAgICAgIGlmICghaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwoJGlkbEZp
bGVDb250ZW50cykgfHwgaW50ZXJmYWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUoJGlkbEZpbGVDb250
ZW50cykpIHsKKyAgICAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSB8fCBpbnRlcmZhY2VI
YXNDb25zdGFudEF0dHJpYnV0ZSgkaWRsRmlsZUNvbnRlbnRzKSkgewogICAgICAgICAgICAgbXkg
JGV4cG9zZWRBdHRyaWJ1dGUgPSAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4cG9zZWQifSB8fCAk
dGVzdEdsb2JhbENvbnRleHROYW1lIHx8ICJXaW5kb3ciOwogICAgICAgICAgICAgJGV4cG9zZWRB
dHRyaWJ1dGUgPSBzdWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDEsIC0xKSBpZiBzdWJzdHIoJGV4
cG9zZWRBdHRyaWJ1dGUsIDAsIDEpIGVxICIoIjsKICAgICAgICAgICAgIG15IEBnbG9iYWxDb250
ZXh0cyA9IHNwbGl0KCIsIiwgJGV4cG9zZWRBdHRyaWJ1dGUpOwpAQCAtMzkzLDE5ICszOTYsMjQg
QEAgc3ViIGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMCiAgICAgcmV0dXJuICgkZmlsZUNvbnRl
bnRzID1+IC9jYWxsYmFja1xzK2ludGVyZmFjZVxzK1x3Ky9ncyk7CiB9CiAKK3N1YiBpc01peGlu
SW50ZXJmYWNlRnJvbUlETAoreworICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKKyAgICBy
ZXR1cm4gKCRmaWxlQ29udGVudHMgPX4gL2ludGVyZmFjZVxzK21peGluXHMrXHcrL2dzKTsKK30K
Kwogc3ViIGludGVyZmFjZUlzSXRlcmFibGUKIHsKICAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hp
ZnQ7CiAgICAgcmV0dXJuICgkZmlsZUNvbnRlbnRzID1+IC9pdGVyYWJsZVxzKjxccypcdytccyov
Z3MpOwogfQogCi1zdWIgY29udGFpbnNJbnRlcmZhY2VPckV4Y2VwdGlvbkZyb21JREwKK3N1YiBj
b250YWluc0ludGVyZmFjZUZyb21JREwKIHsKICAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7
CiAKICAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9cYmNhbGxiYWNrXHMraW50ZXJm
YWNlXHMrXHcrL2dzOwogICAgIHJldHVybiAxIGlmICRmaWxlQ29udGVudHMgPX4gL1xiaW50ZXJm
YWNlXHMrXHcrL2dzOwotICAgIHJldHVybiAxIGlmICRmaWxlQ29udGVudHMgPX4gL1xiZXhjZXB0
aW9uXHMrXHcrL2dzOwogICAgIHJldHVybiAwOwogfQogCkBAIC00MjcsNyArNDM1LDcgQEAgc3Vi
IGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JRAogICAgICMgYWxsIGJ1aWxkIHN5
c3RlbXMuCiAgICAgJGZpbGVDb250ZW50cyA9fiBzLyg/Oig/Oig/OlwvXC8pKD86W15cbl0qKSg/
OlxuKSl8KD86KD86XC9cKikoPzooPzpbXlwqXSt8XCooPyFcLykpKikoPzpcKlwvKSkpLy9nOwog
Ci0gICAgaWYgKCRmaWxlQ29udGVudHMgPX4gL1xbKC4qKVxdXHMrKGNhbGxiYWNrIGludGVyZmFj
ZXxpbnRlcmZhY2V8ZXhjZXB0aW9uKVxzKyhcdyspL2dzKSB7CisgICAgaWYgKCRmaWxlQ29udGVu
dHMgPX4gL1xbKC4qKVxdXHMrKGNhbGxiYWNrIGludGVyZmFjZXxpbnRlcmZhY2UpXHMrKFx3Kykv
Z3MpIHsKICAgICAgICAgbXkgJHBhcmFtZXRlcnMgPSAkMTsKICAgICAgICAgaWYgKGluZGV4KCRw
YXJhbWV0ZXJzLCAnfScpICE9IC0xKSB7CiAgICAgICAgICAgICAjIEluIGNhc2Ugd2UgaGF2ZSBh
IGRlY2xhcmF0aW9uIGxpa2UgYSBkaWN0aW9uYXJ5IHdpdGggZXh0ZW5kZWQgYXR0cmlidXRlcyBk
ZWZpbmVkIGJlZm9yZSB0aGUgaW50ZXJmYWNlLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVu
ZGVuY2llcy5kZXAJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTMsNiArMTEzLDkgQEAgV2ViRE9NVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmg6IAog
SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmg6IAogRE9NVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbi5oOiAKIFdlYkRPTVRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uaDogCitKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdC5oOiAKK0RPTVRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5o
OiAKK1dlYkRPTVRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5oOiAKIEpTVGVzdExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMuaDogCiBET01UZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oOiAKIFdl
YkRPTVRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmg6IApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RJbmNsdWRlcy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RJbmNsdWRlcy5pZGwJKHJldmlz
aW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
SW5jbHVkZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsOCBAQAogLy8gVGhpcyBJ
REwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZv
ciB0cmFja2luZwogLy8gY2hhbmdlcyBpbiBpdHMgb3V0cHV0LgogWwotICAgIENvbmRpdGlvbmFs
PUNvbmRpdGlvbjIyfENvbmRpdGlvbjIzLAotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1d
IGludGVyZmFjZSBUZXN0SW5jbHVkZXMgewotICAgIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyBpbmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0cjsKLSAgICBzdGF0aWMgYXR0cmlidXRlIERP
TVN0cmluZyBpbmNsdWRlc1N0YXRpY0F0dHI7CisgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMjJ8
Q29uZGl0aW9uMjMKK10gaW50ZXJmYWNlIG1peGluIFRlc3RJbmNsdWRlcyB7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBpbmNsdWRlc1N0cjE7CiAgICAgYXR0cmlidXRlIERPTVN0
cmluZyBpbmNsdWRlc1N0cjI7CiAgICAgW0N1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGluY2x1ZGVzU3RyMzsKQEAgLTQzLDcgKzQwLDYgQEAKICAgICB1bmRl
ZmluZWQgaW5jbHVkZXNNZXRob2QxKCk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBUZXN0T2JqIGluY2x1ZGVzTWV0aG9kMihET01TdHJp
bmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAgICAgW0N1c3RvbV0gdW5kZWZpbmVkIGluY2x1
ZGVzTWV0aG9kMygpOwotICAgIHN0YXRpYyB1bmRlZmluZWQgaW5jbHVkZXNNZXRob2Q0KCk7CiAK
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBJTkNMVURFU19DT05TVEFOVDEgPSAxOwogICAgIFtS
ZWZsZWN0PUNPTlNUX0lNUExdIGNvbnN0IHVuc2lnbmVkIHNob3J0IElOQ0xVREVTX0NPTlNUQU5U
MiA9IDI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmlkbAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGlu
Z3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdlcyBpbiBpdHMgb3V0
cHV0LgorWworICAgIENvbmRpdGlvbmFsPUNvbmRpdGlvbjIyfENvbmRpdGlvbjIzLAorICAgIExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVhZG9ubHlTdHJpbmdB
dHRyaWJ1dGU7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyByZWFkV3JpdGVTdHJpbmdBdHRyaWJ1
dGU7CisgICAgW0N1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZTsKKyAgICBhdHRyaWJ1dGUgTm9kZSBu
b2RlQXR0cmlidXRlOworICAgIHN0YXRpYyBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0YXRpY1N0cmlu
Z0F0dHJpYnV0ZTsKKworICAgIHVuZGVmaW5lZCB2b2lkT3BlcmF0aW9uKCk7CisgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBUZXN0T2JqIHRo
cm93aW5nT3BlcmF0aW9uKERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJnKTsKKyAgICBb
Q3VzdG9tXSB1bmRlZmluZWQgY3VzdG9tT3BlcmF0aW9uKCk7CisgICAgc3RhdGljIHVuZGVmaW5l
ZCBzdGF0aWNPcGVyYXRpb24oKTsKKworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUQU5U
MSA9IDE7CisgICAgW1JlZmxlY3Q9Q09OU1RfSU1QTF0gY29uc3QgdW5zaWduZWQgc2hvcnQgQ09O
U1RBTlQyID0gMjsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9wZXJhdGlvbkJhc2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T3BlcmF0aW9uQmFzZS5pZGwJKHJldmlzaW9uIDI2NjY3
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T3BlcmF0aW9u
QmFzZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDggQEAKIC8vIGNoYW5nZXMgaW4g
aXRzIG91dHB1dC4KIAogWwotICAgIENvbmRpdGlvbmFsPUNvbmRpdGlvbkJhc2UsCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBUZXN0T3BlcmF0aW9uQmFzZSB7Cisg
ICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uQmFzZQorXSBpbnRlcmZhY2UgbWl4aW4gVGVzdE9wZXJh
dGlvbkJhc2UgewogICAgIHVuZGVmaW5lZCBub25Db25kaXRpb25hbE9wZXJhdGlvbigpOwogICAg
IFtDb25kaXRpb25hbD1Db25kaXRpb25PcGVyYXRpb25dIHVuZGVmaW5lZCBjb25kaXRpb25hbE9w
ZXJhdGlvbigpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyNjY2
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTEgKzUyLDExIEBACiAjaW5jbHVkZSA8
d3RmL1VSTC5oPgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIlRlc3RTdXBw
bGVtZW50YWxCdWlsdGlucy5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikgfHwgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpT
RE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjZW5kaWYKQEAgLTgyLDkg
KzgyLDYgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uSW5jbHVkZXNNZXRob2QzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JGdW5jdGlvbkluY2x1ZGVzTWV0aG9kNChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLSNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uVGFrZU5vZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCkBAIC0xMTAsMTMgKzEwNyw2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3QKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljUmVh
ZE9ubHlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JJbmNsdWRlc1N0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENv
bmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZUluY2x1ZGVzU3RyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCkBAIC0yMTYsMTYgKzIwNiw2IEBAIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmYKICNlbHNlCiAgICAgeyAwLCAwLCBO
b0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgImluY2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckluY2x1ZGVzU3RhdGljUmVhZE9u
bHlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAotI2Vsc2UKLSAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9
LAotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci0gICAgeyAiaW5jbHVkZXNTdGF0aWNBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0aWNBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHIpIH0gfSwKLSNlbHNlCi0g
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKLSNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAgIHsgInN1cHBsZW1lbnRhbFN0
YXRpY1JlYWRPbmx5QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBw
bGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjZWxzZQpAQCAtMjM2LDExICsyMTYs
NiBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmCiAjZWxzZQogICAg
IHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSNpZiBFTkFCTEUoQ29u
ZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJpbmNsdWRlc01ldGhvZDQi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDQpLCAoaW50
cHRyX3QpICgwKSB9IH0sCi0jZWxzZQotICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9
IH0sCi0jZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKICAgICB7ICJzdXBwbGVtZW50YWxNZXRob2Q0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
ckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNCksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNl
CkBAIC01MDYsNTYgKzQ4MSw2IEBAIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNHbG8KIH0KIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVk
ZXNTdGF0aWNSZWFkT25seUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdEludGVyZmFjZTo6aW5jbHVkZXNTdGF0aWNSZWFkT25s
eUF0dHIoKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JJbmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY1JlYWRPbmx5QXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImluY2x1ZGVzU3RhdGljUmVhZE9ubHlBdHRyIik7
Ci19Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJ
bmNsdWRlc1N0YXRpY0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
LSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0SW50ZXJmYWNlOjppbmNsdWRlc1N0YXRpY0F0dHIo
KSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNs
dWRlc1N0YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0U3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9ySW5jbHVkZXNTdGF0aWNBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiaW5jbHVkZXNTdGF0aWNBdHRyIik7Ci19Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENv
bmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvIG5hdGl2ZVZhbHVlID0g
Y29udmVydDxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKLSAgICBBdHRyaWJ1dGVTZXR0
ZXI6OmNhbGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsKLSAgICAgICAg
cmV0dXJuIFRlc3RJbnRlcmZhY2U6OnNldEluY2x1ZGVzU3RhdGljQXR0cihXVEZNb3ZlKG5hdGl2
ZVZhbHVlKSk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgc2V0SlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JJbmNsdWRlc1N0YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQotewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJm
YWNlPjo6c2V0U3RhdGljPHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW5jbHVkZXNTdGF0
aWNBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJpbmNsdWRlc1N0YXRpY0F0dHIiKTsKLX0KLQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ29u
ZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VJbmNsdWRlc1N0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwpAQCAtOTQ3LDI1ICs4NzIsNiBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25J
bmNsdWRlc01ldGhvZDRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVT
RURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKLSAgICBUZXN0
SW50ZXJmYWNlOjppbmNsdWRlc01ldGhvZDQoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25JbmNsdWRlc01ldGhvZDQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbFN0YXRpYzxqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uSW5jbHVkZXNNZXRob2Q0Qm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJpbmNsdWRlc01ldGhvZDQiKTsKLX0KLQotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
blRha2VOb2Rlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdElu
dGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NjIgQEAKKy8qCisgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMg
ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBN
T0RJRlkhCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisKKyNpbmNsdWRlICJKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdC5oIgorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
RE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKKyNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb25I
YW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNE
T01PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUg
IkpTTm9kZS5oIgorI2luY2x1ZGUgIkpTVGVzdE9iai5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vic3BhY2VJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Qb2ludGVy
UHJlcGFyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKKy8vIEZ1bmN0aW9ucworCitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90
b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rp
b25DdXN0b21PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworCisvLyBBdHRyaWJ1dGVzCisKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBzZXRKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0
dGVyU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgc2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CisKK2NsYXNzIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFz
ZSA9IEpTQzo6SlNOb25GaW5hbE9iamVjdDsKKyAgICBzdGF0aWMgSlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RQcm90b3R5cGUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAg
ICAgIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKiBwdHIgPSBuZXcgKE5v
dE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlPih2bS5oZWFwKSkgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlv
bih2bSk7CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAg
IHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7
CisgICAgICAgIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlLCBCYXNlKTsKKyAgICAgICAgcmV0dXJuICZ2bS5w
bGFpbk9iamVjdFNwYWNlOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgICAgIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAg
IH0KKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOworfTsKK1NUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlLCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6QmFzZSk7CisK
Ky8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KK3sKKyAgICB7ICJyZWFkb25seVN0cmluZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5n
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSkgfSB9LAorICAgIHsg
ImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSkgfSB9LAorICAg
IHsgIm5vZGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZSkgfSB9LAorICAg
IHsgInZvaWRPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBl
RnVuY3Rpb25Wb2lkT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInRocm93
aW5nT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0
aW9uVGhyb3dpbmdPcGVyYXRpb24pLCAoaW50cHRyX3QpICgyKSB9IH0sCisgICAgeyAiY3VzdG9t
T3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
Q3VzdG9tT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIkNPTlNUQU5UMSIs
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwg
Tm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAorICAgIHsgIkNPTlNUQU5UMiIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9J
bnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMikgfSB9LAorfTsKKworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBl
KSB9OworCit2b2lkIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6
OmluZm8oKSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVUYWJsZVZhbHVl
cywgKnRoaXMpOworICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwor
fQorCitjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6OnNfaW5m
byA9IHsgIlRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QpIH07CisKK0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0OjpKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD4mJiBpbXBsKQor
ICAgIDogSlNET01XcmFwcGVyPFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD4oc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpCit7Cit9CisKK3ZvaWQgSlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKwor
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFRlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBtYXJrZWQg
YXMgW0FjdGl2ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xhc3Mgc3Vi
Y2xhc3NlcyBBY3RpdmVET01PYmplY3QuIik7CisKK30KKworSlNPYmplY3QqIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZTo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCAmZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpKTsKK30KKworSlNPYmplY3QqIEpT
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ojpwcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+KHZtLCBnbG9iYWxPYmplY3QpOworfQorCit2b2lk
IEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0OjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxs
KQoreworICAgIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqPihjZWxsKTsKKyAgICB0aGlz
T2JqZWN0LT5KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6fkpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0KCk7Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0KiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+
OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUpCit7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdCogSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lJiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2Fs
bEZyYW1lLnRoaXNWYWx1ZSgpKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0JiB0aGlzT2JqZWN0KQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOworICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKK30K
KworRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0
cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVh
ZG9ubHlTdHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCYgdGhpc09iamVjdCkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSgpKSkp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRX
cml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSIpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNPYmpl
Y3Qud3JhcHBlZCgpOworICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZmFsc2UpOworICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geworICAgICAgICByZXR1cm4gaW1wbC5zZXRSZWFk
V3JpdGVTdHJpbmdBdHRyaWJ1dGUoV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgIH0pOworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5n
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3Ry
aW5nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVjdCkKK3sKKyAgICBVTlVTRURf
UEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QuY3VzdG9t
R2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QpOworfQorCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNl
dHRlclN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIpOworfQorCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0JiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CisgICAgdGhpc09iamVjdC5zZXRDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRy
aWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVy
U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5n
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCit7CisgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7
CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxO
b2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwubm9kZUF0dHJpYnV0ZSgpKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KTsKKyAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExJbnRlcmZhY2U8Tm9kZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXR0cmlidXRlVHlw
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0IiwgIm5vZGVBdHRyaWJ1dGUiLCAiTm9kZSIpOyB9KTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKKyAgICBBdHRyaWJ1dGVTZXR0ZXI6OmNhbGwobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGltcGwu
c2V0Tm9kZUF0dHJpYnV0ZSgqbmF0aXZlVmFsdWUpOworICAgIH0pOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldDxzZXRKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKK30KKworc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0
b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6
OnN0YXRpY1N0cmluZ0F0dHJpYnV0ZSgpKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0U3RhdGljPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyaWJ1dGUiKTsKK30KKworc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JT
dGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKyAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIGZhbHNlKTsKKyAgICBBdHRyaWJ1dGVTZXR0ZXI6OmNhbGwobGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIFRlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdDo6c2V0U3RhdGljU3RyaW5nQXR0cmlidXRlKFdURk1vdmUobmF0aXZlVmFsdWUp
KTsKKyAgICB9KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBzZXRKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0U3RhdGljPHNldEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmlu
Z0F0dHJpYnV0ZSIpOworfQorCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb25C
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCit7CisgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsK
KyAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOworICAgIHRocm93U2NvcGUucmVsZWFzZSgpOworICAgIGltcGwudm9pZE9w
ZXJhdGlvbigpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9
CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpjYWxsPGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2b2lkT3BlcmF0aW9uIik7Cit9CisKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0o
Y2FsbEZyYW1lKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAg
IGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDIpKQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKKyAgICBhdXRv
KiBjb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVj
dCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNvbnRleHQp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIEVu
c3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApOworICAgIGF1dG8gc3RyQXJnID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBFbnN1cmVTdGlsbEFsaXZlU2Nv
cGUgYXJndW1lbnQxID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKyAgICBhdXRv
IG9iakFyZyA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgYXJndW1lbnQxLnZhbHVlKCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudFR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMSwgIm9iakFyZyIsICJUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QiLCAidGhyb3dpbmdPcGVyYXRpb24iLCAiVGVzdE9iaiIpOyB9KTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGhyb3dpbmdPcGVyYXRpb24oKmNvbnRl
eHQsIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlv
blRocm93aW5nT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInRocm93aW5nT3BlcmF0aW9uIik7Cit9CisKK3N0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7
CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2Fz
dGVkVGhpcy0+Y3VzdG9tT3BlcmF0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
KSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0
aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjdXN0b21PcGVyYXRp
b24iKTsKK30KKworc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbkJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUp
OworICAgIHRocm93U2NvcGUucmVsZWFzZSgpOworICAgIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdDo6c3RhdGljT3BlcmF0aW9uKCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
eworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+
OjpjYWxsU3RhdGljPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY09wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAic3RhdGljT3BlcmF0aW9uIik7Cit9CisKK0pTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCit7CisgICAg
YXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpOworICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERhdGEuc3Vic3BhY2VzKCk7CisgICAg
aWYgKGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QuZ2V0KCkpCisgICAgICAgIHJldHVybiBzcGFjZTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0PiB8fCAhSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6Om5l
ZWRzRGVzdHJ1Y3Rpb24pOworICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlND
OjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+KQor
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCA9
IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QpOworICAgIGVsc2UKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCk7CisgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5nZXQoKTsKK0lHTk9SRV9XQVJOSU5HU19CRUdJ
TigidW5yZWFjaGFibGUtY29kZSIpCitJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNh
bC1jb21wYXJlIikKKyAgICBpZiAoJkpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ojp2aXNp
dE91dHB1dENvbnN0cmFpbnRzICE9ICZKU0M6OkpTQ2VsbDo6dmlzaXRPdXRwdXRDb25zdHJhaW50
cykKKyAgICAgICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3BhY2VzKCkuYXBwZW5kKHNw
YWNlKTsKK0lHTk9SRV9XQVJOSU5HU19FTkQKK0lHTk9SRV9XQVJOSU5HU19FTkQKKyAgICByZXR1
cm4gc3BhY2U7Cit9CisKK3ZvaWQgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6OmFuYWx5
emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Kj4oY2Vs
bCk7CisgICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOworICAg
IEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKK30KKworYm9vbCBKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOworICAg
IFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RPd25l
cjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRl
eHQpCit7CisgICAgYXV0byoganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCo+KGhhbmRsZS5zbG90KCktPmFzQ2Vs
bCgpKTsKKyAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihj
b250ZXh0KTsKKyAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0LT53cmFwcGVkKCksIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KTsKK30K
KworI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKKyNpZiBQTEFURk9STShXSU4pCisjcHJh
Z21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKK2V4dGVybiAiQyIgeyBleHRlcm4gdm9pZCAoKmNv
bnN0IF9faWRlbnRpZmllcigiPz9fN1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEBXZWJDb3Jl
QEA2QkAiKVtdKSgpOyB9CisjZWxzZQorZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRWTjdX
ZWJDb3JlMjdUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RFW107IH0KKyNlbmRpZgorI2VuZGlm
CisKK0pTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0PiYmIGltcGwpCit7CisKKyNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCisgICAg
Y29uc3Qgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IGdldFZUYWJsZVBvaW50ZXIoaW1wbC5w
dHIoKSk7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRl
ciA9IF9faWRlbnRpZmllcigiPz9fN1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEBXZWJDb3Jl
QEA2QkAiKTsKKyNlbHNlCisgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZO
N1dlYkNvcmUyN1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEVbMl07CisjZW5kaWYKKworICAg
IC8vIElmIHRoaXMgZmFpbHMgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IGRvZXMgbm90IGhh
dmUgYSB2dGFibGUsIHNvIHlvdSBuZWVkIHRvIGFkZCB0aGUKKyAgICAvLyBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIGRlZmluaXRpb24KKyAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9seW1vcnBoaWM8VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Pjo6dmFsdWUsICJUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgaXMgbm90IHBvbHltb3Jw
aGljIik7CisKKyAgICAvLyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2
ZSBhIHVzZSBhZnRlciBmcmVlIGJ1Zywgb3IKKyAgICAvLyBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QgaGFzIHN1YmNsYXNzZXMuIElmIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCBoYXMg
c3ViY2xhc3NlcyB0aGF0IGdldCBwYXNzZWQKKyAgICAvLyB0byB0b0pTKCkgd2UgY3VycmVudGx5
IHJlcXVpcmUgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IHlvdSB0byBvcHQgb3V0IG9mIGJp
bmRpbmcgaGFyZGVuaW5nCisgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlv
biBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgorICAgIFJFTEVBU0Vf
QVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKKyNl
bmRpZgorICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKK30KKworSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0JiBpbXBsKQorewor
ICAgIHJldHVybiB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgaW1wbCk7
Cit9CisKK1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCogSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorewor
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCo+KHZtLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiAmd3JhcHBlci0+d3JhcHBl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ29u
ZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAgICBUaGlzIGZpbGUg
aGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZ
IQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCisKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCA6IHB1YmxpYyBKU0RPTVdyYXBwZXI8VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
PiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3Q+OworICAgIHN0YXRpYyBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFJlZjxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+JiYgaW1wbCkKKyAg
ICB7CisgICAgICAgIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KiBwdHIgPSBuZXcgKE5v
dE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pihn
bG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KHN0
cnVjdHVyZSwgKmdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7CisgICAgICAgIHB0ci0+Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICAgICAgcmV0dXJuIHB0cjsKKyAg
ICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCYpOworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90b3R5
cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CisgICAgc3RhdGljIFRlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCogdG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOworICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsK
KworICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSwgSlNDOjpOb25BcnJheSk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6SXNvU3Vi
c3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQorICAgIHsKKyAgICAgICAgaWYgY29uc3Rl
eHByIChtb2RlID09IEpTQzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsK
KyAgICB9CisgICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChKU0M6
OlZNJiB2bSk7CisgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFw
QW5hbHl6ZXImKTsKKworICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCisgICAgSlNDOjpKU1ZhbHVl
IGN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Jikg
Y29uc3Q7CisgICAgdm9pZCBzZXRDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CisKKyAgICAvLyBDdXN0b20gZnVuY3Rp
b25zCisgICAgSlNDOjpKU1ZhbHVlIGN1c3RvbU9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
JiwgSlNDOjpDYWxsRnJhbWUmKTsKK3Byb3RlY3RlZDoKKyAgICBKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdD4mJik7CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKK307CisKK2NsYXNzIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0T3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCk7Cit9OworCitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01X
cmFwcGVyV29ybGQmLCBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE93bmVyPiBvd25l
cjsKKyAgICByZXR1cm4gJm93bmVyLmdldCgpOworfQorCitpbmxpbmUgdm9pZCogd3JhcHBlcktl
eShUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QqIHdyYXBwYWJsZU9iamVjdCkKK3sKKyAgICBy
ZXR1cm4gd3JhcHBhYmxlT2JqZWN0OworfQorCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QqIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTKGxleGljYWxH
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKmltcGwpIDogSlNDOjpqc051bGwoKTsgfQorSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgUmVmPFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD4mJik7CitpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmUHRyPFRl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD4mJiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KU05l
d2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGltcGwucmVsZWFz
ZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgpOyB9CisKK3RlbXBsYXRlPD4gc3RydWN0IEpTRE9N
V3JhcHBlckNvbnZlcnRlclRyYWl0czxUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+IHsKKyAg
ICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDsKKyAg
ICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
KjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0VsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9FbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw5ICsyNSw3IEBACiAKIC8vIENTU09NIGV4dGVuc2lvbnMgdG8gSFRNTEVsZW1lbnQgLyBT
VkdFbGVtZW50OgogLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyN0aGUtZWxlbWVu
dGNzc2lubGluZXN0eWxlLWludGVyZmFjZQotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
LAotXSBpbnRlcmZhY2UgRWxlbWVudENTU0lubGluZVN0eWxlIHsKK2ludGVyZmFjZSBtaXhpbiBF
bGVtZW50Q1NTSW5saW5lU3R5bGUgewogICAgIFtJbXBsZW1lbnRlZEFzPWNzc29tU3R5bGUsIFB1
dEZvcndhcmRzPWNzc1RleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHN0eWxlOyAvLyBGSVhNRTogU2hvdWxkIGJlIFtTYW1lT2JqZWN0XS4KICAgICBbSW1wbGVtZW50
ZWRBcz1lbnN1cmVBdHRyaWJ1dGVTdHlsZU1hcCwgQ2FjaGVkQXR0cmlidXRlLCBFbmFibGVkQXRS
dW50aW1lPUNTU1R5cGVkT00sIENvbmRpdGlvbmFsPUNTU19UWVBFRF9PTV0gcmVhZG9ubHkgYXR0
cmlidXRlIFN0eWxlUHJvcGVydHlNYXAgYXR0cmlidXRlU3R5bGVNYXA7IC8vIEZJWE1FOiBTaG91
bGQgYmUgW1NhbWVPYmplY3RdLgogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZU1l
ZGlhLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwJ
KHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAor
Ly8gRklYTUU6IFRoaXMgd2FzIHJlbW92ZWQgZnJvbSB0aGUgQ1NTT00gVmlldyBzcGVjaWZpY2F0
aW9uLgogWwogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEdlbmVyYXRlSXNSZWFj
aGFibGU9UmVhY2hhYmxlRnJvbURPTVdpbmRvdywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZE5vZGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5vZGUu
aWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGROb2RlLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTksOSArMTksNyBAQAogICovCiAKIC8vIGh0dHBzOi8vZG9t
LnNwZWMud2hhdHdnLm9yZy8jY2hpbGRub2RlCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QsCi1dIGludGVyZmFjZSBDaGlsZE5vZGUgeworaW50ZXJmYWNlIG1peGluIENoaWxkTm9kZSB7
CiAgICAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZp
bmVkIGJlZm9yZSgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKICAgICBbQ0VSZWFjdGlv
bnMsIFVuc2NvcGFibGUsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgYWZ0ZXIoKE5vZGUg
b3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CiAgICAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlLCBN
YXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHJlcGxhY2VXaXRoKChOb2RlIG9yIERPTVN0cmlu
ZykuLi4gbm9kZXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9u
RXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJvdGF0aW9uUmF0ZT8gcm90YXRpb25SYXRlOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBpbnRlcnZhbDsKIAorICAgIFtDYWxsV2l0aD1Eb2N1
bWVudCwgRW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0
YXRpYyBQcm9taXNlPERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJl
cXVlc3RQZXJtaXNzaW9uKCk7CisKICAgICB1bmRlZmluZWQgaW5pdERldmljZU1vdGlvbkV2ZW50
KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxhYmxlID0gZmFsc2UsCkBAIC01
Nyw1ICs1OSwzIEBACiAgICAgZG91YmxlPyBiZXRhOwogICAgIGRvdWJsZT8gZ2FtbWE7CiB9Owot
Ci1EZXZpY2VNb3Rpb25FdmVudCBpbmNsdWRlcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
aWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYmV0YTsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gZ2FtbWE7CiAKKyAgICBbQ2FsbFdpdGg9RG9j
dW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBz
dGF0aWMgUHJvbWlzZTxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlPiBy
ZXF1ZXN0UGVybWlzc2lvbigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFu
IEVOQUJMRSBtYWNybyBmb3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2Rp
ZnlpbmcKICAgICAvLyB0aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcg
bW9yZSBjb21wbGljYXRlZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRG
T1JNX0lPU19GQU1JTFkpICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NCw1ICs1Niwz
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFu
PyBhYnNvbHV0ZSA9IG51bGwpOwogI2VuZGlmCiB9OwotCi1EZXZpY2VPcmllbnRhdGlvbkV2ZW50
IGluY2x1ZGVzIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRs
CShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50LmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDMxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP
V05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLVsKLSAgICBDb25kaXRpb25hbD1ERVZJQ0VfT1JJRU5UQVRJT04sCi0gICAgTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVu
dGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8RGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKLX07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksNyBAQCB0eXBlZGVm
IChIVE1MU2NyaXB0RWxlbWVudCBvciBTVkdTY3JpcHRFCiAgICAgLy8gRklYTUU6IFNob3VsZCBs
aWtlbHkgYmUgbW92ZWQgdG8gRG9jdW1lbnRPclNoYWRvd1Jvb3QuCiAgICAgRE9NU2VsZWN0aW9u
PyBnZXRTZWxlY3Rpb24oKTsKIAorICAgIC8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIHNob3VsZCBi
ZSBleHRyYWN0ZWQgaW50byBhIG5ldyBtaXhpbiwgWFBhdGhFdmFsdWF0b3JCYXNlIC0gaHR0cHM6
Ly9kb20uc3BlYy53aGF0d2cub3JnLyN4cGF0aGV2YWx1YXRvcmJhc2UKICAgICAvLyBYUGF0aCBl
eHRlbnNpb25zIChodHRwczovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtWFBhdGgveHBhdGgu
aHRtbCNYUGF0aEV2YWx1YXRvcikuCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBYUGF0aEV4cHJl
c3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhwcmVzc2lvbiwgb3B0aW9uYWwgWFBh
dGhOU1Jlc29sdmVyPyByZXNvbHZlcik7CiAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVz
b2x2ZXIoTm9kZSBub2RlUmVzb2x2ZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAkocmV2aXNpb24gMjY2
Njc2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw3IEBACiAgKi8KIAogLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG9jdW1lbnRhbmRlbGVtZW50ZXZlbnRoYW5kbGVycwot
WwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgRG9jdW1lbnRBbmRF
bGVtZW50RXZlbnRIYW5kbGVycyB7CitpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRBbmRFbGVtZW50
RXZlbnRIYW5kbGVycyB7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNvcHk7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmN1dDsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ucGFzdGU7CkBAIC0zNiw3ICszNCw2IEBACiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25iZWZvcmVjdXQ7CiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25iZWZvcmVpbnB1dDsKICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmJlZm9yZXBhc3RlOwotCiAgICAgW05vdEVudW1lcmFibGUsIElt
cGxlbWVudGVkQXM9b253ZWJraXRBbmltYXRpb25FbmRdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b253ZWJraXRhbmltYXRpb25lbmQ7CiAgICAgW05vdEVudW1lcmFibGUsIEltcGxlbWVudGVkQXM9
b253ZWJraXRBbmltYXRpb25JdGVyYXRpb25dIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJr
aXRhbmltYXRpb25pdGVyYXRpb247CiAgICAgW05vdEVudW1lcmFibGUsIEltcGxlbWVudGVkQXM9
b253ZWJraXRBbmltYXRpb25TdGFydF0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGFu
aW1hdGlvbnN0YXJ0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JTaGFkb3dS
b290LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPclNoYWRv
d1Jvb3QuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRPclNoYWRvd1Jvb3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw3IEBACiAgKi8K
IAogLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb2N1bWVudG9yc2hhZG93cm9vdAot
WwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgRG9jdW1lbnRPclNo
YWRvd1Jvb3QgeworaW50ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290IHsKICAgICAv
LyBFeHRlbnNpb25zIGZyb20gU2hhZG93IERPTSBBUEkgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93
ZWJjb21wb25lbnRzL3NwZWMvc2hhZG93LyNleHRlbnNpb25zLXRvLXRoZS1kb2N1bWVudG9yc2hh
ZG93cm9vdC1taXhpbikuCiAgICAgLy8gRE9NU2VsZWN0aW9uPyBnZXRTZWxlY3Rpb24oKTsgLy8g
RklYTUU6IFdlIGN1cnJlbnRseSBoYXZlIHRoaXMgb24gRG9jdW1lbnQgb25seS4KICAgICBFbGVt
ZW50PyBlbGVtZW50RnJvbVBvaW50KGRvdWJsZSB4LCBkb3VibGUgeSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKKy8vIGh0dHBzOi8vZG9t
LnNwZWMud2hhdHdnLm9yZy8jY2FsbGJhY2tkZWYtZXZlbnRsaXN0ZW5lcgorLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlLgogWwogICAgIExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0CiBdIGludGVyZmFjZSBFdmVudExpc3RlbmVyIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjUsOSArMjUsNyBAQAogICovCiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNnbG9iYWxldmVudGhhbmRsZXJzCi1bCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzIHsK
K2ludGVyZmFjZSBtaXhpbiBHbG9iYWxFdmVudEhhbmRsZXJzIHsKICAgICAvLyBDb21tZW50ZWQg
b3V0IGV2ZW50IGhhbmRsZXJzIGFyZSBkZWZpbmVkIGJ5IHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9u
IGJ1dAogICAgIC8vIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vTmF2aWdhdG9yTWF4VG91Y2hQb2ludHMuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9OYXZpZ2F0b3JNYXhUb3VjaFBvaW50cy5pZGwJKHJldmlzaW9uIDI2NjY3
NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9OYXZpZ2F0b3JNYXhUb3VjaFBvaW50cy5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDcgQEAKICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKLVsKLSAgICBM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIE1heFRvdWNoUG9pbnRzIHsKKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wb2ludGVyZXZlbnRzLyNleHRlbnNpb25zLXRvLXRoZS1u
YXZpZ2F0b3ItaW50ZXJmYWNlCitpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9yTWF4VG91Y2hQb2lu
dHMgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG1heFRvdWNoUG9pbnRzOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRs
CShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRG9jdW1lbnRUeXBl
Q2hpbGROb2RlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsNyBAQAogICovCiAKIC8v
IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLW5vbmRvY3VtZW50dHlwZWNo
aWxkbm9kZQotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgTm9u
RG9jdW1lbnRUeXBlQ2hpbGROb2RlIHsKK2ludGVyZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5cGVD
aGlsZE5vZGUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBwcmV2aW91c0VsZW1l
bnRTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBuZXh0RWxlbWVudFNp
Ymxpbmc7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vbkVsZW1lbnRQYXJlbnROb2Rl
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRWxlbWVudFBhcmVudE5v
ZGUuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAgKi8KIAog
Ly8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNpbnRlcmZhY2Utbm9uZWxlbWVudHBhcmVu
dG5vZGUKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIE5vbkVs
ZW1lbnRQYXJlbnROb2RlIHsKK2ludGVyZmFjZSBtaXhpbiBOb25FbGVtZW50UGFyZW50Tm9kZSB7
CiAgICAgW0RPTUpJVD1SZWFkRE9NXSBFbGVtZW50PyBnZXRFbGVtZW50QnlJZChbUmVxdWlyZXNF
eGlzdGluZ0F0b21TdHJpbmddIERPTVN0cmluZyBlbGVtZW50SWQpOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9QYXJlbnROb2RlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vUGFyZW50Tm9kZS5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9QYXJlbnROb2RlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsNyBAQAogICov
CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLXBhcmVudG5vZGUK
LVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFBhcmVudE5vZGUg
eworaW50ZXJmYWNlIG1peGluIFBhcmVudE5vZGUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MQ29sbGVjdGlvbiBjaGlsZHJlbjsgLy8gRklYTUU6IFNob3VsZCBiZSBbU2FtZU9iamVjdF0u
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IGZpcnN0RWxlbWVudENoaWxkOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBsYXN0RWxlbWVudENoaWxkOwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1Nsb3RhYmxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2xvdGFibGUuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vU2xvdGFibGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAgKgogICov
CiAKKy8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jc2xvdGFibGUKIFsKLSAgICBMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTSwKLV0g
aW50ZXJmYWNlIFNsb3RhYmxlIHsKK10gaW50ZXJmYWNlIG1peGluIFNsb3RhYmxlIHsKICAgICBb
SW1wbGVtZW50ZWRBcz1hc3NpZ25lZFNsb3RGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxTbG90RWxlbWVudD8gYXNzaWduZWRTbG90OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbAkocmV2aXNpb24gMjY2
Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Ci1d
IGludGVyZmFjZSBIVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzIHsKKy8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2xpbmtzLmh0bWwjaHRtbGh5cGVybGlua2VsZW1lbnR1
dGlscworaW50ZXJmYWNlIG1peGluIEhUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHMgewogICAgIFtD
RVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3QsIFVSTF0gc3RyaW5naWZpZXIgYXR0cmlidXRl
IFVTVlN0cmluZyBocmVmOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2lu
OwotCiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIFVTVlN0cmluZyBwcm90
b2NvbDsKICAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHVz
ZXJuYW1lOwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcg
cGFzc3dvcmQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPckZvcmVpZ25FbGVtZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPckZvcmVpZ25FbGVt
ZW50LmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3JG
b3JlaWduRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwxNSBAQAogLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjaHRtbG9yc3Zn
ZWxlbWVudAogLy8gRklYTUU6IHVwZGF0ZSBhYm92ZSBsaW5rIHdoZW4gdGhpcyBjaGFuZ2UgaGFz
IGJlZW4gaW1wbGVtZW50ZWQ6CiAvLyBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNz
dWVzLzQ3MDIKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIEhU
TUxPckZvcmVpZ25FbGVtZW50IHsKK2ludGVyZmFjZSBtaXhpbiBIVE1MT3JGb3JlaWduRWxlbWVu
dCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ01hcCBkYXRhc2V0OyAvLyBGSVhN
RTogU2hvdWxkIGJlIFtTYW1lT2JqZWN0XS4KKyAgICAvLyBGSVhNRTogSW1wbGVtZW50ICdub25j
ZScuCisgICAgLy8gYXR0cmlidXRlIERPTVN0cmluZyBub25jZTsgLy8gaW50ZW50aW9uYWxseSBu
byBbQ0VSZWFjdGlvbnNdCisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50ICdhdXRvZm9jdXMnLgor
ICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgIFtD
RVJlYWN0aW9ucywgSW1wbGVtZW50ZWRBcz10YWJJbmRleEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUg
bG9uZyB0YWJJbmRleDsKKyAgICAvLyBGSU1YRTogZm9jdXMoKSBpcyBzcGVjaWZpZWQgdG8gdGFr
ZSBhbiBvcHRpb25hbCBGb2N1c09wdGlvbnMuIEltcGxlbWVudCB0aGF0LgogICAgIHVuZGVmaW5l
ZCBmb2N1cygpOwogICAgIHVuZGVmaW5lZCBibHVyKCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0NvbXBvc2l0aW5nLmlkbAkocmV2aXNpb24gMjY2
Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNjb21wb3NpdGluZwogWwotICAgIExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBD
YW52YXNDb21wb3NpdGluZyB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNDb21wb3NpdGluZyB7
CiAgICAgLy8gRklYTUU6IEFsbCB0aGUgdW5yZXN0cmljdGVkIGZsb2F0IGF0dHJpYnV0ZXMgYmVs
b3cgc2hvdWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGVzLgogCiAgICAgLy8gY29tcG9zaXRpbmcK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0RyYXdJbWFnZS5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRHJhd0ltYWdlLmlk
bAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
RHJhd0ltYWdlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBAIHR5cGVkZWYg
KEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0UKICNlbmRpZgogKSBDYW52YXNJbWFnZVNv
dXJjZTsKIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFz
Lmh0bWwjY2FudmFzZHJhd2ltYWdlCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc0RyYXdJbWFnZSB7
CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNEcmF3SW1hZ2UgewogICAgIC8vIEZJWE1FOiBBbGwg
dGhlIHVucmVzdHJpY3RlZCBmbG9hdCBhcmd1bWVudHMgYmVsb3cgc2hvdWxkIGJlIHVucmVzdHJp
Y3RlZCBkb3VibGVzLgogCiAgICAgLy8gZHJhd2luZyBpbWFnZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc0RyYXdQYXRoLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNEcmF3UGF0aC5pZGwJKHJldmlzaW9uIDI2NjY3NikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0RyYXdQYXRoLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
Y2FudmFzLmh0bWwjY2FudmFzZHJhd3BhdGgKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzRHJhd1Bh
dGggeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzRHJhd1BhdGggewogICAgIC8vIHBhdGggQVBJ
IChzZWUgYWxzbyBDYW52YXNQYXRoKQogICAgIHVuZGVmaW5lZCBiZWdpblBhdGgoKTsKICAgICB1
bmRlZmluZWQgZmlsbChvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJv
Iik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ryb2tlU3R5
bGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNG
aWxsU3Ryb2tlU3R5bGVzLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDEwICszNiwxMCBAQCB0eXBlZGVmIChIVE1MSW1hZ2VFbGVtZW50IG9yIEhUTUxDYW52YXNF
CiAjZW5kaWYKICkgQ2FudmFzSW1hZ2VTb3VyY2U7CiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2NhbnZhc2ZpbGxzdHJva2VzdHlsZXMKIFsK
LSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2Vy
KQotXSBpbnRlcmZhY2UgQ2FudmFzRmlsbFN0cm9rZVN0eWxlcyB7CitdIGludGVyZmFjZSBtaXhp
biBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKICAgICAvLyBjb2xvcnMgYW5kIHN0eWxlcyAoc2Vl
IGFsc28gdGhlIENhbnZhc1BhdGhEcmF3aW5nU3R5bGVzIGFuZCBDYW52YXNUZXh0RHJhd2luZ1N0
eWxlcyBpbnRlcmZhY2VzKQogICAgIGF0dHJpYnV0ZSAoRE9NU3RyaW5nIG9yIENhbnZhc0dyYWRp
ZW50IG9yIENhbnZhc1BhdHRlcm4pIHN0cm9rZVN0eWxlOyAvLyAoZGVmYXVsdCBibGFjaykKICAg
ICBhdHRyaWJ1dGUgKERPTVN0cmluZyBvciBDYW52YXNHcmFkaWVudCBvciBDYW52YXNQYXR0ZXJu
KSBmaWxsU3R5bGU7IC8vIChkZWZhdWx0IGJsYWNrKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzRmlsdGVycy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzRmlsdGVycy5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbHRlcnMuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRt
bCNjYW52YXNmaWx0ZXJzCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhw
b3NlZD0oV2luZG93LFdvcmtlcikKLV0gaW50ZXJmYWNlIENhbnZhc0ZpbHRlcnMgeworXSBpbnRl
cmZhY2UgbWl4aW4gQ2FudmFzRmlsdGVycyB7CiAgICAgLy8gZmlsdGVycwogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgZmlsdGVyLgogICAgIC8vIGF0dHJpYnV0ZSBET01TdHJpbmcgZmlsdGVyOyAv
LyAoZGVmYXVsdCAibm9uZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzR3JhZGllbnQuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIz
LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2NhbnZhc2dyYWRpZW50CiBbCiAgICAgRXhwb3Nl
ZD0oV2luZG93LFdvcmtlciksCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VEYXRhLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNJbWFnZURhdGEuaWRsCShyZXZp
c2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNJbWFnZURh
dGEuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNpbWFnZWRhdGEKIFsKLSAgICBMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZh
Y2UgQ2FudmFzSW1hZ2VEYXRhIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc0ltYWdlRGF0YSB7
CiAgICAgLy8gRklYTUU6IEFsbCB0aGUgZmxvYXQgYXJndW1lbnRzIGJlbG93IHNob3VsZCBiZSBs
b25ncy4KIAogICAgIC8vIHBpeGVsIG1hbmlwdWxhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ltYWdlU21vb3RoaW5nLmlkbAkocmV2aXNpb24g
MjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW1hZ2VTbW9vdGhp
bmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNpbWFnZXNtb290aGluZwogWwotICAgIExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGlu
dGVyZmFjZSBDYW52YXNJbWFnZVNtb290aGluZyB7CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNJ
bWFnZVNtb290aGluZyB7CiAgICAgLy8gaW1hZ2Ugc21vb3RoaW5nCiAgICAgYXR0cmlidXRlIGJv
b2xlYW4gaW1hZ2VTbW9vdGhpbmdFbmFibGVkOyAvLyAoZGVmYXVsdCB0cnVlKQogICAgIGF0dHJp
YnV0ZSBJbWFnZVNtb290aGluZ1F1YWxpdHkgaW1hZ2VTbW9vdGhpbmdRdWFsaXR5OyAvLyAoZGVm
YXVsdCBsb3cpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoLmlk
bAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UGF0aC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMCBAQAogICogU1VDSCBEQU1B
R0UuCiAgKi8KIAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2Fu
dmFzLmh0bWwjY2FudmFzcGF0aAogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAg
IEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNQYXRoIHsKK10gaW50
ZXJmYWNlIG1peGluIENhbnZhc1BhdGggewogICAgIC8vIHNoYXJlZCBwYXRoIEFQSSBtZXRob2Rz
CiAgICAgdW5kZWZpbmVkIGNsb3NlUGF0aCgpOwogICAgIHVuZGVmaW5lZCBtb3ZlVG8odW5yZXN0
cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91YmxlIHkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0aERyYXdpbmdTdHlsZXMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdGhEcmF3aW5nU3R5bGVzLmlk
bAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UGF0aERyYXdpbmdTdHlsZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXNwYXRoZHJhd2lu
Z3N0eWxlcwogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNQYXRoRHJhd2luZ1N0eWxlcyB7CitdIGlu
dGVyZmFjZSBtaXhpbiBDYW52YXNQYXRoRHJhd2luZ1N0eWxlcyB7CiAgICAgLy8gRklYTUU6IEFs
bCB0aGUgdW5yZXN0cmljdGVkIGZsb2F0IGFyZ3VtZW50cyAvIGF0dHJpYnV0ZXMgYmVsb3cgc2hv
dWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGVzLgogCiAgICAgLy8gbGluZSBjYXBzL2pvaW5zCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbAkocmV2aXNpb24g
MjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2NhbnZhcy5odG1sI2NhbnZhc3JlY3QKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzUmVjdCB7
CitdIGludGVyZmFjZSBtaXhpbiBDYW52YXNSZWN0IHsKICAgICAvLyBGSVhNRTogQWxsIHRoZSB1
bnJlc3RyaWN0ZWQgZmxvYXQgcGFyYW1ldGVycyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0cmljdGVk
IGRvdWJsZXMuCiAKICAgICAvLyByZWN0cwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzU2hhZG93U3R5bGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNTaGFkb3dTdHlsZXMuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTaGFkb3dTdHlsZXMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9j
YW52YXMuaHRtbCNjYW52YXNzaGFkb3dzdHlsZXMKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9i
amVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFzU2hh
ZG93U3R5bGVzIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc1NoYWRvd1N0eWxlcyB7CiAgICAg
Ly8gRklYTUU6IEFsbCB0aGUgdW5yZXN0cmljdGVkIGZsb2F0IGF0dHJpYnV0ZXMgYmVsb3cgc2hv
dWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGVzLgogCiAgICAgLy8gc2hhZG93cwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3RhdGUuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbAkocmV2aXNpb24gMjY2Njc2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3RhdGUuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9j
YW52YXMuaHRtbCNjYW52YXNzdGF0ZQogWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAog
ICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpCi1dIGludGVyZmFjZSBDYW52YXNTdGF0ZSB7Citd
IGludGVyZmFjZSBtaXhpbiBDYW52YXNTdGF0ZSB7CiAgICAgLy8gc3RhdGUKICAgICB1bmRlZmlu
ZWQgc2F2ZSgpOyAvLyBwdXNoIHN0YXRlIG9uIHN0YXRlIHN0YWNrCiAgICAgdW5kZWZpbmVkIHJl
c3RvcmUoKTsgLy8gcG9wIHN0YXRlIHN0YWNrIGFuZCByZXN0b3JlIHN0YXRlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNUZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNUZXh0LmlkbAkocmV2aXNpb24gMjY2Njc2KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVGV4dC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZh
cy5odG1sI2NhbnZhc3RleHQKIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKICAgICBF
eHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQ2FudmFzVGV4dCB7CitdIGludGVyZmFjZSBtaXhp
biBDYW52YXNUZXh0IHsKICAgICAvLyBGSVhNRTogQWxsIHRoZSB1bnJlc3RyaWN0ZWQgZmxvYXQg
cGFyYW1ldGVycyBiZWxvdyBzaG91bGQgYmUgdW5yZXN0cmljdGVkIGRvdWJsZXMuCiAKICAgICAv
LyB0ZXh0IChzZWUgYWxzbyB0aGUgQ2FudmFzUGF0aERyYXdpbmdTdHlsZXMgYW5kIENhbnZhc1Rl
eHREcmF3aW5nU3R5bGVzIGludGVyZmFjZXMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0eWxlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVGV4dERyYXdpbmdTdHlsZXMuaWRsCShyZXZpc2lvbiAy
NjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNUZXh0RHJhd2luZ1N0
eWxlcy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI2NhbnZhc3RleHRkcmF3aW5nc3R5bGVzCiBbCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJm
YWNlIENhbnZhc1RleHREcmF3aW5nU3R5bGVzIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc1Rl
eHREcmF3aW5nU3R5bGVzIHsKICAgICAvLyB0ZXh0CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBm
b250OyAvLyAoZGVmYXVsdCAxMHB4IHNhbnMtc2VyaWYpCiAgICAgYXR0cmlidXRlIENhbnZhc1Rl
eHRBbGlnbiB0ZXh0QWxpZ247IC8vIChkZWZhdWx0OiAic3RhcnQiKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVHJhbnNmb3JtLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNUcmFuc2Zvcm0uaWRsCShyZXZpc2lvbiAyNjY2
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNUcmFuc2Zvcm0uaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9jYW52YXMuaHRtbCNjYW52YXN0cmFuc2Zvcm0KIFsKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgQ2FudmFz
VHJhbnNmb3JtIHsKK10gaW50ZXJmYWNlIG1peGluIENhbnZhc1RyYW5zZm9ybSB7CiAgICAgLy8g
RklYTUU6IEFsbCB0aGUgdW5yZXN0cmljdGVkIGZsb2F0IHBhcmFtZXRlcnMgYmVsb3cgc2hvdWxk
IGJlIHVucmVzdHJpY3RlZCBkb3VibGVzLgogCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zIChkZWZh
dWx0IHRyYW5zZm9ybSBpcyB0aGUgaWRlbnRpdHkgbWF0cml4KQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVXNlckludGVyZmFjZS5pZGwJKHJldmlzaW9u
IDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1VzZXJJbnRlcmZh
Y2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9jYW52YXMuaHRtbCNjYW52YXN1c2VyaW50ZXJmYWNlCiBbCi0gICAgTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIENh
bnZhc1VzZXJJbnRlcmZhY2UgeworXSBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzVXNlckludGVyZmFj
ZSB7CiAgICAgdW5kZWZpbmVkIGRyYXdGb2N1c0lmTmVlZGVkKEVsZW1lbnQgZWxlbWVudCk7CiAg
ICAgdW5kZWZpbmVkIGRyYXdGb2N1c0lmTmVlZGVkKFBhdGgyRCBwYXRoLCBFbGVtZW50IGVsZW1l
bnQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDkgKzUzLDggQEAgdHlwZWRlZiAoSFRNTENhbnZhc0VsZW1lbnQpIFdl
YkdMQ2FudmFzOwogICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRG9Ob3RDaGVja0NvbnN0YW50
cywKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCwKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UgeworXSBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSB7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViR0xDYW52YXMgY2FudmFzOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbENyeXB0by5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxDcnlwdG8uaWRsCShyZXZpc2lvbiAyNjY2NzYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbENyeXB0by5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDggKzIzLDcgQEAKICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8K
IAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgR2xvYmFsQ3J5
cHRvIHsKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjcnlwdG8vI2NyeXB0by1pbnRlcmZh
Y2UKK2ludGVyZmFjZSBtaXhpbiBHbG9iYWxDcnlwdG8gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDcnlwdG8gY3J5cHRvOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsUGVy
Zm9ybWFuY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsUGVy
Zm9ybWFuY2UuaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ds
b2JhbFBlcmZvcm1hbmNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTEgKzIzLDkgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2hyLXRpbWUvCi0K
Ky8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9oci10aW1lLyNleHRlbnNpb25zLXRvLXdpbmRvd29y
d29ya2VyZ2xvYmFsc2NvcGUtbWl4aW4KIFsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwK
ICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKQotXSBpbnRlcmZhY2UgR2xvYmFsUGVyZm9ybWFu
Y2UgeworXSBpbnRlcmZhY2UgbWl4aW4gR2xvYmFsUGVyZm9ybWFuY2UgewogICAgIFtSZXBsYWNl
YWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFBlcmZvcm1hbmNlIHBlcmZvcm1hbmNlOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEs
OCBAQAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9UmVhY2hhYmxlRnJvbURPTVdpbmRvdywKICAg
ICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKIF0gaW50ZXJmYWNlIE5hdmlnYXRvciB7CisgICAgLy8g
RklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRvIGJlIGluIGl0J3Mgb3duIG1peGluIGNhbGxlZCBO
YXZpZ2F0b3JDb29raWVzLgorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL3N5c3RlbS1zdGF0ZS5odG1sI25hdmlnYXRvcmNvb2tpZXMKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBjb29raWVFbmFibGVkOwogCiAgICAgW0NvbmRpdGlvbmFsPU5BVklH
QVRPUl9TVEFOREFMT05FXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzdGFuZGFsb25lOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw5ICsyNiw4IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdAotXSBpbnRlcmZhY2UgTmF2aWdhdG9ySUQgeworLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3lzdGVtLXN0YXRlLmh0bWwjbmF2aWdhdG9yaWQKK2ludGVy
ZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBhcHBDb2RlTmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcE5hbWU7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBWZXJzaW9uOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwJKHJldmlzaW9uIDI2NjY3NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw5ICsyNiw4IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lO
b0ludGVyZmFjZU9iamVjdAotXSBpbnRlcmZhY2UgTmF2aWdhdG9yTGFuZ3VhZ2UgeworLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3lzdGVtLXN0YXRlLmh0bWwjbmF2
aWdhdG9ybGFuZ3VhZ2UKK2ludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JMYW5ndWFnZSB7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRnJvemVuQXJyYXk8RE9NU3RyaW5nPiBsYW5ndWFnZXM7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw4ICsyNiw3IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdAotXSBpbnRlcmZhY2UgTmF2aWdhdG9yT25MaW5lIHsKKy8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29mZmxpbmUuaHRtbCNuYXZpZ2F0b3JvbmxpbmUKK2lu
dGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JPbkxpbmUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIG9uTGluZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclBs
dWdpbnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUGx1
Z2lucy5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yUGx1Z2lucy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDkgKzIzLDggQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QKLV0gaW50ZXJmYWNlIE5hdmlnYXRvclBsdWdpbnMgeworLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3lzdGVtLXN0YXRlLmh0bWwjbmF2aWdhdG9ycGx1
Z2lucworaW50ZXJmYWNlIG1peGluIE5hdmlnYXRvclBsdWdpbnMgewogICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUGx1Z2luQXJyYXkgcGx1Z2luczsKICAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTU1pbWVUeXBlQXJyYXkgbWltZVR5cGVzOwogICAg
IGJvb2xlYW4gamF2YUVuYWJsZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yU2VydmljZVdvcmtlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JTZXJ2aWNlV29ya2VyLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3JTZXJ2aWNlV29ya2VyLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjMsMTAgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2
aWNld29ya2VyCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9u
YWw9U0VSVklDRV9XT1JLRVIsCiAgICAgRW5hYmxlZEF0UnVudGltZT1TZXJ2aWNlV29ya2VyCi1d
IGludGVyZmFjZSBOYXZpZ2F0b3JTZXJ2aWNlV29ya2VyIHsKK10gaW50ZXJmYWNlIG1peGluIE5h
dmlnYXRvclNlcnZpY2VXb3JrZXIgewogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbiwgU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJDb250YWluZXIgc2VydmljZVdvcmtlcjsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclNoYXJlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclNoYXJlLmlkbAkocmV2aXNpb24gMjY2Njc2
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JTaGFyZS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDExICsyMywxMCBAQAogKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KIAotCisvLyBodHRwczov
L3czYy5naXRodWIuaW8vd2ViLXNoYXJlLyNleHRlbnNpb25zLXRvLXRoZS1uYXZpZ2F0b3ItaW50
ZXJmYWNlCiBbCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRW5hYmxlZEJ5U2V0
dGluZz1XZWJTaGFyZQotXSBpbnRlcmZhY2UgTmF2aWdhdG9yU2hhcmUgeworXSBpbnRlcmZhY2Ug
bWl4aW4gTmF2aWdhdG9yU2hhcmUgewogICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgU2VjdXJlQ29u
dGV4dF0gYm9vbGVhbiBjYW5TaGFyZShvcHRpb25hbCBTaGFyZURhdGEgc2hhcmVEYXRhKTsKICAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnQsIFNlY3VyZUNvbnRleHRdIFByb21pc2U8dW5kZWZpbmVkPiBz
aGFyZShvcHRpb25hbCBTaGFyZURhdGEgc2hhcmVEYXRhKTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1dpbmRvd0V2ZW50SGFuZGxlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2luZG93RXZlbnRIYW5kbGVycy5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RXZlbnRIYW5kbGVycy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDE0ICsyNSwxMCBAQAogICovCiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCN3aW5kb3dldmVudGhhbmRsZXJzCi1bCi0g
ICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBXaW5kb3dFdmVudEhhbmRs
ZXJzIHsKLSAgICAvLyBDb21tZW50ZWQgb3V0IGV2ZW50IGhhbmRsZXJzIGFyZSBkZWZpbmVkIGJ5
IHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uIGJ1dAotICAgIC8vIGFyZSBub3QgeWV0IGltcGxlbWVu
dGVkLgotCitpbnRlcmZhY2UgbWl4aW4gV2luZG93RXZlbnRIYW5kbGVycyB7CiAgICAgW1dpbmRv
d0V2ZW50SGFuZGxlcl0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFmdGVycHJpbnQ7CiAgICAg
W1dpbmRvd0V2ZW50SGFuZGxlcl0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmJlZm9yZXByaW50
OworICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBzYXlzIHRoYXQgb25iZWZvcmV1bmxvYWQgc2hvdWxk
IGJlIG9mIHR5cGUgT25CZWZvcmVVbmxvYWRFdmVudEhhbmRsZXIsIG5vdCBFdmVudEhhbmRsZXIu
CiAgICAgW1dpbmRvd0V2ZW50SGFuZGxlcl0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmJlZm9y
ZXVubG9hZDsKICAgICBbV2luZG93RXZlbnRIYW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uaGFzaGNoYW5nZTsKICAgICBbV2luZG93RXZlbnRIYW5kbGVyXSBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ubGFuZ3VhZ2VjaGFuZ2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDkgKzQyLDggQEAgdHlwZWRlZiAoSFRNTEltYWdlRWxlbWVudAogCiB0eXBl
ZGVmIChDYW52YXNJbWFnZVNvdXJjZSBvciBCbG9iIG9yIEltYWdlRGF0YSkgSW1hZ2VCaXRtYXBT
b3VyY2U7CiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFdp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGUgeworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3dpbmRvd29yd29ya2VyZ2xvYmFsc2NvcGUtbWl4
aW4KK2ludGVyZmFjZSBtaXhpbiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKICAgICBbUmVw
bGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOwogCiAgICAgLy8g
VGltZXJzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CisvLyBodHRwczovL2RyYWZ0cy5meHRmLm9y
Zy9maWx0ZXItZWZmZWN0cy8jSW50ZXJmYWNlU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzCitpbnRlcmZhY2UgbWl4aW4gU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rml0VG9WaWV3Qm94LmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpdFRvVmlld0JveC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDEwIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCi1d
IGludGVyZmFjZSBTVkdGaXRUb1ZpZXdCb3ggeworLy8gaHR0cHM6Ly9zdmd3Zy5vcmcvc3ZnMi1k
cmFmdC90eXBlcy5odG1sI0ludGVyZmFjZVNWR0ZpdFRvVmlld0JveAoraW50ZXJmYWNlIG1peGlu
IFNWR0ZpdFRvVmlld0JveCB7CisgICAgLy8gRklYTUU6ICd2aWV3Qm94JyBzaG91bGQgYmUgYW5u
b3RhdGVkIHdpdGggW1NhbWVPYmplY3RdLgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZFJlY3Qgdmlld0JveDsKKyAgICAvLyBGSVhNRTogJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHNo
b3VsZCBiZSBhbm5vdGF0ZWQgd2l0aCBbU2FtZU9iamVjdF0uCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmlkbAkocmV2aXNpb24gMjY2Njc2KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTQgKzI0
LDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi1bCi0gICAgTGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QsCi0gICAgU3VwcHJlc3NUb0pTT2JqZWN0LAotXSBpbnRlcmZhY2UgU1ZHVGVzdHMgewot
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCByZXF1aXJl
ZEZlYXR1cmVzOworLy8gaHR0cHM6Ly9zdmd3Zy5vcmcvc3ZnMi1kcmFmdC90eXBlcy5odG1sI0lu
dGVyZmFjZVNWR1Rlc3RzCitpbnRlcmZhY2UgbWl4aW4gU1ZHVGVzdHMgewogICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCByZXF1aXJlZEV4dGVuc2lvbnM7
CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHN5c3Rl
bUxhbmd1YWdlOwogCisKKyAgICAvLyBBcyBvZiBTVkcyLCB0aGUgZm9sbG93aW5nIGFyZSBubyBs
b25nZXIgcGFydCBvZiB0aGlzIGludGVyZmFjZS4KKworICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCByZXF1aXJlZEZlYXR1cmVzOwogICAgIC8vIEZJWE1F
OiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4K
ICAgICBib29sZWFuIGhhc0V4dGVuc2lvbihvcHRpb25hbCBET01TdHJpbmcgZXh0ZW5zaW9uID0g
InVuZGVmaW5lZCIpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVu
Y2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2Uu
aWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJl
bmNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAotWwotICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAotICAgIFN1cHByZXNzVG9K
U09iamVjdCwKLV0gaW50ZXJmYWNlIFNWR1VSSVJlZmVyZW5jZSB7CisvLyBodHRwczovL3N2Z3dn
Lm9yZy9zdmcyLWRyYWZ0L3R5cGVzLmh0bWwjSW50ZXJmYWNlU1ZHVVJJUmVmZXJlbmNlCitpbnRl
cmZhY2UgbWl4aW4gU1ZHVVJJUmVmZXJlbmNlIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRTdHJpbmcgaHJlZjsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9v
bUFuZFBhbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQ
YW4uaWRsCShyZXZpc2lvbiAyNjY2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUFu
ZFBhbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFNW
R1pvb21BbmRQYW4geworaW50ZXJmYWNlIG1peGluIFNWR1pvb21BbmRQYW4gewogICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFNWR19aT09NQU5EUEFOX1VOS05PV04gPSAwOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19aT09NQU5EUEFOX0RJU0FCTEUgPSAxOwogICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19aT09NQU5EUEFOX01BR05JRlkgPSAyOwpJbmRleDogU291cmNlL1dlYkNv
cmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0y
OSw5ICsyOSw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVsKLSAgICBMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIEFic3RyYWN0V29ya2VyIHsKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCNhYnN0cmFjdHdvcmtlcgor
aW50ZXJmYWNlIG1peGluIEFic3RyYWN0V29ya2VyIHsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uZXJyb3I7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0
b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5p
ZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRv
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDggQEAKIF0gaW50ZXJmYWNlIFhQYXRo
RXZhbHVhdG9yIHsKICAgICBjb25zdHJ1Y3RvcigpOwogCisgICAgLy8gRklYTUU6IFRoZSBmb2xs
b3dpbmcgc2hvdWxkIGJlIGV4dHJhY3RlZCBpbnRvIGEgbmV3IG1peGluLCBYUGF0aEV2YWx1YXRv
ckJhc2UgLSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3hwYXRoZXZhbHVhdG9yYmFzZQog
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24o
RE9NU3RyaW5nIGV4cHJlc3Npb24sIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIp
OwotCiAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSBub2RlUmVzb2x2
ZXIpOwotCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShET01T
dHJpbmcgZXhwcmVzc2lvbiwgTm9kZSBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgWFBhdGhOU1Jlc29s
dmVyPyByZXNvbHZlciwgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFs
IFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
TlNSZXNvbHZlci5pZGwJKHJldmlzaW9uIDI2NjY3NikKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2ICsxOCw4IEBACiAgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisvLyBodHRwczovL2RvbS5zcGVjLndo
YXR3Zy5vcmcvI2NhbGxiYWNrZGVmLXhwYXRobnNyZXNvbHZlcgorLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlLgogWwogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>