<?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>231340</bug_id>
          
          <creation_ts>2021-10-06 16:58:01 -0700</creation_ts>
          <short_desc>[CSS Cascade Layers] Update CSSOM to the spec</short_desc>
          <delta_ts>2022-01-21 14:29:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>Safari Technology Preview</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>
          <dependson>235455</dependson>
          <blocked>220779</blocked>
    
    <blocked>234012</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pangle</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801427</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-06 16:58:01 -0700</bug_when>
    <thetext>Per CSS WG resolution:
https://github.com/w3c/csswg-drafts/issues/6576#issuecomment-937246847</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801428</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-06 16:58:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/83958697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821512</commentid>
    <comment_count>2</comment_count>
      <attachid>446350</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 05:20:20 -0800</bug_when>
    <thetext>Created attachment 446350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821522</commentid>
    <comment_count>3</comment_count>
      <attachid>446353</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 06:09:32 -0800</bug_when>
    <thetext>Created attachment 446353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821531</commentid>
    <comment_count>4</comment_count>
      <attachid>446357</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 06:39:42 -0800</bug_when>
    <thetext>Created attachment 446357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821572</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-08 08:56:20 -0800</bug_when>
    <thetext>Committed r286657 (244970@main): &lt;https://commits.webkit.org/244970@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446357.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821573</commentid>
    <comment_count>6</comment_count>
      <attachid>446357</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-08 09:00:57 -0800</bug_when>
    <thetext>Comment on attachment 446357
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:455
&gt; +            auto layerName = downcast&lt;CSSImportRule&gt;(parentRule)-&gt;layerName();
&gt; +            if (!layerName.isNull()) {

Hey Antti, when making a change like this, please consider the modern C++ way to keep this scoped like it was before:

    if (auto layerName = downcast&lt;CSSImportRule&gt;(parentRule)-&gt;layerName(); !layerName.isNull()) {

I think it works and makes the code better even though it can be a little hard to spot the code after the semicolon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821585</commentid>
    <comment_count>7</comment_count>
      <attachid>446357</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-08 09:12:38 -0800</bug_when>
    <thetext>Comment on attachment 446357
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:481
&gt; +            layerRulePayload-&gt;setText(downcast&lt;CSSLayerBlockRule&gt;(parentRule)-&gt;name());

The Inspector frontend expects an anonymous layer will not provide the optional `text` parameter. Since this has already landed I&apos;ve opened Bug 234012 to track cleaning this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821630</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 10:49:12 -0800</bug_when>
    <thetext>&gt; Hey Antti, when making a change like this, please consider the modern C++
&gt; way to keep this scoped like it was before:
&gt; 
&gt;     if (auto layerName = downcast&lt;CSSImportRule&gt;(parentRule)-&gt;layerName();
&gt; !layerName.isNull()) {
&gt; 
&gt; I think it works and makes the code better even though it can be a little
&gt; hard to spot the code after the semicolon.

I did consider it and decided it reads better as two lines. There is no benefit from limiting the scope here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821632</commentid>
    <comment_count>9</comment_count>
      <attachid>446357</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 10:54:52 -0800</bug_when>
    <thetext>Comment on attachment 446357
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:481
&gt;&gt; +            layerRulePayload-&gt;setText(downcast&lt;CSSLayerBlockRule&gt;(parentRule)-&gt;name());
&gt; 
&gt; The Inspector frontend expects an anonymous layer will not provide the optional `text` parameter. Since this has already landed I&apos;ve opened Bug 234012 to track cleaning this up.

layerName() returns an empty string for anonymous layers. Maybe best to handle that in the frontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821635</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-08 11:00:21 -0800</bug_when>
    <thetext>&gt; layerName() returns an empty string for anonymous layers. Maybe best to
&gt; handle that in the frontend.

Or to be exact CSSLayerBlockRule::name() returns empty string for anonymous layer (and never a null string).

CSSImportRule::layerName() returns null string for no layer specified case and empty string for anonymous layer case.

CSSLayerStatementRule::nameList() returns a vector with at least one item and no empty or null strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821650</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-08 11:13:55 -0800</bug_when>
    <thetext>&gt; &gt; layerName() returns an empty string for anonymous layers. Maybe best to
&gt; &gt; handle that in the frontend.
&gt; 
&gt; Or to be exact CSSLayerBlockRule::name() returns empty string for anonymous
&gt; layer (and never a null string).
&gt; 
&gt; CSSImportRule::layerName() returns null string for no layer specified case
&gt; and empty string for anonymous layer case.
&gt; 
&gt; CSSLayerStatementRule::nameList() returns a vector with at least one item
&gt; and no empty or null strings.

Makes sense - given this I think I will go ahead and just teach the frontend how to handle an empty string here. Thanks for the clarification!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446350</attachid>
            <date>2021-12-08 05:20:20 -0800</date>
            <delta_ts>2021-12-08 06:16:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231340-20211208152018.patch</filename>
            <type>text/plain</type>
            <size>65603</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uNDQ0YzEwNzQ3Yjc4ZWVkNjhkYjA1ODZjZjFhZDVh
ZmMyNjBjM2YwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTEyLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBVcGRhdGUgQ1NTT00gdG8gdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5
NTg2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIENTU0xheWVyQmxvY2tSdWxlIGFuZCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNl
cy4KKyAgICAgICAgQWxzbyBhZGQgc3VwcG9ydCBmb3IgbGF5ZXJOYW1lIHByb3BlcnR5IG9mIENT
U0ltcG9ydFJ1bGUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTQ1NTUnVsZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVk
KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZStMYXllci5pZGw6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsLgorICAgICAgICAqIGNzcy9DU1NJbXBv
cnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmxheWVyTmFtZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjYXNjYWRlTGF5ZXJOYW1l
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5oOgorICAgICAg
ICAqIGNzcy9DU1NMYXllckJsb2NrUnVsZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTGF5ZXJSdWxlLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tS
dWxlOjpDU1NMYXllckJsb2NrUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMYXllckJsb2Nr
UnVsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tSdWxlOjpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tSdWxlOjpuYW1lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKToKKyAg
ICAgICAgKiBjc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvY3NzL0NTU0xheWVyUnVsZS5oLgorICAgICAgICAqIGNzcy9DU1NMYXllckJsb2NrUnVsZS5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsLgorICAg
ICAgICAqIGNzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmguCisgICAgICAgIChXZWJDb3JlOjpDU1NMYXllclN0
YXRlbWVudFJ1bGU6OkNTU0xheWVyU3RhdGVtZW50UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NMYXllclN0YXRlbWVudFJ1bGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMYXll
clN0YXRlbWVudFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGF5
ZXJTdGF0ZW1lbnRSdWxlOjpuYW1lTGlzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NM
YXllclN0YXRlbWVudFJ1bGU6OnJlYXR0YWNoKToKKyAgICAgICAgKiBjc3MvQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxl
LmguCisgICAgICAgICogY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGw6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbC4KKyAgICAgICAgKiBjc3MvQ1NT
UnVsZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSdWxlQmFzZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVCYXNl
Ojpjb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUJhc2U6OmNyZWF0ZUNT
U09NV3JhcHBlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVMYXllcjo6U3R5
bGVSdWxlTGF5ZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUnVsZUJhc2U6OmlzR3JvdXBSdWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUnVsZUJhc2U6OmlzTGF5ZXJSdWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVS
dWxlVHlwZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dHJhdmVyc2VSdWxlc0luVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlU2hlZXRDb250ZW50czo6dHJhdmVyc2VTdWJyZXNvdXJjZXMgY29uc3QpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXJJbXBsOjpjb25zdW1lTGF5ZXJSdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChmbGF0dGVuU291cmNlRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjphc0NTU1J1bGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQXJyYXlGb3JH
cm91cGluZ3MpOgorICAgICAgICAqIHN0eWxlL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Okluc3BlY3RvckNTU09NV3JhcHBlcnM6OmNvbGxlY3Qp
OgorCiAyMDIxLTEyLTA4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjg2NTU2KTogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5oIGlzIG9ubHkgYXZhaWxhYmxlIGluIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWNkN2FlNThkNzEwMWEzODY1NjNjZTJm
YzIzOTVkYTY0ZTcxM2M1Mi4uZTExZmM4MjQ1NTczZjc0OTM3YzVmNWU2M2ZhZDNmZWNlMDA3NjYz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC04NzgsMTAgKzg3OCwxMyBAQCAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTQ291bnRlclN0eWxl
UnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsCiAkKFBST0pF
Q1RfRElSKS9jc3MvQ1NTRm9udFBhbGV0dGVWYWx1ZXNSdWxlLmlkbAogJChQUk9KRUNUX0RJUikv
Y3NzL0NTU0dyb3VwaW5nUnVsZS5pZGwKKyQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NJbXBvcnRSdWxl
K0xheWVyLmlkbAogJChQUk9KRUNUX0RJUikvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsCiAkKFBST0pF
Q1RfRElSKS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmlkbAogJChQUk9KRUNUX0RJUikvY3NzL0NTU0tl
eWZyYW1lc1J1bGUuaWRsCiskKFBST0pFQ1RfRElSKS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRs
CiAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbAorJChQUk9KRUNUX0RJUikvY3Nz
L0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NNZWRpYVJ1
bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwKICQoUFJPSkVD
VF9ESVIpL2Nzcy9DU1NQYWdlUnVsZS5pZGwKQEAgLTEzMjUsOCArMTMyOCw4IEBAICQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCiAkKFBST0pF
Q1RfRElSKS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4KICQoUFJPSkVDVF9ESVIpL2h0
bWwvcGFyc2VyL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQogJChQUk9KRUNUX0RJUikvaHRtbC9z
aGFkb3cvaW1hZ2VPdmVybGF5LmNzcwotJChQUk9KRUNUX0RJUikvaHRtbC9zaGFkb3cvbWV0ZXJF
bGVtZW50U2hhZG93LmNzcwogJChQUk9KRUNUX0RJUikvaHRtbC9zaGFkb3cvbWFjL2ltYWdlQ29u
dHJvbHNNYWMuY3NzCiskKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9tZXRlckVsZW1lbnRTaGFk
b3cuY3NzCiAkKFBST0pFQ1RfRElSKS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCiAkKFBST0pF
Q1RfRElSKS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC90cmFjay9EYXRhQ3VlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCA5OTZjYmRlMjExNmVlZTIyODg0ODQ4ZTE0ZTFlNTgxNmE4
MTdkZjNjLi4wYTIzMTgyMjA1N2QyMmM3ZDM5YTQ0NDMwNzc0MWIzODMwNmRiYTJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjk2
LDYgKzI5Niw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ1NTRm9udFBhbGV0dGVWYWx1ZXNSdWxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250UGFsZXR0ZVZhbHVlc1J1bGUuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NHcm91cGluZ1J1bGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0dy
b3VwaW5nUnVsZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU0ltcG9ydFJ1bGUrTGF5ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ltcG9ydFJ1bGUrTGF5ZXIuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NJbXBvcnRSdWxlLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NJbXBvcnRSdWxlLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTS2V5ZnJh
bWVSdWxlLmNwcApAQCAtMzA0LDggKzMwNiwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0tleWZyYW1lc1J1bGUuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0tleWZyYW1lc1J1bGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NLZXl3b3JkVmFs
dWUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NT
U0tleXdvcmRWYWx1ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0NTU0xheWVyQmxvY2tSdWxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NMYXllckJsb2NrUnVsZS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0xheWVyUnVsZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTGF5ZXJSdWxlLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDU1NMYXllclN0YXRlbWVudFJ1bGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NNYXRoSW52ZXJ0LmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NNYXRoSW52ZXJ0LmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTWF0aE1heC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDMzYmQ2ZTAwZGM4YjYyZjFkYTFjMGM5NTBjYjky
OGIyODdhNmZmMWQuLmI1NTQ0YzI4YTlhYWNmYTlmM2FjOWZlNDkzYjE0MmYxMzhmMjQ0MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzU4LDcgKzc1OCw5IEBAIEpTX0JJTkRJ
TkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9udFBhbGV0dGVWYWx1ZXNSdWxl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTR3JvdXBpbmdSdWxlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NTU0xh
eWVyUnVsZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL0NTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3Nz
L0NTU0tleWZyYW1lUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0tleWZyYW1lc1J1
bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggZGU5MzQzYTQ3ZDljNTNjOTgyMWQ5MWYyMmMxYmMzYzE5OWViOTVlZC4uOTJlMGY0
YjBjODU2ZTY4Nzc4NmZhZmQ0YjIzZWFhNmI5ZjU1MzBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTcz
Myw3ICs3MzMsOCBAQCBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKIGNzcy9DU1NJbXBvcnRSdWxlLmNw
cAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcAotY3Nz
L0NTU0xheWVyUnVsZS5jcHAKK2Nzcy9DU1NMYXllckJsb2NrUnVsZS5jcHAKK2Nzcy9DU1NMYXll
clN0YXRlbWVudFJ1bGUuY3BwCiBjc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKIGNzcy9D
U1NNYXJrdXAuY3BwCiBjc3MvQ1NTTWVkaWFSdWxlLmNwcApAQCAtMjkyNSw3ICsyOTI2LDggQEAg
SlNDU1NHcm91cGluZ1J1bGUuY3BwCiBKU0NTU0ltcG9ydFJ1bGUuY3BwCiBKU0NTU0tleWZyYW1l
UnVsZS5jcHAKIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKLUpTQ1NTTGF5ZXJSdWxlLmNwcAorSlND
U1NMYXllckJsb2NrUnVsZS5jcHAKK0pTQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmNwcAogSlNDU1NN
ZWRpYVJ1bGUuY3BwCiBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwCiBKU0NTU1BhZ2VSdWxlLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDNmZGYyMWYzZjYyMmJlOTJmM2I1MDMxN2ZlYzhmMzEwMjk0YzM2NTMuLjk4NDI1YTQ1MTIy
Mzk1YmYzMTg0NWI3MjQxZDc0ZmU1YjVlN2Q4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzODcsNiArNTM4Nyw4IEBACiAJ
CUU0RjM4RDFCMjYyNkYxM0IwMDdCMTA2NCAvKiBEZWZhdWx0UmVzb3VyY2VMb2FkUHJpb3JpdHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjM4RDE5
MjYyNkYxM0IwMDdCMTA2NCAvKiBEZWZhdWx0UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCAqLzsgfTsK
IAkJRTRGODE5QzYyNkZCNEVCRjAwOTRFMTYyIC8qIElubGluZUJveFBhaW50ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjgxOUM1MjZGQjRFQkYw
MDk0RTE2MiAvKiBJbmxpbmVCb3hQYWludGVyLmggKi87IH07CiAJCUU0RjlFRUYzMTU2REEwMDcw
MEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNo
ZWV0Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlFNEZGQ0VCQjI3NjBBQzAxMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEZGQ0VC
ODI3NjBBQzAwMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmggKi87IH07CisJCUU0
RkZDRUJFMjc2MEFDMTYwMEE2OEIwMyAvKiBDU1NMYXllckJsb2NrUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQzMEMxQjcyNzAzMDk0MTAwM0I1
NTNGIC8qIENTU0xheWVyQmxvY2tSdWxlLmggKi87IH07CiAJCUU1MDYyMDg0MjU0MDkxOUMwMEM0
MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA4MzI1NDA5MTlCMDBDNDMwOTEgLyogQ29udGFjdHNS
ZXF1ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUU1MTE5NEJGMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MTE5NEJEMjcwRTdF
NEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1ZG9JZHMuaCAqLzsgfTsKIAkJRTUxNjY5OTEyMEZGOTkx
ODAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBM
aXN0QnV0dG9uQXJyb3dAMngucG5nICovOyB9OwpAQCAtMTcyMjQsNiArMTcyMjYsNyBAQAogCQlF
NDAzQjc5RjI1MUIxMThCMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwM0I3QTEyNTFCMTE5MzAwMTlFODAwIC8qIExheW91
dEludGVncmF0aW9uQ292ZXJhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbG9yRGF0YS5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0NvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCUU0MTE0QjI1Mjc2MERDMzYwMDdCNzg5QiAvKiBDU1NJbXBvcnRSdWxlK0xheWVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSAiQ1NTSW1wb3J0UnVsZStMYXllci5pZGwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDE1RUIxMTI3MEMzNTEyMDBFOERBMUIgLyogSW5saW5lSXRlcmF0b3JJbmxp
bmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSXRlcmF0b3JJ
bmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxNUVCMTQyNzBDMzUz
NzAwRThEQTFCIC8qIElubGluZUl0ZXJhdG9ySW5saW5lQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IElubGluZUl0ZXJhdG9ySW5saW5lQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQxODAyNTMyM0Q0NTQ5QTAwRkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJl
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbkJv
eFRyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MjQxLDkgKzE3MjQ0LDkg
QEAKIAkJRTQyOTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFByaW9yaXR5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkU3NkQ5MUM3QUY3NkMwMEUzNjE0RCAv
KiBTdHlsZVVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dHlsZVVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkU3NkRCMUM3
QUY3NzYwMEUzNjE0RCAvKiBTdHlsZVVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZVVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDMw
QzFCNzI3MDMwOTQxMDAzQjU1M0YgLyogQ1NTTGF5ZXJSdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U0xheWVyUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDMwQzFCOTI3MDMw
OTRFMDAzQjU1M0YgLyogQ1NTTGF5ZXJSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NMYXllclJ1bGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDMwQzFCQTI3MDMwQjg2MDAzQjU1M0YgLyog
Q1NTTGF5ZXJSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0xheWVyUnVsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MzBDMUI3MjcwMzA5NDEwMDNCNTUzRiAvKiBD
U1NMYXllckJsb2NrUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NMYXllckJsb2NrUnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDMwQzFCOTI3MDMwOTRFMDAzQjU1M0YgLyog
Q1NTTGF5ZXJCbG9ja1J1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU0xheWVyQmxvY2tSdWxlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQzMEMxQkEyNzAzMEI4NjAwM0I1NTNGIC8qIENTU0xh
eWVyQmxvY2tSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0xheWVyQmxvY2tSdWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQzMTA1QjcxNjc1MEYwQzAwREIyRkI4
IC8qIE5vZGVUcmF2ZXJzYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTm9kZVRyYXZlcnNhbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MzEw
NUJBMTY3NTBGMTYwMERCMkZCOCAvKiBOb2RlVHJhdmVyc2FsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5vZGVUcmF2ZXJzYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQzMTJBQjUyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0
NjAsNiArMTc0NjMsOSBAQAogCQlFNEY5RUVGMDE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVl
dENvbnRlbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxl
U2hlZXRDb250ZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RjlFRUYx
MTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0RkI0QjM1MjM5QkVCMTAwMDNDMzM2QSAvKiBMYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25J
bmxpbmVDb250ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTRGRkNFQjgy
NzYwQUMwMDAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NMYXllclN0YXRlbWVudFJ1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTRGRkNFQjkyNzYwQUMwMDAwQTY4QjAzIC8qIENTU0xheWVyU3Rh
dGVtZW50UnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NM
YXllclN0YXRlbWVudFJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNEZG
Q0VCQTI3NjBBQzAxMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NMYXllclN0YXRlbWVudFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFNTA2MjA4MzI1NDA5MTlCMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1
ZXN0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250YWN0c1JlcXVlc3REYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MTE5NEJEMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQ
c2V1ZG9JZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93UHNldWRvSWRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU1MTE5NEJFMjcwRTdFNEEwMDY0RkNCQSAvKiBTaGFkb3dQc2V1
ZG9JZHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93UHNldWRvSWRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMzg5LDYgKzMxMzk1LDcgQEAKIAkJCQk5MzkzRTVG
RTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oICovLAogCQkJCUE4MEU2Q0Q0
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNEMDBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5oICovLAorCQkJCUU0MTE0QjI1Mjc2MERD
MzYwMDdCNzg5QiAvKiBDU1NJbXBvcnRSdWxlK0xheWVyLmlkbCAqLywKIAkJCQlBODBFNkNDMTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1wb3J0UnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDQ0MwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuaCAqLywKIAkJCQk4NUM1NkNBOTBBQTg5RTY2
MDBEOTU3NTUgLyogQ1NTSW1wb3J0UnVsZS5pZGwgKi8sCkBAIC0zMTM5OCw5ICszMTQwNSwxMiBA
QAogCQkJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmNwcCAq
LywKIAkJCQkzMTI4OEU3MTBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5oICov
LAogCQkJCTMxNkZFMDkyMEU2Q0NEN0YwMEJGNjA4OCAvKiBDU1NLZXlmcmFtZXNSdWxlLmlkbCAq
LywKLQkJCQlFNDMwQzFCQTI3MDMwQjg2MDAzQjU1M0YgLyogQ1NTTGF5ZXJSdWxlLmNwcCAqLywK
LQkJCQlFNDMwQzFCNzI3MDMwOTQxMDAzQjU1M0YgLyogQ1NTTGF5ZXJSdWxlLmggKi8sCi0JCQkJ
RTQzMEMxQjkyNzAzMDk0RTAwM0I1NTNGIC8qIENTU0xheWVyUnVsZS5pZGwgKi8sCisJCQkJRTQz
MEMxQkEyNzAzMEI4NjAwM0I1NTNGIC8qIENTU0xheWVyQmxvY2tSdWxlLmNwcCAqLywKKwkJCQlF
NDMwQzFCNzI3MDMwOTQxMDAzQjU1M0YgLyogQ1NTTGF5ZXJCbG9ja1J1bGUuaCAqLywKKwkJCQlF
NDMwQzFCOTI3MDMwOTRFMDAzQjU1M0YgLyogQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsICovLAorCQkJ
CUU0RkZDRUI5Mjc2MEFDMDAwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuY3BwICov
LAorCQkJCUU0RkZDRUI4Mjc2MEFDMDAwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUu
aCAqLywKKwkJCQlFNEZGQ0VCQTI3NjBBQzAxMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRS
dWxlLmlkbCAqLywKIAkJCQlCQzc3MkUxNTEzMzE2MkMyMDAxRUM5Q0UgLyogQ1NTTGluZUJveENv
bnRhaW5WYWx1ZS5jcHAgKi8sCiAJCQkJQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xp
bmVCb3hDb250YWluVmFsdWUuaCAqLywKIAkJCQk5NDZEMzc0NzFENkQwNjBDMDA3NzA4NEYgLyog
Q1NTTWFya3VwLmNwcCAqLywKQEAgLTMzNzY3LDYgKzMzNzc3LDggQEAKIAkJCQkzMTI4OEU3MzBF
MzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTI4OEU3NTBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkE0MTA3QTQyNkNCNjZGODAwM0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTRGRkNFQkUyNzYwQUMxNjAwQTY4QjAzIC8qIENTU0xheWVyQmxv
Y2tSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEZGQ0VCQjI3NjBBQzAxMDBBNjhCMDMgLyog
Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3MkUxMzEzMzE2
MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTQ2RDM3NEExRDZEMDYyODAwNzcwODRGIC8qIENTU01hcmt1cC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkFFRjZGRDMyNkU3RUNBNTAwMzI2RDAyIC8qIENTU01hdGhJbnZlcnQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxl
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5j
cHAKaW5kZXggOGM0YzU2MTVhMzlmNzEzOTVkN2RjN2U5YjhmZTc5ZjYxOTdjOTI2Ny4uMDkwYjc2
YTViZWZhNzVmMTQ1N2RiNDNiOGMxNTg2ZjBjMWJkYTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5j
bHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIkNTU0tleWZyYW1lUnVsZS5oIgogI2lu
Y2x1ZGUgIkNTU0tleWZyYW1lc1J1bGUuaCIKKyNpbmNsdWRlICJDU1NMYXllckJsb2NrUnVsZS5o
IgorI2luY2x1ZGUgIkNTU0xheWVyU3RhdGVtZW50UnVsZS5oIgogI2luY2x1ZGUgIkNTU01lZGlh
UnVsZS5oIgogI2luY2x1ZGUgIkNTU05hbWVzcGFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYWdl
UnVsZS5oIgpAQCAtNDMsNiArNDUsOCBAQAogI2luY2x1ZGUgIkpTQ1NTSW1wb3J0UnVsZS5oIgog
I2luY2x1ZGUgIkpTQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiSlNDU1NLZXlmcmFtZXNS
dWxlLmgiCisjaW5jbHVkZSAiSlNDU1NMYXllckJsb2NrUnVsZS5oIgorI2luY2x1ZGUgIkpTQ1NT
TGF5ZXJTdGF0ZW1lbnRSdWxlLmgiCiAjaW5jbHVkZSAiSlNDU1NNZWRpYVJ1bGUuaCIKICNpbmNs
dWRlICJKU0NTU05hbWVzcGFjZVJ1bGUuaCIKICNpbmNsdWRlICJKU0NTU1BhZ2VSdWxlLmgiCkBA
IC04OCw3ICs5MiwxMyBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmplY3Qq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8QwogICAgICAgICByZXR1cm4g
Y3JlYXRlV3JhcHBlcjxDU1NTdXBwb3J0c1J1bGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShydWxl
KSk7CiAgICAgY2FzZSBDU1NSdWxlOjpDT1VOVEVSX1NUWUxFX1JVTEU6CiAgICAgICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyPENTU0NvdW50ZXJTdHlsZVJ1bGU+KGdsb2JhbE9iamVjdCwgV1RGTW92
ZShydWxlKSk7Ci0gICAgZGVmYXVsdDoKKyAgICBjYXNlIENTU1J1bGU6OkxBWUVSX0JMT0NLX1JV
TEU6CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU0xheWVyQmxvY2tSdWxlPihnbG9i
YWxPYmplY3QsIFdURk1vdmUocnVsZSkpOworICAgIGNhc2UgQ1NTUnVsZTo6TEFZRVJfU1RBVEVN
RU5UX1JVTEU6CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU0xheWVyU3RhdGVtZW50
UnVsZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHJ1bGUpKTsKKyAgICBjYXNlIENTU1J1bGU6OlVO
S05PV05fUlVMRToKKyAgICBjYXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICBjYXNlIENT
U1J1bGU6Ok1BUkdJTl9SVUxFOgogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NSdWxl
PihnbG9iYWxPYmplY3QsIFdURk1vdmUocnVsZSkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlK0xheWVyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbXBvcnRSdWxlK0xheWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTFlZDQ1NjM2NzgxODc2
MmI4ZGUyNzJiMTRmZTc2MzgxNGM4N2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICov
CisKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5nOworCitbCisgICAgRXhwb3NlZD1XaW5k
b3cKK10gcGFydGlhbCBpbnRlcmZhY2UgQ1NTSW1wb3J0UnVsZSB7CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBDU1NPTVN0cmluZz8gbGF5ZXJOYW1lOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcAppbmRleCAyNzM0OTJjODM1MjA1OWYzNGU2OGIxYjczYTQ3N2E3MDU0MjllMjJmLi5l
NGZiMGQ4YjgzZjJkZjczMmI5OTdmZWYxNWFhNDUzODQyZTExMmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogCisjaW5jbHVkZSAiQ1NTTGF5ZXJCbG9ja1J1
bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0Lmgi
CiAjaW5jbHVkZSAiU3R5bGVSdWxlSW1wb3J0LmgiCkBAIC01Niw5ICs1NywxMyBAQCBNZWRpYUxp
c3QmIENTU0ltcG9ydFJ1bGU6Om1lZGlhKCkgY29uc3QKICAgICByZXR1cm4gKm1fbWVkaWFDU1NP
TVdyYXBwZXI7CiB9CiAKLWNvbnN0IHN0ZDo6b3B0aW9uYWw8Q2FzY2FkZUxheWVyTmFtZT4mIENT
U0ltcG9ydFJ1bGU6OmNhc2NhZGVMYXllck5hbWUoKSBjb25zdAorU3RyaW5nIENTU0ltcG9ydFJ1
bGU6OmxheWVyTmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW1wb3J0UnVsZS5nZXQoKS5j
YXNjYWRlTGF5ZXJOYW1lKCk7CisgICAgYXV0byBuYW1lID0gbV9pbXBvcnRSdWxlLmdldCgpLmNh
c2NhZGVMYXllck5hbWUoKTsKKyAgICBpZiAoIW5hbWUpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICByZXR1cm4gc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUoKm5hbWUpOwogfQogCiBTdHJp
bmcgQ1NTSW1wb3J0UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1
bGUuaAppbmRleCBjOWI3MTJkZTU5ZmE2NTlhNWQ5ZWVkNDM4ZjI0M2FlMjc4YzQ4MjYwLi5kYzVm
MjEzZGEwZDRjZDNmNDY2ZmQ3Nzk3OTM1MWRiODUwNmNmNWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bXBvcnRSdWxlLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBocmVmKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFMaXN0JiBtZWRp
YSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6Om9wdGlvbmFsPENhc2NhZGVM
YXllck5hbWU+JiBjYXNjYWRlTGF5ZXJOYW1lKCkgY29uc3Q7CisgICAgU3RyaW5nIGxheWVyTmFt
ZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENTU0ltcG9ydFJ1bGUoU3R5bGVSdWxlSW1wb3J0
JiwgQ1NTU3R5bGVTaGVldCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xh
eWVyQmxvY2tSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGU3ZTNmYmQ2ZmJhOWVhMDU5NThkZDg3Y2E3OWJiZjNhYWMxZmQ5Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5j
cHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAq
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0Lmgi
CisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0xheWVyQmxvY2tSdWxlOjpDU1NMYXll
ckJsb2NrUnVsZShTdHlsZVJ1bGVMYXllciYgcnVsZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQor
ICAgIDogQ1NTR3JvdXBpbmdSdWxlKHJ1bGUsIHBhcmVudCkKK3sKKyAgICBBU1NFUlQoIXJ1bGUu
aXNTdGF0ZW1lbnQoKSk7Cit9CisKK1JlZjxDU1NMYXllckJsb2NrUnVsZT4gQ1NTTGF5ZXJCbG9j
a1J1bGU6OmNyZWF0ZShTdHlsZVJ1bGVMYXllciYgcnVsZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0xheWVyQmxvY2tSdWxlKHJ1bGUsIHBh
cmVudCkpOworfQorCitTdHJpbmcgQ1NTTGF5ZXJCbG9ja1J1bGU6OmNzc1RleHQoKSBjb25zdAor
eworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworCisgICAgcmVzdWx0LmFwcGVuZCgiQGxheWVy
ICIpOworICAgIGlmIChhdXRvIG5hbWUgPSB0aGlzLT5uYW1lKCk7ICFuYW1lLmlzRW1wdHkoKSkK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChuYW1lLCAiICIpOworICAgIHJlc3VsdC5hcHBlbmQoIntc
biIpOworICAgIGFwcGVuZENTU1RleHRGb3JJdGVtcyhyZXN1bHQpOworICAgIHJlc3VsdC5hcHBl
bmQoJ30nKTsKKworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKK30KKworU3RyaW5nIENT
U0xheWVyQmxvY2tSdWxlOjpuYW1lKCkgY29uc3QKK3sKKyAgICBhdXRvJiBsYXllciA9IGRvd25j
YXN0PFN0eWxlUnVsZUxheWVyPihncm91cFJ1bGUoKSk7CisKKyAgICBpZiAobGF5ZXIubmFtZSgp
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICByZXR1cm4g
c3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUobGF5ZXIubmFtZSgpKTsKK30KKworU3RyaW5nIHN0
cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKGNvbnN0IENhc2NhZGVMYXllck5hbWUmIG5hbWUpCit7
CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgZm9yIChhdXRvJiBzZWdtZW50IDogbmFt
ZSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKHNlZ21lbnQpOworICAgICAgICBpZiAoJnNlZ21l
bnQgIT0gJm5hbWUubGFzdCgpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicpOworICAg
IH0KKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NTY3OTgxMjVhMjVmYWVkOTdhNTA5ZGRiNGIzMGNjM2FlMTMxZTdjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmgKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NHcm91cGluZ1J1bGUu
aCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDU1NMYXllckJsb2NrUnVsZSBmaW5hbCA6IHB1YmxpYyBDU1NHcm91cGluZ1J1bGUgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8Q1NTTGF5ZXJCbG9ja1J1bGU+IGNyZWF0ZShTdHlsZVJ1bGVM
YXllciYsIENTU1N0eWxlU2hlZXQqIHBhcmVudCk7CisKKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNv
bnN0IGZpbmFsOworICAgIFN0cmluZyBuYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQ1NT
TGF5ZXJCbG9ja1J1bGUoU3R5bGVSdWxlTGF5ZXImLCBDU1NTdHlsZVNoZWV0Kik7CisgICAgQ1NT
UnVsZTo6VHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTEFZRVJfQkxPQ0tfUlVMRTsg
fQorfTsKKworU3RyaW5nIHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKGNvbnN0IENhc2NhZGVM
YXllck5hbWUmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NTU19SVUxFKENTU0xheWVyQmxvY2tSdWxlLCBDU1NSdWxlOjpMQVlFUl9CTE9DS19S
VUxFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTliNzIyMmY5MjAwZjZjM2Y3ZGZkZjA3YzdlMDAzN2RkZGRjN2VlOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAg
ICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD
SCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKK1sKKyAg
ICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgQ1NTTGF5ZXJCbG9ja1J1bGUgOiBDU1NHcm91
cGluZ1J1bGUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBuYW1lOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM3YjQ4MmMyNmZkYmViYzcwMTM0N2Q4NjgzMTdkMzNmM2E3MTA2N2QuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0xheWVyUnVsZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICog
ICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTTGF5ZXJSdWxlLmgiCi0KLSNpbmNs
dWRlICJDU1NTdHlsZVNoZWV0LmgiCi0jaW5jbHVkZSAiU3R5bGVSdWxlLmgiCi0jaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNTU0xh
eWVyUnVsZTo6Q1NTTGF5ZXJSdWxlKFN0eWxlUnVsZUxheWVyJiBydWxlLCBDU1NTdHlsZVNoZWV0
KiBwYXJlbnQpCi0gICAgOiBDU1NHcm91cGluZ1J1bGUocnVsZSwgcGFyZW50KQotewotfQotCi1S
ZWY8Q1NTTGF5ZXJSdWxlPiBDU1NMYXllclJ1bGU6OmNyZWF0ZShTdHlsZVJ1bGVMYXllciYgcnVs
ZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENT
U0xheWVyUnVsZShydWxlLCBwYXJlbnQpKTsKLX0KLQotU3RyaW5nIENTU0xheWVyUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0Ci17Ci0gICAgYXV0byYgbGF5ZXIgPSBkb3duY2FzdDxTdHlsZVJ1bGVMYXll
cj4oZ3JvdXBSdWxlKCkpOwotCi0gICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0KLSAgICBpZiAo
bGF5ZXIuaXNTdGF0ZW1lbnQoKSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKCJAbGF5ZXIgIik7
Ci0gICAgICAgIGZvciAoYXV0byYgbmFtZSA6IGxheWVyLm5hbWVMaXN0KCkpIHsKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUobmFtZSkpOwotICAg
ICAgICAgICAgaWYgKCZuYW1lICE9ICZsYXllci5uYW1lTGlzdCgpLmxhc3QoKSkKLSAgICAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCIsICIpOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5h
cHBlbmQoJzsnKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotICAgIH0KLQot
ICAgIHJlc3VsdC5hcHBlbmQoIkBsYXllciAiKTsKLSAgICBpZiAoYXV0byBuYW1lID0gbGF5ZXJO
YW1lKCkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoKm5hbWUsICIgIik7Ci0gICAgcmVzdWx0LmFw
cGVuZCgie1xuIik7Ci0gICAgYXBwZW5kQ1NTVGV4dEZvckl0ZW1zKHJlc3VsdCk7Ci0gICAgcmVz
dWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLX0KLQotc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IENTU0xheWVyUnVsZTo6bGF5ZXJOYW1lKCkgY29uc3QKLXsKLSAg
ICBhdXRvJiBsYXllciA9IGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPihncm91cFJ1bGUoKSk7Ci0K
LSAgICBpZiAoIWxheWVyLmlzU3RhdGVtZW50KCkgJiYgIWxheWVyLm5hbWUoKS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiBzdHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZShsYXllci5uYW1lKCkp
OwotICAgIAotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0KLVN0cmluZyBDU1NMYXllclJ1
bGU6OnN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKGNvbnN0IENhc2NhZGVMYXllck5hbWUmIG5h
bWUpCi17Ci0gICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0gICAgZm9yIChhdXRvJiBzZWdtZW50
IDogbmFtZSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKHNlZ21lbnQpOwotICAgICAgICBpZiAo
JnNlZ21lbnQgIT0gJm5hbWUubGFzdCgpKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicp
OwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVs
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YjBkMmVkNGNhNmMxNTlhOWFlNWNhMTNhYTgzOTk0MTg4NTQxMjJkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NMYXllclJ1bGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTR3JvdXBpbmdSdWxlLmgiCi0j
aW5jbHVkZSAiU3R5bGVSdWxlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU3R5
bGVSdWxlTGF5ZXI7Ci0KLWNsYXNzIENTU0xheWVyUnVsZSBmaW5hbCA6IHB1YmxpYyBDU1NHcm91
cGluZ1J1bGUgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTTGF5ZXJSdWxlPiBjcmVhdGUo
U3R5bGVSdWxlTGF5ZXImLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpOwotCi0gICAgU3RyaW5nIGNz
c1RleHQoKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbGF5ZXJOYW1l
KCkgY29uc3Q7Ci0KLSAgICBzdGF0aWMgU3RyaW5nIHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1l
KGNvbnN0IENhc2NhZGVMYXllck5hbWUmKTsKLQotcHJpdmF0ZToKLSAgICBDU1NMYXllclJ1bGUo
U3R5bGVSdWxlTGF5ZXImLCBDU1NTdHlsZVNoZWV0Kik7Ci0gICAgQ1NTUnVsZTo6VHlwZSB0eXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gTEFZRVJfUlVMRTsgfQotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19SVUxFKENTU0xheWVyUnVs
ZSwgQ1NTUnVsZTo6TEFZRVJfUlVMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NMYXllclJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkZGRhOWUwMDc1ZDk4Nzg5YmQ0NGUyOGU2NjRj
YzQyYjAwZGJmZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5pZGwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0g
KiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAq
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
Ci0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJm
YWNlIENTU0xheWVyUnVsZSA6IENTU0dyb3VwaW5nUnVsZSB7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWY2YmRjMGY0ZDM1
NDI4NDU0NWFmMTcxMTIzMmQxNDEwYzU3Y2QzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0xheWVyU3RhdGVtZW50
UnVsZS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlN0eWxlUnVs
ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDU1NMYXllclN0YXRlbWVudFJ1bGU6OkNTU0xheWVyU3RhdGVtZW50UnVsZShT
dHlsZVJ1bGVMYXllciYgcnVsZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQorICAgIDogQ1NTUnVs
ZShwYXJlbnQpCisgICAgLCBtX2xheWVyUnVsZShydWxlKQoreworICAgIEFTU0VSVChydWxlLmlz
U3RhdGVtZW50KCkpOworfQorCitSZWY8Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlPiBDU1NMYXllclN0
YXRlbWVudFJ1bGU6OmNyZWF0ZShTdHlsZVJ1bGVMYXllciYgcnVsZSwgQ1NTU3R5bGVTaGVldCog
cGFyZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0xheWVyU3RhdGVtZW50UnVs
ZShydWxlLCBwYXJlbnQpKTsKK30KKworU3RyaW5nIENTU0xheWVyU3RhdGVtZW50UnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisKKyAgICByZXN1bHQu
YXBwZW5kKCJAbGF5ZXIgIik7CisKKyAgICBhdXRvIG5hbWVMaXN0ID0gdGhpcy0+bmFtZUxpc3Qo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiBuYW1lTGlzdCkgeworICAgICAgICByZXN1bHQuYXBw
ZW5kKG5hbWUpOworICAgICAgICBpZiAoJm5hbWUgIT0gJm5hbWVMaXN0Lmxhc3QoKSkKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoIiwgIik7CisgICAgfQorICAgIHJlc3VsdC5hcHBlbmQoJzsn
KTsKKworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKK30KKworVmVjdG9yPFN0cmluZz4g
Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlOjpuYW1lTGlzdCgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFN0
cmluZz4gcmVzdWx0OworCisgICAgZm9yIChhdXRvJiBuYW1lIDogbV9sYXllclJ1bGUuZ2V0KCku
bmFtZUxpc3QoKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmdGcm9tQ2FzY2FkZUxheWVy
TmFtZShuYW1lKSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIENTU0xheWVyU3Rh
dGVtZW50UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKK3sKKyAgICBtX2xheWVy
UnVsZSA9IHN0YXRpY19jYXN0PFN0eWxlUnVsZUxheWVyJj4ocnVsZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVy
U3RhdGVtZW50UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVs
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1Y2RlMDg0MGYxNzA4YjdjMTUwNjgxMzczYjYyZjkyMTA3ZjYxMWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRS
dWxlLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YK
KyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDU1NHcm91cGluZ1J1bGUuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NMYXllclN0YXRlbWVudFJ1bGUgZmluYWwgOiBwdWJs
aWMgQ1NTUnVsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDU1NMYXllclN0YXRlbWVudFJ1
bGU+IGNyZWF0ZShTdHlsZVJ1bGVMYXllciYsIENTU1N0eWxlU2hlZXQqIHBhcmVudCk7CisKKyAg
ICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVM
aXN0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlKFN0eWxl
UnVsZUxheWVyJiwgQ1NTU3R5bGVTaGVldCopOworICAgIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIExBWUVSX1NUQVRFTUVOVF9SVUxFOyB9CisgICAgdm9pZCByZWF0
dGFjaChTdHlsZVJ1bGVCYXNlJikgZmluYWw7CisKKyAgICBSZWY8U3R5bGVSdWxlTGF5ZXI+IG1f
bGF5ZXJSdWxlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0NTU19SVUxFKENTU0xheWVyU3RhdGVtZW50UnVsZSwgQ1NTUnVsZTo6TEFZRVJf
U1RBVEVNRU5UX1JVTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJT
dGF0ZW1lbnRSdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1
bGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFiZjg5Yjc3MThkNzFkMzFhMzM1OWE0ODE3ZDAxMDUyYWU5Nzg4
NTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUK
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIFVTVlN0cmlu
ZyBDU1NPTVN0cmluZzsKKworWworICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBDU1NM
YXllclN0YXRlbWVudFJ1bGUgOiBDU1NSdWxlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJv
emVuQXJyYXk8Q1NTT01TdHJpbmc+IG5hbWVMaXN0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCmluZGV4
IDk3NDRhOGJjOWYyYjVlN2ZmMjk0M2Q2N2M0MTZmMjQ5NDQwNjNiNzQuLjY0YWRhZGE1YTliOGJi
YzBhN2IwZTlhYWU1MTcyY2Y3YTI2MTNiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaApAQCAtNTEsNyAr
NTEsOCBAQCBwdWJsaWM6CiAgICAgICAgIE5BTUVTUEFDRV9SVUxFID0gMTAsCiAgICAgICAgIENP
VU5URVJfU1RZTEVfUlVMRSA9IDExLAogICAgICAgICBTVVBQT1JUU19SVUxFID0gMTIsCi0gICAg
ICAgIExBWUVSX1JVTEUgPSAxNiwKKyAgICAgICAgTEFZRVJfQkxPQ0tfUlVMRSA9IDE2LAorICAg
ICAgICBMQVlFUl9TVEFURU1FTlRfUlVMRSA9IDE3LAogICAgICAgICBGT05UX1BBTEVUVEVfVkFM
VUVTX1JVTEUgPSAxOSwKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDAy
ZWMxZmUxNjcxNDQzNzhlZTAxZTA1YzY0M2FjOGQzNmRiMzIxM2IuLjg4ZjAyY2I4YTdmZmQ2OTQ4
ZGJkYmQzMjE5M2UzY2JhYzkwMTdhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0y
OSw3ICsyOSw4IEBACiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIkNTU0tl
eWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIkNTU0tleWZyYW1lc1J1bGUuaCIKLSNpbmNsdWRlICJD
U1NMYXllclJ1bGUuaCIKKyNpbmNsdWRlICJDU1NMYXllckJsb2NrUnVsZS5oIgorI2luY2x1ZGUg
IkNTU0xheWVyU3RhdGVtZW50UnVsZS5oIgogI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgogI2lu
Y2x1ZGUgIkNTU05hbWVzcGFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYWdlUnVsZS5oIgpAQCAt
OTksNyArMTAwLDggQEAgdm9pZCBTdHlsZVJ1bGVCYXNlOjpkZXN0cm95KCkKICAgICBjYXNlIFN0
eWxlUnVsZVR5cGU6OkNvdW50ZXJTdHlsZToKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PFN0eWxl
UnVsZUNvdW50ZXJTdHlsZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFN0eWxl
UnVsZVR5cGU6OkxheWVyOgorICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jazoKKyAg
ICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyU3RhdGVtZW50OgogICAgICAgICBkZWxldGUgZG93
bmNhc3Q8U3R5bGVSdWxlTGF5ZXI+KHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBT
dHlsZVJ1bGVUeXBlOjpVbmtub3duOgpAQCAtMTI4LDcgKzEzMCw4IEBAIFJlZjxTdHlsZVJ1bGVC
YXNlPiBTdHlsZVJ1bGVCYXNlOjpjb3B5KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFN0eWxlUnVsZUtleWZyYW1lcz4oKnRoaXMpLmNvcHkoKTsKICAgICBjYXNlIFN0eWxlUnVsZVR5
cGU6OkNvdW50ZXJTdHlsZToKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFN0eWxlUnVsZUNvdW50
ZXJTdHlsZT4oKnRoaXMpLmNvcHkoKTsKLSAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyOgor
ICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jazoKKyAgICBjYXNlIFN0eWxlUnVsZVR5
cGU6OkxheWVyU3RhdGVtZW50OgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlTGF5
ZXI+KCp0aGlzKS5jb3B5KCk7CiAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpJbXBvcnQ6CiAgICAg
Y2FzZSBTdHlsZVJ1bGVUeXBlOjpOYW1lc3BhY2U6CkBAIC0xNzcsOCArMTgwLDExIEBAIFJlZjxD
U1NSdWxlPiBTdHlsZVJ1bGVCYXNlOjpjcmVhdGVDU1NPTVdyYXBwZXIoQ1NTU3R5bGVTaGVldCog
cGFyZW50U2hlZXQsIENTU1J1CiAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpDb3VudGVyU3R5bGU6
CiAgICAgICAgIHJ1bGUgPSBDU1NDb3VudGVyU3R5bGVSdWxlOjpjcmVhdGUoZG93bmNhc3Q8U3R5
bGVSdWxlQ291bnRlclN0eWxlPihzZWxmKSwgcGFyZW50U2hlZXQpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyOgotICAgICAgICBydWxlID0gQ1NTTGF5ZXJS
dWxlOjpjcmVhdGUoZG93bmNhc3Q8U3R5bGVSdWxlTGF5ZXI+KHNlbGYpLCBwYXJlbnRTaGVldCk7
CisgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrOgorICAgICAgICBydWxlID0gQ1NT
TGF5ZXJCbG9ja1J1bGU6OmNyZWF0ZShkb3duY2FzdDxTdHlsZVJ1bGVMYXllcj4oc2VsZiksIHBh
cmVudFNoZWV0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXll
clN0YXRlbWVudDoKKyAgICAgICAgcnVsZSA9IENTU0xheWVyU3RhdGVtZW50UnVsZTo6Y3JlYXRl
KGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPihzZWxmKSwgcGFyZW50U2hlZXQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OlVua25vd246CiAgICAgY2FzZSBTdHlsZVJ1
bGVUeXBlOjpDaGFyc2V0OgpAQCAtNDc5LDE5ICs0ODUsMTkgQEAgUmVmPFN0eWxlUnVsZVN1cHBv
cnRzPiBTdHlsZVJ1bGVTdXBwb3J0czo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgY29uZGl0aW9uVGV4
dCwgYm8KIH0KIAogU3R5bGVSdWxlTGF5ZXI6OlN0eWxlUnVsZUxheWVyKFZlY3RvcjxDYXNjYWRl
TGF5ZXJOYW1lPiYmIG5hbWVMaXN0KQotICAgIDogU3R5bGVSdWxlR3JvdXAoU3R5bGVSdWxlVHlw
ZTo6TGF5ZXIsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+IHsgfSkKKyAgICA6IFN0eWxl
UnVsZUdyb3VwKFN0eWxlUnVsZVR5cGU6OkxheWVyU3RhdGVtZW50LCBWZWN0b3I8UmVmUHRyPFN0
eWxlUnVsZUJhc2U+PiB7IH0pCiAgICAgLCBtX25hbWVWYXJpYW50KFdURk1vdmUobmFtZUxpc3Qp
KQogewogfQogCiBTdHlsZVJ1bGVMYXllcjo6U3R5bGVSdWxlTGF5ZXIoQ2FzY2FkZUxheWVyTmFt
ZSYmIG5hbWUsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCi0gICAgOiBT
dHlsZVJ1bGVHcm91cChTdHlsZVJ1bGVUeXBlOjpMYXllciwgV1RGTW92ZShydWxlcykpCisgICAg
OiBTdHlsZVJ1bGVHcm91cChTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrLCBXVEZNb3ZlKHJ1bGVz
KSkKICAgICAsIG1fbmFtZVZhcmlhbnQoV1RGTW92ZShuYW1lKSkKIHsKIH0KIAogU3R5bGVSdWxl
TGF5ZXI6OlN0eWxlUnVsZUxheWVyKENhc2NhZGVMYXllck5hbWUmJiBuYW1lLCBzdGQ6OnVuaXF1
ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+JiYgcnVsZXMpCi0gICAgOiBTdHlsZVJ1
bGVHcm91cChTdHlsZVJ1bGVUeXBlOjpMYXllciwgV1RGTW92ZShydWxlcykpCisgICAgOiBTdHls
ZVJ1bGVHcm91cChTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrLCBXVEZNb3ZlKHJ1bGVzKSkKICAg
ICAsIG1fbmFtZVZhcmlhbnQoV1RGTW92ZShuYW1lKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUu
aAppbmRleCBiNDM5YTBkMmYwYWQyNWYzNzIzZWIwYzZmNGNlZjU0NjJmMjJlYWRlLi40OGRjMTI4
NDA3MjBhMWExNzY5YWM1MTM2MDNhMDcyZDUxOWVhYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5o
CkBAIC02MCwxMCArNjAsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNNZWRpYVJ1bGUoKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6TWVkaWE7IH0KICAgICBib29sIGlz
UGFnZVJ1bGUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6UGFnZTsg
fQogICAgIGJvb2wgaXNTdHlsZVJ1bGUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVS
dWxlVHlwZTo6U3R5bGU7IH0KLSAgICBib29sIGlzR3JvdXBSdWxlKCkgY29uc3QgeyByZXR1cm4g
dHlwZSgpID09IFN0eWxlUnVsZVR5cGU6Ok1lZGlhIHx8IHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBl
OjpTdXBwb3J0cyB8fCB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6TGF5ZXI7IH0KKyAgICBib29s
IGlzR3JvdXBSdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6Ok1l
ZGlhIHx8IHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0cyB8fCB0eXBlKCkgPT0gU3R5
bGVSdWxlVHlwZTo6TGF5ZXJCbG9jazsgfQogICAgIGJvb2wgaXNTdXBwb3J0c1J1bGUoKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHM7IH0KICAgICBib29s
IGlzSW1wb3J0UnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpJ
bXBvcnQ7IH0KLSAgICBib29sIGlzTGF5ZXJSdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09
IFN0eWxlUnVsZVR5cGU6OkxheWVyOyB9CisgICAgYm9vbCBpc0xheWVyUnVsZSgpIGNvbnN0IHsg
cmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrIHx8IHR5cGUoKSA9PSBT
dHlsZVJ1bGVUeXBlOjpMYXllclN0YXRlbWVudDsgfQogCiAgICAgUmVmPFN0eWxlUnVsZUJhc2U+
IGNvcHkoKSBjb25zdDsKIApAQCAtMjk4LDcgKzI5OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFN0eWxlUnVsZUxheWVyPiBjcmVhdGVCbG9jayhDYXNjYWRlTGF5ZXJOYW1lJiYsIHN0ZDo6
dW5pcXVlX3B0cjxEZWZlcnJlZFN0eWxlR3JvdXBSdWxlTGlzdD4mJik7CiAgICAgUmVmPFN0eWxl
UnVsZUxheWVyPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVM
YXllcigqdGhpcykpOyB9CiAKLSAgICBib29sIGlzU3RhdGVtZW50KCkgY29uc3QgeyByZXR1cm4g
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxWZWN0b3I8Q2FzY2FkZUxheWVyTmFtZT4+KG1fbmFtZVZh
cmlhbnQpOyB9CisgICAgYm9vbCBpc1N0YXRlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9
PSBTdHlsZVJ1bGVUeXBlOjpMYXllclN0YXRlbWVudDsgfQogCiAgICAgYXV0byYgbmFtZSgpIGNv
bnN0IHsgcmV0dXJuIHN0ZDo6Z2V0PENhc2NhZGVMYXllck5hbWU+KG1fbmFtZVZhcmlhbnQpOyB9
CiAgICAgYXV0byYgbmFtZUxpc3QoKSBjb25zdCB7IHJldHVybiBzdGQ6OmdldDxWZWN0b3I8Q2Fz
Y2FkZUxheWVyTmFtZT4+KG1fbmFtZVZhcmlhbnQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZVR5
cGUuaAppbmRleCA2MzhmZmJiOWJhNWZjMjQ4MjdiZWM3MGIwN2E4OGU3MDk1ODhkZmYxLi4zNjg0
NjVkNmY0NzRlYjNlNzExMjIyMzc3ZTBiY2ExMzRhMTkzYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVUeXBlLmgKQEAgLTQwLDcgKzQwLDggQEAgZW51bSBjbGFzcyBTdHlsZVJ1bGVUeXBlIDog
dWludDhfdCB7CiAgICAgTmFtZXNwYWNlID0gMTAsCiAgICAgQ291bnRlclN0eWxlID0gMTEsCiAg
ICAgU3VwcG9ydHMgPSAxMiwKLSAgICBMYXllciA9IDE2LAorICAgIExheWVyQmxvY2sgPSAxNiwK
KyAgICBMYXllclN0YXRlbWVudCA9IDE3LAogICAgIEZvbnRQYWxldHRlVmFsdWVzID0gMTksCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmluZGV4IDY1OGU4
NGRiODg5MTE3OGQ1OTRmMzRiZDM5YTZjMzNhZDhjNTkxY2IuLmFjNWQwOTNhZjY0NmZjZWJhYjVl
MzQwYTViNzhkZGQxZGZmNGJkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCkBAIC00NTgsNyArNDU4LDcgQEAgc3RhdGljIGJvb2wgdHJhdmVyc2VSdWxlc0lu
VmVjdG9yKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBydWxlcywgY28KICAg
ICAgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBl
OjpNZWRpYToKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0czoKLSAgICAgICAg
Y2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllcjogeworICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6
OkxheWVyQmxvY2s6IHsKICAgICAgICAgICAgIGF1dG8qIGNoaWxkUnVsZXMgPSBkb3duY2FzdDxT
dHlsZVJ1bGVHcm91cD4oKnJ1bGUpLmNoaWxkUnVsZXNXaXRob3V0RGVmZXJyZWRQYXJzaW5nKCk7
CiAgICAgICAgICAgICBpZiAoY2hpbGRSdWxlcyAmJiB0cmF2ZXJzZVJ1bGVzSW5WZWN0b3IoKmNo
aWxkUnVsZXMsIGhhbmRsZXIpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDc3
LDYgKzQ3Nyw3IEBAIHN0YXRpYyBib29sIHRyYXZlcnNlUnVsZXNJblZlY3Rvcihjb25zdCBWZWN0
b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgcnVsZXMsIGNvCiAgICAgICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6Q2hhcnNldDoKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpDb3VudGVyU3R5
bGU6CiAgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6S2V5ZnJhbWU6CisgICAgICAgIGNhc2Ug
U3R5bGVSdWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgIH0KQEAgLTUxOSw3ICs1MjAsOCBAQCBib29sIFN0eWxlU2hlZXRDb250ZW50czo6
dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBDYWNoZWRSZQog
ICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkNoYXJzZXQ6CiAgICAgICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6S2V5ZnJhbWU6CiAgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHM6
Ci0gICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXI6CisgICAgICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6TGF5ZXJCbG9jazoKKyAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllclN0
YXRlbWVudDoKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpGb250UGFsZXR0ZVZhbHVlczoK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwCmluZGV4IGZkYTFlNGY0OWMzZjE1YTllNDcyMGU5
ZjJkNTAwNWE5NjJlNGMwMmIuLjNjNjA4M2YxOGFlZGYxNGQ1YzZjODY0YTVlMDExNDE5MmU3MjYw
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcApAQCAt
ODExLDcgKzgxMSw3IEBAIFJlZlB0cjxTdHlsZVJ1bGVMYXllcj4gQ1NTUGFyc2VySW1wbDo6Y29u
c3VtZUxheWVyUnVsZShDU1NQYXJzZXJUb2tlblJhbmdlIHByZWx1CiAKICAgICAgICAgaWYgKG1f
b2JzZXJ2ZXJXcmFwcGVyKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBlbmRPZmZzZXQgPSBtX29i
c2VydmVyV3JhcHBlci0+ZW5kT2Zmc2V0KHByZWx1ZGVDb3B5KTsKLSAgICAgICAgICAgIG1fb2Jz
ZXJ2ZXJXcmFwcGVyLT5vYnNlcnZlcigpLnN0YXJ0UnVsZUhlYWRlcihTdHlsZVJ1bGVUeXBlOjpM
YXllciwgbV9vYnNlcnZlcldyYXBwZXItPnN0YXJ0T2Zmc2V0KHByZWx1ZGVDb3B5KSk7CisgICAg
ICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIoKS5zdGFydFJ1bGVIZWFkZXIoU3R5
bGVSdWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQsIG1fb2JzZXJ2ZXJXcmFwcGVyLT5zdGFydE9mZnNl
dChwcmVsdWRlQ29weSkpOwogICAgICAgICAgICAgbV9vYnNlcnZlcldyYXBwZXItPm9ic2VydmVy
KCkuZW5kUnVsZUhlYWRlcihlbmRPZmZzZXQpOwogICAgICAgICAgICAgbV9vYnNlcnZlcldyYXBw
ZXItPm9ic2VydmVyKCkuc3RhcnRSdWxlQm9keShlbmRPZmZzZXQpOwogICAgICAgICAgICAgbV9v
YnNlcnZlcldyYXBwZXItPm9ic2VydmVyKCkuZW5kUnVsZUJvZHkoZW5kT2Zmc2V0KTsKQEAgLTgz
Miw3ICs4MzIsNyBAQCBSZWZQdHI8U3R5bGVSdWxlTGF5ZXI+IENTU1BhcnNlckltcGw6OmNvbnN1
bWVMYXllclJ1bGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSBwcmVsdQogICAgICAgICByZXR1cm4gU3R5
bGVSdWxlTGF5ZXI6OmNyZWF0ZUJsb2NrKFdURk1vdmUoKm5hbWUpLCBtYWtlVW5pcXVlPERlZmVy
cmVkU3R5bGVHcm91cFJ1bGVMaXN0PigqYmxvY2ssICptX2RlZmVycmVkUGFyc2VyKSk7CiAKICAg
ICBpZiAobV9vYnNlcnZlcldyYXBwZXIpIHsKLSAgICAgICAgbV9vYnNlcnZlcldyYXBwZXItPm9i
c2VydmVyKCkuc3RhcnRSdWxlSGVhZGVyKFN0eWxlUnVsZVR5cGU6OkxheWVyLCBtX29ic2VydmVy
V3JhcHBlci0+c3RhcnRPZmZzZXQocHJlbHVkZUNvcHkpKTsKKyAgICAgICAgbV9vYnNlcnZlcldy
YXBwZXItPm9ic2VydmVyKCkuc3RhcnRSdWxlSGVhZGVyKFN0eWxlUnVsZVR5cGU6OkxheWVyQmxv
Y2ssIG1fb2JzZXJ2ZXJXcmFwcGVyLT5zdGFydE9mZnNldChwcmVsdWRlQ29weSkpOwogICAgICAg
ICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIoKS5lbmRSdWxlSGVhZGVyKG1fb2JzZXJ2ZXJX
cmFwcGVyLT5lbmRPZmZzZXQocHJlbHVkZUNvcHkpKTsKICAgICAgICAgbV9vYnNlcnZlcldyYXBw
ZXItPm9ic2VydmVyKCkuc3RhcnRSdWxlQm9keShtX29ic2VydmVyV3JhcHBlci0+cHJldmlvdXNU
b2tlblN0YXJ0T2Zmc2V0KCpibG9jaykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCAxZTgzMjU5ZTNkY2Q4MGE3Y2Vj
M2UxNTg3MGE3MGY5MDI3MDVjYjgyLi43ODgyYTA1NzVlNWFmZjIxN2E4YmRmMzgyYWU1MmIyODM3
ZWFmMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCkBAIC0yOCw3ICsyOCw4IEBACiAKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgi
CiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVzUnVsZS5oIgotI2luY2x1ZGUgIkNTU0xheWVyUnVsZS5o
IgorI2luY2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyT2JzZXJ2ZXIuaCIKQEAgLTEwNyw3ICsxMDgsNyBA
QCBzdGF0aWMgdm9pZCBmbGF0dGVuU291cmNlRGF0YShSdWxlU291cmNlRGF0YUxpc3QmIGRhdGFM
aXN0LCBSdWxlU291cmNlRGF0YUxpc3QmCiAgICAgZm9yIChhdXRvJiBkYXRhIDogZGF0YUxpc3Qp
IHsKICAgICAgICAgaWYgKGRhdGEtPnR5cGUgPT0gV2ViQ29yZTo6U3R5bGVSdWxlVHlwZTo6U3R5
bGUpCiAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGRhdGEuY29weVJlZigpKTsKLSAgICAgICAg
ZWxzZSBpZiAoZGF0YS0+dHlwZSA9PSBXZWJDb3JlOjpTdHlsZVJ1bGVUeXBlOjpNZWRpYSB8fCBk
YXRhLT50eXBlID09IFdlYkNvcmU6OlN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzIHx8IGRhdGEtPnR5
cGUgPT0gV2ViQ29yZTo6U3R5bGVSdWxlVHlwZTo6TGF5ZXIpCisgICAgICAgIGVsc2UgaWYgKGRh
dGEtPnR5cGUgPT0gV2ViQ29yZTo6U3R5bGVSdWxlVHlwZTo6TWVkaWEgfHwgZGF0YS0+dHlwZSA9
PSBXZWJDb3JlOjpTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0cyB8fCBkYXRhLT50eXBlID09IFdlYkNv
cmU6OlN0eWxlUnVsZVR5cGU6OkxheWVyQmxvY2spCiAgICAgICAgICAgICBmbGF0dGVuU291cmNl
RGF0YShkYXRhLT5jaGlsZFJ1bGVzLCB0YXJnZXQpOwogICAgIH0KIH0KQEAgLTQyNiw4ICs0Mjcs
OCBAQCBzdGF0aWMgUmVmUHRyPENTU1J1bGVMaXN0PiBhc0NTU1J1bGVMaXN0KENTU1J1bGUqIHJ1
bGUpCiAgICAgaWYgKGlzPENTU1N1cHBvcnRzUnVsZT4oKnJ1bGUpKQogICAgICAgICByZXR1cm4g
JmRvd25jYXN0PENTU1N1cHBvcnRzUnVsZT4oKnJ1bGUpLmNzc1J1bGVzKCk7CiAKLSAgICBpZiAo
aXM8Q1NTTGF5ZXJSdWxlPigqcnVsZSkpCi0gICAgICAgIHJldHVybiAmZG93bmNhc3Q8Q1NTTGF5
ZXJSdWxlPigqcnVsZSkuY3NzUnVsZXMoKTsKKyAgICBpZiAoaXM8Q1NTTGF5ZXJCbG9ja1J1bGU+
KCpydWxlKSkKKyAgICAgICAgcmV0dXJuICZkb3duY2FzdDxDU1NMYXllckJsb2NrUnVsZT4oKnJ1
bGUpLmNzc1J1bGVzKCk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTQ1MCwxMSArNDUx
LDEyIEBAIHN0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6Q1NTOjpHcm91cGluZz4+
IGJ1aWxkQXJyYXlGb3JHcm91cGluZ3MoQ1NTUnVsCiAgICAgICAgICAgICAgICAgcnVsZUdyb3Vw
aW5nUGF5bG9hZHMuYXBwZW5kKFdURk1vdmUobWVkaWFSdWxlUGF5bG9hZCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UgaWYgKGlzPENTU0ltcG9ydFJ1bGU+KHBhcmVudFJ1bGUpKSB7
Ci0gICAgICAgICAgICBpZiAoYXV0byYgbGF5ZXJOYW1lID0gZG93bmNhc3Q8Q1NTSW1wb3J0UnVs
ZT4ocGFyZW50UnVsZSktPmNhc2NhZGVMYXllck5hbWUoKSkgeworICAgICAgICAgICAgYXV0byBs
YXllck5hbWUgPSBkb3duY2FzdDxDU1NJbXBvcnRSdWxlPihwYXJlbnRSdWxlKS0+bGF5ZXJOYW1l
KCk7CisgICAgICAgICAgICBpZiAoIWxheWVyTmFtZS5pc051bGwoKSkgewogICAgICAgICAgICAg
ICAgIGF1dG8gbGF5ZXJSdWxlUGF5bG9hZCA9IFByb3RvY29sOjpDU1M6Okdyb3VwaW5nOjpjcmVh
dGUoKQogICAgICAgICAgICAgICAgICAgICAuc2V0VHlwZShQcm90b2NvbDo6Q1NTOjpHcm91cGlu
Zzo6VHlwZTo6TGF5ZXJJbXBvcnRSdWxlKQogICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgp
OwotICAgICAgICAgICAgICAgIGxheWVyUnVsZVBheWxvYWQtPnNldFRleHQoQ1NTTGF5ZXJSdWxl
OjpzdHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZSgqbGF5ZXJOYW1lKSk7CisgICAgICAgICAgICAg
ICAgbGF5ZXJSdWxlUGF5bG9hZC0+c2V0VGV4dChsYXllck5hbWUpOwogICAgICAgICAgICAgICAg
IHJ1bGVHcm91cGluZ1BheWxvYWRzLmFwcGVuZChXVEZNb3ZlKGxheWVyUnVsZVBheWxvYWQpKTsK
ICAgICAgICAgICAgIH0KIApAQCAtNDcyLDEyICs0NzQsMTEgQEAgc3RhdGljIFJlZjxKU09OOjpB
cnJheU9mPFByb3RvY29sOjpDU1M6Okdyb3VwaW5nPj4gYnVpbGRBcnJheUZvckdyb3VwaW5ncyhD
U1NSdWwKICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwogICAgICAgICAgICAgc3VwcG9ydHNS
dWxlUGF5bG9hZC0+c2V0VGV4dChkb3duY2FzdDxDU1NTdXBwb3J0c1J1bGU+KHBhcmVudFJ1bGUp
LT5jb25kaXRpb25UZXh0KCkpOwogICAgICAgICAgICAgcnVsZUdyb3VwaW5nUGF5bG9hZHMuYXBw
ZW5kKFdURk1vdmUoc3VwcG9ydHNSdWxlUGF5bG9hZCkpOwotICAgICAgICB9IGVsc2UgaWYgKGlz
PENTU0xheWVyUnVsZT4ocGFyZW50UnVsZSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChpczxDU1NM
YXllckJsb2NrUnVsZT4ocGFyZW50UnVsZSkpIHsKICAgICAgICAgICAgIGF1dG8gbGF5ZXJSdWxl
UGF5bG9hZCA9IFByb3RvY29sOjpDU1M6Okdyb3VwaW5nOjpjcmVhdGUoKQogICAgICAgICAgICAg
ICAgIC5zZXRUeXBlKFByb3RvY29sOjpDU1M6Okdyb3VwaW5nOjpUeXBlOjpMYXllclJ1bGUpCiAg
ICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGxheWVyTmFt
ZSA9IGRvd25jYXN0PENTU0xheWVyUnVsZT4ocGFyZW50UnVsZSktPmxheWVyTmFtZSgpKQotICAg
ICAgICAgICAgICAgIGxheWVyUnVsZVBheWxvYWQtPnNldFRleHQoKmxheWVyTmFtZSk7CisgICAg
ICAgICAgICBsYXllclJ1bGVQYXlsb2FkLT5zZXRUZXh0KGRvd25jYXN0PENTU0xheWVyQmxvY2tS
dWxlPihwYXJlbnRSdWxlKS0+bmFtZSgpKTsKICAgICAgICAgICAgIHJ1bGVHcm91cGluZ1BheWxv
YWRzLmFwcGVuZChXVEZNb3ZlKGxheWVyUnVsZVBheWxvYWQpKTsKICAgICAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwCmluZGV4IGU1
NDA3MzI5N2UyOWE4YmQ0YWEzYWVkNGNhM2I5YTA4ZjBmZTlhOWMuLmVkZjgxMTRhZGZjY2YyN2Zh
YmJhZGNmN2Y4MmFkYTYwOGMyNWJhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lu
c3BlY3RvckNTU09NV3JhcHBlcnMuY3BwCkBAIC0zMCw3ICszMCw4IEBACiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ1NTT01XcmFwcGVycy5oIgogCiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgotI2lu
Y2x1ZGUgIkNTU0xheWVyUnVsZS5oIgorI2luY2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxl
LmgiCiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgpAQCAt
NjIsOCArNjMsOCBAQCB2b2lkIEluc3BlY3RvckNTU09NV3JhcHBlcnM6OmNvbGxlY3QoTGlzdFR5
cGUqIGxpc3RUeXBlKQogICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgogICAgICAg
ICAgICAgY29sbGVjdChkb3duY2FzdDxDU1NJbXBvcnRSdWxlPigqY3NzUnVsZSkuc3R5bGVTaGVl
dCgpKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1J1bGU6OkxBWUVSX1JV
TEU6Ci0gICAgICAgICAgICBjb2xsZWN0KGRvd25jYXN0PENTU0xheWVyUnVsZT4oY3NzUnVsZSkp
OworICAgICAgICBjYXNlIENTU1J1bGU6OkxBWUVSX0JMT0NLX1JVTEU6CisgICAgICAgICAgICBj
b2xsZWN0KGRvd25jYXN0PENTU0xheWVyQmxvY2tSdWxlPihjc3NSdWxlKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9SVUxFOgogICAgICAgICAgICAg
Y29sbGVjdChkb3duY2FzdDxDU1NNZWRpYVJ1bGU+KGNzc1J1bGUpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDk5OGZiZmQ0OTA3N2Q0NTdhOWYyN2U1ZDgwMmMwOGIwYTdhZDAw
NzMuLmY3NDFhZGUwZGJjOTUyMWNjMTYxY2VlMDEyNTE5MDIxMzZmOWEzNzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEyLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5ZXJz
XSBVcGRhdGUgQ1NTT00gdG8gdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5NTg2
OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvbGF5ZXItcnVs
ZXMtY3Nzb20tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIENhc2NhZGUgTGF5ZXJzXSBpbXBvcnQgc29t
ZSBuZXcgV1BUcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCAwNGQzYTkxN2RmYTllZjY5MzEyNjJhMjkzMGRk
ZmE0MTJlZWNjYjhiLi43MTJmOTk5NTYzNzcxZWI5MzRkYjUyOTY5ZjMxYzM0MzNjOGE2Mzk5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY2FzY2FkZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9pZGxoYXJuZXNz
LWV4cGVjdGVkLnR4dApAQCAtNCwyNiArNCwyNiBAQCBQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24K
IFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgQ1NTSW1wb3J0UnVsZTogb3JpZ2luYWwgaW50ZXJmYWNl
IGRlZmluZWQKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgQ1NTSW1wb3J0UnVsZTogdmFsaWQgZXhw
b3N1cmUgc2V0CiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4
cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXll
ckJsb2NrUnVsZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0
ZWQgcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxv
Y2tSdWxlIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJv
cGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9j
a1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5
ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBA
QHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAi
Q1NTTGF5ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNT
U0xheWVyQmxvY2tSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIG11c3QgYmUg
cHJpbWFyeSBpbnRlcmZhY2Ugb2YgYmxvY2sgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3Bl
cnR5ICJDU1NMYXllckJsb2NrUnVsZSIgbWlzc2luZwotRkFJTCBTdHJpbmdpZmljYXRpb24gb2Yg
YmxvY2sgYXNzZXJ0X2NsYXNzX3N0cmluZzogY2xhc3Mgc3RyaW5nIG9mIGJsb2NrIGV4cGVjdGVk
ICJbb2JqZWN0IENTU0xheWVyQmxvY2tSdWxlXSIgYnV0IGdvdCAiW29iamVjdCBDU1NSdWxlXSIK
LUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBibG9jayBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVy
dHkgIm5hbWUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJT
dGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NMYXllclN0YXRlbWVudFJ1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxl
IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3Bl
cnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNT
U0xheWVyU3RhdGVtZW50UnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIgZXhw
ZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIgbWlzc2luZwotRkFJTCBDU1NM
YXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU0xheWVy
U3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIg
bWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bmFtZUxpc3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJT
dGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIHN0YXRlbWVudCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIGV4cGVj
dGVkIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIG1pc3NpbmcKLUZBSUwgU3RyaW5n
aWZpY2F0aW9uIG9mIHN0YXRlbWVudCBhc3NlcnRfY2xhc3Nfc3RyaW5nOiBjbGFzcyBzdHJpbmcg
b2Ygc3RhdGVtZW50IGV4cGVjdGVkICJbb2JqZWN0IENTU0xheWVyU3RhdGVtZW50UnVsZV0iIGJ1
dCBnb3QgIltvYmplY3QgQ1NTUnVsZV0iCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRl
cmZhY2U6IHN0YXRlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hbWVMaXN0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYW1lTGlzdCIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBDU1NJbXBvcnRSdWxlIGludGVyZmFjZTogYXR0
cmlidXRlIGxheWVyTmFtZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBo
YXZlIGEgcHJvcGVydHkgImxheWVyTmFtZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
Q1NTSW1wb3J0UnVsZSBpbnRlcmZhY2U6IGxheWVyZWRJbXBvcnQgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJsYXllck5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgImxheWVyTmFtZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBDU1NM
YXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CitQQVNTIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoCitQQVNTIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBD
U1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIENTU0xheWVyQmxvY2tSdWxlIGludGVy
ZmFjZTogYXR0cmlidXRlIG5hbWUKK1BBU1MgQ1NTTGF5ZXJCbG9ja1J1bGUgbXVzdCBiZSBwcmlt
YXJ5IGludGVyZmFjZSBvZiBibG9jaworUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgYmxvY2sKK1BB
U1MgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBibG9jayBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVs
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorUEFT
UyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIENTU0xh
eWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVs
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlIGludGVyZmFjZTogYXR0cmlidXRlIG5hbWVMaXN0CitQQVNTIENTU0xheWVyU3RhdGVt
ZW50UnVsZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHN0YXRlbWVudAorUEFTUyBTdHJp
bmdpZmljYXRpb24gb2Ygc3RhdGVtZW50CitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRl
cmZhY2U6IHN0YXRlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hbWVMaXN0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZQorUEFTUyBDU1NJbXBvcnRSdWxlIGludGVyZmFjZTogYXR0cmlidXRlIGxh
eWVyTmFtZQorUEFTUyBDU1NJbXBvcnRSdWxlIGludGVyZmFjZTogbGF5ZXJlZEltcG9ydCBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImxheWVyTmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNhc2NhZGUvbGF5ZXItcnVsZXMtY3Nzb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvbGF5ZXItcnVs
ZXMtY3Nzb20tZXhwZWN0ZWQudHh0CmluZGV4IDBhOWNmMjUyMTg5YTY5MTI5ODcxN2IxZWNlY2Ri
OWM1ODQyNzYyOWEuLjk5YThlYjA1NTU2NDg1MmNmZWQ1NzFmODEwMDI5ZjkzYjUyNWYzZjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL2xheWVyLXJ1bGVzLWNzc29tLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9sYXll
ci1ydWxlcy1jc3NvbS1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKIAotRkFJTCBCYXNp
YyBsYXllciBibG9jayBuYW1lIGFzc2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgQW5v
bnltb3VzIGxheWVyIGJsb2NrIG5hbWUgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5lZAotRkFJ
TCBCYXNpYyBsYXllciBzdGF0ZW1lbnQgbmFtZSBhc3NlcnRfaW1wbGVtZW50czogdW5kZWZpbmVk
Ci1GQUlMIExheWVyIHN0YXRlbWVudCB3aXRoIG11bHRpcGxlIG5hbWVzIGFzc2VydF9pbXBsZW1l
bnRzOiB1bmRlZmluZWQKLUZBSUwgTmVzdGVkIGxheWVyIGJsb2NrIG5hbWVzIGFzc2VydF9pbXBs
ZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgTmVzdGVkIGxheWVyIHN0YXRlbWVudCBuYW1lIGxpc3Rz
IGFzc2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgSW1wb3J0IGludG8gYW5vbnltb3Vz
IGxheWVyIGFzc2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgSW1wb3J0IGludG8gbmFt
ZWQgbGF5ZXIgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5lZAotRkFJTCBJbXBvcnQgd2l0aG91
dCBsYXllciBhc3NlcnRfaW1wbGVtZW50czogdW5kZWZpbmVkCitQQVNTIEJhc2ljIGxheWVyIGJs
b2NrIG5hbWUKK1BBU1MgQW5vbnltb3VzIGxheWVyIGJsb2NrIG5hbWUKK1BBU1MgQmFzaWMgbGF5
ZXIgc3RhdGVtZW50IG5hbWUKK1BBU1MgTGF5ZXIgc3RhdGVtZW50IHdpdGggbXVsdGlwbGUgbmFt
ZXMKK1BBU1MgTmVzdGVkIGxheWVyIGJsb2NrIG5hbWVzCitQQVNTIE5lc3RlZCBsYXllciBzdGF0
ZW1lbnQgbmFtZSBsaXN0cworUEFTUyBJbXBvcnQgaW50byBhbm9ueW1vdXMgbGF5ZXIKK1BBU1Mg
SW1wb3J0IGludG8gbmFtZWQgbGF5ZXIKK1BBU1MgSW1wb3J0IHdpdGhvdXQgbGF5ZXIKIAo=
</data>
<flag name="commit-queue"
          id="471746"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446353</attachid>
            <date>2021-12-08 06:09:32 -0800</date>
            <delta_ts>2021-12-08 06:39:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231340-20211208160930.patch</filename>
            <type>text/plain</type>
            <size>66160</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uNDQ0YzEwNzQ3Yjc4ZWVkNjhkYjA1ODZjZjFhZDVh
ZmMyNjBjM2YwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTEyLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBVcGRhdGUgQ1NTT00gdG8gdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5
NTg2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIENTU0xheWVyQmxvY2tSdWxlIGFuZCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNl
cy4KKyAgICAgICAgQWxzbyBhZGQgc3VwcG9ydCBmb3IgbGF5ZXJOYW1lIHByb3BlcnR5IG9mIENT
U0ltcG9ydFJ1bGUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTQ1NTUnVsZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVk
KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZStMYXllci5pZGw6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsLgorICAgICAgICAqIGNzcy9DU1NJbXBv
cnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmxheWVyTmFtZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjYXNjYWRlTGF5ZXJOYW1l
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5oOgorICAgICAg
ICAqIGNzcy9DU1NMYXllckJsb2NrUnVsZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTGF5ZXJSdWxlLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tS
dWxlOjpDU1NMYXllckJsb2NrUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMYXllckJsb2Nr
UnVsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tSdWxlOjpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxvY2tSdWxlOjpuYW1lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKToKKyAg
ICAgICAgKiBjc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvY3NzL0NTU0xheWVyUnVsZS5oLgorICAgICAgICAqIGNzcy9DU1NMYXllckJsb2NrUnVsZS5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsLgorICAg
ICAgICAqIGNzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmguCisgICAgICAgIChXZWJDb3JlOjpDU1NMYXllclN0
YXRlbWVudFJ1bGU6OkNTU0xheWVyU3RhdGVtZW50UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NMYXllclN0YXRlbWVudFJ1bGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMYXll
clN0YXRlbWVudFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGF5
ZXJTdGF0ZW1lbnRSdWxlOjpuYW1lTGlzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NM
YXllclN0YXRlbWVudFJ1bGU6OnJlYXR0YWNoKToKKyAgICAgICAgKiBjc3MvQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxl
LmguCisgICAgICAgICogY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGw6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbC4KKyAgICAgICAgKiBjc3MvQ1NT
UnVsZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSdWxlQmFzZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVCYXNl
Ojpjb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUJhc2U6OmNyZWF0ZUNT
U09NV3JhcHBlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVMYXllcjo6U3R5
bGVSdWxlTGF5ZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUnVsZUJhc2U6OmlzR3JvdXBSdWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUnVsZUJhc2U6OmlzTGF5ZXJSdWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVS
dWxlVHlwZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dHJhdmVyc2VSdWxlc0luVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlU2hlZXRDb250ZW50czo6dHJhdmVyc2VTdWJyZXNvdXJjZXMgY29uc3QpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXJJbXBsOjpjb25zdW1lTGF5ZXJSdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChmbGF0dGVuU291cmNlRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjphc0NTU1J1bGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQXJyYXlGb3JH
cm91cGluZ3MpOgorICAgICAgICAqIHN0eWxlL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Okluc3BlY3RvckNTU09NV3JhcHBlcnM6OmNvbGxlY3Qp
OgorCiAyMDIxLTEyLTA4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjg2NTU2KTogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5oIGlzIG9ubHkgYXZhaWxhYmxlIGluIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBk
NDQ5ZGU4YjAwYWI1NDdlNjhjODU4ZWZlZGNiYTUzMGE5NWEwZTFmLi5hZDVlODk3NmZhY2QzYTk3
MGU1MjdmMWI4NDFmNWEzZTEzNzhlODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzUwLDcg
Kzc1MCw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU0ltcG9y
dFJ1bGUuaWRsCiAgICAgY3NzL0NTU0tleWZyYW1lUnVsZS5pZGwKICAgICBjc3MvQ1NTS2V5ZnJh
bWVzUnVsZS5pZGwKLSAgICBjc3MvQ1NTTGF5ZXJSdWxlLmlkbAorICAgIGNzcy9DU1NMYXllckJs
b2NrUnVsZS5pZGwKKyAgICBjc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbAogICAgIGNzcy9D
U1NNZWRpYVJ1bGUuaWRsCiAgICAgY3NzL0NTU05hbWVzcGFjZVJ1bGUuaWRsCiAgICAgY3NzL0NT
U1BhaW50Q2FsbGJhY2suaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCBlY2Q3YWU1OGQ3MTAxYTM4NjU2M2NlMmZjMjM5NWRhNjRlNzEz
YzUyLi5lMmE3YWY3MWZkNmU0M2MwYjMwMGRlOTkxOGY5YjQ1ODVmNmM2ZDgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTg3OCwxMCAr
ODc4LDEyIEBAICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NDb3VudGVyU3R5bGVSdWxlLmlkbAogJChQ
Uk9KRUNUX0RJUikvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9D
U1NGb250UGFsZXR0ZVZhbHVlc1J1bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTR3JvdXBp
bmdSdWxlLmlkbAorJChQUk9KRUNUX0RJUikvY3NzL0NTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsCiAk
KFBST0pFQ1RfRElSKS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9D
U1NLZXlmcmFtZVJ1bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5p
ZGwKLSQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NMYXllclJ1bGUuaWRsCiskKFBST0pFQ1RfRElSKS9j
c3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsCiskKFBST0pFQ1RfRElSKS9jc3MvQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmlkbAogJChQUk9KRUNUX0RJUikvY3NzL0NTU01lZGlhUnVsZS5pZGwKICQoUFJP
SkVDVF9ESVIpL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmlkbAogJChQUk9KRUNUX0RJUikvY3NzL0NT
U1BhZ2VSdWxlLmlkbApAQCAtMTMyNSw4ICsxMzI3LDggQEAgJChQUk9KRUNUX0RJUikvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
cGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5pbgogJChQUk9KRUNUX0RJUikvaHRtbC9wYXJzZXIvY3Jl
YXRlLWh0bWwtZW50aXR5LXRhYmxlCiAkKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9pbWFnZU92
ZXJsYXkuY3NzCi0kKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9tZXRlckVsZW1lbnRTaGFkb3cu
Y3NzCiAkKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9tYWMvaW1hZ2VDb250cm9sc01hYy5jc3MK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvc2hhZG93L21ldGVyRWxlbWVudFNoYWRvdy5jc3MKICQoUFJP
SkVDVF9ESVIpL2h0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
dHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL3RyYWNrL0RhdGFD
dWUuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDk5NmNiZGUyMTE2ZWVlMjI4ODQ4NDhlMTRlMWU1ODE2YTgxN2RmM2MuLjM1N2Mx
ZGVkNjRhZTA4NWUzZjA5MmI5YTE5MTEzMmNkMjhmMzZiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yOTYsNiArMjk2LDggQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250UGFs
ZXR0ZVZhbHVlc1J1bGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0NTU0ZvbnRQYWxldHRlVmFsdWVzUnVsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0dyb3VwaW5nUnVsZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTR3JvdXBpbmdSdWxlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTSW1wb3J0
UnVsZStMYXllci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ1NTSW1wb3J0UnVsZStMYXllci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ltcG9ydFJ1bGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ltcG9ydFJ1bGUuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NLZXlmcmFtZVJ1bGUuY3BwCkBA
IC0zMDQsOCArMzA2LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTS2V5ZnJhbWVzUnVsZS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0tleXdvcmRWYWx1ZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTS2V5d29yZFZhbHVl
LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTGF5
ZXJSdWxlLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNDU1NMYXllclJ1bGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDU1NMYXllckJsb2NrUnVsZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTGF5ZXJCbG9ja1J1bGUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NMYXllclN0YXRlbWVudFJ1bGUuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0xheWVy
U3RhdGVtZW50UnVsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0NTU01hdGhJbnZlcnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NTU01hdGhJbnZlcnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NNYXRoTWF4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggMzNiZDZlMDBkYzhiNjJmMWRhMWMwYzk1MGNiOTI4YjI4N2E2ZmYxZC4u
YjU1NDRjMjhhOWFhY2ZhOWYzYWM5ZmU0OTNiMTQyZjEzOGYyNDQwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC03NTgsNyArNzU4LDkgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250UGFsZXR0ZVZhbHVlc1J1bGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2Nzcy9DU1NHcm91cGluZ1J1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9D
U1NJbXBvcnRSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbCBc
CisgICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVsZStMYXllci5pZGwgXAorICAgICQoV2Vi
Q29yZSkvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvQ1NT
TGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJhbWVS
dWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBkZTkz
NDNhNDdkOWM1M2M5ODIxZDkxZjIyYzFiYzNjMTk5ZWI5NWVkLi45MmUwZjRiMGM4NTZlNjg3Nzg2
ZmFmZDRiMjNlYWE2YjlmNTUzMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNzMzLDcgKzczMyw4IEBA
IGNzcy9DU1NJbWFnZVZhbHVlLmNwcAogY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCiBjc3MvQ1NTS2V5
ZnJhbWVSdWxlLmNwcAogY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCi1jc3MvQ1NTTGF5ZXJSdWxl
LmNwcAorY3NzL0NTU0xheWVyQmxvY2tSdWxlLmNwcAorY3NzL0NTU0xheWVyU3RhdGVtZW50UnVs
ZS5jcHAKIGNzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAogY3NzL0NTU01hcmt1cC5jcHAK
IGNzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC0yOTI1LDcgKzI5MjYsOCBAQCBKU0NTU0dyb3VwaW5n
UnVsZS5jcHAKIEpTQ1NTSW1wb3J0UnVsZS5jcHAKIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcAogSlND
U1NLZXlmcmFtZXNSdWxlLmNwcAotSlNDU1NMYXllclJ1bGUuY3BwCitKU0NTU0xheWVyQmxvY2tS
dWxlLmNwcAorSlNDU1NMYXllclN0YXRlbWVudFJ1bGUuY3BwCiBKU0NTU01lZGlhUnVsZS5jcHAK
IEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAKIEpTQ1NTUGFnZVJ1bGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2ZkZjIxZjNm
NjIyYmU5MmYzYjUwMzE3ZmVjOGYzMTAyOTRjMzY1My4uOTg0MjVhNDUxMjIzOTViZjMxODQ1Yjcy
NDFkNzRmZTViNWU3ZDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTM4Nyw2ICs1Mzg3LDggQEAKIAkJRTRGMzhEMUIyNjI2
RjEzQjAwN0IxMDY0IC8qIERlZmF1bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGMzhEMTkyNjI2RjEzQjAwN0Ix
MDY0IC8qIERlZmF1bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovOyB9OwogCQlFNEY4MTlDNjI2
RkI0RUJGMDA5NEUxNjIgLyogSW5saW5lQm94UGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGODE5QzUyNkZCNEVCRjAwOTRFMTYyIC8qIElu
bGluZUJveFBhaW50ZXIuaCAqLzsgfTsKIAkJRTRGOUVFRjMxNTZEQTAwNzAwRDIzRTdFIC8qIFN0
eWxlU2hlZXRDb250ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0RkZD
RUJCMjc2MEFDMDEwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RkZDRUI4Mjc2MEFDMDAwMEE2
OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuaCAqLzsgfTsKKwkJRTRGRkNFQkUyNzYwQUMx
NjAwQTY4QjAzIC8qIENTU0xheWVyQmxvY2tSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDMwQzFCNzI3MDMwOTQxMDAzQjU1M0YgLyogQ1NTTGF5
ZXJCbG9ja1J1bGUuaCAqLzsgfTsKIAkJRTUwNjIwODQyNTQwOTE5QzAwQzQzMDkxIC8qIENvbnRh
Y3RzUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU1MDYyMDgzMjU0MDkxOUIwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUxMTk0
QkYyNzBFN0U0QTAwNjRGQ0JBIC8qIFNoYWRvd1BzZXVkb0lkcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxMTk0QkQyNzBFN0U0QTAwNjRGQ0JBIC8q
IFNoYWRvd1BzZXVkb0lkcy5oICovOyB9OwogCQlFNTE2Njk5MTIwRkY5OTE4MDA5RDJDMjcgLyog
TGlzdEJ1dHRvbkFycm93QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJv
d0AyeC5wbmcgKi87IH07CkBAIC0xNzIyNCw2ICsxNzIyNiw3IEBACiAJCUU0MDNCNzlGMjUxQjEx
OEIwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDAzQjdBMTI1MUIxMTkzMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25D
b3ZlcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3Jh
dGlvbkNvdmVyYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5
ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ29sb3JEYXRhLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Q29sb3JEYXRhLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTQx
MTRCMjUyNzYwREMzNjAwN0I3ODlCIC8qIENTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJD
U1NJbXBvcnRSdWxlK0xheWVyLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MTVFQjExMjcwQzM1MTIwMEU4REExQiAvKiBJbmxpbmVJdGVyYXRvcklubGluZUJveC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVJdGVyYXRvcklubGluZUJveC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1RUIxNDI3MEMzNTM3MDBFOERBMUIgLyog
SW5saW5lSXRlcmF0b3JJbmxpbmVCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSXRl
cmF0b3JJbmxpbmVCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE4MDI1
MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEludGVncmF0aW9uQm94VHJlZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyNDEsOSArMTcyNDQsOSBAQAogCQlFNDI5NUZB
MzEyQjA2MTRFMDBEMUFDRTAgLyogUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTc2RDkxQzdBRjc2QzAwRTM2MTREIC8qIFN0eWxlVXBkYXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlVXBkYXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTc2REIxQzdBRjc3NjAwRTM2MTRE
IC8qIFN0eWxlVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxl
VXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0MzBDMUI3MjcwMzA5NDEw
MDNCNTUzRiAvKiBDU1NMYXllclJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTTGF5ZXJSdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0MzBDMUI5MjcwMzA5NEUwMDNCNTUzRiAv
KiBDU1NMYXllclJ1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU0xheWVyUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU0MzBDMUJBMjcwMzBCODYwMDNCNTUzRiAvKiBDU1NMYXllclJ1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTTGF5ZXJSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTQzMEMxQjcyNzAzMDk0MTAwM0I1NTNGIC8qIENTU0xheWVyQmxvY2tS
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0xheWVyQmxvY2tSdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU0MzBDMUI5MjcwMzA5NEUwMDNCNTUzRiAvKiBDU1NMYXllckJsb2Nr
UnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFNDMwQzFCQTI3MDMwQjg2MDAzQjU1M0YgLyogQ1NTTGF5ZXJCbG9ja1J1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTTGF5ZXJCbG9ja1J1bGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDMxMDVCNzE2NzUwRjBDMDBEQjJGQjggLyogTm9kZVRyYXZl
cnNhbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlVHJhdmVy
c2FsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQzMTA1QkExNjc1MEYxNjAw
REIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTm9kZVRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDMxMkFC
NTI0QjMyNjU2MDA2NzgzNDkgLyogTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQ2MCw2ICsxNzQ2Myw5
IEBACiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIz
RTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTRGQjRCMzUyMzlCRUIxMDAwM0MzMzZBIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNEZGQ0VCODI3NjBBQzAwMDBBNjhC
MDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0xheWVyU3RhdGVtZW50UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNEZGQ0VCOTI3NjBBQzAwMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0xheWVyU3RhdGVtZW50
UnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0RkZDRUJBMjc2MEFDMDEw
MEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENTU0xheWVyU3RhdGVtZW50UnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU1MDYyMDgzMjU0MDkxOUIwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbnRhY3RzUmVxdWVzdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTUxMTk0QkQyNzBFN0U0QTAwNjRGQ0JBIC8qIFNoYWRvd1BzZXVkb0lkcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFkb3dQc2V1ZG9JZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTUxMTk0QkUyNzBFN0U0QTAwNjRGQ0JBIC8qIFNoYWRvd1BzZXVkb0lkcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFkb3dQc2V1ZG9JZHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMzEzODksNiArMzEzOTUsNyBAQAogCQkJCTkzOTNFNUZFMTUxQTk5RjIwMDA2
NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi8sCiAJCQkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwICovLAogCQkJCUE4MEU2Q0QwMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbWFnZVZhbHVlLmggKi8sCisJCQkJRTQxMTRCMjUyNzYwREMzNjAwN0I3ODlCIC8q
IENTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsICovLAogCQkJCUE4MEU2Q0MxMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbXBvcnRSdWxlLmNwcCAqLywKIAkJCQlBODBFNkNDQzBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTSW1wb3J0UnVsZS5oICovLAogCQkJCTg1QzU2Q0E5MEFBODlFNjYwMEQ5NTc1NSAvKiBD
U1NJbXBvcnRSdWxlLmlkbCAqLywKQEAgLTMxMzk4LDkgKzMxNDA1LDEyIEBACiAJCQkJMzEyODhF
NzAwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lc1J1bGUuY3BwICovLAogCQkJCTMxMjg4
RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmggKi8sCiAJCQkJMzE2RkUw
OTIwRTZDQ0Q3RjAwQkY2MDg4IC8qIENTU0tleWZyYW1lc1J1bGUuaWRsICovLAotCQkJCUU0MzBD
MUJBMjcwMzBCODYwMDNCNTUzRiAvKiBDU1NMYXllclJ1bGUuY3BwICovLAotCQkJCUU0MzBDMUI3
MjcwMzA5NDEwMDNCNTUzRiAvKiBDU1NMYXllclJ1bGUuaCAqLywKLQkJCQlFNDMwQzFCOTI3MDMw
OTRFMDAzQjU1M0YgLyogQ1NTTGF5ZXJSdWxlLmlkbCAqLywKKwkJCQlFNDMwQzFCQTI3MDMwQjg2
MDAzQjU1M0YgLyogQ1NTTGF5ZXJCbG9ja1J1bGUuY3BwICovLAorCQkJCUU0MzBDMUI3MjcwMzA5
NDEwMDNCNTUzRiAvKiBDU1NMYXllckJsb2NrUnVsZS5oICovLAorCQkJCUU0MzBDMUI5MjcwMzA5
NEUwMDNCNTUzRiAvKiBDU1NMYXllckJsb2NrUnVsZS5pZGwgKi8sCisJCQkJRTRGRkNFQjkyNzYw
QUMwMDAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5jcHAgKi8sCisJCQkJRTRGRkNF
QjgyNzYwQUMwMDAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5oICovLAorCQkJCUU0
RkZDRUJBMjc2MEFDMDEwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuaWRsICovLAog
CQkJCUJDNzcyRTE1MTMzMTYyQzIwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29udGFpblZhbHVlLmNw
cCAqLywKIAkJCQlCQzc3MkUxMjEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5W
YWx1ZS5oICovLAogCQkJCTk0NkQzNzQ3MUQ2RDA2MEMwMDc3MDg0RiAvKiBDU1NNYXJrdXAuY3Bw
ICovLApAQCAtMzM3NjcsNiArMzM3NzcsOCBAQAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlB
RSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1
RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTQx
MDdBNDI2Q0I2NkY4MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNEZGQ0VCRTI3NjBBQzE2MDBBNjhCMDMgLyogQ1NTTGF5ZXJCbG9ja1J1bGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUU0RkZDRUJCMjc2MEFDMDEwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRl
bWVudFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzcyRTEzMTMzMTYyMEMwMDFFQzlDRSAv
KiBDU1NMaW5lQm94Q29udGFpblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDZEMzc0QTFE
NkQwNjI4MDA3NzA4NEYgLyogQ1NTTWFya3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUVGNkZE
MzI2RTdFQ0E1MDAzMjZEMDIgLyogQ1NTTWF0aEludmVydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCA4YzRj
NTYxNWEzOWY3MTM5NWQ3ZGM3ZTliOGZlNzlmNjE5N2M5MjY3Li4wOTBiNzZhNWJlZmE3NWYxNDU3
ZGI0M2I4YzE1ODZmMGMxYmRhODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTUnVsZUN1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJDU1NJbXBv
cnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTS2V5
ZnJhbWVzUnVsZS5oIgorI2luY2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCisjaW5jbHVkZSAi
Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTTmFtZXNwYWNlUnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCkBAIC00
Myw2ICs0NSw4IEBACiAjaW5jbHVkZSAiSlNDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiSlND
U1NLZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRlICJKU0NTU0tleWZyYW1lc1J1bGUuaCIKKyNpbmNs
dWRlICJKU0NTU0xheWVyQmxvY2tSdWxlLmgiCisjaW5jbHVkZSAiSlNDU1NMYXllclN0YXRlbWVu
dFJ1bGUuaCIKICNpbmNsdWRlICJKU0NTU01lZGlhUnVsZS5oIgogI2luY2x1ZGUgIkpTQ1NTTmFt
ZXNwYWNlUnVsZS5oIgogI2luY2x1ZGUgIkpTQ1NTUGFnZVJ1bGUuaCIKQEAgLTg4LDcgKzkyLDEz
IEBAIEpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxDCiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PENTU1N1cHBvcnRzUnVsZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHJ1bGUpKTsKICAgICBjYXNl
IENTU1J1bGU6OkNPVU5URVJfU1RZTEVfUlVMRToKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBw
ZXI8Q1NTQ291bnRlclN0eWxlUnVsZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHJ1bGUpKTsKLSAg
ICBkZWZhdWx0OgorICAgIGNhc2UgQ1NTUnVsZTo6TEFZRVJfQkxPQ0tfUlVMRToKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTGF5ZXJCbG9ja1J1bGU+KGdsb2JhbE9iamVjdCwgV1RG
TW92ZShydWxlKSk7CisgICAgY2FzZSBDU1NSdWxlOjpMQVlFUl9TVEFURU1FTlRfUlVMRToKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlPihnbG9iYWxP
YmplY3QsIFdURk1vdmUocnVsZSkpOworICAgIGNhc2UgQ1NTUnVsZTo6VU5LTk9XTl9SVUxFOgor
ICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgorICAgIGNhc2UgQ1NTUnVsZTo6TUFSR0lO
X1JVTEU6CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1J1bGU+KGdsb2JhbE9iamVj
dCwgV1RGTW92ZShydWxlKSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9y
dFJ1bGUrTGF5ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMWVkNDU2MzY3ODE4NzYyYjhkZTI3MmIxNGZl
NzYzODE0Yzg3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1w
b3J0UnVsZStMYXllci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisg
KiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBV
U1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKK1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBwYXJ0aWFs
IGludGVyZmFjZSBDU1NJbXBvcnRSdWxlIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3Ry
aW5nPyBsYXllck5hbWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
cG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4
IDI3MzQ5MmM4MzUyMDU5ZjM0ZTY4YjFiNzNhNDc3YTcwNTQyOWUyMmYuLmU0ZmIwZDhiODNmMmRm
NzMyYjk5N2ZlZjE1YWE0NTM4NDJlMTEyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVs
ZS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJD
U1NJbXBvcnRSdWxlLmgiCiAKKyNpbmNsdWRlICJDU1NMYXllckJsb2NrUnVsZS5oIgogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJT
dHlsZVJ1bGVJbXBvcnQuaCIKQEAgLTU2LDkgKzU3LDEzIEBAIE1lZGlhTGlzdCYgQ1NTSW1wb3J0
UnVsZTo6bWVkaWEoKSBjb25zdAogICAgIHJldHVybiAqbV9tZWRpYUNTU09NV3JhcHBlcjsKIH0K
IAotY29uc3Qgc3RkOjpvcHRpb25hbDxDYXNjYWRlTGF5ZXJOYW1lPiYgQ1NTSW1wb3J0UnVsZTo6
Y2FzY2FkZUxheWVyTmFtZSgpIGNvbnN0CitTdHJpbmcgQ1NTSW1wb3J0UnVsZTo6bGF5ZXJOYW1l
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pbXBvcnRSdWxlLmdldCgpLmNhc2NhZGVMYXllck5h
bWUoKTsKKyAgICBhdXRvIG5hbWUgPSBtX2ltcG9ydFJ1bGUuZ2V0KCkuY2FzY2FkZUxheWVyTmFt
ZSgpOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBz
dHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZSgqbmFtZSk7CiB9CiAKIFN0cmluZyBDU1NJbXBvcnRS
dWxlOjpjc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bXBvcnRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5oCmluZGV4IGM5
YjcxMmRlNTlmYTY1OWE1ZDllZWQ0MzhmMjQzYWUyNzhjNDgyNjAuLmRjNWYyMTNkYTBkNGNkM2Y0
NjZmZDc3OTc5MzUxZGI4NTA2Y2Y1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbXBvcnRSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaApA
QCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGhyZWYo
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYUxpc3QmIG1lZGlhKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgpIGNvbnN0OwotICAg
IFdFQkNPUkVfRVhQT1JUIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q2FzY2FkZUxheWVyTmFtZT4mIGNh
c2NhZGVMYXllck5hbWUoKSBjb25zdDsKKyAgICBTdHJpbmcgbGF5ZXJOYW1lKCkgY29uc3Q7CiAK
IHByaXZhdGU6CiAgICAgQ1NTSW1wb3J0UnVsZShTdHlsZVJ1bGVJbXBvcnQmLCBDU1NTdHlsZVNo
ZWV0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZTdlM2ZiZDZmYmE5ZWEwNTk1OGRkODdjYTc5YmJmM2FhYzFmZDljCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmNwcApAQCAtMCwwICsx
LDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAq
ICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTTGF5
ZXJCbG9ja1J1bGUuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJT
dHlsZVJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ1NTTGF5ZXJCbG9ja1J1bGU6OkNTU0xheWVyQmxvY2tSdWxlKFN0
eWxlUnVsZUxheWVyJiBydWxlLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpCisgICAgOiBDU1NHcm91
cGluZ1J1bGUocnVsZSwgcGFyZW50KQoreworICAgIEFTU0VSVCghcnVsZS5pc1N0YXRlbWVudCgp
KTsKK30KKworUmVmPENTU0xheWVyQmxvY2tSdWxlPiBDU1NMYXllckJsb2NrUnVsZTo6Y3JlYXRl
KFN0eWxlUnVsZUxheWVyJiBydWxlLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTGF5ZXJCbG9ja1J1bGUocnVsZSwgcGFyZW50KSk7Cit9CisK
K1N0cmluZyBDU1NMYXllckJsb2NrUnVsZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5n
QnVpbGRlciByZXN1bHQ7CisKKyAgICByZXN1bHQuYXBwZW5kKCJAbGF5ZXIgIik7CisgICAgaWYg
KGF1dG8gbmFtZSA9IHRoaXMtPm5hbWUoKTsgIW5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXN1
bHQuYXBwZW5kKG5hbWUsICIgIik7CisgICAgcmVzdWx0LmFwcGVuZCgie1xuIik7CisgICAgYXBw
ZW5kQ1NTVGV4dEZvckl0ZW1zKHJlc3VsdCk7CisgICAgcmVzdWx0LmFwcGVuZCgnfScpOworCisg
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCitTdHJpbmcgQ1NTTGF5ZXJCbG9ja1J1
bGU6Om5hbWUoKSBjb25zdAoreworICAgIGF1dG8mIGxheWVyID0gZG93bmNhc3Q8U3R5bGVSdWxl
TGF5ZXI+KGdyb3VwUnVsZSgpKTsKKworICAgIGlmIChsYXllci5uYW1lKCkuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVybiBzdHJpbmdGcm9tQ2Fz
Y2FkZUxheWVyTmFtZShsYXllci5uYW1lKCkpOworfQorCitTdHJpbmcgc3RyaW5nRnJvbUNhc2Nh
ZGVMYXllck5hbWUoY29uc3QgQ2FzY2FkZUxheWVyTmFtZSYgbmFtZSkKK3sKKyAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKKyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiBuYW1lKSB7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoc2VnbWVudCk7CisgICAgICAgIGlmICgmc2VnbWVudCAhPSAmbmFtZS5s
YXN0KCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7CisgICAgfQorICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1Njc5ODEyNWEyNWZh
ZWQ5N2E1MDlkZGI0YjMwY2MzYWUxMzFlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICog
ICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNTU0dyb3VwaW5nUnVsZS5oIgorI2luY2x1ZGUg
IlN0eWxlUnVsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU0xheWVyQmxv
Y2tSdWxlIGZpbmFsIDogcHVibGljIENTU0dyb3VwaW5nUnVsZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxDU1NMYXllckJsb2NrUnVsZT4gY3JlYXRlKFN0eWxlUnVsZUxheWVyJiwgQ1NTU3R5
bGVTaGVldCogcGFyZW50KTsKKworICAgIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgZmluYWw7Cisg
ICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBDU1NMYXllckJsb2NrUnVs
ZShTdHlsZVJ1bGVMYXllciYsIENTU1N0eWxlU2hlZXQqKTsKKyAgICBDU1NSdWxlOjpUeXBlIHR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBMQVlFUl9CTE9DS19SVUxFOyB9Cit9OworCitTdHJp
bmcgc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUoY29uc3QgQ2FzY2FkZUxheWVyTmFtZSYpOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1JV
TEUoQ1NTTGF5ZXJCbG9ja1J1bGUsIENTU1J1bGU6OkxBWUVSX0JMT0NLX1JVTEUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWI3MjIyZjkyMDBm
NmMzZjdkZmRmMDdjN2UwMDM3ZGRkZGM3ZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwor
ICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAq
LworCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKworWworICAgIEV4cG9zZWQ9V2lu
ZG93CitdIGludGVyZmFjZSBDU1NMYXllckJsb2NrUnVsZSA6IENTU0dyb3VwaW5nUnVsZSB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3RyaW5nIG5hbWU7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTGF5ZXJSdWxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzdiNDgyYzI2
ZmRiZWJjNzAxMzQ3ZDg2ODMxN2QzM2YzYTcxMDY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICog
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJDU1NMYXllclJ1bGUuaCIKLQotI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKLSNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ1NTTGF5ZXJSdWxlOjpDU1NM
YXllclJ1bGUoU3R5bGVSdWxlTGF5ZXImIHJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkKLSAg
ICA6IENTU0dyb3VwaW5nUnVsZShydWxlLCBwYXJlbnQpCi17Ci19Ci0KLVJlZjxDU1NMYXllclJ1
bGU+IENTU0xheWVyUnVsZTo6Y3JlYXRlKFN0eWxlUnVsZUxheWVyJiBydWxlLCBDU1NTdHlsZVNo
ZWV0KiBwYXJlbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTGF5ZXJSdWxlKHJ1
bGUsIHBhcmVudCkpOwotfQotCi1TdHJpbmcgQ1NTTGF5ZXJSdWxlOjpjc3NUZXh0KCkgY29uc3QK
LXsKLSAgICBhdXRvJiBsYXllciA9IGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPihncm91cFJ1bGUo
KSk7Ci0KLSAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKLQotICAgIGlmIChsYXllci5pc1N0YXRl
bWVudCgpKSB7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkBsYXllciAiKTsKLSAgICAgICAgZm9y
IChhdXRvJiBuYW1lIDogbGF5ZXIubmFtZUxpc3QoKSkgewotICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChzdHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZShuYW1lKSk7Ci0gICAgICAgICAgICBpZiAo
Jm5hbWUgIT0gJmxheWVyLm5hbWVMaXN0KCkubGFzdCgpKQotICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIiwgIik7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0LmFwcGVuZCgnOycpOwot
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgcmVzdWx0LmFw
cGVuZCgiQGxheWVyICIpOwotICAgIGlmIChhdXRvIG5hbWUgPSBsYXllck5hbWUoKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgqbmFtZSwgIiAiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJ7XG4iKTsK
LSAgICBhcHBlbmRDU1NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKLSAgICByZXN1bHQuYXBwZW5kKCd9
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFN0
cmluZz4gQ1NTTGF5ZXJSdWxlOjpsYXllck5hbWUoKSBjb25zdAotewotICAgIGF1dG8mIGxheWVy
ID0gZG93bmNhc3Q8U3R5bGVSdWxlTGF5ZXI+KGdyb3VwUnVsZSgpKTsKLQotICAgIGlmICghbGF5
ZXIuaXNTdGF0ZW1lbnQoKSAmJiAhbGF5ZXIubmFtZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKGxheWVyLm5hbWUoKSk7Ci0gICAgCi0gICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQotU3RyaW5nIENTU0xheWVyUnVsZTo6c3RyaW5nRnJv
bUNhc2NhZGVMYXllck5hbWUoY29uc3QgQ2FzY2FkZUxheWVyTmFtZSYgbmFtZSkKLXsKLSAgICBT
dHJpbmdCdWlsZGVyIHJlc3VsdDsKLSAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiBuYW1lKSB7Ci0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoc2VnbWVudCk7Ci0gICAgICAgIGlmICgmc2VnbWVudCAhPSAm
bmFtZS5sYXN0KCkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7Ci0gICAgfQotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhiMGQyZWQ0Y2E2YzE1OWE5YWU1Y2ExM2FhODM5OTQxODg1NDEyMmQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xh
eWVyUnVsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NHcm91cGluZ1J1bGUuaCIKLSNpbmNsdWRlICJTdHls
ZVJ1bGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTdHlsZVJ1bGVMYXllcjsK
LQotY2xhc3MgQ1NTTGF5ZXJSdWxlIGZpbmFsIDogcHVibGljIENTU0dyb3VwaW5nUnVsZSB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NMYXllclJ1bGU+IGNyZWF0ZShTdHlsZVJ1bGVMYXll
ciYsIENTU1N0eWxlU2hlZXQqIHBhcmVudCk7Ci0KLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0
IGZpbmFsOwotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBsYXllck5hbWUoKSBjb25zdDsKLQot
ICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUoY29uc3QgQ2FzY2Fk
ZUxheWVyTmFtZSYpOwotCi1wcml2YXRlOgotICAgIENTU0xheWVyUnVsZShTdHlsZVJ1bGVMYXll
ciYsIENTU1N0eWxlU2hlZXQqKTsKLSAgICBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBMQVlFUl9SVUxFOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1JVTEUoQ1NTTGF5ZXJSdWxlLCBDU1NSdWxlOjpM
QVlFUl9SVUxFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWRkZGE5ZTAwNzVkOTg3ODliZDQ0ZTI4ZTY2NGNjNDJiMDBkYmZlNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAq
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFN
QUdFLgotICovCi0KLVsKLSAgICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQ1NTTGF5ZXJS
dWxlIDogQ1NTR3JvdXBpbmdSdWxlIHsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXll
clN0YXRlbWVudFJ1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZjZiZGMwZjRkMzU0Mjg0NTQ1YWYxNzEx
MjMyZDE0MTBjNTdjZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TGF5ZXJTdGF0ZW1lbnRSdWxlLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmgiCisKKyNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NT
U0xheWVyU3RhdGVtZW50UnVsZTo6Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlKFN0eWxlUnVsZUxheWVy
JiBydWxlLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpCisgICAgOiBDU1NSdWxlKHBhcmVudCkKKyAg
ICAsIG1fbGF5ZXJSdWxlKHJ1bGUpCit7CisgICAgQVNTRVJUKHJ1bGUuaXNTdGF0ZW1lbnQoKSk7
Cit9CisKK1JlZjxDU1NMYXllclN0YXRlbWVudFJ1bGU+IENTU0xheWVyU3RhdGVtZW50UnVsZTo6
Y3JlYXRlKFN0eWxlUnVsZUxheWVyJiBydWxlLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlKHJ1bGUsIHBhcmVu
dCkpOworfQorCitTdHJpbmcgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlOjpjc3NUZXh0KCkgY29uc3QK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKworICAgIHJlc3VsdC5hcHBlbmQoIkBsYXll
ciAiKTsKKworICAgIGF1dG8gbmFtZUxpc3QgPSB0aGlzLT5uYW1lTGlzdCgpOworICAgIGZvciAo
YXV0byYgbmFtZSA6IG5hbWVMaXN0KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobmFtZSk7Cisg
ICAgICAgIGlmICgmbmFtZSAhPSAmbmFtZUxpc3QubGFzdCgpKQorICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgiLCAiKTsKKyAgICB9CisgICAgcmVzdWx0LmFwcGVuZCgnOycpOworCisgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCitWZWN0b3I8U3RyaW5nPiBDU1NMYXllclN0YXRl
bWVudFJ1bGU6Om5hbWVMaXN0KCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7
CisKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiBtX2xheWVyUnVsZS5nZXQoKS5uYW1lTGlzdCgpKQor
ICAgICAgICByZXN1bHQuYXBwZW5kKHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKG5hbWUpKTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlOjpy
ZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQoreworICAgIG1fbGF5ZXJSdWxlID0gc3RhdGlj
X2Nhc3Q8U3R5bGVSdWxlTGF5ZXImPihydWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzVjZGUwODQwZjE3MDhiN2MxNTA2ODEzNzNiNjJmOTIxMDdmNjExZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMK
KyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisg
KiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNTU0dyb3Vw
aW5nUnVsZS5oIgorI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIENTU0xheWVyU3RhdGVtZW50UnVsZSBmaW5hbCA6IHB1YmxpYyBDU1NSdWxlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENTU0xheWVyU3RhdGVtZW50UnVsZT4gY3JlYXRlKFN0
eWxlUnVsZUxheWVyJiwgQ1NTU3R5bGVTaGVldCogcGFyZW50KTsKKworICAgIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3QgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZUxpc3QoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBDU1NMYXllclN0YXRlbWVudFJ1bGUoU3R5bGVSdWxlTGF5ZXImLCBD
U1NTdHlsZVNoZWV0Kik7CisgICAgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gTEFZRVJfU1RBVEVNRU5UX1JVTEU7IH0KKyAgICB2b2lkIHJlYXR0YWNoKFN0eWxlUnVs
ZUJhc2UmKSBmaW5hbDsKKworICAgIFJlZjxTdHlsZVJ1bGVMYXllcj4gbV9sYXllclJ1bGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NT
X1JVTEUoQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLCBDU1NSdWxlOjpMQVlFUl9TVEFURU1FTlRfUlVM
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUu
aWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWJmODliNzcxOGQ3MWQzMWEzMzU5YTQ4MTdkMDEwNTJhZTk3ODg1OQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuaWRsCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5n
OworCitbCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIENTU0xheWVyU3RhdGVtZW50
UnVsZSA6IENTU1J1bGUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxDU1NP
TVN0cmluZz4gbmFtZUxpc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1J1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKaW5kZXggOTc0NGE4YmM5ZjJi
NWU3ZmYyOTQzZDY3YzQxNmYyNDk0NDA2M2I3NC4uNjRhZGFkYTVhOWI4YmJjMGE3YjBlOWFhZTUx
NzJjZjdhMjYxM2JiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCkBAIC01MSw3ICs1MSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgTkFNRVNQQUNFX1JVTEUgPSAxMCwKICAgICAgICAgQ09VTlRFUl9TVFlMRV9S
VUxFID0gMTEsCiAgICAgICAgIFNVUFBPUlRTX1JVTEUgPSAxMiwKLSAgICAgICAgTEFZRVJfUlVM
RSA9IDE2LAorICAgICAgICBMQVlFUl9CTE9DS19SVUxFID0gMTYsCisgICAgICAgIExBWUVSX1NU
QVRFTUVOVF9SVUxFID0gMTcsCiAgICAgICAgIEZPTlRfUEFMRVRURV9WQUxVRVNfUlVMRSA9IDE5
LAogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5kZXggMDJlYzFmZTE2NzE0NDM3
OGVlMDFlMDVjNjQzYWM4ZDM2ZGIzMjEzYi4uODhmMDJjYjhhN2ZmZDY5NDhkYmRiZDMyMTkzZTNj
YmFjOTAxN2FhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTI5LDcgKzI5LDggQEAK
ICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgi
CiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVzUnVsZS5oIgotI2luY2x1ZGUgIkNTU0xheWVyUnVsZS5o
IgorI2luY2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTmFt
ZXNwYWNlUnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCkBAIC05OSw3ICsxMDAsOCBA
QCB2b2lkIFN0eWxlUnVsZUJhc2U6OmRlc3Ryb3koKQogICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6
Q291bnRlclN0eWxlOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8U3R5bGVSdWxlQ291bnRlclN0
eWxlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5
ZXI6CisgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrOgorICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQ6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxTdHlsZVJ1
bGVMYXllcj4odGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6
OlVua25vd246CkBAIC0xMjgsNyArMTMwLDggQEAgUmVmPFN0eWxlUnVsZUJhc2U+IFN0eWxlUnVs
ZUJhc2U6OmNvcHkoKSBjb25zdAogICAgICAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlS2V5
ZnJhbWVzPigqdGhpcykuY29weSgpOwogICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6Q291bnRlclN0
eWxlOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlQ291bnRlclN0eWxlPigqdGhp
cykuY29weSgpOwotICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXI6CisgICAgY2FzZSBTdHls
ZVJ1bGVUeXBlOjpMYXllckJsb2NrOgorICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJTdGF0
ZW1lbnQ6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVMYXllcj4oKnRoaXMpLmNv
cHkoKTsKICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkltcG9ydDoKICAgICBjYXNlIFN0eWxlUnVs
ZVR5cGU6Ok5hbWVzcGFjZToKQEAgLTE3Nyw4ICsxODAsMTEgQEAgUmVmPENTU1J1bGU+IFN0eWxl
UnVsZUJhc2U6OmNyZWF0ZUNTU09NV3JhcHBlcihDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCwg
Q1NTUnUKICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkNvdW50ZXJTdHlsZToKICAgICAgICAgcnVs
ZSA9IENTU0NvdW50ZXJTdHlsZVJ1bGU6OmNyZWF0ZShkb3duY2FzdDxTdHlsZVJ1bGVDb3VudGVy
U3R5bGU+KHNlbGYpLCBwYXJlbnRTaGVldCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgU3R5
bGVSdWxlVHlwZTo6TGF5ZXI6Ci0gICAgICAgIHJ1bGUgPSBDU1NMYXllclJ1bGU6OmNyZWF0ZShk
b3duY2FzdDxTdHlsZVJ1bGVMYXllcj4oc2VsZiksIHBhcmVudFNoZWV0KTsKKyAgICBjYXNlIFN0
eWxlUnVsZVR5cGU6OkxheWVyQmxvY2s6CisgICAgICAgIHJ1bGUgPSBDU1NMYXllckJsb2NrUnVs
ZTo6Y3JlYXRlKGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPihzZWxmKSwgcGFyZW50U2hlZXQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyU3RhdGVtZW50Ogor
ICAgICAgICBydWxlID0gQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlOjpjcmVhdGUoZG93bmNhc3Q8U3R5
bGVSdWxlTGF5ZXI+KHNlbGYpLCBwYXJlbnRTaGVldCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU3R5bGVSdWxlVHlwZTo6VW5rbm93bjoKICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkNoYXJz
ZXQ6CkBAIC00NzksMTkgKzQ4NSwxOSBAQCBSZWY8U3R5bGVSdWxlU3VwcG9ydHM+IFN0eWxlUnVs
ZVN1cHBvcnRzOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0LCBibwogfQogCiBT
dHlsZVJ1bGVMYXllcjo6U3R5bGVSdWxlTGF5ZXIoVmVjdG9yPENhc2NhZGVMYXllck5hbWU+JiYg
bmFtZUxpc3QpCi0gICAgOiBTdHlsZVJ1bGVHcm91cChTdHlsZVJ1bGVUeXBlOjpMYXllciwgVmVj
dG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4geyB9KQorICAgIDogU3R5bGVSdWxlR3JvdXAoU3R5
bGVSdWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+
IHsgfSkKICAgICAsIG1fbmFtZVZhcmlhbnQoV1RGTW92ZShuYW1lTGlzdCkpCiB7CiB9CiAKIFN0
eWxlUnVsZUxheWVyOjpTdHlsZVJ1bGVMYXllcihDYXNjYWRlTGF5ZXJOYW1lJiYgbmFtZSwgVmVj
dG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJiBydWxlcykKLSAgICA6IFN0eWxlUnVsZUdyb3Vw
KFN0eWxlUnVsZVR5cGU6OkxheWVyLCBXVEZNb3ZlKHJ1bGVzKSkKKyAgICA6IFN0eWxlUnVsZUdy
b3VwKFN0eWxlUnVsZVR5cGU6OkxheWVyQmxvY2ssIFdURk1vdmUocnVsZXMpKQogICAgICwgbV9u
YW1lVmFyaWFudChXVEZNb3ZlKG5hbWUpKQogewogfQogCiBTdHlsZVJ1bGVMYXllcjo6U3R5bGVS
dWxlTGF5ZXIoQ2FzY2FkZUxheWVyTmFtZSYmIG5hbWUsIHN0ZDo6dW5pcXVlX3B0cjxEZWZlcnJl
ZFN0eWxlR3JvdXBSdWxlTGlzdD4mJiBydWxlcykKLSAgICA6IFN0eWxlUnVsZUdyb3VwKFN0eWxl
UnVsZVR5cGU6OkxheWVyLCBXVEZNb3ZlKHJ1bGVzKSkKKyAgICA6IFN0eWxlUnVsZUdyb3VwKFN0
eWxlUnVsZVR5cGU6OkxheWVyQmxvY2ssIFdURk1vdmUocnVsZXMpKQogICAgICwgbV9uYW1lVmFy
aWFudChXVEZNb3ZlKG5hbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCmluZGV4IGI0Mzlh
MGQyZjBhZDI1ZjM3MjNlYjBjNmY0Y2VmNTQ2MmYyMmVhZGUuLjQ4ZGMxMjg0MDcyMGExYTE3Njlh
YzUxMzYwM2EwNzJkNTE5ZWFhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKQEAgLTYwLDEwICs2
MCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01lZGlhUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5
cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpNZWRpYTsgfQogICAgIGJvb2wgaXNQYWdlUnVsZSgpIGNv
bnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpQYWdlOyB9CiAgICAgYm9vbCBp
c1N0eWxlUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpTdHls
ZTsgfQotICAgIGJvb2wgaXNHcm91cFJ1bGUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5
bGVSdWxlVHlwZTo6TWVkaWEgfHwgdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzIHx8
IHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpMYXllcjsgfQorICAgIGJvb2wgaXNHcm91cFJ1bGUo
KSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6TWVkaWEgfHwgdHlwZSgp
ID09IFN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzIHx8IHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpM
YXllckJsb2NrOyB9CiAgICAgYm9vbCBpc1N1cHBvcnRzUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5
cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0czsgfQogICAgIGJvb2wgaXNJbXBvcnRSdWxl
KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OkltcG9ydDsgfQotICAg
IGJvb2wgaXNMYXllclJ1bGUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlw
ZTo6TGF5ZXI7IH0KKyAgICBib29sIGlzTGF5ZXJSdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgp
ID09IFN0eWxlUnVsZVR5cGU6OkxheWVyQmxvY2sgfHwgdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6
OkxheWVyU3RhdGVtZW50OyB9CiAKICAgICBSZWY8U3R5bGVSdWxlQmFzZT4gY29weSgpIGNvbnN0
OwogCkBAIC0yOTgsNyArMjk4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxl
TGF5ZXI+IGNyZWF0ZUJsb2NrKENhc2NhZGVMYXllck5hbWUmJiwgc3RkOjp1bmlxdWVfcHRyPERl
ZmVycmVkU3R5bGVHcm91cFJ1bGVMaXN0PiYmKTsKICAgICBSZWY8U3R5bGVSdWxlTGF5ZXI+IGNv
cHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUxheWVyKCp0aGlzKSk7
IH0KIAotICAgIGJvb2wgaXNTdGF0ZW1lbnQoKSBjb25zdCB7IHJldHVybiBzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFZlY3RvcjxDYXNjYWRlTGF5ZXJOYW1lPj4obV9uYW1lVmFyaWFudCk7IH0KKyAg
ICBib29sIGlzU3RhdGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFN0eWxlUnVsZVR5
cGU6OkxheWVyU3RhdGVtZW50OyB9CiAKICAgICBhdXRvJiBuYW1lKCkgY29uc3QgeyByZXR1cm4g
c3RkOjpnZXQ8Q2FzY2FkZUxheWVyTmFtZT4obV9uYW1lVmFyaWFudCk7IH0KICAgICBhdXRvJiBu
YW1lTGlzdCgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6Z2V0PFZlY3RvcjxDYXNjYWRlTGF5ZXJOYW1l
Pj4obV9uYW1lVmFyaWFudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlVHlwZS5oCmluZGV4IDYz
OGZmYmI5YmE1ZmMyNDgyN2JlYzcwYjA3YTg4ZTcwOTU4OGRmZjEuLjM2ODQ2NWQ2ZjQ3NGViM2U3
MTEyMjIzNzdlMGJjYTEzNGExOTNiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZVR5cGUuaApA
QCAtNDAsNyArNDAsOCBAQCBlbnVtIGNsYXNzIFN0eWxlUnVsZVR5cGUgOiB1aW50OF90IHsKICAg
ICBOYW1lc3BhY2UgPSAxMCwKICAgICBDb3VudGVyU3R5bGUgPSAxMSwKICAgICBTdXBwb3J0cyA9
IDEyLAotICAgIExheWVyID0gMTYsCisgICAgTGF5ZXJCbG9jayA9IDE2LAorICAgIExheWVyU3Rh
dGVtZW50ID0gMTcsCiAgICAgRm9udFBhbGV0dGVWYWx1ZXMgPSAxOSwKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggNjU4ZTg0ZGI4ODkxMTc4ZDU5
NGYzNGJkMzlhNmMzM2FkOGM1OTFjYi4uYWM1ZDA5M2FmNjQ2ZmNlYmFiNWUzNDBhNWI3OGRkZDFk
ZmY0YmQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAg
LTQ1OCw3ICs0NTgsNyBAQCBzdGF0aWMgYm9vbCB0cmF2ZXJzZVJ1bGVzSW5WZWN0b3IoY29uc3Qg
VmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIHJ1bGVzLCBjbwogICAgICAgICBzd2l0Y2gg
KHJ1bGUtPnR5cGUoKSkgewogICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6Ok1lZGlhOgogICAg
ICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzOgotICAgICAgICBjYXNlIFN0eWxlUnVs
ZVR5cGU6OkxheWVyOiB7CisgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jazog
ewogICAgICAgICAgICAgYXV0byogY2hpbGRSdWxlcyA9IGRvd25jYXN0PFN0eWxlUnVsZUdyb3Vw
PigqcnVsZSkuY2hpbGRSdWxlc1dpdGhvdXREZWZlcnJlZFBhcnNpbmcoKTsKICAgICAgICAgICAg
IGlmIChjaGlsZFJ1bGVzICYmIHRyYXZlcnNlUnVsZXNJblZlY3RvcigqY2hpbGRSdWxlcywgaGFu
ZGxlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NzcsNiArNDc3LDcgQEAg
c3RhdGljIGJvb2wgdHJhdmVyc2VSdWxlc0luVmVjdG9yKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5
bGVSdWxlQmFzZT4+JiBydWxlcywgY28KICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpDaGFy
c2V0OgogICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkNvdW50ZXJTdHlsZToKICAgICAgICAg
Y2FzZSBTdHlsZVJ1bGVUeXBlOjpLZXlmcmFtZToKKyAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBl
OjpMYXllclN0YXRlbWVudDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpA
QCAtNTE5LDcgKzUyMCw4IEBAIGJvb2wgU3R5bGVTaGVldENvbnRlbnRzOjp0cmF2ZXJzZVN1YnJl
c291cmNlcyhjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IENhY2hlZFJlCiAgICAgICAgIGNhc2Ug
U3R5bGVSdWxlVHlwZTo6Q2hhcnNldDoKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpLZXlm
cmFtZToKICAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0czoKLSAgICAgICAgY2Fz
ZSBTdHlsZVJ1bGVUeXBlOjpMYXllcjoKKyAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXll
ckJsb2NrOgorICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyU3RhdGVtZW50OgogICAg
ICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkZvbnRQYWxldHRlVmFsdWVzOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VySW1wbC5jcHAKaW5kZXggZmRhMWU0ZjQ5YzNmMTVhOWU0NzIwZTlmMmQ1MDA1YTk2MmU0
YzAyYi4uM2M2MDgzZjE4YWVkZjE0ZDVjNmM4NjRhNWUwMTE0MTkyZTcyNjA4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwCkBAIC04MTEsNyArODExLDcg
QEAgUmVmUHRyPFN0eWxlUnVsZUxheWVyPiBDU1NQYXJzZXJJbXBsOjpjb25zdW1lTGF5ZXJSdWxl
KENTU1BhcnNlclRva2VuUmFuZ2UgcHJlbHUKIAogICAgICAgICBpZiAobV9vYnNlcnZlcldyYXBw
ZXIpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG1fb2JzZXJ2ZXJXcmFwcGVy
LT5lbmRPZmZzZXQocHJlbHVkZUNvcHkpOwotICAgICAgICAgICAgbV9vYnNlcnZlcldyYXBwZXIt
Pm9ic2VydmVyKCkuc3RhcnRSdWxlSGVhZGVyKFN0eWxlUnVsZVR5cGU6OkxheWVyLCBtX29ic2Vy
dmVyV3JhcHBlci0+c3RhcnRPZmZzZXQocHJlbHVkZUNvcHkpKTsKKyAgICAgICAgICAgIG1fb2Jz
ZXJ2ZXJXcmFwcGVyLT5vYnNlcnZlcigpLnN0YXJ0UnVsZUhlYWRlcihTdHlsZVJ1bGVUeXBlOjpM
YXllclN0YXRlbWVudCwgbV9vYnNlcnZlcldyYXBwZXItPnN0YXJ0T2Zmc2V0KHByZWx1ZGVDb3B5
KSk7CiAgICAgICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIoKS5lbmRSdWxlSGVh
ZGVyKGVuZE9mZnNldCk7CiAgICAgICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIo
KS5zdGFydFJ1bGVCb2R5KGVuZE9mZnNldCk7CiAgICAgICAgICAgICBtX29ic2VydmVyV3JhcHBl
ci0+b2JzZXJ2ZXIoKS5lbmRSdWxlQm9keShlbmRPZmZzZXQpOwpAQCAtODMyLDcgKzgzMiw3IEBA
IFJlZlB0cjxTdHlsZVJ1bGVMYXllcj4gQ1NTUGFyc2VySW1wbDo6Y29uc3VtZUxheWVyUnVsZShD
U1NQYXJzZXJUb2tlblJhbmdlIHByZWx1CiAgICAgICAgIHJldHVybiBTdHlsZVJ1bGVMYXllcjo6
Y3JlYXRlQmxvY2soV1RGTW92ZSgqbmFtZSksIG1ha2VVbmlxdWU8RGVmZXJyZWRTdHlsZUdyb3Vw
UnVsZUxpc3Q+KCpibG9jaywgKm1fZGVmZXJyZWRQYXJzZXIpKTsKIAogICAgIGlmIChtX29ic2Vy
dmVyV3JhcHBlcikgewotICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIoKS5zdGFy
dFJ1bGVIZWFkZXIoU3R5bGVSdWxlVHlwZTo6TGF5ZXIsIG1fb2JzZXJ2ZXJXcmFwcGVyLT5zdGFy
dE9mZnNldChwcmVsdWRlQ29weSkpOworICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2
ZXIoKS5zdGFydFJ1bGVIZWFkZXIoU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jaywgbV9vYnNlcnZl
cldyYXBwZXItPnN0YXJ0T2Zmc2V0KHByZWx1ZGVDb3B5KSk7CiAgICAgICAgIG1fb2JzZXJ2ZXJX
cmFwcGVyLT5vYnNlcnZlcigpLmVuZFJ1bGVIZWFkZXIobV9vYnNlcnZlcldyYXBwZXItPmVuZE9m
ZnNldChwcmVsdWRlQ29weSkpOwogICAgICAgICBtX29ic2VydmVyV3JhcHBlci0+b2JzZXJ2ZXIo
KS5zdGFydFJ1bGVCb2R5KG1fb2JzZXJ2ZXJXcmFwcGVyLT5wcmV2aW91c1Rva2VuU3RhcnRPZmZz
ZXQoKmJsb2NrKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDFlODMyNTllM2RjZDgwYTdjZWMzZTE1ODcwYTcwZjkw
MjcwNWNiODIuLjc4ODJhMDU3NWU1YWZmMjE3YThiZGYzODJhZTUyYjI4MzdlYWYyMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAg
LTI4LDcgKzI4LDggQEAKIAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJD
U1NLZXlmcmFtZXNSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTTGF5ZXJSdWxlLmgiCisjaW5jbHVkZSAi
Q1NTTGF5ZXJCbG9ja1J1bGUuaCIKKyNpbmNsdWRlICJDU1NMYXllclN0YXRlbWVudFJ1bGUuaCIK
ICNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNs
dWRlICJDU1NQYXJzZXJPYnNlcnZlci5oIgpAQCAtMTA3LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lk
IGZsYXR0ZW5Tb3VyY2VEYXRhKFJ1bGVTb3VyY2VEYXRhTGlzdCYgZGF0YUxpc3QsIFJ1bGVTb3Vy
Y2VEYXRhTGlzdCYKICAgICBmb3IgKGF1dG8mIGRhdGEgOiBkYXRhTGlzdCkgewogICAgICAgICBp
ZiAoZGF0YS0+dHlwZSA9PSBXZWJDb3JlOjpTdHlsZVJ1bGVUeXBlOjpTdHlsZSkKICAgICAgICAg
ICAgIHRhcmdldC5hcHBlbmQoZGF0YS5jb3B5UmVmKCkpOwotICAgICAgICBlbHNlIGlmIChkYXRh
LT50eXBlID09IFdlYkNvcmU6OlN0eWxlUnVsZVR5cGU6Ok1lZGlhIHx8IGRhdGEtPnR5cGUgPT0g
V2ViQ29yZTo6U3R5bGVSdWxlVHlwZTo6U3VwcG9ydHMgfHwgZGF0YS0+dHlwZSA9PSBXZWJDb3Jl
OjpTdHlsZVJ1bGVUeXBlOjpMYXllcikKKyAgICAgICAgZWxzZSBpZiAoZGF0YS0+dHlwZSA9PSBX
ZWJDb3JlOjpTdHlsZVJ1bGVUeXBlOjpNZWRpYSB8fCBkYXRhLT50eXBlID09IFdlYkNvcmU6OlN0
eWxlUnVsZVR5cGU6OlN1cHBvcnRzIHx8IGRhdGEtPnR5cGUgPT0gV2ViQ29yZTo6U3R5bGVSdWxl
VHlwZTo6TGF5ZXJCbG9jaykKICAgICAgICAgICAgIGZsYXR0ZW5Tb3VyY2VEYXRhKGRhdGEtPmNo
aWxkUnVsZXMsIHRhcmdldCk7CiAgICAgfQogfQpAQCAtNDI2LDggKzQyNyw4IEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTUnVsZUxpc3Q+IGFzQ1NTUnVsZUxpc3QoQ1NTUnVsZSogcnVsZSkKICAgICBpZiAo
aXM8Q1NTU3VwcG9ydHNSdWxlPigqcnVsZSkpCiAgICAgICAgIHJldHVybiAmZG93bmNhc3Q8Q1NT
U3VwcG9ydHNSdWxlPigqcnVsZSkuY3NzUnVsZXMoKTsKIAotICAgIGlmIChpczxDU1NMYXllclJ1
bGU+KCpydWxlKSkKLSAgICAgICAgcmV0dXJuICZkb3duY2FzdDxDU1NMYXllclJ1bGU+KCpydWxl
KS5jc3NSdWxlcygpOworICAgIGlmIChpczxDU1NMYXllckJsb2NrUnVsZT4oKnJ1bGUpKQorICAg
ICAgICByZXR1cm4gJmRvd25jYXN0PENTU0xheWVyQmxvY2tSdWxlPigqcnVsZSkuY3NzUnVsZXMo
KTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtNDUwLDExICs0NTEsMTIgQEAgc3RhdGlj
IFJlZjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDU1M6Okdyb3VwaW5nPj4gYnVpbGRBcnJheUZv
ckdyb3VwaW5ncyhDU1NSdWwKICAgICAgICAgICAgICAgICBydWxlR3JvdXBpbmdQYXlsb2Fkcy5h
cHBlbmQoV1RGTW92ZShtZWRpYVJ1bGVQYXlsb2FkKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSBpZiAoaXM8Q1NTSW1wb3J0UnVsZT4ocGFyZW50UnVsZSkpIHsKLSAgICAgICAgICAg
IGlmIChhdXRvJiBsYXllck5hbWUgPSBkb3duY2FzdDxDU1NJbXBvcnRSdWxlPihwYXJlbnRSdWxl
KS0+Y2FzY2FkZUxheWVyTmFtZSgpKSB7CisgICAgICAgICAgICBhdXRvIGxheWVyTmFtZSA9IGRv
d25jYXN0PENTU0ltcG9ydFJ1bGU+KHBhcmVudFJ1bGUpLT5sYXllck5hbWUoKTsKKyAgICAgICAg
ICAgIGlmICghbGF5ZXJOYW1lLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBsYXll
clJ1bGVQYXlsb2FkID0gUHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc6OmNyZWF0ZSgpCiAgICAgICAg
ICAgICAgICAgICAgIC5zZXRUeXBlKFByb3RvY29sOjpDU1M6Okdyb3VwaW5nOjpUeXBlOjpMYXll
ckltcG9ydFJ1bGUpCiAgICAgICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgICAgICAg
ICAgICAgbGF5ZXJSdWxlUGF5bG9hZC0+c2V0VGV4dChDU1NMYXllclJ1bGU6OnN0cmluZ0Zyb21D
YXNjYWRlTGF5ZXJOYW1lKCpsYXllck5hbWUpKTsKKyAgICAgICAgICAgICAgICBsYXllclJ1bGVQ
YXlsb2FkLT5zZXRUZXh0KGxheWVyTmFtZSk7CiAgICAgICAgICAgICAgICAgcnVsZUdyb3VwaW5n
UGF5bG9hZHMuYXBwZW5kKFdURk1vdmUobGF5ZXJSdWxlUGF5bG9hZCkpOwogICAgICAgICAgICAg
fQogCkBAIC00NzIsMTIgKzQ3NCwxMSBAQCBzdGF0aWMgUmVmPEpTT046OkFycmF5T2Y8UHJvdG9j
b2w6OkNTUzo6R3JvdXBpbmc+PiBidWlsZEFycmF5Rm9yR3JvdXBpbmdzKENTU1J1bAogICAgICAg
ICAgICAgICAgIC5yZWxlYXNlKCk7CiAgICAgICAgICAgICBzdXBwb3J0c1J1bGVQYXlsb2FkLT5z
ZXRUZXh0KGRvd25jYXN0PENTU1N1cHBvcnRzUnVsZT4ocGFyZW50UnVsZSktPmNvbmRpdGlvblRl
eHQoKSk7CiAgICAgICAgICAgICBydWxlR3JvdXBpbmdQYXlsb2Fkcy5hcHBlbmQoV1RGTW92ZShz
dXBwb3J0c1J1bGVQYXlsb2FkKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXM8Q1NTTGF5ZXJSdWxl
PihwYXJlbnRSdWxlKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPENTU0xheWVyQmxvY2tSdWxl
PihwYXJlbnRSdWxlKSkgewogICAgICAgICAgICAgYXV0byBsYXllclJ1bGVQYXlsb2FkID0gUHJv
dG9jb2w6OkNTUzo6R3JvdXBpbmc6OmNyZWF0ZSgpCiAgICAgICAgICAgICAgICAgLnNldFR5cGUo
UHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc6OlR5cGU6OkxheWVyUnVsZSkKICAgICAgICAgICAgICAg
ICAucmVsZWFzZSgpOwotICAgICAgICAgICAgaWYgKGF1dG8gbGF5ZXJOYW1lID0gZG93bmNhc3Q8
Q1NTTGF5ZXJSdWxlPihwYXJlbnRSdWxlKS0+bGF5ZXJOYW1lKCkpCi0gICAgICAgICAgICAgICAg
bGF5ZXJSdWxlUGF5bG9hZC0+c2V0VGV4dCgqbGF5ZXJOYW1lKTsKKyAgICAgICAgICAgIGxheWVy
UnVsZVBheWxvYWQtPnNldFRleHQoZG93bmNhc3Q8Q1NTTGF5ZXJCbG9ja1J1bGU+KHBhcmVudFJ1
bGUpLT5uYW1lKCkpOwogICAgICAgICAgICAgcnVsZUdyb3VwaW5nUGF5bG9hZHMuYXBwZW5kKFdU
Rk1vdmUobGF5ZXJSdWxlUGF5bG9hZCkpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAKaW5kZXggZTU0MDczMjk3ZTI5YThi
ZDRhYTNhZWQ0Y2EzYjlhMDhmMGZlOWE5Yy4uZWRmODExNGFkZmNjZjI3ZmFiYmFkY2Y3ZjgyYWRh
NjA4YzI1YmFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5zcGVjdG9yQ1NT
T01XcmFwcGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5zcGVjdG9yQ1NTT01X
cmFwcGVycy5jcHAKQEAgLTMwLDcgKzMwLDggQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NPTVdy
YXBwZXJzLmgiCiAKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTTGF5
ZXJSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJCbG9ja1J1bGUuaCIKKyNpbmNsdWRlICJDU1NM
YXllclN0YXRlbWVudFJ1bGUuaCIKICNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKICNpbmNsdWRl
ICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCkBAIC02Miw4ICs2Myw4IEBA
IHZvaWQgSW5zcGVjdG9yQ1NTT01XcmFwcGVyczo6Y29sbGVjdChMaXN0VHlwZSogbGlzdFR5cGUp
CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6CiAgICAgICAgICAgICBjb2xsZWN0
KGRvd25jYXN0PENTU0ltcG9ydFJ1bGU+KCpjc3NSdWxlKS5zdHlsZVNoZWV0KCkpOwogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTUnVsZTo6TEFZRVJfUlVMRToKLSAgICAgICAg
ICAgIGNvbGxlY3QoZG93bmNhc3Q8Q1NTTGF5ZXJSdWxlPihjc3NSdWxlKSk7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6TEFZRVJfQkxPQ0tfUlVMRToKKyAgICAgICAgICAgIGNvbGxlY3QoZG93bmNh
c3Q8Q1NTTGF5ZXJCbG9ja1J1bGU+KGNzc1J1bGUpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CiAgICAgICAgICAgICBjb2xsZWN0KGRvd25j
YXN0PENTU01lZGlhUnVsZT4oY3NzUnVsZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggOTk4ZmJmZDQ5MDc3ZDQ1N2E5ZjI3ZTVkODAyYzA4YjBhN2FkMDA3My4uZjc0MWFkZTBk
YmM5NTIxY2MxNjFjZWUwMTI1MTkwMjEzNmY5YTM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMDggIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIFVwZGF0ZSBDU1NP
TSB0byB0aGUgc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxMzQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzk1ODY5Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9sYXllci1ydWxlcy1jc3NvbS1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMTItMDggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIGltcG9ydCBzb21lIG5ldyBXUFRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY2FzY2FkZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0CmluZGV4IDA0ZDNhOTE3ZGZhOWVmNjkzMTI2MmEyOTMwZGRmYTQxMmVlY2NiOGIu
LjcxMmY5OTk1NjM3NzFlYjkzNGRiNTI5NjlmMzFjMzQzM2M4YTYzOTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRl
L2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0
CkBAIC00LDI2ICs0LDI2IEBAIFBBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgogUEFTUyBQYXJ0aWFs
IGludGVyZmFjZSBDU1NJbXBvcnRSdWxlOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZAogUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBDU1NJbXBvcnRSdWxlOiB2YWxpZCBleHBvc3VyZSBzZXQKIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgQ1NTSW1wb3J0UnVsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVy
dHkgIkNTU0xheWVyQmxvY2tSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAi
Q1NTTGF5ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5
ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5
ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgbWlzc2lu
ZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
Q1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIg
bWlzc2luZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllckJsb2Nr
UnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1
bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUgbXVzdCBiZSBwcmltYXJ5IGludGVy
ZmFjZSBvZiBibG9jayBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVy
QmxvY2tSdWxlIiBtaXNzaW5nCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBibG9jayBhc3NlcnRf
Y2xhc3Nfc3RyaW5nOiBjbGFzcyBzdHJpbmcgb2YgYmxvY2sgZXhwZWN0ZWQgIltvYmplY3QgQ1NT
TGF5ZXJCbG9ja1J1bGVdIiBidXQgZ290ICJbb2JqZWN0IENTU1J1bGVdIgotRkFJTCBDU1NMYXll
ckJsb2NrUnVsZSBpbnRlcmZhY2U6IGJsb2NrIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmFtZSIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXll
clN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUi
IG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkNTU0xheWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyU3RhdGVt
ZW50UnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVy
U3RhdGVtZW50UnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0
eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50
UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxl
IiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlM
IENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYW1lTGlzdCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXll
clN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUi
IG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIG11c3QgYmUgcHJpbWFyeSBpbnRl
cmZhY2Ugb2Ygc3RhdGVtZW50IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkg
IkNTU0xheWVyU3RhdGVtZW50UnVsZSIgbWlzc2luZwotRkFJTCBTdHJpbmdpZmljYXRpb24gb2Yg
c3RhdGVtZW50IGFzc2VydF9jbGFzc19zdHJpbmc6IGNsYXNzIHN0cmluZyBvZiBzdGF0ZW1lbnQg
ZXhwZWN0ZWQgIltvYmplY3QgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlXSIgYnV0IGdvdCAiW29iamVj
dCBDU1NSdWxlXSIKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTogc3RhdGVt
ZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZUxpc3QiIHdpdGggdGhlIHByb3BlciB0eXBl
IGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgIm5hbWVMaXN0IiBub3QgZm91bmQgaW4gcHJvdG90
eXBlIGNoYWluCi1GQUlMIENTU0ltcG9ydFJ1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGF5ZXJO
YW1lIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0
eSAibGF5ZXJOYW1lIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBDU1NJbXBvcnRSdWxl
IGludGVyZmFjZTogbGF5ZXJlZEltcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxheWVyTmFt
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibGF5ZXJO
YW1lIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIENTU0xheWVyQmxvY2tSdWxl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QK
K1BBU1MgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgQ1NT
TGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIENTU0xheWVyQmxvY2tS
dWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0CitQQVNTIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eQorUEFTUyBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkKK1BBU1MgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgbmFtZQorUEFTUyBDU1NMYXllckJsb2NrUnVsZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNl
IG9mIGJsb2NrCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBibG9jaworUEFTUyBDU1NMYXllckJs
b2NrUnVsZSBpbnRlcmZhY2U6IGJsb2NrIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgQ1NTTGF5
ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIENTU0xheWVyU3Rh
dGVtZW50UnVsZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRS
dWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0CitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgbmFtZUxpc3QKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Ygc3RhdGVtZW50CitQQVNTIFN0cmluZ2lmaWNhdGlvbiBv
ZiBzdGF0ZW1lbnQKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTogc3RhdGVt
ZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZUxpc3QiIHdpdGggdGhlIHByb3BlciB0eXBl
CitQQVNTIENTU0ltcG9ydFJ1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGF5ZXJOYW1lCitQQVNT
IENTU0ltcG9ydFJ1bGUgaW50ZXJmYWNlOiBsYXllcmVkSW1wb3J0IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAibGF5ZXJOYW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9s
YXllci1ydWxlcy1jc3NvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9sYXllci1ydWxlcy1jc3NvbS1leHBl
Y3RlZC50eHQKaW5kZXggMGE5Y2YyNTIxODlhNjkxMjk4NzE3YjFlY2VjZGI5YzU4NDI3NjI5YS4u
OTlhOGViMDU1NTY0ODUyY2ZlZDU3MWY4MTAwMjlmOTNiNTI1ZjNmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUv
bGF5ZXItcnVsZXMtY3Nzb20tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2xheWVyLXJ1bGVzLWNzc29t
LWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxMSBAQAogCi1GQUlMIEJhc2ljIGxheWVyIGJsb2Nr
IG5hbWUgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5lZAotRkFJTCBBbm9ueW1vdXMgbGF5ZXIg
YmxvY2sgbmFtZSBhc3NlcnRfaW1wbGVtZW50czogdW5kZWZpbmVkCi1GQUlMIEJhc2ljIGxheWVy
IHN0YXRlbWVudCBuYW1lIGFzc2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgTGF5ZXIg
c3RhdGVtZW50IHdpdGggbXVsdGlwbGUgbmFtZXMgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5l
ZAotRkFJTCBOZXN0ZWQgbGF5ZXIgYmxvY2sgbmFtZXMgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVm
aW5lZAotRkFJTCBOZXN0ZWQgbGF5ZXIgc3RhdGVtZW50IG5hbWUgbGlzdHMgYXNzZXJ0X2ltcGxl
bWVudHM6IHVuZGVmaW5lZAotRkFJTCBJbXBvcnQgaW50byBhbm9ueW1vdXMgbGF5ZXIgYXNzZXJ0
X2ltcGxlbWVudHM6IHVuZGVmaW5lZAotRkFJTCBJbXBvcnQgaW50byBuYW1lZCBsYXllciBhc3Nl
cnRfaW1wbGVtZW50czogdW5kZWZpbmVkCi1GQUlMIEltcG9ydCB3aXRob3V0IGxheWVyIGFzc2Vy
dF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKK1BBU1MgQmFzaWMgbGF5ZXIgYmxvY2sgbmFtZQorUEFT
UyBBbm9ueW1vdXMgbGF5ZXIgYmxvY2sgbmFtZQorUEFTUyBCYXNpYyBsYXllciBzdGF0ZW1lbnQg
bmFtZQorUEFTUyBMYXllciBzdGF0ZW1lbnQgd2l0aCBtdWx0aXBsZSBuYW1lcworUEFTUyBOZXN0
ZWQgbGF5ZXIgYmxvY2sgbmFtZXMKK1BBU1MgTmVzdGVkIGxheWVyIHN0YXRlbWVudCBuYW1lIGxp
c3RzCitQQVNTIEltcG9ydCBpbnRvIGFub255bW91cyBsYXllcgorUEFTUyBJbXBvcnQgaW50byBu
YW1lZCBsYXllcgorUEFTUyBJbXBvcnQgd2l0aG91dCBsYXllcgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446357</attachid>
            <date>2021-12-08 06:39:42 -0800</date>
            <delta_ts>2021-12-08 08:56:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231340-20211208163940.patch</filename>
            <type>text/plain</type>
            <size>66219</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uNmM4ODQ5NWYxMzI0ODU2Y2QyZDFlMDVlMDgzYmEw
MDkxMjA1YWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTEyLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBVcGRhdGUgQ1NTT00gdG8gdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5
NTg2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIENTU0xheWVyQmxvY2tSdWxlIGFuZCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNl
cy4KKyAgICAgICAgQWxzbyBhZGQgc3VwcG9ydCBmb3IgbGF5ZXJOYW1lIHByb3BlcnR5IG9mIENT
U0ltcG9ydFJ1bGUuCisKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jYXNjYWRl
LTUvI2xheWVyLWFwaXMKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDU1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0
ZWQpOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlK0xheWVyLmlkbDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5pZGwuCisgICAgICAgICogY3NzL0NTU0lt
cG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1wb3J0UnVsZTo6bGF5ZXJOYW1l
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmNhc2NhZGVMYXllck5h
bWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmg6CisgICAg
ICAgICogY3NzL0NTU0xheWVyQmxvY2tSdWxlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NMYXllclJ1bGUuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGF5ZXJCbG9j
a1J1bGU6OkNTU0xheWVyQmxvY2tSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVyQmxv
Y2tSdWxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGF5ZXJCbG9ja1J1bGU6OmNz
c1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGF5ZXJCbG9ja1J1bGU6Om5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUpOgor
ICAgICAgICAqIGNzcy9DU1NMYXllckJsb2NrUnVsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmguCisgICAgICAgICogY3NzL0NTU0xheWVyQmxvY2tSdWxl
LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyUnVsZS5pZGwuCisg
ICAgICAgICogY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0xheWVy
U3RhdGVtZW50UnVsZTo6Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0xheWVyU3RhdGVtZW50UnVsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xh
eWVyU3RhdGVtZW50UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NM
YXllclN0YXRlbWVudFJ1bGU6Om5hbWVMaXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0xheWVyU3RhdGVtZW50UnVsZTo6cmVhdHRhY2gpOgorICAgICAgICAqIGNzcy9DU1NMYXllclN0
YXRlbWVudFJ1bGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1
bGUuaC4KKyAgICAgICAgKiBjc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsLgorICAgICAgICAqIGNzcy9D
U1NSdWxlLmg6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVCYXNlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUJh
c2U6OmNvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQmFzZTo6Y3JlYXRl
Q1NTT01XcmFwcGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUxheWVyOjpT
dHlsZVJ1bGVMYXllcik6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSdWxlQmFzZTo6aXNHcm91cFJ1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSdWxlQmFzZTo6aXNMYXllclJ1bGUgY29uc3QpOgorICAgICAgICAqIGNzcy9TdHls
ZVJ1bGVUeXBlLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0cmF2ZXJzZVJ1bGVzSW5WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVTaGVldENvbnRlbnRzOjp0cmF2ZXJzZVN1YnJlc291cmNlcyBjb25zdCk6CisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlckltcGw6OmNvbnN1bWVMYXllclJ1bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKGZsYXR0ZW5Tb3VyY2VEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OmFzQ1NTUnVsZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRBcnJheUZv
ckdyb3VwaW5ncyk6CisgICAgICAgICogc3R5bGUvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW5zcGVjdG9yQ1NTT01XcmFwcGVyczo6Y29sbGVj
dCk6CisKIDIwMjEtMTItMDggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OKHIyODY1NTYpOiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmggaXMgb25seSBhdmFpbGFibGUgaW4gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGQ0NDlkZThiMDBhYjU0N2U2OGM4NThlZmVkY2JhNTMwYTk1YTBlMWYuLmFkNWU4OTc2ZmFjZDNh
OTcwZTUyN2YxYjg0MWY1YTNlMTM3OGU4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03NTAs
NyArNzUwLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBjc3MvQ1NTSW1w
b3J0UnVsZS5pZGwKICAgICBjc3MvQ1NTS2V5ZnJhbWVSdWxlLmlkbAogICAgIGNzcy9DU1NLZXlm
cmFtZXNSdWxlLmlkbAotICAgIGNzcy9DU1NMYXllclJ1bGUuaWRsCisgICAgY3NzL0NTU0xheWVy
QmxvY2tSdWxlLmlkbAorICAgIGNzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuaWRsCiAgICAgY3Nz
L0NTU01lZGlhUnVsZS5pZGwKICAgICBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwKICAgICBjc3Mv
Q1NTUGFpbnRDYWxsYmFjay5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CmluZGV4IGVjZDdhZTU4ZDcxMDFhMzg2NTYzY2UyZmMyMzk1ZGE2NGU3
MTNjNTIuLmUyYTdhZjcxZmQ2ZTQzYzBiMzAwZGU5OTE4ZjliNDU4NWY2YzZkODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtODc4LDEw
ICs4NzgsMTIgQEAgJChQUk9KRUNUX0RJUikvY3NzL0NTU0NvdW50ZXJTdHlsZVJ1bGUuaWRsCiAk
KFBST0pFQ1RfRElSKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAogJChQUk9KRUNUX0RJUikvY3Nz
L0NTU0ZvbnRQYWxldHRlVmFsdWVzUnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NHcm91
cGluZ1J1bGUuaWRsCiskKFBST0pFQ1RfRElSKS9jc3MvQ1NTSW1wb3J0UnVsZStMYXllci5pZGwK
ICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAogJChQUk9KRUNUX0RJUikvY3Nz
L0NTU0tleWZyYW1lUnVsZS5pZGwKICQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NLZXlmcmFtZXNSdWxl
LmlkbAotJChQUk9KRUNUX0RJUikvY3NzL0NTU0xheWVyUnVsZS5pZGwKKyQoUFJPSkVDVF9ESVIp
L2Nzcy9DU1NMYXllckJsb2NrUnVsZS5pZGwKKyQoUFJPSkVDVF9ESVIpL2Nzcy9DU1NMYXllclN0
YXRlbWVudFJ1bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAogJChQ
Uk9KRUNUX0RJUikvY3NzL0NTU05hbWVzcGFjZVJ1bGUuaWRsCiAkKFBST0pFQ1RfRElSKS9jc3Mv
Q1NTUGFnZVJ1bGUuaWRsCkBAIC0xMzI1LDggKzEzMjcsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC9wYXJzZXIvSFRNTEVudGl0eU5hbWVzLmluCiAkKFBST0pFQ1RfRElSKS9odG1sL3BhcnNlci9j
cmVhdGUtaHRtbC1lbnRpdHktdGFibGUKICQoUFJPSkVDVF9ESVIpL2h0bWwvc2hhZG93L2ltYWdl
T3ZlcmxheS5jc3MKLSQoUFJPSkVDVF9ESVIpL2h0bWwvc2hhZG93L21ldGVyRWxlbWVudFNoYWRv
dy5jc3MKICQoUFJPSkVDVF9ESVIpL2h0bWwvc2hhZG93L21hYy9pbWFnZUNvbnRyb2xzTWFjLmNz
cworJChQUk9KRUNUX0RJUikvaHRtbC9zaGFkb3cvbWV0ZXJFbGVtZW50U2hhZG93LmNzcwogJChQ
Uk9KRUNUX0RJUikvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvdHJhY2svRGF0
YUN1ZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggOTk2Y2JkZTIxMTZlZWUyMjg4NDg0OGUxNGUxZTU4MTZhODE3ZGYzYy4uMzU3
YzFkZWQ2NGFlMDg1ZTNmMDkyYjlhMTkxMTMyY2QyOGYzNmIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI5Niw2ICsyOTYsOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRQ
YWxldHRlVmFsdWVzUnVsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ1NTRm9udFBhbGV0dGVWYWx1ZXNSdWxlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTR3JvdXBpbmdSdWxlLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NHcm91cGluZ1J1bGUu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NJbXBv
cnRSdWxlK0xheWVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDU1NJbXBvcnRSdWxlK0xheWVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTSW1wb3J0UnVsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTSW1wb3J0UnVsZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0tleWZyYW1lUnVsZS5jcHAK
QEAgLTMwNCw4ICszMDYsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNDU1NLZXlmcmFtZXNSdWxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NLZXlmcmFtZXNSdWxlLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTS2V5d29yZFZhbHVlLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NLZXl3b3JkVmFs
dWUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NM
YXllclJ1bGUuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU0xheWVyUnVsZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0NTU0xheWVyQmxvY2tSdWxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NMYXllckJsb2NrUnVsZS5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0xheWVyU3RhdGVtZW50UnVsZS5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTTGF5
ZXJTdGF0ZW1lbnRSdWxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQ1NTTWF0aEludmVydC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTTWF0aEludmVydC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU01hdGhNYXguY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCAzM2JkNmUwMGRjOGI2MmYxZGExYzBjOTUwY2I5MjhiMjg3YTZmZjFk
Li5iNTU0NGMyOGE5YWFjZmE5ZjNhYzlmZTQ5M2IxNDJmMTM4ZjI0NDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTc1OCw3ICs3NTgsOSBAQCBKU19CSU5ESU5HX0lETFMgOj0g
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRQYWxldHRlVmFsdWVzUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU0dyb3VwaW5nUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3Nz
L0NTU0ltcG9ydFJ1bGUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NMYXllclJ1bGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlK0xheWVyLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9D
U1NMYXllclN0YXRlbWVudFJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NLZXlmcmFt
ZVJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvQ1NTTWVkaWFSdWxlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGRl
OTM0M2E0N2Q5YzUzYzk4MjFkOTFmMjJjMWJjM2MxOTllYjk1ZWQuLjkyZTBmNGIwYzg1NmU2ODc3
ODZmYWZkNGIyM2VhYTZiOWY1NTMwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC03MzMsNyArNzMzLDgg
QEAgY3NzL0NTU0ltYWdlVmFsdWUuY3BwCiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHAKIGNzcy9DU1NL
ZXlmcmFtZVJ1bGUuY3BwCiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKLWNzcy9DU1NMYXllclJ1
bGUuY3BwCitjc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuY3BwCitjc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRS
dWxlLmNwcAogY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUuY3BwCiBjc3MvQ1NTTWFya3VwLmNw
cAogY3NzL0NTU01lZGlhUnVsZS5jcHAKQEAgLTI5MjUsNyArMjkyNiw4IEBAIEpTQ1NTR3JvdXBp
bmdSdWxlLmNwcAogSlNDU1NJbXBvcnRSdWxlLmNwcAogSlNDU1NLZXlmcmFtZVJ1bGUuY3BwCiBK
U0NTU0tleWZyYW1lc1J1bGUuY3BwCi1KU0NTU0xheWVyUnVsZS5jcHAKK0pTQ1NTTGF5ZXJCbG9j
a1J1bGUuY3BwCitKU0NTU0xheWVyU3RhdGVtZW50UnVsZS5jcHAKIEpTQ1NTTWVkaWFSdWxlLmNw
cAogSlNDU1NOYW1lc3BhY2VSdWxlLmNwcAogSlNDU1NQYWdlUnVsZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZmRmMjFm
M2Y2MjJiZTkyZjNiNTAzMTdmZWM4ZjMxMDI5NGMzNjUzLi45ODQyNWE0NTEyMjM5NWJmMzE4NDVi
NzI0MWQ3NGZlNWI1ZTdkODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01Mzg3LDYgKzUzODcsOCBAQAogCQlFNEYzOEQxQjI2
MjZGMTNCMDA3QjEwNjQgLyogRGVmYXVsdFJlc291cmNlTG9hZFByaW9yaXR5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEYzOEQxOTI2MjZGMTNCMDA3
QjEwNjQgLyogRGVmYXVsdFJlc291cmNlTG9hZFByaW9yaXR5LmggKi87IH07CiAJCUU0RjgxOUM2
MjZGQjRFQkYwMDk0RTE2MiAvKiBJbmxpbmVCb3hQYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEY4MTlDNTI2RkI0RUJGMDA5NEUxNjIgLyog
SW5saW5lQm94UGFpbnRlci5oICovOyB9OwogCQlFNEY5RUVGMzE1NkRBMDA3MDBEMjNFN0UgLyog
U3R5bGVTaGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTRG
RkNFQkIyNzYwQUMwMTAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGRkNFQjgyNzYwQUMwMDAw
QTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5oICovOyB9OworCQlFNEZGQ0VCRTI3NjBB
QzE2MDBBNjhCMDMgLyogQ1NTTGF5ZXJCbG9ja1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzBDMUI3MjcwMzA5NDEwMDNCNTUzRiAvKiBDU1NM
YXllckJsb2NrUnVsZS5oICovOyB9OwogCQlFNTA2MjA4NDI1NDA5MTlDMDBDNDMwOTEgLyogQ29u
dGFjdHNSZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTUwNjIwODMyNTQwOTE5QjAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTEx
OTRCRjI3MEU3RTRBMDA2NEZDQkEgLyogU2hhZG93UHNldWRvSWRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTExOTRCRDI3MEU3RTRBMDA2NEZDQkEg
LyogU2hhZG93UHNldWRvSWRzLmggKi87IH07CiAJCUU1MTY2OTkxMjBGRjk5MTgwMDlEMkMyNyAv
KiBMaXN0QnV0dG9uQXJyb3dAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNTE2Njk4RjIwRkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFy
cm93QDJ4LnBuZyAqLzsgfTsKQEAgLTE3MjI0LDYgKzE3MjI2LDcgQEAKIAkJRTQwM0I3OUYyNTFC
MTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MDNCN0ExMjUxQjExOTMwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlv
bkNvdmVyYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEludGVn
cmF0aW9uQ292ZXJhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIx
MTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDb2xvckRhdGEuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9Db2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlF
NDExNEIyNTI3NjBEQzM2MDA3Qjc4OUIgLyogQ1NTSW1wb3J0UnVsZStMYXllci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
IkNTU0ltcG9ydFJ1bGUrTGF5ZXIuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTQxNUVCMTEyNzBDMzUxMjAwRThEQTFCIC8qIElubGluZUl0ZXJhdG9ySW5saW5lQm94LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZXJhdG9ySW5saW5lQm94Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVFQjE0MjcwQzM1MzcwMEU4REExQiAv
KiBJbmxpbmVJdGVyYXRvcklubGluZUJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVJ
dGVyYXRvcklubGluZUJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTgw
MjUzMjNENDU0OUEwMEZGQjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI0MSw5ICsxNzI0NCw5IEBACiAJCUU0Mjk1
RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRQcmlvcml0eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDJFNzZEOTFDN0FGNzZDMDBFMzYxNEQgLyogU3R5bGVVcGRh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVVcGRhdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJFNzZEQjFDN0FGNzc2MDBFMzYx
NEQgLyogU3R5bGVVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5
bGVVcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQzMEMxQjcyNzAzMDk0
MTAwM0I1NTNGIC8qIENTU0xheWVyUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NMYXllclJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQzMEMxQjkyNzAzMDk0RTAwM0I1NTNG
IC8qIENTU0xheWVyUnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTTGF5ZXJSdWxlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTQzMEMxQkEyNzAzMEI4NjAwM0I1NTNGIC8qIENTU0xheWVyUnVs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NMYXllclJ1bGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDMwQzFCNzI3MDMwOTQxMDAzQjU1M0YgLyogQ1NTTGF5ZXJCbG9j
a1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTTGF5ZXJCbG9ja1J1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTQzMEMxQjkyNzAzMDk0RTAwM0I1NTNGIC8qIENTU0xheWVyQmxv
Y2tSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NMYXllckJsb2NrUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU0MzBDMUJBMjcwMzBCODYwMDNCNTUzRiAvKiBDU1NMYXllckJsb2NrUnVs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NMYXllckJsb2NrUnVsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MzEwNUI3MTY3NTBGMEMwMERCMkZCOCAvKiBOb2RlVHJh
dmVyc2FsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVUcmF2
ZXJzYWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDMxMDVCQTE2NzUwRjE2
MDBEQjJGQjggLyogTm9kZVRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOb2RlVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MzEy
QUI1MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25QYWdp
bmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDYwLDYgKzE3NDYz
LDkgQEAKIAkJRTRGOUVFRjAxNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVu
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEY5RUVGMTE1NkQ4NEM0MDBE
MjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0eWxlU2hlZXRDb250ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNEZCNEIzNTIzOUJFQjEwMDAzQzMzNkEgLyogTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0RkZDRUI4Mjc2MEFDMDAwMEE2
OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU0RkZDRUI5Mjc2MEFDMDAwMEE2OEIwMyAvKiBDU1NMYXllclN0YXRlbWVudFJ1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTRGRkNFQkEyNzYwQUMw
MTAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTUwNjIwODMyNTQwOTE5QjAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29udGFjdHNSZXF1ZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNTExOTRCRDI3MEU3RTRBMDA2NEZDQkEgLyogU2hhZG93UHNldWRvSWRzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYWRvd1BzZXVkb0lkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNTExOTRCRTI3MEU3RTRBMDA2NEZDQkEgLyogU2hhZG93UHNldWRvSWRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1BzZXVkb0lkcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zMTM4OSw2ICszMTM5NSw3IEBACiAJCQkJOTM5M0U1RkUxNTFBOTlGMjAw
MDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLywKIAkJCQlBODBFNkNENDBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDRDAwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltYWdlVmFsdWUuaCAqLywKKwkJCQlFNDExNEIyNTI3NjBEQzM2MDA3Qjc4OUIg
LyogQ1NTSW1wb3J0UnVsZStMYXllci5pZGwgKi8sCiAJCQkJQTgwRTZDQzEwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwICovLAogCQkJCUE4MEU2Q0NDMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbXBvcnRSdWxlLmggKi8sCiAJCQkJODVDNTZDQTkwQUE4OUU2NjAwRDk1NzU1IC8q
IENTU0ltcG9ydFJ1bGUuaWRsICovLApAQCAtMzEzOTgsOSArMzE0MDUsMTIgQEAKIAkJCQkzMTI4
OEU3MDBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8sCiAJCQkJMzEy
ODhFNzEwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lc1J1bGUuaCAqLywKIAkJCQkzMTZG
RTA5MjBFNkNDRDdGMDBCRjYwODggLyogQ1NTS2V5ZnJhbWVzUnVsZS5pZGwgKi8sCi0JCQkJRTQz
MEMxQkEyNzAzMEI4NjAwM0I1NTNGIC8qIENTU0xheWVyUnVsZS5jcHAgKi8sCi0JCQkJRTQzMEMx
QjcyNzAzMDk0MTAwM0I1NTNGIC8qIENTU0xheWVyUnVsZS5oICovLAotCQkJCUU0MzBDMUI5Mjcw
MzA5NEUwMDNCNTUzRiAvKiBDU1NMYXllclJ1bGUuaWRsICovLAorCQkJCUU0MzBDMUJBMjcwMzBC
ODYwMDNCNTUzRiAvKiBDU1NMYXllckJsb2NrUnVsZS5jcHAgKi8sCisJCQkJRTQzMEMxQjcyNzAz
MDk0MTAwM0I1NTNGIC8qIENTU0xheWVyQmxvY2tSdWxlLmggKi8sCisJCQkJRTQzMEMxQjkyNzAz
MDk0RTAwM0I1NTNGIC8qIENTU0xheWVyQmxvY2tSdWxlLmlkbCAqLywKKwkJCQlFNEZGQ0VCOTI3
NjBBQzAwMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmNwcCAqLywKKwkJCQlFNEZG
Q0VCODI3NjBBQzAwMDBBNjhCMDMgLyogQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmggKi8sCisJCQkJ
RTRGRkNFQkEyNzYwQUMwMTAwQTY4QjAzIC8qIENTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwgKi8s
CiAJCQkJQkM3NzJFMTUxMzMxNjJDMjAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUu
Y3BwICovLAogCQkJCUJDNzcyRTEyMTMzMTYyMEMwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29udGFp
blZhbHVlLmggKi8sCiAJCQkJOTQ2RDM3NDcxRDZEMDYwQzAwNzcwODRGIC8qIENTU01hcmt1cC5j
cHAgKi8sCkBAIC0zMzc2Nyw2ICszMzc3Nyw4IEBACiAJCQkJMzEyODhFNzMwRTMwMDVENjAwMzYx
OUFFIC8qIENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyODhFNzUwRTMw
MDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJB
NDEwN0E0MjZDQjY2RjgwMDNCRjc5NyAvKiBDU1NLZXl3b3JkVmFsdWUuaCBpbiBIZWFkZXJzICov
LAorCQkJCUU0RkZDRUJFMjc2MEFDMTYwMEE2OEIwMyAvKiBDU1NMYXllckJsb2NrUnVsZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTRGRkNFQkIyNzYwQUMwMTAwQTY4QjAzIC8qIENTU0xheWVyU3Rh
dGVtZW50UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NzJFMTMxMzMxNjIwQzAwMUVDOUNF
IC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NkQzNzRB
MUQ2RDA2MjgwMDc3MDg0RiAvKiBDU1NNYXJrdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRUY2
RkQzMjZFN0VDQTUwMDMyNkQwMiAvKiBDU1NNYXRoSW52ZXJ0LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCmluZGV4IDhj
NGM1NjE1YTM5ZjcxMzk1ZDdkYzdlOWI4ZmU3OWY2MTk3YzkyNjcuLjA5MGI3NmE1YmVmYTc1ZjE0
NTdkYjQzYjhjMTU4NmYwYzFiZGE4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDU1NSdWxlQ3VzdG9tLmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkNTU0lt
cG9ydFJ1bGUuaCIKICNpbmNsdWRlICJDU1NLZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NL
ZXlmcmFtZXNSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJCbG9ja1J1bGUuaCIKKyNpbmNsdWRl
ICJDU1NMYXllclN0YXRlbWVudFJ1bGUuaCIKICNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKICNp
bmNsdWRlICJDU1NOYW1lc3BhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKQEAg
LTQzLDYgKzQ1LDggQEAKICNpbmNsdWRlICJKU0NTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJK
U0NTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIkpTQ1NTS2V5ZnJhbWVzUnVsZS5oIgorI2lu
Y2x1ZGUgIkpTQ1NTTGF5ZXJCbG9ja1J1bGUuaCIKKyNpbmNsdWRlICJKU0NTU0xheWVyU3RhdGVt
ZW50UnVsZS5oIgogI2luY2x1ZGUgIkpTQ1NTTWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiSlNDU1NO
YW1lc3BhY2VSdWxlLmgiCiAjaW5jbHVkZSAiSlNDU1NQYWdlUnVsZS5oIgpAQCAtODgsNyArOTIs
MTMgQEAgSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEMKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBw
ZXI8Q1NTU3VwcG9ydHNSdWxlPihnbG9iYWxPYmplY3QsIFdURk1vdmUocnVsZSkpOwogICAgIGNh
c2UgQ1NTUnVsZTo6Q09VTlRFUl9TVFlMRV9SVUxFOgogICAgICAgICByZXR1cm4gY3JlYXRlV3Jh
cHBlcjxDU1NDb3VudGVyU3R5bGVSdWxlPihnbG9iYWxPYmplY3QsIFdURk1vdmUocnVsZSkpOwot
ICAgIGRlZmF1bHQ6CisgICAgY2FzZSBDU1NSdWxlOjpMQVlFUl9CTE9DS19SVUxFOgorICAgICAg
ICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NMYXllckJsb2NrUnVsZT4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKHJ1bGUpKTsKKyAgICBjYXNlIENTU1J1bGU6OkxBWUVSX1NUQVRFTUVOVF9SVUxFOgor
ICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NMYXllclN0YXRlbWVudFJ1bGU+KGdsb2Jh
bE9iamVjdCwgV1RGTW92ZShydWxlKSk7CisgICAgY2FzZSBDU1NSdWxlOjpVTktOT1dOX1JVTEU6
CisgICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6CisgICAgY2FzZSBDU1NSdWxlOjpNQVJH
SU5fUlVMRToKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTUnVsZT4oZ2xvYmFsT2Jq
ZWN0LCBXVEZNb3ZlKHJ1bGUpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1wb3J0UnVsZStMYXllci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1w
b3J0UnVsZStMYXllci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTExZWQ0NTYzNjc4MTg3NjJiOGRlMjcyYjE0
ZmU3NjM4MTRjODdmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bXBvcnRSdWxlK0xheWVyLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IK
KyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVm
IFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKworWworICAgIEV4cG9zZWQ9V2luZG93CitdIHBhcnRp
YWwgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGUgeworICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTT01T
dHJpbmc/IGxheWVyTmFtZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKaW5k
ZXggMjczNDkyYzgzNTIwNTlmMzRlNjhiMWI3M2E0NzdhNzA1NDI5ZTIyZi4uZTRmYjBkOGI4M2Yy
ZGY3MzJiOTk3ZmVmMTVhYTQ1Mzg0MmUxMTJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNTU0ltcG9ydFJ1bGUuaCIKIAorI2luY2x1ZGUgIkNTU0xheWVyQmxvY2tSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUg
IlN0eWxlUnVsZUltcG9ydC5oIgpAQCAtNTYsOSArNTcsMTMgQEAgTWVkaWFMaXN0JiBDU1NJbXBv
cnRSdWxlOjptZWRpYSgpIGNvbnN0CiAgICAgcmV0dXJuICptX21lZGlhQ1NTT01XcmFwcGVyOwog
fQogCi1jb25zdCBzdGQ6Om9wdGlvbmFsPENhc2NhZGVMYXllck5hbWU+JiBDU1NJbXBvcnRSdWxl
OjpjYXNjYWRlTGF5ZXJOYW1lKCkgY29uc3QKK1N0cmluZyBDU1NJbXBvcnRSdWxlOjpsYXllck5h
bWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2ltcG9ydFJ1bGUuZ2V0KCkuY2FzY2FkZUxheWVy
TmFtZSgpOworICAgIGF1dG8gbmFtZSA9IG1faW1wb3J0UnVsZS5nZXQoKS5jYXNjYWRlTGF5ZXJO
YW1lKCk7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKCpuYW1lKTsKIH0KIAogU3RyaW5nIENTU0ltcG9y
dFJ1bGU6OmNzc1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltcG9ydFJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmgKaW5kZXgg
YzliNzEyZGU1OWZhNjU5YTVkOWVlZDQzOGYyNDNhZTI3OGM0ODI2MC4uZGM1ZjIxM2RhMGQ0Y2Qz
ZjQ2NmZkNzc5NzkzNTFkYjg1MDZjZjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltcG9ydFJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5o
CkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHJl
ZigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhTGlzdCYgbWVkaWEoKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KCkgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qgc3RkOjpvcHRpb25hbDxDYXNjYWRlTGF5ZXJOYW1lPiYg
Y2FzY2FkZUxheWVyTmFtZSgpIGNvbnN0OworICAgIFN0cmluZyBsYXllck5hbWUoKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICBDU1NJbXBvcnRSdWxlKFN0eWxlUnVsZUltcG9ydCYsIENTU1N0eWxl
U2hlZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlN2UzZmJkNmZiYTllYTA1OTU4ZGQ4N2NhNzliYmYzYWFjMWZkOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuY3BwCkBAIC0wLDAg
KzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwor
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAq
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NM
YXllckJsb2NrUnVsZS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUg
IlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitDU1NMYXllckJsb2NrUnVsZTo6Q1NTTGF5ZXJCbG9ja1J1bGUo
U3R5bGVSdWxlTGF5ZXImIHJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkKKyAgICA6IENTU0dy
b3VwaW5nUnVsZShydWxlLCBwYXJlbnQpCit7CisgICAgQVNTRVJUKCFydWxlLmlzU3RhdGVtZW50
KCkpOworfQorCitSZWY8Q1NTTGF5ZXJCbG9ja1J1bGU+IENTU0xheWVyQmxvY2tSdWxlOjpjcmVh
dGUoU3R5bGVSdWxlTGF5ZXImIHJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NMYXllckJsb2NrUnVsZShydWxlLCBwYXJlbnQpKTsKK30K
KworU3RyaW5nIENTU0xheWVyQmxvY2tSdWxlOjpjc3NUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKKworICAgIHJlc3VsdC5hcHBlbmQoIkBsYXllciAiKTsKKyAgICBp
ZiAoYXV0byBuYW1lID0gdGhpcy0+bmFtZSgpOyAhbmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQobmFtZSwgIiAiKTsKKyAgICByZXN1bHQuYXBwZW5kKCJ7XG4iKTsKKyAgICBh
cHBlbmRDU1NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKKyAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CisK
KyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBDU1NMYXllckJsb2Nr
UnVsZTo6bmFtZSgpIGNvbnN0Cit7CisgICAgYXV0byYgbGF5ZXIgPSBkb3duY2FzdDxTdHlsZVJ1
bGVMYXllcj4oZ3JvdXBSdWxlKCkpOworCisgICAgaWYgKGxheWVyLm5hbWUoKS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisgICAgcmV0dXJuIHN0cmluZ0Zyb21D
YXNjYWRlTGF5ZXJOYW1lKGxheWVyLm5hbWUoKSk7Cit9CisKK1N0cmluZyBzdHJpbmdGcm9tQ2Fz
Y2FkZUxheWVyTmFtZShjb25zdCBDYXNjYWRlTGF5ZXJOYW1lJiBuYW1lKQoreworICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OworICAgIGZvciAoYXV0byYgc2VnbWVudCA6IG5hbWUpIHsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChzZWdtZW50KTsKKyAgICAgICAgaWYgKCZzZWdtZW50ICE9ICZuYW1l
Lmxhc3QoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0xheWVyQmxvY2tSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU2Nzk4MTI1YTI1
ZmFlZDk3YTUwOWRkYjRiMzBjYzNhZTEzMWU3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTR3JvdXBpbmdSdWxlLmgiCisjaW5jbHVk
ZSAiU3R5bGVSdWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTTGF5ZXJC
bG9ja1J1bGUgZmluYWwgOiBwdWJsaWMgQ1NTR3JvdXBpbmdSdWxlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPENTU0xheWVyQmxvY2tSdWxlPiBjcmVhdGUoU3R5bGVSdWxlTGF5ZXImLCBDU1NT
dHlsZVNoZWV0KiBwYXJlbnQpOworCisgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBmaW5hbDsK
KyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIENTU0xheWVyQmxvY2tS
dWxlKFN0eWxlUnVsZUxheWVyJiwgQ1NTU3R5bGVTaGVldCopOworICAgIENTU1J1bGU6OlR5cGUg
dHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIExBWUVSX0JMT0NLX1JVTEU7IH0KK307CisKK1N0
cmluZyBzdHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZShjb25zdCBDYXNjYWRlTGF5ZXJOYW1lJik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1Nf
UlVMRShDU1NMYXllckJsb2NrUnVsZSwgQ1NTUnVsZTo6TEFZRVJfQkxPQ0tfUlVMRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllckJsb2NrUnVsZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5YjcyMjJmOTIw
MGY2YzNmN2RmZGYwN2M3ZTAwMzdkZGRkYzdlZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGF5ZXJCbG9ja1J1bGUuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgor
ICovCisKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5nOworCitbCisgICAgRXhwb3NlZD1X
aW5kb3cKK10gaW50ZXJmYWNlIENTU0xheWVyQmxvY2tSdWxlIDogQ1NTR3JvdXBpbmdSdWxlIHsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgbmFtZTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NMYXllclJ1bGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2I0ODJj
MjZmZGJlYmM3MDEzNDdkODY4MzE3ZDMzZjNhNzEwNjdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUiAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0g
KiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0xheWVyUnVsZS5oIgotCi0jaW5jbHVkZSAiQ1NTU3R5
bGVTaGVldC5oIgotI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DU1NMYXllclJ1bGU6OkNT
U0xheWVyUnVsZShTdHlsZVJ1bGVMYXllciYgcnVsZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQot
ICAgIDogQ1NTR3JvdXBpbmdSdWxlKHJ1bGUsIHBhcmVudCkKLXsKLX0KLQotUmVmPENTU0xheWVy
UnVsZT4gQ1NTTGF5ZXJSdWxlOjpjcmVhdGUoU3R5bGVSdWxlTGF5ZXImIHJ1bGUsIENTU1N0eWxl
U2hlZXQqIHBhcmVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NMYXllclJ1bGUo
cnVsZSwgcGFyZW50KSk7Ci19Ci0KLVN0cmluZyBDU1NMYXllclJ1bGU6OmNzc1RleHQoKSBjb25z
dAotewotICAgIGF1dG8mIGxheWVyID0gZG93bmNhc3Q8U3R5bGVSdWxlTGF5ZXI+KGdyb3VwUnVs
ZSgpKTsKLQotICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwotCi0gICAgaWYgKGxheWVyLmlzU3Rh
dGVtZW50KCkpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiQGxheWVyICIpOwotICAgICAgICBm
b3IgKGF1dG8mIG5hbWUgOiBsYXllci5uYW1lTGlzdCgpKSB7Ci0gICAgICAgICAgICByZXN1bHQu
YXBwZW5kKHN0cmluZ0Zyb21DYXNjYWRlTGF5ZXJOYW1lKG5hbWUpKTsKLSAgICAgICAgICAgIGlm
ICgmbmFtZSAhPSAmbGF5ZXIubmFtZUxpc3QoKS5sYXN0KCkpCi0gICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgiLCAiKTsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7
Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICByZXN1bHQu
YXBwZW5kKCJAbGF5ZXIgIik7Ci0gICAgaWYgKGF1dG8gbmFtZSA9IGxheWVyTmFtZSgpKQotICAg
ICAgICByZXN1bHQuYXBwZW5kKCpuYW1lLCAiICIpOwotICAgIHJlc3VsdC5hcHBlbmQoIntcbiIp
OwotICAgIGFwcGVuZENTU1RleHRGb3JJdGVtcyhyZXN1bHQpOwotICAgIHJlc3VsdC5hcHBlbmQo
J30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBDU1NMYXllclJ1bGU6OmxheWVyTmFtZSgpIGNvbnN0Ci17Ci0gICAgYXV0byYgbGF5
ZXIgPSBkb3duY2FzdDxTdHlsZVJ1bGVMYXllcj4oZ3JvdXBSdWxlKCkpOwotCi0gICAgaWYgKCFs
YXllci5pc1N0YXRlbWVudCgpICYmICFsYXllci5uYW1lKCkuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUobGF5ZXIubmFtZSgpKTsKLSAgICAKLSAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCi1TdHJpbmcgQ1NTTGF5ZXJSdWxlOjpzdHJpbmdG
cm9tQ2FzY2FkZUxheWVyTmFtZShjb25zdCBDYXNjYWRlTGF5ZXJOYW1lJiBuYW1lKQotewotICAg
IFN0cmluZ0J1aWxkZXIgcmVzdWx0OwotICAgIGZvciAoYXV0byYgc2VnbWVudCA6IG5hbWUpIHsK
LSAgICAgICAgcmVzdWx0LmFwcGVuZChzZWdtZW50KTsKLSAgICAgICAgaWYgKCZzZWdtZW50ICE9
ICZuYW1lLmxhc3QoKSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGIwZDJlZDRjYTZjMTU5YTlhZTVjYTEzYWE4Mzk5NDE4ODU0MTIyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TGF5ZXJSdWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU0dyb3VwaW5nUnVsZS5oIgotI2luY2x1ZGUgIlN0
eWxlUnVsZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFN0eWxlUnVsZUxheWVy
OwotCi1jbGFzcyBDU1NMYXllclJ1bGUgZmluYWwgOiBwdWJsaWMgQ1NTR3JvdXBpbmdSdWxlIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0xheWVyUnVsZT4gY3JlYXRlKFN0eWxlUnVsZUxh
eWVyJiwgQ1NTU3R5bGVTaGVldCogcGFyZW50KTsKLQotICAgIFN0cmluZyBjc3NUZXh0KCkgY29u
c3QgZmluYWw7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxheWVyTmFtZSgpIGNvbnN0Owot
Ci0gICAgc3RhdGljIFN0cmluZyBzdHJpbmdGcm9tQ2FzY2FkZUxheWVyTmFtZShjb25zdCBDYXNj
YWRlTGF5ZXJOYW1lJik7Ci0KLXByaXZhdGU6Ci0gICAgQ1NTTGF5ZXJSdWxlKFN0eWxlUnVsZUxh
eWVyJiwgQ1NTU3R5bGVTaGVldCopOwotICAgIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIExBWUVSX1JVTEU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfUlVMRShDU1NMYXllclJ1bGUsIENTU1J1bGU6
OkxBWUVSX1JVTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJSdWxl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZGRkYTllMDA3NWQ5ODc4OWJkNDRlMjhlNjY0Y2M0MmIwMGRiZmU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NMYXllclJ1bGUuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQot
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBE
QU1BR0UuCi0gKi8KLQotWwotICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBDU1NMYXll
clJ1bGUgOiBDU1NHcm91cGluZ1J1bGUgewotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xh
eWVyU3RhdGVtZW50UnVsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVmNmJkYzBmNGQzNTQyODQ1NDVhZjE3
MTEyMzJkMTQxMGM1N2NkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NMYXllclN0YXRlbWVudFJ1bGUuY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NMYXllclN0YXRlbWVudFJ1bGUuaCIKKwor
I2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlOjpDU1NMYXllclN0YXRlbWVudFJ1bGUoU3R5bGVSdWxlTGF5
ZXImIHJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkKKyAgICA6IENTU1J1bGUocGFyZW50KQor
ICAgICwgbV9sYXllclJ1bGUocnVsZSkKK3sKKyAgICBBU1NFUlQocnVsZS5pc1N0YXRlbWVudCgp
KTsKK30KKworUmVmPENTU0xheWVyU3RhdGVtZW50UnVsZT4gQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxl
OjpjcmVhdGUoU3R5bGVSdWxlTGF5ZXImIHJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NMYXllclN0YXRlbWVudFJ1bGUocnVsZSwgcGFy
ZW50KSk7Cit9CisKK1N0cmluZyBDU1NMYXllclN0YXRlbWVudFJ1bGU6OmNzc1RleHQoKSBjb25z
dAoreworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworCisgICAgcmVzdWx0LmFwcGVuZCgiQGxh
eWVyICIpOworCisgICAgYXV0byBuYW1lTGlzdCA9IHRoaXMtPm5hbWVMaXN0KCk7CisgICAgZm9y
IChhdXRvJiBuYW1lIDogbmFtZUxpc3QpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChuYW1lKTsK
KyAgICAgICAgaWYgKCZuYW1lICE9ICZuYW1lTGlzdC5sYXN0KCkpCisgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKCIsICIpOworICAgIH0KKyAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CisKKyAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IENTU0xheWVyU3Rh
dGVtZW50UnVsZTo6bmFtZUxpc3QoKSBjb25zdAoreworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3Vs
dDsKKworICAgIGZvciAoYXV0byYgbmFtZSA6IG1fbGF5ZXJSdWxlLmdldCgpLm5hbWVMaXN0KCkp
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nRnJvbUNhc2NhZGVMYXllck5hbWUobmFtZSkp
OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBDU1NMYXllclN0YXRlbWVudFJ1bGU6
OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCit7CisgICAgbV9sYXllclJ1bGUgPSBzdGF0
aWNfY2FzdDxTdHlsZVJ1bGVMYXllciY+KHJ1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMYXllclN0YXRlbWVudFJ1bGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNWNkZTA4NDBmMTcwOGI3YzE1MDY4MTM3M2I2MmY5MjEwN2Y2MTFkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5oCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICog
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YK
KyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTR3Jv
dXBpbmdSdWxlLmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGZpbmFsIDogcHVibGljIENTU1J1bGUg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q1NTTGF5ZXJTdGF0ZW1lbnRSdWxlPiBjcmVhdGUo
U3R5bGVSdWxlTGF5ZXImLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnQpOworCisgICAgU3RyaW5nIGNz
c1RleHQoKSBjb25zdCBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBuYW1lTGlzdCgpIGNvbnN0
OworCitwcml2YXRlOgorICAgIENTU0xheWVyU3RhdGVtZW50UnVsZShTdHlsZVJ1bGVMYXllciYs
IENTU1N0eWxlU2hlZXQqKTsKKyAgICBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBMQVlFUl9TVEFURU1FTlRfUlVMRTsgfQorICAgIHZvaWQgcmVhdHRhY2goU3R5bGVS
dWxlQmFzZSYpIGZpbmFsOworCisgICAgUmVmPFN0eWxlUnVsZUxheWVyPiBtX2xheWVyUnVsZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19D
U1NfUlVMRShDU1NMYXllclN0YXRlbWVudFJ1bGUsIENTU1J1bGU6OkxBWUVSX1NUQVRFTUVOVF9S
VUxFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVs
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYmY4OWI3NzE4ZDcxZDMxYTMzNTlhNDgxN2QwMTA1MmFlOTc4ODU5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xheWVyU3RhdGVtZW50UnVsZS5pZGwK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJp
bmc7CisKK1sKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlIDogQ1NTUnVsZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PENT
U09NU3RyaW5nPiBuYW1lTGlzdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaAppbmRleCA5NzQ0YThiYzlm
MmI1ZTdmZjI5NDNkNjdjNDE2ZjI0OTQ0MDYzYjc0Li42NGFkYWRhNWE5YjhiYmMwYTdiMGU5YWFl
NTE3MmNmN2EyNjEzYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKQEAgLTUxLDcgKzUxLDggQEAgcHVi
bGljOgogICAgICAgICBOQU1FU1BBQ0VfUlVMRSA9IDEwLAogICAgICAgICBDT1VOVEVSX1NUWUxF
X1JVTEUgPSAxMSwKICAgICAgICAgU1VQUE9SVFNfUlVMRSA9IDEyLAotICAgICAgICBMQVlFUl9S
VUxFID0gMTYsCisgICAgICAgIExBWUVSX0JMT0NLX1JVTEUgPSAxNiwKKyAgICAgICAgTEFZRVJf
U1RBVEVNRU5UX1JVTEUgPSAxNywKICAgICAgICAgRk9OVF9QQUxFVFRFX1ZBTFVFU19SVUxFID0g
MTksCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAppbmRleCAwMmVjMWZlMTY3MTQ0
Mzc4ZWUwMWUwNWM2NDNhYzhkMzZkYjMyMTNiLi44OGYwMmNiOGE3ZmZkNjk0OGRiZGJkMzIxOTNl
M2NiYWM5MDE3YWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMjksNyArMjksOCBA
QAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJDU1NLZXlmcmFtZVJ1bGUu
aCIKICNpbmNsdWRlICJDU1NLZXlmcmFtZXNSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTTGF5ZXJSdWxl
LmgiCisjaW5jbHVkZSAiQ1NTTGF5ZXJCbG9ja1J1bGUuaCIKKyNpbmNsdWRlICJDU1NMYXllclN0
YXRlbWVudFJ1bGUuaCIKICNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKICNpbmNsdWRlICJDU1NO
YW1lc3BhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKQEAgLTk5LDcgKzEwMCw4
IEBAIHZvaWQgU3R5bGVSdWxlQmFzZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBTdHlsZVJ1bGVUeXBl
OjpDb3VudGVyU3R5bGU6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxTdHlsZVJ1bGVDb3VudGVy
U3R5bGU+KHRoaXMpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpM
YXllcjoKKyAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyQmxvY2s6CisgICAgY2FzZSBTdHls
ZVJ1bGVUeXBlOjpMYXllclN0YXRlbWVudDoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PFN0eWxl
UnVsZUxheWVyPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3R5bGVSdWxlVHlw
ZTo6VW5rbm93bjoKQEAgLTEyOCw3ICsxMzAsOCBAQCBSZWY8U3R5bGVSdWxlQmFzZT4gU3R5bGVS
dWxlQmFzZTo6Y29weSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVL
ZXlmcmFtZXM+KCp0aGlzKS5jb3B5KCk7CiAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpDb3VudGVy
U3R5bGU6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVDb3VudGVyU3R5bGU+KCp0
aGlzKS5jb3B5KCk7Ci0gICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllcjoKKyAgICBjYXNlIFN0
eWxlUnVsZVR5cGU6OkxheWVyQmxvY2s6CisgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllclN0
YXRlbWVudDoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPigqdGhpcyku
Y29weSgpOwogICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6SW1wb3J0OgogICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6TmFtZXNwYWNlOgpAQCAtMTc3LDggKzE4MCwxMSBAQCBSZWY8Q1NTUnVsZT4gU3R5
bGVSdWxlQmFzZTo6Y3JlYXRlQ1NTT01XcmFwcGVyKENTU1N0eWxlU2hlZXQqIHBhcmVudFNoZWV0
LCBDU1NSdQogICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6Q291bnRlclN0eWxlOgogICAgICAgICBy
dWxlID0gQ1NTQ291bnRlclN0eWxlUnVsZTo6Y3JlYXRlKGRvd25jYXN0PFN0eWxlUnVsZUNvdW50
ZXJTdHlsZT4oc2VsZiksIHBhcmVudFNoZWV0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBT
dHlsZVJ1bGVUeXBlOjpMYXllcjoKLSAgICAgICAgcnVsZSA9IENTU0xheWVyUnVsZTo6Y3JlYXRl
KGRvd25jYXN0PFN0eWxlUnVsZUxheWVyPihzZWxmKSwgcGFyZW50U2hlZXQpOworICAgIGNhc2Ug
U3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jazoKKyAgICAgICAgcnVsZSA9IENTU0xheWVyQmxvY2tS
dWxlOjpjcmVhdGUoZG93bmNhc3Q8U3R5bGVSdWxlTGF5ZXI+KHNlbGYpLCBwYXJlbnRTaGVldCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQ6
CisgICAgICAgIHJ1bGUgPSBDU1NMYXllclN0YXRlbWVudFJ1bGU6OmNyZWF0ZShkb3duY2FzdDxT
dHlsZVJ1bGVMYXllcj4oc2VsZiksIHBhcmVudFNoZWV0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTdHlsZVJ1bGVUeXBlOjpVbmtub3duOgogICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6Q2hh
cnNldDoKQEAgLTQ3OSwxOSArNDg1LDE5IEBAIFJlZjxTdHlsZVJ1bGVTdXBwb3J0cz4gU3R5bGVS
dWxlU3VwcG9ydHM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQsIGJvCiB9CiAK
IFN0eWxlUnVsZUxheWVyOjpTdHlsZVJ1bGVMYXllcihWZWN0b3I8Q2FzY2FkZUxheWVyTmFtZT4m
JiBuYW1lTGlzdCkKLSAgICA6IFN0eWxlUnVsZUdyb3VwKFN0eWxlUnVsZVR5cGU6OkxheWVyLCBW
ZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiB7IH0pCisgICAgOiBTdHlsZVJ1bGVHcm91cChT
dHlsZVJ1bGVUeXBlOjpMYXllclN0YXRlbWVudCwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNl
Pj4geyB9KQogICAgICwgbV9uYW1lVmFyaWFudChXVEZNb3ZlKG5hbWVMaXN0KSkKIHsKIH0KIAog
U3R5bGVSdWxlTGF5ZXI6OlN0eWxlUnVsZUxheWVyKENhc2NhZGVMYXllck5hbWUmJiBuYW1lLCBW
ZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmIHJ1bGVzKQotICAgIDogU3R5bGVSdWxlR3Jv
dXAoU3R5bGVSdWxlVHlwZTo6TGF5ZXIsIFdURk1vdmUocnVsZXMpKQorICAgIDogU3R5bGVSdWxl
R3JvdXAoU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jaywgV1RGTW92ZShydWxlcykpCiAgICAgLCBt
X25hbWVWYXJpYW50KFdURk1vdmUobmFtZSkpCiB7CiB9CiAKIFN0eWxlUnVsZUxheWVyOjpTdHls
ZVJ1bGVMYXllcihDYXNjYWRlTGF5ZXJOYW1lJiYgbmFtZSwgc3RkOjp1bmlxdWVfcHRyPERlZmVy
cmVkU3R5bGVHcm91cFJ1bGVMaXN0PiYmIHJ1bGVzKQotICAgIDogU3R5bGVSdWxlR3JvdXAoU3R5
bGVSdWxlVHlwZTo6TGF5ZXIsIFdURk1vdmUocnVsZXMpKQorICAgIDogU3R5bGVSdWxlR3JvdXAo
U3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jaywgV1RGTW92ZShydWxlcykpCiAgICAgLCBtX25hbWVW
YXJpYW50KFdURk1vdmUobmFtZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKaW5kZXggYjQz
OWEwZDJmMGFkMjVmMzcyM2ViMGM2ZjRjZWY1NDYyZjIyZWFkZS4uNDhkYzEyODQwNzIwYTFhMTc2
OWFjNTEzNjAzYTA3MmQ1MTllYWE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaApAQCAtNjAsMTAg
KzYwLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzTWVkaWFSdWxlKCkgY29uc3QgeyByZXR1cm4g
dHlwZSgpID09IFN0eWxlUnVsZVR5cGU6Ok1lZGlhOyB9CiAgICAgYm9vbCBpc1BhZ2VSdWxlKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OlBhZ2U7IH0KICAgICBib29s
IGlzU3R5bGVSdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OlN0
eWxlOyB9Ci0gICAgYm9vbCBpc0dyb3VwUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBT
dHlsZVJ1bGVUeXBlOjpNZWRpYSB8fCB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHMg
fHwgdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OkxheWVyOyB9CisgICAgYm9vbCBpc0dyb3VwUnVs
ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVUeXBlOjpNZWRpYSB8fCB0eXBl
KCkgPT0gU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHMgfHwgdHlwZSgpID09IFN0eWxlUnVsZVR5cGU6
OkxheWVyQmxvY2s7IH0KICAgICBib29sIGlzU3VwcG9ydHNSdWxlKCkgY29uc3QgeyByZXR1cm4g
dHlwZSgpID09IFN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzOyB9CiAgICAgYm9vbCBpc0ltcG9ydFJ1
bGUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxlVHlwZTo6SW1wb3J0OyB9Ci0g
ICAgYm9vbCBpc0xheWVyUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZVJ1bGVU
eXBlOjpMYXllcjsgfQorICAgIGJvb2wgaXNMYXllclJ1bGUoKSBjb25zdCB7IHJldHVybiB0eXBl
KCkgPT0gU3R5bGVSdWxlVHlwZTo6TGF5ZXJCbG9jayB8fCB0eXBlKCkgPT0gU3R5bGVSdWxlVHlw
ZTo6TGF5ZXJTdGF0ZW1lbnQ7IH0KIAogICAgIFJlZjxTdHlsZVJ1bGVCYXNlPiBjb3B5KCkgY29u
c3Q7CiAKQEAgLTI5OCw3ICsyOTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTdHlsZVJ1
bGVMYXllcj4gY3JlYXRlQmxvY2soQ2FzY2FkZUxheWVyTmFtZSYmLCBzdGQ6OnVuaXF1ZV9wdHI8
RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+JiYpOwogICAgIFJlZjxTdHlsZVJ1bGVMYXllcj4g
Y29weSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlTGF5ZXIoKnRoaXMp
KTsgfQogCi0gICAgYm9vbCBpc1N0YXRlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8VmVjdG9yPENhc2NhZGVMYXllck5hbWU+PihtX25hbWVWYXJpYW50KTsgfQor
ICAgIGJvb2wgaXNTdGF0ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gU3R5bGVSdWxl
VHlwZTo6TGF5ZXJTdGF0ZW1lbnQ7IH0KIAogICAgIGF1dG8mIG5hbWUoKSBjb25zdCB7IHJldHVy
biBzdGQ6OmdldDxDYXNjYWRlTGF5ZXJOYW1lPihtX25hbWVWYXJpYW50KTsgfQogICAgIGF1dG8m
IG5hbWVMaXN0KCkgY29uc3QgeyByZXR1cm4gc3RkOjpnZXQ8VmVjdG9yPENhc2NhZGVMYXllck5h
bWU+PihtX25hbWVWYXJpYW50KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUnVsZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVUeXBlLmgKaW5kZXgg
NjM4ZmZiYjliYTVmYzI0ODI3YmVjNzBiMDdhODhlNzA5NTg4ZGZmMS4uMzY4NDY1ZDZmNDc0ZWIz
ZTcxMTIyMjM3N2UwYmNhMTM0YTE5M2JlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlVHlwZS5o
CkBAIC00MCw3ICs0MCw4IEBAIGVudW0gY2xhc3MgU3R5bGVSdWxlVHlwZSA6IHVpbnQ4X3Qgewog
ICAgIE5hbWVzcGFjZSA9IDEwLAogICAgIENvdW50ZXJTdHlsZSA9IDExLAogICAgIFN1cHBvcnRz
ID0gMTIsCi0gICAgTGF5ZXIgPSAxNiwKKyAgICBMYXllckJsb2NrID0gMTYsCisgICAgTGF5ZXJT
dGF0ZW1lbnQgPSAxNywKICAgICBGb250UGFsZXR0ZVZhbHVlcyA9IDE5LAogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCA2NThlODRkYjg4OTExNzhk
NTk0ZjM0YmQzOWE2YzMzYWQ4YzU5MWNiLi5hYzVkMDkzYWY2NDZmY2ViYWI1ZTM0MGE1Yjc4ZGRk
MWRmZjRiZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcApA
QCAtNDU4LDcgKzQ1OCw3IEBAIHN0YXRpYyBib29sIHRyYXZlcnNlUnVsZXNJblZlY3Rvcihjb25z
dCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgcnVsZXMsIGNvCiAgICAgICAgIHN3aXRj
aCAocnVsZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TWVkaWE6CiAg
ICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHM6Ci0gICAgICAgIGNhc2UgU3R5bGVS
dWxlVHlwZTo6TGF5ZXI6IHsKKyAgICAgICAgY2FzZSBTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2Nr
OiB7CiAgICAgICAgICAgICBhdXRvKiBjaGlsZFJ1bGVzID0gZG93bmNhc3Q8U3R5bGVSdWxlR3Jv
dXA+KCpydWxlKS5jaGlsZFJ1bGVzV2l0aG91dERlZmVycmVkUGFyc2luZygpOwogICAgICAgICAg
ICAgaWYgKGNoaWxkUnVsZXMgJiYgdHJhdmVyc2VSdWxlc0luVmVjdG9yKCpjaGlsZFJ1bGVzLCBo
YW5kbGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ3Nyw2ICs0NzcsNyBA
QCBzdGF0aWMgYm9vbCB0cmF2ZXJzZVJ1bGVzSW5WZWN0b3IoY29uc3QgVmVjdG9yPFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPj4mIHJ1bGVzLCBjbwogICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OkNo
YXJzZXQ6CiAgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6Q291bnRlclN0eWxlOgogICAgICAg
ICBjYXNlIFN0eWxlUnVsZVR5cGU6OktleWZyYW1lOgorICAgICAgICBjYXNlIFN0eWxlUnVsZVR5
cGU6OkxheWVyU3RhdGVtZW50OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
CkBAIC01MTksNyArNTIwLDggQEAgYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnRyYXZlcnNlU3Vi
cmVzb3VyY2VzKGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgQ2FjaGVkUmUKICAgICAgICAgY2Fz
ZSBTdHlsZVJ1bGVUeXBlOjpDaGFyc2V0OgogICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6Oktl
eWZyYW1lOgogICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6OlN1cHBvcnRzOgotICAgICAgICBj
YXNlIFN0eWxlUnVsZVR5cGU6OkxheWVyOgorICAgICAgICBjYXNlIFN0eWxlUnVsZVR5cGU6Okxh
eWVyQmxvY2s6CisgICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6TGF5ZXJTdGF0ZW1lbnQ6CiAg
ICAgICAgIGNhc2UgU3R5bGVSdWxlVHlwZTo6Rm9udFBhbGV0dGVWYWx1ZXM6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJJbXBsLmNwcAppbmRleCBmZGExZTRmNDljM2YxNWE5ZTQ3MjBlOWYyZDUwMDVhOTYy
ZTRjMDJiLi4zYzYwODNmMThhZWRmMTRkNWM2Yzg2NGE1ZTAxMTQxOTJlNzI2MDgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAKQEAgLTgxMSw3ICs4MTEs
NyBAQCBSZWZQdHI8U3R5bGVSdWxlTGF5ZXI+IENTU1BhcnNlckltcGw6OmNvbnN1bWVMYXllclJ1
bGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSBwcmVsdQogCiAgICAgICAgIGlmIChtX29ic2VydmVyV3Jh
cHBlcikgewogICAgICAgICAgICAgdW5zaWduZWQgZW5kT2Zmc2V0ID0gbV9vYnNlcnZlcldyYXBw
ZXItPmVuZE9mZnNldChwcmVsdWRlQ29weSk7Ci0gICAgICAgICAgICBtX29ic2VydmVyV3JhcHBl
ci0+b2JzZXJ2ZXIoKS5zdGFydFJ1bGVIZWFkZXIoU3R5bGVSdWxlVHlwZTo6TGF5ZXIsIG1fb2Jz
ZXJ2ZXJXcmFwcGVyLT5zdGFydE9mZnNldChwcmVsdWRlQ29weSkpOworICAgICAgICAgICAgbV9v
YnNlcnZlcldyYXBwZXItPm9ic2VydmVyKCkuc3RhcnRSdWxlSGVhZGVyKFN0eWxlUnVsZVR5cGU6
OkxheWVyU3RhdGVtZW50LCBtX29ic2VydmVyV3JhcHBlci0+c3RhcnRPZmZzZXQocHJlbHVkZUNv
cHkpKTsKICAgICAgICAgICAgIG1fb2JzZXJ2ZXJXcmFwcGVyLT5vYnNlcnZlcigpLmVuZFJ1bGVI
ZWFkZXIoZW5kT2Zmc2V0KTsKICAgICAgICAgICAgIG1fb2JzZXJ2ZXJXcmFwcGVyLT5vYnNlcnZl
cigpLnN0YXJ0UnVsZUJvZHkoZW5kT2Zmc2V0KTsKICAgICAgICAgICAgIG1fb2JzZXJ2ZXJXcmFw
cGVyLT5vYnNlcnZlcigpLmVuZFJ1bGVCb2R5KGVuZE9mZnNldCk7CkBAIC04MzIsNyArODMyLDcg
QEAgUmVmUHRyPFN0eWxlUnVsZUxheWVyPiBDU1NQYXJzZXJJbXBsOjpjb25zdW1lTGF5ZXJSdWxl
KENTU1BhcnNlclRva2VuUmFuZ2UgcHJlbHUKICAgICAgICAgcmV0dXJuIFN0eWxlUnVsZUxheWVy
OjpjcmVhdGVCbG9jayhXVEZNb3ZlKCpuYW1lKSwgbWFrZVVuaXF1ZTxEZWZlcnJlZFN0eWxlR3Jv
dXBSdWxlTGlzdD4oKmJsb2NrLCAqbV9kZWZlcnJlZFBhcnNlcikpOwogCiAgICAgaWYgKG1fb2Jz
ZXJ2ZXJXcmFwcGVyKSB7Ci0gICAgICAgIG1fb2JzZXJ2ZXJXcmFwcGVyLT5vYnNlcnZlcigpLnN0
YXJ0UnVsZUhlYWRlcihTdHlsZVJ1bGVUeXBlOjpMYXllciwgbV9vYnNlcnZlcldyYXBwZXItPnN0
YXJ0T2Zmc2V0KHByZWx1ZGVDb3B5KSk7CisgICAgICAgIG1fb2JzZXJ2ZXJXcmFwcGVyLT5vYnNl
cnZlcigpLnN0YXJ0UnVsZUhlYWRlcihTdHlsZVJ1bGVUeXBlOjpMYXllckJsb2NrLCBtX29ic2Vy
dmVyV3JhcHBlci0+c3RhcnRPZmZzZXQocHJlbHVkZUNvcHkpKTsKICAgICAgICAgbV9vYnNlcnZl
cldyYXBwZXItPm9ic2VydmVyKCkuZW5kUnVsZUhlYWRlcihtX29ic2VydmVyV3JhcHBlci0+ZW5k
T2Zmc2V0KHByZWx1ZGVDb3B5KSk7CiAgICAgICAgIG1fb2JzZXJ2ZXJXcmFwcGVyLT5vYnNlcnZl
cigpLnN0YXJ0UnVsZUJvZHkobV9vYnNlcnZlcldyYXBwZXItPnByZXZpb3VzVG9rZW5TdGFydE9m
ZnNldCgqYmxvY2spKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggMWU4MzI1OWUzZGNkODBhN2NlYzNlMTU4NzBhNzBm
OTAyNzA1Y2I4Mi4uNzg4MmEwNTc1ZTVhZmYyMTdhOGJkZjM4MmFlNTJiMjgzN2VhZjIwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApA
QCAtMjgsNyArMjgsOCBAQAogCiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUg
IkNTU0tleWZyYW1lc1J1bGUuaCIKLSNpbmNsdWRlICJDU1NMYXllclJ1bGUuaCIKKyNpbmNsdWRl
ICJDU1NMYXllckJsb2NrUnVsZS5oIgorI2luY2x1ZGUgIkNTU0xheWVyU3RhdGVtZW50UnVsZS5o
IgogI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2lu
Y2x1ZGUgIkNTU1BhcnNlck9ic2VydmVyLmgiCkBAIC0xMDcsNyArMTA4LDcgQEAgc3RhdGljIHZv
aWQgZmxhdHRlblNvdXJjZURhdGEoUnVsZVNvdXJjZURhdGFMaXN0JiBkYXRhTGlzdCwgUnVsZVNv
dXJjZURhdGFMaXN0JgogICAgIGZvciAoYXV0byYgZGF0YSA6IGRhdGFMaXN0KSB7CiAgICAgICAg
IGlmIChkYXRhLT50eXBlID09IFdlYkNvcmU6OlN0eWxlUnVsZVR5cGU6OlN0eWxlKQogICAgICAg
ICAgICAgdGFyZ2V0LmFwcGVuZChkYXRhLmNvcHlSZWYoKSk7Ci0gICAgICAgIGVsc2UgaWYgKGRh
dGEtPnR5cGUgPT0gV2ViQ29yZTo6U3R5bGVSdWxlVHlwZTo6TWVkaWEgfHwgZGF0YS0+dHlwZSA9
PSBXZWJDb3JlOjpTdHlsZVJ1bGVUeXBlOjpTdXBwb3J0cyB8fCBkYXRhLT50eXBlID09IFdlYkNv
cmU6OlN0eWxlUnVsZVR5cGU6OkxheWVyKQorICAgICAgICBlbHNlIGlmIChkYXRhLT50eXBlID09
IFdlYkNvcmU6OlN0eWxlUnVsZVR5cGU6Ok1lZGlhIHx8IGRhdGEtPnR5cGUgPT0gV2ViQ29yZTo6
U3R5bGVSdWxlVHlwZTo6U3VwcG9ydHMgfHwgZGF0YS0+dHlwZSA9PSBXZWJDb3JlOjpTdHlsZVJ1
bGVUeXBlOjpMYXllckJsb2NrKQogICAgICAgICAgICAgZmxhdHRlblNvdXJjZURhdGEoZGF0YS0+
Y2hpbGRSdWxlcywgdGFyZ2V0KTsKICAgICB9CiB9CkBAIC00MjYsOCArNDI3LDggQEAgc3RhdGlj
IFJlZlB0cjxDU1NSdWxlTGlzdD4gYXNDU1NSdWxlTGlzdChDU1NSdWxlKiBydWxlKQogICAgIGlm
IChpczxDU1NTdXBwb3J0c1J1bGU+KCpydWxlKSkKICAgICAgICAgcmV0dXJuICZkb3duY2FzdDxD
U1NTdXBwb3J0c1J1bGU+KCpydWxlKS5jc3NSdWxlcygpOwogCi0gICAgaWYgKGlzPENTU0xheWVy
UnVsZT4oKnJ1bGUpKQotICAgICAgICByZXR1cm4gJmRvd25jYXN0PENTU0xheWVyUnVsZT4oKnJ1
bGUpLmNzc1J1bGVzKCk7CisgICAgaWYgKGlzPENTU0xheWVyQmxvY2tSdWxlPigqcnVsZSkpCisg
ICAgICAgIHJldHVybiAmZG93bmNhc3Q8Q1NTTGF5ZXJCbG9ja1J1bGU+KCpydWxlKS5jc3NSdWxl
cygpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC00NTAsMTEgKzQ1MSwxMiBAQCBzdGF0
aWMgUmVmPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc+PiBidWlsZEFycmF5
Rm9yR3JvdXBpbmdzKENTU1J1bAogICAgICAgICAgICAgICAgIHJ1bGVHcm91cGluZ1BheWxvYWRz
LmFwcGVuZChXVEZNb3ZlKG1lZGlhUnVsZVBheWxvYWQpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIGlmIChpczxDU1NJbXBvcnRSdWxlPihwYXJlbnRSdWxlKSkgewotICAgICAgICAg
ICAgaWYgKGF1dG8mIGxheWVyTmFtZSA9IGRvd25jYXN0PENTU0ltcG9ydFJ1bGU+KHBhcmVudFJ1
bGUpLT5jYXNjYWRlTGF5ZXJOYW1lKCkpIHsKKyAgICAgICAgICAgIGF1dG8gbGF5ZXJOYW1lID0g
ZG93bmNhc3Q8Q1NTSW1wb3J0UnVsZT4ocGFyZW50UnVsZSktPmxheWVyTmFtZSgpOworICAgICAg
ICAgICAgaWYgKCFsYXllck5hbWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIGxh
eWVyUnVsZVBheWxvYWQgPSBQcm90b2NvbDo6Q1NTOjpHcm91cGluZzo6Y3JlYXRlKCkKICAgICAg
ICAgICAgICAgICAgICAgLnNldFR5cGUoUHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc6OlR5cGU6Okxh
eWVySW1wb3J0UnVsZSkKICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKLSAgICAgICAg
ICAgICAgICBsYXllclJ1bGVQYXlsb2FkLT5zZXRUZXh0KENTU0xheWVyUnVsZTo6c3RyaW5nRnJv
bUNhc2NhZGVMYXllck5hbWUoKmxheWVyTmFtZSkpOworICAgICAgICAgICAgICAgIGxheWVyUnVs
ZVBheWxvYWQtPnNldFRleHQobGF5ZXJOYW1lKTsKICAgICAgICAgICAgICAgICBydWxlR3JvdXBp
bmdQYXlsb2Fkcy5hcHBlbmQoV1RGTW92ZShsYXllclJ1bGVQYXlsb2FkKSk7CiAgICAgICAgICAg
ICB9CiAKQEAgLTQ3MiwxMiArNDc0LDExIEBAIHN0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxQcm90
b2NvbDo6Q1NTOjpHcm91cGluZz4+IGJ1aWxkQXJyYXlGb3JHcm91cGluZ3MoQ1NTUnVsCiAgICAg
ICAgICAgICAgICAgLnJlbGVhc2UoKTsKICAgICAgICAgICAgIHN1cHBvcnRzUnVsZVBheWxvYWQt
PnNldFRleHQoZG93bmNhc3Q8Q1NTU3VwcG9ydHNSdWxlPihwYXJlbnRSdWxlKS0+Y29uZGl0aW9u
VGV4dCgpKTsKICAgICAgICAgICAgIHJ1bGVHcm91cGluZ1BheWxvYWRzLmFwcGVuZChXVEZNb3Zl
KHN1cHBvcnRzUnVsZVBheWxvYWQpKTsKLSAgICAgICAgfSBlbHNlIGlmIChpczxDU1NMYXllclJ1
bGU+KHBhcmVudFJ1bGUpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXM8Q1NTTGF5ZXJCbG9ja1J1
bGU+KHBhcmVudFJ1bGUpKSB7CiAgICAgICAgICAgICBhdXRvIGxheWVyUnVsZVBheWxvYWQgPSBQ
cm90b2NvbDo6Q1NTOjpHcm91cGluZzo6Y3JlYXRlKCkKICAgICAgICAgICAgICAgICAuc2V0VHlw
ZShQcm90b2NvbDo6Q1NTOjpHcm91cGluZzo6VHlwZTo6TGF5ZXJSdWxlKQogICAgICAgICAgICAg
ICAgIC5yZWxlYXNlKCk7Ci0gICAgICAgICAgICBpZiAoYXV0byBsYXllck5hbWUgPSBkb3duY2Fz
dDxDU1NMYXllclJ1bGU+KHBhcmVudFJ1bGUpLT5sYXllck5hbWUoKSkKLSAgICAgICAgICAgICAg
ICBsYXllclJ1bGVQYXlsb2FkLT5zZXRUZXh0KCpsYXllck5hbWUpOworICAgICAgICAgICAgbGF5
ZXJSdWxlUGF5bG9hZC0+c2V0VGV4dChkb3duY2FzdDxDU1NMYXllckJsb2NrUnVsZT4ocGFyZW50
UnVsZSktPm5hbWUoKSk7CiAgICAgICAgICAgICBydWxlR3JvdXBpbmdQYXlsb2Fkcy5hcHBlbmQo
V1RGTW92ZShsYXllclJ1bGVQYXlsb2FkKSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcAppbmRleCBlNTQwNzMyOTdlMjlh
OGJkNGFhM2FlZDRjYTNiOWEwOGYwZmU5YTljLi5lZGY4MTE0YWRmY2NmMjdmYWJiYWRjZjdmODJh
ZGE2MDhjMjViYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbnNwZWN0b3JD
U1NPTVdyYXBwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbnNwZWN0b3JDU1NP
TVdyYXBwZXJzLmNwcApAQCAtMzAsNyArMzAsOCBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNTU09N
V3JhcHBlcnMuaCIKIAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKLSNpbmNsdWRlICJDU1NM
YXllclJ1bGUuaCIKKyNpbmNsdWRlICJDU1NMYXllckJsb2NrUnVsZS5oIgorI2luY2x1ZGUgIkNT
U0xheWVyU3RhdGVtZW50UnVsZS5oIgogI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgogI2luY2x1
ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKQEAgLTYyLDggKzYzLDgg
QEAgdm9pZCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzOjpjb2xsZWN0KExpc3RUeXBlKiBsaXN0VHlw
ZSkKICAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKICAgICAgICAgICAgIGNvbGxl
Y3QoZG93bmNhc3Q8Q1NTSW1wb3J0UnVsZT4oKmNzc1J1bGUpLnN0eWxlU2hlZXQoKSk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NSdWxlOjpMQVlFUl9SVUxFOgotICAgICAg
ICAgICAgY29sbGVjdChkb3duY2FzdDxDU1NMYXllclJ1bGU+KGNzc1J1bGUpKTsKKyAgICAgICAg
Y2FzZSBDU1NSdWxlOjpMQVlFUl9CTE9DS19SVUxFOgorICAgICAgICAgICAgY29sbGVjdChkb3du
Y2FzdDxDU1NMYXllckJsb2NrUnVsZT4oY3NzUnVsZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKICAgICAgICAgICAgIGNvbGxlY3QoZG93
bmNhc3Q8Q1NTTWVkaWFSdWxlPihjc3NSdWxlKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCA5OThmYmZkNDkwNzdkNDU3YTlmMjdlNWQ4MDJjMDhiMGE3YWQwMDczLi5mNzQxYWRl
MGRiYzk1MjFjYzE2MWNlZTAxMjUxOTAyMTM2ZjlhMzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMi0wOCAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gVXBkYXRlIENT
U09NIHRvIHRoZSBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEzNDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTU4Njk3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2xheWVyLXJ1bGVzLWNzc29tLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0xMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gaW1wb3J0IHNvbWUgbmV3IFdQVHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaWRsaGFybmVzcy1l
eHBlY3RlZC50eHQKaW5kZXggMDRkM2E5MTdkZmE5ZWY2OTMxMjYyYTI5MzBkZGZhNDEyZWVjY2I4
Yi4uNzEyZjk5OTU2Mzc3MWViOTM0ZGI1Mjk2OWYzMWMzNDMzYzhhNjM5OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaWRsaGFybmVzcy1leHBlY3RlZC50
eHQKQEAgLTQsMjYgKzQsMjYgQEAgUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uCiBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGU6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCiBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGU6IHZhbGlkIGV4cG9zdXJlIHNldAog
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBDU1NJbXBvcnRSdWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJCbG9ja1J1bGUg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5
ICJDU1NMYXllckJsb2NrUnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NM
YXllckJsb2NrUnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NM
YXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBtaXNz
aW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxl
IiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJDU1NMYXllckJsb2NrUnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyQmxv
Y2tSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogYXR0cmli
dXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTTGF5ZXJCbG9ja1J1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllckJsb2Nr
UnVsZSIgbWlzc2luZwotRkFJTCBDU1NMYXllckJsb2NrUnVsZSBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIGJsb2NrIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNTU0xheWVyQmxvY2tSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5
ZXJCbG9ja1J1bGUiIG1pc3NpbmcKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIGJsb2NrIGFzc2Vy
dF9jbGFzc19zdHJpbmc6IGNsYXNzIHN0cmluZyBvZiBibG9jayBleHBlY3RlZCAiW29iamVjdCBD
U1NMYXllckJsb2NrUnVsZV0iIGJ1dCBnb3QgIltvYmplY3QgQ1NTUnVsZV0iCi1GQUlMIENTU0xh
eWVyQmxvY2tSdWxlIGludGVyZmFjZTogYmxvY2sgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYW1l
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYW1lIiBu
b3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU0xh
eWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVs
ZSIgbWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0
ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTTGF5
ZXJTdGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllclN0YXRl
bWVudFJ1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIGV4cGVjdGVkIHByb3Bl
cnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIG1pc3NpbmcKLUZBSUwgQ1NTTGF5ZXJTdGF0ZW1l
bnRSdWxlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1
bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NMYXllclN0YXRlbWVudFJ1bGUiIG1pc3NpbmcKLUZB
SUwgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTogYXR0cmlidXRlIG5hbWVMaXN0IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU0xh
eWVyU3RhdGVtZW50UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU0xheWVyU3RhdGVtZW50UnVs
ZSIgbWlzc2luZwotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgbXVzdCBiZSBwcmltYXJ5IGlu
dGVyZmFjZSBvZiBzdGF0ZW1lbnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBleHBlY3RlZCBwcm9wZXJ0
eSAiQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIiBtaXNzaW5nCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBv
ZiBzdGF0ZW1lbnQgYXNzZXJ0X2NsYXNzX3N0cmluZzogY2xhc3Mgc3RyaW5nIG9mIHN0YXRlbWVu
dCBleHBlY3RlZCAiW29iamVjdCBDU1NMYXllclN0YXRlbWVudFJ1bGVdIiBidXQgZ290ICJbb2Jq
ZWN0IENTU1J1bGVdIgotRkFJTCBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlOiBzdGF0
ZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYW1lTGlzdCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmFtZUxpc3QiIG5vdCBmb3VuZCBpbiBwcm90
b3R5cGUgY2hhaW4KLUZBSUwgQ1NTSW1wb3J0UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYXll
ck5hbWUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3Bl
cnR5ICJsYXllck5hbWUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIENTU0ltcG9ydFJ1
bGUgaW50ZXJmYWNlOiBsYXllcmVkSW1wb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGF5ZXJO
YW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJsYXll
ck5hbWUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQ1NTTGF5ZXJCbG9ja1J1
bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAorUEFTUyBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorUEFTUyBD
U1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgQ1NTTGF5ZXJCbG9j
a1J1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QKK1BBU1MgQ1NTTGF5ZXJCbG9ja1J1bGUgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5CitQQVNTIENTU0xheWVyQmxvY2tSdWxlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBDU1NMYXllckJsb2NrUnVsZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBuYW1lCitQQVNTIENTU0xheWVyQmxvY2tSdWxlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZh
Y2Ugb2YgYmxvY2sKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGJsb2NrCitQQVNTIENTU0xheWVy
QmxvY2tSdWxlIGludGVyZmFjZTogYmxvY2sgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYW1lIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBDU1NM
YXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgQ1NTTGF5ZXJT
dGF0ZW1lbnRSdWxlIGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBDU1NMYXllclN0YXRlbWVu
dFJ1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QKK1BBU1MgQ1NTTGF5ZXJTdGF0ZW1lbnRSdWxlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIENTU0xheWVyU3RhdGVtZW50UnVsZSBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBuYW1lTGlzdAorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBzdGF0ZW1lbnQKK1BBU1MgU3RyaW5naWZpY2F0aW9u
IG9mIHN0YXRlbWVudAorUEFTUyBDU1NMYXllclN0YXRlbWVudFJ1bGUgaW50ZXJmYWNlOiBzdGF0
ZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYW1lTGlzdCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKK1BBU1MgQ1NTSW1wb3J0UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYXllck5hbWUKK1BB
U1MgQ1NTSW1wb3J0UnVsZSBpbnRlcmZhY2U6IGxheWVyZWRJbXBvcnQgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJsYXllck5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRl
L2xheWVyLXJ1bGVzLWNzc29tLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2xheWVyLXJ1bGVzLWNzc29tLWV4
cGVjdGVkLnR4dAppbmRleCAwYTljZjI1MjE4OWE2OTEyOTg3MTdiMWVjZWNkYjljNTg0Mjc2Mjlh
Li45OWE4ZWIwNTU1NjQ4NTJjZmVkNTcxZjgxMDAyOWY5M2I1MjVmM2Y1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2Fk
ZS9sYXllci1ydWxlcy1jc3NvbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvbGF5ZXItcnVsZXMtY3Nz
b20tZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiAKLUZBSUwgQmFzaWMgbGF5ZXIgYmxv
Y2sgbmFtZSBhc3NlcnRfaW1wbGVtZW50czogdW5kZWZpbmVkCi1GQUlMIEFub255bW91cyBsYXll
ciBibG9jayBuYW1lIGFzc2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgQmFzaWMgbGF5
ZXIgc3RhdGVtZW50IG5hbWUgYXNzZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5lZAotRkFJTCBMYXll
ciBzdGF0ZW1lbnQgd2l0aCBtdWx0aXBsZSBuYW1lcyBhc3NlcnRfaW1wbGVtZW50czogdW5kZWZp
bmVkCi1GQUlMIE5lc3RlZCBsYXllciBibG9jayBuYW1lcyBhc3NlcnRfaW1wbGVtZW50czogdW5k
ZWZpbmVkCi1GQUlMIE5lc3RlZCBsYXllciBzdGF0ZW1lbnQgbmFtZSBsaXN0cyBhc3NlcnRfaW1w
bGVtZW50czogdW5kZWZpbmVkCi1GQUlMIEltcG9ydCBpbnRvIGFub255bW91cyBsYXllciBhc3Nl
cnRfaW1wbGVtZW50czogdW5kZWZpbmVkCi1GQUlMIEltcG9ydCBpbnRvIG5hbWVkIGxheWVyIGFz
c2VydF9pbXBsZW1lbnRzOiB1bmRlZmluZWQKLUZBSUwgSW1wb3J0IHdpdGhvdXQgbGF5ZXIgYXNz
ZXJ0X2ltcGxlbWVudHM6IHVuZGVmaW5lZAorUEFTUyBCYXNpYyBsYXllciBibG9jayBuYW1lCitQ
QVNTIEFub255bW91cyBsYXllciBibG9jayBuYW1lCitQQVNTIEJhc2ljIGxheWVyIHN0YXRlbWVu
dCBuYW1lCitQQVNTIExheWVyIHN0YXRlbWVudCB3aXRoIG11bHRpcGxlIG5hbWVzCitQQVNTIE5l
c3RlZCBsYXllciBibG9jayBuYW1lcworUEFTUyBOZXN0ZWQgbGF5ZXIgc3RhdGVtZW50IG5hbWUg
bGlzdHMKK1BBU1MgSW1wb3J0IGludG8gYW5vbnltb3VzIGxheWVyCitQQVNTIEltcG9ydCBpbnRv
IG5hbWVkIGxheWVyCitQQVNTIEltcG9ydCB3aXRob3V0IGxheWVyCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>