<?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>232236</bug_id>
          
          <creation_ts>2021-10-25 06:32:31 -0700</creation_ts>
          <short_desc>[CSS Cascade Layers] Support &apos;revert-layer&apos; value</short_desc>
          <delta_ts>2021-12-24 15:20:02 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232829</dependson>
    
    <dependson>232875</dependson>
    
    <dependson>232876</dependson>
    
    <dependson>234674</dependson>
          <blocked>220779</blocked>
    
    <blocked>234646</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ntim</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808370</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-25 06:32:31 -0700</bug_when>
    <thetext>https://www.w3.org/TR/css-cascade-5/#revert-layer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810600</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-01 06:33:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84879369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812578</commentid>
    <comment_count>2</comment_count>
      <attachid>443534</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-08 05:45:21 -0800</bug_when>
    <thetext>Created attachment 443534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812617</commentid>
    <comment_count>3</comment_count>
      <attachid>443534</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-08 08:27:12 -0800</bug_when>
    <thetext>Comment on attachment 443534
Patch

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

&gt; Source/WebCore/style/CascadeLevel.h:39
&gt; +inline CascadeLevel&amp; operator--(CascadeLevel&amp; level)

I wonder if it&apos;s worth giving this an explicit name.

&gt; Source/WebCore/style/ElementRuleCollector.h:69
&gt; +enum class FromStyleAttribute { No, Yes };

: bool ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812624</commentid>
    <comment_count>4</comment_count>
      <attachid>443551</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-08 08:37:41 -0800</bug_when>
    <thetext>Created attachment 443551
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812645</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-08 09:21:03 -0800</bug_when>
    <thetext>Committed r285408 (243965@main): &lt;https://commits.webkit.org/243965@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443551.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812742</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-08 11:55:13 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 232829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813019</commentid>
    <comment_count>7</comment_count>
      <attachid>443658</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-09 00:45:27 -0800</bug_when>
    <thetext>Created attachment 443658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813026</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 01:29:50 -0800</bug_when>
    <thetext>Committed r285486 (244010@main): &lt;https://commits.webkit.org/244010@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443658.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813099</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-09 05:49:55 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 232875</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813110</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-09 06:02:49 -0800</bug_when>
    <thetext>Reverted in https://bugs.webkit.org/show_bug.cgi?id=232876</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813178</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-11-09 09:20:11 -0800</bug_when>
    <thetext>You probably want to re-apply https://github.com/WebKit/WebKit/commit/573122828aba14874cd08c2fab0f2e8e169345cd after once you land again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813947</commentid>
    <comment_count>12</comment_count>
      <attachid>443920</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-11 01:29:07 -0800</bug_when>
    <thetext>Created attachment 443920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813952</commentid>
    <comment_count>13</comment_count>
      <attachid>443921</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-11 01:44:07 -0800</bug_when>
    <thetext>Created attachment 443921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813986</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-11 04:24:24 -0800</bug_when>
    <thetext>Committed r285624 (244125@main): &lt;https://commits.webkit.org/244125@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443921.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443534</attachid>
            <date>2021-11-08 05:45:21 -0800</date>
            <delta_ts>2021-11-08 08:37:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232236-20211108154519.patch</filename>
            <type>text/plain</type>
            <size>34923</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxYzY4NTM0Mzc1YWI3
MDQ5YjBlOWZlZjQzZGUyNDA0YjY1NGVhOS4uZTUzOWQ4MDQ1YjMzZjE5M2NlNmRkNzJiYzU5YTBk
MTM3NTk3ZDgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTExLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICdyZXZlcnQtbGF5ZXInIGtleXdvcmQgcm9sbHMgYmFjayB0aGUgdmFsdWUgY29tcHV0ZWQg
YnkgdGhlIGNhc2NhZGUgdG8gdGhlIG9uZSBjb21pbmcgZnJvbSB0aGUgbGF5ZXIgYmVsb3cuCisK
KyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jYXNjYWRlLTUvI3JldmVydC1sYXll
cgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1JldmVydExheWVyVmFs
dWUgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZUtleXdvcmRzLmluOgorCisgICAgICAgIEFkZCBhICdyZXZlcnQtbGF5ZXInIGtleXdvcmQu
CisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6aXNDU1NXaWRlS2V5d29yZCk6CisKKyAgICAgICAgTWFrZSB0aGUga2V5d29yZCBDU1Mt
d2lkZS4KKworICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEN1c3RvbUlkZW50aWZpZXIpOgorICAg
ICAgICAqIHN0eWxlL0Nhc2NhZGVMZXZlbC5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om9w
ZXJhdG9yLS0pOgorCisgICAgICAgIEFkZCBkZWNyZW1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjphbGxDYXNjYWRlTGV2ZWxzKTogRGVsZXRlZC4KKyAgICAgICAgKiBz
dHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRS
dWxlcyk6CisKKyAgICAgICAgUGFzcyB0aGUgY2FzZGFkZSBsYXllciBwcmlvcml0eSBzbyBpdCBp
cyBhdmFpbGFibGUgd2hlbiByZXNvbHZpbmcgdGhlIGNhc2NhZGUuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudElubGluZVN0eWxlUHJv
cGVydGllcyk6CisKKyAgICAgICAgQWRkIGEgYml0IGluZGljYXRpbmcgaWYgdGhlIHByb3BlcnRp
ZXMgY2FtZSBmcm9tIGEgc3R5bGUgYXR0cmlidXRlLiBUaGlzIGlzIG5lZWRlZCBmb3IgY29ycmVj
dCByZXNvbHV0aW9uIG9mICFpbXBvcnRhbnQgd2l0aCBjYXNjYWRlIGxheWVycy4KKworICAgICAg
ICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmg6CisgICAgICAgICogc3R5bGUvUHJvcGVy
dHlDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6
OlByb3BlcnR5Q2FzY2FkZSk6CisKKyAgICAgICAgU3BlY2lmeSBjYXNjYWRlIGxldmVscyBpbiB0
ZXJtcyBvZiB0aGUgbWF4aW11bSBsZXZlbCBpbnN0ZWFkIG9mIGFuIE9wdGlvblNldCBvZiBsZXZl
bHMuIFRoaXMgbWFrZXMgdGhpbmdzIHNpbXBsZXIuCisgICAgICAgIE1ha2UgaXQgYSBtZW1iZXIu
CisgICAgICAgIFByb3ZpZGUgbWF4aW11bSBjYXNjYWRlIGxheWVyIHByaW9yaXR5IHdoZW4gY29u
c3RydWN0aW5nIHJvbGxiYWNrIGNhc2NhZGUuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQ
cm9wZXJ0eUNhc2NhZGU6OmJ1aWxkQ2FzY2FkZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
UHJvcGVydHlDYXNjYWRlOjpzZXRQcm9wZXJ0eUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKToKKworICAgICAgICBJZ25vcmUgcHJv
cGVydGllcyB3aXRoIGNhc2NhZGUgbGV2ZWwgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0uCisKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNo
ZXMpOgorCisgICAgICAgIFRha2UgY2FzY2FkZSBsYXllcnMgaW50byBhY2NvdW55IHdoZW4gc29y
dGluZyBpbXBvcnRhbnQgbWF0Y2hlcy4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3Bl
cnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9yUm9sbGJhY2sgY29uc3QpOiBEZWxldGVkLgor
CisgICAgICAgIE1vdmUgcm9sbGJhY2sgY2FzY2FkZXMgdG8gQnVpbGRlci4KKworICAgICAgICAq
IHN0eWxlL1Byb3BlcnR5Q2FzY2FkZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3Bl
cnR5Q2FzY2FkZTo6bWF4aW11bUNhc2NhZGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjptYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgY29u
c3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6QnVpbGRlcjo6QnVpbGRlcik6CisKKyAgICAgICAgU3BlY2lmeSBjYXNjYWRlIGxl
dmVscyBpbiB0ZXJtcyBvZiB0aGUgbWF4aW11bSBsZXZlbCBpbnN0ZWFkIG9mIGFuIE9wdGlvblNl
dCBvZiBsZXZlbHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjphcHBseUNh
c2NhZGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlQ
cm9wZXJ0eSk6CisKKyAgICAgICAgQ29uc3RydWN0IHJvbGxiYWNrIGNhc2NhZGUgZm9yICdyZXZl
cnQtbGF5ZXInIGNhc2UgdG9vLiBUaGlzIGlzIHNpbWlsYXIgdG8gJ3JldmVydCcuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2NhZGVGb3JSZXZl
cnQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmVuc3VyZVJvbGxiYWNrQ2Fz
Y2FkZUZvclJldmVydExheWVyKToKKworICAgICAgICBNYWtlIHRoZSByb2xsYmFjayBjYXNjYWRl
cyBhbmQgc3RvcmUgdGhlbSBpbnRvIGEgSGFzaE1hcC4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkJ1aWxkZXI6Om1ha2VSb2xsYmFja0Nhc2NhZGVLZXkpOgorICAgICAgICAqIHN0eWxlL1N0
eWxlQnVpbGRlci5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmg6CisgICAg
ICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
UmVzb2x2ZXI6OnN0eWxlRm9yS2V5ZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpzdHlsZUZvclBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVy
OjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKworICAgICAgICBBZG9wdCB0byB0aGUgbmV3IGlu
dGVyZmFjZS4KKwogMjAyMS0xMS0wOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBzdXBwb3J0IGZvciBjb21wb3NpdGUg
b3BlcmF0aW9ucyBmb3Igc29mdHdhcmUgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAppbmRleCA1MTQ4YTRjYjJlNDc1NDNjZWYxNzRhZDJiODAzMTAyYmI0MDlh
MzdkLi44NWFhYzdkM2Y1ZjI3YWYzYWE2NjJlYWEyNjMzMzkwNjc3OTllOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzSW5oZXJpdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENT
U1ZhbHVlSW5oZXJpdDsgfQogICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
dmFsdWVJRCgpID09IENTU1ZhbHVlVW5zZXQ7IH0KICAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBj
b25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKyAgICBib29sIGlz
UmV2ZXJ0TGF5ZXJWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJl
dmVydExheWVyOyB9CiAgICAgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAKICAgICBz
dGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQg
dmFsdWVJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlE
KSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2
YjMzMzY2MGQ4YzNjZmJjOGIuLjM5NmZjYmYyYTNjZWM4N2VlOGM4ZTVlMTRjMGU2N2E0ODE5MDBh
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNTEwLDYgKzUxMCwxMSBAQCBib29sIENT
U1ZhbHVlOjppc1JldmVydFZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2
ZXJ0VmFsdWUoKTsKIH0KIAorYm9vbCBDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpOworfQorCiBi
b29sIENTU1ZhbHVlOjppc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRoaXMpLmlzQ1NTV2lkZUtleXdvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMjllYTRi
NmQxMTY2NDI5NmE3N2YxZGQ5Njc2ZTYwMjhkNTdiZDUzYi4uMzM4ZWQ1NWQzYTM0NDhhMDA4MGE1
Y2FkZDgyMzczZWJlNWVlNTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTExMSw2ICsxMTEs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wg
aXNVbnNldFZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1JldmVydExheWVyVmFsdWUoKSBjb25zdDsKICAgICBib29sIGlzQ1NTV2lkZUtl
eXdvcmQoKSBjb25zdDsKICAgICBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJ
RCkgY29uc3Q7CiAgICAgYm9vbCB0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDEyYWE3NWFl
NTQ2YjIwZDY0MDVmMTJhMDZlOTZhZjA1YTQxYTc2YzMuLmEzYTk1NzA2YWI3ZDdjNjI0MzgzYTY3
ZWRjMGY5OTgwYjcxMjE1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CkBAIC01LDYgKzUsNyBAQCBpbmhlcml0CiBpbml0aWFsCiB1bnNldAogcmV2ZXJ0CityZXZlcnQt
bGF5ZXIKIAogLy8KIC8vIENTU19QUk9QX09VVExJTkVfU1RZTEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCmluZGV4IGRlZjIyMjAwOTI1NDRlNTZmYzk2MmYx
MWNhMWU0ZjY0ZDExMjE4OTEuLmUyNTQyYWQyMGJkYTg5OTAzMjE4YWZmZjk2M2Q5OTlmN2ViZjM5
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAt
NjAsMTIgKzYwLDIxIEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAog
Ym9vbCBpc1ZhbHVlQWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJ
RCkKK2lubGluZSBib29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewot
ICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlSW5oZXJpdCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZVJldmVydDsKKyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSW5p
dGlhbDoKKyAgICBjYXNlIENTU1ZhbHVlSW5oZXJpdDoKKyAgICBjYXNlIENTU1ZhbHVlVW5zZXQ6
CisgICAgY2FzZSBDU1NWYWx1ZVJldmVydDoKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJ0TGF5ZXI6
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZp
ZXIoQ1NTVmFsdWVJRCB2YWx1ZUlEKQoraW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZp
ZXIoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewogICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBh
cyBhIENTUy13aWRlIGtleXdvcmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGEgY3VzdG9t
IGlkZW50aWZpZXIuCiAgICAgcmV0dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZh
bHVlSUQgIT0gQ1NTVmFsdWVEZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvQ2FzY2FkZUxldmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaApp
bmRleCBhMmUzMmE4NzE1Y2E3MmQ1ZjNiNWMwNDZkMjk3MDgxMTMzZWRlMzI2Li5jMmQyYTFiMTgy
MGMwNWY1N2Q1ZGFlOGZjMzM5ZjM1NDBlZDJiMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRl
TGV2ZWwuaApAQCAtMzYsNyArMzYsMTggQEAgZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50
OF90IHsKICAgICBBdXRob3IgICAgICA9IDEgPDwgMgogfTsKIAotc3RhdGljIGNvbnN0ZXhwciBP
cHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBhbGxDYXNjYWRlTGV2ZWxzKCkgeyByZXR1cm4geyBDYXNj
YWRlTGV2ZWw6OlVzZXJBZ2VudCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1
dGhvciB9OyB9CitpbmxpbmUgQ2FzY2FkZUxldmVsJiBvcGVyYXRvci0tKENhc2NhZGVMZXZlbCYg
bGV2ZWwpCit7CisgICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpB
dXRob3I6CisgICAgICAgIHJldHVybiBsZXZlbCA9IENhc2NhZGVMZXZlbDo6VXNlcjsKKyAgICBj
YXNlIENhc2NhZGVMZXZlbDo6VXNlcjoKKyAgICAgICAgcmV0dXJuIGxldmVsID0gQ2FzY2FkZUxl
dmVsOjpVc2VyQWdlbnQ7CisgICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBsZXZlbDsKKyAgICB9Cit9
CiAKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29s
bGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNw
cAppbmRleCA2OWNlMGJhZmIzNDdhODRmNTA0N2Q0ZGUzYjYxOGI1YTY5OWMzMWNiLi42NTM4M2I5
MmZmMmM5YTFkZjhlMmRmMTdhMTA1M2RjNmIwNDhmNWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6Y2xlYXJNYXRjaGVkUnVsZXMoKQogICAgIG1fbWF0Y2hlZFJ1
bGVUcmFuc2ZlckluZGV4ID0gMDsKIH0KIAotaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9w
ZXJ0eVNldCwgYm9vbCBpc0NhY2hlYWJsZSkKK2lubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVj
dG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJv
cGVydHlTZXQsIGJvb2wgaXNDYWNoZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVB
dHRyaWJ1dGUpCiB7CiAgICAgaWYgKCFwcm9wZXJ0eVNldCB8fCBwcm9wZXJ0eVNldC0+aXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CkBAIC0xMzIsNyArMTMyLDkgQEAgaW5saW5lIHZvaWQgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQ
cm9wZXJ0aWUKICAgICBpZiAoIWlzQ2FjaGVhYmxlKQogICAgICAgICBtX3Jlc3VsdC5pc0NhY2hl
YWJsZSA9IGZhbHNlOwogCi0gICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMoeyBwcm9wZXJ0eVNldCB9
LCBEZWNsYXJhdGlvbk9yaWdpbjo6QXV0aG9yKTsKKyAgICBhdXRvIG1hdGNoZWRQcm9wZXJ0eSA9
IE1hdGNoZWRQcm9wZXJ0aWVzIHsgcHJvcGVydHlTZXQgfTsKKyAgICBtYXRjaGVkUHJvcGVydHku
ZnJvbVN0eWxlQXR0cmlidXRlID0gZnJvbVN0eWxlQXR0cmlidXRlOworICAgIGFkZE1hdGNoZWRQ
cm9wZXJ0aWVzKFdURk1vdmUobWF0Y2hlZFByb3BlcnR5KSwgRGVjbGFyYXRpb25PcmlnaW46OkF1
dGhvcik7CiB9CiAKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1
bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0KQpAQCAtMjAzLDcgKzIwNSw4IEBA
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnRyYW5zZmVyTWF0Y2hlZFJ1bGVzKERlY2xhcmF0
aW9uT3JpZ2luIGRlY2xhcmF0aW9uT3JpCiAgICAgICAgICAgICAmbWF0Y2hlZFJ1bGUucnVsZURh
dGEtPnN0eWxlUnVsZSgpLnByb3BlcnRpZXMoKSwKICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVp
bnQxNl90PihtYXRjaGVkUnVsZS5ydWxlRGF0YS0+bGlua01hdGNoVHlwZSgpKSwKICAgICAgICAg
ICAgIG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5wcm9wZXJ0eUFsbG93bGlzdCgpLAotICAgICAgICAg
ICAgbWF0Y2hlZFJ1bGUuc3R5bGVTY29wZU9yZGluYWwKKyAgICAgICAgICAgIG1hdGNoZWRSdWxl
LnN0eWxlU2NvcGVPcmRpbmFsLAorICAgICAgICAgICAgbWF0Y2hlZFJ1bGUuY2FzY2FkZUxheWVy
UHJpb3JpdHkKICAgICAgICAgfSwgZGVjbGFyYXRpb25PcmlnaW4pOwogICAgIH0KIH0KQEAgLTU2
Niw3ICs1NjksNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5saW5l
U3R5bGVQcm9wZXJ0aWVzKGJvb2wgaW5jbHVkZVNNSUxQcm9wZQogICAgIGlmIChhdXRvKiBpbmxp
bmVTdHlsZSA9IGRvd25jYXN0PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSkuaW5saW5lU3R5bGUo
KSkgewogICAgICAgICAvLyBGSVhNRTogTWVkaWEgY29udHJvbCBzaGFkb3cgdHJlZXMgc2VlbSB0
byBoYXZlIHByb2JsZW1zIHdpdGggY2FjaGluZy4KICAgICAgICAgYm9vbCBpc0lubGluZVN0eWxl
Q2FjaGVhYmxlID0gIWlubGluZVN0eWxlLT5pc011dGFibGUoKSAmJiAhZWxlbWVudCgpLmlzSW5T
aGFkb3dUcmVlKCk7Ci0gICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoaW5saW5lU3R5
bGUsIGlzSW5saW5lU3R5bGVDYWNoZWFibGUpOworICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9w
ZXJ0aWVzKGlubGluZVN0eWxlLCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlLCBGcm9tU3R5bGVBdHRy
aWJ1dGU6Olllcyk7CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBp
czxTVkdFbGVtZW50PihlbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmgKaW5kZXggYTJiMjI1NWEwM2FiNzNmZmFiNTU2ZmQ5NjAxMzViN2M5ZGFk
N2NmMy4uZGRhZGQxODJiMzc4NWIwODBkODVkMjk5ZDhlMTMxNDZlNmU2ZDZiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCkBAIC02NiwxMSArNjYsMTUg
QEAgc3RydWN0IE1hdGNoZWRSdWxlIHsKICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRl
TGF5ZXJQcmlvcml0eTsKIH07CiAKK2VudW0gY2xhc3MgRnJvbVN0eWxlQXR0cmlidXRlIHsgTm8s
IFllcyB9OworCiBzdHJ1Y3QgTWF0Y2hlZFByb3BlcnRpZXMgewogICAgIFJlZlB0cjxjb25zdCBT
dHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAgICAgdWludDE2X3QgbGlua01hdGNoVHlwZSB7
IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwgfTsKICAgICBQcm9wZXJ0eUFsbG93bGlzdCBhbGxv
d2xpc3RUeXBlIHsgUHJvcGVydHlBbGxvd2xpc3Q6Ok5vbmUgfTsKICAgICBTY29wZU9yZGluYWwg
c3R5bGVTY29wZU9yZGluYWwgeyBTY29wZU9yZGluYWw6OkVsZW1lbnQgfTsKKyAgICBDYXNjYWRl
TGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eSB7IFJ1bGVTZXQ6OmNhc2NhZGVMYXll
clByaW9yaXR5Rm9yVW5sYXllcmVkIH07CisgICAgRnJvbVN0eWxlQXR0cmlidXRlIGZyb21TdHls
ZUF0dHJpYnV0ZSB7IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8gfTsKIH07CiAKIHN0cnVjdCBNYXRj
aFJlc3VsdCB7CkBAIC0xMjEsNyArMTI1LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlkTWF0Y2hV
bmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaWRNYXRjaFVuY29t
bW9uQXR0cmlidXRlU2VsZWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEVsZW1lbnRT
dHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9
IHRydWUpOworICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVBy
b3BlcnRpZXMqLCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSwgRnJvbVN0eWxlQXR0cmlidXRlID0g
RnJvbVN0eWxlQXR0cmlidXRlOjpObyk7CiAKICAgICB2b2lkIG1hdGNoVUFSdWxlcyhjb25zdCBS
dWxlU2V0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2Fz
Y2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCmluZGV4
IDUwNTE1MjdjNjNjMjE3MDZiYWRlZDNiNTJjOTA1ZWNlMWE0Y2YyNWUuLmRhYmRhNjA4NzhiYTBj
MDU3N2YxZDRlYmVjYTVjMjRjMzUxODk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVy
dHlDYXNjYWRlLmNwcApAQCAtNzEsMzAgKzcxLDM1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91
bGRBcHBseVByb3BlcnR5SW5QYXJzZU9yZGVyKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKICAg
ICB9CiB9CiAKLVByb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNoUmVz
dWx0JiBtYXRjaFJlc3VsdCwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscywg
SW5jbHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcywgRGlyZWN0aW9uIGRpcmVjdGlv
bikKK1Byb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNoUmVzdWx0JiBt
YXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIEluY2x1ZGVkUHJv
cGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgOiBt
X21hdGNoUmVzdWx0KG1hdGNoUmVzdWx0KQogICAgICwgbV9pbmNsdWRlZFByb3BlcnRpZXMoaW5j
bHVkZWRQcm9wZXJ0aWVzKQorICAgICwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsKG1heGltdW1DYXNj
YWRlTGV2ZWwpCiAgICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCiB7Ci0gICAgYnVpbGRDYXNj
YWRlKGNhc2NhZGVMZXZlbHMpOworICAgIGJ1aWxkQ2FzY2FkZSgpOwogfQogCi1Qcm9wZXJ0eUNh
c2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmIHBhcmVudCwgT3B0
aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscykKK1Byb3BlcnR5Q2FzY2FkZTo6UHJv
cGVydHlDYXNjYWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYgcGFyZW50LCBDYXNjYWRlTGV2ZWwg
bWF4aW11bUNhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVyUHJpb3JpdHkgbWF4aW11bUNhc2NhZGVM
YXllclByaW9yaXR5KQogICAgIDogbV9tYXRjaFJlc3VsdChwYXJlbnQubV9tYXRjaFJlc3VsdCkK
ICAgICAsIG1faW5jbHVkZWRQcm9wZXJ0aWVzKHBhcmVudC5tX2luY2x1ZGVkUHJvcGVydGllcykK
KyAgICAsIG1fbWF4aW11bUNhc2NhZGVMZXZlbChtYXhpbXVtQ2FzY2FkZUxldmVsKQorICAgICwg
bV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkobWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5
KQogICAgICwgbV9kaXJlY3Rpb24ocGFyZW50LmRpcmVjdGlvbigpKQogICAgICwgbV9kaXJlY3Rp
b25Jc1VucmVzb2x2ZWQoZmFsc2UpCiB7Ci0gICAgYnVpbGRDYXNjYWRlKGNhc2NhZGVMZXZlbHMp
OworICAgIGJ1aWxkQ2FzY2FkZSgpOwogfQogCiBQcm9wZXJ0eUNhc2NhZGU6On5Qcm9wZXJ0eUNh
c2NhZGUoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgUHJvcGVydHlDYXNjYWRlOjpidWlsZENhc2NhZGUo
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscykKK3ZvaWQgUHJvcGVydHlDYXNj
YWRlOjpidWlsZENhc2NhZGUoKQogewogICAgIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2Nh
ZGVMZXZlbHNXaXRoSW1wb3J0YW50OwogCi0gICAgZm9yIChhdXRvIGNhc2NhZGVMZXZlbCA6IGNh
c2NhZGVMZXZlbHMpIHsKKyAgICBmb3IgKGF1dG8gY2FzY2FkZUxldmVsIDogeyBDYXNjYWRlTGV2
ZWw6OlVzZXJBZ2VudCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9
KSB7CisgICAgICAgIGlmIChjYXNjYWRlTGV2ZWwgPiBtX21heGltdW1DYXNjYWRlTGV2ZWwpCisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgYm9vbCBoYXNJbXBvcnRhbnQgPSBhZGROb3JtYWxN
YXRjaGVzKGNhc2NhZGVMZXZlbCk7CiAgICAgICAgIGlmIChoYXNJbXBvcnRhbnQpCiAgICAgICAg
ICAgICBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudC5hZGQoY2FzY2FkZUxldmVsKTsKQEAgLTEx
Myw2ICsxMTgsOCBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5hbChQ
cm9wZXJ0eSYgcHJvcGVydHksIENTU1Byb3BlcnR5SUQgaWQsCiAgICAgcHJvcGVydHkuaWQgPSBp
ZDsKICAgICBwcm9wZXJ0eS5sZXZlbCA9IGNhc2NhZGVMZXZlbDsKICAgICBwcm9wZXJ0eS5zdHls
ZVNjb3BlT3JkaW5hbCA9IG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsOworICAg
IHByb3BlcnR5LmNhc2NhZGVMYXllclByaW9yaXR5ID0gbWF0Y2hlZFByb3BlcnRpZXMuY2FzY2Fk
ZUxheWVyUHJpb3JpdHk7CisKICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMubGlua01hdGNoVHlw
ZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKSB7CiAgICAgICAgIHByb3BlcnR5LmNzc1Zh
bHVlWzBdID0gJmNzc1ZhbHVlOwogICAgICAgICBwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNo
ZWNrZXI6Ok1hdGNoTGlua10gPSAmY3NzVmFsdWU7CkBAIC0xNzAsNiArMTc3LDkgQEAgdm9pZCBQ
cm9wZXJ0eUNhc2NhZGU6OnNldERlZmVycmVkKENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiBj
c3NWYWx1ZSwgY29uc3QgTWEKIAogYm9vbCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKGNvbnN0
IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVydGllcywgQ2FzY2FkZUxldmVsIGNhc2Nh
ZGVMZXZlbCwgYm9vbCBpbXBvcnRhbnQpCiB7CisgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLmNh
c2NhZGVMYXllclByaW9yaXR5ID4gbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgJiYgY2Fz
Y2FkZUxldmVsID09IG1fbWF4aW11bUNhc2NhZGVMZXZlbCAmJiBtYXRjaGVkUHJvcGVydGllcy5z
dHlsZVNjb3BlT3JkaW5hbCA9PSBTY29wZU9yZGluYWw6OkVsZW1lbnQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKwogICAgIGF1dG8mIHN0eWxlUHJvcGVydGllcyA9ICptYXRjaGVkUHJvcGVydGll
cy5wcm9wZXJ0aWVzOwogICAgIGF1dG8gcHJvcGVydHlBbGxvd2xpc3QgPSBtYXRjaGVkUHJvcGVy
dGllcy5hbGxvd2xpc3RUeXBlOwogICAgIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVydGllcyA9IGZh
bHNlOwpAQCAtMjM3LDEyICsyNDcsMTQgQEAgc3RhdGljIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVy
dGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiAKIHZvaWQgUHJvcGVydHlD
YXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwpCiB7
Ci0gICAgc3RydWN0IEluZGV4QW5kT3JkaW5hbCB7CisgICAgc3RydWN0IEltcG9ydGFudE1hdGNo
IHsKICAgICAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIFNjb3BlT3JkaW5hbCBvcmRpbmFs
OworICAgICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBsYXllclByaW9yaXR5OworICAgICAgICBG
cm9tU3R5bGVBdHRyaWJ1dGUgZnJvbVN0eWxlQXR0cmlidXRlOwogICAgIH07Ci0gICAgVmVjdG9y
PEluZGV4QW5kT3JkaW5hbD4gaW1wb3J0YW50TWF0Y2hlczsKLSAgICBib29sIGhhc01hdGNoZXNG
cm9tT3RoZXJTY29wZXMgPSBmYWxzZTsKKyAgICBWZWN0b3I8SW1wb3J0YW50TWF0Y2g+IGltcG9y
dGFudE1hdGNoZXM7CisgICAgYm9vbCBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JMYXllcnMg
PSBmYWxzZTsKIAogICAgIGF1dG8mIG1hdGNoZWREZWNsYXJhdGlvbnMgPSBkZWNsYXJhdGlvbnNG
b3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVsKTsKIApAQCAtMjUyLDIw
ICsyNjQsMjUgQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNoZXMoQ2Fz
Y2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKICAgICAgICAgaWYgKCFoYXNJbXBvcnRhbnRQcm9wZXJ0
aWVzKCptYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgIGltcG9ydGFudE1hdGNoZXMuYXBwZW5kKHsgaSwgbWF0Y2hlZFByb3BlcnRp
ZXMuc3R5bGVTY29wZU9yZGluYWwgfSk7CisgICAgICAgIGltcG9ydGFudE1hdGNoZXMuYXBwZW5k
KHsgaSwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwsIG1hdGNoZWRQcm9wZXJ0
aWVzLmNhc2NhZGVMYXllclByaW9yaXR5LCBtYXRjaGVkUHJvcGVydGllcy5mcm9tU3R5bGVBdHRy
aWJ1dGUgfSk7CiAKLSAgICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRp
bmFsICE9IFNjb3BlT3JkaW5hbDo6RWxlbWVudCkKLSAgICAgICAgICAgIGhhc01hdGNoZXNGcm9t
T3RoZXJTY29wZXMgPSB0cnVlOworICAgICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVT
Y29wZU9yZGluYWwgIT0gU2NvcGVPcmRpbmFsOjpFbGVtZW50IHx8IG1hdGNoZWRQcm9wZXJ0aWVz
LmNhc2NhZGVMYXllclByaW9yaXR5ICE9IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9y
VW5sYXllcmVkKQorICAgICAgICAgICAgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3Blc09yTGF5ZXJz
ID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoaW1wb3J0YW50TWF0Y2hlcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzKSB7Ci0g
ICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3
aW5zLgorICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JMYXllcnMpIHsKICAgICAg
ICAgLy8gTWF0Y2ggcmVzdWx0cyBhcmUgc29ydGVkIGluIHJldmVyc2UgdHJlZSBjb250ZXh0IG9y
ZGVyIHNvIHRoaXMgaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIHByb3BlcnRpZXMuCi0gICAgICAg
IHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdpbigpLCBpbXBvcnRhbnRNYXRj
aGVzLmVuZCgpLCBbXSAoY29uc3QgSW5kZXhBbmRPcmRpbmFsJiBhLCBjb25zdCBJbmRleEFuZE9y
ZGluYWwmIGIpIHsKLSAgICAgICAgICAgIHJldHVybiBhLm9yZGluYWwgPCBiLm9yZGluYWw7Cisg
ICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdpbigpLCBpbXBvcnRh
bnRNYXRjaGVzLmVuZCgpLCBbXSAoYXV0byYgYSwgYXV0byYgYikgeworICAgICAgICAgICAgLy8g
Rm9yICFpbXBvcnRhbnQgcHJvcGVydGllcyBhIGxhdGVyIHNoYWRvdyB0cmVlIHdpbnMuCisgICAg
ICAgICAgICBpZiAoYS5vcmRpbmFsICE9IGIub3JkaW5hbCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gYS5vcmRpbmFsIDwgYi5vcmRpbmFsOworICAgICAgICAgICAgLy8gTG93ZXIgcHJpb3JpdHkg
bGF5ZXIgd2lucywgZXhjZXB0IGlmIHN0eWxlIGF0dHJpYnV0ZSBpcyBpbnZvbHZlZC4KKyAgICAg
ICAgICAgIGlmIChhLmZyb21TdHlsZUF0dHJpYnV0ZSAhPSBiLmZyb21TdHlsZUF0dHJpYnV0ZSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gYS5mcm9tU3R5bGVBdHRyaWJ1dGUgPT0gRnJvbVN0eWxl
QXR0cmlidXRlOjpObzsKKyAgICAgICAgICAgIHJldHVybiBhLmxheWVyUHJpb3JpdHkgPiBiLmxh
eWVyUHJpb3JpdHk7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMjczLDMwICsyOTAsNiBAQCB2
b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWwgY2Fz
Y2FkZUxldmVsKQogICAgICAgICBhZGRNYXRjaChtYXRjaGVkRGVjbGFyYXRpb25zW21hdGNoLmlu
ZGV4XSwgY2FzY2FkZUxldmVsLCB0cnVlKTsKIH0KIAotY29uc3QgUHJvcGVydHlDYXNjYWRlKiBQ
cm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2NhZGVMZXZlbCBj
YXNjYWRlTGV2ZWwpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChjYXNjYWRlTGV2ZWwpIHsKLSAgICBj
YXNlIENhc2NhZGVMZXZlbDo6QXV0aG9yOgotICAgICAgICBpZiAoIW1fYXV0aG9yUm9sbGJhY2tD
YXNjYWRlKSB7Ci0gICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBPcHRpb25TZXQ8Q2Fz
Y2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBDYXNjYWRlTGV2ZWw6OlVzZXIg
fTsKLSAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlID0gbWFrZVVuaXF1ZTxjb25z
dCBQcm9wZXJ0eUNhc2NhZGU+KCp0aGlzLCBjYXNjYWRlTGV2ZWxzKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUuZ2V0KCk7Ci0KLSAgICBjYXNlIENh
c2NhZGVMZXZlbDo6VXNlcjoKLSAgICAgICAgaWYgKCFtX3VzZXJSb2xsYmFja0Nhc2NhZGUpIHsK
LSAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+
IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfTsKLSAgICAgICAgICAgIG1fdXNlclJvbGxiYWNr
Q2FzY2FkZSA9IG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPigqdGhpcywgY2FzY2Fk
ZUxldmVscyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fdXNlclJvbGxiYWNrQ2FzY2Fk
ZS5nZXQoKTsKLQotICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLQogUHJvcGVydHlDYXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlDYXNj
YWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoRGlyZWN0aW9uIGluaGVyaXRlZERp
cmVjdGlvbikgY29uc3QKIHsKICAgICBEaXJlY3Rpb24gcmVzdWx0ID0gaW5oZXJpdGVkRGlyZWN0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaAppbmRleCAzZmExZjhiZDQy
MzJmMjJjNWQyYTQ3ZmYyMmVkMjcwZGY4YmM1MDYwLi44MzdlZmNhZDQxNmZjZGQ3ZmNkYTJjY2Jl
ZTg0YTRhZWQ4MjI2MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaApA
QCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
OwogICAgIH07CiAKLSAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRp
b25TZXQ8Q2FzY2FkZUxldmVsPiwgSW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rpb24pOwotICAg
IFByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmLCBPcHRpb25TZXQ8Q2FzY2Fk
ZUxldmVsPik7CisgICAgUHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNoUmVzdWx0JiwgQ2FzY2Fk
ZUxldmVsLCBJbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbik7CisgICAgUHJvcGVydHlDYXNj
YWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYsIENhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVyUHJp
b3JpdHkgbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5ID0gUnVsZVNldDo6Y2FzY2FkZUxheWVy
UHJpb3JpdHlGb3JVbmxheWVyZWQpOwogCiAgICAgflByb3BlcnR5Q2FzY2FkZSgpOwogCkBAIC01
NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUHJvcGVydHlJRCBpZDsKICAgICAgICAg
Q2FzY2FkZUxldmVsIGxldmVsOwogICAgICAgICBTY29wZU9yZGluYWwgc3R5bGVTY29wZU9yZGlu
YWw7CisgICAgICAgIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5Owog
ICAgICAgICBDU1NWYWx1ZSogY3NzVmFsdWVbM107IC8vIFZhbHVlcyBmb3IgbGluayBtYXRjaCBz
dGF0ZXMgTWF0Y2hEZWZhdWx0LCBNYXRjaExpbmsgYW5kIE1hdGNoVmlzaXRlZAogICAgIH07CiAK
QEAgLTY5LDEwICs3MCwxMSBAQCBwdWJsaWM6CiAKICAgICBEaXJlY3Rpb24gZGlyZWN0aW9uKCkg
Y29uc3Q7CiAKLSAgICBjb25zdCBQcm9wZXJ0eUNhc2NhZGUqIHByb3BlcnR5Q2FzY2FkZUZvclJv
bGxiYWNrKENhc2NhZGVMZXZlbCkgY29uc3Q7CisgICAgYXV0byBtYXhpbXVtQ2FzY2FkZUxldmVs
KCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtQ2FzY2FkZUxldmVsOyB9CisgICAgYXV0byBtYXhp
bXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1DYXNjYWRl
TGF5ZXJQcmlvcml0eTsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgYnVpbGRDYXNjYWRlKE9wdGlv
blNldDxDYXNjYWRlTGV2ZWw+KTsKKyAgICB2b2lkIGJ1aWxkQ2FzY2FkZSgpOwogICAgIGJvb2wg
YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIHZvaWQgYWRkSW1wb3J0YW50TWF0
Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIGJvb2wgYWRkTWF0Y2goY29uc3QgTWF0Y2hlZFByb3Bl
cnRpZXMmLCBDYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KTsKQEAgLTg1LDYgKzg3LDggQEAg
cHJpdmF0ZToKIAogICAgIGNvbnN0IE1hdGNoUmVzdWx0JiBtX21hdGNoUmVzdWx0OwogICAgIGNv
bnN0IEluY2x1ZGVkUHJvcGVydGllcyBtX2luY2x1ZGVkUHJvcGVydGllczsKKyAgICBjb25zdCBD
YXNjYWRlTGV2ZWwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsOworICAgIGNvbnN0IENhc2NhZGVMYXll
clByaW9yaXR5IG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IHsgUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQgfTsKICAgICBtdXRhYmxlIERpcmVjdGlvbiBtX2Rp
cmVjdGlvbjsKICAgICBtdXRhYmxlIGJvb2wgbV9kaXJlY3Rpb25Jc1VucmVzb2x2ZWQgeyB0cnVl
IH07CiAKQEAgLTkzLDkgKzk3LDYgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxQcm9wZXJ0eSwg
OD4gbV9kZWZlcnJlZFByb3BlcnRpZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBQcm9wZXJ0
eT4gbV9jdXN0b21Qcm9wZXJ0aWVzOwotCi0gICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8Y29u
c3QgUHJvcGVydHlDYXNjYWRlPiBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZTsKLSAgICBtdXRhYmxl
IHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+IG1fdXNlclJvbGxiYWNrQ2Fz
Y2FkZTsKIH07CiAKIGlubGluZSBib29sIFByb3BlcnR5Q2FzY2FkZTo6aGFzUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCmlu
ZGV4IDlkNmM2YjQzOTkwYThhOWJlMTBiNjIyNzNkMDc5MmI5OGJlNThhOWQuLjgxMTUwYWRmMDVh
ZTE1Y2MzZGIwMGIzNTlkMDRkZWUxNjI4YjU0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyLmNwcApAQCAtODAsOCArODAsOCBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkVmlzaXRlZExp
bmtQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQnVp
bGRlcjo6QnVpbGRlcihSZW5kZXJTdHlsZSYgc3R5bGUsIEJ1aWxkZXJDb250ZXh0JiYgY29udGV4
dCwgY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVs
PiBjYXNjYWRlTGV2ZWxzLCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllcyBpbmNs
dWRlZFByb3BlcnRpZXMpCi0gICAgOiBtX2Nhc2NhZGUobWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZl
bHMsIGluY2x1ZGVkUHJvcGVydGllcywgZGlyZWN0aW9uRnJvbVN0eWxlKHN0eWxlKSkKK0J1aWxk
ZXI6OkJ1aWxkZXIoUmVuZGVyU3R5bGUmIHN0eWxlLCBCdWlsZGVyQ29udGV4dCYmIGNvbnRleHQs
IGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZl
bCwgUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVz
KQorICAgIDogbV9jYXNjYWRlKG1hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWwsIGluY2x1ZGVkUHJv
cGVydGllcywgZGlyZWN0aW9uRnJvbVN0eWxlKHN0eWxlKSkKICAgICAsIG1fc3RhdGUoKnRoaXMs
IHN0eWxlLCBXVEZNb3ZlKGNvbnRleHQpKQogewogfQpAQCAtMjQ1LDYgKzI0NSw3IEBAIGlubGlu
ZSB2b2lkIEJ1aWxkZXI6OmFwcGx5Q2FzY2FkZVByb3BlcnR5KGNvbnN0IFByb3BlcnR5Q2FzY2Fk
ZTo6UHJvcGVydHkmIHByb3BlCiB7CiAgICAgbV9zdGF0ZS5tX2Nhc2NhZGVMZXZlbCA9IHByb3Bl
cnR5LmxldmVsOwogICAgIG1fc3RhdGUubV9zdHlsZVNjb3BlT3JkaW5hbCA9IHByb3BlcnR5LnN0
eWxlU2NvcGVPcmRpbmFsOworICAgIG1fc3RhdGUubV9jYXNjYWRlTGF5ZXJQcmlvcml0eSA9IHBy
b3BlcnR5LmNhc2NhZGVMYXllclByaW9yaXR5OwogCiAgICAgYXV0byBhcHBseVdpdGhMaW5rTWF0
Y2ggPSBbJl0oU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrIGxpbmtNYXRjaCkgewogICAg
ICAgICBpZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoXSkgewpAQCAtMjk1LDIxICsyOTYs
MjcgQEAgdm9pZCBCdWlsZGVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1Zh
bHVlJiB2YWx1ZSwgU2VsZWN0b3JDaGVja2VyOjoKIAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVl
VG9BcHBseS0+aXNVbnNldFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1Zh
bHVlVW5zZXQ7CiAgICAgYm9vbCBpc1JldmVydCA9IHZhbHVlVG9BcHBseS0+aXNSZXZlcnRWYWx1
ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsKKyAgICBib29s
IGlzUmV2ZXJ0TGF5ZXIgPSB2YWx1ZVRvQXBwbHktPmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpIHx8IGN1
c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydExheWVyOwogCi0gICAgaWYgKGlz
UmV2ZXJ0KSB7Ci0gICAgICAgIGlmIChhdXRvKiByb2xsYmFjayA9IG1fY2FzY2FkZS5wcm9wZXJ0
eUNhc2NhZGVGb3JSb2xsYmFjayhtX3N0YXRlLm1fY2FzY2FkZUxldmVsKSkgeworICAgIGlmIChp
c1JldmVydCB8fCBpc1JldmVydExheWVyKSB7CisgICAgICAgIGF1dG8qIHJvbGxiYWNrQ2FzY2Fk
ZSA9IGlzUmV2ZXJ0CisgICAgICAgICAgICA/IGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVy
dChtX3N0YXRlLm1fY2FzY2FkZUxldmVsKQorICAgICAgICAgICAgOiBlbnN1cmVSb2xsYmFja0Nh
c2NhZGVGb3JSZXZlcnRMYXllcihtX3N0YXRlLm1fY2FzY2FkZUxldmVsLCBtX3N0YXRlLm1fY2Fz
Y2FkZUxheWVyUHJpb3JpdHkpOworCisgICAgICAgIGlmIChyb2xsYmFja0Nhc2NhZGUpIHsKICAg
ICAgICAgICAgIC8vIFdpdGggdGhlIHJvbGxiYWNrIGNhc2NhZGUgYnVpbHQsIHdlIG5lZWQgdG8g
b2J0YWluIHRoZSBwcm9wZXJ0eSBhbmQgYXBwbHkgaXQuIElmIHRoZSBwcm9wZXJ0eSBpcwotICAg
ICAgICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0LiIgT3Ro
ZXJ3aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mCi0gICAgICAgICAgICAvLyBv
dXIgb3duLgorICAgICAgICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2Ug
InVuc2V0LiIgT3RoZXJ3aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG91ciBv
d24uCisgICAgICAgICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGV2ZWxTY29wZShtX3N0YXRlLm1f
Y2FzY2FkZUxldmVsLCByb2xsYmFja0Nhc2NhZGUtPm1heGltdW1DYXNjYWRlTGV2ZWwoKSk7Cisg
ICAgICAgICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGF5ZXJQcmlvcml0eVNjb3BlKG1fc3RhdGUu
bV9jYXNjYWRlTGF5ZXJQcmlvcml0eSwgcm9sbGJhY2tDYXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxh
eWVyUHJpb3JpdHkoKSk7CiAgICAgICAgICAgICBpZiAoY3VzdG9tUHJvcGVydHlWYWx1ZSkgewot
ICAgICAgICAgICAgICAgIGlmIChjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgJiYgY3VzdG9tUHJv
cGVydHlSZWdpc3RlcmVkLT5pbmhlcml0cyAmJiByb2xsYmFjay0+aGFzQ3VzdG9tUHJvcGVydHko
Y3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgewotICAgICAgICAgICAgICAgICAgICBhdXRv
IHByb3BlcnR5ID0gcm9sbGJhY2stPmN1c3RvbVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUt
Pm5hbWUoKSk7CisgICAgICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCAm
JiBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQtPmluaGVyaXRzICYmIHJvbGxiYWNrQ2FzY2FkZS0+
aGFzQ3VzdG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gcm9sbGJhY2tDYXNjYWRlLT5jdXN0b21Qcm9w
ZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpOwogICAgICAgICAgICAgICAgICAgICBp
ZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10pCiAgICAgICAgICAgICAgICAgICAg
ICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01h
dGNoTWFza10sIGxpbmtNYXRjaE1hc2spOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFjay0+aGFzUHJv
cGVydHkoaWQpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgcHJvcGVydHkgPSByb2xsYmFjay0+
cHJvcGVydHkoaWQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFja0Nhc2NhZGUtPmhh
c1Byb3BlcnR5KGlkKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnR5ID0gcm9sbGJh
Y2tDYXNjYWRlLT5wcm9wZXJ0eShpZCk7CiAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LmNz
c1ZhbHVlW2xpbmtNYXRjaE1hc2tdKQogICAgICAgICAgICAgICAgICAgICBhcHBseVByb3BlcnR5
KHByb3BlcnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10sIGxpbmtNYXRj
aE1hc2spOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM3Myw1ICszODAsMzIgQEAgUmVm
UHRyPENTU1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlELCBjb25zdAogICAgIHJldHVybiBDU1NQYXJzZXIobV9zdGF0ZS5kb2N1bWVu
dCgpKS5wYXJzZVZhbHVlV2l0aFZhcmlhYmxlUmVmZXJlbmNlcyhwcm9wZXJ0eUlELCB2YWx1ZSwg
bV9zdGF0ZSk7CiB9CiAKK2NvbnN0IFByb3BlcnR5Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJlUm9s
bGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCByb2xsYmFja0Nhc2NhZGVMZXZlbCkK
K3sKKyAgICBpZiAocm9sbGJhY2tDYXNjYWRlTGV2ZWwgPT0gQ2FzY2FkZUxldmVsOjpVc2VyQWdl
bnQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBtYWtlUm9sbGJh
Y2tDYXNjYWRlS2V5KHJvbGxiYWNrQ2FzY2FkZUxldmVsLCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQ
cmlvcml0eUZvclVubGF5ZXJlZCk7CisgICAgcmV0dXJuIG1fcm9sbGJhY2tDYXNjYWRlcy5lbnN1
cmUoa2V5LCBbJl0geworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNh
c2NhZGU+KG1fY2FzY2FkZSwgLS1yb2xsYmFja0Nhc2NhZGVMZXZlbCwgUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQo
KTsKK30KKworY29uc3QgUHJvcGVydHlDYXNjYWRlKiBCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nh
c2NhZGVGb3JSZXZlcnRMYXllcihDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5
ZXJQcmlvcml0eSByb2xsYmFja0xheWVyUHJpb3JpdHkpCit7CisgICAgaWYgKCFyb2xsYmFja0xh
eWVyUHJpb3JpdHkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBt
YWtlUm9sbGJhY2tDYXNjYWRlS2V5KGNhc2NhZGVMZXZlbCwgcm9sbGJhY2tMYXllclByaW9yaXR5
KTsKKyAgICByZXR1cm4gbV9yb2xsYmFja0Nhc2NhZGVzLmVuc3VyZShrZXksIFsmXSB7CisgICAg
ICAgIHJldHVybiBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4obV9jYXNjYWRlLCBj
YXNjYWRlTGV2ZWwsIHJvbGxiYWNrTGF5ZXJQcmlvcml0eSAtIDEpOworICAgIH0pLml0ZXJhdG9y
LT52YWx1ZS5nZXQoKTsKK30KKworYXV0byBCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5
KENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVM
YXllclByaW9yaXR5KSAtPiBSb2xsYmFja0Nhc2NhZGVLZXkKK3sKKyAgICByZXR1cm4geyBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oY2FzY2FkZUxldmVsKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNh
c2NhZGVMYXllclByaW9yaXR5KSB9OworfQorCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlci5oCmluZGV4IDEwYWU2NzYyMjU5NmUxNGE2NDFhMzAwZWFmMzhkZWJjM2QwYjJmNmQuLjJl
N2E5MDdkYzZhYzI0MjAzZjAxOWI5MDg0YjZiNTY1OTM0YzY1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQnVpbGRlci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFz
cyBCdWlsZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBC
dWlsZGVyKFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQm
LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiwgUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3Bl
cnRpZXMgPSBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllczo6QWxsKTsKKyAgICBC
dWlsZGVyKFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQm
LCBDYXNjYWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzID0gUHJv
cGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CiAgICAgfkJ1aWxkZXIoKTsK
IAogICAgIHZvaWQgYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CkBAIC02Myw3ICs2MywxNiBAQCBwcml2
YXRlOgogICAgIFJlZjxDU1NWYWx1ZT4gcmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU1Zh
bHVlJik7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJv
cGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmKTsKIAorICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSog
ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCk7CisgICAgY29uc3Qg
UHJvcGVydHlDYXNjYWRlKiBlbnN1cmVSb2xsYmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihDYXNj
YWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5KTsKKworICAgIHVzaW5nIFJvbGxiYWNrQ2Fz
Y2FkZUtleSA9IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+OworICAgIFJvbGxiYWNrQ2Fz
Y2FkZUtleSBtYWtlUm9sbGJhY2tDYXNjYWRlS2V5KENhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVy
UHJpb3JpdHkpOworCiAgICAgY29uc3QgUHJvcGVydHlDYXNjYWRlIG1fY2FzY2FkZTsKKyAgICAv
LyBSb2xsYmFjayBjYXNjYWRlcyBhcmUgYnVpbGQgb24gZGVtYW5kIHRvIHJlc29sdmUgJ3JldmVy
dCcgYW5kICdyZXZlcnQtbGF5ZXInIGtleXdvcmRzLgorICAgIEhhc2hNYXA8Um9sbGJhY2tDYXNj
YWRlS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUHJvcGVydHlDYXNjYWRlPj4gbV9yb2xsYmFj
a0Nhc2NhZGVzOworCiAgICAgQnVpbGRlclN0YXRlIG1fc3RhdGU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaAppbmRleCAyZWJjMWRiNzdiYzNkNmFhY2IyZjgy
MGMxNWVlN2Y5NGNkMjA4Yjk3Li5lYTFhNWI1MWRkOGEyZGVmMzY2NWQ2NWNkYjRkOWI1Y2MzYzli
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDU1NUb1N0eWxlTWFwLmgiCiAjaW5jbHVkZSAiQ2FzY2FkZUxl
dmVsLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAj
aW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgogCkBA
IC0xMzYsNiArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIENhc2NhZGVMZXZlbCBtX2Nhc2NhZGVM
ZXZlbCB7IH07CiAgICAgU2NvcGVPcmRpbmFsIG1fc3R5bGVTY29wZU9yZGluYWwgeyB9OworICAg
IENhc2NhZGVMYXllclByaW9yaXR5IG1fY2FzY2FkZUxheWVyUHJpb3JpdHkgeyB9OwogICAgIFNl
bGVjdG9yQ2hlY2tlcjo6TGlua01hdGNoTWFzayBtX2xpbmtNYXRjaCB7IH07CiAKICAgICBib29s
IG1fZm9udERpcnR5IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZDZhNjYyNWNmZmIwMWVlODMyY2ZjOTYyYjFkNDI2OGFkOGNjOGU5Zi4uOGVhMzlj
YmQwM2M4YTNhNGQ5MjY5ZDYwOGU4NTJhMzdhMzM2Y2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsCiAgICAgc3RhdGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCplbGVtZW50U3R5
bGUpKTsKICAgICBzdGF0ZS5zZXRQYXJlbnRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoY29u
dGV4dC5wYXJlbnRTdHlsZSA/ICpjb250ZXh0LnBhcmVudFN0eWxlIDogKmVsZW1lbnRTdHlsZSkp
OwogCi0gICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChz
dGF0ZSksIHJlc3VsdCwgeyBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1
aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNj
YWRlTGV2ZWw6OkF1dGhvcik7CiAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAog
ICAgIEFkanVzdGVyIGFkanVzdGVyKGRvY3VtZW50KCksICpzdGF0ZS5wYXJlbnRTdHlsZSgpLCBu
dWxscHRyLCBudWxscHRyKTsKQEAgLTQzNiw3ICs0MzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKIAogICAgIGF1
dG8mIHJlc3VsdCA9IGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpOwogCi0gICAgQnVpbGRlciBidWls
ZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIHJlc3VsdCwgeyBDYXNj
YWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCks
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNjYWRlTGV2ZWw6OkF1dGhvcik7CiAg
ICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgIC8vIE5vdyByZXR1cm4gdGhl
IHN0eWxlLgpAQCAtNTU1LDEzICs1NTUsMTMgQEAgdm9pZCBSZXNvbHZlcjo6YXBwbHlNYXRjaGVk
UHJvcGVydGllcyhTdGF0ZSYgc3RhdGUsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3UKICAg
ICAgICAgLy8gSWYgc28sIHdlIGNhY2hlIHRoZSBib3JkZXIgYW5kIGJhY2tncm91bmQgc3R5bGVz
IHNvIHRoYXQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKCkKICAgICAgICAgLy8gY2FuIGxvb2sg
YXQgdGhlbSBsYXRlciB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYSBzdHlsZWQgZm9ybSBjb250
cm9sIG9yIG5vdC4KICAgICAgICAgYXV0byB1c2VyQWdlbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cihzdHlsZSk7Ci0gICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUs
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpVc2Vy
QWdlbnQgfSk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUsIGJ1aWxk
ZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbDo6VXNlckFnZW50KTsK
ICAgICAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgICAgICBzdGF0ZS5z
ZXRVc2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUoV1RGTW92ZSh1c2VyQWdlbnRTdHlsZSkpOwogICAg
IH0KIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgYWxsQ2FzY2FkZUxldmVscygpLCBpbmNsdWRlZFByb3BlcnRp
ZXMpOworICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IsIGluY2x1ZGVkUHJvcGVy
dGllcyk7CiAKICAgICAvLyBIaWdoIHByaW9yaXR5IHByb3BlcnRpZXMgbWF5IGFmZmVjdCByZXNv
bHV0aW9uIG9mIG90aGVyIHByb3BlcnRpZXMgKHRoZXkgYXJlIG1vc3RseSBmb250IHJlbGF0ZWQp
LgogICAgIGJ1aWxkZXIuYXBwbHlIaWdoUHJpb3JpdHlQcm9wZXJ0aWVzKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTcx
OGMxNWIxZmExNTllMDAzOGYwZWU3M2FjZTQyNTk5MzVlZWFlMy4uZTM2NDM2ZDc0ZDQwMzNkYmI1
Y2Y3MDNlZjU1OGZlNzNjMmVhYjc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTA4
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2Nh
ZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMS0wOCAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbCBpcyBm
YWlsaW5nIHNpbmNlIGFkZGVkIGluIDI0MjA5M0BtYWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCAxZGM3YzYyNWUwMDY3YTA2MDRlOTBjNDM0YjM5ZDhjNWZmYWVjZmVkLi5jNTBl
MGEwMWM1NTJhMDg2M2MyN2I4ODNhZmVhZjdiNzczYzNhNWY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0wOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gU3VwcG9y
dCAncmV2ZXJ0LWxheWVyJyB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMjM2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDg3OTM2OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50
eHQ6CisKIDIwMjEtMTEtMDggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBZGQgc3VwcG9ydCBmb3IgY29tcG9zaXRlIG9wZXJh
dGlvbnMgZm9yIHNvZnR3YXJlIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE0MzMx
ZDMyYTNjMmM5NGQwZDQ2NDkyN2NmYThkNTdiYzc2NjEyYTQuLjczOWI1MDlmODkwNzMxNjkwYjUy
NjIwOWE1YmFhNTg5MmNhMjg0MDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0NiwxMyArMjE0
Niw2IEBAIHdlYmtpdC5vcmcvYi8xNDg2NTAgZmFzdC9yZXBhaW50L2FkZC10YWJsZS1vdmVycGFp
bnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jYXNjYWRlL2ltcG9ydGFudC1wcm9wLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xODcwOTMgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
YXNjYWRlL3JldmVydC1sYXllci0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2Fz
Y2FkZS9yZXZlcnQtbGF5ZXItMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvcmV2ZXJ0LWxheWVyLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L3Q0MjItcmdiYS1vbnNjcmVlbi1iLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE0ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
dDQyMi1yZ2JhLW9uc2NyZWVuLW11bHRpcGxlLWJveGVzLWMueGh0IFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3Jl
dmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CmluZGV4IDcxNDFhYzBiMDM5MDNmMjI3NjQxMzM1
OGM1YmRiODY2MzY2Mzg0ODcuLjEyN2I2ZjNiNTQyYmJlYTg4Njg4YzQ1MzY0ZjY0N2M4NzcyZmYw
ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRl
L3JldmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMICdy
ZXZlcnQtbGF5ZXInIHNob3VsZCByZXZlcnQgZm9udC1zaXplIHRvIDIwcHggYW5kIHRyaWdnZXIg
YSBzbW9vdGggdHJhbnNpdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTVweCIgYnV0IGdv
dCAiMTBweCIKK1BBU1MgJ3JldmVydC1sYXllcicgc2hvdWxkIHJldmVydCBmb250LXNpemUgdG8g
MjBweCBhbmQgdHJpZ2dlciBhIHNtb290aCB0cmFuc2l0aW9uCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443551</attachid>
            <date>2021-11-08 08:37:41 -0800</date>
            <delta_ts>2021-11-09 00:45:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232236-20211108183739.patch</filename>
            <type>text/plain</type>
            <size>35643</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxYzY4NTM0Mzc1YWI3
MDQ5YjBlOWZlZjQzZGUyNDA0YjY1NGVhOS4uODY3MTVmZjg5NDYxYmIwZjY2NGYzMmI4MGM4YjIx
NmQxZjA0ZjJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTExLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkIHJvbGxzIGJhY2sgdGhlIHZhbHVlIGNvbXB1dGVkIGJ5
IHRoZSBjYXNjYWRlIHRvIHRoZSBvbmUgY29taW5nIGZyb20gdGhlIGxheWVyIGJlbG93LgorCisg
ICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY2FzY2FkZS01LyNyZXZlcnQtbGF5ZXIK
KworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKworICAgICAgICBBZGQgYSAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkLgor
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzQ1NTV2lkZUtleXdvcmQpOgorCisgICAgICAgIE1ha2UgdGhlIGtleXdvcmQgQ1NTLXdp
ZGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDdXN0b21JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdHlsZS9DYXNjYWRlTGV2ZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpvcGVy
YXRvci0tKToKKworICAgICAgICBBZGQgZGVjcmVtZW50IG9wZXJhdG9yLgorCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6YWxsQ2FzY2FkZUxldmVscyk6IERlbGV0ZWQuCisgICAgICAgICogc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVs
ZXMpOgorCisgICAgICAgIFBhc3MgdGhlIGNhc2RhZGUgbGF5ZXIgcHJpb3JpdHkgc28gaXQgaXMg
YXZhaWxhYmxlIHdoZW4gcmVzb2x2aW5nIHRoZSBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3Bl
cnRpZXMpOgorCisgICAgICAgIEFkZCBhIGJpdCBpbmRpY2F0aW5nIGlmIHRoZSBwcm9wZXJ0aWVz
IGNhbWUgZnJvbSBhIHN0eWxlIGF0dHJpYnV0ZS4gVGhpcyBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qg
cmVzb2x1dGlvbiBvZiAhaW1wb3J0YW50IHdpdGggY2FzY2FkZSBsYXllcnMuCisKKyAgICAgICAg
KiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQ
cm9wZXJ0eUNhc2NhZGUpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZlbHMgaW4gdGVy
bXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQgb2YgbGV2ZWxz
LiBUaGlzIG1ha2VzIHRoaW5ncyBzaW1wbGVyLgorICAgICAgICBNYWtlIGl0IGEgbWVtYmVyLgor
ICAgICAgICBQcm92aWRlIG1heGltdW0gY2FzY2FkZSBsYXllciBwcmlvcml0eSB3aGVuIGNvbnN0
cnVjdGluZyByb2xsYmFjayBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJv
cGVydHlDYXNjYWRlOjpidWlsZENhc2NhZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBy
b3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaCk6CisKKyAgICAgICAgSWdub3JlIHByb3Bl
cnRpZXMgd2l0aCBjYXNjYWRlIGxldmVsIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtLgorCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVz
KToKKworICAgICAgICBUYWtlIGNhc2NhZGUgbGF5ZXJzIGludG8gYWNjb3VueSB3aGVuIHNvcnRp
bmcgaW1wb3J0YW50IG1hdGNoZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrIGNvbnN0KTogRGVsZXRlZC4KKwor
ICAgICAgICBNb3ZlIHJvbGxiYWNrIGNhc2NhZGVzIHRvIEJ1aWxkZXIuCisKKyAgICAgICAgKiBz
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6Om1heGltdW1DYXNjYWRlTGV2ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6bWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IGNvbnN0
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkJ1aWxkZXI6OkJ1aWxkZXIpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZl
bHMgaW4gdGVybXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQg
b2YgbGV2ZWxzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlDYXNj
YWRlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorCisgICAgICAgIENvbnN0cnVjdCByb2xsYmFjayBjYXNjYWRlIGZvciAncmV2ZXJ0
LWxheWVyJyBjYXNlIHRvby4gVGhpcyBpcyBzaW1pbGFyIHRvICdyZXZlcnQnLgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2Nh
ZGVGb3JSZXZlcnRMYXllcik6CisKKyAgICAgICAgTWFrZSB0aGUgcm9sbGJhY2sgY2FzY2FkZXMg
YW5kIHN0b3JlIHRoZW0gaW50byBhIEhhc2hNYXAuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNv
bHZlcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6CisKKyAgICAgICAgQWRvcHQgdG8gdGhlIG5ldyBpbnRl
cmZhY2UuCisKIDIwMjEtMTEtMDggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBZGQgc3VwcG9ydCBmb3IgY29tcG9zaXRlIG9w
ZXJhdGlvbnMgZm9yIHNvZnR3YXJlIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKaW5kZXggNTE0OGE0Y2IyZTQ3NTQzY2VmMTc0YWQyYjgwMzEwMmJiNDA5YTM3
ZC4uODVhYWM3ZDNmNWYyN2FmM2FhNjYyZWFhMjYzMzM5MDY3Nzk5ZThiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0luaGVyaXRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NW
YWx1ZUluaGVyaXQ7IH0KICAgICBib29sIGlzVW5zZXRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZh
bHVlSUQoKSA9PSBDU1NWYWx1ZVVuc2V0OyB9CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlUmV2ZXJ0OyB9CisgICAgYm9vbCBpc1Jl
dmVydExheWVyVmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZl
cnRMYXllcjsgfQogICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0OwogCiAgICAgc3Rh
dGljIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZh
bHVlSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWVJRCkp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCA0ZjNmNDVhZTg0YTlkOGRmNTNiNjliNmIz
MzM2NjBkOGMzY2ZiYzhiLi4zOTZmY2JmMmEzY2VjODdlZThjOGU1ZTE0YzBlNjdhNDgxOTAwYTQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTUxMCw2ICs1MTAsMTEgQEAgYm9vbCBDU1NW
YWx1ZTo6aXNSZXZlcnRWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZh
bHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc1JldmVy
dFZhbHVlKCk7CiB9CiAKK2Jvb2wgQ1NTVmFsdWU6OmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc1JldmVydExheWVyVmFsdWUoKTsKK30KKwogYm9v
bCBDU1NWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzPENT
U1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0
aGlzKS5pc0NTU1dpZGVLZXl3b3JkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDI5ZWE0YjZk
MTE2NjQyOTZhNzdmMWRkOTY3NmU2MDI4ZDU3YmQ1M2IuLjMzOGVkNTVkM2EzNDQ4YTAwODBhNWNh
ZGQ4MjM3M2ViZTVlZTUxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMTEsNiArMTExLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJbml0aWFsVmFsdWUoKSBjb25zdDsKICAgICBib29sIGlz
VW5zZXRWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNvbnN0OworICAg
IGJvb2wgaXNSZXZlcnRMYXllclZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NTU1dpZGVLZXl3
b3JkKCkgY29uc3Q7CiAgICAgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQp
IGNvbnN0OwogICAgIGJvb2wgdHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAxMmFhNzVhZTU0
NmIyMGQ2NDA1ZjEyYTA2ZTk2YWYwNWE0MWE3NmMzLi5hM2E5NTcwNmFiN2Q3YzYyNDM4M2E2N2Vk
YzBmOTk4MGI3MTIxNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpA
QCAtNSw2ICs1LDcgQEAgaW5oZXJpdAogaW5pdGlhbAogdW5zZXQKIHJldmVydAorcmV2ZXJ0LWxh
eWVyCiAKIC8vCiAvLyBDU1NfUFJPUF9PVVRMSU5FX1NUWUxFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaAppbmRleCBkZWYyMjIwMDkyNTQ0ZTU2ZmM5NjJmMTFj
YTFlNGY2NGQxMTIxODkxLi5lMjU0MmFkMjBiZGE4OTkwMzIxOGFmZmY5NjNkOTk5ZjdlYmYzOTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKQEAgLTYw
LDEyICs2MCwyMSBAQCBib29sIGlzTmFtZUNvZGVQb2ludChDaGFyYWN0ZXJUeXBlIGMpCiAKIGJv
b2wgaXNWYWx1ZUFsbG93ZWRJbk1vZGUodW5zaWduZWQgc2hvcnQsIENTU1BhcnNlck1vZGUpOwog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIHZhbHVlSUQp
CitpbmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKIHsKLSAg
ICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUluaGVyaXQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0IHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVSZXZlcnQ7CisgICAgc3dpdGNoICh2YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUluaXRp
YWw6CisgICAgY2FzZSBDU1NWYWx1ZUluaGVyaXQ6CisgICAgY2FzZSBDU1NWYWx1ZVVuc2V0Ogor
ICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnQ6CisgICAgY2FzZSBDU1NWYWx1ZVJldmVydExheWVyOgor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDdXN0b21JZGVudGlmaWVy
KENTU1ZhbHVlSUQgdmFsdWVJRCkKK2lubGluZSBib29sIGlzVmFsaWRDdXN0b21JZGVudGlmaWVy
KENTU1ZhbHVlSUQgdmFsdWVJRCkKIHsKICAgICAvLyAiZGVmYXVsdCIgaXMgb2Jzb2xldGUgYXMg
YSBDU1Mtd2lkZSBrZXl3b3JkIGJ1dCBpcyBzdGlsbCBub3QgYWxsb3dlZCBhcyBhIGN1c3RvbSBp
ZGVudGlmaWVyLgogICAgIHJldHVybiAhaXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKSAmJiB2YWx1
ZUlEICE9IENTU1ZhbHVlRGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0Nhc2NhZGVMZXZlbC5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxldmVsLmgKaW5k
ZXggYTJlMzJhODcxNWNhNzJkNWYzYjVjMDQ2ZDI5NzA4MTEzM2VkZTMyNi4uYzJkMmExYjE4MjBj
MDVmNTdkNWRhZThmYzMzOWYzNTQwZWQyYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvQ2FzY2FkZUxldmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxl
dmVsLmgKQEAgLTM2LDcgKzM2LDE4IEBAIGVudW0gY2xhc3MgQ2FzY2FkZUxldmVsIDogdWludDhf
dCB7CiAgICAgQXV0aG9yICAgICAgPSAxIDw8IDIKIH07CiAKLXN0YXRpYyBjb25zdGV4cHIgT3B0
aW9uU2V0PENhc2NhZGVMZXZlbD4gYWxsQ2FzY2FkZUxldmVscygpIHsgcmV0dXJuIHsgQ2FzY2Fk
ZUxldmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6VXNlciwgQ2FzY2FkZUxldmVsOjpBdXRo
b3IgfTsgfQoraW5saW5lIENhc2NhZGVMZXZlbCYgb3BlcmF0b3ItLShDYXNjYWRlTGV2ZWwmIGxl
dmVsKQoreworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIENhc2NhZGVMZXZlbDo6QXV0
aG9yOgorICAgICAgICByZXR1cm4gbGV2ZWwgPSBDYXNjYWRlTGV2ZWw6OlVzZXI7CisgICAgY2Fz
ZSBDYXNjYWRlTGV2ZWw6OlVzZXI6CisgICAgICAgIHJldHVybiBsZXZlbCA9IENhc2NhZGVMZXZl
bDo6VXNlckFnZW50OworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbGV2ZWw7CisgICAgfQorfQog
CiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAK
aW5kZXggNjljZTBiYWZiMzQ3YTg0ZjUwNDdkNGRlM2I2MThiNWE2OTljMzFjYi4uNjUzODNiOTJm
ZjJjOWExZGY4ZTJkZjE3YTEwNTNkYzZiMDQ4ZjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6OmNsZWFyTWF0Y2hlZFJ1bGVzKCkKICAgICBtX21hdGNoZWRSdWxl
VHJhbnNmZXJJbmRleCA9IDA7CiB9CiAKLWlubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9y
OjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJvcGVy
dHlTZXQsIGJvb2wgaXNDYWNoZWFibGUpCitpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6YWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqIHByb3Bl
cnR5U2V0LCBib29sIGlzQ2FjaGVhYmxlLCBGcm9tU3R5bGVBdHRyaWJ1dGUgZnJvbVN0eWxlQXR0
cmlidXRlKQogewogICAgIGlmICghcHJvcGVydHlTZXQgfHwgcHJvcGVydHlTZXQtPmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTMyLDcgKzEzMiw5IEBAIGlubGluZSB2b2lkIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJv
cGVydGllCiAgICAgaWYgKCFpc0NhY2hlYWJsZSkKICAgICAgICAgbV9yZXN1bHQuaXNDYWNoZWFi
bGUgPSBmYWxzZTsKIAotICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHsgcHJvcGVydHlTZXQgfSwg
RGVjbGFyYXRpb25PcmlnaW46OkF1dGhvcik7CisgICAgYXV0byBtYXRjaGVkUHJvcGVydHkgPSBN
YXRjaGVkUHJvcGVydGllcyB7IHByb3BlcnR5U2V0IH07CisgICAgbWF0Y2hlZFByb3BlcnR5LmZy
b21TdHlsZUF0dHJpYnV0ZSA9IGZyb21TdHlsZUF0dHJpYnV0ZTsKKyAgICBhZGRNYXRjaGVkUHJv
cGVydGllcyhXVEZNb3ZlKG1hdGNoZWRQcm9wZXJ0eSksIERlY2xhcmF0aW9uT3JpZ2luOjpBdXRo
b3IpOwogfQogCiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxl
cyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdCkKQEAgLTIwMyw3ICsyMDUsOCBAQCB2
b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxlcyhEZWNsYXJhdGlv
bk9yaWdpbiBkZWNsYXJhdGlvbk9yaQogICAgICAgICAgICAgJm1hdGNoZWRSdWxlLnJ1bGVEYXRh
LT5zdHlsZVJ1bGUoKS5wcm9wZXJ0aWVzKCksCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50
MTZfdD4obWF0Y2hlZFJ1bGUucnVsZURhdGEtPmxpbmtNYXRjaFR5cGUoKSksCiAgICAgICAgICAg
ICBtYXRjaGVkUnVsZS5ydWxlRGF0YS0+cHJvcGVydHlBbGxvd2xpc3QoKSwKLSAgICAgICAgICAg
IG1hdGNoZWRSdWxlLnN0eWxlU2NvcGVPcmRpbmFsCisgICAgICAgICAgICBtYXRjaGVkUnVsZS5z
dHlsZVNjb3BlT3JkaW5hbCwKKyAgICAgICAgICAgIG1hdGNoZWRSdWxlLmNhc2NhZGVMYXllclBy
aW9yaXR5CiAgICAgICAgIH0sIGRlY2xhcmF0aW9uT3JpZ2luKTsKICAgICB9CiB9CkBAIC01NjYs
NyArNTY5LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudElubGluZVN0
eWxlUHJvcGVydGllcyhib29sIGluY2x1ZGVTTUlMUHJvcGUKICAgICBpZiAoYXV0byogaW5saW5l
U3R5bGUgPSBkb3duY2FzdDxTdHlsZWRFbGVtZW50PihlbGVtZW50KCkpLmlubGluZVN0eWxlKCkp
IHsKICAgICAgICAgLy8gRklYTUU6IE1lZGlhIGNvbnRyb2wgc2hhZG93IHRyZWVzIHNlZW0gdG8g
aGF2ZSBwcm9ibGVtcyB3aXRoIGNhY2hpbmcuCiAgICAgICAgIGJvb2wgaXNJbmxpbmVTdHlsZUNh
Y2hlYWJsZSA9ICFpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkgJiYgIWVsZW1lbnQoKS5pc0luU2hh
ZG93VHJlZSgpOwotICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGlubGluZVN0eWxl
LCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlKTsKKyAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVy
dGllcyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSwgRnJvbVN0eWxlQXR0cmli
dXRlOjpZZXMpOwogICAgIH0KIAogICAgIGlmIChpbmNsdWRlU01JTFByb3BlcnRpZXMgJiYgaXM8
U1ZHRWxlbWVudD4oZWxlbWVudCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oCmluZGV4IGEyYjIyNTVhMDNhYjczZmZhYjU1NmZkOTYwMTM1YjdjOWRhZDdj
ZjMuLjllNDc5YTkzNWM5NmI2ZjVmYWFjNWY5NzgzOTk3ODRkYTAzMTM0NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNjYsMTEgKzY2LDE1IEBA
IHN0cnVjdCBNYXRjaGVkUnVsZSB7CiAgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkgY2FzY2FkZUxh
eWVyUHJpb3JpdHk7CiB9OwogCitlbnVtIGNsYXNzIEZyb21TdHlsZUF0dHJpYnV0ZSA6IGJvb2wg
eyBObywgWWVzIH07CisKIHN0cnVjdCBNYXRjaGVkUHJvcGVydGllcyB7CiAgICAgUmVmUHRyPGNv
bnN0IFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllczsKICAgICB1aW50MTZfdCBsaW5rTWF0Y2hU
eXBlIHsgU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCB9OwogICAgIFByb3BlcnR5QWxsb3dsaXN0
IGFsbG93bGlzdFR5cGUgeyBQcm9wZXJ0eUFsbG93bGlzdDo6Tm9uZSB9OwogICAgIFNjb3BlT3Jk
aW5hbCBzdHlsZVNjb3BlT3JkaW5hbCB7IFNjb3BlT3JkaW5hbDo6RWxlbWVudCB9OworICAgIENh
c2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5IHsgUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQgfTsKKyAgICBGcm9tU3R5bGVBdHRyaWJ1dGUgZnJv
bVN0eWxlQXR0cmlidXRlIHsgRnJvbVN0eWxlQXR0cmlidXRlOjpObyB9OwogfTsKIAogc3RydWN0
IE1hdGNoUmVzdWx0IHsKQEAgLTEyMSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaWRN
YXRjaFVuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2RpZE1hdGNo
VW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgYWRkRWxl
bWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqLCBib29sIGlzQ2FjaGVh
YmxlID0gdHJ1ZSk7CisgICAgdm9pZCBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0
eWxlUHJvcGVydGllcyosIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlLCBGcm9tU3R5bGVBdHRyaWJ1
dGUgPSBGcm9tU3R5bGVBdHRyaWJ1dGU6Ok5vKTsKIAogICAgIHZvaWQgbWF0Y2hVQVJ1bGVzKGNv
bnN0IFJ1bGVTZXQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVy
dHlDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAK
aW5kZXggNTA1MTUyN2M2M2MyMTcwNmJhZGVkM2I1MmM5MDVlY2UxYTRjZjI1ZS4uZGFiZGE2MDg3
OGJhMGMwNTc3ZjFkNGViZWNhNWMyNGMzNTE4OTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Q
cm9wZXJ0eUNhc2NhZGUuY3BwCkBAIC03MSwzMCArNzEsMzUgQEAgc3RhdGljIGlubGluZSBib29s
IHNob3VsZEFwcGx5UHJvcGVydHlJblBhcnNlT3JkZXIoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
KQogICAgIH0KIH0KIAotUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0
Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2
ZWxzLCBJbmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rpb24gZGly
ZWN0aW9uKQorUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0Y2hSZXN1
bHQmIG1hdGNoUmVzdWx0LCBDYXNjYWRlTGV2ZWwgbWF4aW11bUNhc2NhZGVMZXZlbCwgSW5jbHVk
ZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcywgRGlyZWN0aW9uIGRpcmVjdGlvbikKICAg
ICA6IG1fbWF0Y2hSZXN1bHQobWF0Y2hSZXN1bHQpCiAgICAgLCBtX2luY2x1ZGVkUHJvcGVydGll
cyhpbmNsdWRlZFByb3BlcnRpZXMpCisgICAgLCBtX21heGltdW1DYXNjYWRlTGV2ZWwobWF4aW11
bUNhc2NhZGVMZXZlbCkKICAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKIHsKLSAgICBidWls
ZENhc2NhZGUoY2FzY2FkZUxldmVscyk7CisgICAgYnVpbGRDYXNjYWRlKCk7CiB9CiAKLVByb3Bl
cnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYgcGFyZW50
LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzKQorUHJvcGVydHlDYXNjYWRl
OjpQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNjYWRlJiBwYXJlbnQsIENhc2NhZGVM
ZXZlbCBtYXhpbXVtQ2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0eSBtYXhpbXVtQ2Fz
Y2FkZUxheWVyUHJpb3JpdHkpCiAgICAgOiBtX21hdGNoUmVzdWx0KHBhcmVudC5tX21hdGNoUmVz
dWx0KQogICAgICwgbV9pbmNsdWRlZFByb3BlcnRpZXMocGFyZW50Lm1faW5jbHVkZWRQcm9wZXJ0
aWVzKQorICAgICwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsKG1heGltdW1DYXNjYWRlTGV2ZWwpCisg
ICAgLCBtX21heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eShtYXhpbXVtQ2FzY2FkZUxheWVyUHJp
b3JpdHkpCiAgICAgLCBtX2RpcmVjdGlvbihwYXJlbnQuZGlyZWN0aW9uKCkpCiAgICAgLCBtX2Rp
cmVjdGlvbklzVW5yZXNvbHZlZChmYWxzZSkKIHsKLSAgICBidWlsZENhc2NhZGUoY2FzY2FkZUxl
dmVscyk7CisgICAgYnVpbGRDYXNjYWRlKCk7CiB9CiAKIFByb3BlcnR5Q2FzY2FkZTo6flByb3Bl
cnR5Q2FzY2FkZSgpID0gZGVmYXVsdDsKIAotdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmJ1aWxkQ2Fz
Y2FkZShPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzKQordm9pZCBQcm9wZXJ0
eUNhc2NhZGU6OmJ1aWxkQ2FzY2FkZSgpCiB7CiAgICAgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4g
Y2FzY2FkZUxldmVsc1dpdGhJbXBvcnRhbnQ7CiAKLSAgICBmb3IgKGF1dG8gY2FzY2FkZUxldmVs
IDogY2FzY2FkZUxldmVscykgeworICAgIGZvciAoYXV0byBjYXNjYWRlTGV2ZWwgOiB7IENhc2Nh
ZGVMZXZlbDo6VXNlckFnZW50LCBDYXNjYWRlTGV2ZWw6OlVzZXIsIENhc2NhZGVMZXZlbDo6QXV0
aG9yIH0pIHsKKyAgICAgICAgaWYgKGNhc2NhZGVMZXZlbCA+IG1fbWF4aW11bUNhc2NhZGVMZXZl
bCkKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBib29sIGhhc0ltcG9ydGFudCA9IGFkZE5v
cm1hbE1hdGNoZXMoY2FzY2FkZUxldmVsKTsKICAgICAgICAgaWYgKGhhc0ltcG9ydGFudCkKICAg
ICAgICAgICAgIGNhc2NhZGVMZXZlbHNXaXRoSW1wb3J0YW50LmFkZChjYXNjYWRlTGV2ZWwpOwpA
QCAtMTEzLDYgKzExOCw4IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjpzZXRQcm9wZXJ0eUludGVy
bmFsKFByb3BlcnR5JiBwcm9wZXJ0eSwgQ1NTUHJvcGVydHlJRCBpZCwKICAgICBwcm9wZXJ0eS5p
ZCA9IGlkOwogICAgIHByb3BlcnR5LmxldmVsID0gY2FzY2FkZUxldmVsOwogICAgIHByb3BlcnR5
LnN0eWxlU2NvcGVPcmRpbmFsID0gbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWw7
CisgICAgcHJvcGVydHkuY2FzY2FkZUxheWVyUHJpb3JpdHkgPSBtYXRjaGVkUHJvcGVydGllcy5j
YXNjYWRlTGF5ZXJQcmlvcml0eTsKKwogICAgIGlmIChtYXRjaGVkUHJvcGVydGllcy5saW5rTWF0
Y2hUeXBlID09IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwpIHsKICAgICAgICAgcHJvcGVydHku
Y3NzVmFsdWVbMF0gPSAmY3NzVmFsdWU7CiAgICAgICAgIHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVj
dG9yQ2hlY2tlcjo6TWF0Y2hMaW5rXSA9ICZjc3NWYWx1ZTsKQEAgLTE3MCw2ICsxNzcsOSBAQCB2
b2lkIFByb3BlcnR5Q2FzY2FkZTo6c2V0RGVmZXJyZWQoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFs
dWUmIGNzc1ZhbHVlLCBjb25zdCBNYQogCiBib29sIFByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2go
Y29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9wZXJ0aWVzLCBDYXNjYWRlTGV2ZWwg
Y2FzY2FkZUxldmVsLCBib29sIGltcG9ydGFudCkKIHsKKyAgICBpZiAobWF0Y2hlZFByb3BlcnRp
ZXMuY2FzY2FkZUxheWVyUHJpb3JpdHkgPiBtX21heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSAm
JiBjYXNjYWRlTGV2ZWwgPT0gbV9tYXhpbXVtQ2FzY2FkZUxldmVsICYmIG1hdGNoZWRQcm9wZXJ0
aWVzLnN0eWxlU2NvcGVPcmRpbmFsID09IFNjb3BlT3JkaW5hbDo6RWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgYXV0byYgc3R5bGVQcm9wZXJ0aWVzID0gKm1hdGNoZWRQcm9w
ZXJ0aWVzLnByb3BlcnRpZXM7CiAgICAgYXV0byBwcm9wZXJ0eUFsbG93bGlzdCA9IG1hdGNoZWRQ
cm9wZXJ0aWVzLmFsbG93bGlzdFR5cGU7CiAgICAgYm9vbCBoYXNJbXBvcnRhbnRQcm9wZXJ0aWVz
ID0gZmFsc2U7CkBAIC0yMzcsMTIgKzI0NywxNCBAQCBzdGF0aWMgYm9vbCBoYXNJbXBvcnRhbnRQ
cm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyYgcHJvcGVydGllcykKIAogdm9pZCBQcm9w
ZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZl
bCkKIHsKLSAgICBzdHJ1Y3QgSW5kZXhBbmRPcmRpbmFsIHsKKyAgICBzdHJ1Y3QgSW1wb3J0YW50
TWF0Y2ggewogICAgICAgICB1bnNpZ25lZCBpbmRleDsKICAgICAgICAgU2NvcGVPcmRpbmFsIG9y
ZGluYWw7CisgICAgICAgIENhc2NhZGVMYXllclByaW9yaXR5IGxheWVyUHJpb3JpdHk7CisgICAg
ICAgIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1dGU7CiAgICAgfTsKLSAgICBW
ZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBpbXBvcnRhbnRNYXRjaGVzOwotICAgIGJvb2wgaGFzTWF0
Y2hlc0Zyb21PdGhlclNjb3BlcyA9IGZhbHNlOworICAgIFZlY3RvcjxJbXBvcnRhbnRNYXRjaD4g
aW1wb3J0YW50TWF0Y2hlczsKKyAgICBib29sIGhhc01hdGNoZXNGcm9tT3RoZXJTY29wZXNPckxh
eWVycyA9IGZhbHNlOwogCiAgICAgYXV0byYgbWF0Y2hlZERlY2xhcmF0aW9ucyA9IGRlY2xhcmF0
aW9uc0ZvckNhc2NhZGVMZXZlbChtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWwpOwogCkBAIC0y
NTIsMjAgKzI2NCwyNSBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hl
cyhDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsKQogICAgICAgICBpZiAoIWhhc0ltcG9ydGFudFBy
b3BlcnRpZXMoKm1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMpKQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgaW1wb3J0YW50TWF0Y2hlcy5hcHBlbmQoeyBpLCBtYXRjaGVkUHJv
cGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCB9KTsKKyAgICAgICAgaW1wb3J0YW50TWF0Y2hlcy5h
cHBlbmQoeyBpLCBtYXRjaGVkUHJvcGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCwgbWF0Y2hlZFBy
b3BlcnRpZXMuY2FzY2FkZUxheWVyUHJpb3JpdHksIG1hdGNoZWRQcm9wZXJ0aWVzLmZyb21TdHls
ZUF0dHJpYnV0ZSB9KTsKIAotICAgICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29w
ZU9yZGluYWwgIT0gU2NvcGVPcmRpbmFsOjpFbGVtZW50KQotICAgICAgICAgICAgaGFzTWF0Y2hl
c0Zyb21PdGhlclNjb3BlcyA9IHRydWU7CisgICAgICAgIGlmIChtYXRjaGVkUHJvcGVydGllcy5z
dHlsZVNjb3BlT3JkaW5hbCAhPSBTY29wZU9yZGluYWw6OkVsZW1lbnQgfHwgbWF0Y2hlZFByb3Bl
cnRpZXMuY2FzY2FkZUxheWVyUHJpb3JpdHkgIT0gUnVsZVNldDo6Y2FzY2FkZUxheWVyUHJpb3Jp
dHlGb3JVbmxheWVyZWQpCisgICAgICAgICAgICBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JM
YXllcnMgPSB0cnVlOwogICAgIH0KIAogICAgIGlmIChpbXBvcnRhbnRNYXRjaGVzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGhhc01hdGNoZXNGcm9tT3RoZXJTY29wZXMp
IHsKLSAgICAgICAgLy8gRm9yICFpbXBvcnRhbnQgcHJvcGVydGllcyBhIGxhdGVyIHNoYWRvdyB0
cmVlIHdpbnMuCisgICAgaWYgKGhhc01hdGNoZXNGcm9tT3RoZXJTY29wZXNPckxheWVycykgewog
ICAgICAgICAvLyBNYXRjaCByZXN1bHRzIGFyZSBzb3J0ZWQgaW4gcmV2ZXJzZSB0cmVlIGNvbnRl
eHQgb3JkZXIgc28gdGhpcyBpcyBub3QgbmVlZGVkIGZvciBub3JtYWwgcHJvcGVydGllcy4KLSAg
ICAgICAgc3RkOjpzdGFibGVfc29ydChpbXBvcnRhbnRNYXRjaGVzLmJlZ2luKCksIGltcG9ydGFu
dE1hdGNoZXMuZW5kKCksIFtdIChjb25zdCBJbmRleEFuZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4
QW5kT3JkaW5hbCYgYikgewotICAgICAgICAgICAgcmV0dXJuIGEub3JkaW5hbCA8IGIub3JkaW5h
bDsKKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChpbXBvcnRhbnRNYXRjaGVzLmJlZ2luKCksIGlt
cG9ydGFudE1hdGNoZXMuZW5kKCksIFtdIChhdXRvJiBhLCBhdXRvJiBiKSB7CisgICAgICAgICAg
ICAvLyBGb3IgIWltcG9ydGFudCBwcm9wZXJ0aWVzIGEgbGF0ZXIgc2hhZG93IHRyZWUgd2lucy4K
KyAgICAgICAgICAgIGlmIChhLm9yZGluYWwgIT0gYi5vcmRpbmFsKQorICAgICAgICAgICAgICAg
IHJldHVybiBhLm9yZGluYWwgPCBiLm9yZGluYWw7CisgICAgICAgICAgICAvLyBMb3dlciBwcmlv
cml0eSBsYXllciB3aW5zLCBleGNlcHQgaWYgc3R5bGUgYXR0cmlidXRlIGlzIGludm9sdmVkLgor
ICAgICAgICAgICAgaWYgKGEuZnJvbVN0eWxlQXR0cmlidXRlICE9IGIuZnJvbVN0eWxlQXR0cmli
dXRlKQorICAgICAgICAgICAgICAgIHJldHVybiBhLmZyb21TdHlsZUF0dHJpYnV0ZSA9PSBGcm9t
U3R5bGVBdHRyaWJ1dGU6Ok5vOworICAgICAgICAgICAgcmV0dXJuIGEubGF5ZXJQcmlvcml0eSA+
IGIubGF5ZXJQcmlvcml0eTsKICAgICAgICAgfSk7CiAgICAgfQogCkBAIC0yNzMsMzAgKzI5MCw2
IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZl
bCBjYXNjYWRlTGV2ZWwpCiAgICAgICAgIGFkZE1hdGNoKG1hdGNoZWREZWNsYXJhdGlvbnNbbWF0
Y2guaW5kZXhdLCBjYXNjYWRlTGV2ZWwsIHRydWUpOwogfQogCi1jb25zdCBQcm9wZXJ0eUNhc2Nh
ZGUqIFByb3BlcnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9yUm9sbGJhY2soQ2FzY2FkZUxl
dmVsIGNhc2NhZGVMZXZlbCkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKGNhc2NhZGVMZXZlbCkgewot
ICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpBdXRob3I6Ci0gICAgICAgIGlmICghbV9hdXRob3JSb2xs
YmFja0Nhc2NhZGUpIHsKLSAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNl
dDxDYXNjYWRlTGV2ZWw+IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6
VXNlciB9OwotICAgICAgICAgICAgbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUgPSBtYWtlVW5pcXVl
PGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4oKnRoaXMsIGNhc2NhZGVMZXZlbHMpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZS5nZXQoKTsKLQotICAgIGNh
c2UgQ2FzY2FkZUxldmVsOjpVc2VyOgotICAgICAgICBpZiAoIW1fdXNlclJvbGxiYWNrQ2FzY2Fk
ZSkgewotICAgICAgICAgICAgYXV0byBjYXNjYWRlTGV2ZWxzID0gT3B0aW9uU2V0PENhc2NhZGVM
ZXZlbD4geyBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCB9OwotICAgICAgICAgICAgbV91c2VyUm9s
bGJhY2tDYXNjYWRlID0gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+KCp0aGlzLCBj
YXNjYWRlTGV2ZWxzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbV91c2VyUm9sbGJhY2tD
YXNjYWRlLmdldCgpOwotCi0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudDoKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBudWxscHRyOwotfQotCiBQcm9wZXJ0eUNhc2NhZGU6OkRpcmVjdGlvbiBQcm9wZXJ0
eUNhc2NhZGU6OnJlc29sdmVEaXJlY3Rpb25BbmRXcml0aW5nTW9kZShEaXJlY3Rpb24gaW5oZXJp
dGVkRGlyZWN0aW9uKSBjb25zdAogewogICAgIERpcmVjdGlvbiByZXN1bHQgPSBpbmhlcml0ZWRE
aXJlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2Nh
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5oCmluZGV4IDNmYTFm
OGJkNDIzMmYyMmM1ZDJhNDdmZjIyZWQyNzBkZjhiYzUwNjAuLjgzN2VmY2FkNDE2ZmNkZDdmY2Rh
MmNjYmVlODRhNGFlZDgyMjYxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1By
b3BlcnR5Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2Fk
ZS5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICAgICAgV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGU7CiAgICAgfTsKIAotICAgIFByb3BlcnR5Q2FzY2FkZShjb25zdCBNYXRjaFJlc3VsdCYs
IE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+LCBJbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbik7
Ci0gICAgUHJvcGVydHlDYXNjYWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYsIE9wdGlvblNldDxD
YXNjYWRlTGV2ZWw+KTsKKyAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0Y2hSZXN1bHQmLCBD
YXNjYWRlTGV2ZWwsIEluY2x1ZGVkUHJvcGVydGllcywgRGlyZWN0aW9uKTsKKyAgICBQcm9wZXJ0
eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNjYWRlJiwgQ2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5
ZXJQcmlvcml0eSBtYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgPSBSdWxlU2V0OjpjYXNjYWRl
TGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCk7CiAKICAgICB+UHJvcGVydHlDYXNjYWRlKCk7CiAK
QEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgICAgICBDU1NQcm9wZXJ0eUlEIGlkOwogICAg
ICAgICBDYXNjYWRlTGV2ZWwgbGV2ZWw7CiAgICAgICAgIFNjb3BlT3JkaW5hbCBzdHlsZVNjb3Bl
T3JkaW5hbDsKKyAgICAgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkgY2FzY2FkZUxheWVyUHJpb3Jp
dHk7CiAgICAgICAgIENTU1ZhbHVlKiBjc3NWYWx1ZVszXTsgLy8gVmFsdWVzIGZvciBsaW5rIG1h
dGNoIHN0YXRlcyBNYXRjaERlZmF1bHQsIE1hdGNoTGluayBhbmQgTWF0Y2hWaXNpdGVkCiAgICAg
fTsKIApAQCAtNjksMTAgKzcwLDExIEBAIHB1YmxpYzoKIAogICAgIERpcmVjdGlvbiBkaXJlY3Rp
b24oKSBjb25zdDsKIAotICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSogcHJvcGVydHlDYXNjYWRl
Rm9yUm9sbGJhY2soQ2FzY2FkZUxldmVsKSBjb25zdDsKKyAgICBhdXRvIG1heGltdW1DYXNjYWRl
TGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1DYXNjYWRlTGV2ZWw7IH0KKyAgICBhdXRv
IG1heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bUNh
c2NhZGVMYXllclByaW9yaXR5OyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBidWlsZENhc2NhZGUo
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4pOworICAgIHZvaWQgYnVpbGRDYXNjYWRlKCk7CiAgICAg
Ym9vbCBhZGROb3JtYWxNYXRjaGVzKENhc2NhZGVMZXZlbCk7CiAgICAgdm9pZCBhZGRJbXBvcnRh
bnRNYXRjaGVzKENhc2NhZGVMZXZlbCk7CiAgICAgYm9vbCBhZGRNYXRjaChjb25zdCBNYXRjaGVk
UHJvcGVydGllcyYsIENhc2NhZGVMZXZlbCwgYm9vbCBpbXBvcnRhbnQpOwpAQCAtODUsNiArODcs
OCBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgTWF0Y2hSZXN1bHQmIG1fbWF0Y2hSZXN1bHQ7CiAg
ICAgY29uc3QgSW5jbHVkZWRQcm9wZXJ0aWVzIG1faW5jbHVkZWRQcm9wZXJ0aWVzOworICAgIGNv
bnN0IENhc2NhZGVMZXZlbCBtX21heGltdW1DYXNjYWRlTGV2ZWw7CisgICAgY29uc3QgQ2FzY2Fk
ZUxheWVyUHJpb3JpdHkgbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgeyBSdWxlU2V0Ojpj
YXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCB9OwogICAgIG11dGFibGUgRGlyZWN0aW9u
IG1fZGlyZWN0aW9uOwogICAgIG11dGFibGUgYm9vbCBtX2RpcmVjdGlvbklzVW5yZXNvbHZlZCB7
IHRydWUgfTsKIApAQCAtOTMsOSArOTcsNiBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFByb3Bl
cnR5LCA4PiBtX2RlZmVycmVkUHJvcGVydGllczsKICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFBy
b3BlcnR5PiBtX2N1c3RvbVByb3BlcnRpZXM7Ci0KLSAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0
cjxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+IG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlOwotICAgIG11
dGFibGUgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4gbV91c2VyUm9sbGJh
Y2tDYXNjYWRlOwogfTsKIAogaW5saW5lIGJvb2wgUHJvcGVydHlDYXNjYWRlOjpoYXNQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5j
cHAKaW5kZXggOWQ2YzZiNDM5OTBhOGE5YmUxMGI2MjI3M2QwNzkyYjk4YmU1OGE5ZC4uMzMxMTNk
YzAxOWNkNjY1OGQxZWMxMTU0OTdhZTQ3ZjQ3NmY5N2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXIuY3BwCkBAIC04MCw4ICs4MCw4IEBAIGlubGluZSBib29sIGlzVmFsaWRWaXNp
dGVkTGlua1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1CdWlsZGVyOjpCdWlsZGVyKFJlbmRlclN0eWxlJiBzdHlsZSwgQnVpbGRlckNvbnRleHQmJiBj
b250ZXh0LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNjYWRl
TGV2ZWw+IGNhc2NhZGVMZXZlbHMsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVz
IGluY2x1ZGVkUHJvcGVydGllcykKLSAgICA6IG1fY2FzY2FkZShtYXRjaFJlc3VsdCwgY2FzY2Fk
ZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0aWVzLCBkaXJlY3Rpb25Gcm9tU3R5bGUoc3R5bGUpKQor
QnVpbGRlcjo6QnVpbGRlcihSZW5kZXJTdHlsZSYgc3R5bGUsIEJ1aWxkZXJDb250ZXh0JiYgY29u
dGV4dCwgY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBDYXNjYWRlTGV2ZWwgY2FzY2Fk
ZUxldmVsLCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3Bl
cnRpZXMpCisgICAgOiBtX2Nhc2NhZGUobWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbCwgaW5jbHVk
ZWRQcm9wZXJ0aWVzLCBkaXJlY3Rpb25Gcm9tU3R5bGUoc3R5bGUpKQogICAgICwgbV9zdGF0ZSgq
dGhpcywgc3R5bGUsIFdURk1vdmUoY29udGV4dCkpCiB7CiB9CkBAIC0xMjEsMTYgKzEyMSw2IEBA
IHZvaWQgQnVpbGRlcjo6YXBwbHlMb3dQcmlvcml0eVByb3BlcnRpZXMoKQogICAgIEFTU0VSVCgh
bV9zdGF0ZS5mb250RGlydHkoKSk7CiB9CiAKLXZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWUqIHZhbHVlKQotewotICAgIGlm
ICghdmFsdWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGFwcGx5UHJvcGVydHkocHJvcGVydHlJ
RCwgKnZhbHVlLCBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVsdCk7Ci0KLSAgICBtX3N0YXRl
LnVwZGF0ZUZvbnQoKTsKLX0KLQogdm9pZCBCdWlsZGVyOjphcHBseURlZmVycmVkUHJvcGVydGll
cygpCiB7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IG1fY2FzY2FkZS5kZWZlcnJlZFByb3Bl
cnRpZXMoKSkKQEAgLTI0NSw2ICsyMzUsNyBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyOjphcHBseUNh
c2NhZGVQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5JiBwcm9wZQogewog
ICAgIG1fc3RhdGUubV9jYXNjYWRlTGV2ZWwgPSBwcm9wZXJ0eS5sZXZlbDsKICAgICBtX3N0YXRl
Lm1fc3R5bGVTY29wZU9yZGluYWwgPSBwcm9wZXJ0eS5zdHlsZVNjb3BlT3JkaW5hbDsKKyAgICBt
X3N0YXRlLm1fY2FzY2FkZUxheWVyUHJpb3JpdHkgPSBwcm9wZXJ0eS5jYXNjYWRlTGF5ZXJQcmlv
cml0eTsKIAogICAgIGF1dG8gYXBwbHlXaXRoTGlua01hdGNoID0gWyZdKFNlbGVjdG9yQ2hlY2tl
cjo6TGlua01hdGNoTWFzayBsaW5rTWF0Y2gpIHsKICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1Zh
bHVlW2xpbmtNYXRjaF0pIHsKQEAgLTI5NSwyMSArMjg2LDI3IEBAIHZvaWQgQnVpbGRlcjo6YXBw
bHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVjdG9yQ2hl
Y2tlcjo6CiAKICAgICBib29sIGlzVW5zZXQgPSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgp
IHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0OwogICAgIGJvb2wgaXNS
ZXZlcnQgPSB2YWx1ZVRvQXBwbHktPmlzUmV2ZXJ0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZh
bHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7CisgICAgYm9vbCBpc1JldmVydExheWVyID0gdmFsdWVU
b0FwcGx5LT5pc1JldmVydExheWVyVmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0g
Q1NTVmFsdWVSZXZlcnRMYXllcjsKKworICAgIGlmIChpc1JldmVydCB8fCBpc1JldmVydExheWVy
KSB7CisgICAgICAgIGF1dG8qIHJvbGxiYWNrQ2FzY2FkZSA9IGlzUmV2ZXJ0CisgICAgICAgICAg
ICA/IGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChtX3N0YXRlLm1fY2FzY2FkZUxldmVs
KQorICAgICAgICAgICAgOiBlbnN1cmVSb2xsYmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihtX3N0
YXRlLm1fY2FzY2FkZUxldmVsLCBtX3N0YXRlLm1fY2FzY2FkZUxheWVyUHJpb3JpdHkpOwogCi0g
ICAgaWYgKGlzUmV2ZXJ0KSB7Ci0gICAgICAgIGlmIChhdXRvKiByb2xsYmFjayA9IG1fY2FzY2Fk
ZS5wcm9wZXJ0eUNhc2NhZGVGb3JSb2xsYmFjayhtX3N0YXRlLm1fY2FzY2FkZUxldmVsKSkgewor
ICAgICAgICBpZiAocm9sbGJhY2tDYXNjYWRlKSB7CiAgICAgICAgICAgICAvLyBXaXRoIHRoZSBy
b2xsYmFjayBjYXNjYWRlIGJ1aWx0LCB3ZSBuZWVkIHRvIG9idGFpbiB0aGUgcHJvcGVydHkgYW5k
IGFwcGx5IGl0LiBJZiB0aGUgcHJvcGVydHkgaXMKLSAgICAgICAgICAgIC8vIG5vdCBwcmVzZW50
LCB0aGVuIHdlIGJlaGF2ZSBsaWtlICJ1bnNldC4iIE90aGVyd2lzZSB3ZSBhcHBseSB0aGUgcHJv
cGVydHkgaW5zdGVhZCBvZgotICAgICAgICAgICAgLy8gb3VyIG93bi4KKyAgICAgICAgICAgIC8v
IG5vdCBwcmVzZW50LCB0aGVuIHdlIGJlaGF2ZSBsaWtlICJ1bnNldC4iIE90aGVyd2lzZSB3ZSBh
cHBseSB0aGUgcHJvcGVydHkgaW5zdGVhZCBvZiBvdXIgb3duLgorICAgICAgICAgICAgU2V0Rm9y
U2NvcGUgY2FzY2FkZUxldmVsU2NvcGUobV9zdGF0ZS5tX2Nhc2NhZGVMZXZlbCwgcm9sbGJhY2tD
YXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxldmVsKCkpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGUg
Y2FzY2FkZUxheWVyUHJpb3JpdHlTY29wZShtX3N0YXRlLm1fY2FzY2FkZUxheWVyUHJpb3JpdHks
IHJvbGxiYWNrQ2FzY2FkZS0+bWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5KCkpOwogICAgICAg
ICAgICAgaWYgKGN1c3RvbVByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vz
dG9tUHJvcGVydHlSZWdpc3RlcmVkICYmIGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZC0+aW5oZXJp
dHMgJiYgcm9sbGJhY2stPmhhc0N1c3RvbVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5h
bWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IHJvbGxiYWNrLT5j
dXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpOworICAgICAgICAgICAg
ICAgIGlmIChjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgJiYgY3VzdG9tUHJvcGVydHlSZWdpc3Rl
cmVkLT5pbmhlcml0cyAmJiByb2xsYmFja0Nhc2NhZGUtPmhhc0N1c3RvbVByb3BlcnR5KGN1c3Rv
bVByb3BlcnR5VmFsdWUtPm5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwcm9w
ZXJ0eSA9IHJvbGxiYWNrQ2FzY2FkZS0+Y3VzdG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1
ZS0+bmFtZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xp
bmtNYXRjaE1hc2tdKQogICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9w
ZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdLCBsaW5rTWF0Y2hNYXNr
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAocm9sbGJhY2stPmhhc1Byb3BlcnR5KGlkKSkgewotICAgICAgICAg
ICAgICAgIGF1dG8mIHByb3BlcnR5ID0gcm9sbGJhY2stPnByb3BlcnR5KGlkKTsKKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAocm9sbGJhY2tDYXNjYWRlLT5oYXNQcm9wZXJ0eShpZCkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvJiBwcm9wZXJ0eSA9IHJvbGxiYWNrQ2FzY2FkZS0+cHJvcGVydHkoaWQp
OwogICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0Y2hNYXNrXSkK
ICAgICAgICAgICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5
LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdLCBsaW5rTWF0Y2hNYXNrKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CkBAIC0zNzMsNSArMzcwLDMyIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQnVpbGRlcjo6
cmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QKICAg
ICByZXR1cm4gQ1NTUGFyc2VyKG1fc3RhdGUuZG9jdW1lbnQoKSkucGFyc2VWYWx1ZVdpdGhWYXJp
YWJsZVJlZmVyZW5jZXMocHJvcGVydHlJRCwgdmFsdWUsIG1fc3RhdGUpOwogfQogCitjb25zdCBQ
cm9wZXJ0eUNhc2NhZGUqIEJ1aWxkZXI6OmVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChD
YXNjYWRlTGV2ZWwgcm9sbGJhY2tDYXNjYWRlTGV2ZWwpCit7CisgICAgaWYgKHJvbGxiYWNrQ2Fz
Y2FkZUxldmVsID09IENhc2NhZGVMZXZlbDo6VXNlckFnZW50KQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGF1dG8ga2V5ID0gbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShyb2xsYmFja0Nh
c2NhZGVMZXZlbCwgUnVsZVNldDo6Y2FzY2FkZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQpOwor
ICAgIHJldHVybiBtX3JvbGxiYWNrQ2FzY2FkZXMuZW5zdXJlKGtleSwgWyZdIHsKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPihtX2Nhc2NhZGUsIC0tcm9s
bGJhY2tDYXNjYWRlTGV2ZWwsIFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXll
cmVkKTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK2NvbnN0IFByb3BlcnR5
Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0TGF5ZXIoQ2Fz
Y2FkZUxldmVsIGNhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVyUHJpb3JpdHkgcm9sbGJhY2tMYXll
clByaW9yaXR5KQoreworICAgIGlmICghcm9sbGJhY2tMYXllclByaW9yaXR5KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8ga2V5ID0gbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShj
YXNjYWRlTGV2ZWwsIHJvbGxiYWNrTGF5ZXJQcmlvcml0eSk7CisgICAgcmV0dXJuIG1fcm9sbGJh
Y2tDYXNjYWRlcy5lbnN1cmUoa2V5LCBbJl0geworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxj
b25zdCBQcm9wZXJ0eUNhc2NhZGU+KG1fY2FzY2FkZSwgY2FzY2FkZUxldmVsLCByb2xsYmFja0xh
eWVyUHJpb3JpdHkgLSAxKTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK2F1
dG8gQnVpbGRlcjo6bWFrZVJvbGxiYWNrQ2FzY2FkZUtleShDYXNjYWRlTGV2ZWwgY2FzY2FkZUxl
dmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eSkgLT4gUm9sbGJh
Y2tDYXNjYWRlS2V5Cit7CisgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhc2Nh
ZGVMZXZlbCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXNjYWRlTGF5ZXJQcmlvcml0eSkgfTsK
K30KKwogfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaAppbmRleCAxMGFlNjc2MjI1
OTZlMTRhNjQxYTMwMGVhZjM4ZGViYzNkMGIyZjZkLi43NWYzYTIzNmExOGE2MDg1YzMxYTM5ZTM3
MmJiNzJkYWYyMDg1MTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1
aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgU3R5bGUgewogY2xhc3MgQnVpbGRlciB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgQnVpbGRlcihSZW5kZXJTdHlsZSYsIEJ1
aWxkZXJDb250ZXh0JiYsIGNvbnN0IE1hdGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZl
bD4sIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzID0gUHJvcGVydHlDYXNjYWRl
OjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CisgICAgQnVpbGRlcihSZW5kZXJTdHlsZSYsIEJ1
aWxkZXJDb250ZXh0JiYsIGNvbnN0IE1hdGNoUmVzdWx0JiwgQ2FzY2FkZUxldmVsLCBQcm9wZXJ0
eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllcyA9IFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQ
cm9wZXJ0aWVzOjpBbGwpOwogICAgIH5CdWlsZGVyKCk7CiAKICAgICB2b2lkIGFwcGx5QWxsUHJv
cGVydGllcygpOwpAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgeyBhcHBseVByb3BlcnRpZXMocHJvcGVydHlJ
RCwgcHJvcGVydHlJRCk7IH0KICAgICB2b2lkIGFwcGx5Q3VzdG9tUHJvcGVydHkoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKIAotICAgIHZvaWQgYXBwbHlQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQs
IENTU1ZhbHVlKik7Ci0KICAgICBCdWlsZGVyU3RhdGUmIHN0YXRlKCkgeyByZXR1cm4gbV9zdGF0
ZTsgfQogCiBwcml2YXRlOgpAQCAtNjMsNyArNjEsMTYgQEAgcHJpdmF0ZToKICAgICBSZWY8Q1NT
VmFsdWU+IHJlc29sdmVWYWx1ZShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYpOwogICAgIFJlZlB0
cjxDU1NWYWx1ZT4gcmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1Byb3BlcnR5SUQsIGNvbnN0IENT
U1ZhbHVlJik7CiAKKyAgICBjb25zdCBQcm9wZXJ0eUNhc2NhZGUqIGVuc3VyZVJvbGxiYWNrQ2Fz
Y2FkZUZvclJldmVydChDYXNjYWRlTGV2ZWwpOworICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSog
ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0TGF5ZXIoQ2FzY2FkZUxldmVsLCBDYXNjYWRl
TGF5ZXJQcmlvcml0eSk7CisKKyAgICB1c2luZyBSb2xsYmFja0Nhc2NhZGVLZXkgPSBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPjsKKyAgICBSb2xsYmFja0Nhc2NhZGVLZXkgbWFrZVJvbGxi
YWNrQ2FzY2FkZUtleShDYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5KTsKKwogICAg
IGNvbnN0IFByb3BlcnR5Q2FzY2FkZSBtX2Nhc2NhZGU7CisgICAgLy8gUm9sbGJhY2sgY2FzY2Fk
ZXMgYXJlIGJ1aWxkIG9uIGRlbWFuZCB0byByZXNvbHZlICdyZXZlcnQnIGFuZCAncmV2ZXJ0LWxh
eWVyJyBrZXl3b3Jkcy4KKyAgICBIYXNoTWFwPFJvbGxiYWNrQ2FzY2FkZUtleSwgc3RkOjp1bmlx
dWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4+IG1fcm9sbGJhY2tDYXNjYWRlczsKKwogICAg
IEJ1aWxkZXJTdGF0ZSBtX3N0YXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlclN0YXRlLmgKaW5kZXggMmViYzFkYjc3YmMzZDZhYWNiMmY4MjBjMTVlZTdmOTRjZDIwOGI5
Ny4uZWExYTViNTFkZDhhMmRlZjM2NjVkNjVjZGI0ZDliNWNjM2M5YjZlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQ1NTVG9TdHlsZU1hcC5oIgogI2luY2x1ZGUgIkNhc2NhZGVMZXZlbC5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUnVsZVNldC5oIgogI2luY2x1ZGUgIlNlbGVjdG9y
Q2hlY2tlci5oIgogI2luY2x1ZGUgPHd0Zi9CaXRtYXAuaD4KIApAQCAtMTM2LDYgKzEzNyw3IEBA
IHByaXZhdGU6CiAKICAgICBDYXNjYWRlTGV2ZWwgbV9jYXNjYWRlTGV2ZWwgeyB9OwogICAgIFNj
b3BlT3JkaW5hbCBtX3N0eWxlU2NvcGVPcmRpbmFsIHsgfTsKKyAgICBDYXNjYWRlTGF5ZXJQcmlv
cml0eSBtX2Nhc2NhZGVMYXllclByaW9yaXR5IHsgfTsKICAgICBTZWxlY3RvckNoZWNrZXI6Okxp
bmtNYXRjaE1hc2sgbV9saW5rTWF0Y2ggeyB9OwogCiAgICAgYm9vbCBtX2ZvbnREaXJ0eSB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGQ2YTY2MjVj
ZmZiMDFlZTgzMmNmYzk2MmIxZDQyNjhhZDhjYzhlOWYuLjhlYTM5Y2JkMDNjOGEzYTRkOTI2OWQ2
MDhlODUyYTM3YTMzNmNkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0yODMsNyArMjgzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZl
cjo6c3R5bGVGb3JLZXlmcmFtZShjb25zdCBFbGVtZW50JiBlbGVtZW50LAogICAgIHN0YXRlLnNl
dFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqZWxlbWVudFN0eWxlKSk7CiAgICAgc3RhdGUu
c2V0UGFyZW50U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKGNvbnRleHQucGFyZW50U3R5bGUg
PyAqY29udGV4dC5wYXJlbnRTdHlsZSA6ICplbGVtZW50U3R5bGUpKTsKIAotICAgIEJ1aWxkZXIg
YnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIHsg
Q2FzY2FkZUxldmVsOjpBdXRob3IgfSk7CisgICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHls
ZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIHJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3Ip
OwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKICAgICBBZGp1c3RlciBhZGp1
c3Rlcihkb2N1bWVudCgpLCAqc3RhdGUucGFyZW50U3R5bGUoKSwgbnVsbHB0ciwgbnVsbHB0cik7
CkBAIC00MzYsNyArNDM2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZl
cjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpCiAKICAgICBhdXRvJiByZXN1bHQgPSBjb2xs
ZWN0b3IubWF0Y2hSZXN1bHQoKTsKIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUo
KSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpBdXRob3Ig
fSk7CisgICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChz
dGF0ZSksIHJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IpOwogICAgIGJ1aWxkZXIuYXBwbHlB
bGxQcm9wZXJ0aWVzKCk7CiAKICAgICAvLyBOb3cgcmV0dXJuIHRoZSBzdHlsZS4KQEAgLTU1NSwx
MyArNTU1LDEzIEBAIHZvaWQgUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoU3RhdGUm
IHN0YXRlLCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1CiAgICAgICAgIC8vIElmIHNvLCB3
ZSBjYWNoZSB0aGUgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIHN0eWxlcyBzbyB0aGF0IFJlbmRlclRo
ZW1lOjphZGp1c3RTdHlsZSgpCiAgICAgICAgIC8vIGNhbiBsb29rIGF0IHRoZW0gbGF0ZXIgdG8g
ZmlndXJlIG91dCBpZiB0aGlzIGlzIGEgc3R5bGVkIGZvcm0gY29udHJvbCBvciBub3QuCiAgICAg
ICAgIGF1dG8gdXNlckFnZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoc3R5bGUpOwot
ICAgICAgICBCdWlsZGVyIGJ1aWxkZXIoKnVzZXJBZ2VudFN0eWxlLCBidWlsZGVyQ29udGV4dChz
dGF0ZSksIG1hdGNoUmVzdWx0LCB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50IH0pOworICAgICAg
ICBCdWlsZGVyIGJ1aWxkZXIoKnVzZXJBZ2VudFN0eWxlLCBidWlsZGVyQ29udGV4dChzdGF0ZSks
IG1hdGNoUmVzdWx0LCBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKICAgICAgICAgc3RhdGUuc2V0VXNlckFnZW50QXBwZWFy
YW5jZVN0eWxlKFdURk1vdmUodXNlckFnZW50U3R5bGUpKTsKICAgICB9CiAKLSAgICBCdWlsZGVy
IGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1
bHQsIGFsbENhc2NhZGVMZXZlbHMoKSwgaW5jbHVkZWRQcm9wZXJ0aWVzKTsKKyAgICBCdWlsZGVy
IGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1
bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yLCBpbmNsdWRlZFByb3BlcnRpZXMpOwogCiAgICAgLy8g
SGlnaCBwcmlvcml0eSBwcm9wZXJ0aWVzIG1heSBhZmZlY3QgcmVzb2x1dGlvbiBvZiBvdGhlciBw
cm9wZXJ0aWVzICh0aGV5IGFyZSBtb3N0bHkgZm9udCByZWxhdGVkKS4KICAgICBidWlsZGVyLmFw
cGx5SGlnaFByaW9yaXR5UHJvcGVydGllcygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3MThjMTViMWZhMTU5ZTAwMzhm
MGVlNzNhY2U0MjU5OTM1ZWVhZTMuLjFlMzBmYWU2MTViOTQyYThkOTMwMmQ1NzQ0OTY3ZTljOGZj
MWIxNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0wOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gU3VwcG9y
dCAncmV2ZXJ0LWxheWVyJyB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMjM2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDg3OTM2OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDIxLTExLTA4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0
cmVhbS12aWRlby10cmFjay1pbnRlcnJ1cHRlZC5odG1sIGlzIGZhaWxpbmcgc2luY2UgYWRkZWQg
aW4gMjQyMDkzQG1haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDFkYzdjNjI1
ZTAwNjdhMDYwNGU5MGM0MzRiMzlkOGM1ZmZhZWNmZWQuLjc0Y2ZmYmMxMTBmZGYzMDU3NDk5MzQ1
Y2FkODA2ODRiODJhMDEwZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTExLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIy
MzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTEtMDggIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBBbmltYXRp
b25zXSBBZGQgc3VwcG9ydCBmb3IgY29tcG9zaXRlIG9wZXJhdGlvbnMgZm9yIHNvZnR3YXJlIGFu
aW1hdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE0MzMxZDMyYTNjMmM5NGQwZDQ2NDkyN2Nm
YThkNTdiYzc2NjEyYTQuLjczOWI1MDlmODkwNzMxNjkwYjUyNjIwOWE1YmFhNTg5MmNhMjg0MDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0NiwxMyArMjE0Niw2IEBAIHdlYmtpdC5vcmcvYi8x
NDg2NTAgZmFzdC9yZXBhaW50L2FkZC10YWJsZS1vdmVycGFpbnQuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2lt
cG9ydGFudC1wcm9wLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODcw
OTMgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMzIy
MzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0
LWxheWVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1s
YXllci0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5
ZXItMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVy
LTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0w
MDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA2
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwNy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjItcmdiYS1vbnNjcmVlbi1i
LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyMi1yZ2JhLW9uc2NyZWVuLW11
bHRpcGxlLWJveGVzLWMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9y
ZXZlcnQtbGF5ZXItMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgtZXhwZWN0
ZWQudHh0CmluZGV4IDcxNDFhYzBiMDM5MDNmMjI3NjQxMzM1OGM1YmRiODY2MzY2Mzg0ODcuLjEy
N2I2ZjNiNTQyYmJlYTg4Njg4YzQ1MzY0ZjY0N2M4NzcyZmYwZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3Jl
dmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMICdyZXZlcnQtbGF5ZXInIHNob3VsZCBy
ZXZlcnQgZm9udC1zaXplIHRvIDIwcHggYW5kIHRyaWdnZXIgYSBzbW9vdGggdHJhbnNpdGlvbiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTVweCIgYnV0IGdvdCAiMTBweCIKK1BBU1MgJ3JldmVy
dC1sYXllcicgc2hvdWxkIHJldmVydCBmb250LXNpemUgdG8gMjBweCBhbmQgdHJpZ2dlciBhIHNt
b290aCB0cmFuc2l0aW9uCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443658</attachid>
            <date>2021-11-09 00:45:27 -0800</date>
            <delta_ts>2021-11-11 01:29:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232236-20211109104525.patch</filename>
            <type>text/plain</type>
            <size>38138</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThmNjNkZjNhNGE3ZjE2
YTY1YjQ3NjUxMzA3MzFkZGMwZDViNzRkMC4uMDI0NDlhODUzYTVhNTVkM2QxYjEyYWNlNzA3ZWIy
NmRmNjczODQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTExLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkIHJvbGxzIGJhY2sgdGhlIHZhbHVlIGNvbXB1dGVkIGJ5
IHRoZSBjYXNjYWRlIHRvIHRoZSBvbmUgY29taW5nIGZyb20gdGhlIGxheWVyIGJlbG93LgorCisg
ICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY2FzY2FkZS01LyNyZXZlcnQtbGF5ZXIK
KworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKworICAgICAgICBBZGQgYSAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkLgor
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzQ1NTV2lkZUtleXdvcmQpOgorCisgICAgICAgIE1ha2UgdGhlIGtleXdvcmQgQ1NTLXdp
ZGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDdXN0b21JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdHlsZS9DYXNjYWRlTGV2ZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpvcGVy
YXRvci0tKToKKworICAgICAgICBBZGQgZGVjcmVtZW50IG9wZXJhdG9yLgorCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6YWxsQ2FzY2FkZUxldmVscyk6IERlbGV0ZWQuCisgICAgICAgICogc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVs
ZXMpOgorCisgICAgICAgIFBhc3MgdGhlIGNhc2RhZGUgbGF5ZXIgcHJpb3JpdHkgc28gaXQgaXMg
YXZhaWxhYmxlIHdoZW4gcmVzb2x2aW5nIHRoZSBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3Bl
cnRpZXMpOgorCisgICAgICAgIEFkZCBhIGJpdCBpbmRpY2F0aW5nIGlmIHRoZSBwcm9wZXJ0aWVz
IGNhbWUgZnJvbSBhIHN0eWxlIGF0dHJpYnV0ZS4gVGhpcyBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qg
cmVzb2x1dGlvbiBvZiAhaW1wb3J0YW50IHdpdGggY2FzY2FkZSBsYXllcnMuCisKKyAgICAgICAg
KiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQ
cm9wZXJ0eUNhc2NhZGUpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZlbHMgaW4gdGVy
bXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQgb2YgbGV2ZWxz
LiBUaGlzIG1ha2VzIHRoaW5ncyBzaW1wbGVyLgorICAgICAgICBNYWtlIGl0IGEgbWVtYmVyLgor
ICAgICAgICBQcm92aWRlIG1heGltdW0gY2FzY2FkZSBsYXllciBwcmlvcml0eSB3aGVuIGNvbnN0
cnVjdGluZyByb2xsYmFjayBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJv
cGVydHlDYXNjYWRlOjpidWlsZENhc2NhZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBy
b3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaCk6CisKKyAgICAgICAgSWdub3JlIHByb3Bl
cnRpZXMgd2l0aCBjYXNjYWRlIGxldmVsIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtLgorCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVz
KToKKworICAgICAgICBUYWtlIGNhc2NhZGUgbGF5ZXJzIGludG8gYWNjb3VueSB3aGVuIHNvcnRp
bmcgaW1wb3J0YW50IG1hdGNoZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrIGNvbnN0KTogRGVsZXRlZC4KKwor
ICAgICAgICBNb3ZlIHJvbGxiYWNrIGNhc2NhZGVzIHRvIEJ1aWxkZXIuCisKKyAgICAgICAgKiBz
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6Om1heGltdW1DYXNjYWRlTGV2ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6bWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IGNvbnN0
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkJ1aWxkZXI6OkJ1aWxkZXIpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZl
bHMgaW4gdGVybXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQg
b2YgbGV2ZWxzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlDYXNj
YWRlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorCisgICAgICAgIENvbnN0cnVjdCByb2xsYmFjayBjYXNjYWRlIGZvciAncmV2ZXJ0
LWxheWVyJyBjYXNlIHRvby4gVGhpcyBpcyBzaW1pbGFyIHRvICdyZXZlcnQnLgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2Nh
ZGVGb3JSZXZlcnRMYXllcik6CisKKyAgICAgICAgTWFrZSB0aGUgcm9sbGJhY2sgY2FzY2FkZXMg
YW5kIHN0b3JlIHRoZW0gaW50byBhIEhhc2hNYXAuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNv
bHZlcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6CisKKyAgICAgICAgQWRvcHQgdG8gdGhlIG5ldyBpbnRl
cmZhY2UuCisKIDIwMjEtMTEtMDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1vdmUgbm9uLXBsYXRmb3JtIGNvZGUgZm9ybSB0
aGUgRkVJbWFnZSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRl
eCA1MTQ4YTRjYjJlNDc1NDNjZWYxNzRhZDJiODAzMTAyYmI0MDlhMzdkLi44NWFhYzdkM2Y1ZjI3
YWYzYWE2NjJlYWEyNjMzMzkwNjc3OTllOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5oZXJp
dFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJpdDsgfQog
ICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1Zh
bHVlVW5zZXQ7IH0KICAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1
ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKyAgICBib29sIGlzUmV2ZXJ0TGF5ZXJWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydExheWVyOyB9CiAgICAg
Ym9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUmVmPENTU1ByaW1p
dGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuY3BwCmluZGV4IDRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMzMzY2MGQ4YzNjZmJjOGIu
LjM5NmZjYmYyYTNjZWM4N2VlOGM4ZTVlMTRjMGU2N2E0ODE5MDBhNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmNwcApAQCAtNTEwLDYgKzUxMCwxMSBAQCBib29sIENTU1ZhbHVlOjppc1JldmVydFZh
bHVlKCkgY29uc3QKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBk
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0VmFsdWUoKTsKIH0KIAor
Ym9vbCBDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4oKnRoaXMpLmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpOworfQorCiBib29sIENTU1ZhbHVlOjppc0NT
U1dpZGVLZXl3b3JkKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+
KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzQ1NTV2lkZUtl
eXdvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMjllYTRiNmQxMTY2NDI5NmE3N2YxZGQ5
Njc2ZTYwMjhkNTdiZDUzYi4uMzM4ZWQ1NWQzYTM0NDhhMDA4MGE1Y2FkZDgyMzczZWJlNWVlNTE4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1JldmVydExh
eWVyVmFsdWUoKSBjb25zdDsKICAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdDsKICAg
ICBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAgICAgYm9v
bCB0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDEyYWE3NWFlNTQ2YjIwZDY0MDVmMTJhMDZl
OTZhZjA1YTQxYTc2YzMuLmEzYTk1NzA2YWI3ZDdjNjI0MzgzYTY3ZWRjMGY5OTgwYjcxMjE1YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01LDYgKzUsNyBAQCBp
bmhlcml0CiBpbml0aWFsCiB1bnNldAogcmV2ZXJ0CityZXZlcnQtbGF5ZXIKIAogLy8KIC8vIENT
U19QUk9QX09VVExJTkVfU1RZTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
cklkaW9tcy5oCmluZGV4IGRlZjIyMjAwOTI1NDRlNTZmYzk2MmYxMWNhMWU0ZjY0ZDExMjE4OTEu
LmUyNTQyYWQyMGJkYTg5OTAzMjE4YWZmZjk2M2Q5OTlmN2ViZjM5OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAtNjAsMTIgKzYwLDIxIEBAIGJv
b2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxsb3dl
ZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK2lubGluZSBib29sIGlz
Q1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewotICAgIHJldHVybiB2YWx1ZUlE
ID09IENTU1ZhbHVlSW5pdGlhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlVW5zZXQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsKKyAgICBz
d2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSW5pdGlhbDoKKyAgICBjYXNlIENT
U1ZhbHVlSW5oZXJpdDoKKyAgICBjYXNlIENTU1ZhbHVlVW5zZXQ6CisgICAgY2FzZSBDU1NWYWx1
ZVJldmVydDoKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJ0TGF5ZXI6CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1
ZUlEKQoraW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1
ZUlEKQogewogICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhcyBhIENTUy13aWRlIGtleXdv
cmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGEgY3VzdG9tIGlkZW50aWZpZXIuCiAgICAg
cmV0dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVE
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxldmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaAppbmRleCBhMmUzMmE4NzE1Y2E3
MmQ1ZjNiNWMwNDZkMjk3MDgxMTMzZWRlMzI2Li5jMmQyYTFiMTgyMGMwNWY1N2Q1ZGFlOGZjMzM5
ZjM1NDBlZDJiMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2
ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaApAQCAtMzYsNyAr
MzYsMTggQEAgZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50OF90IHsKICAgICBBdXRob3Ig
ICAgICA9IDEgPDwgMgogfTsKIAotc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8Q2FzY2FkZUxl
dmVsPiBhbGxDYXNjYWRlTGV2ZWxzKCkgeyByZXR1cm4geyBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2Vu
dCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9OyB9CitpbmxpbmUg
Q2FzY2FkZUxldmVsJiBvcGVyYXRvci0tKENhc2NhZGVMZXZlbCYgbGV2ZWwpCit7CisgICAgc3dp
dGNoIChsZXZlbCkgeworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpBdXRob3I6CisgICAgICAgIHJl
dHVybiBsZXZlbCA9IENhc2NhZGVMZXZlbDo6VXNlcjsKKyAgICBjYXNlIENhc2NhZGVMZXZlbDo6
VXNlcjoKKyAgICAgICAgcmV0dXJuIGxldmVsID0gQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ7Cisg
ICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBsZXZlbDsKKyAgICB9Cit9CiAKIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBiZWI4OTY3ZmRi
Y2RlNDMyODU0ZDE1M2JhOWNlMjZjNjc3M2UzMGY2Li40NDk4NWM4NDgxYTg0MGZlMzM3OWQwZThi
NDU0YjYxMjk1M2EzOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVD
b2xsZWN0b3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6Y2xlYXJNYXRjaGVkUnVsZXMoKQogICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4ID0g
MDsKIH0KIAotaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHls
ZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9vbCBpc0Nh
Y2hlYWJsZSkKK2lubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5
bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJvcGVydHlTZXQsIGJvb2wgaXND
YWNoZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1dGUpCiB7CiAgICAg
aWYgKCFwcm9wZXJ0eVNldCB8fCBwcm9wZXJ0eVNldC0+aXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CkBAIC0xMzIsNyArMTMyLDkgQEAgaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6
OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWUKICAgICBpZiAo
IWlzQ2FjaGVhYmxlKQogICAgICAgICBtX3Jlc3VsdC5pc0NhY2hlYWJsZSA9IGZhbHNlOwogCi0g
ICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMoeyBwcm9wZXJ0eVNldCB9LCBEZWNsYXJhdGlvbk9yaWdp
bjo6QXV0aG9yKTsKKyAgICBhdXRvIG1hdGNoZWRQcm9wZXJ0eSA9IE1hdGNoZWRQcm9wZXJ0aWVz
IHsgcHJvcGVydHlTZXQgfTsKKyAgICBtYXRjaGVkUHJvcGVydHkuZnJvbVN0eWxlQXR0cmlidXRl
ID0gZnJvbVN0eWxlQXR0cmlidXRlOworICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKFdURk1vdmUo
bWF0Y2hlZFByb3BlcnR5KSwgRGVjbGFyYXRpb25PcmlnaW46OkF1dGhvcik7CiB9CiAKIHZvaWQg
RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVx
dWVzdCYgbWF0Y2hSZXF1ZXN0KQpAQCAtMjAzLDcgKzIwNSw4IEBAIHZvaWQgRWxlbWVudFJ1bGVD
b2xsZWN0b3I6OnRyYW5zZmVyTWF0Y2hlZFJ1bGVzKERlY2xhcmF0aW9uT3JpZ2luIGRlY2xhcmF0
aW9uT3JpCiAgICAgICAgICAgICAmbWF0Y2hlZFJ1bGUucnVsZURhdGEtPnN0eWxlUnVsZSgpLnBy
b3BlcnRpZXMoKSwKICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90PihtYXRjaGVkUnVs
ZS5ydWxlRGF0YS0+bGlua01hdGNoVHlwZSgpKSwKICAgICAgICAgICAgIG1hdGNoZWRSdWxlLnJ1
bGVEYXRhLT5wcm9wZXJ0eUFsbG93bGlzdCgpLAotICAgICAgICAgICAgbWF0Y2hlZFJ1bGUuc3R5
bGVTY29wZU9yZGluYWwKKyAgICAgICAgICAgIG1hdGNoZWRSdWxlLnN0eWxlU2NvcGVPcmRpbmFs
LAorICAgICAgICAgICAgbWF0Y2hlZFJ1bGUuY2FzY2FkZUxheWVyUHJpb3JpdHkKICAgICAgICAg
fSwgZGVjbGFyYXRpb25PcmlnaW4pOwogICAgIH0KIH0KQEAgLTU2MCw3ICs1NjMsNyBAQCB2b2lk
IEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0aWVzKGJv
b2wgaW5jbHVkZVNNSUxQcm9wZQogICAgIGlmIChhdXRvKiBpbmxpbmVTdHlsZSA9IGRvd25jYXN0
PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSkuaW5saW5lU3R5bGUoKSkgewogICAgICAgICAvLyBG
SVhNRTogTWVkaWEgY29udHJvbCBzaGFkb3cgdHJlZXMgc2VlbSB0byBoYXZlIHByb2JsZW1zIHdp
dGggY2FjaGluZy4KICAgICAgICAgYm9vbCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlID0gIWlubGlu
ZVN0eWxlLT5pc011dGFibGUoKSAmJiAhZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCk7Ci0gICAg
ICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoaW5saW5lU3R5bGUsIGlzSW5saW5lU3R5bGVD
YWNoZWFibGUpOworICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGlubGluZVN0eWxl
LCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlLCBGcm9tU3R5bGVBdHRyaWJ1dGU6Olllcyk7CiAgICAg
fQogCiAgICAgaWYgKGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBpczxTVkdFbGVtZW50PihlbGVt
ZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKaW5k
ZXggYjg1ZmMzYTM5OWIxYWRkMzAxNDc5ZmY3ZGU5ZDI5ODRmZDQ0NTk5MS4uOWU0NzlhOTM1Yzk2
YjZmNWZhYWM1Zjk3ODM5OTc4NGRhMDMxMzQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5oCkBAIC02MywxNCArNjMsMTggQEAgc3RydWN0IE1hdGNoZWRS
dWxlIHsKICAgICBjb25zdCBSdWxlRGF0YSogcnVsZURhdGE7CiAgICAgdW5zaWduZWQgc3BlY2lm
aWNpdHk7CiAgICAgU2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOwotICAgIHVuc2lnbmVk
IGNhc2NhZGVMYXllclByaW9yaXR5OworICAgIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVM
YXllclByaW9yaXR5OwogfTsKIAorZW51bSBjbGFzcyBGcm9tU3R5bGVBdHRyaWJ1dGUgOiBib29s
IHsgTm8sIFllcyB9OworCiBzdHJ1Y3QgTWF0Y2hlZFByb3BlcnRpZXMgewogICAgIFJlZlB0cjxj
b25zdCBTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAgICAgdWludDE2X3QgbGlua01hdGNo
VHlwZSB7IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwgfTsKICAgICBQcm9wZXJ0eUFsbG93bGlz
dCBhbGxvd2xpc3RUeXBlIHsgUHJvcGVydHlBbGxvd2xpc3Q6Ok5vbmUgfTsKICAgICBTY29wZU9y
ZGluYWwgc3R5bGVTY29wZU9yZGluYWwgeyBTY29wZU9yZGluYWw6OkVsZW1lbnQgfTsKKyAgICBD
YXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eSB7IFJ1bGVTZXQ6OmNhc2Nh
ZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkIH07CisgICAgRnJvbVN0eWxlQXR0cmlidXRlIGZy
b21TdHlsZUF0dHJpYnV0ZSB7IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8gfTsKIH07CiAKIHN0cnVj
dCBNYXRjaFJlc3VsdCB7CkBAIC0xMjEsNyArMTI1LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlk
TWF0Y2hVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaWRNYXRj
aFVuY29tbW9uQXR0cmlidXRlU2VsZWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEVs
ZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hl
YWJsZSA9IHRydWUpOworICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBT
dHlsZVByb3BlcnRpZXMqLCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSwgRnJvbVN0eWxlQXR0cmli
dXRlID0gRnJvbVN0eWxlQXR0cmlidXRlOjpObyk7CiAKICAgICB2b2lkIG1hdGNoVUFSdWxlcyhj
b25zdCBSdWxlU2V0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3Bl
cnR5Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3Bw
CmluZGV4IDUwNTE1MjdjNjNjMjE3MDZiYWRlZDNiNTJjOTA1ZWNlMWE0Y2YyNWUuLmRhYmRhNjA4
NzhiYTBjMDU3N2YxZDRlYmVjYTVjMjRjMzUxODk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UHJvcGVydHlDYXNjYWRlLmNwcApAQCAtNzEsMzAgKzcxLDM1IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzaG91bGRBcHBseVByb3BlcnR5SW5QYXJzZU9yZGVyKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCkKICAgICB9CiB9CiAKLVByb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IE1h
dGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxl
dmVscywgSW5jbHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcywgRGlyZWN0aW9uIGRp
cmVjdGlvbikKK1Byb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNoUmVz
dWx0JiBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIEluY2x1
ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24pCiAg
ICAgOiBtX21hdGNoUmVzdWx0KG1hdGNoUmVzdWx0KQogICAgICwgbV9pbmNsdWRlZFByb3BlcnRp
ZXMoaW5jbHVkZWRQcm9wZXJ0aWVzKQorICAgICwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsKG1heGlt
dW1DYXNjYWRlTGV2ZWwpCiAgICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCiB7Ci0gICAgYnVp
bGRDYXNjYWRlKGNhc2NhZGVMZXZlbHMpOworICAgIGJ1aWxkQ2FzY2FkZSgpOwogfQogCi1Qcm9w
ZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmIHBhcmVu
dCwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscykKK1Byb3BlcnR5Q2FzY2Fk
ZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYgcGFyZW50LCBDYXNjYWRl
TGV2ZWwgbWF4aW11bUNhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVyUHJpb3JpdHkgbWF4aW11bUNh
c2NhZGVMYXllclByaW9yaXR5KQogICAgIDogbV9tYXRjaFJlc3VsdChwYXJlbnQubV9tYXRjaFJl
c3VsdCkKICAgICAsIG1faW5jbHVkZWRQcm9wZXJ0aWVzKHBhcmVudC5tX2luY2x1ZGVkUHJvcGVy
dGllcykKKyAgICAsIG1fbWF4aW11bUNhc2NhZGVMZXZlbChtYXhpbXVtQ2FzY2FkZUxldmVsKQor
ICAgICwgbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkobWF4aW11bUNhc2NhZGVMYXllclBy
aW9yaXR5KQogICAgICwgbV9kaXJlY3Rpb24ocGFyZW50LmRpcmVjdGlvbigpKQogICAgICwgbV9k
aXJlY3Rpb25Jc1VucmVzb2x2ZWQoZmFsc2UpCiB7Ci0gICAgYnVpbGRDYXNjYWRlKGNhc2NhZGVM
ZXZlbHMpOworICAgIGJ1aWxkQ2FzY2FkZSgpOwogfQogCiBQcm9wZXJ0eUNhc2NhZGU6On5Qcm9w
ZXJ0eUNhc2NhZGUoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgUHJvcGVydHlDYXNjYWRlOjpidWlsZENh
c2NhZGUoT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscykKK3ZvaWQgUHJvcGVy
dHlDYXNjYWRlOjpidWlsZENhc2NhZGUoKQogewogICAgIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+
IGNhc2NhZGVMZXZlbHNXaXRoSW1wb3J0YW50OwogCi0gICAgZm9yIChhdXRvIGNhc2NhZGVMZXZl
bCA6IGNhc2NhZGVMZXZlbHMpIHsKKyAgICBmb3IgKGF1dG8gY2FzY2FkZUxldmVsIDogeyBDYXNj
YWRlTGV2ZWw6OlVzZXJBZ2VudCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1
dGhvciB9KSB7CisgICAgICAgIGlmIChjYXNjYWRlTGV2ZWwgPiBtX21heGltdW1DYXNjYWRlTGV2
ZWwpCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgYm9vbCBoYXNJbXBvcnRhbnQgPSBhZGRO
b3JtYWxNYXRjaGVzKGNhc2NhZGVMZXZlbCk7CiAgICAgICAgIGlmIChoYXNJbXBvcnRhbnQpCiAg
ICAgICAgICAgICBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudC5hZGQoY2FzY2FkZUxldmVsKTsK
QEAgLTExMyw2ICsxMTgsOCBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRl
cm5hbChQcm9wZXJ0eSYgcHJvcGVydHksIENTU1Byb3BlcnR5SUQgaWQsCiAgICAgcHJvcGVydHku
aWQgPSBpZDsKICAgICBwcm9wZXJ0eS5sZXZlbCA9IGNhc2NhZGVMZXZlbDsKICAgICBwcm9wZXJ0
eS5zdHlsZVNjb3BlT3JkaW5hbCA9IG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFs
OworICAgIHByb3BlcnR5LmNhc2NhZGVMYXllclByaW9yaXR5ID0gbWF0Y2hlZFByb3BlcnRpZXMu
Y2FzY2FkZUxheWVyUHJpb3JpdHk7CisKICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMubGlua01h
dGNoVHlwZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKSB7CiAgICAgICAgIHByb3BlcnR5
LmNzc1ZhbHVlWzBdID0gJmNzc1ZhbHVlOwogICAgICAgICBwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxl
Y3RvckNoZWNrZXI6Ok1hdGNoTGlua10gPSAmY3NzVmFsdWU7CkBAIC0xNzAsNiArMTc3LDkgQEAg
dm9pZCBQcm9wZXJ0eUNhc2NhZGU6OnNldERlZmVycmVkKENTU1Byb3BlcnR5SUQgaWQsIENTU1Zh
bHVlJiBjc3NWYWx1ZSwgY29uc3QgTWEKIAogYm9vbCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNo
KGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVydGllcywgQ2FzY2FkZUxldmVs
IGNhc2NhZGVMZXZlbCwgYm9vbCBpbXBvcnRhbnQpCiB7CisgICAgaWYgKG1hdGNoZWRQcm9wZXJ0
aWVzLmNhc2NhZGVMYXllclByaW9yaXR5ID4gbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkg
JiYgY2FzY2FkZUxldmVsID09IG1fbWF4aW11bUNhc2NhZGVMZXZlbCAmJiBtYXRjaGVkUHJvcGVy
dGllcy5zdHlsZVNjb3BlT3JkaW5hbCA9PSBTY29wZU9yZGluYWw6OkVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGF1dG8mIHN0eWxlUHJvcGVydGllcyA9ICptYXRjaGVkUHJv
cGVydGllcy5wcm9wZXJ0aWVzOwogICAgIGF1dG8gcHJvcGVydHlBbGxvd2xpc3QgPSBtYXRjaGVk
UHJvcGVydGllcy5hbGxvd2xpc3RUeXBlOwogICAgIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVydGll
cyA9IGZhbHNlOwpAQCAtMjM3LDEyICsyNDcsMTQgQEAgc3RhdGljIGJvb2wgaGFzSW1wb3J0YW50
UHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiAKIHZvaWQgUHJv
cGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2
ZWwpCiB7Ci0gICAgc3RydWN0IEluZGV4QW5kT3JkaW5hbCB7CisgICAgc3RydWN0IEltcG9ydGFu
dE1hdGNoIHsKICAgICAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIFNjb3BlT3JkaW5hbCBv
cmRpbmFsOworICAgICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBsYXllclByaW9yaXR5OworICAg
ICAgICBGcm9tU3R5bGVBdHRyaWJ1dGUgZnJvbVN0eWxlQXR0cmlidXRlOwogICAgIH07Ci0gICAg
VmVjdG9yPEluZGV4QW5kT3JkaW5hbD4gaW1wb3J0YW50TWF0Y2hlczsKLSAgICBib29sIGhhc01h
dGNoZXNGcm9tT3RoZXJTY29wZXMgPSBmYWxzZTsKKyAgICBWZWN0b3I8SW1wb3J0YW50TWF0Y2g+
IGltcG9ydGFudE1hdGNoZXM7CisgICAgYm9vbCBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JM
YXllcnMgPSBmYWxzZTsKIAogICAgIGF1dG8mIG1hdGNoZWREZWNsYXJhdGlvbnMgPSBkZWNsYXJh
dGlvbnNGb3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVsKTsKIApAQCAt
MjUyLDIwICsyNjQsMjUgQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNo
ZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKICAgICAgICAgaWYgKCFoYXNJbXBvcnRhbnRQ
cm9wZXJ0aWVzKCptYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIGltcG9ydGFudE1hdGNoZXMuYXBwZW5kKHsgaSwgbWF0Y2hlZFBy
b3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwgfSk7CisgICAgICAgIGltcG9ydGFudE1hdGNoZXMu
YXBwZW5kKHsgaSwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwsIG1hdGNoZWRQ
cm9wZXJ0aWVzLmNhc2NhZGVMYXllclByaW9yaXR5LCBtYXRjaGVkUHJvcGVydGllcy5mcm9tU3R5
bGVBdHRyaWJ1dGUgfSk7CiAKLSAgICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2Nv
cGVPcmRpbmFsICE9IFNjb3BlT3JkaW5hbDo6RWxlbWVudCkKLSAgICAgICAgICAgIGhhc01hdGNo
ZXNGcm9tT3RoZXJTY29wZXMgPSB0cnVlOworICAgICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMu
c3R5bGVTY29wZU9yZGluYWwgIT0gU2NvcGVPcmRpbmFsOjpFbGVtZW50IHx8IG1hdGNoZWRQcm9w
ZXJ0aWVzLmNhc2NhZGVMYXllclByaW9yaXR5ICE9IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9y
aXR5Rm9yVW5sYXllcmVkKQorICAgICAgICAgICAgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3Blc09y
TGF5ZXJzID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoaW1wb3J0YW50TWF0Y2hlcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVz
KSB7Ci0gICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBzaGFkb3cg
dHJlZSB3aW5zLgorICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JMYXllcnMpIHsK
ICAgICAgICAgLy8gTWF0Y2ggcmVzdWx0cyBhcmUgc29ydGVkIGluIHJldmVyc2UgdHJlZSBjb250
ZXh0IG9yZGVyIHNvIHRoaXMgaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIHByb3BlcnRpZXMuCi0g
ICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdpbigpLCBpbXBvcnRh
bnRNYXRjaGVzLmVuZCgpLCBbXSAoY29uc3QgSW5kZXhBbmRPcmRpbmFsJiBhLCBjb25zdCBJbmRl
eEFuZE9yZGluYWwmIGIpIHsKLSAgICAgICAgICAgIHJldHVybiBhLm9yZGluYWwgPCBiLm9yZGlu
YWw7CisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdpbigpLCBp
bXBvcnRhbnRNYXRjaGVzLmVuZCgpLCBbXSAoYXV0byYgYSwgYXV0byYgYikgeworICAgICAgICAg
ICAgLy8gRm9yICFpbXBvcnRhbnQgcHJvcGVydGllcyBhIGxhdGVyIHNoYWRvdyB0cmVlIHdpbnMu
CisgICAgICAgICAgICBpZiAoYS5vcmRpbmFsICE9IGIub3JkaW5hbCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYS5vcmRpbmFsIDwgYi5vcmRpbmFsOworICAgICAgICAgICAgLy8gTG93ZXIgcHJp
b3JpdHkgbGF5ZXIgd2lucywgZXhjZXB0IGlmIHN0eWxlIGF0dHJpYnV0ZSBpcyBpbnZvbHZlZC4K
KyAgICAgICAgICAgIGlmIChhLmZyb21TdHlsZUF0dHJpYnV0ZSAhPSBiLmZyb21TdHlsZUF0dHJp
YnV0ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYS5mcm9tU3R5bGVBdHRyaWJ1dGUgPT0gRnJv
bVN0eWxlQXR0cmlidXRlOjpObzsKKyAgICAgICAgICAgIHJldHVybiBhLmxheWVyUHJpb3JpdHkg
PiBiLmxheWVyUHJpb3JpdHk7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMjczLDMwICsyOTAs
NiBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2
ZWwgY2FzY2FkZUxldmVsKQogICAgICAgICBhZGRNYXRjaChtYXRjaGVkRGVjbGFyYXRpb25zW21h
dGNoLmluZGV4XSwgY2FzY2FkZUxldmVsLCB0cnVlKTsKIH0KIAotY29uc3QgUHJvcGVydHlDYXNj
YWRlKiBQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2NhZGVM
ZXZlbCBjYXNjYWRlTGV2ZWwpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChjYXNjYWRlTGV2ZWwpIHsK
LSAgICBjYXNlIENhc2NhZGVMZXZlbDo6QXV0aG9yOgotICAgICAgICBpZiAoIW1fYXV0aG9yUm9s
bGJhY2tDYXNjYWRlKSB7Ci0gICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBPcHRpb25T
ZXQ8Q2FzY2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBDYXNjYWRlTGV2ZWw6
OlVzZXIgfTsKLSAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlID0gbWFrZVVuaXF1
ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+KCp0aGlzLCBjYXNjYWRlTGV2ZWxzKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUuZ2V0KCk7Ci0KLSAgICBj
YXNlIENhc2NhZGVMZXZlbDo6VXNlcjoKLSAgICAgICAgaWYgKCFtX3VzZXJSb2xsYmFja0Nhc2Nh
ZGUpIHsKLSAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNldDxDYXNjYWRl
TGV2ZWw+IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfTsKLSAgICAgICAgICAgIG1fdXNlclJv
bGxiYWNrQ2FzY2FkZSA9IG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPigqdGhpcywg
Y2FzY2FkZUxldmVscyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fdXNlclJvbGxiYWNr
Q2FzY2FkZS5nZXQoKTsKLQotICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLQogUHJvcGVydHlDYXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVy
dHlDYXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoRGlyZWN0aW9uIGluaGVy
aXRlZERpcmVjdGlvbikgY29uc3QKIHsKICAgICBEaXJlY3Rpb24gcmVzdWx0ID0gaW5oZXJpdGVk
RGlyZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNj
YWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaAppbmRleCAzZmEx
ZjhiZDQyMzJmMjJjNWQyYTQ3ZmYyMmVkMjcwZGY4YmM1MDYwLi44MzdlZmNhZDQxNmZjZGQ3ZmNk
YTJjY2JlZTg0YTRhZWQ4MjI2MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Q
cm9wZXJ0eUNhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2Nh
ZGUuaApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlOwogICAgIH07CiAKLSAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0Y2hSZXN1bHQm
LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiwgSW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rpb24p
OwotICAgIFByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmLCBPcHRpb25TZXQ8
Q2FzY2FkZUxldmVsPik7CisgICAgUHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNoUmVzdWx0Jiwg
Q2FzY2FkZUxldmVsLCBJbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbik7CisgICAgUHJvcGVy
dHlDYXNjYWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYsIENhc2NhZGVMZXZlbCwgQ2FzY2FkZUxh
eWVyUHJpb3JpdHkgbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5ID0gUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQpOwogCiAgICAgflByb3BlcnR5Q2FzY2FkZSgpOwog
CkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUHJvcGVydHlJRCBpZDsKICAg
ICAgICAgQ2FzY2FkZUxldmVsIGxldmVsOwogICAgICAgICBTY29wZU9yZGluYWwgc3R5bGVTY29w
ZU9yZGluYWw7CisgICAgICAgIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9y
aXR5OwogICAgICAgICBDU1NWYWx1ZSogY3NzVmFsdWVbM107IC8vIFZhbHVlcyBmb3IgbGluayBt
YXRjaCBzdGF0ZXMgTWF0Y2hEZWZhdWx0LCBNYXRjaExpbmsgYW5kIE1hdGNoVmlzaXRlZAogICAg
IH07CiAKQEAgLTY5LDEwICs3MCwxMSBAQCBwdWJsaWM6CiAKICAgICBEaXJlY3Rpb24gZGlyZWN0
aW9uKCkgY29uc3Q7CiAKLSAgICBjb25zdCBQcm9wZXJ0eUNhc2NhZGUqIHByb3BlcnR5Q2FzY2Fk
ZUZvclJvbGxiYWNrKENhc2NhZGVMZXZlbCkgY29uc3Q7CisgICAgYXV0byBtYXhpbXVtQ2FzY2Fk
ZUxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtQ2FzY2FkZUxldmVsOyB9CisgICAgYXV0
byBtYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1D
YXNjYWRlTGF5ZXJQcmlvcml0eTsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgYnVpbGRDYXNjYWRl
KE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+KTsKKyAgICB2b2lkIGJ1aWxkQ2FzY2FkZSgpOwogICAg
IGJvb2wgYWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIHZvaWQgYWRkSW1wb3J0
YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIGJvb2wgYWRkTWF0Y2goY29uc3QgTWF0Y2hl
ZFByb3BlcnRpZXMmLCBDYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KTsKQEAgLTg1LDYgKzg3
LDggQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IE1hdGNoUmVzdWx0JiBtX21hdGNoUmVzdWx0Owog
ICAgIGNvbnN0IEluY2x1ZGVkUHJvcGVydGllcyBtX2luY2x1ZGVkUHJvcGVydGllczsKKyAgICBj
b25zdCBDYXNjYWRlTGV2ZWwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsOworICAgIGNvbnN0IENhc2Nh
ZGVMYXllclByaW9yaXR5IG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IHsgUnVsZVNldDo6
Y2FzY2FkZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQgfTsKICAgICBtdXRhYmxlIERpcmVjdGlv
biBtX2RpcmVjdGlvbjsKICAgICBtdXRhYmxlIGJvb2wgbV9kaXJlY3Rpb25Jc1VucmVzb2x2ZWQg
eyB0cnVlIH07CiAKQEAgLTkzLDkgKzk3LDYgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxQcm9w
ZXJ0eSwgOD4gbV9kZWZlcnJlZFByb3BlcnRpZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBQ
cm9wZXJ0eT4gbV9jdXN0b21Qcm9wZXJ0aWVzOwotCi0gICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9w
dHI8Y29uc3QgUHJvcGVydHlDYXNjYWRlPiBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZTsKLSAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+IG1fdXNlclJvbGxi
YWNrQ2FzY2FkZTsKIH07CiAKIGlubGluZSBib29sIFByb3BlcnR5Q2FzY2FkZTo6aGFzUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCBmMDRh
NzIwMzAzNzY1MjFmOGIzNTY1MTA0MTBjNjJhNTA3MGYxZGYzLi4xYTk1ZDU3MDZiYzA4YWRhOTcz
YzA2MWZlNzliZTFmYjRiOTZkZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC00Myw2ICs0
Myw4IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBSZXNvbHZlcjsKIGNsYXNzIFJ1bGVTZXQ7
CiAKK3VzaW5nIENhc2NhZGVMYXllclByaW9yaXR5ID0gdWludDMyX3Q7CisKIHVzaW5nIEludmFs
aWRhdGlvblJ1bGVTZXRWZWN0b3IgPSBWZWN0b3I8UmVmUHRyPGNvbnN0IFJ1bGVTZXQ+LCAxPjsK
IAogc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMgewpAQCAtMTAzLDgg
KzEwNSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygp
IGNvbnN0IHsgcmV0dXJuICFtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcy5pc0VtcHR5KCk7IH0K
ICAgICBib29sIGhhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1RyZWUoKSBj
b25zdCB7IHJldHVybiBtX2hhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1Ry
ZWU7IH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYXNjYWRlTGF5ZXJQcmlvcml0eUZv
clVubGF5ZXJlZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKLSAgICB1
bnNpZ25lZCBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25zdCBSdWxlRGF0YSYpIGNvbnN0Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5ZXJl
ZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8Q2FzY2FkZUxheWVyUHJpb3JpdHk+OjptYXgoKTsKKyAg
ICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25zdCBSdWxl
RGF0YSYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSdWxlU2V0QnVpbGRl
cjsKQEAgLTEzNiw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgQ2FzY2FkZUxheWVy
JiBjYXNjYWRlTGF5ZXJGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50aWZpZXIgaWRlbnRp
ZmllcikgeyByZXR1cm4gbV9jYXNjYWRlTGF5ZXJzW2lkZW50aWZpZXIgLSAxXTsgfQogICAgIGNv
bnN0IENhc2NhZGVMYXllciYgY2FzY2FkZUxheWVyRm9ySWRlbnRpZmllcihDYXNjYWRlTGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fY2FzY2FkZUxheWVyc1tpZGVu
dGlmaWVyIC0gMV07IH0KLSAgICB1bnNpZ25lZCBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcklkZW50
aWZpZXIoQ2FzY2FkZUxheWVySWRlbnRpZmllcikgY29uc3Q7CisgICAgQ2FzY2FkZUxheWVyUHJp
b3JpdHkgY2FzY2FkZUxheWVyUHJpb3JpdHlGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50
aWZpZXIpIGNvbnN0OwogCiAgICAgc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMgewogICAg
ICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKQEAg
LTE5MywxNCArMTk1LDE0IEBAIGlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvciog
UnVsZVNldDo6dGFnUnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBiCiAgICAgcmV0dXJuIHRh
Z1J1bGVzLT5nZXQoa2V5KTsKIH0KIAotaW5saW5lIHVuc2lnbmVkIFJ1bGVTZXQ6OmNhc2NhZGVM
YXllclByaW9yaXR5Rm9ySWRlbnRpZmllcihDYXNjYWRlTGF5ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIGNvbnN0CitpbmxpbmUgQ2FzY2FkZUxheWVyUHJpb3JpdHkgUnVsZVNldDo6Y2FzY2FkZUxh
eWVyUHJpb3JpdHlGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50aWZpZXIgaWRlbnRpZmll
cikgY29uc3QKIHsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBjYXNjYWRl
TGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZDsKICAgICByZXR1cm4gY2FzY2FkZUxheWVyRm9ySWRl
bnRpZmllcihpZGVudGlmaWVyKS5wcmlvcml0eTsKIH0KIAotaW5saW5lIHVuc2lnbmVkIFJ1bGVT
ZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSkgY29u
c3QKK2lubGluZSBDYXNjYWRlTGF5ZXJQcmlvcml0eSBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlv
cml0eUZvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpIGNvbnN0CiB7CiAgICAgaWYgKG1fY2Fz
Y2FkZUxheWVySWRlbnRpZmllckZvclJ1bGVQb3NpdGlvbi5zaXplKCkgPD0gcnVsZURhdGEucG9z
aXRpb24oKSkKICAgICAgICAgcmV0dXJuIGNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggOWQ2YzZiNDM5OTBhOGE5
YmUxMGI2MjI3M2QwNzkyYjk4YmU1OGE5ZC4uMzMxMTNkYzAxOWNkNjY1OGQxZWMxMTU0OTdhZTQ3
ZjQ3NmY5N2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCkBAIC04MCw4
ICs4MCw4IEBAIGlubGluZSBib29sIGlzVmFsaWRWaXNpdGVkTGlua1Byb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1CdWlsZGVyOjpCdWlsZGVyKFJlbmRl
clN0eWxlJiBzdHlsZSwgQnVpbGRlckNvbnRleHQmJiBjb250ZXh0LCBjb25zdCBNYXRjaFJlc3Vs
dCYgbWF0Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMsIFBy
b3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcykKLSAg
ICA6IG1fY2FzY2FkZShtYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0
aWVzLCBkaXJlY3Rpb25Gcm9tU3R5bGUoc3R5bGUpKQorQnVpbGRlcjo6QnVpbGRlcihSZW5kZXJT
dHlsZSYgc3R5bGUsIEJ1aWxkZXJDb250ZXh0JiYgY29udGV4dCwgY29uc3QgTWF0Y2hSZXN1bHQm
IG1hdGNoUmVzdWx0LCBDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBQcm9wZXJ0eUNhc2NhZGU6
OkluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMpCisgICAgOiBtX2Nhc2NhZGUo
bWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbCwgaW5jbHVkZWRQcm9wZXJ0aWVzLCBkaXJlY3Rpb25G
cm9tU3R5bGUoc3R5bGUpKQogICAgICwgbV9zdGF0ZSgqdGhpcywgc3R5bGUsIFdURk1vdmUoY29u
dGV4dCkpCiB7CiB9CkBAIC0xMjEsMTYgKzEyMSw2IEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlMb3dQ
cmlvcml0eVByb3BlcnRpZXMoKQogICAgIEFTU0VSVCghbV9zdGF0ZS5mb250RGlydHkoKSk7CiB9
CiAKLXZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgQ1NTVmFsdWUqIHZhbHVlKQotewotICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGFwcGx5UHJvcGVydHkocHJvcGVydHlJRCwgKnZhbHVlLCBTZWxlY3RvckNoZWNr
ZXI6Ok1hdGNoRGVmYXVsdCk7Ci0KLSAgICBtX3N0YXRlLnVwZGF0ZUZvbnQoKTsKLX0KLQogdm9p
ZCBCdWlsZGVyOjphcHBseURlZmVycmVkUHJvcGVydGllcygpCiB7CiAgICAgZm9yIChhdXRvJiBw
cm9wZXJ0eSA6IG1fY2FzY2FkZS5kZWZlcnJlZFByb3BlcnRpZXMoKSkKQEAgLTI0NSw2ICsyMzUs
NyBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyOjphcHBseUNhc2NhZGVQcm9wZXJ0eShjb25zdCBQcm9w
ZXJ0eUNhc2NhZGU6OlByb3BlcnR5JiBwcm9wZQogewogICAgIG1fc3RhdGUubV9jYXNjYWRlTGV2
ZWwgPSBwcm9wZXJ0eS5sZXZlbDsKICAgICBtX3N0YXRlLm1fc3R5bGVTY29wZU9yZGluYWwgPSBw
cm9wZXJ0eS5zdHlsZVNjb3BlT3JkaW5hbDsKKyAgICBtX3N0YXRlLm1fY2FzY2FkZUxheWVyUHJp
b3JpdHkgPSBwcm9wZXJ0eS5jYXNjYWRlTGF5ZXJQcmlvcml0eTsKIAogICAgIGF1dG8gYXBwbHlX
aXRoTGlua01hdGNoID0gWyZdKFNlbGVjdG9yQ2hlY2tlcjo6TGlua01hdGNoTWFzayBsaW5rTWF0
Y2gpIHsKICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaF0pIHsKQEAgLTI5
NSwyMSArMjg2LDI3IEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
IGlkLCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6CiAKICAgICBib29sIGlzVW5z
ZXQgPSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJ
RCA9PSBDU1NWYWx1ZVVuc2V0OwogICAgIGJvb2wgaXNSZXZlcnQgPSB2YWx1ZVRvQXBwbHktPmlz
UmV2ZXJ0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7
CisgICAgYm9vbCBpc1JldmVydExheWVyID0gdmFsdWVUb0FwcGx5LT5pc1JldmVydExheWVyVmFs
dWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnRMYXllcjsKKwor
ICAgIGlmIChpc1JldmVydCB8fCBpc1JldmVydExheWVyKSB7CisgICAgICAgIGF1dG8qIHJvbGxi
YWNrQ2FzY2FkZSA9IGlzUmV2ZXJ0CisgICAgICAgICAgICA/IGVuc3VyZVJvbGxiYWNrQ2FzY2Fk
ZUZvclJldmVydChtX3N0YXRlLm1fY2FzY2FkZUxldmVsKQorICAgICAgICAgICAgOiBlbnN1cmVS
b2xsYmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihtX3N0YXRlLm1fY2FzY2FkZUxldmVsLCBtX3N0
YXRlLm1fY2FzY2FkZUxheWVyUHJpb3JpdHkpOwogCi0gICAgaWYgKGlzUmV2ZXJ0KSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByb2xsYmFjayA9IG1fY2FzY2FkZS5wcm9wZXJ0eUNhc2NhZGVGb3JSb2xs
YmFjayhtX3N0YXRlLm1fY2FzY2FkZUxldmVsKSkgeworICAgICAgICBpZiAocm9sbGJhY2tDYXNj
YWRlKSB7CiAgICAgICAgICAgICAvLyBXaXRoIHRoZSByb2xsYmFjayBjYXNjYWRlIGJ1aWx0LCB3
ZSBuZWVkIHRvIG9idGFpbiB0aGUgcHJvcGVydHkgYW5kIGFwcGx5IGl0LiBJZiB0aGUgcHJvcGVy
dHkgaXMKLSAgICAgICAgICAgIC8vIG5vdCBwcmVzZW50LCB0aGVuIHdlIGJlaGF2ZSBsaWtlICJ1
bnNldC4iIE90aGVyd2lzZSB3ZSBhcHBseSB0aGUgcHJvcGVydHkgaW5zdGVhZCBvZgotICAgICAg
ICAgICAgLy8gb3VyIG93bi4KKyAgICAgICAgICAgIC8vIG5vdCBwcmVzZW50LCB0aGVuIHdlIGJl
aGF2ZSBsaWtlICJ1bnNldC4iIE90aGVyd2lzZSB3ZSBhcHBseSB0aGUgcHJvcGVydHkgaW5zdGVh
ZCBvZiBvdXIgb3duLgorICAgICAgICAgICAgU2V0Rm9yU2NvcGUgY2FzY2FkZUxldmVsU2NvcGUo
bV9zdGF0ZS5tX2Nhc2NhZGVMZXZlbCwgcm9sbGJhY2tDYXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxl
dmVsKCkpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGUgY2FzY2FkZUxheWVyUHJpb3JpdHlTY29w
ZShtX3N0YXRlLm1fY2FzY2FkZUxheWVyUHJpb3JpdHksIHJvbGxiYWNrQ2FzY2FkZS0+bWF4aW11
bUNhc2NhZGVMYXllclByaW9yaXR5KCkpOwogICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5
VmFsdWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkICYm
IGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZC0+aW5oZXJpdHMgJiYgcm9sbGJhY2stPmhhc0N1c3Rv
bVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUoKSkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXV0byBwcm9wZXJ0eSA9IHJvbGxiYWNrLT5jdXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9w
ZXJ0eVZhbHVlLT5uYW1lKCkpOworICAgICAgICAgICAgICAgIGlmIChjdXN0b21Qcm9wZXJ0eVJl
Z2lzdGVyZWQgJiYgY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkLT5pbmhlcml0cyAmJiByb2xsYmFj
a0Nhc2NhZGUtPmhhc0N1c3RvbVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUoKSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IHJvbGxiYWNrQ2FzY2FkZS0+
Y3VzdG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdKQogICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1Zh
bHVlW2xpbmtNYXRjaE1hc2tdLCBsaW5rTWF0Y2hNYXNrKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocm9sbGJh
Y2stPmhhc1Byb3BlcnR5KGlkKSkgewotICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnR5ID0g
cm9sbGJhY2stPnByb3BlcnR5KGlkKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocm9sbGJhY2tD
YXNjYWRlLT5oYXNQcm9wZXJ0eShpZCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBwcm9wZXJ0
eSA9IHJvbGxiYWNrQ2FzY2FkZS0+cHJvcGVydHkoaWQpOwogICAgICAgICAgICAgICAgIGlmIChw
cm9wZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0Y2hNYXNrXSkKICAgICAgICAgICAgICAgICAgICAgYXBw
bHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2td
LCBsaW5rTWF0Y2hNYXNrKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zNzMsNSArMzcw
LDMyIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQnVpbGRlcjo6cmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QKICAgICByZXR1cm4gQ1NTUGFyc2VyKG1fc3Rh
dGUuZG9jdW1lbnQoKSkucGFyc2VWYWx1ZVdpdGhWYXJpYWJsZVJlZmVyZW5jZXMocHJvcGVydHlJ
RCwgdmFsdWUsIG1fc3RhdGUpOwogfQogCitjb25zdCBQcm9wZXJ0eUNhc2NhZGUqIEJ1aWxkZXI6
OmVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChDYXNjYWRlTGV2ZWwgcm9sbGJhY2tDYXNj
YWRlTGV2ZWwpCit7CisgICAgaWYgKHJvbGxiYWNrQ2FzY2FkZUxldmVsID09IENhc2NhZGVMZXZl
bDo6VXNlckFnZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8ga2V5ID0g
bWFrZVJvbGxiYWNrQ2FzY2FkZUtleShyb2xsYmFja0Nhc2NhZGVMZXZlbCwgUnVsZVNldDo6Y2Fz
Y2FkZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQpOworICAgIHJldHVybiBtX3JvbGxiYWNrQ2Fz
Y2FkZXMuZW5zdXJlKGtleSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8Y29uc3Qg
UHJvcGVydHlDYXNjYWRlPihtX2Nhc2NhZGUsIC0tcm9sbGJhY2tDYXNjYWRlTGV2ZWwsIFJ1bGVT
ZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkKTsKKyAgICB9KS5pdGVyYXRvci0+
dmFsdWUuZ2V0KCk7Cit9CisKK2NvbnN0IFByb3BlcnR5Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJl
Um9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0TGF5ZXIoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCwg
Q2FzY2FkZUxheWVyUHJpb3JpdHkgcm9sbGJhY2tMYXllclByaW9yaXR5KQoreworICAgIGlmICgh
cm9sbGJhY2tMYXllclByaW9yaXR5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8ga2V5ID0gbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShjYXNjYWRlTGV2ZWwsIHJvbGxiYWNrTGF5
ZXJQcmlvcml0eSk7CisgICAgcmV0dXJuIG1fcm9sbGJhY2tDYXNjYWRlcy5lbnN1cmUoa2V5LCBb
Jl0geworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+KG1f
Y2FzY2FkZSwgY2FzY2FkZUxldmVsLCByb2xsYmFja0xheWVyUHJpb3JpdHkgLSAxKTsKKyAgICB9
KS5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK2F1dG8gQnVpbGRlcjo6bWFrZVJvbGxiYWNr
Q2FzY2FkZUtleShDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0
eSBjYXNjYWRlTGF5ZXJQcmlvcml0eSkgLT4gUm9sbGJhY2tDYXNjYWRlS2V5Cit7CisgICAgcmV0
dXJuIHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhc2NhZGVMZXZlbCksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihjYXNjYWRlTGF5ZXJQcmlvcml0eSkgfTsKK30KKwogfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXIuaAppbmRleCAxMGFlNjc2MjI1OTZlMTRhNjQxYTMwMGVhZjM4ZGViYzNk
MGIyZjZkLi43NWYzYTIzNmExOGE2MDg1YzMxYTM5ZTM3MmJiNzJkYWYyMDg1MTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgU3R5
bGUgewogY2xhc3MgQnVpbGRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgQnVpbGRlcihSZW5kZXJTdHlsZSYsIEJ1aWxkZXJDb250ZXh0JiYsIGNvbnN0IE1h
dGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4sIFByb3BlcnR5Q2FzY2FkZTo6SW5j
bHVkZWRQcm9wZXJ0aWVzID0gUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFs
bCk7CisgICAgQnVpbGRlcihSZW5kZXJTdHlsZSYsIEJ1aWxkZXJDb250ZXh0JiYsIGNvbnN0IE1h
dGNoUmVzdWx0JiwgQ2FzY2FkZUxldmVsLCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVy
dGllcyA9IFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzOjpBbGwpOwogICAgIH5C
dWlsZGVyKCk7CiAKICAgICB2b2lkIGFwcGx5QWxsUHJvcGVydGllcygpOwpAQCAtNDUsOCArNDUs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCkgeyBhcHBseVByb3BlcnRpZXMocHJvcGVydHlJRCwgcHJvcGVydHlJRCk7IH0KICAgICB2
b2lkIGFwcGx5Q3VzdG9tUHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHZvaWQg
YXBwbHlQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKik7Ci0KICAgICBCdWls
ZGVyU3RhdGUmIHN0YXRlKCkgeyByZXR1cm4gbV9zdGF0ZTsgfQogCiBwcml2YXRlOgpAQCAtNjMs
NyArNjEsMTYgQEAgcHJpdmF0ZToKICAgICBSZWY8Q1NTVmFsdWU+IHJlc29sdmVWYWx1ZShDU1NQ
cm9wZXJ0eUlELCBDU1NWYWx1ZSYpOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzb2x2ZWRWYXJp
YWJsZVZhbHVlKENTU1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJik7CiAKKyAgICBjb25zdCBQ
cm9wZXJ0eUNhc2NhZGUqIGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChDYXNjYWRlTGV2
ZWwpOworICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSogZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9y
UmV2ZXJ0TGF5ZXIoQ2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0eSk7CisKKyAgICB1
c2luZyBSb2xsYmFja0Nhc2NhZGVLZXkgPSBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPjsK
KyAgICBSb2xsYmFja0Nhc2NhZGVLZXkgbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShDYXNjYWRlTGV2
ZWwsIENhc2NhZGVMYXllclByaW9yaXR5KTsKKwogICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSBt
X2Nhc2NhZGU7CisgICAgLy8gUm9sbGJhY2sgY2FzY2FkZXMgYXJlIGJ1aWxkIG9uIGRlbWFuZCB0
byByZXNvbHZlICdyZXZlcnQnIGFuZCAncmV2ZXJ0LWxheWVyJyBrZXl3b3Jkcy4KKyAgICBIYXNo
TWFwPFJvbGxiYWNrQ2FzY2FkZUtleSwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2Fz
Y2FkZT4+IG1fcm9sbGJhY2tDYXNjYWRlczsKKwogICAgIEJ1aWxkZXJTdGF0ZSBtX3N0YXRlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmgKaW5kZXggMmViYzFk
Yjc3YmMzZDZhYWNiMmY4MjBjMTVlZTdmOTRjZDIwOGI5Ny4uZWExYTViNTFkZDhhMmRlZjM2NjVk
NjVjZGI0ZDliNWNjM2M5YjZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVCdWlsZGVyU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJT
dGF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTVG9TdHlsZU1hcC5oIgogI2lu
Y2x1ZGUgIkNhc2NhZGVMZXZlbC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVk
ZSAiUnVsZVNldC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgPHd0
Zi9CaXRtYXAuaD4KIApAQCAtMTM2LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAKICAgICBDYXNjYWRl
TGV2ZWwgbV9jYXNjYWRlTGV2ZWwgeyB9OwogICAgIFNjb3BlT3JkaW5hbCBtX3N0eWxlU2NvcGVP
cmRpbmFsIHsgfTsKKyAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBtX2Nhc2NhZGVMYXllclByaW9y
aXR5IHsgfTsKICAgICBTZWxlY3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sgbV9saW5rTWF0Y2gg
eyB9OwogCiAgICAgYm9vbCBtX2ZvbnREaXJ0eSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGQ2YTY2MjVjZmZiMDFlZTgzMmNmYzk2MmIxZDQyNjhh
ZDhjYzhlOWYuLjhlYTM5Y2JkMDNjOGEzYTRkOTI2OWQ2MDhlODUyYTM3YTMzNmNkY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFtZShjb25z
dCBFbGVtZW50JiBlbGVtZW50LAogICAgIHN0YXRlLnNldFN0eWxlKFJlbmRlclN0eWxlOjpjbG9u
ZVB0cigqZWxlbWVudFN0eWxlKSk7CiAgICAgc3RhdGUuc2V0UGFyZW50U3R5bGUoUmVuZGVyU3R5
bGU6OmNsb25lUHRyKGNvbnRleHQucGFyZW50U3R5bGUgPyAqY29udGV4dC5wYXJlbnRTdHlsZSA6
ICplbGVtZW50U3R5bGUpKTsKIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwg
YnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpBdXRob3IgfSk7
CisgICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0
ZSksIHJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IpOwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQ
cm9wZXJ0aWVzKCk7CiAKICAgICBBZGp1c3RlciBhZGp1c3Rlcihkb2N1bWVudCgpLCAqc3RhdGUu
cGFyZW50U3R5bGUoKSwgbnVsbHB0ciwgbnVsbHB0cik7CkBAIC00MzYsNyArNDM2LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdl
SW5kZXgpCiAKICAgICBhdXRvJiByZXN1bHQgPSBjb2xsZWN0b3IubWF0Y2hSZXN1bHQoKTsKIAot
ICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUp
LCByZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpBdXRob3IgfSk7CisgICAgQnVpbGRlciBidWlsZGVy
KCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIHJlc3VsdCwgQ2FzY2FkZUxl
dmVsOjpBdXRob3IpOwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKICAgICAv
LyBOb3cgcmV0dXJuIHRoZSBzdHlsZS4KQEAgLTU1NSwxMyArNTU1LDEzIEBAIHZvaWQgUmVzb2x2
ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoU3RhdGUmIHN0YXRlLCBjb25zdCBNYXRjaFJlc3Vs
dCYgbWF0Y2hSZXN1CiAgICAgICAgIC8vIElmIHNvLCB3ZSBjYWNoZSB0aGUgYm9yZGVyIGFuZCBi
YWNrZ3JvdW5kIHN0eWxlcyBzbyB0aGF0IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZSgpCiAgICAg
ICAgIC8vIGNhbiBsb29rIGF0IHRoZW0gbGF0ZXIgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGEg
c3R5bGVkIGZvcm0gY29udHJvbCBvciBub3QuCiAgICAgICAgIGF1dG8gdXNlckFnZW50U3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoc3R5bGUpOwotICAgICAgICBCdWlsZGVyIGJ1aWxkZXIo
KnVzZXJBZ2VudFN0eWxlLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIG1hdGNoUmVzdWx0LCB7IENh
c2NhZGVMZXZlbDo6VXNlckFnZW50IH0pOworICAgICAgICBCdWlsZGVyIGJ1aWxkZXIoKnVzZXJB
Z2VudFN0eWxlLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIG1hdGNoUmVzdWx0LCBDYXNjYWRlTGV2
ZWw6OlVzZXJBZ2VudCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAK
ICAgICAgICAgc3RhdGUuc2V0VXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKFdURk1vdmUodXNlckFn
ZW50U3R5bGUpKTsKICAgICB9CiAKLSAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCks
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIGFsbENhc2NhZGVMZXZlbHMoKSwg
aW5jbHVkZWRQcm9wZXJ0aWVzKTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCks
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9y
LCBpbmNsdWRlZFByb3BlcnRpZXMpOwogCiAgICAgLy8gSGlnaCBwcmlvcml0eSBwcm9wZXJ0aWVz
IG1heSBhZmZlY3QgcmVzb2x1dGlvbiBvZiBvdGhlciBwcm9wZXJ0aWVzICh0aGV5IGFyZSBtb3N0
bHkgZm9udCByZWxhdGVkKS4KICAgICBidWlsZGVyLmFwcGx5SGlnaFByaW9yaXR5UHJvcGVydGll
cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDYxZjMzODI1YWY0M2YxNmFjNGNjOTIwMWZmM2E3OGM2NTMzYzUxNWUuLjcy
MjM1N2IyZTg1YmNhYzQwN2NiZmIxZWNiNzg1MzFkYzU5ZTQxYzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0xMS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gU3VwcG9ydCAncmV2ZXJ0LWxheWVyJyB2YWx1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjM2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDg3OTM2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTExLTA4
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJv
Y2Vzc10gUmVtb3ZlIG5vbi1wbGF0Zm9ybSBjb2RlIGZvcm0gdGhlIEZFSW1hZ2UgY2xhc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGQ1OGNmM2Q5NTdjMTgzMGE0MTgxNTY3MjM5
OWY4MmZkYjEzMTY5Y2UuLjQ0NWUwMmU1MzAzYTllYTQzOWNkN2M5MWMyOTQ5NzM2YjU4OTg1ZjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEx
LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENh
c2NhZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxh
eWVyLTAwOC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZpcyAgPHBn
cmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggZWQ4OTc5YWQ0NmYzOWVkZWQwOTIxM2IyYzZkOWQzMTdlNjA1NWZl
Yi4uNGIyNDZmNGYzOWUwYzg2MzcyMTYwMWM4ZDg4OWFmZGM1ODY2ZTY3YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTQ5LDEzICsyMTQ5LDYgQEAgd2Via2l0Lm9yZy9iLzE0ODY1MCBmYXN0L3Jl
cGFpbnQvYWRkLXRhYmxlLW92ZXJwYWludC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaW1wb3J0YW50LXByb3Au
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4NzA5MyBbIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3At
aW5pdGlhbC14bWwuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDAxLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwMi5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDMuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA0Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwNS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDYuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA3Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyMi1yZ2JhLW9uc2NyZWVuLWIueGh0IFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci90NDIyLXJnYmEtb25zY3JlZW4tbXVsdGlwbGUtYm94ZXMt
Yy54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0w
MDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50eHQKaW5kZXgg
NzE0MWFjMGIwMzkwM2YyMjc2NDEzMzU4YzViZGI4NjYzNjYzODQ4Ny4uMTI3YjZmM2I1NDJiYmVh
ODg2ODhjNDUzNjRmNjQ3Yzg3NzJmZjBkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAw
OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSwzIEBACiAKLUZBSUwgJ3JldmVydC1sYXllcicgc2hvdWxkIHJldmVydCBmb250LXNp
emUgdG8gMjBweCBhbmQgdHJpZ2dlciBhIHNtb290aCB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICIxNXB4IiBidXQgZ290ICIxMHB4IgorUEFTUyAncmV2ZXJ0LWxheWVyJyBzaG91
bGQgcmV2ZXJ0IGZvbnQtc2l6ZSB0byAyMHB4IGFuZCB0cmlnZ2VyIGEgc21vb3RoIHRyYW5zaXRp
b24KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443920</attachid>
            <date>2021-11-11 01:29:07 -0800</date>
            <delta_ts>2021-11-11 01:44:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232236-20211111112905.patch</filename>
            <type>text/plain</type>
            <size>37451</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uNmY4NGNjODI1OGZjYjgxOWM1NDNhNmQyODg4Nzcy
NTAzZGE1MTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTExLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkIHJvbGxzIGJhY2sgdGhlIHZhbHVlIGNvbXB1dGVkIGJ5
IHRoZSBjYXNjYWRlIHRvIHRoZSBvbmUgY29taW5nIGZyb20gdGhlIGxheWVyIGJlbG93LgorCisg
ICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY2FzY2FkZS01LyNyZXZlcnQtbGF5ZXIK
KworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKworICAgICAgICBBZGQgYSAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkLgor
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzQ1NTV2lkZUtleXdvcmQpOgorCisgICAgICAgIE1ha2UgdGhlIGtleXdvcmQgQ1NTLXdp
ZGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDdXN0b21JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdHlsZS9DYXNjYWRlTGV2ZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpvcGVy
YXRvci0tKToKKworICAgICAgICBBZGQgZGVjcmVtZW50IG9wZXJhdG9yLgorCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6YWxsQ2FzY2FkZUxldmVscyk6IERlbGV0ZWQuCisgICAgICAgICogc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVs
ZXMpOgorCisgICAgICAgIFBhc3MgdGhlIGNhc2RhZGUgbGF5ZXIgcHJpb3JpdHkgc28gaXQgaXMg
YXZhaWxhYmxlIHdoZW4gcmVzb2x2aW5nIHRoZSBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3Bl
cnRpZXMpOgorCisgICAgICAgIEFkZCBhIGJpdCBpbmRpY2F0aW5nIGlmIHRoZSBwcm9wZXJ0aWVz
IGNhbWUgZnJvbSBhIHN0eWxlIGF0dHJpYnV0ZS4gVGhpcyBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qg
cmVzb2x1dGlvbiBvZiAhaW1wb3J0YW50IHdpdGggY2FzY2FkZSBsYXllcnMuCisKKyAgICAgICAg
KiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQ
cm9wZXJ0eUNhc2NhZGUpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZlbHMgaW4gdGVy
bXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQgb2YgbGV2ZWxz
LiBUaGlzIG1ha2VzIHRoaW5ncyBzaW1wbGVyLgorICAgICAgICBNYWtlIGl0IGEgbWVtYmVyLgor
ICAgICAgICBQcm92aWRlIG1heGltdW0gY2FzY2FkZSBsYXllciBwcmlvcml0eSB3aGVuIGNvbnN0
cnVjdGluZyByb2xsYmFjayBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJv
cGVydHlDYXNjYWRlOjpidWlsZENhc2NhZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBy
b3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaCk6CisKKyAgICAgICAgSWdub3JlIHByb3Bl
cnRpZXMgd2l0aCBjYXNjYWRlIGxldmVsIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtLgorCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVz
KToKKworICAgICAgICBUYWtlIGNhc2NhZGUgbGF5ZXJzIGludG8gYWNjb3VueSB3aGVuIHNvcnRp
bmcgaW1wb3J0YW50IG1hdGNoZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrIGNvbnN0KTogRGVsZXRlZC4KKwor
ICAgICAgICBNb3ZlIHJvbGxiYWNrIGNhc2NhZGVzIHRvIEJ1aWxkZXIuCisKKyAgICAgICAgKiBz
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6Om1heGltdW1DYXNjYWRlTGV2ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6bWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IGNvbnN0
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkJ1aWxkZXI6OkJ1aWxkZXIpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZl
bHMgaW4gdGVybXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQg
b2YgbGV2ZWxzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlDYXNj
YWRlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorCisgICAgICAgIENvbnN0cnVjdCByb2xsYmFjayBjYXNjYWRlIGZvciAncmV2ZXJ0
LWxheWVyJyBjYXNlIHRvby4gVGhpcyBpcyBzaW1pbGFyIHRvICdyZXZlcnQnLgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2Nh
ZGVGb3JSZXZlcnRMYXllcik6CisKKyAgICAgICAgTWFrZSB0aGUgcm9sbGJhY2sgY2FzY2FkZXMg
YW5kIHN0b3JlIHRoZW0gaW50byBhIEhhc2hNYXAuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNv
bHZlcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6CisKKyAgICAgICAgQWRvcHQgdG8gdGhlIG5ldyBpbnRl
cmZhY2UuCisKIDIwMjEtMTEtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBuYXJyb3dlciB0eXBlcyBmb3Igc3R5bGUgc2NvcGUgb3JkaW5hbCBhbmQg
Y2FzY2FkZSBsYXllciBwcmlvcml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAppbmRleCA1MTQ4YTRjYjJlNDc1NDNjZWYxNzRhZDJiODAzMTAyYmI0MDlhMzdkLi44NWFhYzdk
M2Y1ZjI3YWYzYWE2NjJlYWEyNjMzMzkwNjc3OTllOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
SW5oZXJpdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJp
dDsgfQogICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09
IENTU1ZhbHVlVW5zZXQ7IH0KICAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVy
biB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKyAgICBib29sIGlzUmV2ZXJ0TGF5ZXJW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydExheWVyOyB9
CiAgICAgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuY3BwCmluZGV4IDRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMzMzY2MGQ4YzNj
ZmJjOGIuLjM5NmZjYmYyYTNjZWM4N2VlOGM4ZTVlMTRjMGU2N2E0ODE5MDBhNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmNwcApAQCAtNTEwLDYgKzUxMCwxMSBAQCBib29sIENTU1ZhbHVlOjppc1Jl
dmVydFZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlz
KSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0VmFsdWUoKTsK
IH0KIAorYm9vbCBDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpOworfQorCiBib29sIENTU1ZhbHVl
Ojppc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzQ1NT
V2lkZUtleXdvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMjllYTRiNmQxMTY2NDI5NmE3
N2YxZGQ5Njc2ZTYwMjhkNTdiZDUzYi4uMzM4ZWQ1NWQzYTM0NDhhMDA4MGE1Y2FkZDgyMzczZWJl
NWVlNTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVbnNldFZhbHVl
KCkgY29uc3Q7CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1Jl
dmVydExheWVyVmFsdWUoKSBjb25zdDsKICAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25z
dDsKICAgICBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAg
ICAgYm9vbCB0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGZkZGQ1OWY1ZjA4NTRjMzc3Mjhi
YjgyYWEzYTM2ZGI1ODlhZWY2MTQuLjgyMTEzMmQzZjBhOTE3M2FjYTViODczYmRjZTU2ZjA0Njc3
MTRiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01LDYgKzUs
NyBAQCBpbmhlcml0CiBpbml0aWFsCiB1bnNldAogcmV2ZXJ0CityZXZlcnQtbGF5ZXIKIAogLy8K
IC8vIENTU19QUk9QX09VVExJTkVfU1RZTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlcklkaW9tcy5oCmluZGV4IGRlZjIyMjAwOTI1NDRlNTZmYzk2MmYxMWNhMWU0ZjY0ZDEx
MjE4OTEuLmUyNTQyYWQyMGJkYTg5OTAzMjE4YWZmZjk2M2Q5OTlmN2ViZjM5OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAtNjAsMTIgKzYwLDIx
IEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVl
QWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK2lubGluZSBi
b29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewotICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsK
KyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSW5pdGlhbDoKKyAgICBj
YXNlIENTU1ZhbHVlSW5oZXJpdDoKKyAgICBjYXNlIENTU1ZhbHVlVW5zZXQ6CisgICAgY2FzZSBD
U1NWYWx1ZVJldmVydDoKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJ0TGF5ZXI6CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Owog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJ
RCB2YWx1ZUlEKQoraW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJ
RCB2YWx1ZUlEKQogewogICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhcyBhIENTUy13aWRl
IGtleXdvcmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGEgY3VzdG9tIGlkZW50aWZpZXIu
CiAgICAgcmV0dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NT
VmFsdWVEZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxl
dmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaAppbmRleCBhMmUzMmE4
NzE1Y2E3MmQ1ZjNiNWMwNDZkMjk3MDgxMTMzZWRlMzI2Li5jMmQyYTFiMTgyMGMwNWY1N2Q1ZGFl
OGZjMzM5ZjM1NDBlZDJiMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNj
YWRlTGV2ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaApAQCAt
MzYsNyArMzYsMTggQEAgZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50OF90IHsKICAgICBB
dXRob3IgICAgICA9IDEgPDwgMgogfTsKIAotc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8Q2Fz
Y2FkZUxldmVsPiBhbGxDYXNjYWRlTGV2ZWxzKCkgeyByZXR1cm4geyBDYXNjYWRlTGV2ZWw6OlVz
ZXJBZ2VudCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9OyB9Citp
bmxpbmUgQ2FzY2FkZUxldmVsJiBvcGVyYXRvci0tKENhc2NhZGVMZXZlbCYgbGV2ZWwpCit7Cisg
ICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpBdXRob3I6CisgICAg
ICAgIHJldHVybiBsZXZlbCA9IENhc2NhZGVMZXZlbDo6VXNlcjsKKyAgICBjYXNlIENhc2NhZGVM
ZXZlbDo6VXNlcjoKKyAgICAgICAgcmV0dXJuIGxldmVsID0gQ2FzY2FkZUxldmVsOjpVc2VyQWdl
bnQ7CisgICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBsZXZlbDsKKyAgICB9Cit9CiAKIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA2OWNl
MGJhZmIzNDdhODRmNTA0N2Q0ZGUzYjYxOGI1YTY5OWMzMWNiLi4xYTI3ZDdhMjcwYzlkMzMxYjQz
ZjZhYmQ3OTk3MmU0ZTUyMzEwZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6Y2xlYXJNYXRjaGVkUnVsZXMoKQogICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2Zlcklu
ZGV4ID0gMDsKIH0KIAotaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1l
bnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9v
bCBpc0NhY2hlYWJsZSkKK2lubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVt
ZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJvcGVydHlTZXQsIGJv
b2wgaXNDYWNoZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1dGUpCiB7
CiAgICAgaWYgKCFwcm9wZXJ0eVNldCB8fCBwcm9wZXJ0eVNldC0+aXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMzIsNyArMTMyLDkgQEAgaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWUKICAg
ICBpZiAoIWlzQ2FjaGVhYmxlKQogICAgICAgICBtX3Jlc3VsdC5pc0NhY2hlYWJsZSA9IGZhbHNl
OwogCi0gICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMoeyBwcm9wZXJ0eVNldCB9LCBEZWNsYXJhdGlv
bk9yaWdpbjo6QXV0aG9yKTsKKyAgICBhdXRvIG1hdGNoZWRQcm9wZXJ0eSA9IE1hdGNoZWRQcm9w
ZXJ0aWVzIHsgcHJvcGVydHlTZXQgfTsKKyAgICBtYXRjaGVkUHJvcGVydHkuZnJvbVN0eWxlQXR0
cmlidXRlID0gZnJvbVN0eWxlQXR0cmlidXRlOworICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKFdU
Rk1vdmUobWF0Y2hlZFByb3BlcnR5KSwgRGVjbGFyYXRpb25PcmlnaW46OkF1dGhvcik7CiB9CiAK
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1h
dGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0KQpAQCAtMjAxLDkgKzIwMywxMSBAQCB2b2lkIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxlcyhEZWNsYXJhdGlvbk9yaWdpbiBk
ZWNsYXJhdGlvbk9yaQogCiAgICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHsKICAgICAgICAg
ICAgICZtYXRjaGVkUnVsZS5ydWxlRGF0YS0+c3R5bGVSdWxlKCkucHJvcGVydGllcygpLAotICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5saW5r
TWF0Y2hUeXBlKCkpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4obWF0Y2hlZFJ1
bGUucnVsZURhdGEtPmxpbmtNYXRjaFR5cGUoKSksCiAgICAgICAgICAgICBtYXRjaGVkUnVsZS5y
dWxlRGF0YS0+cHJvcGVydHlBbGxvd2xpc3QoKSwKLSAgICAgICAgICAgIG1hdGNoZWRSdWxlLnN0
eWxlU2NvcGVPcmRpbmFsCisgICAgICAgICAgICBtYXRjaGVkUnVsZS5zdHlsZVNjb3BlT3JkaW5h
bCwKKyAgICAgICAgICAgIEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8sCisgICAgICAgICAgICBtYXRj
aGVkUnVsZS5jYXNjYWRlTGF5ZXJQcmlvcml0eQogICAgICAgICB9LCBkZWNsYXJhdGlvbk9yaWdp
bik7CiAgICAgfQogfQpAQCAtNTY2LDcgKzU3MCw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3BlcnRpZXMoYm9vbCBpbmNsdWRlU01JTFByb3Bl
CiAgICAgaWYgKGF1dG8qIGlubGluZVN0eWxlID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxl
bWVudCgpKS5pbmxpbmVTdHlsZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBNZWRpYSBjb250cm9s
IHNoYWRvdyB0cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBjYWNoaW5nLgogICAgICAg
ICBib29sIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSAhaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgp
ICYmICFlbGVtZW50KCkuaXNJblNoYWRvd1RyZWUoKTsKLSAgICAgICAgYWRkRWxlbWVudFN0eWxl
UHJvcGVydGllcyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSk7CisgICAgICAg
IGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoaW5saW5lU3R5bGUsIGlzSW5saW5lU3R5bGVDYWNo
ZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZTo6WWVzKTsKICAgICB9CiAKICAgICBpZiAoaW5jbHVk
ZVNNSUxQcm9wZXJ0aWVzICYmIGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQoKSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAppbmRleCBjMzUzMWRkOTA5OGRkMTFm
MzY1MjU1NjRjZjc2MjkxZWZmNWE0ZGEwLi44OTZlZTdlNTljZjc1MWFmMjM5NjQ5YWEwOTZhODA0
Mjg4MGM1MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlkTWF0Y2hVbmNvbW1vbkF0
dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaWRNYXRjaFVuY29tbW9uQXR0cmli
dXRlU2VsZWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVByb3Bl
cnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUpOwor
ICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
LCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSwgRnJvbVN0eWxlQXR0cmlidXRlID0gRnJvbVN0eWxl
QXR0cmlidXRlOjpObyk7CiAKICAgICB2b2lkIG1hdGNoVUFSdWxlcyhjb25zdCBSdWxlU2V0Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9NYXRjaFJlc3VsdC5oCmluZGV4IDQwNGZkM2U0MjhmNTY3OWUxYmZj
YzM2ZTA5N2VkNDRlMzA1ZDRmMGYuLjllOWEzNWRmZmY0ZjdiYzcwYWFhMjMzNjQ5NGFiOTc4MGJl
NmZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoUmVzdWx0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvTWF0Y2hSZXN1bHQuaApAQCAtMjUsNiArMjUsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJQcm9wZXJ0eUFsbG93bGlzdC5oIgorI2luY2x1ZGUg
IlJ1bGVTZXQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlT3JkaW5hbC5oIgpAQCAtMzIsMTEg
KzMzLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKK2VudW0gY2xhc3MgRnJv
bVN0eWxlQXR0cmlidXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKKwogc3RydWN0IE1hdGNoZWRQcm9w
ZXJ0aWVzIHsKICAgICBSZWZQdHI8Y29uc3QgU3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzOwot
ICAgIHVpbnQxNl90IGxpbmtNYXRjaFR5cGUgeyBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsIH07
CisgICAgdWludDhfdCBsaW5rTWF0Y2hUeXBlIHsgU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCB9
OwogICAgIFByb3BlcnR5QWxsb3dsaXN0IGFsbG93bGlzdFR5cGUgeyBQcm9wZXJ0eUFsbG93bGlz
dDo6Tm9uZSB9OwogICAgIFNjb3BlT3JkaW5hbCBzdHlsZVNjb3BlT3JkaW5hbCB7IFNjb3BlT3Jk
aW5hbDo6RWxlbWVudCB9OworICAgIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1
dGUgeyBGcm9tU3R5bGVBdHRyaWJ1dGU6Ok5vIH07CisgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkg
Y2FzY2FkZUxheWVyUHJpb3JpdHkgeyBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVu
bGF5ZXJlZCB9OwogfTsKIAogc3RydWN0IE1hdGNoUmVzdWx0IHsKQEAgLTY2LDcgKzcxLDkgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYSwgY29uc3Qg
TWF0Y2hlZFByb3BlcnRpZXMmIGIpCiAgICAgcmV0dXJuIGEucHJvcGVydGllcyA9PSBiLnByb3Bl
cnRpZXMKICAgICAgICAgJiYgYS5saW5rTWF0Y2hUeXBlID09IGIubGlua01hdGNoVHlwZQogICAg
ICAgICAmJiBhLmFsbG93bGlzdFR5cGUgPT0gYi5hbGxvd2xpc3RUeXBlCi0gICAgICAgICYmIGEu
c3R5bGVTY29wZU9yZGluYWwgPT0gYi5zdHlsZVNjb3BlT3JkaW5hbDsKKyAgICAgICAgJiYgYS5z
dHlsZVNjb3BlT3JkaW5hbCA9PSBiLnN0eWxlU2NvcGVPcmRpbmFsCisgICAgICAgICYmIGEuZnJv
bVN0eWxlQXR0cmlidXRlID09IGIuZnJvbVN0eWxlQXR0cmlidXRlCisgICAgICAgICYmIGEuY2Fz
Y2FkZUxheWVyUHJpb3JpdHkgPT0gYi5jYXNjYWRlTGF5ZXJQcmlvcml0eTsKIH0KIAogaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYSwgY29uc3QgTWF0Y2hl
ZFByb3BlcnRpZXMmIGIpCkBAIC03Niw3ICs4MywxNCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBhLCBjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYikK
IAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25zdCBNYXRjaGVkUHJvcGVydGll
cyYgbWF0Y2hlZFByb3BlcnRpZXMpCiB7Ci0gICAgYWRkKGhhc2hlciwgbWF0Y2hlZFByb3BlcnRp
ZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hlZFByb3BlcnRpZXMubGlua01hdGNoVHlwZSwgbWF0
Y2hlZFByb3BlcnRpZXMuYWxsb3dsaXN0VHlwZSwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29w
ZU9yZGluYWwpOworICAgIGFkZChoYXNoZXIsCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLnBy
b3BlcnRpZXMuZ2V0KCksCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUs
CisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmFsbG93bGlzdFR5cGUsCisgICAgICAgIG1hdGNo
ZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsLAorICAgICAgICBtYXRjaGVkUHJvcGVydGll
cy5mcm9tU3R5bGVBdHRyaWJ1dGUsCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmNhc2NhZGVM
YXllclByaW9yaXR5CisgICAgKTsKIH0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVy
LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJv
cGVydHlDYXNjYWRlLmNwcAppbmRleCA1MDUxNTI3YzYzYzIxNzA2YmFkZWQzYjUyYzkwNWVjZTFh
NGNmMjVlLi5kYWJkYTYwODc4YmEwYzA1NzdmMWQ0ZWJlY2E1YzI0YzM1MTg5NjdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKQEAgLTcxLDMwICs3MSwzNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQXBwbHlQcm9wZXJ0eUluUGFyc2VPcmRlcihDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQogfQogCi1Qcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5
Q2FzY2FkZShjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNjYWRl
TGV2ZWw+IGNhc2NhZGVMZXZlbHMsIEluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRp
ZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24pCitQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2Fk
ZShjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbCBtYXhpbXVtQ2Fz
Y2FkZUxldmVsLCBJbmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rp
b24gZGlyZWN0aW9uKQogICAgIDogbV9tYXRjaFJlc3VsdChtYXRjaFJlc3VsdCkKICAgICAsIG1f
aW5jbHVkZWRQcm9wZXJ0aWVzKGluY2x1ZGVkUHJvcGVydGllcykKKyAgICAsIG1fbWF4aW11bUNh
c2NhZGVMZXZlbChtYXhpbXVtQ2FzY2FkZUxldmVsKQogICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0
aW9uKQogewotICAgIGJ1aWxkQ2FzY2FkZShjYXNjYWRlTGV2ZWxzKTsKKyAgICBidWlsZENhc2Nh
ZGUoKTsKIH0KIAotUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVy
dHlDYXNjYWRlJiBwYXJlbnQsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMp
CitQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUm
IHBhcmVudCwgQ2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclBy
aW9yaXR5IG1heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSkKICAgICA6IG1fbWF0Y2hSZXN1bHQo
cGFyZW50Lm1fbWF0Y2hSZXN1bHQpCiAgICAgLCBtX2luY2x1ZGVkUHJvcGVydGllcyhwYXJlbnQu
bV9pbmNsdWRlZFByb3BlcnRpZXMpCisgICAgLCBtX21heGltdW1DYXNjYWRlTGV2ZWwobWF4aW11
bUNhc2NhZGVMZXZlbCkKKyAgICAsIG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5KG1heGlt
dW1DYXNjYWRlTGF5ZXJQcmlvcml0eSkKICAgICAsIG1fZGlyZWN0aW9uKHBhcmVudC5kaXJlY3Rp
b24oKSkKICAgICAsIG1fZGlyZWN0aW9uSXNVbnJlc29sdmVkKGZhbHNlKQogewotICAgIGJ1aWxk
Q2FzY2FkZShjYXNjYWRlTGV2ZWxzKTsKKyAgICBidWlsZENhc2NhZGUoKTsKIH0KIAogUHJvcGVy
dHlDYXNjYWRlOjp+UHJvcGVydHlDYXNjYWRlKCkgPSBkZWZhdWx0OwogCi12b2lkIFByb3BlcnR5
Q2FzY2FkZTo6YnVpbGRDYXNjYWRlKE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZl
bHMpCit2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YnVpbGRDYXNjYWRlKCkKIHsKICAgICBPcHRpb25T
ZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudDsKIAotICAgIGZvciAo
YXV0byBjYXNjYWRlTGV2ZWwgOiBjYXNjYWRlTGV2ZWxzKSB7CisgICAgZm9yIChhdXRvIGNhc2Nh
ZGVMZXZlbCA6IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6VXNlciwg
Q2FzY2FkZUxldmVsOjpBdXRob3IgfSkgeworICAgICAgICBpZiAoY2FzY2FkZUxldmVsID4gbV9t
YXhpbXVtQ2FzY2FkZUxldmVsKQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGJvb2wgaGFz
SW1wb3J0YW50ID0gYWRkTm9ybWFsTWF0Y2hlcyhjYXNjYWRlTGV2ZWwpOwogICAgICAgICBpZiAo
aGFzSW1wb3J0YW50KQogICAgICAgICAgICAgY2FzY2FkZUxldmVsc1dpdGhJbXBvcnRhbnQuYWRk
KGNhc2NhZGVMZXZlbCk7CkBAIC0xMTMsNiArMTE4LDggQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6
OnNldFByb3BlcnR5SW50ZXJuYWwoUHJvcGVydHkmIHByb3BlcnR5LCBDU1NQcm9wZXJ0eUlEIGlk
LAogICAgIHByb3BlcnR5LmlkID0gaWQ7CiAgICAgcHJvcGVydHkubGV2ZWwgPSBjYXNjYWRlTGV2
ZWw7CiAgICAgcHJvcGVydHkuc3R5bGVTY29wZU9yZGluYWwgPSBtYXRjaGVkUHJvcGVydGllcy5z
dHlsZVNjb3BlT3JkaW5hbDsKKyAgICBwcm9wZXJ0eS5jYXNjYWRlTGF5ZXJQcmlvcml0eSA9IG1h
dGNoZWRQcm9wZXJ0aWVzLmNhc2NhZGVMYXllclByaW9yaXR5OworCiAgICAgaWYgKG1hdGNoZWRQ
cm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUgPT0gU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCkgewog
ICAgICAgICBwcm9wZXJ0eS5jc3NWYWx1ZVswXSA9ICZjc3NWYWx1ZTsKICAgICAgICAgcHJvcGVy
dHkuY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmtdID0gJmNzc1ZhbHVlOwpAQCAt
MTcwLDYgKzE3Nyw5IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjpzZXREZWZlcnJlZChDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgY3NzVmFsdWUsIGNvbnN0IE1hCiAKIGJvb2wgUHJvcGVydHlD
YXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRp
ZXMsIENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KQogeworICAgIGlm
IChtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSA+IG1fbWF4aW11bUNhc2Nh
ZGVMYXllclByaW9yaXR5ICYmIGNhc2NhZGVMZXZlbCA9PSBtX21heGltdW1DYXNjYWRlTGV2ZWwg
JiYgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwgPT0gU2NvcGVPcmRpbmFsOjpF
bGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBhdXRvJiBzdHlsZVByb3BlcnRp
ZXMgPSAqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllczsKICAgICBhdXRvIHByb3BlcnR5QWxs
b3dsaXN0ID0gbWF0Y2hlZFByb3BlcnRpZXMuYWxsb3dsaXN0VHlwZTsKICAgICBib29sIGhhc0lt
cG9ydGFudFByb3BlcnRpZXMgPSBmYWxzZTsKQEAgLTIzNywxMiArMjQ3LDE0IEBAIHN0YXRpYyBi
b29sIGhhc0ltcG9ydGFudFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzJiBwcm9wZXJ0
aWVzKQogCiB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRl
TGV2ZWwgY2FzY2FkZUxldmVsKQogewotICAgIHN0cnVjdCBJbmRleEFuZE9yZGluYWwgeworICAg
IHN0cnVjdCBJbXBvcnRhbnRNYXRjaCB7CiAgICAgICAgIHVuc2lnbmVkIGluZGV4OwogICAgICAg
ICBTY29wZU9yZGluYWwgb3JkaW5hbDsKKyAgICAgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkgbGF5
ZXJQcmlvcml0eTsKKyAgICAgICAgRnJvbVN0eWxlQXR0cmlidXRlIGZyb21TdHlsZUF0dHJpYnV0
ZTsKICAgICB9OwotICAgIFZlY3RvcjxJbmRleEFuZE9yZGluYWw+IGltcG9ydGFudE1hdGNoZXM7
Ci0gICAgYm9vbCBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzID0gZmFsc2U7CisgICAgVmVjdG9y
PEltcG9ydGFudE1hdGNoPiBpbXBvcnRhbnRNYXRjaGVzOworICAgIGJvb2wgaGFzTWF0Y2hlc0Zy
b21PdGhlclNjb3Blc09yTGF5ZXJzID0gZmFsc2U7CiAKICAgICBhdXRvJiBtYXRjaGVkRGVjbGFy
YXRpb25zID0gZGVjbGFyYXRpb25zRm9yQ2FzY2FkZUxldmVsKG1fbWF0Y2hSZXN1bHQsIGNhc2Nh
ZGVMZXZlbCk7CiAKQEAgLTI1MiwyMCArMjY0LDI1IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjph
ZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwpCiAgICAgICAgIGlm
ICghaGFzSW1wb3J0YW50UHJvcGVydGllcygqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcykp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpbXBvcnRhbnRNYXRjaGVzLmFwcGVu
ZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsIH0pOworICAgICAgICBp
bXBvcnRhbnRNYXRjaGVzLmFwcGVuZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVP
cmRpbmFsLCBtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSwgbWF0Y2hlZFBy
b3BlcnRpZXMuZnJvbVN0eWxlQXR0cmlidXRlIH0pOwogCi0gICAgICAgIGlmIChtYXRjaGVkUHJv
cGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCAhPSBTY29wZU9yZGluYWw6OkVsZW1lbnQpCi0gICAg
ICAgICAgICBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKG1h
dGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsICE9IFNjb3BlT3JkaW5hbDo6RWxlbWVu
dCB8fCBtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSAhPSBSdWxlU2V0Ojpj
YXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCkKKyAgICAgICAgICAgIGhhc01hdGNoZXNG
cm9tT3RoZXJTY29wZXNPckxheWVycyA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKGltcG9ydGFu
dE1hdGNoZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaGFzTWF0Y2hl
c0Zyb21PdGhlclNjb3BlcykgewotICAgICAgICAvLyBGb3IgIWltcG9ydGFudCBwcm9wZXJ0aWVz
IGEgbGF0ZXIgc2hhZG93IHRyZWUgd2lucy4KKyAgICBpZiAoaGFzTWF0Y2hlc0Zyb21PdGhlclNj
b3Blc09yTGF5ZXJzKSB7CiAgICAgICAgIC8vIE1hdGNoIHJlc3VsdHMgYXJlIHNvcnRlZCBpbiBy
ZXZlcnNlIHRyZWUgY29udGV4dCBvcmRlciBzbyB0aGlzIGlzIG5vdCBuZWVkZWQgZm9yIG5vcm1h
bCBwcm9wZXJ0aWVzLgotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KGltcG9ydGFudE1hdGNoZXMu
YmVnaW4oKSwgaW1wb3J0YW50TWF0Y2hlcy5lbmQoKSwgW10gKGNvbnN0IEluZGV4QW5kT3JkaW5h
bCYgYSwgY29uc3QgSW5kZXhBbmRPcmRpbmFsJiBiKSB7Ci0gICAgICAgICAgICByZXR1cm4gYS5v
cmRpbmFsIDwgYi5vcmRpbmFsOworICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KGltcG9ydGFudE1h
dGNoZXMuYmVnaW4oKSwgaW1wb3J0YW50TWF0Y2hlcy5lbmQoKSwgW10gKGF1dG8mIGEsIGF1dG8m
IGIpIHsKKyAgICAgICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBz
aGFkb3cgdHJlZSB3aW5zLgorICAgICAgICAgICAgaWYgKGEub3JkaW5hbCAhPSBiLm9yZGluYWwp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGEub3JkaW5hbCA8IGIub3JkaW5hbDsKKyAgICAgICAg
ICAgIC8vIExvd2VyIHByaW9yaXR5IGxheWVyIHdpbnMsIGV4Y2VwdCBpZiBzdHlsZSBhdHRyaWJ1
dGUgaXMgaW52b2x2ZWQuCisgICAgICAgICAgICBpZiAoYS5mcm9tU3R5bGVBdHRyaWJ1dGUgIT0g
Yi5mcm9tU3R5bGVBdHRyaWJ1dGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGEuZnJvbVN0eWxl
QXR0cmlidXRlID09IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm87CisgICAgICAgICAgICByZXR1cm4g
YS5sYXllclByaW9yaXR5ID4gYi5sYXllclByaW9yaXR5OwogICAgICAgICB9KTsKICAgICB9CiAK
QEAgLTI3MywzMCArMjkwLDYgQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1h
dGNoZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKICAgICAgICAgYWRkTWF0Y2gobWF0Y2hl
ZERlY2xhcmF0aW9uc1ttYXRjaC5pbmRleF0sIGNhc2NhZGVMZXZlbCwgdHJ1ZSk7CiB9CiAKLWNv
bnN0IFByb3BlcnR5Q2FzY2FkZSogUHJvcGVydHlDYXNjYWRlOjpwcm9wZXJ0eUNhc2NhZGVGb3JS
b2xsYmFjayhDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsKSBjb25zdAotewotICAgIHN3aXRjaCAo
Y2FzY2FkZUxldmVsKSB7Ci0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OkF1dGhvcjoKLSAgICAgICAg
aWYgKCFtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZSkgewotICAgICAgICAgICAgYXV0byBjYXNjYWRl
TGV2ZWxzID0gT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4geyBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2Vu
dCwgQ2FzY2FkZUxldmVsOjpVc2VyIH07Ci0gICAgICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2Fz
Y2FkZSA9IG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPigqdGhpcywgY2FzY2FkZUxl
dmVscyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRl
LmdldCgpOwotCi0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXI6Ci0gICAgICAgIGlmICghbV91
c2VyUm9sbGJhY2tDYXNjYWRlKSB7Ci0gICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBP
cHRpb25TZXQ8Q2FzY2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50IH07Ci0gICAg
ICAgICAgICBtX3VzZXJSb2xsYmFja0Nhc2NhZGUgPSBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5
Q2FzY2FkZT4oKnRoaXMsIGNhc2NhZGVMZXZlbHMpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBtX3VzZXJSb2xsYmFja0Nhc2NhZGUuZ2V0KCk7Ci0KLSAgICBjYXNlIENhc2NhZGVMZXZlbDo6
VXNlckFnZW50OgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIFByb3BlcnR5Q2FzY2FkZTo6
RGlyZWN0aW9uIFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2Rl
KERpcmVjdGlvbiBpbmhlcml0ZWREaXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgRGlyZWN0aW9uIHJl
c3VsdCA9IGluaGVyaXRlZERpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1Byb3BlcnR5Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNj
YWRlLmgKaW5kZXggMWM2MDdmNDQxN2M3YzZjMGM3ZTZmMjM4MDk5MTRmOGI1NmZhNjE2MS4uNTFk
MjE3NjFjNzUwMzNjYTMzNmM2N2ZhODk5NTg3YWEwMjY1OTVkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUHJvcGVydHlDYXNjYWRlLmgKQEAgLTQ2LDggKzQ2LDggQEAgcHVibGljOgogICAgICAgICBX
cml0aW5nTW9kZSB3cml0aW5nTW9kZTsKICAgICB9OwogCi0gICAgUHJvcGVydHlDYXNjYWRlKGNv
bnN0IE1hdGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4sIEluY2x1ZGVkUHJvcGVy
dGllcywgRGlyZWN0aW9uKTsKLSAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNj
YWRlJiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4pOworICAgIFByb3BlcnR5Q2FzY2FkZShjb25z
dCBNYXRjaFJlc3VsdCYsIENhc2NhZGVMZXZlbCwgSW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rp
b24pOworICAgIFByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmLCBDYXNjYWRl
TGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IG1heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSA9
IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkKTsKIAogICAgIH5Qcm9w
ZXJ0eUNhc2NhZGUoKTsKIApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIENTU1By
b3BlcnR5SUQgaWQ7CiAgICAgICAgIENhc2NhZGVMZXZlbCBsZXZlbDsKICAgICAgICAgU2NvcGVP
cmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOworICAgICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBj
YXNjYWRlTGF5ZXJQcmlvcml0eTsKICAgICAgICAgQ1NTVmFsdWUqIGNzc1ZhbHVlWzNdOyAvLyBW
YWx1ZXMgZm9yIGxpbmsgbWF0Y2ggc3RhdGVzIE1hdGNoRGVmYXVsdCwgTWF0Y2hMaW5rIGFuZCBN
YXRjaFZpc2l0ZWQKICAgICB9OwogCkBAIC02OSwxMCArNzAsMTEgQEAgcHVibGljOgogCiAgICAg
RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCi0gICAgY29uc3QgUHJvcGVydHlDYXNjYWRl
KiBwcm9wZXJ0eUNhc2NhZGVGb3JSb2xsYmFjayhDYXNjYWRlTGV2ZWwpIGNvbnN0OworICAgIGF1
dG8gbWF4aW11bUNhc2NhZGVMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bUNhc2NhZGVM
ZXZlbDsgfQorICAgIGF1dG8gbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHk7IH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIGJ1aWxkQ2FzY2FkZShPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPik7CisgICAgdm9pZCBidWls
ZENhc2NhZGUoKTsKICAgICBib29sIGFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKICAg
ICB2b2lkIGFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKICAgICBib29sIGFkZE1h
dGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiwgQ2FzY2FkZUxldmVsLCBib29sIGltcG9ydGFu
dCk7CkBAIC04NSw2ICs4Nyw4IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBNYXRjaFJlc3VsdCYg
bV9tYXRjaFJlc3VsdDsKICAgICBjb25zdCBJbmNsdWRlZFByb3BlcnRpZXMgbV9pbmNsdWRlZFBy
b3BlcnRpZXM7CisgICAgY29uc3QgQ2FzY2FkZUxldmVsIG1fbWF4aW11bUNhc2NhZGVMZXZlbDsK
KyAgICBjb25zdCBDYXNjYWRlTGF5ZXJQcmlvcml0eSBtX21heGltdW1DYXNjYWRlTGF5ZXJQcmlv
cml0eSB7IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkIH07CiAgICAg
bXV0YWJsZSBEaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgbXV0YWJsZSBib29sIG1fZGlyZWN0
aW9uSXNVbnJlc29sdmVkIHsgdHJ1ZSB9OwogCkBAIC05Myw5ICs5Nyw2IEBAIHByaXZhdGU6CiAK
ICAgICBWZWN0b3I8UHJvcGVydHksIDg+IG1fZGVmZXJyZWRQcm9wZXJ0aWVzOwogICAgIEhhc2hN
YXA8QXRvbVN0cmluZywgUHJvcGVydHk+IG1fY3VzdG9tUHJvcGVydGllczsKLQotICAgIG11dGFi
bGUgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4gbV9hdXRob3JSb2xsYmFj
a0Nhc2NhZGU7Ci0gICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUHJvcGVydHlDYXNj
YWRlPiBtX3VzZXJSb2xsYmFja0Nhc2NhZGU7CiB9OwogCiBpbmxpbmUgYm9vbCBQcm9wZXJ0eUNh
c2NhZGU6Omhhc1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA5ZDZjNmI0Mzk5MGE4YTliZTEwYjYyMjczZDA3OTJi
OThiZTU4YTlkLi4zMzExM2RjMDE5Y2Q2NjU4ZDFlYzExNTQ5N2FlNDdmNDc2Zjk3ZjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKQEAgLTgwLDggKzgwLDggQEAgaW5saW5l
IGJvb2wgaXNWYWxpZFZpc2l0ZWRMaW5rUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLUJ1aWxkZXI6OkJ1aWxkZXIoUmVuZGVyU3R5bGUmIHN0eWxlLCBC
dWlsZGVyQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwg
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscywgUHJvcGVydHlDYXNjYWRlOjpJ
bmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVzKQotICAgIDogbV9jYXNjYWRlKG1h
dGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWxzLCBpbmNsdWRlZFByb3BlcnRpZXMsIGRpcmVjdGlvbkZy
b21TdHlsZShzdHlsZSkpCitCdWlsZGVyOjpCdWlsZGVyKFJlbmRlclN0eWxlJiBzdHlsZSwgQnVp
bGRlckNvbnRleHQmJiBjb250ZXh0LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIENh
c2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0
aWVzIGluY2x1ZGVkUHJvcGVydGllcykKKyAgICA6IG1fY2FzY2FkZShtYXRjaFJlc3VsdCwgY2Fz
Y2FkZUxldmVsLCBpbmNsdWRlZFByb3BlcnRpZXMsIGRpcmVjdGlvbkZyb21TdHlsZShzdHlsZSkp
CiAgICAgLCBtX3N0YXRlKCp0aGlzLCBzdHlsZSwgV1RGTW92ZShjb250ZXh0KSkKIHsKIH0KQEAg
LTEyMSwxNiArMTIxLDYgQEAgdm9pZCBCdWlsZGVyOjphcHBseUxvd1ByaW9yaXR5UHJvcGVydGll
cygpCiAgICAgQVNTRVJUKCFtX3N0YXRlLmZvbnREaXJ0eSgpKTsKIH0KIAotdm9pZCBCdWlsZGVy
OjphcHBseVByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZSog
dmFsdWUpCi17Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXBwbHlQ
cm9wZXJ0eShwcm9wZXJ0eUlELCAqdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZhdWx0
KTsKLQotICAgIG1fc3RhdGUudXBkYXRlRm9udCgpOwotfQotCiB2b2lkIEJ1aWxkZXI6OmFwcGx5
RGVmZXJyZWRQcm9wZXJ0aWVzKCkKIHsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5IDogbV9jYXNj
YWRlLmRlZmVycmVkUHJvcGVydGllcygpKQpAQCAtMjQ1LDYgKzIzNSw3IEBAIGlubGluZSB2b2lk
IEJ1aWxkZXI6OmFwcGx5Q2FzY2FkZVByb3BlcnR5KGNvbnN0IFByb3BlcnR5Q2FzY2FkZTo6UHJv
cGVydHkmIHByb3BlCiB7CiAgICAgbV9zdGF0ZS5tX2Nhc2NhZGVMZXZlbCA9IHByb3BlcnR5Lmxl
dmVsOwogICAgIG1fc3RhdGUubV9zdHlsZVNjb3BlT3JkaW5hbCA9IHByb3BlcnR5LnN0eWxlU2Nv
cGVPcmRpbmFsOworICAgIG1fc3RhdGUubV9jYXNjYWRlTGF5ZXJQcmlvcml0eSA9IHByb3BlcnR5
LmNhc2NhZGVMYXllclByaW9yaXR5OwogCiAgICAgYXV0byBhcHBseVdpdGhMaW5rTWF0Y2ggPSBb
Jl0oU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrIGxpbmtNYXRjaCkgewogICAgICAgICBp
ZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoXSkgewpAQCAtMjk1LDIxICsyODYsMjcgQEAg
dm9pZCBCdWlsZGVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiB2
YWx1ZSwgU2VsZWN0b3JDaGVja2VyOjoKIAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVlVG9BcHBs
eS0+aXNVbnNldFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlVW5z
ZXQ7CiAgICAgYm9vbCBpc1JldmVydCA9IHZhbHVlVG9BcHBseS0+aXNSZXZlcnRWYWx1ZSgpIHx8
IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsKKyAgICBib29sIGlzUmV2
ZXJ0TGF5ZXIgPSB2YWx1ZVRvQXBwbHktPmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpIHx8IGN1c3RvbVBy
b3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydExheWVyOworCisgICAgaWYgKGlzUmV2ZXJ0
IHx8IGlzUmV2ZXJ0TGF5ZXIpIHsKKyAgICAgICAgYXV0byogcm9sbGJhY2tDYXNjYWRlID0gaXNS
ZXZlcnQKKyAgICAgICAgICAgID8gZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KG1fc3Rh
dGUubV9jYXNjYWRlTGV2ZWwpCisgICAgICAgICAgICA6IGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZv
clJldmVydExheWVyKG1fc3RhdGUubV9jYXNjYWRlTGV2ZWwsIG1fc3RhdGUubV9jYXNjYWRlTGF5
ZXJQcmlvcml0eSk7CiAKLSAgICBpZiAoaXNSZXZlcnQpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJv
bGxiYWNrID0gbV9jYXNjYWRlLnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKG1fc3RhdGUubV9j
YXNjYWRlTGV2ZWwpKSB7CisgICAgICAgIGlmIChyb2xsYmFja0Nhc2NhZGUpIHsKICAgICAgICAg
ICAgIC8vIFdpdGggdGhlIHJvbGxiYWNrIGNhc2NhZGUgYnVpbHQsIHdlIG5lZWQgdG8gb2J0YWlu
IHRoZSBwcm9wZXJ0eSBhbmQgYXBwbHkgaXQuIElmIHRoZSBwcm9wZXJ0eSBpcwotICAgICAgICAg
ICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0LiIgT3RoZXJ3aXNl
IHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mCi0gICAgICAgICAgICAvLyBvdXIgb3du
LgorICAgICAgICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0
LiIgT3RoZXJ3aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG91ciBvd24uCisg
ICAgICAgICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGV2ZWxTY29wZShtX3N0YXRlLm1fY2FzY2Fk
ZUxldmVsLCByb2xsYmFja0Nhc2NhZGUtPm1heGltdW1DYXNjYWRlTGV2ZWwoKSk7CisgICAgICAg
ICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGF5ZXJQcmlvcml0eVNjb3BlKG1fc3RhdGUubV9jYXNj
YWRlTGF5ZXJQcmlvcml0eSwgcm9sbGJhY2tDYXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxheWVyUHJp
b3JpdHkoKSk7CiAgICAgICAgICAgICBpZiAoY3VzdG9tUHJvcGVydHlWYWx1ZSkgewotICAgICAg
ICAgICAgICAgIGlmIChjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgJiYgY3VzdG9tUHJvcGVydHlS
ZWdpc3RlcmVkLT5pbmhlcml0cyAmJiByb2xsYmFjay0+aGFzQ3VzdG9tUHJvcGVydHkoY3VzdG9t
UHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHByb3Bl
cnR5ID0gcm9sbGJhY2stPmN1c3RvbVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUo
KSk7CisgICAgICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCAmJiBjdXN0
b21Qcm9wZXJ0eVJlZ2lzdGVyZWQtPmluaGVyaXRzICYmIHJvbGxiYWNrQ2FzY2FkZS0+aGFzQ3Vz
dG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgeworICAgICAgICAgICAg
ICAgICAgICBhdXRvIHByb3BlcnR5ID0gcm9sbGJhY2tDYXNjYWRlLT5jdXN0b21Qcm9wZXJ0eShj
dXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAocHJv
cGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10pCiAgICAgICAgICAgICAgICAgICAgICAgICBh
cHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFz
a10sIGxpbmtNYXRjaE1hc2spOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFjay0+aGFzUHJvcGVydHko
aWQpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgcHJvcGVydHkgPSByb2xsYmFjay0+cHJvcGVy
dHkoaWQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFja0Nhc2NhZGUtPmhhc1Byb3Bl
cnR5KGlkKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnR5ID0gcm9sbGJhY2tDYXNj
YWRlLT5wcm9wZXJ0eShpZCk7CiAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVl
W2xpbmtNYXRjaE1hc2tdKQogICAgICAgICAgICAgICAgICAgICBhcHBseVByb3BlcnR5KHByb3Bl
cnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10sIGxpbmtNYXRjaE1hc2sp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM3Myw1ICszNzAsMzIgQEAgUmVmUHRyPENT
U1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eUlELCBjb25zdAogICAgIHJldHVybiBDU1NQYXJzZXIobV9zdGF0ZS5kb2N1bWVudCgpKS5w
YXJzZVZhbHVlV2l0aFZhcmlhYmxlUmVmZXJlbmNlcyhwcm9wZXJ0eUlELCB2YWx1ZSwgbV9zdGF0
ZSk7CiB9CiAKK2NvbnN0IFByb3BlcnR5Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tD
YXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCByb2xsYmFja0Nhc2NhZGVMZXZlbCkKK3sKKyAg
ICBpZiAocm9sbGJhY2tDYXNjYWRlTGV2ZWwgPT0gQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBtYWtlUm9sbGJhY2tDYXNj
YWRlS2V5KHJvbGxiYWNrQ2FzY2FkZUxldmVsLCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0
eUZvclVubGF5ZXJlZCk7CisgICAgcmV0dXJuIG1fcm9sbGJhY2tDYXNjYWRlcy5lbnN1cmUoa2V5
LCBbJl0geworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+
KG1fY2FzY2FkZSwgLS1yb2xsYmFja0Nhc2NhZGVMZXZlbCwgUnVsZVNldDo6Y2FzY2FkZUxheWVy
UHJpb3JpdHlGb3JVbmxheWVyZWQpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30K
KworY29uc3QgUHJvcGVydHlDYXNjYWRlKiBCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2NhZGVG
b3JSZXZlcnRMYXllcihDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlv
cml0eSByb2xsYmFja0xheWVyUHJpb3JpdHkpCit7CisgICAgaWYgKCFyb2xsYmFja0xheWVyUHJp
b3JpdHkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBtYWtlUm9s
bGJhY2tDYXNjYWRlS2V5KGNhc2NhZGVMZXZlbCwgcm9sbGJhY2tMYXllclByaW9yaXR5KTsKKyAg
ICByZXR1cm4gbV9yb2xsYmFja0Nhc2NhZGVzLmVuc3VyZShrZXksIFsmXSB7CisgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4obV9jYXNjYWRlLCBjYXNjYWRl
TGV2ZWwsIHJvbGxiYWNrTGF5ZXJQcmlvcml0eSAtIDEpOworICAgIH0pLml0ZXJhdG9yLT52YWx1
ZS5nZXQoKTsKK30KKworYXV0byBCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KENhc2Nh
ZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclBy
aW9yaXR5KSAtPiBSb2xsYmFja0Nhc2NhZGVLZXkKK3sKKyAgICByZXR1cm4geyBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oY2FzY2FkZUxldmVsKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhc2NhZGVM
YXllclByaW9yaXR5KSB9OworfQorCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5o
CmluZGV4IDEwYWU2NzYyMjU5NmUxNGE2NDFhMzAwZWFmMzhkZWJjM2QwYjJmNmQuLjc1ZjNhMjM2
YTE4YTYwODVjMzFhMzllMzcyYmI3MmRhZjIwODUxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QnVpbGRlci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBCdWls
ZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBCdWlsZGVy
KFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRp
b25TZXQ8Q2FzY2FkZUxldmVsPiwgUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXMg
PSBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllczo6QWxsKTsKKyAgICBCdWlsZGVy
KFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBDYXNj
YWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzID0gUHJvcGVydHlD
YXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CiAgICAgfkJ1aWxkZXIoKTsKIAogICAg
IHZvaWQgYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CkBAIC00NSw4ICs0NSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IGFwcGx5UHJv
cGVydGllcyhwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEKTsgfQogICAgIHZvaWQgYXBwbHlDdXN0b21Q
cm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgdm9pZCBhcHBseVByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKLQogICAgIEJ1aWxkZXJTdGF0ZSYgc3RhdGUo
KSB7IHJldHVybiBtX3N0YXRlOyB9CiAKIHByaXZhdGU6CkBAIC02Myw3ICs2MSwxNiBAQCBwcml2
YXRlOgogICAgIFJlZjxDU1NWYWx1ZT4gcmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU1Zh
bHVlJik7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJv
cGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmKTsKIAorICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSog
ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCk7CisgICAgY29uc3Qg
UHJvcGVydHlDYXNjYWRlKiBlbnN1cmVSb2xsYmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihDYXNj
YWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5KTsKKworICAgIHVzaW5nIFJvbGxiYWNrQ2Fz
Y2FkZUtleSA9IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+OworICAgIFJvbGxiYWNrQ2Fz
Y2FkZUtleSBtYWtlUm9sbGJhY2tDYXNjYWRlS2V5KENhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVy
UHJpb3JpdHkpOworCiAgICAgY29uc3QgUHJvcGVydHlDYXNjYWRlIG1fY2FzY2FkZTsKKyAgICAv
LyBSb2xsYmFjayBjYXNjYWRlcyBhcmUgYnVpbGQgb24gZGVtYW5kIHRvIHJlc29sdmUgJ3JldmVy
dCcgYW5kICdyZXZlcnQtbGF5ZXInIGtleXdvcmRzLgorICAgIEhhc2hNYXA8Um9sbGJhY2tDYXNj
YWRlS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUHJvcGVydHlDYXNjYWRlPj4gbV9yb2xsYmFj
a0Nhc2NhZGVzOworCiAgICAgQnVpbGRlclN0YXRlIG1fc3RhdGU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaAppbmRleCAyZWJjMWRiNzdiYzNkNmFhY2IyZjgy
MGMxNWVlN2Y5NGNkMjA4Yjk3Li5lYTFhNWI1MWRkOGEyZGVmMzY2NWQ2NWNkYjRkOWI1Y2MzYzli
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDU1NUb1N0eWxlTWFwLmgiCiAjaW5jbHVkZSAiQ2FzY2FkZUxl
dmVsLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAj
aW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgogCkBA
IC0xMzYsNiArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIENhc2NhZGVMZXZlbCBtX2Nhc2NhZGVM
ZXZlbCB7IH07CiAgICAgU2NvcGVPcmRpbmFsIG1fc3R5bGVTY29wZU9yZGluYWwgeyB9OworICAg
IENhc2NhZGVMYXllclByaW9yaXR5IG1fY2FzY2FkZUxheWVyUHJpb3JpdHkgeyB9OwogICAgIFNl
bGVjdG9yQ2hlY2tlcjo6TGlua01hdGNoTWFzayBtX2xpbmtNYXRjaCB7IH07CiAKICAgICBib29s
IG1fZm9udERpcnR5IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZDZhNjYyNWNmZmIwMWVlODMyY2ZjOTYyYjFkNDI2OGFkOGNjOGU5Zi4uOGVhMzlj
YmQwM2M4YTNhNGQ5MjY5ZDYwOGU4NTJhMzdhMzM2Y2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsCiAgICAgc3RhdGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCplbGVtZW50U3R5
bGUpKTsKICAgICBzdGF0ZS5zZXRQYXJlbnRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoY29u
dGV4dC5wYXJlbnRTdHlsZSA/ICpjb250ZXh0LnBhcmVudFN0eWxlIDogKmVsZW1lbnRTdHlsZSkp
OwogCi0gICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChz
dGF0ZSksIHJlc3VsdCwgeyBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1
aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNj
YWRlTGV2ZWw6OkF1dGhvcik7CiAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAog
ICAgIEFkanVzdGVyIGFkanVzdGVyKGRvY3VtZW50KCksICpzdGF0ZS5wYXJlbnRTdHlsZSgpLCBu
dWxscHRyLCBudWxscHRyKTsKQEAgLTQzNiw3ICs0MzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKIAogICAgIGF1
dG8mIHJlc3VsdCA9IGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpOwogCi0gICAgQnVpbGRlciBidWls
ZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIHJlc3VsdCwgeyBDYXNj
YWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCks
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNjYWRlTGV2ZWw6OkF1dGhvcik7CiAg
ICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgIC8vIE5vdyByZXR1cm4gdGhl
IHN0eWxlLgpAQCAtNTU1LDEzICs1NTUsMTMgQEAgdm9pZCBSZXNvbHZlcjo6YXBwbHlNYXRjaGVk
UHJvcGVydGllcyhTdGF0ZSYgc3RhdGUsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3UKICAg
ICAgICAgLy8gSWYgc28sIHdlIGNhY2hlIHRoZSBib3JkZXIgYW5kIGJhY2tncm91bmQgc3R5bGVz
IHNvIHRoYXQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKCkKICAgICAgICAgLy8gY2FuIGxvb2sg
YXQgdGhlbSBsYXRlciB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYSBzdHlsZWQgZm9ybSBjb250
cm9sIG9yIG5vdC4KICAgICAgICAgYXV0byB1c2VyQWdlbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cihzdHlsZSk7Ci0gICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUs
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpVc2Vy
QWdlbnQgfSk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUsIGJ1aWxk
ZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbDo6VXNlckFnZW50KTsK
ICAgICAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgICAgICBzdGF0ZS5z
ZXRVc2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUoV1RGTW92ZSh1c2VyQWdlbnRTdHlsZSkpOwogICAg
IH0KIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgYWxsQ2FzY2FkZUxldmVscygpLCBpbmNsdWRlZFByb3BlcnRp
ZXMpOworICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IsIGluY2x1ZGVkUHJvcGVy
dGllcyk7CiAKICAgICAvLyBIaWdoIHByaW9yaXR5IHByb3BlcnRpZXMgbWF5IGFmZmVjdCByZXNv
bHV0aW9uIG9mIG90aGVyIHByb3BlcnRpZXMgKHRoZXkgYXJlIG1vc3RseSBmb250IHJlbGF0ZWQp
LgogICAgIGJ1aWxkZXIuYXBwbHlIaWdoUHJpb3JpdHlQcm9wZXJ0aWVzKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTg3
ZjcxNzE5ZGMxODYwNWQ3MDU3OThmYzMzNzFjMGI3MGE5ZWJlZC4uZGJjNzFmYjA5Mzc0MzFmZDdk
OGEwMmZhNzA3MDdjZDJjYjlmYzdiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTA4
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2Nh
ZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTEtMTEgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVmYXVsdCBjb21wdXRlZCB2YWx1ZSBm
b3IgImNvbnRlbnQiIHNob3VsZCBiZSAibm9uZSIgZm9yIDo6YmVmb3JlIGFuZCA6OmFmdGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiY2E1MWM1NWJkMGFjZWRlN2FjOWVhYTMz
MzY1MzEyNzczOGExMDllLi44ZmRhM2E2NjYzMTdiOTA5NDE0MGExMGY3OGVmOTNmZWQ3NGYxMTQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0x
MS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBD
YXNjYWRlIExheWVyc10gU3VwcG9ydCAncmV2ZXJ0LWxheWVyJyB2YWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjM2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NDg3OTM2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1s
YXllci0wMDgtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTExLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIERlZmF1bHQgY29tcHV0ZWQgdmFsdWUgZm9yICJj
b250ZW50IiBzaG91bGQgYmUgIm5vbmUiIGZvciA6OmJlZm9yZSBhbmQgOjphZnRlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNjRmODA2ZmI0NWQzZjI0MWQ4MzMxYzczZDllOWQ2MzQ1ZDczNmQxYS4u
NjJmMGM4YjkzOTYyNDA3ZWYyNTg3MTFmZTAzMGM3NTYzNWIzMWY0NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0yMTQ5LDEzICsyMTQ5LDYgQEAgd2Via2l0Lm9yZy9iLzE0ODY1MCBmYXN0L3JlcGFp
bnQvYWRkLXRhYmxlLW92ZXJwYWludC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvaW1wb3J0YW50LXByb3AuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4NzA5MyBbIERlYnVnIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5p
dGlhbC14bWwuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDAxLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwMi5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDMuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA0Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwNS5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDYuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA3Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyMi1yZ2JhLW9uc2NyZWVuLWIueGh0IFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci90NDIyLXJnYmEtb25zY3JlZW4tbXVsdGlwbGUtYm94ZXMtYy54
aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50eHQKaW5kZXggNzE0
MWFjMGIwMzkwM2YyMjc2NDEzMzU4YzViZGI4NjYzNjYzODQ4Ny4uMTI3YjZmM2I1NDJiYmVhODg2
ODhjNDUzNjRmNjQ3Yzg3NzJmZjBkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwOC1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSwzIEBACiAKLUZBSUwgJ3JldmVydC1sYXllcicgc2hvdWxkIHJldmVydCBmb250LXNpemUg
dG8gMjBweCBhbmQgdHJpZ2dlciBhIHNtb290aCB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICIxNXB4IiBidXQgZ290ICIxMHB4IgorUEFTUyAncmV2ZXJ0LWxheWVyJyBzaG91bGQg
cmV2ZXJ0IGZvbnQtc2l6ZSB0byAyMHB4IGFuZCB0cmlnZ2VyIGEgc21vb3RoIHRyYW5zaXRpb24K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443921</attachid>
            <date>2021-11-11 01:44:07 -0800</date>
            <delta_ts>2021-11-11 04:24:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232236-20211111114406.patch</filename>
            <type>text/plain</type>
            <size>39779</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uNmY4NGNjODI1OGZjYjgxOWM1NDNhNmQyODg4Nzcy
NTAzZGE1MTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTExLTA4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2NhZGUgTGF5
ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkIHJvbGxzIGJhY2sgdGhlIHZhbHVlIGNvbXB1dGVkIGJ5
IHRoZSBjYXNjYWRlIHRvIHRoZSBvbmUgY29taW5nIGZyb20gdGhlIGxheWVyIGJlbG93LgorCisg
ICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY2FzY2FkZS01LyNyZXZlcnQtbGF5ZXIK
KworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKworICAgICAgICBBZGQgYSAncmV2ZXJ0LWxheWVyJyBrZXl3b3JkLgor
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzQ1NTV2lkZUtleXdvcmQpOgorCisgICAgICAgIE1ha2UgdGhlIGtleXdvcmQgQ1NTLXdp
ZGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDdXN0b21JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdHlsZS9DYXNjYWRlTGV2ZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpvcGVy
YXRvci0tKToKKworICAgICAgICBBZGQgZGVjcmVtZW50IG9wZXJhdG9yLgorCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6YWxsQ2FzY2FkZUxldmVscyk6IERlbGV0ZWQuCisgICAgICAgICogc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVs
ZXMpOgorCisgICAgICAgIFBhc3MgdGhlIGNhc2RhZGUgbGF5ZXIgcHJpb3JpdHkgc28gaXQgaXMg
YXZhaWxhYmxlIHdoZW4gcmVzb2x2aW5nIHRoZSBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3Bl
cnRpZXMpOgorCisgICAgICAgIEFkZCBhIGJpdCBpbmRpY2F0aW5nIGlmIHRoZSBwcm9wZXJ0aWVz
IGNhbWUgZnJvbSBhIHN0eWxlIGF0dHJpYnV0ZS4gVGhpcyBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qg
cmVzb2x1dGlvbiBvZiAhaW1wb3J0YW50IHdpdGggY2FzY2FkZSBsYXllcnMuCisKKyAgICAgICAg
KiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQ
cm9wZXJ0eUNhc2NhZGUpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZlbHMgaW4gdGVy
bXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQgb2YgbGV2ZWxz
LiBUaGlzIG1ha2VzIHRoaW5ncyBzaW1wbGVyLgorICAgICAgICBNYWtlIGl0IGEgbWVtYmVyLgor
ICAgICAgICBQcm92aWRlIG1heGltdW0gY2FzY2FkZSBsYXllciBwcmlvcml0eSB3aGVuIGNvbnN0
cnVjdGluZyByb2xsYmFjayBjYXNjYWRlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJv
cGVydHlDYXNjYWRlOjpidWlsZENhc2NhZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBy
b3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaCk6CisKKyAgICAgICAgSWdub3JlIHByb3Bl
cnRpZXMgd2l0aCBjYXNjYWRlIGxldmVsIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtLgorCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVz
KToKKworICAgICAgICBUYWtlIGNhc2NhZGUgbGF5ZXJzIGludG8gYWNjb3VueSB3aGVuIHNvcnRp
bmcgaW1wb3J0YW50IG1hdGNoZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrIGNvbnN0KTogRGVsZXRlZC4KKwor
ICAgICAgICBNb3ZlIHJvbGxiYWNrIGNhc2NhZGVzIHRvIEJ1aWxkZXIuCisKKyAgICAgICAgKiBz
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6Om1heGltdW1DYXNjYWRlTGV2ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6bWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IGNvbnN0
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkJ1aWxkZXI6OkJ1aWxkZXIpOgorCisgICAgICAgIFNwZWNpZnkgY2FzY2FkZSBsZXZl
bHMgaW4gdGVybXMgb2YgdGhlIG1heGltdW0gbGV2ZWwgaW5zdGVhZCBvZiBhbiBPcHRpb25TZXQg
b2YgbGV2ZWxzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlDYXNj
YWRlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorCisgICAgICAgIENvbnN0cnVjdCByb2xsYmFjayBjYXNjYWRlIGZvciAncmV2ZXJ0
LWxheWVyJyBjYXNlIHRvby4gVGhpcyBpcyBzaW1pbGFyIHRvICdyZXZlcnQnLgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2Nh
ZGVGb3JSZXZlcnRMYXllcik6CisKKyAgICAgICAgTWFrZSB0aGUgcm9sbGJhY2sgY2FzY2FkZXMg
YW5kIHN0b3JlIHRoZW0gaW50byBhIEhhc2hNYXAuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNv
bHZlcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6CisKKyAgICAgICAgQWRvcHQgdG8gdGhlIG5ldyBpbnRl
cmZhY2UuCisKIDIwMjEtMTEtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBuYXJyb3dlciB0eXBlcyBmb3Igc3R5bGUgc2NvcGUgb3JkaW5hbCBhbmQg
Y2FzY2FkZSBsYXllciBwcmlvcml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAppbmRleCA1MTQ4YTRjYjJlNDc1NDNjZWYxNzRhZDJiODAzMTAyYmI0MDlhMzdkLi44NWFhYzdk
M2Y1ZjI3YWYzYWE2NjJlYWEyNjMzMzkwNjc3OTllOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
SW5oZXJpdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJp
dDsgfQogICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09
IENTU1ZhbHVlVW5zZXQ7IH0KICAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVy
biB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKyAgICBib29sIGlzUmV2ZXJ0TGF5ZXJW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydExheWVyOyB9
CiAgICAgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuY3BwCmluZGV4IDRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMzMzY2MGQ4YzNj
ZmJjOGIuLjM5NmZjYmYyYTNjZWM4N2VlOGM4ZTVlMTRjMGU2N2E0ODE5MDBhNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmNwcApAQCAtNTEwLDYgKzUxMCwxMSBAQCBib29sIENTU1ZhbHVlOjppc1Jl
dmVydFZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlz
KSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0VmFsdWUoKTsK
IH0KIAorYm9vbCBDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpOworfQorCiBib29sIENTU1ZhbHVl
Ojppc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzQ1NT
V2lkZUtleXdvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMjllYTRiNmQxMTY2NDI5NmE3
N2YxZGQ5Njc2ZTYwMjhkNTdiZDUzYi4uMzM4ZWQ1NWQzYTM0NDhhMDA4MGE1Y2FkZDgyMzczZWJl
NWVlNTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVbnNldFZhbHVl
KCkgY29uc3Q7CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1Jl
dmVydExheWVyVmFsdWUoKSBjb25zdDsKICAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25z
dDsKICAgICBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAg
ICAgYm9vbCB0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGZkZGQ1OWY1ZjA4NTRjMzc3Mjhi
YjgyYWEzYTM2ZGI1ODlhZWY2MTQuLjgyMTEzMmQzZjBhOTE3M2FjYTViODczYmRjZTU2ZjA0Njc3
MTRiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01LDYgKzUs
NyBAQCBpbmhlcml0CiBpbml0aWFsCiB1bnNldAogcmV2ZXJ0CityZXZlcnQtbGF5ZXIKIAogLy8K
IC8vIENTU19QUk9QX09VVExJTkVfU1RZTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlcklkaW9tcy5oCmluZGV4IGRlZjIyMjAwOTI1NDRlNTZmYzk2MmYxMWNhMWU0ZjY0ZDEx
MjE4OTEuLmUyNTQyYWQyMGJkYTg5OTAzMjE4YWZmZjk2M2Q5OTlmN2ViZjM5OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAtNjAsMTIgKzYwLDIx
IEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVl
QWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK2lubGluZSBi
b29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewotICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsK
KyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSW5pdGlhbDoKKyAgICBj
YXNlIENTU1ZhbHVlSW5oZXJpdDoKKyAgICBjYXNlIENTU1ZhbHVlVW5zZXQ6CisgICAgY2FzZSBD
U1NWYWx1ZVJldmVydDoKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJ0TGF5ZXI6CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Owog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJ
RCB2YWx1ZUlEKQoraW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJ
RCB2YWx1ZUlEKQogewogICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhcyBhIENTUy13aWRl
IGtleXdvcmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGEgY3VzdG9tIGlkZW50aWZpZXIu
CiAgICAgcmV0dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NT
VmFsdWVEZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxl
dmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaAppbmRleCBhMmUzMmE4
NzE1Y2E3MmQ1ZjNiNWMwNDZkMjk3MDgxMTMzZWRlMzI2Li5jMmQyYTFiMTgyMGMwNWY1N2Q1ZGFl
OGZjMzM5ZjM1NDBlZDJiMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNj
YWRlTGV2ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaApAQCAt
MzYsNyArMzYsMTggQEAgZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50OF90IHsKICAgICBB
dXRob3IgICAgICA9IDEgPDwgMgogfTsKIAotc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8Q2Fz
Y2FkZUxldmVsPiBhbGxDYXNjYWRlTGV2ZWxzKCkgeyByZXR1cm4geyBDYXNjYWRlTGV2ZWw6OlVz
ZXJBZ2VudCwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9OyB9Citp
bmxpbmUgQ2FzY2FkZUxldmVsJiBvcGVyYXRvci0tKENhc2NhZGVMZXZlbCYgbGV2ZWwpCit7Cisg
ICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpBdXRob3I6CisgICAg
ICAgIHJldHVybiBsZXZlbCA9IENhc2NhZGVMZXZlbDo6VXNlcjsKKyAgICBjYXNlIENhc2NhZGVM
ZXZlbDo6VXNlcjoKKyAgICAgICAgcmV0dXJuIGxldmVsID0gQ2FzY2FkZUxldmVsOjpVc2VyQWdl
bnQ7CisgICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBsZXZlbDsKKyAgICB9Cit9CiAKIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA2OWNl
MGJhZmIzNDdhODRmNTA0N2Q0ZGUzYjYxOGI1YTY5OWMzMWNiLi4xYTI3ZDdhMjcwYzlkMzMxYjQz
ZjZhYmQ3OTk3MmU0ZTUyMzEwZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6Y2xlYXJNYXRjaGVkUnVsZXMoKQogICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2Zlcklu
ZGV4ID0gMDsKIH0KIAotaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1l
bnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9v
bCBpc0NhY2hlYWJsZSkKK2lubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVt
ZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJvcGVydHlTZXQsIGJv
b2wgaXNDYWNoZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1dGUpCiB7
CiAgICAgaWYgKCFwcm9wZXJ0eVNldCB8fCBwcm9wZXJ0eVNldC0+aXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMzIsNyArMTMyLDkgQEAgaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWUKICAg
ICBpZiAoIWlzQ2FjaGVhYmxlKQogICAgICAgICBtX3Jlc3VsdC5pc0NhY2hlYWJsZSA9IGZhbHNl
OwogCi0gICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMoeyBwcm9wZXJ0eVNldCB9LCBEZWNsYXJhdGlv
bk9yaWdpbjo6QXV0aG9yKTsKKyAgICBhdXRvIG1hdGNoZWRQcm9wZXJ0eSA9IE1hdGNoZWRQcm9w
ZXJ0aWVzIHsgcHJvcGVydHlTZXQgfTsKKyAgICBtYXRjaGVkUHJvcGVydHkuZnJvbVN0eWxlQXR0
cmlidXRlID0gZnJvbVN0eWxlQXR0cmlidXRlOworICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKFdU
Rk1vdmUobWF0Y2hlZFByb3BlcnR5KSwgRGVjbGFyYXRpb25PcmlnaW46OkF1dGhvcik7CiB9CiAK
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1h
dGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0KQpAQCAtMjAxLDkgKzIwMywxMSBAQCB2b2lkIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxlcyhEZWNsYXJhdGlvbk9yaWdpbiBk
ZWNsYXJhdGlvbk9yaQogCiAgICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHsKICAgICAgICAg
ICAgICZtYXRjaGVkUnVsZS5ydWxlRGF0YS0+c3R5bGVSdWxlKCkucHJvcGVydGllcygpLAotICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5saW5r
TWF0Y2hUeXBlKCkpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4obWF0Y2hlZFJ1
bGUucnVsZURhdGEtPmxpbmtNYXRjaFR5cGUoKSksCiAgICAgICAgICAgICBtYXRjaGVkUnVsZS5y
dWxlRGF0YS0+cHJvcGVydHlBbGxvd2xpc3QoKSwKLSAgICAgICAgICAgIG1hdGNoZWRSdWxlLnN0
eWxlU2NvcGVPcmRpbmFsCisgICAgICAgICAgICBtYXRjaGVkUnVsZS5zdHlsZVNjb3BlT3JkaW5h
bCwKKyAgICAgICAgICAgIEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8sCisgICAgICAgICAgICBtYXRj
aGVkUnVsZS5jYXNjYWRlTGF5ZXJQcmlvcml0eQogICAgICAgICB9LCBkZWNsYXJhdGlvbk9yaWdp
bik7CiAgICAgfQogfQpAQCAtNTY2LDcgKzU3MCw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3BlcnRpZXMoYm9vbCBpbmNsdWRlU01JTFByb3Bl
CiAgICAgaWYgKGF1dG8qIGlubGluZVN0eWxlID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxl
bWVudCgpKS5pbmxpbmVTdHlsZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBNZWRpYSBjb250cm9s
IHNoYWRvdyB0cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBjYWNoaW5nLgogICAgICAg
ICBib29sIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSAhaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgp
ICYmICFlbGVtZW50KCkuaXNJblNoYWRvd1RyZWUoKTsKLSAgICAgICAgYWRkRWxlbWVudFN0eWxl
UHJvcGVydGllcyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSk7CisgICAgICAg
IGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoaW5saW5lU3R5bGUsIGlzSW5saW5lU3R5bGVDYWNo
ZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZTo6WWVzKTsKICAgICB9CiAKICAgICBpZiAoaW5jbHVk
ZVNNSUxQcm9wZXJ0aWVzICYmIGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQoKSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAppbmRleCBjMzUzMWRkOTA5OGRkMTFm
MzY1MjU1NjRjZjc2MjkxZWZmNWE0ZGEwLi44OTZlZTdlNTljZjc1MWFmMjM5NjQ5YWEwOTZhODA0
Mjg4MGM1MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlkTWF0Y2hVbmNvbW1vbkF0
dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaWRNYXRjaFVuY29tbW9uQXR0cmli
dXRlU2VsZWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVByb3Bl
cnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUpOwor
ICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
LCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSwgRnJvbVN0eWxlQXR0cmlidXRlID0gRnJvbVN0eWxl
QXR0cmlidXRlOjpObyk7CiAKICAgICB2b2lkIG1hdGNoVUFSdWxlcyhjb25zdCBSdWxlU2V0Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9NYXRjaFJlc3VsdC5oCmluZGV4IDQwNGZkM2U0MjhmNTY3OWUxYmZj
YzM2ZTA5N2VkNDRlMzA1ZDRmMGYuLjllOWEzNWRmZmY0ZjdiYzcwYWFhMjMzNjQ5NGFiOTc4MGJl
NmZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoUmVzdWx0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvTWF0Y2hSZXN1bHQuaApAQCAtMjUsNiArMjUsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJQcm9wZXJ0eUFsbG93bGlzdC5oIgorI2luY2x1ZGUg
IlJ1bGVTZXQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlT3JkaW5hbC5oIgpAQCAtMzIsMTEg
KzMzLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKK2VudW0gY2xhc3MgRnJv
bVN0eWxlQXR0cmlidXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKKwogc3RydWN0IE1hdGNoZWRQcm9w
ZXJ0aWVzIHsKICAgICBSZWZQdHI8Y29uc3QgU3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzOwot
ICAgIHVpbnQxNl90IGxpbmtNYXRjaFR5cGUgeyBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsIH07
CisgICAgdWludDhfdCBsaW5rTWF0Y2hUeXBlIHsgU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCB9
OwogICAgIFByb3BlcnR5QWxsb3dsaXN0IGFsbG93bGlzdFR5cGUgeyBQcm9wZXJ0eUFsbG93bGlz
dDo6Tm9uZSB9OwogICAgIFNjb3BlT3JkaW5hbCBzdHlsZVNjb3BlT3JkaW5hbCB7IFNjb3BlT3Jk
aW5hbDo6RWxlbWVudCB9OworICAgIEZyb21TdHlsZUF0dHJpYnV0ZSBmcm9tU3R5bGVBdHRyaWJ1
dGUgeyBGcm9tU3R5bGVBdHRyaWJ1dGU6Ok5vIH07CisgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkg
Y2FzY2FkZUxheWVyUHJpb3JpdHkgeyBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVu
bGF5ZXJlZCB9OwogfTsKIAogc3RydWN0IE1hdGNoUmVzdWx0IHsKQEAgLTY2LDcgKzcxLDkgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYSwgY29uc3Qg
TWF0Y2hlZFByb3BlcnRpZXMmIGIpCiAgICAgcmV0dXJuIGEucHJvcGVydGllcyA9PSBiLnByb3Bl
cnRpZXMKICAgICAgICAgJiYgYS5saW5rTWF0Y2hUeXBlID09IGIubGlua01hdGNoVHlwZQogICAg
ICAgICAmJiBhLmFsbG93bGlzdFR5cGUgPT0gYi5hbGxvd2xpc3RUeXBlCi0gICAgICAgICYmIGEu
c3R5bGVTY29wZU9yZGluYWwgPT0gYi5zdHlsZVNjb3BlT3JkaW5hbDsKKyAgICAgICAgJiYgYS5z
dHlsZVNjb3BlT3JkaW5hbCA9PSBiLnN0eWxlU2NvcGVPcmRpbmFsCisgICAgICAgICYmIGEuZnJv
bVN0eWxlQXR0cmlidXRlID09IGIuZnJvbVN0eWxlQXR0cmlidXRlCisgICAgICAgICYmIGEuY2Fz
Y2FkZUxheWVyUHJpb3JpdHkgPT0gYi5jYXNjYWRlTGF5ZXJQcmlvcml0eTsKIH0KIAogaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYSwgY29uc3QgTWF0Y2hl
ZFByb3BlcnRpZXMmIGIpCkBAIC03Niw3ICs4MywxNCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBhLCBjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgYikK
IAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25zdCBNYXRjaGVkUHJvcGVydGll
cyYgbWF0Y2hlZFByb3BlcnRpZXMpCiB7Ci0gICAgYWRkKGhhc2hlciwgbWF0Y2hlZFByb3BlcnRp
ZXMucHJvcGVydGllcy5nZXQoKSwgbWF0Y2hlZFByb3BlcnRpZXMubGlua01hdGNoVHlwZSwgbWF0
Y2hlZFByb3BlcnRpZXMuYWxsb3dsaXN0VHlwZSwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29w
ZU9yZGluYWwpOworICAgIGFkZChoYXNoZXIsCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLnBy
b3BlcnRpZXMuZ2V0KCksCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUs
CisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmFsbG93bGlzdFR5cGUsCisgICAgICAgIG1hdGNo
ZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsLAorICAgICAgICBtYXRjaGVkUHJvcGVydGll
cy5mcm9tU3R5bGVBdHRyaWJ1dGUsCisgICAgICAgIG1hdGNoZWRQcm9wZXJ0aWVzLmNhc2NhZGVM
YXllclByaW9yaXR5CisgICAgKTsKIH0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVy
LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJv
cGVydHlDYXNjYWRlLmNwcAppbmRleCA1MDUxNTI3YzYzYzIxNzA2YmFkZWQzYjUyYzkwNWVjZTFh
NGNmMjVlLi5kYWJkYTYwODc4YmEwYzA1NzdmMWQ0ZWJlY2E1YzI0YzM1MTg5NjdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKQEAgLTcxLDMwICs3MSwzNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQXBwbHlQcm9wZXJ0eUluUGFyc2VPcmRlcihDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQogfQogCi1Qcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5
Q2FzY2FkZShjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNjYWRl
TGV2ZWw+IGNhc2NhZGVMZXZlbHMsIEluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRp
ZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24pCitQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2Fk
ZShjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbCBtYXhpbXVtQ2Fz
Y2FkZUxldmVsLCBJbmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rp
b24gZGlyZWN0aW9uKQogICAgIDogbV9tYXRjaFJlc3VsdChtYXRjaFJlc3VsdCkKICAgICAsIG1f
aW5jbHVkZWRQcm9wZXJ0aWVzKGluY2x1ZGVkUHJvcGVydGllcykKKyAgICAsIG1fbWF4aW11bUNh
c2NhZGVMZXZlbChtYXhpbXVtQ2FzY2FkZUxldmVsKQogICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0
aW9uKQogewotICAgIGJ1aWxkQ2FzY2FkZShjYXNjYWRlTGV2ZWxzKTsKKyAgICBidWlsZENhc2Nh
ZGUoKTsKIH0KIAotUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVy
dHlDYXNjYWRlJiBwYXJlbnQsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMp
CitQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUm
IHBhcmVudCwgQ2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclBy
aW9yaXR5IG1heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSkKICAgICA6IG1fbWF0Y2hSZXN1bHQo
cGFyZW50Lm1fbWF0Y2hSZXN1bHQpCiAgICAgLCBtX2luY2x1ZGVkUHJvcGVydGllcyhwYXJlbnQu
bV9pbmNsdWRlZFByb3BlcnRpZXMpCisgICAgLCBtX21heGltdW1DYXNjYWRlTGV2ZWwobWF4aW11
bUNhc2NhZGVMZXZlbCkKKyAgICAsIG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5KG1heGlt
dW1DYXNjYWRlTGF5ZXJQcmlvcml0eSkKICAgICAsIG1fZGlyZWN0aW9uKHBhcmVudC5kaXJlY3Rp
b24oKSkKICAgICAsIG1fZGlyZWN0aW9uSXNVbnJlc29sdmVkKGZhbHNlKQogewotICAgIGJ1aWxk
Q2FzY2FkZShjYXNjYWRlTGV2ZWxzKTsKKyAgICBidWlsZENhc2NhZGUoKTsKIH0KIAogUHJvcGVy
dHlDYXNjYWRlOjp+UHJvcGVydHlDYXNjYWRlKCkgPSBkZWZhdWx0OwogCi12b2lkIFByb3BlcnR5
Q2FzY2FkZTo6YnVpbGRDYXNjYWRlKE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZl
bHMpCit2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YnVpbGRDYXNjYWRlKCkKIHsKICAgICBPcHRpb25T
ZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudDsKIAotICAgIGZvciAo
YXV0byBjYXNjYWRlTGV2ZWwgOiBjYXNjYWRlTGV2ZWxzKSB7CisgICAgZm9yIChhdXRvIGNhc2Nh
ZGVMZXZlbCA6IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6VXNlciwg
Q2FzY2FkZUxldmVsOjpBdXRob3IgfSkgeworICAgICAgICBpZiAoY2FzY2FkZUxldmVsID4gbV9t
YXhpbXVtQ2FzY2FkZUxldmVsKQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGJvb2wgaGFz
SW1wb3J0YW50ID0gYWRkTm9ybWFsTWF0Y2hlcyhjYXNjYWRlTGV2ZWwpOwogICAgICAgICBpZiAo
aGFzSW1wb3J0YW50KQogICAgICAgICAgICAgY2FzY2FkZUxldmVsc1dpdGhJbXBvcnRhbnQuYWRk
KGNhc2NhZGVMZXZlbCk7CkBAIC0xMTMsNiArMTE4LDggQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6
OnNldFByb3BlcnR5SW50ZXJuYWwoUHJvcGVydHkmIHByb3BlcnR5LCBDU1NQcm9wZXJ0eUlEIGlk
LAogICAgIHByb3BlcnR5LmlkID0gaWQ7CiAgICAgcHJvcGVydHkubGV2ZWwgPSBjYXNjYWRlTGV2
ZWw7CiAgICAgcHJvcGVydHkuc3R5bGVTY29wZU9yZGluYWwgPSBtYXRjaGVkUHJvcGVydGllcy5z
dHlsZVNjb3BlT3JkaW5hbDsKKyAgICBwcm9wZXJ0eS5jYXNjYWRlTGF5ZXJQcmlvcml0eSA9IG1h
dGNoZWRQcm9wZXJ0aWVzLmNhc2NhZGVMYXllclByaW9yaXR5OworCiAgICAgaWYgKG1hdGNoZWRQ
cm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUgPT0gU2VsZWN0b3JDaGVja2VyOjpNYXRjaEFsbCkgewog
ICAgICAgICBwcm9wZXJ0eS5jc3NWYWx1ZVswXSA9ICZjc3NWYWx1ZTsKICAgICAgICAgcHJvcGVy
dHkuY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmtdID0gJmNzc1ZhbHVlOwpAQCAt
MTcwLDYgKzE3Nyw5IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjpzZXREZWZlcnJlZChDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgY3NzVmFsdWUsIGNvbnN0IE1hCiAKIGJvb2wgUHJvcGVydHlD
YXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRp
ZXMsIENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KQogeworICAgIGlm
IChtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSA+IG1fbWF4aW11bUNhc2Nh
ZGVMYXllclByaW9yaXR5ICYmIGNhc2NhZGVMZXZlbCA9PSBtX21heGltdW1DYXNjYWRlTGV2ZWwg
JiYgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwgPT0gU2NvcGVPcmRpbmFsOjpF
bGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBhdXRvJiBzdHlsZVByb3BlcnRp
ZXMgPSAqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllczsKICAgICBhdXRvIHByb3BlcnR5QWxs
b3dsaXN0ID0gbWF0Y2hlZFByb3BlcnRpZXMuYWxsb3dsaXN0VHlwZTsKICAgICBib29sIGhhc0lt
cG9ydGFudFByb3BlcnRpZXMgPSBmYWxzZTsKQEAgLTIzNywxMiArMjQ3LDE0IEBAIHN0YXRpYyBi
b29sIGhhc0ltcG9ydGFudFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzJiBwcm9wZXJ0
aWVzKQogCiB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRl
TGV2ZWwgY2FzY2FkZUxldmVsKQogewotICAgIHN0cnVjdCBJbmRleEFuZE9yZGluYWwgeworICAg
IHN0cnVjdCBJbXBvcnRhbnRNYXRjaCB7CiAgICAgICAgIHVuc2lnbmVkIGluZGV4OwogICAgICAg
ICBTY29wZU9yZGluYWwgb3JkaW5hbDsKKyAgICAgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkgbGF5
ZXJQcmlvcml0eTsKKyAgICAgICAgRnJvbVN0eWxlQXR0cmlidXRlIGZyb21TdHlsZUF0dHJpYnV0
ZTsKICAgICB9OwotICAgIFZlY3RvcjxJbmRleEFuZE9yZGluYWw+IGltcG9ydGFudE1hdGNoZXM7
Ci0gICAgYm9vbCBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzID0gZmFsc2U7CisgICAgVmVjdG9y
PEltcG9ydGFudE1hdGNoPiBpbXBvcnRhbnRNYXRjaGVzOworICAgIGJvb2wgaGFzTWF0Y2hlc0Zy
b21PdGhlclNjb3Blc09yTGF5ZXJzID0gZmFsc2U7CiAKICAgICBhdXRvJiBtYXRjaGVkRGVjbGFy
YXRpb25zID0gZGVjbGFyYXRpb25zRm9yQ2FzY2FkZUxldmVsKG1fbWF0Y2hSZXN1bHQsIGNhc2Nh
ZGVMZXZlbCk7CiAKQEAgLTI1MiwyMCArMjY0LDI1IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjph
ZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwpCiAgICAgICAgIGlm
ICghaGFzSW1wb3J0YW50UHJvcGVydGllcygqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcykp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpbXBvcnRhbnRNYXRjaGVzLmFwcGVu
ZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsIH0pOworICAgICAgICBp
bXBvcnRhbnRNYXRjaGVzLmFwcGVuZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVP
cmRpbmFsLCBtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSwgbWF0Y2hlZFBy
b3BlcnRpZXMuZnJvbVN0eWxlQXR0cmlidXRlIH0pOwogCi0gICAgICAgIGlmIChtYXRjaGVkUHJv
cGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCAhPSBTY29wZU9yZGluYWw6OkVsZW1lbnQpCi0gICAg
ICAgICAgICBoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKG1h
dGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsICE9IFNjb3BlT3JkaW5hbDo6RWxlbWVu
dCB8fCBtYXRjaGVkUHJvcGVydGllcy5jYXNjYWRlTGF5ZXJQcmlvcml0eSAhPSBSdWxlU2V0Ojpj
YXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCkKKyAgICAgICAgICAgIGhhc01hdGNoZXNG
cm9tT3RoZXJTY29wZXNPckxheWVycyA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKGltcG9ydGFu
dE1hdGNoZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaGFzTWF0Y2hl
c0Zyb21PdGhlclNjb3BlcykgewotICAgICAgICAvLyBGb3IgIWltcG9ydGFudCBwcm9wZXJ0aWVz
IGEgbGF0ZXIgc2hhZG93IHRyZWUgd2lucy4KKyAgICBpZiAoaGFzTWF0Y2hlc0Zyb21PdGhlclNj
b3Blc09yTGF5ZXJzKSB7CiAgICAgICAgIC8vIE1hdGNoIHJlc3VsdHMgYXJlIHNvcnRlZCBpbiBy
ZXZlcnNlIHRyZWUgY29udGV4dCBvcmRlciBzbyB0aGlzIGlzIG5vdCBuZWVkZWQgZm9yIG5vcm1h
bCBwcm9wZXJ0aWVzLgotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KGltcG9ydGFudE1hdGNoZXMu
YmVnaW4oKSwgaW1wb3J0YW50TWF0Y2hlcy5lbmQoKSwgW10gKGNvbnN0IEluZGV4QW5kT3JkaW5h
bCYgYSwgY29uc3QgSW5kZXhBbmRPcmRpbmFsJiBiKSB7Ci0gICAgICAgICAgICByZXR1cm4gYS5v
cmRpbmFsIDwgYi5vcmRpbmFsOworICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KGltcG9ydGFudE1h
dGNoZXMuYmVnaW4oKSwgaW1wb3J0YW50TWF0Y2hlcy5lbmQoKSwgW10gKGF1dG8mIGEsIGF1dG8m
IGIpIHsKKyAgICAgICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBz
aGFkb3cgdHJlZSB3aW5zLgorICAgICAgICAgICAgaWYgKGEub3JkaW5hbCAhPSBiLm9yZGluYWwp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGEub3JkaW5hbCA8IGIub3JkaW5hbDsKKyAgICAgICAg
ICAgIC8vIExvd2VyIHByaW9yaXR5IGxheWVyIHdpbnMsIGV4Y2VwdCBpZiBzdHlsZSBhdHRyaWJ1
dGUgaXMgaW52b2x2ZWQuCisgICAgICAgICAgICBpZiAoYS5mcm9tU3R5bGVBdHRyaWJ1dGUgIT0g
Yi5mcm9tU3R5bGVBdHRyaWJ1dGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGEuZnJvbVN0eWxl
QXR0cmlidXRlID09IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm87CisgICAgICAgICAgICByZXR1cm4g
YS5sYXllclByaW9yaXR5ID4gYi5sYXllclByaW9yaXR5OwogICAgICAgICB9KTsKICAgICB9CiAK
QEAgLTI3MywzMCArMjkwLDYgQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1h
dGNoZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKICAgICAgICAgYWRkTWF0Y2gobWF0Y2hl
ZERlY2xhcmF0aW9uc1ttYXRjaC5pbmRleF0sIGNhc2NhZGVMZXZlbCwgdHJ1ZSk7CiB9CiAKLWNv
bnN0IFByb3BlcnR5Q2FzY2FkZSogUHJvcGVydHlDYXNjYWRlOjpwcm9wZXJ0eUNhc2NhZGVGb3JS
b2xsYmFjayhDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsKSBjb25zdAotewotICAgIHN3aXRjaCAo
Y2FzY2FkZUxldmVsKSB7Ci0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OkF1dGhvcjoKLSAgICAgICAg
aWYgKCFtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZSkgewotICAgICAgICAgICAgYXV0byBjYXNjYWRl
TGV2ZWxzID0gT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4geyBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2Vu
dCwgQ2FzY2FkZUxldmVsOjpVc2VyIH07Ci0gICAgICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2Fz
Y2FkZSA9IG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPigqdGhpcywgY2FzY2FkZUxl
dmVscyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRl
LmdldCgpOwotCi0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXI6Ci0gICAgICAgIGlmICghbV91
c2VyUm9sbGJhY2tDYXNjYWRlKSB7Ci0gICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBP
cHRpb25TZXQ8Q2FzY2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50IH07Ci0gICAg
ICAgICAgICBtX3VzZXJSb2xsYmFja0Nhc2NhZGUgPSBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5
Q2FzY2FkZT4oKnRoaXMsIGNhc2NhZGVMZXZlbHMpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBtX3VzZXJSb2xsYmFja0Nhc2NhZGUuZ2V0KCk7Ci0KLSAgICBjYXNlIENhc2NhZGVMZXZlbDo6
VXNlckFnZW50OgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIFByb3BlcnR5Q2FzY2FkZTo6
RGlyZWN0aW9uIFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2Rl
KERpcmVjdGlvbiBpbmhlcml0ZWREaXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgRGlyZWN0aW9uIHJl
c3VsdCA9IGluaGVyaXRlZERpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1Byb3BlcnR5Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNj
YWRlLmgKaW5kZXggMWM2MDdmNDQxN2M3YzZjMGM3ZTZmMjM4MDk5MTRmOGI1NmZhNjE2MS4uNTFk
MjE3NjFjNzUwMzNjYTMzNmM2N2ZhODk5NTg3YWEwMjY1OTVkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUHJvcGVydHlDYXNjYWRlLmgKQEAgLTQ2LDggKzQ2LDggQEAgcHVibGljOgogICAgICAgICBX
cml0aW5nTW9kZSB3cml0aW5nTW9kZTsKICAgICB9OwogCi0gICAgUHJvcGVydHlDYXNjYWRlKGNv
bnN0IE1hdGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4sIEluY2x1ZGVkUHJvcGVy
dGllcywgRGlyZWN0aW9uKTsKLSAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNj
YWRlJiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4pOworICAgIFByb3BlcnR5Q2FzY2FkZShjb25z
dCBNYXRjaFJlc3VsdCYsIENhc2NhZGVMZXZlbCwgSW5jbHVkZWRQcm9wZXJ0aWVzLCBEaXJlY3Rp
b24pOworICAgIFByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmLCBDYXNjYWRl
TGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IG1heGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSA9
IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkKTsKIAogICAgIH5Qcm9w
ZXJ0eUNhc2NhZGUoKTsKIApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIENTU1By
b3BlcnR5SUQgaWQ7CiAgICAgICAgIENhc2NhZGVMZXZlbCBsZXZlbDsKICAgICAgICAgU2NvcGVP
cmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOworICAgICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBj
YXNjYWRlTGF5ZXJQcmlvcml0eTsKICAgICAgICAgQ1NTVmFsdWUqIGNzc1ZhbHVlWzNdOyAvLyBW
YWx1ZXMgZm9yIGxpbmsgbWF0Y2ggc3RhdGVzIE1hdGNoRGVmYXVsdCwgTWF0Y2hMaW5rIGFuZCBN
YXRjaFZpc2l0ZWQKICAgICB9OwogCkBAIC02OSwxMCArNzAsMTEgQEAgcHVibGljOgogCiAgICAg
RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCi0gICAgY29uc3QgUHJvcGVydHlDYXNjYWRl
KiBwcm9wZXJ0eUNhc2NhZGVGb3JSb2xsYmFjayhDYXNjYWRlTGV2ZWwpIGNvbnN0OworICAgIGF1
dG8gbWF4aW11bUNhc2NhZGVMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bUNhc2NhZGVM
ZXZlbDsgfQorICAgIGF1dG8gbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHk7IH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIGJ1aWxkQ2FzY2FkZShPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPik7CisgICAgdm9pZCBidWls
ZENhc2NhZGUoKTsKICAgICBib29sIGFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKICAg
ICB2b2lkIGFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKICAgICBib29sIGFkZE1h
dGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiwgQ2FzY2FkZUxldmVsLCBib29sIGltcG9ydGFu
dCk7CkBAIC04NSw2ICs4Nyw4IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBNYXRjaFJlc3VsdCYg
bV9tYXRjaFJlc3VsdDsKICAgICBjb25zdCBJbmNsdWRlZFByb3BlcnRpZXMgbV9pbmNsdWRlZFBy
b3BlcnRpZXM7CisgICAgY29uc3QgQ2FzY2FkZUxldmVsIG1fbWF4aW11bUNhc2NhZGVMZXZlbDsK
KyAgICBjb25zdCBDYXNjYWRlTGF5ZXJQcmlvcml0eSBtX21heGltdW1DYXNjYWRlTGF5ZXJQcmlv
cml0eSB7IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkIH07CiAgICAg
bXV0YWJsZSBEaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgbXV0YWJsZSBib29sIG1fZGlyZWN0
aW9uSXNVbnJlc29sdmVkIHsgdHJ1ZSB9OwogCkBAIC05Myw5ICs5Nyw2IEBAIHByaXZhdGU6CiAK
ICAgICBWZWN0b3I8UHJvcGVydHksIDg+IG1fZGVmZXJyZWRQcm9wZXJ0aWVzOwogICAgIEhhc2hN
YXA8QXRvbVN0cmluZywgUHJvcGVydHk+IG1fY3VzdG9tUHJvcGVydGllczsKLQotICAgIG11dGFi
bGUgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4gbV9hdXRob3JSb2xsYmFj
a0Nhc2NhZGU7Ci0gICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUHJvcGVydHlDYXNj
YWRlPiBtX3VzZXJSb2xsYmFja0Nhc2NhZGU7CiB9OwogCiBpbmxpbmUgYm9vbCBQcm9wZXJ0eUNh
c2NhZGU6Omhhc1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA5ZDZjNmI0Mzk5MGE4YTliZTEwYjYyMjczZDA3OTJi
OThiZTU4YTlkLi4zMzExM2RjMDE5Y2Q2NjU4ZDFlYzExNTQ5N2FlNDdmNDc2Zjk3ZjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKQEAgLTgwLDggKzgwLDggQEAgaW5saW5l
IGJvb2wgaXNWYWxpZFZpc2l0ZWRMaW5rUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLUJ1aWxkZXI6OkJ1aWxkZXIoUmVuZGVyU3R5bGUmIHN0eWxlLCBC
dWlsZGVyQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwg
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscywgUHJvcGVydHlDYXNjYWRlOjpJ
bmNsdWRlZFByb3BlcnRpZXMgaW5jbHVkZWRQcm9wZXJ0aWVzKQotICAgIDogbV9jYXNjYWRlKG1h
dGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWxzLCBpbmNsdWRlZFByb3BlcnRpZXMsIGRpcmVjdGlvbkZy
b21TdHlsZShzdHlsZSkpCitCdWlsZGVyOjpCdWlsZGVyKFJlbmRlclN0eWxlJiBzdHlsZSwgQnVp
bGRlckNvbnRleHQmJiBjb250ZXh0LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIENh
c2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0
aWVzIGluY2x1ZGVkUHJvcGVydGllcykKKyAgICA6IG1fY2FzY2FkZShtYXRjaFJlc3VsdCwgY2Fz
Y2FkZUxldmVsLCBpbmNsdWRlZFByb3BlcnRpZXMsIGRpcmVjdGlvbkZyb21TdHlsZShzdHlsZSkp
CiAgICAgLCBtX3N0YXRlKCp0aGlzLCBzdHlsZSwgV1RGTW92ZShjb250ZXh0KSkKIHsKIH0KQEAg
LTEyMSwxNiArMTIxLDYgQEAgdm9pZCBCdWlsZGVyOjphcHBseUxvd1ByaW9yaXR5UHJvcGVydGll
cygpCiAgICAgQVNTRVJUKCFtX3N0YXRlLmZvbnREaXJ0eSgpKTsKIH0KIAotdm9pZCBCdWlsZGVy
OjphcHBseVByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZSog
dmFsdWUpCi17Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXBwbHlQ
cm9wZXJ0eShwcm9wZXJ0eUlELCAqdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZhdWx0
KTsKLQotICAgIG1fc3RhdGUudXBkYXRlRm9udCgpOwotfQotCiB2b2lkIEJ1aWxkZXI6OmFwcGx5
RGVmZXJyZWRQcm9wZXJ0aWVzKCkKIHsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5IDogbV9jYXNj
YWRlLmRlZmVycmVkUHJvcGVydGllcygpKQpAQCAtMjQ1LDYgKzIzNSw3IEBAIGlubGluZSB2b2lk
IEJ1aWxkZXI6OmFwcGx5Q2FzY2FkZVByb3BlcnR5KGNvbnN0IFByb3BlcnR5Q2FzY2FkZTo6UHJv
cGVydHkmIHByb3BlCiB7CiAgICAgbV9zdGF0ZS5tX2Nhc2NhZGVMZXZlbCA9IHByb3BlcnR5Lmxl
dmVsOwogICAgIG1fc3RhdGUubV9zdHlsZVNjb3BlT3JkaW5hbCA9IHByb3BlcnR5LnN0eWxlU2Nv
cGVPcmRpbmFsOworICAgIG1fc3RhdGUubV9jYXNjYWRlTGF5ZXJQcmlvcml0eSA9IHByb3BlcnR5
LmNhc2NhZGVMYXllclByaW9yaXR5OwogCiAgICAgYXV0byBhcHBseVdpdGhMaW5rTWF0Y2ggPSBb
Jl0oU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrIGxpbmtNYXRjaCkgewogICAgICAgICBp
ZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoXSkgewpAQCAtMjk1LDIxICsyODYsMjcgQEAg
dm9pZCBCdWlsZGVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiB2
YWx1ZSwgU2VsZWN0b3JDaGVja2VyOjoKIAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVlVG9BcHBs
eS0+aXNVbnNldFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlVW5z
ZXQ7CiAgICAgYm9vbCBpc1JldmVydCA9IHZhbHVlVG9BcHBseS0+aXNSZXZlcnRWYWx1ZSgpIHx8
IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsKKyAgICBib29sIGlzUmV2
ZXJ0TGF5ZXIgPSB2YWx1ZVRvQXBwbHktPmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpIHx8IGN1c3RvbVBy
b3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydExheWVyOworCisgICAgaWYgKGlzUmV2ZXJ0
IHx8IGlzUmV2ZXJ0TGF5ZXIpIHsKKyAgICAgICAgYXV0byogcm9sbGJhY2tDYXNjYWRlID0gaXNS
ZXZlcnQKKyAgICAgICAgICAgID8gZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KG1fc3Rh
dGUubV9jYXNjYWRlTGV2ZWwpCisgICAgICAgICAgICA6IGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZv
clJldmVydExheWVyKG1fc3RhdGUubV9jYXNjYWRlTGV2ZWwsIG1fc3RhdGUubV9jYXNjYWRlTGF5
ZXJQcmlvcml0eSk7CiAKLSAgICBpZiAoaXNSZXZlcnQpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJv
bGxiYWNrID0gbV9jYXNjYWRlLnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKG1fc3RhdGUubV9j
YXNjYWRlTGV2ZWwpKSB7CisgICAgICAgIGlmIChyb2xsYmFja0Nhc2NhZGUpIHsKICAgICAgICAg
ICAgIC8vIFdpdGggdGhlIHJvbGxiYWNrIGNhc2NhZGUgYnVpbHQsIHdlIG5lZWQgdG8gb2J0YWlu
IHRoZSBwcm9wZXJ0eSBhbmQgYXBwbHkgaXQuIElmIHRoZSBwcm9wZXJ0eSBpcwotICAgICAgICAg
ICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0LiIgT3RoZXJ3aXNl
IHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mCi0gICAgICAgICAgICAvLyBvdXIgb3du
LgorICAgICAgICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0
LiIgT3RoZXJ3aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG91ciBvd24uCisg
ICAgICAgICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGV2ZWxTY29wZShtX3N0YXRlLm1fY2FzY2Fk
ZUxldmVsLCByb2xsYmFja0Nhc2NhZGUtPm1heGltdW1DYXNjYWRlTGV2ZWwoKSk7CisgICAgICAg
ICAgICBTZXRGb3JTY29wZSBjYXNjYWRlTGF5ZXJQcmlvcml0eVNjb3BlKG1fc3RhdGUubV9jYXNj
YWRlTGF5ZXJQcmlvcml0eSwgcm9sbGJhY2tDYXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxheWVyUHJp
b3JpdHkoKSk7CiAgICAgICAgICAgICBpZiAoY3VzdG9tUHJvcGVydHlWYWx1ZSkgewotICAgICAg
ICAgICAgICAgIGlmIChjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgJiYgY3VzdG9tUHJvcGVydHlS
ZWdpc3RlcmVkLT5pbmhlcml0cyAmJiByb2xsYmFjay0+aGFzQ3VzdG9tUHJvcGVydHkoY3VzdG9t
UHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHByb3Bl
cnR5ID0gcm9sbGJhY2stPmN1c3RvbVByb3BlcnR5KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUo
KSk7CisgICAgICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCAmJiBjdXN0
b21Qcm9wZXJ0eVJlZ2lzdGVyZWQtPmluaGVyaXRzICYmIHJvbGxiYWNrQ2FzY2FkZS0+aGFzQ3Vz
dG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKSkgeworICAgICAgICAgICAg
ICAgICAgICBhdXRvIHByb3BlcnR5ID0gcm9sbGJhY2tDYXNjYWRlLT5jdXN0b21Qcm9wZXJ0eShj
dXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAocHJv
cGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10pCiAgICAgICAgICAgICAgICAgICAgICAgICBh
cHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFz
a10sIGxpbmtNYXRjaE1hc2spOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFjay0+aGFzUHJvcGVydHko
aWQpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgcHJvcGVydHkgPSByb2xsYmFjay0+cHJvcGVy
dHkoaWQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyb2xsYmFja0Nhc2NhZGUtPmhhc1Byb3Bl
cnR5KGlkKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnR5ID0gcm9sbGJhY2tDYXNj
YWRlLT5wcm9wZXJ0eShpZCk7CiAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVl
W2xpbmtNYXRjaE1hc2tdKQogICAgICAgICAgICAgICAgICAgICBhcHBseVByb3BlcnR5KHByb3Bl
cnR5LmlkLCAqcHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10sIGxpbmtNYXRjaE1hc2sp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM3Myw1ICszNzAsMzIgQEAgUmVmUHRyPENT
U1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eUlELCBjb25zdAogICAgIHJldHVybiBDU1NQYXJzZXIobV9zdGF0ZS5kb2N1bWVudCgpKS5w
YXJzZVZhbHVlV2l0aFZhcmlhYmxlUmVmZXJlbmNlcyhwcm9wZXJ0eUlELCB2YWx1ZSwgbV9zdGF0
ZSk7CiB9CiAKK2NvbnN0IFByb3BlcnR5Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJlUm9sbGJhY2tD
YXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCByb2xsYmFja0Nhc2NhZGVMZXZlbCkKK3sKKyAg
ICBpZiAocm9sbGJhY2tDYXNjYWRlTGV2ZWwgPT0gQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBtYWtlUm9sbGJhY2tDYXNj
YWRlS2V5KHJvbGxiYWNrQ2FzY2FkZUxldmVsLCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0
eUZvclVubGF5ZXJlZCk7CisgICAgcmV0dXJuIG1fcm9sbGJhY2tDYXNjYWRlcy5lbnN1cmUoa2V5
LCBbJl0geworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+
KG1fY2FzY2FkZSwgLS1yb2xsYmFja0Nhc2NhZGVMZXZlbCwgUnVsZVNldDo6Y2FzY2FkZUxheWVy
UHJpb3JpdHlGb3JVbmxheWVyZWQpOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30K
KworY29uc3QgUHJvcGVydHlDYXNjYWRlKiBCdWlsZGVyOjplbnN1cmVSb2xsYmFja0Nhc2NhZGVG
b3JSZXZlcnRMYXllcihDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlv
cml0eSByb2xsYmFja0xheWVyUHJpb3JpdHkpCit7CisgICAgaWYgKCFyb2xsYmFja0xheWVyUHJp
b3JpdHkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBrZXkgPSBtYWtlUm9s
bGJhY2tDYXNjYWRlS2V5KGNhc2NhZGVMZXZlbCwgcm9sbGJhY2tMYXllclByaW9yaXR5KTsKKyAg
ICByZXR1cm4gbV9yb2xsYmFja0Nhc2NhZGVzLmVuc3VyZShrZXksIFsmXSB7CisgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4obV9jYXNjYWRlLCBjYXNjYWRl
TGV2ZWwsIHJvbGxiYWNrTGF5ZXJQcmlvcml0eSAtIDEpOworICAgIH0pLml0ZXJhdG9yLT52YWx1
ZS5nZXQoKTsKK30KKworYXV0byBCdWlsZGVyOjptYWtlUm9sbGJhY2tDYXNjYWRlS2V5KENhc2Nh
ZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclBy
aW9yaXR5KSAtPiBSb2xsYmFja0Nhc2NhZGVLZXkKK3sKKyAgICByZXR1cm4geyBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oY2FzY2FkZUxldmVsKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhc2NhZGVM
YXllclByaW9yaXR5KSB9OworfQorCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5o
CmluZGV4IDEwYWU2NzYyMjU5NmUxNGE2NDFhMzAwZWFmMzhkZWJjM2QwYjJmNmQuLjc1ZjNhMjM2
YTE4YTYwODVjMzFhMzllMzcyYmI3MmRhZjIwODUxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QnVpbGRlci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBCdWls
ZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBCdWlsZGVy
KFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRp
b25TZXQ8Q2FzY2FkZUxldmVsPiwgUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXMg
PSBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllczo6QWxsKTsKKyAgICBCdWlsZGVy
KFJlbmRlclN0eWxlJiwgQnVpbGRlckNvbnRleHQmJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBDYXNj
YWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzID0gUHJvcGVydHlD
YXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CiAgICAgfkJ1aWxkZXIoKTsKIAogICAg
IHZvaWQgYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CkBAIC00NSw4ICs0NSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IGFwcGx5UHJv
cGVydGllcyhwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEKTsgfQogICAgIHZvaWQgYXBwbHlDdXN0b21Q
cm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgdm9pZCBhcHBseVByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKLQogICAgIEJ1aWxkZXJTdGF0ZSYgc3RhdGUo
KSB7IHJldHVybiBtX3N0YXRlOyB9CiAKIHByaXZhdGU6CkBAIC02Myw3ICs2MSwxNiBAQCBwcml2
YXRlOgogICAgIFJlZjxDU1NWYWx1ZT4gcmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU1Zh
bHVlJik7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJv
cGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmKTsKIAorICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSog
ZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2ZXJ0KENhc2NhZGVMZXZlbCk7CisgICAgY29uc3Qg
UHJvcGVydHlDYXNjYWRlKiBlbnN1cmVSb2xsYmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihDYXNj
YWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5KTsKKworICAgIHVzaW5nIFJvbGxiYWNrQ2Fz
Y2FkZUtleSA9IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+OworICAgIFJvbGxiYWNrQ2Fz
Y2FkZUtleSBtYWtlUm9sbGJhY2tDYXNjYWRlS2V5KENhc2NhZGVMZXZlbCwgQ2FzY2FkZUxheWVy
UHJpb3JpdHkpOworCiAgICAgY29uc3QgUHJvcGVydHlDYXNjYWRlIG1fY2FzY2FkZTsKKyAgICAv
LyBSb2xsYmFjayBjYXNjYWRlcyBhcmUgYnVpbGQgb24gZGVtYW5kIHRvIHJlc29sdmUgJ3JldmVy
dCcgYW5kICdyZXZlcnQtbGF5ZXInIGtleXdvcmRzLgorICAgIEhhc2hNYXA8Um9sbGJhY2tDYXNj
YWRlS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUHJvcGVydHlDYXNjYWRlPj4gbV9yb2xsYmFj
a0Nhc2NhZGVzOworCiAgICAgQnVpbGRlclN0YXRlIG1fc3RhdGU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaAppbmRleCAyZWJjMWRiNzdiYzNkNmFhY2IyZjgy
MGMxNWVlN2Y5NGNkMjA4Yjk3Li5lYTFhNWI1MWRkOGEyZGVmMzY2NWQ2NWNkYjRkOWI1Y2MzYzli
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDU1NUb1N0eWxlTWFwLmgiCiAjaW5jbHVkZSAiQ2FzY2FkZUxl
dmVsLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAj
aW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgogCkBA
IC0xMzYsNiArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIENhc2NhZGVMZXZlbCBtX2Nhc2NhZGVM
ZXZlbCB7IH07CiAgICAgU2NvcGVPcmRpbmFsIG1fc3R5bGVTY29wZU9yZGluYWwgeyB9OworICAg
IENhc2NhZGVMYXllclByaW9yaXR5IG1fY2FzY2FkZUxheWVyUHJpb3JpdHkgeyB9OwogICAgIFNl
bGVjdG9yQ2hlY2tlcjo6TGlua01hdGNoTWFzayBtX2xpbmtNYXRjaCB7IH07CiAKICAgICBib29s
IG1fZm9udERpcnR5IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZDZhNjYyNWNmZmIwMWVlODMyY2ZjOTYyYjFkNDI2OGFkOGNjOGU5Zi4uOGVhMzlj
YmQwM2M4YTNhNGQ5MjY5ZDYwOGU4NTJhMzdhMzM2Y2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsCiAgICAgc3RhdGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCplbGVtZW50U3R5
bGUpKTsKICAgICBzdGF0ZS5zZXRQYXJlbnRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoY29u
dGV4dC5wYXJlbnRTdHlsZSA/ICpjb250ZXh0LnBhcmVudFN0eWxlIDogKmVsZW1lbnRTdHlsZSkp
OwogCi0gICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChz
dGF0ZSksIHJlc3VsdCwgeyBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1
aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNj
YWRlTGV2ZWw6OkF1dGhvcik7CiAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAog
ICAgIEFkanVzdGVyIGFkanVzdGVyKGRvY3VtZW50KCksICpzdGF0ZS5wYXJlbnRTdHlsZSgpLCBu
dWxscHRyLCBudWxscHRyKTsKQEAgLTQzNiw3ICs0MzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKIAogICAgIGF1
dG8mIHJlc3VsdCA9IGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpOwogCi0gICAgQnVpbGRlciBidWls
ZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIHJlc3VsdCwgeyBDYXNj
YWRlTGV2ZWw6OkF1dGhvciB9KTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCks
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCBDYXNjYWRlTGV2ZWw6OkF1dGhvcik7CiAg
ICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgIC8vIE5vdyByZXR1cm4gdGhl
IHN0eWxlLgpAQCAtNTU1LDEzICs1NTUsMTMgQEAgdm9pZCBSZXNvbHZlcjo6YXBwbHlNYXRjaGVk
UHJvcGVydGllcyhTdGF0ZSYgc3RhdGUsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3UKICAg
ICAgICAgLy8gSWYgc28sIHdlIGNhY2hlIHRoZSBib3JkZXIgYW5kIGJhY2tncm91bmQgc3R5bGVz
IHNvIHRoYXQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKCkKICAgICAgICAgLy8gY2FuIGxvb2sg
YXQgdGhlbSBsYXRlciB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYSBzdHlsZWQgZm9ybSBjb250
cm9sIG9yIG5vdC4KICAgICAgICAgYXV0byB1c2VyQWdlbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cihzdHlsZSk7Ci0gICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUs
IGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpVc2Vy
QWdlbnQgfSk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUsIGJ1aWxk
ZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbDo6VXNlckFnZW50KTsK
ICAgICAgICAgYnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAogICAgICAgICBzdGF0ZS5z
ZXRVc2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUoV1RGTW92ZSh1c2VyQWdlbnRTdHlsZSkpOwogICAg
IH0KIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgYWxsQ2FzY2FkZUxldmVscygpLCBpbmNsdWRlZFByb3BlcnRp
ZXMpOworICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQo
c3RhdGUpLCBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IsIGluY2x1ZGVkUHJvcGVy
dGllcyk7CiAKICAgICAvLyBIaWdoIHByaW9yaXR5IHByb3BlcnRpZXMgbWF5IGFmZmVjdCByZXNv
bHV0aW9uIG9mIG90aGVyIHByb3BlcnRpZXMgKHRoZXkgYXJlIG1vc3RseSBmb250IHJlbGF0ZWQp
LgogICAgIGJ1aWxkZXIuYXBwbHlIaWdoUHJpb3JpdHlQcm9wZXJ0aWVzKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTg3
ZjcxNzE5ZGMxODYwNWQ3MDU3OThmYzMzNzFjMGI3MGE5ZWJlZC4uZGJjNzFmYjA5Mzc0MzFmZDdk
OGEwMmZhNzA3MDdjZDJjYjlmYzdiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTA4
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIENhc2Nh
ZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZlcnQtbGF5ZXInIHZhbHVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0ODc5MzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTEtMTEgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVmYXVsdCBjb21wdXRlZCB2YWx1ZSBm
b3IgImNvbnRlbnQiIHNob3VsZCBiZSAibm9uZSIgZm9yIDo6YmVmb3JlIGFuZCA6OmFmdGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiY2E1MWM1NWJkMGFjZWRlN2FjOWVhYTMz
MzY1MzEyNzczOGExMDllLi4yOTIwNjY1ZTNiZGE0NTkxYWRiNWIyYjgzY2Q4ZWQzNzZhNWMxODlk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0x
MS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBD
YXNjYWRlIExheWVyc10gU3VwcG9ydCAncmV2ZXJ0LWxheWVyJyB2YWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjM2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NDg3OTM2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1s
YXllci0wMDgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXdpbGwtY2hhbmdlL3BhcnNpbmcvd2lsbC1jaGFuZ2UtaW52YWxpZDoKKwogMjAyMS0xMS0x
MSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZWZhdWx0
IGNvbXB1dGVkIHZhbHVlIGZvciAiY29udGVudCIgc2hvdWxkIGJlICJub25lIiBmb3IgOjpiZWZv
cmUgYW5kIDo6YWZ0ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY0ZjgwNmZiNDVkM2YyNDFkODMz
MWM3M2Q5ZTlkNjM0NWQ3MzZkMWEuLjYyZjBjOGI5Mzk2MjQwN2VmMjU4NzExZmUwMzBjNzU2MzVi
MzFmNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0OSwxMyArMjE0OSw2IEBAIHdlYmtpdC5v
cmcvYi8xNDg2NTAgZmFzdC9yZXBhaW50L2FkZC10YWJsZS1vdmVycGFpbnQuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL2ltcG9ydGFudC1wcm9wLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi8xODcwOTMgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcv
Yi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUv
cmV2ZXJ0LWxheWVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3Jl
dmVydC1sYXllci0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZl
cnQtbGF5ZXItMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIy
MzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0
LWxheWVyLTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMyMjM2
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1s
YXllci0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMjIzNiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5
ZXItMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzIyMzYgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVy
LTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjItcmdiYS1vbnNj
cmVlbi1iLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyMi1yZ2JhLW9uc2Ny
ZWVuLW11bHRpcGxlLWJveGVzLWMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2Fz
Y2FkZS9yZXZlcnQtbGF5ZXItMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgt
ZXhwZWN0ZWQudHh0CmluZGV4IDcxNDFhYzBiMDM5MDNmMjI3NjQxMzM1OGM1YmRiODY2MzY2Mzg0
ODcuLjEyN2I2ZjNiNTQyYmJlYTg4Njg4YzQ1MzY0ZjY0N2M4NzcyZmYwZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0w
MDgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMICdyZXZlcnQtbGF5ZXInIHNo
b3VsZCByZXZlcnQgZm9udC1zaXplIHRvIDIwcHggYW5kIHRyaWdnZXIgYSBzbW9vdGggdHJhbnNp
dGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTVweCIgYnV0IGdvdCAiMTBweCIKK1BBU1Mg
J3JldmVydC1sYXllcicgc2hvdWxkIHJldmVydCBmb250LXNpemUgdG8gMjBweCBhbmQgdHJpZ2dl
ciBhIHNtb290aCB0cmFuc2l0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZS9wYXJzaW5nL3dpbGwt
Y2hhbmdlLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdpbGwtY2hhbmdlL3BhcnNpbmcvd2lsbC1jaGFuZ2Ut
aW52YWxpZC1leHBlY3RlZC50eHQKaW5kZXggYjY2MzRmNmNkMjZmMzZhYTA4OWI1YjE4Yzc4MTE1
MGQzYjhlN2JiOC4uOTRhNTNlZmExYmNkYWE3YzJhZjA5MTY1OTU2YTdhODZmOWI2MGVjMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXdpbGwtY2hhbmdlL3BhcnNpbmcvd2lsbC1jaGFuZ2UtaW52YWxpZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXdpbGwtY2hhbmdlL3BhcnNpbmcvd2lsbC1jaGFuZ2UtaW52YWxpZC1leHBlY3RlZC50eHQKQEAg
LTQ3LDEzICs0NywxMyBAQCBQQVNTIGUuc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAicmV2ZXJ0LCBk
ZWZhdWx0IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdQogUEFTUyBlLnN0eWxlWyd3
aWxsLWNoYW5nZSddID0gInJldmVydCwgd2lsbC1jaGFuZ2UiIHNob3VsZCBub3Qgc2V0IHRoZSBw
cm9wZXJ0eSB2YWx1ZQogUEFTUyBlLnN0eWxlWyd3aWxsLWNoYW5nZSddID0gInJldmVydCwgbm9u
ZSIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCiBQQVNTIGUuc3R5bGVbJ3dpbGwt
Y2hhbmdlJ10gPSAicmV2ZXJ0LCBhbGwiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQotRkFJTCBlLnN0eWxlWyd3aWxsLWNoYW5nZSddID0gInRyYW5zZm9ybSwgcmV2ZXJ0LWxheWVy
IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIiIgYnV0IGdvdCAidHJhbnNmb3JtLCByZXZlcnQtbGF5ZXIiCi1GQUlMIGUuc3R5bGVbJ3dp
bGwtY2hhbmdlJ10gPSAicmV2ZXJ0LWxheWVyLCB0cmFuc2Zvcm0iIHNob3VsZCBub3Qgc2V0IHRo
ZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJyZXZl
cnQtbGF5ZXIsIHRyYW5zZm9ybSIKK1BBU1MgZS5zdHlsZVsnd2lsbC1jaGFuZ2UnXSA9ICJ0cmFu
c2Zvcm0sIHJldmVydC1sYXllciIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQ
QVNTIGUuc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAicmV2ZXJ0LWxheWVyLCB0cmFuc2Zvcm0iIHNo
b3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQogUEFTUyBlLnN0eWxlWyd3aWxsLWNoYW5n
ZSddID0gInJldmVydC1sYXllciwgaW5pdGlhbCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5
IHZhbHVlCiBQQVNTIGUuc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAicmV2ZXJ0LWxheWVyLCBpbmhl
cml0IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKIFBBU1MgZS5zdHlsZVsnd2ls
bC1jaGFuZ2UnXSA9ICJyZXZlcnQtbGF5ZXIsIHVuc2V0IiBzaG91bGQgbm90IHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKIFBBU1MgZS5zdHlsZVsnd2lsbC1jaGFuZ2UnXSA9ICJyZXZlcnQtbGF5ZXIs
IHJldmVydCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCi1GQUlMIGUuc3R5bGVb
J3dpbGwtY2hhbmdlJ10gPSAicmV2ZXJ0LWxheWVyLCByZXZlcnQtbGF5ZXIiIHNob3VsZCBub3Qg
c2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290
ICJyZXZlcnQtbGF5ZXIsIHJldmVydC1sYXllciIKK1BBU1MgZS5zdHlsZVsnd2lsbC1jaGFuZ2Un
XSA9ICJyZXZlcnQtbGF5ZXIsIHJldmVydC1sYXllciIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlCiBQQVNTIGUuc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAicmV2ZXJ0LWxheWVyLCBk
ZWZhdWx0IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKIFBBU1MgZS5zdHlsZVsn
d2lsbC1jaGFuZ2UnXSA9ICJyZXZlcnQtbGF5ZXIsIHdpbGwtY2hhbmdlIiBzaG91bGQgbm90IHNl
dCB0aGUgcHJvcGVydHkgdmFsdWUKIFBBU1MgZS5zdHlsZVsnd2lsbC1jaGFuZ2UnXSA9ICJyZXZl
cnQtbGF5ZXIsIG5vbmUiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>